[ovs-dev] [PATCH] Decode the NXT_RESUME message with a loose match.

nusiddiq at redhat.com nusiddiq at redhat.com
Wed Mar 22 16:00:36 UTC 2017


From: Numan Siddique <nusiddiq at redhat.com>

When ovs-vswitchd sends the NX_PACKET_IN2 message, it may not
encode ETH_TYPE of the packet. And with the commit daf4d3c18da
("odp: Support conntrack orig tuple key."), the conntrack fields
are encoded, if set. After the commit 7befb20d0f70
("nx-match: Fix oxm decode."), ovs-vswitchd is sending OFPBMC_BAD_PREREQ
message to the controller for the resumed packets (having conntract
fields).

With the loose match criteria set to false when
ofputil_decode_packet_in_private() is called, the prerequisite check
for the mf field "ct_nw_src" is failing as ETH_TYPE is not set.

Reported-by: Dong Jun <dongj at dtdream.com>
Reported-at: https://mail.openvswitch.org/pipermail/ovs-dev/2017-March/330052.html
Fixes: 7befb20d0f70 ("nx-match: Fix oxm decode.")
Signed-off-by: Numan Siddique <nusiddiq at redhat.com>
---
 ofproto/ofproto.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
index 84ea95b..4aa5966 100644
--- a/ofproto/ofproto.c
+++ b/ofproto/ofproto.c
@@ -3578,7 +3578,7 @@ handle_nxt_resume(struct ofconn *ofconn, const struct ofp_header *oh)
     struct ofputil_packet_in_private pin;
     enum ofperr error;
 
-    error = ofputil_decode_packet_in_private(oh, false,
+    error = ofputil_decode_packet_in_private(oh, true,
                                              ofproto_get_tun_tab(ofproto),
                                              &ofproto->vl_mff_map, &pin, NULL,
                                              NULL);
-- 
2.9.3



More information about the dev mailing list