On Sun, Jul 19, 2020 at 04:15:09PM +0200, Ilya Maximets wrote: > Since commit 8e4e45887ec3, priority of 'local' route entries no > longer matches with 'plen'. This should be taken into account > while flushing cached routes, otherwise they will remain in OVS > even after removing them from the system: > > # ifconfig eth0 11.1 > # ovs-appctl ovs/route/show > --- A new route synchronized from kernel route table --- > Cached: 11.0.0.1/32 dev eth0 SRC 11.0.0.1 local question: Why ifconfig eth0 11.1 generates a 11.0.0.1 route?
> # ifconfig eth0 0 > # ovs-appctl ovs/route/show > -- the new route entry is still in ovs route table --- > Cached: 11.0.0.1/32 dev eth0 SRC 11.0.0.1 local > > CC: wenxu <[email protected]> > Fixes: 8e4e45887ec3 ("ofproto-dpif-xlate: makes OVS native tunneling honor > tunnel-specified source addresses") > Reported-by: Mike <[email protected]> > Reported-at: > https://mail.openvswitch.org/pipermail/ovs-dev/2020-July/373093.html > Signed-off-by: Ilya Maximets <[email protected]> > --- > lib/ovs-router.c | 2 +- > tests/automake.mk | 3 ++- > tests/system-kmod-testsuite.at | 1 + > tests/system-route.at | 28 ++++++++++++++++++++++++++++ > 4 files changed, 32 insertions(+), 2 deletions(-) > create mode 100644 tests/system-route.at > > diff --git a/lib/ovs-router.c b/lib/ovs-router.c > index bfb2b7071..09b81c6e5 100644 > --- a/lib/ovs-router.c > +++ b/lib/ovs-router.c > @@ -505,7 +505,7 @@ ovs_router_flush(void) > ovs_mutex_lock(&mutex); > classifier_defer(&cls); > CLS_FOR_EACH(rt, cr, &cls) { > - if (rt->priority == rt->plen) { > + if (rt->priority == rt->plen || rt->local) { > rt_entry_delete__(&rt->cr); > } > } > diff --git a/tests/automake.mk b/tests/automake.mk > index cbba5b170..0f0562b19 100644 > --- a/tests/automake.mk > +++ b/tests/automake.mk > @@ -149,7 +149,8 @@ OVSDB_CLUSTER_TESTSUITE_AT = \ > SYSTEM_KMOD_TESTSUITE_AT = \ > tests/system-common-macros.at \ > tests/system-kmod-testsuite.at \ > - tests/system-kmod-macros.at > + tests/system-kmod-macros.at \ > + tests/system-route.at > > SYSTEM_USERSPACE_TESTSUITE_AT = \ > tests/system-userspace-testsuite.at \ > diff --git a/tests/system-kmod-testsuite.at b/tests/system-kmod-testsuite.at > index 3de0290c0..ff2ecd0ba 100644 > --- a/tests/system-kmod-testsuite.at > +++ b/tests/system-kmod-testsuite.at Why adding to system-kmod? I thought this is needed only for system-userspace-testsuite.at Other part looks good to me, thanks William _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
