On 1/30/25 9:16 AM, Felix Huettner via dev wrote:
> On Wed, Jan 29, 2025 at 10:28:23PM +0100, Frode Nordahl wrote:
>> ons. 29. jan. 2025, 12:16 skrev Felix Huettner via dev <
>> ovs-dev@openvswitch.org>:
>>
>>> This brings in needed changes so that the ovs submodule exports route
>>> table related functionality.
>>>
>>> As the ovs submodule has bumped its DPDK version we need to do so as
>>> well.
>>>
>>> Signed-off-by: Felix Huettner <felix.huettner@stackit.cloud>
>>> ---
>>>
> 
> Hi Frode,
> 
>>
>> Note that there is one prerequisite patch that has not merged on the OVS
>> side yet [0], so ci wont pass until that gets in. Martin spotted the issue
>> and sent a patch.
> 
> thanks a lot for that one. I hope i mentioned it in the cover letter.
> 
>>
>> We were discussing the reasoning for changing the route type, I have not
>> reviewed that bit in detail yet and at a high level it may appear to make
>> sense.
>>
>> Would be interesting to hear your reasoning for the change?
> 
> You mean why advertised routes are using blackhole?
> 
> So i did not want to include the nexthop IP in the Advertised_Route
> table if possible as that would just duplicate a lot of entries.
> Because of this we would not have the nexthop IP readily available.
> 

I don't think we should include the nexthop IP in SB.Advertised_Route.
I mean, in the end, the router is aware of the routes it advertises
_regardless of which interface the traffic destined for the route is
received on_.

But I think the routes we inject in linux (for whatever we advertise)
should include next-hop if we want the host to be able to send traffic
to them.

I'll try an example:

FRR-VIF1 -- LS --- LRP1 (1.1.1.1/24) --- LR --- LRP3 (3.3.3.1/24)
FRR-VIF2 --    --- LRP2 (2.2.2.1/24)

Assuming we're advertising "connected" I guess the two FRR instances
should learn:

FRR-VIF1: 3.3.3.0/24 via 1.1.1.1
FRR-VIF2: 3.3.3.0/24 via 2.2.2.1

If routing-protocol-redirect is used, that'd have to be configured on
LRP1 and LRP2, so it could allow us to determine which LRP's IP should
be configured as next-hop when injecting linux routes.

> I then also assumed that BGP is mostly used together with
> routing-protocol-redirect. In this case we already know the respective
> IP of the LRP as that IP is also used for the redirect linux interface.
> 
> I therefor saw no real need to include the nexthop IP anywhere as we
> already have it at the relevant locations. And the route type that best
> matched the conditions of having a prefix, but no nexthop was blackhole.
> 
> If there is a need to have the nexthop IPs included in the linux routes
> we could definately change that. During implementation i just did not
> saw the need and took the simpler path.
> 

If we could just always include nexthop IPs in the linux routes we
create, I'd prefer that, I think.

However, I'm not exactly sure yet how ovn-kubernetes will be able to
consume the OVN BGP support we're adding in this release.  It might be
that they don't use routing-protocol-redirect.  In which case we might
need a way to specify through config which IP ovn-controller to use as
next-hop when installing the linux routes.  But that's something we can
add later when we get a better idea about the ovn-kubernetes use case.

> Hope that clarifies this.
> 
> Thanks a lot,
> Felix
> 

Regards,
Dumitru

>>
>> 0:
>> https://patchwork.ozlabs.org/project/openvswitch/patch/20250123152125.17973-1-martin.kal...@canonical.com/
>>
>> --
>> Frode Nordahl
>>
>> v4->v5: update the dpdk version based on ovs changes
>>> v3->v4: added
>>>
>>>  ovs                             | 2 +-
>>>  utilities/containers/prepare.sh | 2 +-
>>>  2 files changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/ovs b/ovs
>>> index 7b1ce8e2a..a3c06c309 160000
>>> --- a/ovs
>>> +++ b/ovs
>>> @@ -1 +1 @@
>>> -Subproject commit 7b1ce8e2a08454839c52b8cc02fdde5c78e7c40e
>>> +Subproject commit a3c06c309ab9f21fd9ce4e8dca542119d46be9c5
>>> diff --git a/utilities/containers/prepare.sh
>>> b/utilities/containers/prepare.sh
>>> index 49bb2ac91..6922d8c6b 100755
>>> --- a/utilities/containers/prepare.sh
>>> +++ b/utilities/containers/prepare.sh
>>> @@ -1,7 +1,7 @@
>>>  #!/bin/bash -xe
>>>
>>>  DPDK_GIT=https://dpdk.org/git/dpdk
>>> -DPDK_VER=23.11
>>> +DPDK_VER=24.11
>>>
>>>  function compile_sparse()
>>>  {
>>> --
>>> 2.47.1
>>>
>>>
>>> _______________________________________________
>>> dev mailing list
>>> d...@openvswitch.org
>>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>>>
> _______________________________________________
> dev mailing list
> d...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> 

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

Reply via email to