This patchset extends the softnic device by implementing the software fallback for flow classification as defined using Flow APIs. When feature is enabled, softnic classifies and executes actions on the received packets based on flow rules specified using rte_flow.h.
The motivation behind this feature is to implement metering and policing function in softnic which requires each flow to be classified at the preceding stage of the packet processing pipeline. Another aspect is to support classification of the greater number of flows (For e.g. 64K) which is not feasible in some hardware due to resource limitation such as memory, etc. This feature, inherently, uses the abstraction provided by dpdk librte_table library to create hash table for classification, and allows users to validate, add and delete flow rules. Current version does not implement all functions and will be completed in the next version. Jasvinder Singh (2): net/softnic: add flow classification support net/softnic: add flow classification ops drivers/net/softnic/Makefile | 2 +- drivers/net/softnic/rte_eth_softnic.c | 389 +++++++++++++- drivers/net/softnic/rte_eth_softnic.h | 16 + drivers/net/softnic/rte_eth_softnic_fc.c | 680 ++++++++++++++++++++++++ drivers/net/softnic/rte_eth_softnic_internals.h | 162 +++++- mk/rte.app.mk | 2 + 6 files changed, 1240 insertions(+), 11 deletions(-) create mode 100644 drivers/net/softnic/rte_eth_softnic_fc.c -- 2.9.3