• Eric Dumazet's avatar
    ipv6: RFC 4884 partial support for SIT/GRE tunnels · 20e1954f
    Eric Dumazet authored
    When receiving an ICMPv4 message containing extensions as
    defined in RFC 4884, and translating it to ICMPv6 at SIT
    or GRE tunnel, we need some extra manipulation in order
    to properly forward the extensions.
    
    This patch only takes care of Time Exceeded messages as they
    are the ones that typically carry information from various
    routers in a fabric during a traceroute session.
    
    It also avoids complex skb logic if the data_len is not
    a multiple of 8.
    
    RFC states :
    
       The "original datagram" field MUST contain at least 128 octets.
       If the original datagram did not contain 128 octets, the
       "original datagram" field MUST be zero padded to 128 octets.
    
    In practice routers use 128 bytes of original datagram, not more.
    
    Initial translation was added in commit ca15a078
    ("sit: generate icmpv6 error when receiving icmpv4 error")
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Cc: Oussama Ghorbel <ghorbel@pivasoftware.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    20e1954f
icmp.c 24.9 KB