Thanks Ilya for pointing it out. It should be inserted after key length calculation.
Acked-by: Yipeng Wang <[email protected]> >-----Original Message----- >From: Ilya Maximets [mailto:[email protected]] >Sent: Wednesday, July 25, 2018 9:10 AM >To: [email protected]; Wang, Yipeng1 <[email protected]> >Cc: Ben Pfaff <[email protected]>; Stokes, Ian <[email protected]>; Jan >Scheurich <[email protected]>; O Mahony, Billy ><[email protected]>; Ilya Maximets <[email protected]> >Subject: [PATCH] dpif-netdev: Fix zero length keys insertion to EMC. > >'key.len' should be calculated before inserting to EMC, otherwise >resulting entry will match with any packet with the same hash. > >CC: Yipeng Wang <[email protected]> >Fixes: 60d8ccae135f ("dpif-netdev: Add SMC cache after EMC cache") >Signed-off-by: Ilya Maximets <[email protected]> >--- > lib/dpif-netdev.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > >diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c >index 13a20f0..0a833dc 100644 >--- a/lib/dpif-netdev.c >+++ b/lib/dpif-netdev.c >@@ -5810,9 +5810,9 @@ smc_lookup_batch(struct dp_netdev_pmd_thread *pmd, > if (OVS_LIKELY(dpcls_rule_matches_key(&flow->cr, &keys[i]) && > flow->flow.in_port.odp_port == packet->md.in_port.odp_port)) { > /* SMC hit and emc miss, we insert into EMC */ >- emc_probabilistic_insert(pmd, &keys[i], flow); > keys[i].len = > netdev_flow_key_size(miniflow_n_values(&keys[i].mf)); >+ emc_probabilistic_insert(pmd, &keys[i], flow); > dp_netdev_queue_batches(packet, flow, > miniflow_get_tcp_flags(&keys[i].mf), batches, n_batches); > n_smc_hit++; >-- >2.7.4 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
