Subject: 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



2020-03-20 13:00:19

by Johannes Berg

[permalink] [raw]
Subject: Re: 4addr NDP in HE mode

On Tue, 2020-02-18 at 11:39 +0530, Sathishkumar Muruganandam wrote:

> 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.

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

Subject: Re: 4addr NDP in HE mode

On 2020-03-20 18:28, Johannes Berg wrote:
> On Tue, 2020-02-18 at 11:39 +0530, Sathishkumar Muruganandam wrote:
>
>> 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.
>
> 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