@@ -52,7 +52,7 @@ struct netlink_field {
int size;
};
-static struct netlink_field set_flower_map[][3] = {
+static struct netlink_field set_flower_map[][4] = {
[OVS_KEY_ATTR_IPV4] = {
{ offsetof(struct ovs_key_ipv4, ipv4_src),
offsetof(struct tc_flower_key, ipv4.ipv4_src),
@@ -66,6 +66,10 @@ static struct netlink_field set_flower_map[][3] = {
offsetof(struct tc_flower_key, ipv4.rewrite_ttl),
MEMBER_SIZEOF(struct tc_flower_key, ipv4.rewrite_ttl)
},
+ { offsetof(struct ovs_key_ipv4, ipv4_tos),
+ offsetof(struct tc_flower_key, ipv4.rewrite_tos),
+ MEMBER_SIZEOF(struct tc_flower_key, ipv4.rewrite_tos)
+ },
},
[OVS_KEY_ATTR_IPV6] = {
{ offsetof(struct ovs_key_ipv6, ipv6_src),
@@ -91,6 +91,11 @@ static struct flower_key_to_pedit flower_pedit_map[] = {
8,
offsetof(struct tc_flower_key, ipv4.rewrite_ttl),
MEMBER_SIZEOF(struct tc_flower_key, ipv4.rewrite_ttl)
+ }, {
+ TCA_PEDIT_KEY_EX_HDR_TYPE_IP4,
+ 1,
+ offsetof(struct tc_flower_key, ipv4.rewrite_tos),
+ MEMBER_SIZEOF(struct tc_flower_key, ipv4.rewrite_tos)
}, {
TCA_PEDIT_KEY_EX_HDR_TYPE_IP6,
7,
@@ -103,6 +103,7 @@ struct tc_flower_key {
ovs_be32 ipv4_src;
ovs_be32 ipv4_dst;
uint8_t rewrite_ttl;
+ uint8_t rewrite_tos;
} ipv4;
struct {
struct in6_addr ipv6_src;