• S
    bpftool: show flow_dissector attachment status · 7f0c57fe
    Stanislav Fomichev 提交于
    Right now there is no way to query whether BPF flow_dissector program
    is attached to a network namespace or not. In previous commit, I added
    support for querying that info, show it when doing `bpftool net`:
    
    $ bpftool prog loadall ./bpf_flow.o \
    	/sys/fs/bpf/flow type flow_dissector \
    	pinmaps /sys/fs/bpf/flow
    $ bpftool prog
    3: flow_dissector  name _dissect  tag 8c9e917b513dd5cc  gpl
            loaded_at 2019-04-23T16:14:48-0700  uid 0
            xlated 656B  jited 461B  memlock 4096B  map_ids 1,2
            btf_id 1
    ...
    
    $ bpftool net -j
    [{"xdp":[],"tc":[],"flow_dissector":[]}]
    
    $ bpftool prog attach pinned \
    	/sys/fs/bpf/flow/flow_dissector flow_dissector
    $ bpftool net -j
    [{"xdp":[],"tc":[],"flow_dissector":["id":3]}]
    
    Doesn't show up in a different net namespace:
    $ ip netns add test
    $ ip netns exec test bpftool net -j
    [{"xdp":[],"tc":[],"flow_dissector":[]}]
    
    Non-json output:
    $ bpftool net
    xdp:
    
    tc:
    
    flow_dissector:
    id 3
    
    v2:
    * initialization order (Jakub Kicinski)
    * clear errno for batch mode (Quentin Monnet)
    Signed-off-by: NStanislav Fomichev <sdf@google.com>
    Reviewed-by: NQuentin Monnet <quentin.monnet@netronome.com>
    Reviewed-by: NJakub Kicinski <jakub.kicinski@netronome.com>
    Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
    7f0c57fe
net.c 7.4 KB