> This patch adds the ability to receive and handle A-MSDU frames. > + u16 amsdu_frame; Why a u16 of all the available types? Maybe just 'bool'? > + switch (fc & (IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS)) { > + case IEEE80211_FCTL_TODS: > + /* BSSID SA DA */ > + if (unlikely(sdata->type != IEEE80211_IF_TYPE_AP && > + sdata->type != IEEE80211_IF_TYPE_VLAN)) { > + printk(KERN_DEBUG "%s: dropped ToDS frame (BSSID=%s" > + " SA=%s DA=%s)\n", > + dev->name, print_mac(mac, hdr->addr1), > + print_mac(mac, hdr->addr2), > + print_mac(mac, hdr->addr3)); net_ratelimit() > + printk(KERN_DEBUG "%s: dropped FromDS&ToDS frame" > + " (RA=%s TA=%s DA=%s SA=%s)\n", > + rx->dev->name, print_mac(mac, hdr->addr1), > + print_mac(mac, hdr->addr2), > + print_mac(mac, hdr->addr3), > + print_mac(mac, hdr->addr4)); ditto. > + if (net_ratelimit()) > + printk(KERN_DEBUG "%s: dropped IBSS frame" > + " (DA=%s SA=%s BSSID=%s)\n", > + dev->name, print_mac(mac, hdr->addr1), > + print_mac(mac, hdr->addr2), > + print_mac(mac, hdr->addr3)); Heh :) > + skb_reserve(frame, local->hw.extra_tx_headroom + > + sizeof(struct ethhdr)); Hah. I knew there was an skb_reserve missing in the original code :) The one thing I'm not sure about here is the EAPOL frame handling. In theory, such frames could be part of an aggregation and thus we'll not get them to the right place. Then again, we haven't decided yet what the right place is. Also, what happens with 802.1X port control? johannes
Attachment:
signature.asc
Description: This is a digitally signed message part