Signed-off-by: Paul Blakey <pa...@mellanox.com> --- include/uapi/linux/tc_ematch/tc_em_meta.h | 1 + net/sched/em_meta.c | 8 ++++++++ 2 files changed, 9 insertions(+)
diff --git a/include/uapi/linux/tc_ematch/tc_em_meta.h b/include/uapi/linux/tc_ematch/tc_em_meta.h index cf30b5b..25a6fb8 100644 --- a/include/uapi/linux/tc_ematch/tc_em_meta.h +++ b/include/uapi/linux/tc_ematch/tc_em_meta.h @@ -81,6 +81,7 @@ enum { TCF_META_ID_SK_WRITE_PENDING, TCF_META_ID_VLAN_TAG, TCF_META_ID_RXHASH, + TCF_META_ID_TCRECIRC, __TCF_META_ID_MAX }; #define TCF_META_ID_MAX (__TCF_META_ID_MAX - 1) diff --git a/net/sched/em_meta.c b/net/sched/em_meta.c index d6e9711..041e0b3 100644 --- a/net/sched/em_meta.c +++ b/net/sched/em_meta.c @@ -245,6 +245,13 @@ static inline int var_dev(struct net_device *dev, struct meta_obj *dst) dst->value = skb->tc_index; } +META_COLLECTOR(int_tcrecirc) +{ + uint32_t *recirc = skb_ext_find(skb, SKB_EXT_TC_RECIRC_ID); + + dst->value = recirc? *recirc : 0; +} + /************************************************************************** * Routing **************************************************************************/ @@ -638,6 +645,7 @@ struct meta_ops { [META_ID(MACLEN)] = META_FUNC(int_maclen), [META_ID(NFMARK)] = META_FUNC(int_mark), [META_ID(TCINDEX)] = META_FUNC(int_tcindex), + [META_ID(TCRECIRC)] = META_FUNC(int_tcrecirc), [META_ID(RTCLASSID)] = META_FUNC(int_rtclassid), [META_ID(RTIIF)] = META_FUNC(int_rtiif), [META_ID(SK_FAMILY)] = META_FUNC(int_sk_family), -- 1.8.3.1