From: Kalle Valo <kvalo@kernel.org>
To: Sriram R <quic_srirrama@quicinc.com>
Cc: <johannes@sipsolutions.net>, <nbd@nbd.name>,
<linux-wireless@vger.kernel.org>
Subject: Re: [PATCH v2] mac80211: Mesh Fast xmit support
Date: Mon, 01 Aug 2022 12:54:00 +0300 [thread overview]
Message-ID: <875yjcjnlz.fsf@kernel.org> (raw)
In-Reply-To: <20220801070418.5420-1-quic_srirrama@quicinc.com> (Sriram R.'s message of "Mon, 1 Aug 2022 12:34:18 +0530")
Sriram R <quic_srirrama@quicinc.com> writes:
> Currently Fast xmit is supported in AP, STA and other device types where
> the destination doesn't change for the lifetime of its association by
> caching the static parts of the header that can be reused directly for
> every Tx such as addresses and updates only mutable header fields such as
> PN. This technique is not directly applicable for a Mesh device type
> due to the dynamic nature of the topology and protocol. The header is
> built based on the destination mesh device which is proxying a certain
> external device and based on the Mesh destination the next hop changes.
> And the RA/A1 which is the next hop for reaching the destination can
> vary during runtime as per the best route based on airtime. To
> accommodate these changes and to come up with a solution to avoid
> overhead during header generation, the headers comprising the MAC, Mesh
> and LLC part are cached whenever data for a certain external destination
> is sent. This cached header is reused every time a data is sent to that
> external destination.
>
> To ensure the changes in network are reflected in these cached headers,
> the Mesh Proxy path table and Mesh path table changes are monitored
> and corresponding headers are updated or flushed as applicable so that
> the header used for a frame towards a certain destination is valid.
>
> Old headers are flushed by the mesh housekeeping timers and based on the
> cache size.
>
> Only 6addr frame headers are cached currently.
>
> Tested with ath11k driver.
>
> Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
> ---
> v2: Moved to static header cache size of 512 entries
> Rearranged entry struct to avoid padding
> Used GFP_ATOMIC while entry allocation in tx path
> Compile tested from previous version - only above trivial changes
>
> net/mac80211/ieee80211_i.h | 20 ++
> net/mac80211/mesh.c | 2 +
> net/mac80211/mesh.h | 46 +++++
> net/mac80211/mesh_hwmp.c | 8 +-
> net/mac80211/mesh_pathtbl.c | 396 ++++++++++++++++++++++++++++++++++++
> net/mac80211/rx.c | 9 +-
> net/mac80211/tx.c | 89 ++++++++
> 7 files changed, 566 insertions(+), 4 deletions(-)
The title should be:
wifi: mac80211: Mesh Fast xmit support
But I suspect Johannes can fix that so no need resend because of this.
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
next prev parent reply other threads:[~2022-08-01 9:54 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-01 7:04 [PATCH v2] mac80211: Mesh Fast xmit support Sriram R
2022-08-01 9:54 ` Kalle Valo [this message]
2022-08-02 2:48 ` Sriram R (QUIC)
2022-08-03 9:40 ` kernel test robot
2022-08-14 16:42 ` kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=875yjcjnlz.fsf@kernel.org \
--to=kvalo@kernel.org \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=nbd@nbd.name \
--cc=quic_srirrama@quicinc.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.