An interesting class of problems is TCP flow tracking and classification based on TCP state, which requires the ability to classify TCP flows on more packet properties than just the 4-tuple
This patch-set investigates the set of changes needed in the examples/flow_classify.c needed to achieve one instance of this class of problems by adding hooks to filter/classify on both the 4-tuple and tcp flags. 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 | 113 ++++++++++++++++-- examples/flow_classify/ipv4_rules_file.txt | 22 ++-- lib/librte_flow_classify/rte_flow_classify.c | 84 +++++++++++++ lib/librte_flow_classify/rte_flow_classify.h | 19 +++ .../rte_flow_classify_parse.c | 8 +- 5 files changed, 221 insertions(+), 25 deletions(-) -- 2.20.1