On Mon, Aug 3, 2020 at 4:10 PM Martin KaFai Lau <kafai@xxxxxx> wrote: > > The TCP_SAVE_SYN has both the network header and tcp header. > The total length of the saved syn packet is currently stored in > the first 4 bytes (u32) of an array and the actual packet data is > stored after that. > > A later patch will add a bpf helper that allows to get the tcp header > alone from the saved syn without the network header. It will be more > convenient to have a direct offset to a specific header instead of > re-parsing it. This requires to separately store the network hdrlen. > The total header length (i.e. network + tcp) is still needed for the > current usage in getsockopt. Although this total length can be obtained > by looking into the tcphdr and then get the (th->doff << 2), this patch > chooses to directly store the tcp hdrlen in the second four bytes of > this newly created "struct saved_syn". By using a new struct, it can > give a readable name to each individual header length. > > Signed-off-by: Martin KaFai Lau <kafai@xxxxxx> > --- Reviewed-by: Eric Dumazet <edumazet@xxxxxxxxxx>