]> git.proxmox.com Git - ovs.git/commit
ofproto-dpif-xlate: Adjust generated mask for fragments.
authorDaniele Di Proietto <diproiettod@vmware.com>
Thu, 25 Aug 2016 16:48:56 +0000 (09:48 -0700)
committerDaniele Di Proietto <diproiettod@vmware.com>
Thu, 22 Sep 2016 01:02:59 +0000 (18:02 -0700)
commit4a7ab326dccec8df3494833420433051e2b56be5
tree3dbca29b866b448792b2cd15854847a0d4526dee
parent853cca3f500ac064aec9f57b8b46713af9fae5a1
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@vmware.com>
Acked-by: Jarno Rajahalme <jarno@ovn.org>
lib/bfd.c
ofproto/ofproto-dpif-xlate.c
tests/ofproto-dpif.at