• Linus Walleij's avatar
    net: dsa: tag_rtl4_a: Implement Realtek 4 byte A tag · efd7fe68
    Linus Walleij authored
    This implements the known parts of the Realtek 4 byte
    tag protocol version 0xA, as found in the RTL8366RB
    DSA switch.
    
    It is designated as protocol version 0xA as a
    different Realtek 4 byte tag format with protocol
    version 0x9 is known to exist in the Realtek RTL8306
    chips.
    
    The tag and switch chip lacks public documentation, so
    the tag format has been reverse-engineered from
    packet dumps. As only ingress traffic has been available
    for analysis an egress tag has not been possible to
    develop (even using educated guesses about bit fields)
    so this is as far as it gets. It is not known if the
    switch even supports egress tagging.
    
    Excessive attempts to figure out the egress tag format
    was made. When nothing else worked, I just tried all bit
    combinations with 0xannp where a is protocol and p is
    port. I looped through all values several times trying
    to get a response from ping, without any positive
    result.
    
    Using just these ingress tags however, the switch
    functionality is vastly improved and the packets find
    their way into the destination port without any
    tricky VLAN configuration. On the D-Link DIR-685 the
    LAN ports now come up and respond to ping without
    any command line configuration so this is a real
    improvement for users.
    
    Egress packets need to be restricted to the proper
    target ports using VLAN, which the RTL8366RB DSA
    switch driver already sets up.
    
    Cc: DENG Qingfang <dqfext@gmail.com>
    Cc: Mauri Sandberg <sandberg@mailfence.com>
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    efd7fe68
dsa.h 23.3 KB