aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/openvswitch.h
diff options
context:
space:
mode:
authorJoe Stringer <joestringer@nicira.com>2015-08-26 14:31:49 -0400
committerDavid S. Miller <davem@davemloft.net>2015-08-27 14:40:43 -0400
commit182e3042e15de759e81618d11fe4f62f5259d982 (patch)
treeb4b79ba4ac69efbbf7e49d99e0d8ce451ee1f43b /include/uapi/linux/openvswitch.h
parent7f8a436eaa2c3ddd8e1ff2fbca267e6275085536 (diff)
openvswitch: Allow matching on conntrack mark
Allow matching and setting the ct_mark field. As with ct_state and ct_zone, these fields are populated when the CT action is executed. To write to this field, a value and mask can be specified as a nested attribute under the CT action. This data is stored with the conntrack entry, and is executed after the lookup occurs for the CT action. The conntrack entry itself must be committed using the COMMIT flag in the CT action flags for this change to persist. Signed-off-by: Justin Pettit <jpettit@nicira.com> Signed-off-by: Joe Stringer <joestringer@nicira.com> Acked-by: Thomas Graf <tgraf@suug.ch> Acked-by: Pravin B Shelar <pshelar@nicira.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.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h
index 55f599792673..7a185b554343 100644
--- a/include/uapi/linux/openvswitch.h
+++ b/include/uapi/linux/openvswitch.h
@@ -325,6 +325,7 @@ enum ovs_key_attr {
325 * the accepted length of the array. */ 325 * the accepted length of the array. */
326 OVS_KEY_ATTR_CT_STATE, /* u8 bitmask of OVS_CS_F_* */ 326 OVS_KEY_ATTR_CT_STATE, /* u8 bitmask of OVS_CS_F_* */
327 OVS_KEY_ATTR_CT_ZONE, /* u16 connection tracking zone. */ 327 OVS_KEY_ATTR_CT_ZONE, /* u16 connection tracking zone. */
328 OVS_KEY_ATTR_CT_MARK, /* u32 connection tracking mark */
328 329
329#ifdef __KERNEL__ 330#ifdef __KERNEL__
330 OVS_KEY_ATTR_TUNNEL_INFO, /* struct ip_tunnel_info */ 331 OVS_KEY_ATTR_TUNNEL_INFO, /* struct ip_tunnel_info */
@@ -613,11 +614,15 @@ struct ovs_action_hash {
613 * enum ovs_ct_attr - Attributes for %OVS_ACTION_ATTR_CT action. 614 * enum ovs_ct_attr - Attributes for %OVS_ACTION_ATTR_CT action.
614 * @OVS_CT_ATTR_FLAGS: u32 connection tracking flags. 615 * @OVS_CT_ATTR_FLAGS: u32 connection tracking flags.
615 * @OVS_CT_ATTR_ZONE: u16 connection tracking zone. 616 * @OVS_CT_ATTR_ZONE: u16 connection tracking zone.
617 * @OVS_CT_ATTR_MARK: u32 value followed by u32 mask. For each bit set in the
618 * mask, the corresponding bit in the value is copied to the connection
619 * tracking mark field in the connection.
616 */ 620 */
617enum ovs_ct_attr { 621enum ovs_ct_attr {
618 OVS_CT_ATTR_UNSPEC, 622 OVS_CT_ATTR_UNSPEC,
619 OVS_CT_ATTR_FLAGS, /* u8 bitmask of OVS_CT_F_*. */ 623 OVS_CT_ATTR_FLAGS, /* u8 bitmask of OVS_CT_F_*. */
620 OVS_CT_ATTR_ZONE, /* u16 zone id. */ 624 OVS_CT_ATTR_ZONE, /* u16 zone id. */
625 OVS_CT_ATTR_MARK, /* mark to associate with this connection. */
621 __OVS_CT_ATTR_MAX 626 __OVS_CT_ATTR_MAX
622}; 627};
623 628