On Tue, Jul 12, 2022 at 2:25 PM Mark Michelson <[email protected]> wrote:
>
> Acked-by: Mark Michelson <[email protected]>

Thanks.  I applied this patch to the main branch and backported to
branch-22.06.  I will be backporting to branch-22.03 soon (running
tests).

Numan

>
> On 6/24/22 05:41, Lorenzo Bianconi wrote:
> > Do not learn IPv6 routes with link-local nex-thop. This issue occurs
> > when the lrp connected to the transit switch has no IPv6 addresses and
> > the internal logical router port has a valid IPv6 one.
> >
> > Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2100355
> > Signed-off-by: Lorenzo Bianconi <[email protected]>
> > ---
> >   ic/ovn-ic.c     |  7 ++++++-
> >   tests/ovn-ic.at | 50 +++++++++++++++++++++++++++++++++++++++++++++++++
> >   2 files changed, 56 insertions(+), 1 deletion(-)
> >
> > diff --git a/ic/ovn-ic.c b/ic/ovn-ic.c
> > index 8511cb9ac..95a5ff0de 100644
> > --- a/ic/ovn-ic.c
> > +++ b/ic/ovn-ic.c
> > @@ -925,7 +925,12 @@ parse_route(const char *s_prefix, const char 
> > *s_nexthop,
> >       }
> >
> >       unsigned int nlen;
> > -    return ip46_parse_cidr(s_nexthop, nexthop, &nlen);
> > +    if (!ip46_parse_cidr(s_nexthop, nexthop, &nlen)) {
> > +        return false;
> > +    }
> > +
> > +    /* Do not learn routes with link-local next hop. */
> > +    return !in6_is_lla(nexthop);
> >   }
> >
> >   /* Return false if can't be added due to bad format. */
> > diff --git a/tests/ovn-ic.at b/tests/ovn-ic.at
> > index 05bd3e9a6..89f223562 100644
> > --- a/tests/ovn-ic.at
> > +++ b/tests/ovn-ic.at
> > @@ -492,6 +492,56 @@ OVN_CLEANUP_IC([az1], [az2])
> >   AT_CLEANUP
> >   ])
> >
> > +OVN_FOR_EACH_NORTHD([
> > +AT_SETUP([ovn-ic -- route sync -- IPv6 route tables])
> > +AT_KEYWORDS([IPv6-route-sync])
> > +
> > +ovn_init_ic_db
> > +ovn-ic-nbctl ts-add ts1
> > +
> > +for i in 1 2; do
> > +    ovn_start az$i
> > +    ovn_as az$i
> > +
> > +    # Enable route learning at AZ level
> > +    ovn-nbctl set nb_global . options:ic-route-learn=true
> > +    # Enable route advertising at AZ level
> > +    ovn-nbctl set nb_global . options:ic-route-adv=true
> > +
> > +    # Create LRP and connect to TS
> > +    ovn-nbctl lr-add lr$i
> > +    ovn-nbctl lrp-add lr$i lrp-lr$i-ts1 aa:aa:aa:aa:aa:0$i 
> > 2001:db8:1::$i/64
> > +    ovn-nbctl lsp-add ts1 lsp-ts1-lr$i \
> > +            -- lsp-set-addresses lsp-ts1-lr$i router \
> > +            -- lsp-set-type lsp-ts1-lr$i router \
> > +            -- lsp-set-options lsp-ts1-lr$i router-port=lrp-lr$i-ts1
> > +
> > +    ovn-nbctl lrp-add lr$i lrp-lr$i-p$i 00:00:00:00:00:0$i 
> > 2002:db8:1::$i/64
> > +done
> > +
> > +for i in 1 2; do
> > +    OVS_WAIT_UNTIL([ovn_as az$i ovn-nbctl lr-route-list lr$i | grep 
> > learned])
> > +done
> > +
> > +AT_CHECK([ovn_as az1 ovn-nbctl lr-route-list lr1 | awk '/learned/{print 
> > $1, $2}'], [0], [dnl
> > +2002:db8:1::/64 2001:db8:1::2
> > +])
> > +
> > +# Do not learn routes from link-local nexthops
> > +for i in 1 2; do
> > +    ovn_as az$i
> > +    ovn-nbctl lrp-del lrp-lr$i-ts1
> > +    ovn-nbctl lrp-add lr$i lrp-lr$i-ts1 aa:aa:aa:aa:aa:0$i 
> > 169.254.100.$i/24
> > +done
> > +
> > +OVS_WAIT_WHILE([ovn_as az1 ovn-nbctl lr-route-list lr1 | grep learned])
> > +AT_CHECK([ovn_as az1 ovn-nbctl lr-route-list lr1 | grep -q learned], [1])
> > +
> > +OVN_CLEANUP_IC([az1], [az2])
> > +
> > +AT_CLEANUP
> > +])
> > +
> >   OVN_FOR_EACH_NORTHD([
> >   AT_SETUP([ovn-ic -- route sync -- route tables])
> >
> >
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to