diff mbox series

[iproute2/net-next] tc: flower: Add support for ct_state reply flag

Message ID 1612268682-29525-1-git-send-email-paulb@nvidia.com (mailing list archive)
State Accepted
Delegated to: David Ahern
Headers show
Series [iproute2/net-next] tc: flower: Add support for ct_state reply flag | expand

Checks

Context Check Description
netdev/apply fail Patch does not apply to net-next
netdev/tree_selection success Clearly marked for net-next

Commit Message

Paul Blakey Feb. 2, 2021, 12:24 p.m. UTC
Matches on conntrack rpl ct_state.

Example:
$ tc filter add dev ens1f0_0 ingress prio 1 chain 1 proto ip flower \
  ct_state +trk+est+rpl \
  action mirred egress redirect dev ens1f0_1
$ tc filter add dev ens1f0_1 ingress prio 1 chain 1 proto ip flower \
  ct_state +trk+est-rpl \
  action mirred egress redirect dev ens1f0_0

Signed-off-by: Paul Blakey <paulb@nvidia.com>
---
 man/man8/tc-flower.8 | 2 ++
 tc/f_flower.c        | 1 +
 2 files changed, 3 insertions(+)

Comments

Marcelo Ricardo Leitner Feb. 2, 2021, 12:41 p.m. UTC | #1
On Tue, Feb 02, 2021 at 02:24:42PM +0200, Paul Blakey wrote:
> Matches on conntrack rpl ct_state.
> 
> Example:
> $ tc filter add dev ens1f0_0 ingress prio 1 chain 1 proto ip flower \
>   ct_state +trk+est+rpl \
>   action mirred egress redirect dev ens1f0_1
> $ tc filter add dev ens1f0_1 ingress prio 1 chain 1 proto ip flower \
>   ct_state +trk+est-rpl \
>   action mirred egress redirect dev ens1f0_0
> 
> Signed-off-by: Paul Blakey <paulb@nvidia.com>
> ---
>  man/man8/tc-flower.8 | 2 ++
>  tc/f_flower.c        | 1 +
>  2 files changed, 3 insertions(+)

iproute has a header copy, include/uapi/linux/pkt_cls.h.
I think it needs updating as well.

  Marcelo
Paul Blakey Feb. 3, 2021, 7:56 a.m. UTC | #2
On Tue, 2 Feb 2021, Marcelo Ricardo Leitner wrote:

> On Tue, Feb 02, 2021 at 02:24:42PM +0200, Paul Blakey wrote:
> > Matches on conntrack rpl ct_state.
> > 
> > Example:
> > $ tc filter add dev ens1f0_0 ingress prio 1 chain 1 proto ip flower \
> >   ct_state +trk+est+rpl \
> >   action mirred egress redirect dev ens1f0_1
> > $ tc filter add dev ens1f0_1 ingress prio 1 chain 1 proto ip flower \
> >   ct_state +trk+est-rpl \
> >   action mirred egress redirect dev ens1f0_0
> > 
> > Signed-off-by: Paul Blakey <paulb@nvidia.com>
> > ---
> >  man/man8/tc-flower.8 | 2 ++
> >  tc/f_flower.c        | 1 +
> >  2 files changed, 3 insertions(+)
> 
> iproute has a header copy, include/uapi/linux/pkt_cls.h.
> I think it needs updating as well.
> 
>   Marcelo
> 

Hi,

Commit 1e6190218050 ("Update kernel headers") from 02/02/2021 updated the
headers to include the relevant flag.

Thanks,
Paul.
David Ahern Feb. 5, 2021, 4:58 a.m. UTC | #3
On 2/2/21 5:24 AM, Paul Blakey wrote:
> Matches on conntrack rpl ct_state.
> 
> Example:
> $ tc filter add dev ens1f0_0 ingress prio 1 chain 1 proto ip flower \
>   ct_state +trk+est+rpl \
>   action mirred egress redirect dev ens1f0_1
> $ tc filter add dev ens1f0_1 ingress prio 1 chain 1 proto ip flower \
>   ct_state +trk+est-rpl \
>   action mirred egress redirect dev ens1f0_0
> 
> Signed-off-by: Paul Blakey <paulb@nvidia.com>
> ---
>  man/man8/tc-flower.8 | 2 ++
>  tc/f_flower.c        | 1 +
>  2 files changed, 3 insertions(+)
> 

applied to iproute2-next. Thanks
diff mbox series

Patch

diff --git a/man/man8/tc-flower.8 b/man/man8/tc-flower.8
index 226d1cc..f7336b6 100644
--- a/man/man8/tc-flower.8
+++ b/man/man8/tc-flower.8
@@ -387,6 +387,8 @@  new - New connection.
 .TP
 est - Established connection.
 .TP
+rpl - The packet is in the reply direction, meaning that it is in the opposite direction from the packet that initiated the connection.
+.TP
 inv - The state is invalid. The packet couldn't be associated to a connection.
 .TP
 Example: +trk+est
diff --git a/tc/f_flower.c b/tc/f_flower.c
index 85c1043..53822a9 100644
--- a/tc/f_flower.c
+++ b/tc/f_flower.c
@@ -346,6 +346,7 @@  static struct flower_ct_states {
 	{ "new", TCA_FLOWER_KEY_CT_FLAGS_NEW },
 	{ "est", TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED },
 	{ "inv", TCA_FLOWER_KEY_CT_FLAGS_INVALID },
+	{ "rpl", TCA_FLOWER_KEY_CT_FLAGS_REPLY },
 };
 
 static int flower_parse_ct_state(char *str, struct nlmsghdr *n)