On Mon, 25 Jan 2021 22:11:35 +0100 (CET) Justin Iurman wrote:
> >>> If you meant the old/current one, well, I don't understand why the big 
> >>> endian definition would look like this:
> >>> 
> >>> #elif defined(__BIG_ENDIAN_BITFIELD)
> >>>    __u32    reserved:20,
> >>>        pad:4,
> >>>        cmpri:4,
> >>>        cmpre:4;
> >>> 
> >>> When the RFC defines the header as follows:
> >>> 
> >>> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >>> | CmprI | CmprE |  Pad  |               Reserved                |
> >>> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> >>> 
> >>> The little endian definition looks fine. But, when it comes to big 
> >>> endian, you define fields as you see them on the wire with the same 
> >>> order, right? So the current big endian definition makes no sense. It 
> >>> looks like it was a wrong mix with the little endian conversion.  
> > 
> > Well, you don't list the bit positions in the quote from the RFC, and
> > I'm not familiar with the IETF parlor. I'm only  
> 
> Indeed, sorry for that. Bit positions are available if you follow the link to 
> the RFC I referenced in the patch. It is always defined as network byte order 
> by default (=BE).
> 
> > comparing the LE
> > definition with the BE. If you claim the BE is wrong, then the LE is
> > wrong, too.  
> 
> Actually, no, it’s not. If you have a look at the header definition from the 
> RFC, you can see that the LE is correct (valid translation from BE, the *new* 
> BE in this patch).

Sigh, I see it now. Thanks!

Reply via email to