• Vladimir Oltean's avatar
    net: dsa: implement a central TX reallocation procedure · a3b0b647
    Vladimir Oltean authored
    At the moment, taggers are left with the task of ensuring that the skb
    headers are writable (which they aren't, if the frames were cloned for
    TX timestamping, for flooding by the bridge, etc), and that there is
    enough space in the skb data area for the DSA tag to be pushed.
    
    Moreover, the life of tail taggers is even harder, because they need to
    ensure that short frames have enough padding, a problem that normal
    taggers don't have.
    
    The principle of the DSA framework is that everything except for the
    most intimate hardware specifics (like in this case, the actual packing
    of the DSA tag bits) should be done inside the core, to avoid having
    code paths that are very rarely tested.
    
    So provide a TX reallocation procedure that should cover the known needs
    of DSA today.
    
    Note that this patch also gives the network stack a good hint about the
    headroom/tailroom it's going to need. Up till now it wasn't doing that.
    So the reallocation procedure should really be there only for the
    exceptional cases, and for cloned packets which need to be unshared.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Tested-by: Christian Eggers <ceggers@arri.de> # For tail taggers only
    Tested-by: Kurt Kanzenbach's avatarKurt Kanzenbach <kurt@linutronix.de>
    Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    a3b0b647
slave.c 55.3 KB