mirror of
https://github.com/openvswitch/ovs
synced 2025-08-30 22:05:19 +00:00
Add connection tracking mark support.
This patch adds a new 32-bit metadata field to the connection tracking interface. When a mark is specified as part of the ct action and the connection is committed, the value is saved with the current connection. Subsequent ct lookups with the table specified will expose this metadata as the "ct_mark" field in the flow. For example, to allow new TCP connections from port 1->2 and only allow established connections from port 2->1, and to associate a mark with those connections: table=0,priority=1,action=drop table=0,arp,action=normal table=0,in_port=1,tcp,action=ct(commit,exec(set_field:1->ct_mark)),2 table=0,in_port=2,ct_state=-trk,tcp,action=ct(table=1) table=1,in_port=2,ct_state=+trk,ct_mark=1,tcp,action=1 Signed-off-by: Joe Stringer <joestringer@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
This commit is contained in:
@@ -328,6 +328,7 @@ odp_execute_set_action(struct dp_packet *packet, const struct nlattr *a)
|
||||
case OVS_KEY_ATTR_TCP_FLAGS:
|
||||
case OVS_KEY_ATTR_CT_STATE:
|
||||
case OVS_KEY_ATTR_CT_ZONE:
|
||||
case OVS_KEY_ATTR_CT_MARK:
|
||||
case __OVS_KEY_ATTR_MAX:
|
||||
default:
|
||||
OVS_NOT_REACHED();
|
||||
@@ -418,6 +419,7 @@ odp_execute_masked_set_action(struct dp_packet *packet,
|
||||
case OVS_KEY_ATTR_UNSPEC:
|
||||
case OVS_KEY_ATTR_CT_STATE:
|
||||
case OVS_KEY_ATTR_CT_ZONE:
|
||||
case OVS_KEY_ATTR_CT_MARK:
|
||||
case OVS_KEY_ATTR_ENCAP:
|
||||
case OVS_KEY_ATTR_ETHERTYPE:
|
||||
case OVS_KEY_ATTR_IN_PORT:
|
||||
|
Reference in New Issue
Block a user