X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=ofproto%2Fofproto-dpif-xlate.c;h=7be691c7fc31c3a90d3f92cf8091e86518584618;hb=ff3c2c63af78b71d77eb119bd6398783a28b6f4c;hp=75fd84bc002645ffd1af8cb252f3cd996ae310bc;hpb=04f01c24b522f893b663a34126beb6775176e536;p=sliver-openvswitch.git diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c index 75fd84bc0..7be691c7f 100644 --- a/ofproto/ofproto-dpif-xlate.c +++ b/ofproto/ofproto-dpif-xlate.c @@ -2376,6 +2376,21 @@ do_xlate_actions(const struct ofpact *ofpacts, size_t ofpacts_len, } break; + case OFPACT_SET_IP_ECN: + if (is_ip_any(flow)) { + wc->masks.nw_tos |= IP_ECN_MASK; + flow->nw_tos &= ~IP_ECN_MASK; + flow->nw_tos |= ofpact_get_SET_IP_ECN(a)->ecn; + } + break; + + case OFPACT_SET_IP_TTL: + if (is_ip_any(flow)) { + wc->masks.nw_ttl = 0xff; + flow->nw_ttl = ofpact_get_SET_IP_TTL(a)->ttl; + } + break; + case OFPACT_SET_L4_SRC_PORT: if (is_ip_any(flow)) { memset(&wc->masks.nw_proto, 0xff, sizeof wc->masks.nw_proto);