• Ahmed Abdelsalam's avatar
    ipv6: sr: fix get_srh() to comply with IPv6 standard "RFC 8200" · 5829d70b
    Ahmed Abdelsalam authored
    IPv6 packet may carry more than one extension header, and IPv6 nodes must
    accept and attempt to process extension headers in any order and occurring
    any number of times in the same packet. Hence, there should be no
    assumption that Segment Routing extension header is to appear immediately
    after the IPv6 header.
    
    Moreover, section 4.1 of RFC 8200 gives a recommendation on the order of
    appearance of those extension headers within an IPv6 packet. According to
    this recommendation, Segment Routing extension header should appear after
    Hop-by-Hop and Destination Options headers (if they present).
    
    This patch fixes the get_srh(), so it gets the segment routing header
    regardless of its position in the chain of the extension headers in IPv6
    packet, and makes sure that the IPv6 routing extension header is of Type 4.
    Signed-off-by: default avatarAhmed Abdelsalam <amsalam20@gmail.com>
    Acked-by: default avatarDavid Lebrun <david.lebrun@uclouvain.be>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    5829d70b
seg6_local.c 19.3 KB