History

openvswitch: Extend ct_state match field to 32 bits

The ct_state field was initially added as an 8-bit field, however six of the bits are already being used and use cases are already starting to appear that may push the limits of this field. This patch extends the field to 32 bits while retaining the internal representation of 8 bits. This should cover forward compatibility of the ABI for the foreseeable future. This patch also reorders the OVS_CS_F_* bits to be sequential.

Joe Stringer committed 11 years ago

Commit fbccce51 parent 6f225954 files · +11 −11Browse files

Showing the changes to include/uapi (1 of 4 files). Show all

Unified · Split

include/uapi/linux/openvswitch.h+4−4
@@ -323,7 +323,7 @@ enum ovs_key_attr { · 322 unmodified lines
323 OVS_KEY_ATTR_MPLS, /* array of struct ovs_key_mpls.323 OVS_KEY_ATTR_MPLS, /* array of struct ovs_key_mpls.
324 * The implementation may restrict324 * The implementation may restrict
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, /* u32 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 OVS_KEY_ATTR_CT_MARK, /* u32 connection tracking mark */
329 OVS_KEY_ATTR_CT_LABELS, /* 16-octet connection tracking label */329 OVS_KEY_ATTR_CT_LABELS, /* 16-octet connection tracking label */
@@ -449,9 +449,9 @@ struct ovs_key_ct_labels { · 119 unmodified lines
449#define OVS_CS_F_ESTABLISHED 0x02 /* Part of an existing connection. */449#define OVS_CS_F_ESTABLISHED 0x02 /* Part of an existing connection. */
450#define OVS_CS_F_RELATED 0x04 /* Related to an established450#define OVS_CS_F_RELATED 0x04 /* Related to an established
451 * connection. */451 * connection. */
452#define OVS_CS_F_INVALID 0x20 /* Could not track connection. */452#define OVS_CS_F_REPLY_DIR 0x08 /* Flow is in the reply direction. */
453#define OVS_CS_F_REPLY_DIR 0x40 /* Flow is in the reply direction. */453#define OVS_CS_F_INVALID 0x10 /* Could not track connection. */
454#define OVS_CS_F_TRACKED 0x80 /* Conntrack has occurred. */454#define OVS_CS_F_TRACKED 0x20 /* Conntrack has occurred. */
455 455
456/**456/**
457 * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands.457 * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands.