summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Blakey <paulb@nvidia.com>2021-01-27 16:32:46 +0200
committerJakub Kicinski <kuba@kernel.org>2021-01-29 18:05:30 -0800
commit941eff5aea5d4371fb8a496a66e29aa8fc7a0c23 (patch)
treea5d34726e8117f259e8f976dcab15c738841bfd5
parent8c85d18ce647ac2517a1a1bb01b02648e23700e6 (diff)
downloadlinux-941eff5aea5d4371fb8a496a66e29aa8fc7a0c23.tar.bz2
net: flow_offload: Add original direction flag to ct_metadata
Give offloading drivers the direction of the offloaded ct flow, this will be used for matches on direction (ct_state +/-rpl). Signed-off-by: Paul Blakey <paulb@nvidia.com> Reviewed-by: Jiri Pirko <jiri@nvidia.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--include/net/flow_offload.h1
-rw-r--r--net/sched/act_ct.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/include/net/flow_offload.h b/include/net/flow_offload.h
index 123b1e9ea304..e6bd8ebf9ac3 100644
--- a/include/net/flow_offload.h
+++ b/include/net/flow_offload.h
@@ -245,6 +245,7 @@ struct flow_action_entry {
unsigned long cookie;
u32 mark;
u32 labels[4];
+ bool orig_dir;
} ct_metadata;
struct { /* FLOW_ACTION_MPLS_PUSH */
u32 label;
diff --git a/net/sched/act_ct.c b/net/sched/act_ct.c
index b3442078aabc..f0a0aa125b00 100644
--- a/net/sched/act_ct.c
+++ b/net/sched/act_ct.c
@@ -183,6 +183,7 @@ static void tcf_ct_flow_table_add_action_meta(struct nf_conn *ct,
IP_CT_ESTABLISHED_REPLY;
/* aligns with the CT reference on the SKB nf_ct_set */
entry->ct_metadata.cookie = (unsigned long)ct | ctinfo;
+ entry->ct_metadata.orig_dir = dir == IP_CT_DIR_ORIGINAL;
act_ct_labels = entry->ct_metadata.labels;
ct_labels = nf_ct_labels_find(ct);