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

Reply via email to