From: JingPiao Chen Date: Tue, 15 Aug 2017 04:41:17 +0000 (+0800) Subject: netlink: add basic decoding of NETLINK_ROUTE tcamsg attributes X-Git-Tag: v4.19~94 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=41d9c32e9548d44e6fac43fbeefa7cfec586f015;p=strace netlink: add basic decoding of NETLINK_ROUTE tcamsg attributes * rtnl_tc_action.c: Include "nlattr.h" and "xlat/rtnl_tc_action_attrs.h". (decode_tcamsg): Call decode_nlattr. * xlat/rtnl_tc_action_attrs.in: New file. Co-authored-by: Fabien Siron --- diff --git a/rtnl_tc_action.c b/rtnl_tc_action.c index 5b6b49b7..ca0b72be 100644 --- a/rtnl_tc_action.c +++ b/rtnl_tc_action.c @@ -29,15 +29,26 @@ #include "defs.h" #include "netlink_route.h" +#include "nlattr.h" #include "print_fields.h" #include "netlink.h" #include +#include "xlat/rtnl_tc_action_attrs.h" + DECL_NETLINK_ROUTE_DECODER(decode_tcamsg) { struct tcamsg tca = { .tca_family = family }; PRINT_FIELD_XVAL("{", tca, tca_family, addrfams, "AF_???"); tprints("}"); + + const size_t offset = NLMSG_ALIGN(sizeof(tca)); + if (len > offset) { + tprints(", "); + decode_nlattr(tcp, addr + offset, len - offset, + rtnl_tc_action_attrs, "TCA_ACT_???", + NULL, 0, NULL); + } } diff --git a/xlat/rtnl_tc_action_attrs.in b/xlat/rtnl_tc_action_attrs.in new file mode 100644 index 00000000..ebb3dd47 --- /dev/null +++ b/xlat/rtnl_tc_action_attrs.in @@ -0,0 +1,7 @@ +TCA_ACT_UNSPEC 0 +TCA_ACT_KIND 1 +TCA_ACT_OPTIONS 2 +TCA_ACT_INDEX 3 +TCA_ACT_STATS 4 +TCA_ACT_PAD 5 +TCA_ACT_COOKIE 6