ofproto: Optimize datapath actions.
authorEthan Jackson <ethan@nicira.com>
Fri, 27 May 2011 17:48:58 +0000 (10:48 -0700)
committerEthan Jackson <ethan@nicira.com>
Wed, 1 Jun 2011 21:30:10 +0000 (14:30 -0700)
commitb3e9b2eda9ae5be2ac2b7917858732738a818b66
tree85d53fdfb410e2a9c3496ea510545ba08a91c600
parentafabef2b7de84e628b1f2f1ba2e92ec734463eda
ofproto: Optimize datapath actions.

The translation from ofproto to datapath actions has historically
been fairly naive.  Since redundant ODP actions result in more code
execution in the fast path, this patch changes xlate_actions() to
emit fewer ODP actions for a given flow.

This change is not simply a theoretical optimization.  It actually
reduces the number of ODP actions for real flow tables which
Nicira's controllers use in practice.  Furthermore, removing
unnecessary modification actions after the last output action has
the added benefit of saving a whole skb_clone() in the fast path.
ofproto/ofproto-dpif.c