summaryrefslogtreecommitdiff
path: root/ovsdb/ovsdb-client.c
diff options
context:
space:
mode:
authorBen Pfaff <blp@ovn.org>2018-03-14 14:57:23 -0700
committerBen Pfaff <blp@ovn.org>2018-03-14 16:44:38 -0700
commitefde188622aea5c2137e931f4a446c511676ba32 (patch)
treec46a4526563b16f8e21a6d1c10cd3df6dc293f35 /ovsdb/ovsdb-client.c
parentdfec5030fc7ccfa579a4c34ab57ba98e55f96632 (diff)
downloadopenvswitch-efde188622aea5c2137e931f4a446c511676ba32.tar.gz
odp-util: Print eth() for Ethernet flows if packet_type is absent.
OVS datapaths have two different ways to indicate what kind of packet a flow matches. One way, used by the userspace datapath, is OVS_KEY_ATTR_PACKET_TYPE. Another way, used by the kernel datapath, is OVS_KEY_ATTR_ETHERTYPE when used in the absence of OVS_KEY_ATTR_ETHERNET; when the latter is present, the packet is always an Ethernet packet. The code to print datapath flows wasn't paying attention to this distinction and always omitted eth() from the output when OVS_KEY_ATTR_ETHERNET was fully wildcarded, which meant that upon later re-parsing the OVS_KEY_ATTR_ETHERNET key was omitted, which made it look like a non-Ethernet match was being described. This commit makes odp_util_format() add eth() to the output when OVS_KEY_ATTR_ETHERNET is present and OVS_KEY_ATTR_PACKET_TYPE is absent, avoiding the problem. Reported-by: Amar Padmanabhan <amarpadmanabhan@fb.com> Reported-at: https://mail.openvswitch.org/pipermail/ovs-discuss/2017-December/045817.html Reported-by: Su Wang <suwang@vmware.com> VMWare-BZ: #2070488 Signed-off-by: Ben Pfaff <blp@ovn.org> Tested-by: Yi-Hung Wei <yihung.wei@gmail.com> Acked-by: Yi-Hung Wei <yihung.wei@gmail.com>
Diffstat (limited to 'ovsdb/ovsdb-client.c')
0 files changed, 0 insertions, 0 deletions