• Martin KaFai Lau's avatar
    bpf: selftests: Tcp header options · ad2f8eb0
    Martin KaFai Lau authored
    This patch adds tests for the new bpf tcp header option feature.
    
    test_tcp_hdr_options.c:
    - It tests header option writing and parsing in 3WHS: regular
      connection establishment, fastopen, and syncookie.
    - In syncookie, the passive side's bpf prog is asking the active side
      to resend its bpf header option by specifying a RESEND bit in the
      outgoing SYNACK. handle_active_estab() and write_nodata_opt() has
      some details.
    - handle_passive_estab() has comments on fastopen.
    - It also has test for header writing and parsing in FIN packet.
    - Most of the tests is writing an experimental option 254 with magic 0xeB9F.
    - The no_exprm_estab() also tests writing a regular TCP option
      without any magic.
    
    test_misc_tcp_options.c:
    - It is an one directional test.  Active side writes option and
      passive side parses option.  The focus is to exercise
      the new helpers and API.
    - Testing the new helper: bpf_load_hdr_opt() and bpf_store_hdr_opt().
    - Testing the bpf_getsockopt(TCP_BPF_SYN).
    - Negative tests for the above helpers.
    - Testing the sock_ops->skb_data.
    Signed-off-by: default avatarMartin KaFai Lau <kafai@fb.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20200820190117.2886749-1-kafai@fb.com
    ad2f8eb0
tcp_hdr_options.c 15.1 KB