• David Ward's avatar
    ip_gre: When TOS is inherited, use configured TOS value for non-IP packets · 040468a0
    David Ward authored
    A GRE tunnel can be configured so that outgoing tunnel packets inherit
    the value of the TOS field from the inner IP header. In doing so, when
    a non-IP packet is transmitted through the tunnel, the TOS field will
    always be set to 0.
    
    Instead, the user should be able to configure a different TOS value as
    the fallback to use for non-IP packets. This is helpful when the non-IP
    packets are all control packets and should be handled by routers outside
    the tunnel as having Internet Control precedence. One example of this is
    the NHRP packets that control a DMVPN-compatible mGRE tunnel; they are
    encapsulated directly by GRE and do not contain an inner IP header.
    
    Under the existing behavior, the IFLA_GRE_TOS parameter must be set to
    '1' for the TOS value to be inherited. Now, only the least significant
    bit of this parameter must be set to '1', and when a non-IP packet is
    sent through the tunnel, the upper 6 bits of this same parameter will be
    copied into the TOS field. (The ECN bits get masked off as before.)
    
    This behavior is backwards-compatible with existing configurations and
    iproute2 versions.
    Signed-off-by: default avatarDavid Ward <david.ward@ll.mit.edu>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    040468a0
ip_gre.c 44.2 KB