Re: [PATCH net 1/1] uapi: fix big endian definition of ipv6_rpl_sr_hdr
From: David Ahern <hidden>
Date: 2021-01-25 20:14:04
On 1/25/21 12:32 PM, Jakub Kicinski wrote:
quoted
quoted
quoted
quoted
diff --git a/include/uapi/linux/rpl.h b/include/uapi/linux/rpl.h index 1dccb55cf8c6..708adddf9f13 100644 --- a/include/uapi/linux/rpl.h +++ b/include/uapi/linux/rpl.h@@ -28,10 +28,10 @@ struct ipv6_rpl_sr_hdr { pad:4, reserved1:16; #elif defined(__BIG_ENDIAN_BITFIELD) - __u32 reserved:20, + __u32 cmpri:4, + cmpre:4, pad:4, - cmpri:4, - cmpre:4; + reserved:20; #else #error "Please fix <asm/byteorder.h>" #endifcross-checking with other headers - tcp and vxlan-gpe - this patch looks correct.What are you cross-checking?
https://tools.ietf.org/html/draft-ietf-nvo3-vxlan-gpe-10, Section 3.1 header definition and vxlanhdr_gpe in include/net/vxlan.h. The __BIG_ENDIAN_BITFIELD part follows the definition in the spec. Similarly for the TCP header - RFC header definition and tcphdr in include/uapi/linux/tcp.h. TCP header shows doff + res1 order which is comparable to cmpri + cpmre in this header as both sets are 4-bits and start a word.