ipv6: sr: remove cleanup flag and fix HMAC computation
authorDavid Lebrun <david.lebrun@uclouvain.be>
Thu, 2 Feb 2017 10:29:38 +0000 (11:29 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 3 Feb 2017 16:05:23 +0000 (11:05 -0500)
commit013e8167899d389075160412a8c0c5e0581e1f13
treed281ac584151c7116a7dfa29cfb4565d1d491e4e
parentcafe8df8b9bc9aa3dffa827c1a6757c6cd36f657
ipv6: sr: remove cleanup flag and fix HMAC computation

In the latest version of the IPv6 Segment Routing IETF draft [1] the
cleanup flag is removed and the flags field length is shrunk from 16 bits
to 8 bits. As a consequence, the input of the HMAC computation is modified
in a non-backward compatible way by covering the whole octet of flags
instead of only the cleanup bit. As such, if an implementation compatible
with the latest draft computes the HMAC of an SRH who has other flags set
to 1, then the HMAC result would differ from the current implementation.

This patch carries those modifications to prevent conflict with other
implementations of IPv6 SR.

[1] https://tools.ietf.org/html/draft-ietf-6man-segment-routing-header-05

Signed-off-by: David Lebrun <david.lebrun@uclouvain.be>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/seg6.h
net/ipv6/exthdrs.c
net/ipv6/seg6_hmac.c