dpif-netdev: Implement the API functions to allow multiple handler
authorAlex Wang <alexw@nicira.com>
Wed, 26 Feb 2014 18:07:38 +0000 (10:07 -0800)
committerAlex Wang <alexw@nicira.com>
Thu, 20 Mar 2014 17:27:20 +0000 (10:27 -0700)
commit63be20bee256f305801c0674b29e5773355d2379
tree87b31439e7657bb454f907b3ca4b26152310ad5c
parent1954e6bbcb7dabbbcee3dfc6f0363e32fde255b0
dpif-netdev: Implement the API functions to allow multiple handler
threads read upcall.

This commit implements the API functions to allow multiple handler
threads read upcall.

Also, this commit removes the handling priority of DPIF_UC_MISS
over DPIF_UC_ACTION.  So, both misses will be put to the same
queue.  The decision is based on the fact that a lot has changed
since the age when flow setup rate is most treasured and starving
all actions in the presence of any flow misses doesn't seem like
a sound balancing solution.

Thusly the current implementation will be put in testing and
investigation for better balancing solution will continue if
there is an issue.

Also note, the introduction and use of flow_hash_5tuple() will
put missed ICMP packets from same source but with different
type/code to different handler queues.  This may cause reordering
of these packets.  For now, we do not count this as a problem.

Signed-off-by: Alex Wang <alexw@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
lib/dpif-netdev.c
lib/flow.c
lib/flow.h