On Mon, Feb 06, 2023 at 07:55:32PM +0000, Dave Thaler wrote: > From: Dave Thaler <dthaler@xxxxxxxxxxxxx> > > Document the discussion from the email thread on the IETF bpf list, > where it was explained that the raw format varies by endianness > of the processor. > > Signed-off-by: Dave Thaler <dthaler@xxxxxxxxxxxxx> Thanks for documenting this as well. This LGTM, but you're going to have to rebase onto [0] and submit a v2 in order for it to be merged. [0]: https://lore.kernel.org/all/20230127224555.916-1-dthaler1968@xxxxxxxxxxxxxx/ You can include my Ack on that revision: Acked-by: David Vernet <void@xxxxxxxxxxxxx> > --- > Documentation/bpf/instruction-set.rst | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/Documentation/bpf/instruction-set.rst b/Documentation/bpf/instruction-set.rst > index 2d3fe59bd26..3358769dc1f 100644 > --- a/Documentation/bpf/instruction-set.rst > +++ b/Documentation/bpf/instruction-set.rst > @@ -33,7 +33,7 @@ eBPF has two instruction encodings: > * the wide instruction encoding, which appends a second 64-bit immediate value > (imm64) after the basic instruction for a total of 128 bits. > > -The basic instruction encoding looks as follows: > +The basic instruction encoding looks as follows for a little-endian processor: > > ============= ======= =============== ==================== ============ > 32 bits (MSB) 16 bits 4 bits 4 bits 8 bits (LSB) > @@ -41,6 +41,17 @@ The basic instruction encoding looks as follows: > immediate offset source register destination register opcode > ============= ======= =============== ==================== ============ > > +and as follows for a big-endian processor: > + > +============= ======= ==================== =============== ============ > +32 bits (MSB) 16 bits 4 bits 4 bits 8 bits (LSB) > +============= ======= ==================== =============== ============ > +immediate offset destination register source register opcode > +============= ======= ==================== =============== ============ > + > +Multi-byte fields ('immediate' and 'offset') are similarly stored in > +the byte order of the processor. > + > Note that most instructions do not use all of the fields. > Unused fields shall be cleared to zero. > > -- > 2.33.4 >