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

Reply via email to