bpf: when doing BPF_PROG_TEST_RUN for flow dissector use no-skb mode
authorStanislav Fomichev <sdf@google.com>
Mon, 22 Apr 2019 15:55:45 +0000 (08:55 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Tue, 23 Apr 2019 16:36:34 +0000 (18:36 +0200)
commit7b8a1304323b35bbf060e0d29691031056836b73
tree19d54fc05d3c50660c9c7277e11ebda3665e12cf
parent089b19a9204fc090793d389a265f54124eacb05d
bpf: when doing BPF_PROG_TEST_RUN for flow dissector use no-skb mode

Now that we have bpf_flow_dissect which can work on raw data,
use it when doing BPF_PROG_TEST_RUN for flow dissector.

Simplifies bpf_prog_test_run_flow_dissector and allows us to
test no-skb mode.

Note, that previously, with bpf_flow_dissect_skb we used to call
eth_type_trans which pulled L2 (ETH_HLEN) header and we explicitly called
skb_reset_network_header. That means flow_keys->nhoff would be
initialized to 0 (skb_network_offset) in init_flow_keys.
Now we call bpf_flow_dissect with nhoff set to ETH_HLEN and need
to undo it once the dissection is done to preserve the existing behavior.

Signed-off-by: Stanislav Fomichev <sdf@google.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
net/bpf/test_run.c