Re: [ovs-discuss] [External] : Re: Latest OVN LTS v22.03.2 working with latest OVS LTS v2.17.7

2023-07-18 Thread Joe Liu via discuss
Got it, thanks Ilya for the clarification!

Joe

From: Ilya Maximets 
Sent: Tuesday, July 18, 2023 2:12 PM
To: Joe Liu ; ovs-discuss@openvswitch.org 

Cc: i.maxim...@ovn.org 
Subject: Re: [External] : Re: [ovs-discuss] Latest OVN LTS v22.03.2 working 
with latest OVS LTS v2.17.7

On 7/18/23 19:46, Joe Liu wrote:
> Thanks Ilya for your quick response. One follow-up question:
>
> In this particular case, the OVN v22.03.2 code base northd/ovn-northd.c 
> consisted the call to
>
> ovsdb_idl_set_write_changed_only_all(ovnsb_idl_loop.idl, true);
>
> which is not available in OVS v1.17.7 source, thus not available to its 
> runtime either.
> Does this mean for OVN v22.03.2 runtime ovn-northd.c, the main() function 
> will never be
> called, thus the function to  
> ovsdb_idl_set_write_changed_only_all(ovnsb_idl_loop.idl, true);
> will never be invoked?

OVN statically links with required OVS libraries, so if the function
is available in the submodule you build with, it will become part of
ovn-northd and other OVN binaries.  This way there is no dependency
on OVS libraries in runtime.

>
> Thanks in advance for your timely help,
> Joe
> --
> *From:* Ilya Maximets 
> *Sent:* Tuesday, July 18, 2023 1:36 PM
> *To:* Joe Liu ; ovs-discuss@openvswitch.org 
> 
> *Cc:* i.maxim...@ovn.org 
> *Subject:* [External] : Re: [ovs-discuss] Latest OVN LTS v22.03.2 working 
> with latest OVS LTS v2.17.7
>
> On 7/18/23 19:07, Joe Liu via discuss wrote:
>> Hi,
>>
>> I have a question about building lates OVN LTS release v22.03.2 working with 
>> latest OVS LTS release v2.17.7
>>
>> The build failed with the ovn-northd.c referencing to OVS v2.17.7 source 
>> missing the following function:
>>
>> northd/ovn-northd.c:
>> ovsdb_idl_set_write_changed_only_all(ovnsb_idl_loop.idl, true);
>>
>>
>> From OVN side, I checked the initial OVN LTS v22.03.0 did not have such 
>> reference, but starting with v22.03.1, the reference was introduced.
>>
>> From OVS side, I checked the referenced function was not available from OVS 
>> v2.17.7 but started available from OVS release v3.0.0:
>>
>> lib/ovsdb-idl.c:ovsdb_idl_set_write_changed_only_all(struct ovsdb_idl *idl, 
>> bool enable)
>> lib/ovsdb-idl.h:void ovsdb_idl_set_write_changed_only_all(struct ovsdb_idl 
>> *idl, bool enable);
>>
>>
>> My question is: how could we go with both OVN and OVS and follow their 
>> perspective latest LTS releases? If we go with OVN LTS v22.03.2, do we have 
>> to go with a non-LTS OVS release (e.g., v3.0+)? Or, if we go with OVS LTS 
>> v2.17.1, we might stuck with OVN LTS v22.03.0 without LTS update path?
>
> Hi, Joe.
>
> The version of OVS to build with and version of OVS to run with
> are two different things.  You should build OVN with the version
> of OVS provided in a submodule.  For v22.03.2 it will be OVS
> commit 2410b95597fcec5f733caf77febdb46f4ffacd27.
>
> OVN only uses some libraries from OVS sources.  You should be
> able to run OVN built this way with your OVS 2.17.7 without any
> issues.
>
> One inconvenience though is that, unfortunately, release archives
> on GitHub do not include submodules (GitHub doesn't support that).
> So, you'll need to check it out yourself.
>
> Best regards, Ilya Maximets.
>
>>
>> Thanks in advance for your help,
>> Joe
>

___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] [External] : Re: Latest OVN LTS v22.03.2 working with latest OVS LTS v2.17.7

2023-07-18 Thread Ilya Maximets via discuss
On 7/18/23 19:46, Joe Liu wrote:
> Thanks Ilya for your quick response. One follow-up question:
> 
> In this particular case, the OVN v22.03.2 code base northd/ovn-northd.c 
> consisted the call to
> 
> ovsdb_idl_set_write_changed_only_all(ovnsb_idl_loop.idl, true);
> 
> which is not available in OVS v1.17.7 source, thus not available to its 
> runtime either.
> Does this mean for OVN v22.03.2 runtime ovn-northd.c, the main() function 
> will never be
> called, thus the function to  
> ovsdb_idl_set_write_changed_only_all(ovnsb_idl_loop.idl, true);
> will never be invoked?

OVN statically links with required OVS libraries, so if the function
is available in the submodule you build with, it will become part of
ovn-northd and other OVN binaries.  This way there is no dependency
on OVS libraries in runtime.

> 
> Thanks in advance for your timely help,
> Joe
> --
> *From:* Ilya Maximets 
> *Sent:* Tuesday, July 18, 2023 1:36 PM
> *To:* Joe Liu ; ovs-discuss@openvswitch.org 
> 
> *Cc:* i.maxim...@ovn.org 
> *Subject:* [External] : Re: [ovs-discuss] Latest OVN LTS v22.03.2 working 
> with latest OVS LTS v2.17.7
>  
> On 7/18/23 19:07, Joe Liu via discuss wrote:
>> Hi,
>> 
>> I have a question about building lates OVN LTS release v22.03.2 working with 
>> latest OVS LTS release v2.17.7
>> 
>> The build failed with the ovn-northd.c referencing to OVS v2.17.7 source 
>> missing the following function:
>> 
>> northd/ovn-northd.c:    
>> ovsdb_idl_set_write_changed_only_all(ovnsb_idl_loop.idl, true);
>> 
>> 
>> From OVN side, I checked the initial OVN LTS v22.03.0 did not have such 
>> reference, but starting with v22.03.1, the reference was introduced.
>> 
>> From OVS side, I checked the referenced function was not available from OVS 
>> v2.17.7 but started available from OVS release v3.0.0:
>> 
>> lib/ovsdb-idl.c:ovsdb_idl_set_write_changed_only_all(struct ovsdb_idl *idl, 
>> bool enable)
>> lib/ovsdb-idl.h:void ovsdb_idl_set_write_changed_only_all(struct ovsdb_idl 
>> *idl, bool enable);
>> 
>> 
>> My question is: how could we go with both OVN and OVS and follow their 
>> perspective latest LTS releases? If we go with OVN LTS v22.03.2, do we have 
>> to go with a non-LTS OVS release (e.g., v3.0+)? Or, if we go with OVS LTS 
>> v2.17.1, we might stuck with OVN LTS v22.03.0 without LTS update path?
> 
> Hi, Joe.
> 
> The version of OVS to build with and version of OVS to run with
> are two different things.  You should build OVN with the version
> of OVS provided in a submodule.  For v22.03.2 it will be OVS
> commit 2410b95597fcec5f733caf77febdb46f4ffacd27.
> 
> OVN only uses some libraries from OVS sources.  You should be
> able to run OVN built this way with your OVS 2.17.7 without any
> issues.
> 
> One inconvenience though is that, unfortunately, release archives
> on GitHub do not include submodules (GitHub doesn't support that).
> So, you'll need to check it out yourself.
> 
> Best regards, Ilya Maximets.
> 
>> 
>> Thanks in advance for your help,
>> Joe
> 

___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] [External] : Re: Latest OVN LTS v22.03.2 working with latest OVS LTS v2.17.7

2023-07-18 Thread Joe Liu via discuss
Thanks Ilya for your quick response. One follow-up question:

In this particular case, the OVN v22.03.2 code base northd/ovn-northd.c 
consisted the call to

ovsdb_idl_set_write_changed_only_all(ovnsb_idl_loop.idl, true);

which is not available in OVS v1.17.7 source, thus not available to its runtime 
either. Does this mean for OVN v22.03.2 runtime ovn-northd.c, the main() 
function will never be called, thus the function to  
ovsdb_idl_set_write_changed_only_all(ovnsb_idl_loop.idl, true); will never be 
invoked?

Thanks in advance for your timely help,
Joe

From: Ilya Maximets 
Sent: Tuesday, July 18, 2023 1:36 PM
To: Joe Liu ; ovs-discuss@openvswitch.org 

Cc: i.maxim...@ovn.org 
Subject: [External] : Re: [ovs-discuss] Latest OVN LTS v22.03.2 working with 
latest OVS LTS v2.17.7

On 7/18/23 19:07, Joe Liu via discuss wrote:
> Hi,
>
> I have a question about building lates OVN LTS release v22.03.2 working with 
> latest OVS LTS release v2.17.7
>
> The build failed with the ovn-northd.c referencing to OVS v2.17.7 source 
> missing the following function:
>
> northd/ovn-northd.c:
> ovsdb_idl_set_write_changed_only_all(ovnsb_idl_loop.idl, true);
>
>
> From OVN side, I checked the initial OVN LTS v22.03.0 did not have such 
> reference, but starting with v22.03.1, the reference was introduced.
>
> From OVS side, I checked the referenced function was not available from OVS 
> v2.17.7 but started available from OVS release v3.0.0:
>
> lib/ovsdb-idl.c:ovsdb_idl_set_write_changed_only_all(struct ovsdb_idl *idl, 
> bool enable)
> lib/ovsdb-idl.h:void ovsdb_idl_set_write_changed_only_all(struct ovsdb_idl 
> *idl, bool enable);
>
>
> My question is: how could we go with both OVN and OVS and follow their 
> perspective latest LTS releases? If we go with OVN LTS v22.03.2, do we have 
> to go with a non-LTS OVS release (e.g., v3.0+)? Or, if we go with OVS LTS 
> v2.17.1, we might stuck with OVN LTS v22.03.0 without LTS update path?

Hi, Joe.

The version of OVS to build with and version of OVS to run with
are two different things.  You should build OVN with the version
of OVS provided in a submodule.  For v22.03.2 it will be OVS
commit 2410b95597fcec5f733caf77febdb46f4ffacd27.

OVN only uses some libraries from OVS sources.  You should be
able to run OVN built this way with your OVS 2.17.7 without any
issues.

One inconvenience though is that, unfortunately, release archives
on GitHub do not include submodules (GitHub doesn't support that).
So, you'll need to check it out yourself.

Best regards, Ilya Maximets.

>
> Thanks in advance for your help,
> Joe

___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] Latest OVN LTS v22.03.2 working with latest OVS LTS v2.17.7

2023-07-18 Thread Ilya Maximets via discuss
On 7/18/23 19:07, Joe Liu via discuss wrote:
> Hi,
> 
> I have a question about building lates OVN LTS release v22.03.2 working with 
> latest OVS LTS release v2.17.7
> 
> The build failed with the ovn-northd.c referencing to OVS v2.17.7 source 
> missing the following function:
> 
> northd/ovn-northd.c:    
> ovsdb_idl_set_write_changed_only_all(ovnsb_idl_loop.idl, true);
> 
> 
> From OVN side, I checked the initial OVN LTS v22.03.0 did not have such 
> reference, but starting with v22.03.1, the reference was introduced.
> 
> From OVS side, I checked the referenced function was not available from OVS 
> v2.17.7 but started available from OVS release v3.0.0:
> 
> lib/ovsdb-idl.c:ovsdb_idl_set_write_changed_only_all(struct ovsdb_idl *idl, 
> bool enable)
> lib/ovsdb-idl.h:void ovsdb_idl_set_write_changed_only_all(struct ovsdb_idl 
> *idl, bool enable);
> 
> 
> My question is: how could we go with both OVN and OVS and follow their 
> perspective latest LTS releases? If we go with OVN LTS v22.03.2, do we have 
> to go with a non-LTS OVS release (e.g., v3.0+)? Or, if we go with OVS LTS 
> v2.17.1, we might stuck with OVN LTS v22.03.0 without LTS update path?

Hi, Joe.

The version of OVS to build with and version of OVS to run with
are two different things.  You should build OVN with the version
of OVS provided in a submodule.  For v22.03.2 it will be OVS
commit 2410b95597fcec5f733caf77febdb46f4ffacd27.

OVN only uses some libraries from OVS sources.  You should be
able to run OVN built this way with your OVS 2.17.7 without any
issues.

One inconvenience though is that, unfortunately, release archives
on GitHub do not include submodules (GitHub doesn't support that).
So, you'll need to check it out yourself.

Best regards, Ilya Maximets.

> 
> Thanks in advance for your help,
> Joe

___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


[ovs-discuss] Latest OVN LTS v22.03.2 working with latest OVS LTS v2.17.7

2023-07-18 Thread Joe Liu via discuss
Hi,

I have a question about building lates OVN LTS release v22.03.2 working with 
latest OVS LTS release v2.17.7

The build failed with the ovn-northd.c referencing to OVS v2.17.7 source 
missing the following function:


northd/ovn-northd.c:
ovsdb_idl_set_write_changed_only_all(ovnsb_idl_loop.idl, true);

>From OVN side, I checked the initial OVN LTS v22.03.0 did not have such 
>reference, but starting with v22.03.1, the reference was introduced.

>From OVS side, I checked the referenced function was not available from OVS 
>v2.17.7 but started available from OVS release v3.0.0:


lib/ovsdb-idl.c:ovsdb_idl_set_write_changed_only_all(struct ovsdb_idl *idl, 
bool enable)
lib/ovsdb-idl.h:void ovsdb_idl_set_write_changed_only_all(struct ovsdb_idl 
*idl, bool enable);

My question is: how could we go with both OVN and OVS and follow their 
perspective latest LTS releases? If we go with OVN LTS v22.03.2, do we have to 
go with a non-LTS OVS release (e.g., v3.0+)? Or, if we go with OVS LTS v2.17.1, 
we might stuck with OVN LTS v22.03.0 without LTS update path?

Thanks in advance for your help,
Joe
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] Logging when OVN Controller sends a GARP

2023-07-18 Thread Felix Huettner via discuss
Hi Gav,

`send_garp_rarp` in `pinctrl.c` does currenty not log anything. But i
guess it would be the appropriate place to log that.

Regards
Felix

On Tue, Jul 18, 2023 at 07:21:07AM -0700, Gavin McKee via discuss wrote:
> Hi,
>
> Is it possible to have an OVN controller log a message when it sends a GARP
> for a DNAT bound on the compute node its running on ?
>
> The context here is that in some cases when I schedule a VM on a compute
> the network is not learning an ARP (I use BGP EVPN arp snooping to generate
> a type 2 EVPN route when the network sees a GARP),  its random in terms of
> when it happens or not so I want to log any event where the controller
> actually sends a GARP.
>
> Thanks
>
> Gav

> ___
> discuss mailing list
> disc...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Diese E Mail enthält möglicherweise vertrauliche Inhalte und ist nur für die 
Verwertung durch den vorgesehenen Empfänger bestimmt.
Sollten Sie nicht der vorgesehene Empfänger sein, setzen Sie den Absender bitte 
unverzüglich in Kenntnis und löschen diese E Mail.

Hinweise zum Datenschutz finden Sie hier.


This e-mail may contain confidential content and is intended only for the 
specified recipient/s.
If you are not the intended recipient, please inform the sender immediately and 
delete this e-mail.

Information on data protection can be found 
here.
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


[ovs-discuss] Logging when OVN Controller sends a GARP

2023-07-18 Thread Gavin McKee via discuss
Hi,

Is it possible to have an OVN controller log a message when it sends a GARP
for a DNAT bound on the compute node its running on ?

The context here is that in some cases when I schedule a VM on a compute
the network is not learning an ARP (I use BGP EVPN arp snooping to generate
a type 2 EVPN route when the network sees a GARP),  its random in terms of
when it happens or not so I want to log any event where the controller
actually sends a GARP.

Thanks

Gav
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss


Re: [ovs-discuss] Testing for membership in set

2023-07-18 Thread Gavin McKee via discuss
Thank you both for the response , Ilya , the
ports{\>}1191229a-6878-4dfc-b07a-47e6e2a4dcfe syntax was exactly what I
was looking for :)


Thanks

Gav

On Mon, 17 Jul 2023 at 11:57, Ilya Maximets  wrote:

> On 7/17/23 07:52, Numan Siddique via discuss wrote:
> > On Mon, Jul 17, 2023 at 5:51 AM Gavin McKee via discuss
> >  wrote:
> >>
> >> Hi,
> >>
> >> Can someone help me understand how to find a uuid in a set of Ports
> using the table below as an example?
> >>
> >> I want to check if the uuid 1191229a-6878-4dfc-b07a-47e6e2a4dcfe is in
> the set of assigned ports (in some cases I have a large number of ports and
> want to search for membership in a port list).
> >>
> >> [root@ovnkube-db-0 ~]# ovn-nbctl --no-leader-only find Logical_Switch
> name=a_b461d3e2_621c_43f4_8d7c_e39c13bcba08_ls_bca4b75e_9b21_4454_98a3_e490feecae9f
> >>
> >> _uuid   : 7c28c854-a40d-4145-b6f3-7d0f0e69d5ab
> >> acls: []
> >> copp: []
> >> dns_records : []
> >> external_ids:
> {crusoe_subnet_id="bca4b75e-9b21-4454-98a3-e490feecae9f",
> crusoe_vpc_id="ec7f1ea4-66a2-4b9e-ac0d-79e9ec0998db",
> customer_id="b461d3e2-621c-43f4-8d7c-e39c13bcba08"}
> >> forwarding_groups   : []
> >> load_balancer   : []
> >> load_balancer_group : []
> >> name:
> a_b461d3e2_621c_43f4_8d7c_e39c13bcba08_ls_bca4b75e_9b21_4454_98a3_e490feecae9f
> >> other_config: {exclude_ips="172.27.16.0..172.27.16.4", subnet="
> 172.27.16.0/20"}
> >> ports   : [1191229a-6878-4dfc-b07a-47e6e2a4dcfe,
> 2937d508-3db0-4d40-8c06-10849abcf9d9, 327e037a-b11e-4dc4-8846-08a9c262b911]
> >> qos_rules   : []
> >>
> >>
> >> Thanks
> >>
> >
> > One way I can think of is running the below command.
> >
> > # ovn-nbctl get logical_switch
> >
> a_b461d3e2_621c_43f4_8d7c_e39c13bcba08_ls_bca4b75e_9b21_4454_98a3_e490feecae9f
> > ports | grep 1191229a-6878-4dfc-b07a-47e6e2a4dcfe
> >
> > If you don't want to use grep, then I'm not sure.
>
> Something like this should work (not tested):
>
>  ovn-nbctl --no-leader-only find Logical_Switch \
>
> name=a_b461d3e2_621c_43f4_8d7c_e39c13bcba08_ls_bca4b75e_9b21_4454_98a3_e490feecae9f
> \
> ports{\>}1191229a-6878-4dfc-b07a-47e6e2a4dcfe
>
> Following command should check if two ports are there:
>
>  ovn-nbctl --no-leader-only find Logical_Switch \
>
> name=a_b461d3e2_621c_43f4_8d7c_e39c13bcba08_ls_bca4b75e_9b21_4454_98a3_e490feecae9f
> \
>
> ports{\>}1191229a-6878-4dfc-b07a-47e6e2a4dcfe,2937d508-3db0-4d40-8c06-10849abcf9d9
>
> Best regards, Ilya Maximets.
>
___
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss