openvswitch: kernel datapath clone action

Add 'clone' action to kernel datapath by using existing functions.
When actions within clone don't modify the current flow, the flow
key is not cloned before executing clone actions.

This is a follow up patch for this incomplete work:
https://patchwork.ozlabs.org/patch/722096/

v1 -> v2:
Refactor as advised by reviewer.

Signed-off-by: Yifeng Sun <pkusunyifeng@gmail.com>
Signed-off-by: Andy Zhou <azhou@ovn.org>
Acked-by: Pravin B Shelar <pshelar@ovn.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Yifeng Sun 2018-07-02 08:18:03 -07:00 committed by David S. Miller
parent 20fbdc3572
commit b233504033
4 changed files with 114 additions and 0 deletions

View file

@ -21,4 +21,9 @@
#include <uapi/linux/openvswitch.h>
#define OVS_CLONE_ATTR_EXEC 0 /* Specify an u32 value. When nonzero,
* actions in clone will not change flow
* keys. False otherwise.
*/
#endif /* _LINUX_OPENVSWITCH_H */