X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=lib%2Fodp-execute.c;h=b5204b27067743ce9164c4b44b4854e4ab0d87ff;hb=4be4d22c33f67c2154d4252746970ef1032c58a6;hp=4d6384ed054eb4b824a363d465237450fcfca32e;hpb=8e53fe8cf7a178cf9702fb1bb916f4645058e5e7;p=cascardo%2Fovs.git diff --git a/lib/odp-execute.c b/lib/odp-execute.c index 4d6384ed0..b5204b270 100644 --- a/lib/odp-execute.c +++ b/lib/odp-execute.c @@ -301,6 +301,16 @@ odp_execute_set_action(struct dp_packet *packet, const struct nlattr *a) set_arp(packet, nl_attr_get(a), NULL); break; + case OVS_KEY_ATTR_ICMP: + case OVS_KEY_ATTR_ICMPV6: + if (OVS_LIKELY(dp_packet_get_icmp_payload(packet))) { + const struct ovs_key_icmp *icmp_key + = nl_attr_get_unspec(a, sizeof(struct ovs_key_icmp)); + + packet_set_icmp(packet, icmp_key->icmp_type, icmp_key->icmp_code); + } + break; + case OVS_KEY_ATTR_ND: if (OVS_LIKELY(dp_packet_get_nd_payload(packet))) { const struct ovs_key_nd *nd_key @@ -323,12 +333,11 @@ odp_execute_set_action(struct dp_packet *packet, const struct nlattr *a) case OVS_KEY_ATTR_ETHERTYPE: case OVS_KEY_ATTR_IN_PORT: case OVS_KEY_ATTR_VLAN: - case OVS_KEY_ATTR_ICMP: - case OVS_KEY_ATTR_ICMPV6: 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_CT_LABELS: case __OVS_KEY_ATTR_MAX: default: OVS_NOT_REACHED(); @@ -420,6 +429,7 @@ odp_execute_masked_set_action(struct dp_packet *packet, case OVS_KEY_ATTR_CT_STATE: case OVS_KEY_ATTR_CT_ZONE: case OVS_KEY_ATTR_CT_MARK: + case OVS_KEY_ATTR_CT_LABELS: case OVS_KEY_ATTR_ENCAP: case OVS_KEY_ATTR_ETHERTYPE: case OVS_KEY_ATTR_IN_PORT: