]> git.proxmox.com Git - mirror_ovs.git/commit
ofproto-dpif: Enhance execute_controller_action().
authorAndy Zhou <azhou@ovn.org>
Mon, 13 Feb 2017 22:28:35 +0000 (14:28 -0800)
committerAndy Zhou <azhou@ovn.org>
Mon, 6 Mar 2017 22:35:13 +0000 (14:35 -0800)
commit27d931da3ac758f580d6ff89410d29ce886d9936
tree0e4b72a86b40687cfedef9040ac9ce8b5851ec4d
parent40225b0c04e2ae3e353cae12b8561ff237125b92
ofproto-dpif: Enhance execute_controller_action().

Allow execute_controller_action() to accept actions encoded with
nested netlink attributes.

execute_controller_action() can be called during 'xlate_actions'. It
tries executes all actions translated so far to get the current packet
that needs to be sent to the controller.  This works fine until when
the action is enclosed within a nested netlink message, and the
action translation has not finished yet.

For example;
A, clone(B, controller, C)

In this case, we can not execute 'clone' since its translation has not
be finished (missing C), However, A still needs to be executed before
the packet can be sent to the controller.

This solution is to make a copy of the odp actions translated so far,
and 'fix up' the copy so that it can be executed. The original odp
actions are left intact so that xlate can continue.

Signed-off-by: Andy Zhou <azhou@ovn.org>
Acked-by: Jarno Rajahalme <jarno@ovn.org>
ofproto/ofproto-dpif-xlate.c