diff options
author | Ben Pfaff <blp@ovn.org> | 2018-12-14 18:16:53 -0800 |
---|---|---|
committer | Ben Pfaff <blp@ovn.org> | 2019-01-18 14:08:40 -0800 |
commit | 29b5c0c3648adce21ba0b24e0dfecc63aea820df (patch) | |
tree | 776922936f7fd4b13f7c12ffb516a3e7e0eb8a6d /Vagrantfile | |
parent | 99a542ea8bea4376e819cdbc7d811f6ce84efb9c (diff) | |
download | openvswitch-29b5c0c3648adce21ba0b24e0dfecc63aea820df.tar.gz |
Fix bugs in L3 protocol support.
Test 854 "tunnel_push_pop - action" showed problems in revalidation for
L3 protocol support in its L3 GRE test. L3 packets (that is, packets
without an Ethernet header but only some L3 protocol such as IPv4 or IPv6)
have an Ethernet type that is kept in the dl_type member of the flow, and
the flows that they pass through can cause L3 and L4 fields to be matched.
However, the translation process incorrectly forced the dl_type to be
wildcarded, which caused a contradiction since it's not possible to match
on L3 and L4 fields if the dl_type is not known, and the code in
odp_flow_key_to_flow() and related functions therefore rejected these flows
at revalidation time.
This commit fixes the problem by treating dl_type the same for L2 and L3
flows in translation. It also makes odp_flow_key_to_flow__() copy the
Ethernet type that comes from a packet_type field into dl_type, which is
the expected behavior.
The actual error that this fixes is only visible after applying an upcoming
commit that improves logging for bad datapath flows.
Acked-by: Justin Pettit <jpettit@ovn.org>
Signed-off-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'Vagrantfile')
0 files changed, 0 insertions, 0 deletions