@@ -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)
@@ -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),
Signed-off-by: Paul Blakey <paulb@mellanox.com> --- include/uapi/linux/tc_ematch/tc_em_meta.h | 1 + net/sched/em_meta.c | 8 ++++++++ 2 files changed, 9 insertions(+)