mbox series

[RFC,V2,0/2] TCP flow classification using 4-tuple and flags

Message ID cover.1578936382.git.sowmini.varadhan@microsoft.com (mailing list archive)
Headers
Series TCP flow classification using 4-tuple and flags |

Message

Sowmini Varadhan Jan. 13, 2020, 6:05 p.m. UTC
  V2 updates: checkpatch fixes, revert accidently spelling error
introduced in V1;

The problem space of TCP flow tracking and classification
based on TCP state requires the ability to classify TCP
flows on more packet properties than just the 4-tuple,
e.g., TCP flags. This patch-set investigates the set of
changes needed in the examples/flow_classify.c needed to
achieve this.

Patch 1 extends examples/flow_classify.c to allow constraints
on tcp flags. Patch 2 extends the ACL handling in  
librte_flow_classify to include keys on the properties in 
addition to the tcp 4-tuple.

Note that one particular part of this patch-set where feedback
is requested is in allocate_acl_ipv4_tcp_5tuple_rule():
we need to add a key for the 8 bit flags, but the multibit
trie lookup moves in steps of 4 bytes, so it took some hackery
to figure out what byte-ordering was expected, and there were
no documentation/examples to provide guidelines. Comments/suggestions
would be particularly helpful.

Sowmini Varadhan (2):
  Hooks to allow the setting of filters on tcp flags
  Allow the flow_classify example to add an ACL table for tcp.

 examples/flow_classify/flow_classify.c        | 121 +++++++++++++++---
 examples/flow_classify/ipv4_rules_file.txt    |  22 ++--
 lib/librte_flow_classify/rte_flow_classify.c  |  87 +++++++++++++
 lib/librte_flow_classify/rte_flow_classify.h  |  19 +++
 .../rte_flow_classify_parse.c                 |   8 +-
 5 files changed, 230 insertions(+), 27 deletions(-)
  

Comments

Stephen Hemminger June 12, 2023, 9:14 p.m. UTC | #1
On Mon, 13 Jan 2020 18:05:28 +0000
Sowmini Varadhan <sowmini05@gmail.com> wrote:

> V2 updates: checkpatch fixes, revert accidently spelling error
> introduced in V1;
> 
> The problem space of TCP flow tracking and classification
> based on TCP state requires the ability to classify TCP
> flows on more packet properties than just the 4-tuple,
> e.g., TCP flags. This patch-set investigates the set of
> changes needed in the examples/flow_classify.c needed to
> achieve this.
> 
> Patch 1 extends examples/flow_classify.c to allow constraints
> on tcp flags. Patch 2 extends the ACL handling in  
> librte_flow_classify to include keys on the properties in 
> addition to the tcp 4-tuple.
> 
> Note that one particular part of this patch-set where feedback
> is requested is in allocate_acl_ipv4_tcp_5tuple_rule():
> we need to add a key for the 8 bit flags, but the multibit
> trie lookup moves in steps of 4 bytes, so it took some hackery
> to figure out what byte-ordering was expected, and there were
> no documentation/examples to provide guidelines. Comments/suggestions
> would be particularly helpful.
> 
> Sowmini Varadhan (2):
>   Hooks to allow the setting of filters on tcp flags
>   Allow the flow_classify example to add an ACL table for tcp.
> 
>  examples/flow_classify/flow_classify.c        | 121 +++++++++++++++---
>  examples/flow_classify/ipv4_rules_file.txt    |  22 ++--
>  lib/librte_flow_classify/rte_flow_classify.c  |  87 +++++++++++++
>  lib/librte_flow_classify/rte_flow_classify.h  |  19 +++
>  .../rte_flow_classify_parse.c                 |   8 +-
>  5 files changed, 230 insertions(+), 27 deletions(-)
> 

Is anyone still interested in this patch?
It would need work for DPDK 23.08 or later code base.
For now, marking it as "Changes Requested"