'upcall_xlate()' makes a decision to compose slow path actions by checking the 'upcall->fitness', which is not initialized in case of calling from the 'upcall_cb()'.
'upcall_cb()' receives the real flow, so the fitness should be initialized as perfect. Fixes following tests on travis: ofproto-dpif.at: ofproto-dpif megaflow - disabled - pmd ofproto-dpif.at: ofproto-dpif - conntrack - output action CC: Ben Pfaff <b...@ovn.org> Fixes: 687bafbb8a79 ("ofproto-dpif-upcall: Slow path flows that datapath can't fully match.") Signed-off-by: Ilya Maximets <i.maxim...@samsung.com> --- ofproto/ofproto-dpif-upcall.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c index 5eb20f7..ba712ca 100644 --- a/ofproto/ofproto-dpif-upcall.c +++ b/ofproto/ofproto-dpif-upcall.c @@ -1254,7 +1254,9 @@ upcall_cb(const struct dp_packet *packet, const struct flow *flow, ovs_u128 *ufi { static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 1); struct udpif *udpif = aux; - struct upcall upcall; + struct upcall upcall = { + .fitness = ODP_FIT_PERFECT, + }; bool megaflow; int error; -- 2.7.4 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev