[ovs-git] [openvswitch/ovs] 337b9e: ofproto-dpif-xlate: Adjust generated mask for frag...
GitHub
noreply at github.com
Thu Sep 22 01:45:28 UTC 2016
Branch: refs/heads/branch-2.5
Home: https://github.com/openvswitch/ovs
Commit: 337b9ea109b51ab98cb7eb930937063e17f1a919
https://github.com/openvswitch/ovs/commit/337b9ea109b51ab98cb7eb930937063e17f1a919
Author: Daniele Di Proietto <diproiettod at vmware.com>
Date: 2016-09-21 (Wed, 21 Sep 2016)
Changed paths:
M lib/bfd.c
M ofproto/ofproto-dpif-xlate.c
M tests/ofproto-dpif.at
Log Message:
-----------
ofproto-dpif-xlate: Adjust generated mask for fragments.
It's possible to install an OpenFlow flow that matches on udp source and
destination ports without matching on fragments. If the subtable where
such flow stays is visited during translation of a later fragment, the
generated mask will have incorrect prerequisited for the datapath and it
would be revalidated away at the first chance.
This commit fixes it by adjusting the mask for later fragments after
translation.
Other prerequisites of the mask are also prerequisites in OpenFlow, but
not the ip fragment bit, that's why we need a special case here.
For completeness, this commits also fixes a related problem in bfd,
where we check the udp destination port without checking if the frame is
an ip fragment. It's not really necessary to address this separately,
given the adjustment that we perform.
VMware-BZ: #1651589
Signed-off-by: Daniele Di Proietto <diproiettod at vmware.com>
Acked-by: Jarno Rajahalme <jarno at ovn.org>
Commit: db79d7ad2c219813461b474ac453917832151274
https://github.com/openvswitch/ovs/commit/db79d7ad2c219813461b474ac453917832151274
Author: Daniele Di Proietto <diproiettod at vmware.com>
Date: 2016-09-21 (Wed, 21 Sep 2016)
Changed paths:
M lib/flow.h
M lib/tnl-neigh-cache.c
Log Message:
-----------
tnl-neigh-cache: Unwildcard flow members before inspecting them.
tnl_neigh_snoop() is part of the translation. During translation we
have to unwildcard all the fields we examine to make a decision.
tnl_arp_snoop() and tnl_nd_snoop() failed to unwildcard fileds in case
of failure. The solution is to do unwildcarding before the field is
inspected.
Signed-off-by: Daniele Di Proietto <diproiettod at vmware.com>
Acked-by: Jarno Rajahalme <jarno at ovn.org>
Compare: https://github.com/openvswitch/ovs/compare/3678ada8ffb2...db79d7ad2c21
More information about the git
mailing list