source: trunk/package/mac80211/patches/532-mac80211_enable_iftype_wds_aggregation.patch @ 26912

Last change on this file since 26912 was 26912, checked in by nbd, 5 years ago

mac80211: update to 2011-05-13

File size: 2.4 KB
  • net/mac80211/agg-tx.c

    a b static void ieee80211_send_addba_request 
    7979        memcpy(mgmt->da, da, ETH_ALEN); 
    8080        memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); 
    8181        if (sdata->vif.type == NL80211_IFTYPE_AP || 
    82             sdata->vif.type == NL80211_IFTYPE_AP_VLAN) 
     82            sdata->vif.type == NL80211_IFTYPE_AP_VLAN || 
     83                sdata->vif.type == NL80211_IFTYPE_WDS) 
    8384                memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); 
    8485        else if (sdata->vif.type == NL80211_IFTYPE_STATION) 
    8586                memcpy(mgmt->bssid, sdata->u.mgd.bssid, ETH_ALEN); 
    int ieee80211_start_tx_ba_session(struct 
    388389         */ 
    389390        if (sdata->vif.type != NL80211_IFTYPE_STATION && 
    390391            sdata->vif.type != NL80211_IFTYPE_AP_VLAN && 
    391             sdata->vif.type != NL80211_IFTYPE_AP) 
     392            sdata->vif.type != NL80211_IFTYPE_AP && 
     393            sdata->vif.type != NL80211_IFTYPE_WDS) 
    392394                return -EINVAL; 
    393395 
    394396        if (test_sta_flags(sta, WLAN_STA_BLOCK_BA)) { 
  • net/mac80211/agg-rx.c

    a b static void ieee80211_send_addba_resp(st 
    161161                memcpy(mgmt->bssid, sdata->vif.addr, ETH_ALEN); 
    162162        else if (sdata->vif.type == NL80211_IFTYPE_STATION) 
    163163                memcpy(mgmt->bssid, sdata->u.mgd.bssid, ETH_ALEN); 
     164        else if (sdata->vif.type == NL80211_IFTYPE_WDS) 
     165                memcpy(mgmt->bssid, da, ETH_ALEN); 
    164166 
    165167        mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | 
    166168                                          IEEE80211_STYPE_ACTION); 
  • net/mac80211/rx.c

    a b ieee80211_rx_h_action(struct ieee80211_r 
    21372137                 */ 
    21382138                if (sdata->vif.type != NL80211_IFTYPE_STATION && 
    21392139                    sdata->vif.type != NL80211_IFTYPE_AP_VLAN && 
    2140                     sdata->vif.type != NL80211_IFTYPE_AP) 
     2140                    sdata->vif.type != NL80211_IFTYPE_AP && 
     2141                    sdata->vif.type != NL80211_IFTYPE_WDS) 
    21412142                        break; 
    21422143 
    21432144                /* verify action_code is present */ 
    static int prepare_for_handlers(struct i 
    26812682                } 
    26822683                break; 
    26832684        case NL80211_IFTYPE_WDS: 
    2684                 if (bssid) { 
    2685                         if (!ieee80211_is_beacon(hdr->frame_control)) 
    2686                                 return 0; 
    2687                 } else if (!ieee80211_is_data(hdr->frame_control)) 
    2688                         return 0; 
    26892685                if (compare_ether_addr(sdata->u.wds.remote_addr, hdr->addr2)) 
    26902686                        return 0; 
     2687 
     2688                if (ieee80211_is_data(hdr->frame_control) || 
     2689                    ieee80211_is_action(hdr->frame_control)) { 
     2690                        if (compare_ether_addr(sdata->vif.addr, hdr->addr1)) 
     2691                                return 0; 
     2692                } else if (!ieee80211_is_beacon(hdr->frame_control)) 
     2693                        return 0; 
     2694 
    26912695                break; 
    26922696        default: 
    26932697                /* should never get here */ 
Note: See TracBrowser for help on using the repository browser.