On Tue Sep 8, 2026 at 2:52 AM EDT, Tariq Toukan wrote: > From: Cosmin Ratiu <[email protected]> > > Add a PSP mode which wraps every transmitted frame in PSP transport > mode and encrypts them in SW with the help of OpenSSL. > The receiving NIC decrypts and decapsulates, so the frames seen on the > receiver on its AF_PACKET socket are identical to the non-PSP ones and > every geometry assertion in this file applies unchanged. > > Sender packet construction is unchanged, PSP uses a different buffer to > avoid double encryption. > > A few PSP-only cases are added: psp_spi_diff, psp_ver_diff, psp_mixed, > to cover coalescing scenarios which only exist for PSP. > > OpenSSL is optional and scoped to this binary: gro is deployed by > several suites, so a missing libcrypto costs only the PSP mode. > > Signed-off-by: Cosmin Ratiu <[email protected]> > Reviewed-by: Dragos Tatulea <[email protected]> > Signed-off-by: Tariq Toukan <[email protected]> > --- ... > +/* PSP transport mode encapsulation, as built by the sender: > + * > + * [eth][IP][UDP dport=1000][PSP hdr][encrypted L4][ICV] > + * > + * Can't use the kernel-only include/net/psp/types.h header, so copy the > + * encoding here. > + */ > +struct psphdr { > + uint8_t nexthdr; > + uint8_t hdrlen; > + uint8_t crypt_offset; > + uint8_t verfl; > + uint32_t spi; /* big endian */ > + uint64_t iv; /* big endian */ > +} __packed;
My llm is complaining that it thinks __packed is not defined for userspace code and being used as the name of an object being declared, instead of an attribute. Otherwise: Reviewed-by: Daniel Zahka <[email protected]>

