Hi Simon,

thanks for the review.
I agree with all your comments and I’ll address them in v2.

Regards,
Vladislav Odintsov

> On 18 Jan 2023, at 16:08, Simon Horman <simon.hor...@corigine.com> wrote:
> 
> On Thu, Dec 22, 2022 at 08:43:08PM +0300, Vladislav Odintsov wrote:
>> There were two issues prior to this patch:
>> 1. It was unable to have connectivity to networks over a router in
>>   physical network connected through VTEP (ramp) gateway.
>>   Consider next topology:
>> 
>>     ovn-nbctl lr-add lr1
>>     ovn-nbctl lrp-add lr1 lrp1 00:00:00:00:00:01 10.0.0.1/24
>>     ovn-nbctl ls-add ls1
>>     ovn-nbctl lrp-add ls1 lsp1 -- \
>>               lsp-set-addresses lsp1 router -- \
>>               lsp-set-type lsp1 router -- \
>>               lsp-set-options lsp1 router-port=lrp1
>>     ovn-nbctl lsp-add ls1 lsp-vtep -- \
>>               lsp-set-type lsp-vtep vtep -- \
>>               lsp-set-addresses lsp-vtep unknown -- \
>>               lsp-set-options lsp-vtep vtep-physical-switch=<..> 
>> vtep-logical-switch=<..>
>>     ovn-nbctl lr-route-add lr1 192.168.0.0/24 10.0.0.100
>> 
>>   If one issues ping from lsp1 to some address from 192.168.0.0/24 (via
>>   vtep lsp), to enable routing support with vtep it is required to set
>>   redirect chassis or ha chassis group on lrp1.  This topology didn't
>>   provide connectivity.  Now such traffic flow will work properly.
>> 
>> 2. Traffic from lport in one subnet to vtep lport in another subnet of
>>   same LR previously traversed via l3gw chassis, now in 'to vtep lport'
>>   direction goes directly from hypervisor handling lport to VTEP (RAMP)
>>   switch.  In the opposite direction traffic still goes from VTEP (RAMP)
>>   switch through l3gw chassis and then to hypervisor.
> 
> I think it would be good to explain how the logic changes
> addresses these problems. And breifly describe which tests have been added.
> 
>> 
>> Signed-off-by: Vladislav Odintsov <odiv...@gmail.com>
>> ---
>> northd/northd.c     | 16 +++++++++++++++-
>> tests/ovn-northd.at | 26 +++++++++++++++++++++++++-
>> 2 files changed, 40 insertions(+), 2 deletions(-)
>> 
>> diff --git a/northd/northd.c b/northd/northd.c
>> index 4751feab4..07fb0ab9a 100644
>> --- a/northd/northd.c
>> +++ b/northd/northd.c
>> @@ -3362,7 +3362,12 @@ ovn_port_update_sbrec(struct northd_input *input_data,
>>             }
>>             smap_add(&new, "distributed-port", op->nbrp->name);
>> 
>> -            bool always_redirect = !op->od->has_distributed_nat;
>> +            bool always_redirect = !(
>> +                op->od->has_distributed_nat ||
>> +                (op->l3dgw_port->peer &&
>> +                 op->l3dgw_port->peer->od->has_vtep_lports)
>> +            );
> 
> This seems slightly easier on my brain:
> 
>            bool always_redirect =
>                !op->od->has_distributed_nat &&
>                !(op->l3dgw_port->peer &&
>                  op->l3dgw_port->peer->od->has_vtep_lports)
> 
>> +
>>             if (redirect_type) {
>>                 smap_add(&new, "redirect-type", redirect_type);
>>                 /* XXX Why can't we enable always-redirect when redirect-type
>> @@ -12815,6 +12820,15 @@ build_gateway_redirect_flows_for_lrouter(
>>         return;
>>     }
>>     for (size_t i = 0; i < od->n_l3dgw_ports; i++) {
>> +        if (od->l3dgw_ports[i]->peer &&
>> +            od->l3dgw_ports[i]->peer->od->has_vtep_lports) {
> 
> This condition appears twice in this patch.
> Perhaps a helper would make its meaning more obvious.
> 
>> +            /* Skip adding redirect rule for vtep-enabled l3dgw ports.
>> +               Traffic from hypervisor to VTEP (ramp) switch should go in
>> +               distributed manner. Only returning routed traffic must go
>> +               through centralized gateway (or ha-chassis-group). */
> 
> nit:
>              /* Multi-line comments
>              * look like this. */
> 
>> +            continue;
>> +        }
>> +
>>         const struct ovsdb_idl_row *stage_hint = NULL;
>>         bool add_def_flow = true;
>> 
> 
> ...

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to