iproute2/include
Davide Caratti 52d57f6bbd tc: full JSON support for 'bpf' actions
Add full JSON output support in the dump of 'act_bpf'.

Example using eBPF:

 # tc actions flush action bpf
 # tc action add action bpf object bpf/action.o section 'action-ok'
 # tc -j action list action bpf | jq
 [
   {
     "total acts": 1
   },
   {
     "actions": [
       {
         "order": 0,
         "kind": "bpf",
         "bpf_name": "action.o:[action-ok]",
         "prog": {
           "id": 33,
           "tag": "a04f5eef06a7f555",
           "jited": 1
         },
         "control_action": {
           "type": "pipe"
         },
         "index": 1,
         "ref": 1,
         "bind": 0
       }
     ]
   }
 ]

Example using cBPF:

 # tc actions flush action bpf
 # a=$(mktemp)
 # tcpdump -ddd not ether proto 0x888e >$a
 # tc action add action bpf bytecode-file $a index 42
 # rm $a
 # tc -j action list action bpf | jq
 [
   {
     "total acts": 1
   },
   {
     "actions": [
       {
         "order": 0,
         "kind": "bpf",
         "bytecode": {
           "length": 4,
           "insns": [
             {
               "code": 40,
               "jt": 0,
               "jf": 0,
               "k": 12
             },
             {
               "code": 21,
               "jt": 0,
               "jf": 1,
               "k": 34958
             },
             {
               "code": 6,
               "jt": 0,
               "jf": 0,
               "k": 0
             },
             {
               "code": 6,
               "jt": 0,
               "jf": 0,
               "k": 262144
             }
           ]
         },
         "control_action": {
           "type": "pipe"
         },
         "index": 42,
         "ref": 1,
         "bind": 0
       }
     ]
   }
 ]

Tested with:
 # ./tdc.py -c bpf

Cc: Andrea Claudi <aclaudi@redhat.com>
Signed-off-by: Davide Caratti <dcaratti@redhat.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
2019-02-03 09:10:10 -08:00
..
iptables SPDX license identifiers 2017-11-24 12:21:35 -08:00
libiptc SPDX license identifiers 2017-11-24 12:21:35 -08:00
netinet ss: report ecnseen 2011-11-23 14:51:54 -08:00
uapi/linux Update kernel headers and add xdp_diag.h 2019-01-29 18:34:40 -08:00
SNAPSHOT.h v4.20.0 2019-01-07 10:24:02 -08:00
bpf_api.h SPDX license identifiers 2017-11-24 12:21:35 -08:00
bpf_elf.h bpf: implement btf handling and map annotation 2018-07-17 19:38:44 -07:00
bpf_scm.h SPDX license identifiers 2017-11-24 12:21:35 -08:00
bpf_util.h tc: full JSON support for 'bpf' actions 2019-02-03 09:10:10 -08:00
color.h lib/color: make local functions static 2018-11-19 11:42:44 -08:00
dlfcn.h SPDX license identifiers 2017-11-24 12:21:35 -08:00
ip6tables.h SPDX license identifiers 2017-11-24 12:21:35 -08:00
iptables.h SPDX license identifiers 2017-11-24 12:21:35 -08:00
json_print.h Merge branch 'iproute2-master' into iproute2-next 2018-12-19 12:02:17 -08:00
json_writer.h Merge branch 'iproute2-master' into iproute2-next 2018-12-19 12:02:17 -08:00
libgenl.h genl: remove unnecessary extern 2018-09-10 11:53:07 -07:00
libnetlink.h libnetlink: Add RTNL_HANDLE_F_STRICT_CHK flag 2019-01-04 12:17:17 -08:00
list.h devlink: Add support for devlink resource abstraction 2018-02-23 08:36:05 -08:00
ll_map.h lib/ll_map: make local function static 2018-11-19 11:42:44 -08:00
names.h tc: drop unused name_to_id function 2018-11-19 11:42:44 -08:00
namespace.h Allow to configure /var/run/netns directory 2018-05-23 15:16:53 -07:00
rt_names.h SPDX license identifiers 2017-11-24 12:21:35 -08:00
rtm_map.h SPDX license identifiers 2017-11-24 12:21:35 -08:00
utils.h ss: add AF_XDP support 2019-01-30 20:57:45 -08:00
xt-internal.h SPDX license identifiers 2017-11-24 12:21:35 -08:00
xtables.h SPDX license identifiers 2017-11-24 12:21:35 -08:00