|
@@ -291,7 +291,7 @@ size_t ovs_key_attr_size(void)
|
|
|
+ nla_total_size(4) /* OVS_KEY_ATTR_SKB_MARK */
|
|
|
+ nla_total_size(4) /* OVS_KEY_ATTR_DP_HASH */
|
|
|
+ nla_total_size(4) /* OVS_KEY_ATTR_RECIRC_ID */
|
|
|
- + nla_total_size(1) /* OVS_KEY_ATTR_CT_STATE */
|
|
|
+ + nla_total_size(4) /* OVS_KEY_ATTR_CT_STATE */
|
|
|
+ nla_total_size(2) /* OVS_KEY_ATTR_CT_ZONE */
|
|
|
+ nla_total_size(4) /* OVS_KEY_ATTR_CT_MARK */
|
|
|
+ nla_total_size(16) /* OVS_KEY_ATTR_CT_LABELS */
|
|
@@ -349,7 +349,7 @@ static const struct ovs_len_tbl ovs_key_lens[OVS_KEY_ATTR_MAX + 1] = {
|
|
|
[OVS_KEY_ATTR_TUNNEL] = { .len = OVS_ATTR_NESTED,
|
|
|
.next = ovs_tunnel_key_lens, },
|
|
|
[OVS_KEY_ATTR_MPLS] = { .len = sizeof(struct ovs_key_mpls) },
|
|
|
- [OVS_KEY_ATTR_CT_STATE] = { .len = sizeof(u8) },
|
|
|
+ [OVS_KEY_ATTR_CT_STATE] = { .len = sizeof(u32) },
|
|
|
[OVS_KEY_ATTR_CT_ZONE] = { .len = sizeof(u16) },
|
|
|
[OVS_KEY_ATTR_CT_MARK] = { .len = sizeof(u32) },
|
|
|
[OVS_KEY_ATTR_CT_LABELS] = { .len = sizeof(struct ovs_key_ct_labels) },
|
|
@@ -814,10 +814,10 @@ static int metadata_from_nlattrs(struct net *net, struct sw_flow_match *match,
|
|
|
|
|
|
if (*attrs & (1 << OVS_KEY_ATTR_CT_STATE) &&
|
|
|
ovs_ct_verify(net, OVS_KEY_ATTR_CT_STATE)) {
|
|
|
- u8 ct_state = nla_get_u8(a[OVS_KEY_ATTR_CT_STATE]);
|
|
|
+ u32 ct_state = nla_get_u32(a[OVS_KEY_ATTR_CT_STATE]);
|
|
|
|
|
|
if (!is_mask && !ovs_ct_state_supported(ct_state)) {
|
|
|
- OVS_NLERR(log, "ct_state flags %02x unsupported",
|
|
|
+ OVS_NLERR(log, "ct_state flags %08x unsupported",
|
|
|
ct_state);
|
|
|
return -EINVAL;
|
|
|
}
|