> @@ -1150,14 +1148,27 @@ ieee80211_deliver_skb(struct ieee80211_t > - if (local->bridge_packets && (sdata->type == IEEE80211_IF_TYPE_AP > - || sdata->type == IEEE80211_IF_TYPE_VLAN) && > + dst = skb->data; > + > + if (compare_ether_addr(dev->dev_addr, dst) == 0) > + skb->pkt_type = PACKET_HOST; > + else if (is_multicast_ether_addr(dst)) { > + if (is_broadcast_ether_addr(dst)) > + skb->pkt_type = PACKET_BROADCAST; > + else > + skb->pkt_type = PACKET_MULTICAST; > + } else > + skb->pkt_type = PACKET_OTHERHOST; > + > + if (local->bridge_packets && (sdata->type == IEEE80211_IF_TYPE_AP || > + sdata->type == IEEE80211_IF_TYPE_VLAN) && i may miss something, but wouldn't you prefer to use eth_type_trans here and just add compare_ether_addr check after it? > @@ -1186,16 +1197,18 @@ ieee80211_deliver_skb(struct ieee80211_t > > if (skb) { > /* deliver to local stack */ > - skb->protocol = eth_type_trans(skb, dev); > memset(skb->cb, 0, sizeof(skb->cb)); > + skb->dev = dev; > + skb_reset_mac_header(skb); > + skb_pull(skb, ETH_HLEN); > netif_rx(skb); > } > - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html