Skip to content

RFC TCP flow classification using 4-tuple and flags

Sowmini Varadhan dpdk-dev 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 RFC Latest2 patches 1 replyIn review
  2. v1 RFC2 patches 0 repliesSuperseded

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2Hooks to allow the setting of filters on tcp flagsexamples/flow_classify/flow_classify.c examples/flow_classify/ipv4_rules_file.txt+91 -180 replies
2/2Allow the flow_classify example to add an ACL table for tcp.examples/flow_classify/flow_classify.c lib/librte_flow_classify/rte_flow_classify.c lib/librte_flow_classify/rte_flow_classify.h +1 more+144 -141 reply

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [dpdk-dev] [PATCH RFC V2 0/2] TCP flow classification using 4-tuple and flags

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(-)
Signature · 1 line
2.20.1