From: Ethan Jackson Date: Tue, 22 Nov 2011 03:18:14 +0000 (-0800) Subject: ofproto-dpif: Properly update tos and ttl fields. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=be51a44695b8e2a3efd729524b2c08d32ed572db;p=openvswitch ofproto-dpif: Properly update tos and ttl fields. ofproto-dpif failed to update the base flow's tos and ttl fields when preparing for an output action. This could cause redundant updates of those fields in the datapath. A future patch adds a test which could have caught the issue for the tos bits. --- diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c index afdd0850..68a87d59 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -3698,9 +3698,9 @@ commit_set_nw_action(const struct flow *flow, struct flow *base, ipv4_key.ipv4_src = base->nw_src = flow->nw_src; ipv4_key.ipv4_dst = base->nw_dst = flow->nw_dst; + ipv4_key.ipv4_tos = base->nw_tos = flow->nw_tos; + ipv4_key.ipv4_ttl = base->nw_ttl = flow->nw_ttl; ipv4_key.ipv4_proto = base->nw_proto; - ipv4_key.ipv4_tos = flow->nw_tos; - ipv4_key.ipv4_ttl = flow->nw_ttl; ipv4_key.ipv4_frag = (base->nw_frag == 0 ? OVS_FRAG_TYPE_NONE : base->nw_frag == FLOW_NW_FRAG_ANY ? OVS_FRAG_TYPE_FIRST : OVS_FRAG_TYPE_LATER);