On 2/26/25 9:06 PM, Ilya Maximets wrote:
> On 2/26/25 17:28, Felix Huettner wrote:
>> On Wed, Feb 26, 2025 at 05:07:38PM +0100, Ilya Maximets wrote:
>>> On 2/26/25 16:50, Dumitru Ceara wrote:
>>>> On 2/26/25 4:47 PM, martin.kal...@canonical.com wrote:
>>>>> On Wed, 2025-02-26 at 15:44 +0100, Ilya Maximets wrote:
>>>>>> A peer of a switch can be another switch, so the port type has to be
>>>>>> checked.  The missing check doesn't seem to lead to crashes, but it
>>>>>> leads to addresses of switch-switch ports not being advertised.
>>>>>
>>>>> Oh, interesting. Is the switch-switch connection introduced as part of
>>>>> your spine-leaf topology Ilya?
>>>
>>> Yep.
>>>
>>>>>
>>>>> I wonder if this affects also `build_{lb,nat}_connected_parsed_routes`
>>>>> [0][1]. We employ similar logic in these functions, but instead of 
>>>>>
>>>>>   HMAP_FOR_EACH (port, dp_node, &peer_od->ports)
>>>>>
>>>>> we iterate only router ports in peer_od
>>>>>
>>>>>   for (size_t i = 0; i < peer_od->n_router_ports; i++)
>>>>>
>>>>> Do you think we need to update our logic in there too? E.g
>>>>>
>>>>>   LR0 --- LS0 --- LS1 --- LR1
>>>>>
>>>>> If we redistribute NAT/LB on LR0, do we need to traverse all the way to
>>>>> the LS1 and search for connected routers in there too, to find LR1? 
>>>>>
>>>>
>>>> On a similar note, I was wondering initially if we should do a full
>>>> traversal and advertise everything that's indirectly connected but I was
>>>> never convinced about it.
>>>>
>>>> However, for switch-switch connections that might be good to do
>>>> automatically indeed.
>>>>
>>>
>>> I'm not 100% sure about this.  We do not leak a lot of information
>>> between directly connected switches sort of on purpose, to let them
>>> learn what they need to learn on their own via standard networking.
>>
>> Hi everyone,
>>
>> i just wanted to share my opinion on this.
>>
>> I think we could define this easily as a limitation. Something like:
>> "Logical Routers can only redistribute routes from directly connected
>>  Logical Routers or Logical Switches."
>>
>> So a valid setup that combines both approaches would be:
>>
>> LR0 <-> LS0 <-> LR1
>>          ^
>>         / \
>>        v   v
>>      LS1   LS2
>>
>> In that case you could still redistribute routes between LR0 and LR1.
>> Also LSPs of LS0 can be announced. LSPs of LS1 and LS2 would not be
>> individually announceable.
>>
>> However the whole point of the spine-leaf setup seems to be to trade accuracy
>> for computational effort on the control plane then this would fit quite
>> well.
>> The above setup would still allow you to announce the routes of the LRPs
>> between LS0 and LR0/LR1. You can not use host routes for the individual
>> LSPs as that would violate the tradeoff you did with this topology in
>> the first place.
> 
> In the spirit of the spine-leaf topology, what if we advertise FDB entries
> learned on the LS0 ?  This would even work for the interconnect, since we
> learn from remote ports on transit switches now.
> 
> Is that a reasonable thing to do?
>

We don't advertise FDB entries (yet).  But when we add support for that
(for EVPN for example) that might be a good thing to do.

> What about FDB entries learned from localnet or other ports with 'unknown'
> addresses?
> 

Same here.

Regards,
Dumitru

> Best regards, Ilya Maximets.
> 
>>
>> Thanks a lot,
>> Felix
>>
>>>
>>> Is that necessary to redistribute those NAT/LB rules?  i.e. does
>>> it affect correctness of the network if we do not? (I'm not familiar
>>> with that part of the code well enough)
>>>
>>> Also, such a logic will need to be implemented for ovn-ic daemon
>>> as well.  Right?  It does some route synchronization today for the
>>> routers directly connected to a transit switch, IIRC.
>>>
>>>>> [0]
>>>>> https://github.com/ovn-org/ovn/blob/dde3bdca2ddd82d0aaab6fad8638b4b321e82a43/northd/northd.c#L11478
>>>>> [1]
>>>>> https://github.com/ovn-org/ovn/blob/dde3bdca2ddd82d0aaab6fad8638b4b321e82a43/northd/northd.c#L11384
>>>>>
>>>>>
>>>>> Thanks,
>>>>> Martin.
>>>>>
>>>>
>>>> Regards,
>>>> Dumitru
>>>
> 

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

Reply via email to