Add advertise from static discard routes via ovn-ic for work similar to BGP null route. Discard the traffic on the remote az.
Signed-off-by: Lucas Vargas Dias <[email protected]> --- ic/ovn-ic.c | 3 ++- tests/ovn-ic.at | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/ic/ovn-ic.c b/ic/ovn-ic.c index 304953767..eea51df1f 100644 --- a/ic/ovn-ic.c +++ b/ic/ovn-ic.c @@ -1018,7 +1018,8 @@ parse_route(const char *s_prefix, const char *s_nexthop, } unsigned int nlen; - if (!ip46_parse_cidr(s_nexthop, nexthop, &nlen)) { + if (strcmp(s_nexthop, "discard") && + !ip46_parse_cidr(s_nexthop, nexthop, &nlen)) { return false; } diff --git a/tests/ovn-ic.at b/tests/ovn-ic.at index ced3fc9ed..33ce54735 100644 --- a/tests/ovn-ic.at +++ b/tests/ovn-ic.at @@ -4304,3 +4304,55 @@ ovn_as az1 check ovn-nbctl remove logical_router_port lrp-lr11-ts1 options ic-ro OVN_CLEANUP_IC([az1], [az2]) AT_CLEANUP ]) + +OVN_FOR_EACH_NORTHD([ +AT_SETUP([ovn-ic -- Advertise discard static routes]) + +ovn_init_ic_db + +for i in 1 2; do + ovn_start az$i + ovn_as az$i + + # Enable route learning at AZ level + check ovn-nbctl set nb_global . options:ic-route-learn=true + # Enable route advertising at AZ level + check ovn-nbctl set nb_global . options:ic-route-adv=true +done + +# Create new transit switches and LRs. Test topology is next: +# +# logical router (lr11) - transit switch (ts11) - logical router (lr12) +# + +# Create lr11, lr12 and ts11 and connect them +for i in 1 2; do + ovn_as az$i + + lr=lr1$i + check ovn-nbctl lr-add $lr + + ts=ts11 + check ovn-ic-nbctl --wait=sb --may-exist ts-add $ts + + lrp=lrp-$lr-$ts + lsp=lsp-$ts-$lr + # Create LRP and connect to TS + check ovn-nbctl lrp-add $lr $lrp aa:aa:aa:aa:a1:0$i 169.254.101.$i/24 + check ovn-nbctl lsp-add $ts $lsp \ + -- lsp-set-addresses $lsp router \ + -- lsp-set-type $lsp router \ + -- lsp-set-options $lsp router-port=$lrp +done + +# Create directly-connected route in lr11 +check ovn_as az2 ovn-nbctl lr-route-add lr12 192.168.0.0/24 discard +OVS_WAIT_FOR_OUTPUT([ovn_as az1 ovn-nbctl lr-route-list lr11 | grep 192.168 | + grep learned | awk '{print $1, $2}' | sort ], [0], [dnl +192.168.0.0/24 169.254.101.2 +]) + +OVN_CLEANUP_IC([az1], [az2]) + +AT_CLEANUP +]) -- 2.43.0 -- _'Esta mensagem é direcionada apenas para os endereços constantes no cabeçalho inicial. Se você não está listado nos endereços constantes no cabeçalho, pedimos-lhe que desconsidere completamente o conteúdo dessa mensagem e cuja cópia, encaminhamento e/ou execução das ações citadas estão imediatamente anuladas e proibidas'._ * **'Apesar do Magazine Luiza tomar todas as precauções razoáveis para assegurar que nenhum vírus esteja presente nesse e-mail, a empresa não poderá aceitar a responsabilidade por quaisquer perdas ou danos causados por esse e-mail ou por seus anexos'.* _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
