On Thu, Jul 30, 2020 at 1:58 PM Martin KaFai Lau <kafai@xxxxxx> wrote: > > This patch is adapted from Eric's patch in an earlier discussion [1]. > > The TCP_SAVE_SYN currently only stores the network header and > tcp header. This patch allows it to optionally store > the mac header also if the setsockopt's optval is 2. > > It requires one more bit for the "save_syn" bit field in tcp_sock. > This patch achieves this by moving the syn_smc bit next to the is_mptcp. > The syn_smc is currently used with the TCP experimental option. Since > syn_smc is only used when CONFIG_SMC is enabled, this patch also puts > the "IS_ENABLED(CONFIG_SMC)" around it like the is_mptcp did > with "IS_ENABLED(CONFIG_MPTCP)". > > The mac_hdrlen is also stored in the "struct saved_syn" > to allow a quick offset from the bpf prog if it chooses to start > getting from the network header or the tcp header. > > [1]: https://lore.kernel.org/netdev/CANn89iLJNWh6bkH7DNhy_kmcAexuUCccqERqe7z2QsvPhGrYPQ@xxxxxxxxxxxxxx/ > > Suggested-by: Eric Dumazet <edumazet@xxxxxxxxxx> > Signed-off-by: Martin KaFai Lau <kafai@xxxxxx> > --- Reviewed-by: Eric Dumazet <edumazet@xxxxxxxxxx>