4addr NDP in HE mode
Hi Luca, Johannes,
We see that HE STA in 4addr mode is not able to pass traffic since 4addr NDP frame after successful association is blocked in below commit. There is no AP/VLAN interface created on the 4addr AP side as well.
commit 41cbb0f5a29592874355 "mac80211: add support for HE"
@@ -929,6 +1020,10 @@ static void ieee80211_send_4addr_nullfunc(struct ieee80211_local *local,
if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_STATION))
return;+ /* Don't send NDPs when connected HE */
+ if (!(sdata->u.mgd.flags & IEEE80211_STA_DISABLE_HE))
+ return;
+
skb = dev_alloc_skb(local->hw.extra_tx_headroom + 30);
if (!skb)
return;Since ieee80211_send_4addr_nullfunc() is only called for successful association of 4addr STA, shall we allow below case alone for HE ?
static bool ieee80211_assoc_success(struct ieee80211_sub_if_data *sdata,
struct cfg80211_bss *cbss,
struct ieee80211_mgmt *mgmt, size_t len,
struct ieee802_11_elems *elems)
{
..
/*
* If we're using 4-addr mode, let the AP know that we're
* doing so, so that it can create the STA VLAN on its side
*/
if (ifmgd->use_4addr)
ieee80211_send_4addr_nullfunc(local, sdata);..
Whether this 4addr NDP in HE mode will affect any UL-MIMO from the 4addr STA ? Please comment.
Thanks,
Sathishkumar
Quoted 15 lines · Sathishkumar Muruganandam
Since
ieee80211_send_4addr_nullfunc()is only called for successful association of 4addr STA, shall we allow below case alone for HE ?static bool ieee80211_assoc_success(struct
ieee80211_sub_if_data*sdata,struct cfg80211_bss *cbss, struct ieee80211_mgmt *mgmt, size_t len, struct ieee802_11_elems *elems) { .. /* * If we're using 4-addr mode, let the AP know that we're * doing so, so that it can create the STA VLAN on its side */ if (ifmgd->use_4addr) ieee80211_send_4addr_nullfunc(local, sdata);
Quoted 4 lines
..
Whether this 4addr NDP in HE mode will affect any UL-MIMO from the 4addr STA ? Please comment.
Off the top of my head, I don't know. Adding Shaul who might have an idea.
Shaul, basically the NDP is used here to initialize the 4-addr connection as such, and if the connection is HE capable we drop it. Can you remind me what exactly the issue with NDP in HE was, and do you know how that'd be affected by 4-addr NDPs?
Thanks,
johannes
Quoted 23 lines · Johannes Berg
Quoted 16 lines · Sathishkumar Muruganandam
Since
ieee80211_send_4addr_nullfunc()is only called for successful association of 4addr STA, shall we allow below case alone for HE ?static bool ieee80211_assoc_success(struct
ieee80211_sub_if_data*sdata,struct cfg80211_bss *cbss, struct ieee80211_mgmt *mgmt, size_t len, struct ieee802_11_elems *elems) { .. /* * If we're using 4-addr mode, let the AP know that we're * doing so, so that it can create the STA VLAN on its side */ if (ifmgd->use_4addr) ieee80211_send_4addr_nullfunc(local, sdata);Quoted 4 lines
..
Whether this 4addr NDP in HE mode will affect any UL-MIMO from the 4addr STA ? Please comment.
Quoted 8 lines
Off the top of my head, I don't know. Adding Shaul who might have an idea.
Shaul, basically the NDP is used here to initialize the 4-addr connection as such, and if the connection is HE capable we drop it. Can you remind me what exactly the issue with NDP in HE was, and do you know how that'd be affected by 4-addr NDPs?
Shaul, awaiting your response !
Thanks,
Sathishkumar