On Thu, 21 Jan 2021 23:00:44 +0100 Justin Iurman wrote: > Following RFC 6554 [1], the current order of fields is wrong for big > endian definition. Indeed, here is how the header looks like: > > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | Next Header | Hdr Ext Len | Routing Type | Segments Left | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > | CmprI | CmprE | Pad | Reserved | > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > > This patch reorders fields so that big endian definition is now correct. > > [1] https://tools.ietf.org/html/rfc6554#section-3 > > Signed-off-by: Justin Iurman <justin.iur...@uliege.be>
Are you sure? This looks right to me. > 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>" > #endif