Userspace datapath can be made faster by streamlining the flow extraction code. We already use miniflows internally within the classifier. This series of patches changes flow extraction to use miniflow directly, and then also use the extracted miniflow as a lookup key in the classifier. This means less memory is touched by each packet passing through the datapath. Only when a packet miss is generated is the miniflow key expanded to a full struct flow.
Jarno Rajahalme (5): lib/flow: Introduce miniflow_extract(). lib/flow: Add miniflow accessors and miniflow_get_tcp_flags(). lib/flow: Possibly faster miniflow_hash_in_minimask() classifier: Support miniflow as a key. dpif-netdev: Use miniflow as a flow key. lib/byte-order.h | 12 + lib/classifier.c | 62 +++ lib/classifier.h | 3 + lib/dpif-netdev.c | 52 ++- lib/flow.c | 842 +++++++++++++++++++++++----------------- lib/flow.h | 206 ++++++++-- lib/match.c | 2 +- lib/nx-match.c | 2 +- lib/ofp-util.c | 2 +- lib/packets.h | 52 +-- ofproto/ofproto-dpif-monitor.h | 1 + ofproto/ofproto-dpif-xlate.c | 2 +- tests/test-classifier.c | 2 +- 13 files changed, 802 insertions(+), 438 deletions(-) -- 1.7.10.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev