aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/openvswitch.h
diff options
context:
space:
mode:
authorNeil McKee <neil.mckee@inmon.com>2015-05-26 23:59:43 -0400
committerDavid S. Miller <davem@davemloft.net>2015-06-01 18:05:40 -0400
commitccea74457bbdafe33dce8bffcb5cb183aeb5f2bb (patch)
treeb8c195485a704d7360a59f6a42c02f820c2c4a46 /include/uapi/linux/openvswitch.h
parentbdef7de4b8d9be4cf7bf5aea977f827310ab3ff0 (diff)
openvswitch: include datapath actions with sampled-packet upcall to userspace
If new optional attribute OVS_USERSPACE_ATTR_ACTIONS is added to an OVS_ACTION_ATTR_USERSPACE action, then include the datapath actions in the upcall. This Directly associates the sampled packet with the path it takes through the virtual switch. Path information currently includes mangling, encapsulation and decapsulation actions for tunneling protocols GRE, VXLAN, Geneve, MPLS and QinQ, but this extension requires no further changes to accommodate datapath actions that may be added in the future. Adding path information enhances visibility into complex virtual networks. Signed-off-by: Neil McKee <neil.mckee@inmon.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/uapi/linux/openvswitch.h')
-rw-r--r--include/uapi/linux/openvswitch.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h
index bbd49a0c46c7..1dab77601c21 100644
--- a/include/uapi/linux/openvswitch.h
+++ b/include/uapi/linux/openvswitch.h
@@ -153,6 +153,8 @@ enum ovs_packet_cmd {
153 * flow key against the kernel's. 153 * flow key against the kernel's.
154 * @OVS_PACKET_ATTR_ACTIONS: Contains actions for the packet. Used 154 * @OVS_PACKET_ATTR_ACTIONS: Contains actions for the packet. Used
155 * for %OVS_PACKET_CMD_EXECUTE. It has nested %OVS_ACTION_ATTR_* attributes. 155 * for %OVS_PACKET_CMD_EXECUTE. It has nested %OVS_ACTION_ATTR_* attributes.
156 * Also used in upcall when %OVS_ACTION_ATTR_USERSPACE has optional
157 * %OVS_USERSPACE_ATTR_ACTIONS attribute.
156 * @OVS_PACKET_ATTR_USERDATA: Present for an %OVS_PACKET_CMD_ACTION 158 * @OVS_PACKET_ATTR_USERDATA: Present for an %OVS_PACKET_CMD_ACTION
157 * notification if the %OVS_ACTION_ATTR_USERSPACE action specified an 159 * notification if the %OVS_ACTION_ATTR_USERSPACE action specified an
158 * %OVS_USERSPACE_ATTR_USERDATA attribute, with the same length and content 160 * %OVS_USERSPACE_ATTR_USERDATA attribute, with the same length and content
@@ -528,6 +530,7 @@ enum ovs_sample_attr {
528 * copied to the %OVS_PACKET_CMD_ACTION message as %OVS_PACKET_ATTR_USERDATA. 530 * copied to the %OVS_PACKET_CMD_ACTION message as %OVS_PACKET_ATTR_USERDATA.
529 * @OVS_USERSPACE_ATTR_EGRESS_TUN_PORT: If present, u32 output port to get 531 * @OVS_USERSPACE_ATTR_EGRESS_TUN_PORT: If present, u32 output port to get
530 * tunnel info. 532 * tunnel info.
533 * @OVS_USERSPACE_ATTR_ACTIONS: If present, send actions with upcall.
531 */ 534 */
532enum ovs_userspace_attr { 535enum ovs_userspace_attr {
533 OVS_USERSPACE_ATTR_UNSPEC, 536 OVS_USERSPACE_ATTR_UNSPEC,
@@ -535,6 +538,7 @@ enum ovs_userspace_attr {
535 OVS_USERSPACE_ATTR_USERDATA, /* Optional user-specified cookie. */ 538 OVS_USERSPACE_ATTR_USERDATA, /* Optional user-specified cookie. */
536 OVS_USERSPACE_ATTR_EGRESS_TUN_PORT, /* Optional, u32 output port 539 OVS_USERSPACE_ATTR_EGRESS_TUN_PORT, /* Optional, u32 output port
537 * to get tunnel info. */ 540 * to get tunnel info. */
541 OVS_USERSPACE_ATTR_ACTIONS, /* Optional flag to get actions. */
538 __OVS_USERSPACE_ATTR_MAX 542 __OVS_USERSPACE_ATTR_MAX
539}; 543};
540 544