• Emmanuel Grumbach's avatar
    iwlwifi: pcie: build an A-MSDU using TSO core · 6eb5e529
    Emmanuel Grumbach authored
    When the op_mode sends an skb whose payload is bigger than
    MSS, PCIe will create an A-MSDU out of it. PCIe assumes
    that the skb that is coming from the op_mode can fit in one
    A-MSDU. It is the op_mode's responsibility to make sure
    that this guarantee holds.
    
    Additional headers need to be built for the subframes.
    The TSO core code takes care of the IP / TCP headers and
    the driver takes care of the 802.11 subframe headers.
    
    These headers are stored on a per-cpu page that is re-used
    for all the packets handled on that same CPU. Each skb
    holds a reference to that page and releases the page when
    it is reclaimed. When the page gets full, it is released
    and a new one is allocated.
    
    Since any SKB that doesn't go through the fast-xmit path
    of mac80211 will be segmented, we can assume here that the
    packet is not WEP / TKIP and has a proper SNAP header.
    Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
    6eb5e529
tx.c 63.5 KB