[ovs-dev] [PATCH] ofproto-dpif-upcall: Fix using uninitialized fitness.
Ilya Maximets
i.maximets at samsung.com
Wed Feb 21 12:09:00 UTC 2018
'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 <blp at ovn.org>
Fixes: 687bafbb8a79 ("ofproto-dpif-upcall: Slow path flows that
datapath can't fully match.")
Signed-off-by: Ilya Maximets <i.maximets at 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
More information about the dev
mailing list