Re: [RFC] mac80211: assign needed_headroom/tailroom for netdevs

Johannes Berg
2008-05-04T21:31:29Z

[-- Attachment #1: Type: text/plain, Size: 1201 bytes --]

On Sun, 2008-05-04 at 23:24 +0200, Johannes Berg wrote:
> This assigns the netdev's needed_headroom/tailroom members
> to take advantage of pre-allocated space for 802.11 headers.
>
> Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
> ---
> Builds on my other patch to add those fields, of course!
>
> net/mac80211/iface.c | 8 ++++++++
> net/mac80211/tx.c | 14 +++++++++-----
> 2 files changed, 17 insertions(+), 5 deletions(-)
>
> --- everything.orig/net/mac80211/iface.c 2008-05-04 15:40:53.000000000 +0200
> +++ everything/net/mac80211/iface.c 2008-05-04 16:08:45.000000000 +0200
> @@ -53,6 +53,14 @@ int ieee80211_if_add(struct net_device *
> if (!ndev)
> return -ENOMEM;
>
> + ndev->needed_headroom = local->tx_headroom +
> + 4*6 /* four MAC addresses */
> + + 2 + 2 + 2 + 2 /* ctl, dur, seq, qos */
> + + 6 /* mesh */
> + - ETH_HLEN /* ethernet hard_header_len */
> + + IEEE80211_ENCRYPT_HEADROOM;

Although this seems to have worked for me, that was most likely
coincidence because I had two bytes extra headroom and no fourth MAC
address, I actually forgot 8 bytes here (rfc1042/bridge tunnel
encapsulation)

johannes

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]