Re: [ovs-dev] [PATCH branch-3.3 v1] ofproto-dpif-mirror: Always revalidate on mirror update.

2024-09-20 Thread Kevin Traynor
On 20/09/2024 12:40, Eelco Chaudron wrote:
> 
> On 20 Sep 2024, at 8:58, Eelco Chaudron wrote:
> 
>> On 17 Sep 2024, at 21:35, Mike Pattrick wrote:
>>
>>> Previously updating mirror settings would not trigger a revalidation,
>>> this could result in impactful changes to mirrors taking a long time to
>>> take effect.
>>>
>>> This change sets need_revalidate whenever a setting is successfully set
>>> on a mirror.
>>>
>>> Fixes: ec7ceaed4f3e ("ofproto-dpif: Modularize mirror code.")
>>> Reported-at: https://issues.redhat.com/browse/FDP-788
>>> Tested-by: Kevin Traynor 
>>> Acked-by: Kevin Traynor 
>>> Signed-off-by: Mike Pattrick 
>> Change looks good to me. Should we backport this all the way down to 2.17?
>>
>> Cheers,
>>
>> Eelco
> Forgot to add my ACK :(
> 
> Acked-by: Eelco Chaudron 

Thanks Mike and Eelco. Pushed to branch-3.3 and down as far as branch-2.17.

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


[ovs-dev] [PATCH v2] netdev-offload-dpdk: Change flow offload failure log level.

2024-09-13 Thread Kevin Traynor
Previously when a flow was attempted to be offloaded, if it
could not be offloaded and did not return an actions error,
a warning was logged.

The reason there was an exception for an actions error was to allow
for failure for full offload of a flow because it will fallback to
partial offload. There are some issues with this approach to logging.

Some NICs do not specify an actions error, because other config in
the NIC may be checked first. e.g. In the case of Mellanox CX-5,
there can be different types of offload configured, so an unspecified
error may be returned.

More generally, enabling hw-offload is best effort per datapath/NIC/flow
as full and partial offload support in NICs is variable and there is
always fallback to software.

So there is likely to be repeated logging about offloading of flows
failing. With this in mind, change the log level to debug.

The status of the offload can still be seen with below command:
$ ovs-appctl dpctl/dump-flows -m
... offloaded:partial ...

Also, remove some duplicated rate limiting and tidy-up the succeed
and failure logs.

Signed-off-by: Kevin Traynor 

---
v2: combined logs on failure and added confirmation of result on
succeed.
---
 lib/netdev-offload-dpdk.c | 23 +--
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c
index 623005b1c..342292d23 100644
--- a/lib/netdev-offload-dpdk.c
+++ b/lib/netdev-offload-dpdk.c
@@ -920,22 +920,17 @@ netdev_offload_dpdk_flow_create(struct netdev *netdev,
 dump_flow(&s, &s_extra, attr, flow_patterns, flow_actions);
 extra_str = ds_cstr(&s_extra);
-VLOG_DBG_RL(&rl, "%s: rte_flow 0x%"PRIxPTR" %s  flow create %d %s",
-netdev_get_name(netdev), (intptr_t) flow, extra_str,
-netdev_dpdk_get_port_id(netdev), ds_cstr(&s));
+VLOG_DBG("%s: rte_flow creation succeeded: rte_flow 0x%"PRIxPTR" "
+ "%s  flow create %d %s", netdev_get_name(netdev),
+ (intptr_t) flow, extra_str,
+ netdev_dpdk_get_port_id(netdev), ds_cstr(&s));
 }
 } else {
-enum vlog_level level = VLL_WARN;
-
-if (error->type == RTE_FLOW_ERROR_TYPE_ACTION) {
-level = VLL_DBG;
-}
-VLOG_RL(&rl, level, "%s: rte_flow creation failed: %d (%s).",
-netdev_get_name(netdev), error->type, error->message);
-if (!vlog_should_drop(&this_module, level, &rl)) {
+if (!VLOG_DROP_DBG(&rl)) {
 dump_flow(&s, &s_extra, attr, flow_patterns, flow_actions);
 extra_str = ds_cstr(&s_extra);
-VLOG_RL(&rl, level, "%s: Failed flow: %s  flow create %d %s",
-netdev_get_name(netdev), extra_str,
-netdev_dpdk_get_port_id(netdev), ds_cstr(&s));
+VLOG_DBG("%s: rte_flow creation failed [%d (%s)]: "
+ "%s  flow create %d %s", netdev_get_name(netdev),
+ error->type, error->message,extra_str,
+ netdev_dpdk_get_port_id(netdev), ds_cstr(&s));
 }
 }
-- 
2.46.0

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


Re: [ovs-dev] [PATCH] netdev-dpdk: Fixed RCU deadlock when deleting vhostuser port

2024-09-11 Thread Kevin Traynor
On 09/09/2024 13:34, Eelco Chaudron wrote:
> 
> 
> On 6 Sep 2024, at 16:03, Kevin Traynor wrote:
> 
>> On 06/09/2024 07:38, Eelco Chaudron wrote:
>>>
>>>
>>> On 5 Sep 2024, at 18:35, Kevin Traynor wrote:
>>>
>>>> On 08/08/2024 10:57, Xinxin Zhao wrote:
>>>>> When the ovs control thread del vhost-user port and
>>>>> the vhost-event thread process the vhost-user port down concurrently,
>>>>> the main thread may fall into a deadlock.
>>>>>
>>>>> E.g., vhostuser port is created as client.
>>>>> The ovs control thread executes the following process:
>>>>> rte_vhost_driver_unregister->fdset_try_del.
>>>>> At the same time, the vhost-event thread executes the following process:
>>>>> fdset_event_dispatch->vhost_user_read_cb->destroy_device.
>>>>> At this time, vhost-event will wait for rcu scheduling,
>>>>> and the ovs control thread is waiting for pfdentry->busy to be 0.
>>>>> The two threads are waiting for each other and fall into a deadlock.
>>>>>
>>>>

Hi Xinxin,

Just wondering if you observed this during normal usage, or did you
identify from code inspection/tools or some other stress test etc ?

thanks,
Kevin.

>>>> Hi Xinxin,
>>>>
>>>> Thanks for the patch. I managed to reproduced this with a little bit of
>>>> hacking. Indeed, a deadlock can occur with some unlucky timing.
>>>>
>>>> Acked-by: Kevin Traynor 
>>>
>>> Kevin or Xinxin, can you add some more explanation on where the deadlock is 
>>> occurring?
>>>
>>
>> vhost-event thread is blocking on the synchronize, waiting for main
>> thread to queisce, i.e.
>>
>> #3  0x03690c09 in ovsrcu_synchronize () at lib/ovs-rcu.c:237
>> #4  0x037162fa in destroy_device (vid=0) at lib/netdev-dpdk.c:4919
>> #5  0x03238a12 in vhost_destroy_device_notify (dev=0x14ba693c0)
>> at ../lib/vhost/vhost.c:756
>>
>> While main thread is looping in dpdk unregister, waiting for vhost-event
>> callback to finish, i.e.:
>>
>> #1  0x032336e8 in rte_vhost_driver_unregister (path=0xd217a30
>> "/tmp/vhost0") at ../lib/vhost/socket.c:1075
>> #2  0x0370d5f3 in dpdk_vhost_driver_unregister (dev=0x17d6e8b40,
>> vhost_id=0xd217a30 "/tmp/vhost0") at lib/netdev-dpdk.c:1811
>> #3  0x0370d709 in netdev_dpdk_vhost_destruct
>> (netdev=0x17d6e8bc0) at lib/netdev-dpdk.c:1843
>>
>>> Also, how do we guarantee that it’s safe to go to quiesce state and that no 
>>> others in the call chain hold/use any RCU-protected data?
>>>
>>
>> It should be fine for anything rcu freed in the main thread (possible
>> mirror bridge struct) as other threads would need to quiesce too, but
>> you have a point about anything used in main thread. We are deep into
>> bridge_run(), so I'm not sure how we could test for every scenario.
>>
>> If we can't guarantee it, then maybe another approach is needed, perhaps
>> we could hijack the ovs_vhost thread mechanism to call the unregister ?
>> but i'm not sure if there's other implications doing it asynchronously.
> 
> 
> This callback is called by netdev_unref(), which is called for example by 
> netdev_close(). netdev_close() is called all over the place which makes it 
> unsafe to just go through quiesce state. I guess we need another way to fix 
> this.
> 
>>> Thanks,
>>>
>>> Eelco
>>>
>>>>> Fixes: afee281 ("netdev-dpdk: Fix dpdk_watchdog failure to quiesce.")
>>>>>
>>>>> Signed-off-by: Xinxin Zhao <15957197...@163.com>
>>>>> ---
>>>>>  lib/netdev-dpdk.c | 11 ++-
>>>>>  1 file changed, 10 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
>>>>> index 02cef6e45..0c02357f5 100644
>>>>> --- a/lib/netdev-dpdk.c
>>>>> +++ b/lib/netdev-dpdk.c
>>>>> @@ -1808,7 +1808,16 @@ dpdk_vhost_driver_unregister(struct netdev_dpdk 
>>>>> *dev OVS_UNUSED,
>>>>>  OVS_EXCLUDED(dpdk_mutex)
>>>>>  OVS_EXCLUDED(dev->mutex)
>>>>>  {
>>>>> -return rte_vhost_driver_unregister(vhost_id);
>>>>> +int ret;
>>>>> +/* Due to the rcu wait of the vhost-event thread,
>>>>> + * rte_vhost_driver_unregister() may loop endlessly.
>>>>> + * So the unregister action needs to be removed from the rcu_list.
>>>>> + */
>>>>> +ovsrcu_quiesce_start();
>>>>> +ret = rte_vhost_driver_unregister(vhost_id);
>>>>> +ovsrcu_quiesce_end();
>>>>> +
>>>>> +return ret;
>>>>>  }
>>>>>
>>>>>  static void
>>>>
>>>> ___
>>>> 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


Re: [ovs-dev] [PATCH] netdev-offload-dpdk: Change log level on flow offload failure.

2024-09-11 Thread Kevin Traynor
On 11/09/2024 09:41, Eelco Chaudron wrote:
> 
> 
> On 10 Sep 2024, at 17:11, Kevin Traynor wrote:
> 
>> Previously when a flow was attempted to be offloaded, if it
>> could not be offloaded and did not return an actions error,
>> a warning was logged.
>>
>> The reason there was an exception for an actions error was to allow
>> for failure for full offload of a flow because it will fallback to
>> partial offload. There are some issues with this approach to logging.
>>
>> Some NICs do not specify an actions error, because other config in
>> the NIC may be checked first. e.g. In the case of Mellanox CX-5,
>> there can be different types of offload configured, so an unspecified
>> error may be returned.
>>
>> More generally, enabling hw-offload is best effort per datapath/NIC/flow
>> as full and partial offload support in NICs is variable and there is
>> always fallback to software.
>>
>> So there is likely to be repeated logging about offloading of flows
>> failing. With this in mind, change the log level to debug.
>>
>> The status of the offload can still be seen with below command:
>> $ ovs-appctl dpctl/dump-flows -m
>> ... offloaded:partial ...
>>
>> Also, remove some duplicated rate limiting.
> 
> Thanks for fixing this, and sending the patch. One comment below on the log 
> messages.
> 
>> Signed-off-by: Kevin Traynor 
>> ---
>>  lib/netdev-offload-dpdk.c | 23 +--
>>  1 file changed, 9 insertions(+), 14 deletions(-)
>>
>> diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c
>> index 623005b1c..378bee161 100644
>> --- a/lib/netdev-offload-dpdk.c
>> +++ b/lib/netdev-offload-dpdk.c
>> @@ -920,22 +920,17 @@ netdev_offload_dpdk_flow_create(struct netdev *netdev,
>>  dump_flow(&s, &s_extra, attr, flow_patterns, flow_actions);
>>  extra_str = ds_cstr(&s_extra);
>> -VLOG_DBG_RL(&rl, "%s: rte_flow 0x%"PRIxPTR" %s  flow create %d 
>> %s",
>> -netdev_get_name(netdev), (intptr_t) flow, extra_str,
>> -netdev_dpdk_get_port_id(netdev), ds_cstr(&s));
>> +VLOG_DBG("%s: rte_flow 0x%"PRIxPTR" %s  flow create %d %s",
>> + netdev_get_name(netdev), (intptr_t) flow, extra_str,
>> + netdev_dpdk_get_port_id(netdev), ds_cstr(&s));
>>  }
>>  } else {
>> -enum vlog_level level = VLL_WARN;
>> -
>> -if (error->type == RTE_FLOW_ERROR_TYPE_ACTION) {
>> -level = VLL_DBG;
>> -}
>> -VLOG_RL(&rl, level, "%s: rte_flow creation failed: %d (%s).",
>> -netdev_get_name(netdev), error->type, error->message);
>> -if (!vlog_should_drop(&this_module, level, &rl)) {
>> +if (!VLOG_DROP_DBG(&rl)) {
>> +VLOG_DBG("%s: rte_flow creation failed: %d (%s).",
>> + netdev_get_name(netdev), error->type, error->message);
>>  dump_flow(&s, &s_extra, attr, flow_patterns, flow_actions);
>>  extra_str = ds_cstr(&s_extra);
>> -VLOG_RL(&rl, level, "%s: Failed flow: %s  flow create %d %s",
>> -netdev_get_name(netdev), extra_str,
>> -netdev_dpdk_get_port_id(netdev), ds_cstr(&s));
>> +VLOG_DBG("%s: Failed flow: %s  flow create %d %s",
>> + netdev_get_name(netdev), extra_str,
>> + netdev_dpdk_get_port_id(netdev), ds_cstr(&s));
> 
> Would it make sense to combine the two debug log messages?
> Something in the lines of:
> 
> %s: rte_flow creation failed [%d (%s)]: %s  flow create %d %s”
> 

Ack, yes, had same comment from David. Will look to merge them.

> 
>>  }
>>  }
>> -- 
>> 2.46.0
> 

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


Re: [ovs-dev] [PATCH] netdev-offload-dpdk: Change log level on flow offload failure.

2024-09-11 Thread Kevin Traynor
On 11/09/2024 08:37, David Marchand wrote:
> On Tue, Sep 10, 2024 at 5:11 PM Kevin Traynor  wrote:
>> -enum vlog_level level = VLL_WARN;
>> -
>> -if (error->type == RTE_FLOW_ERROR_TYPE_ACTION) {
>> -level = VLL_DBG;
>> -}
>> -VLOG_RL(&rl, level, "%s: rte_flow creation failed: %d (%s).",
>> -netdev_get_name(netdev), error->type, error->message);
>> -if (!vlog_should_drop(&this_module, level, &rl)) {
>> +if (!VLOG_DROP_DBG(&rl)) {
>> +VLOG_DBG("%s: rte_flow creation failed: %d (%s).",
>> + netdev_get_name(netdev), error->type, error->message);
>>  dump_flow(&s, &s_extra, attr, flow_patterns, flow_actions);
>>  extra_str = ds_cstr(&s_extra);
>> -VLOG_RL(&rl, level, "%s: Failed flow: %s  flow create %d %s",
>> -netdev_get_name(netdev), extra_str,
>> -netdev_dpdk_get_port_id(netdev), ds_cstr(&s));
>> +VLOG_DBG("%s: Failed flow: %s  flow create %d %s",
>> + netdev_get_name(netdev), extra_str,
>> + netdev_dpdk_get_port_id(netdev), ds_cstr(&s));
> 
> I wonder why we had two log messages so far.

I'd wager at some point they were intended at different log levels.

> In any case, wrt ratelimit, with this change above, I would say we
> should log only one message.
> 

Yes, make sense, no reason to keep apart anymore.

> 

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


[ovs-dev] [PATCH] netdev-offload-dpdk: Change log level on flow offload failure.

2024-09-10 Thread Kevin Traynor
Previously when a flow was attempted to be offloaded, if it
could not be offloaded and did not return an actions error,
a warning was logged.

The reason there was an exception for an actions error was to allow
for failure for full offload of a flow because it will fallback to
partial offload. There are some issues with this approach to logging.

Some NICs do not specify an actions error, because other config in
the NIC may be checked first. e.g. In the case of Mellanox CX-5,
there can be different types of offload configured, so an unspecified
error may be returned.

More generally, enabling hw-offload is best effort per datapath/NIC/flow
as full and partial offload support in NICs is variable and there is
always fallback to software.

So there is likely to be repeated logging about offloading of flows
failing. With this in mind, change the log level to debug.

The status of the offload can still be seen with below command:
$ ovs-appctl dpctl/dump-flows -m
... offloaded:partial ...

Also, remove some duplicated rate limiting.

Signed-off-by: Kevin Traynor 
---
 lib/netdev-offload-dpdk.c | 23 +--
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c
index 623005b1c..378bee161 100644
--- a/lib/netdev-offload-dpdk.c
+++ b/lib/netdev-offload-dpdk.c
@@ -920,22 +920,17 @@ netdev_offload_dpdk_flow_create(struct netdev *netdev,
 dump_flow(&s, &s_extra, attr, flow_patterns, flow_actions);
 extra_str = ds_cstr(&s_extra);
-VLOG_DBG_RL(&rl, "%s: rte_flow 0x%"PRIxPTR" %s  flow create %d %s",
-netdev_get_name(netdev), (intptr_t) flow, extra_str,
-netdev_dpdk_get_port_id(netdev), ds_cstr(&s));
+VLOG_DBG("%s: rte_flow 0x%"PRIxPTR" %s  flow create %d %s",
+ netdev_get_name(netdev), (intptr_t) flow, extra_str,
+ netdev_dpdk_get_port_id(netdev), ds_cstr(&s));
 }
 } else {
-enum vlog_level level = VLL_WARN;
-
-if (error->type == RTE_FLOW_ERROR_TYPE_ACTION) {
-level = VLL_DBG;
-}
-VLOG_RL(&rl, level, "%s: rte_flow creation failed: %d (%s).",
-netdev_get_name(netdev), error->type, error->message);
-if (!vlog_should_drop(&this_module, level, &rl)) {
+if (!VLOG_DROP_DBG(&rl)) {
+VLOG_DBG("%s: rte_flow creation failed: %d (%s).",
+ netdev_get_name(netdev), error->type, error->message);
 dump_flow(&s, &s_extra, attr, flow_patterns, flow_actions);
 extra_str = ds_cstr(&s_extra);
-VLOG_RL(&rl, level, "%s: Failed flow: %s  flow create %d %s",
-netdev_get_name(netdev), extra_str,
-netdev_dpdk_get_port_id(netdev), ds_cstr(&s));
+VLOG_DBG("%s: Failed flow: %s  flow create %d %s",
+ netdev_get_name(netdev), extra_str,
+ netdev_dpdk_get_port_id(netdev), ds_cstr(&s));
 }
 }
-- 
2.46.0

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


Re: [ovs-dev] [PATCH] netdev-dpdk: Fixed RCU deadlock when deleting vhostuser port

2024-09-06 Thread Kevin Traynor
On 06/09/2024 07:38, Eelco Chaudron wrote:
> 
> 
> On 5 Sep 2024, at 18:35, Kevin Traynor wrote:
> 
>> On 08/08/2024 10:57, Xinxin Zhao wrote:
>>> When the ovs control thread del vhost-user port and
>>> the vhost-event thread process the vhost-user port down concurrently,
>>> the main thread may fall into a deadlock.
>>>
>>> E.g., vhostuser port is created as client.
>>> The ovs control thread executes the following process:
>>> rte_vhost_driver_unregister->fdset_try_del.
>>> At the same time, the vhost-event thread executes the following process:
>>> fdset_event_dispatch->vhost_user_read_cb->destroy_device.
>>> At this time, vhost-event will wait for rcu scheduling,
>>> and the ovs control thread is waiting for pfdentry->busy to be 0.
>>> The two threads are waiting for each other and fall into a deadlock.
>>>
>>
>> Hi Xinxin,
>>
>> Thanks for the patch. I managed to reproduced this with a little bit of
>> hacking. Indeed, a deadlock can occur with some unlucky timing.
>>
>> Acked-by: Kevin Traynor 
> 
> Kevin or Xinxin, can you add some more explanation on where the deadlock is 
> occurring?
> 

vhost-event thread is blocking on the synchronize, waiting for main
thread to queisce, i.e.

#3  0x03690c09 in ovsrcu_synchronize () at lib/ovs-rcu.c:237
#4  0x037162fa in destroy_device (vid=0) at lib/netdev-dpdk.c:4919
#5  0x03238a12 in vhost_destroy_device_notify (dev=0x14ba693c0)
at ../lib/vhost/vhost.c:756

While main thread is looping in dpdk unregister, waiting for vhost-event
callback to finish, i.e.:

#1  0x032336e8 in rte_vhost_driver_unregister (path=0xd217a30
"/tmp/vhost0") at ../lib/vhost/socket.c:1075
#2  0x0370d5f3 in dpdk_vhost_driver_unregister (dev=0x17d6e8b40,
vhost_id=0xd217a30 "/tmp/vhost0") at lib/netdev-dpdk.c:1811
#3  0x0370d709 in netdev_dpdk_vhost_destruct
(netdev=0x17d6e8bc0) at lib/netdev-dpdk.c:1843

> Also, how do we guarantee that it’s safe to go to quiesce state and that no 
> others in the call chain hold/use any RCU-protected data?
> 

It should be fine for anything rcu freed in the main thread (possible
mirror bridge struct) as other threads would need to quiesce too, but
you have a point about anything used in main thread. We are deep into
bridge_run(), so I'm not sure how we could test for every scenario.

If we can't guarantee it, then maybe another approach is needed, perhaps
we could hijack the ovs_vhost thread mechanism to call the unregister ?
but i'm not sure if there's other implications doing it asynchronously.

> Thanks,
> 
> Eelco
> 
>>> Fixes: afee281 ("netdev-dpdk: Fix dpdk_watchdog failure to quiesce.")
>>>
>>> Signed-off-by: Xinxin Zhao <15957197...@163.com>
>>> ---
>>>  lib/netdev-dpdk.c | 11 ++-
>>>  1 file changed, 10 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
>>> index 02cef6e45..0c02357f5 100644
>>> --- a/lib/netdev-dpdk.c
>>> +++ b/lib/netdev-dpdk.c
>>> @@ -1808,7 +1808,16 @@ dpdk_vhost_driver_unregister(struct netdev_dpdk *dev 
>>> OVS_UNUSED,
>>>  OVS_EXCLUDED(dpdk_mutex)
>>>  OVS_EXCLUDED(dev->mutex)
>>>  {
>>> -return rte_vhost_driver_unregister(vhost_id);
>>> +int ret;
>>> +/* Due to the rcu wait of the vhost-event thread,
>>> + * rte_vhost_driver_unregister() may loop endlessly.
>>> + * So the unregister action needs to be removed from the rcu_list.
>>> + */
>>> +ovsrcu_quiesce_start();
>>> +ret = rte_vhost_driver_unregister(vhost_id);
>>> +ovsrcu_quiesce_end();
>>> +
>>> +return ret;
>>>  }
>>>
>>>  static void
>>
>> ___
>> 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


Re: [ovs-dev] [PATCH] netdev-dpdk: Fixed RCU deadlock when deleting vhostuser port

2024-09-05 Thread Kevin Traynor
On 08/08/2024 10:57, Xinxin Zhao wrote:
> When the ovs control thread del vhost-user port and
> the vhost-event thread process the vhost-user port down concurrently,
> the main thread may fall into a deadlock.
> 
> E.g., vhostuser port is created as client.
> The ovs control thread executes the following process:
> rte_vhost_driver_unregister->fdset_try_del.
> At the same time, the vhost-event thread executes the following process:
> fdset_event_dispatch->vhost_user_read_cb->destroy_device.
> At this time, vhost-event will wait for rcu scheduling,
> and the ovs control thread is waiting for pfdentry->busy to be 0.
> The two threads are waiting for each other and fall into a deadlock.
> 

Hi Xinxin,

Thanks for the patch. I managed to reproduced this with a little bit of
hacking. Indeed, a deadlock can occur with some unlucky timing.

Acked-by: Kevin Traynor 

> Fixes: afee281 ("netdev-dpdk: Fix dpdk_watchdog failure to quiesce.")
> 
> Signed-off-by: Xinxin Zhao <15957197...@163.com>
> ---
>  lib/netdev-dpdk.c | 11 ++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
> index 02cef6e45..0c02357f5 100644
> --- a/lib/netdev-dpdk.c
> +++ b/lib/netdev-dpdk.c
> @@ -1808,7 +1808,16 @@ dpdk_vhost_driver_unregister(struct netdev_dpdk *dev 
> OVS_UNUSED,
>  OVS_EXCLUDED(dpdk_mutex)
>  OVS_EXCLUDED(dev->mutex)
>  {
> -return rte_vhost_driver_unregister(vhost_id);
> +int ret;
> +/* Due to the rcu wait of the vhost-event thread,
> + * rte_vhost_driver_unregister() may loop endlessly.
> + * So the unregister action needs to be removed from the rcu_list.
> + */
> +ovsrcu_quiesce_start();
> +ret = rte_vhost_driver_unregister(vhost_id);
> +ovsrcu_quiesce_end();
> +
> +return ret;
>  }
>  
>  static void

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


Re: [ovs-dev] [PATCH v4] netdev-dpdk: Use LSC interrupt mode.

2024-06-24 Thread Kevin Traynor
On 19/06/2024 17:00, David Marchand wrote:
> Querying link status may get delayed for an undeterministic (long) time
> with mlx5 ports. This is a consequence of the mlx5 driver calling ethtool
> kernel API and getting stuck on the kernel RTNL lock while some other
> operation is in progress under this lock.
> 
> One impact for long link status query is that it is called under the bond
> lock taken in write mode periodically in bond_run().
> In parallel, datapath threads may block requesting to read bonding related
> info (like for example in bond_check_admissibility()).
> 
> The LSC interrupt mode is available with many DPDK drivers and is used by
> default with testpmd.
> 
> It seems safe enough to switch on this feature by default in OVS.
> We keep the per interface option to disable this feature in case of an
> unforeseen bug.
> 
> Signed-off-by: David Marchand 
> Reviewed-by: Robin Jarry 
> Acked-by: Mike Pattrick 
> ---
> Changes since v3:
> - updated logging in case of error,
> 
> Changes since v2:
> - fixed typo in NEWS,
> 
> Changes since v1:
> - (early) fail when interrupt lsc is requested by user but not supported
>   by the driver,
> - otherwise, log a debug message if user did not request interrupt mode,
> 
> ---
>  Documentation/topics/dpdk/phy.rst |  4 ++--
>  NEWS  |  3 +++
>  lib/netdev-dpdk.c | 13 -
>  vswitchd/vswitch.xml  |  8 
>  4 files changed, 21 insertions(+), 7 deletions(-)
> 

Applied to main branch. Thanks David, Robin, Ilya, Mike, Maxime and Aaron.

It seems this is a popular patch :-)

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


Re: [ovs-dev] [PATCH v4] netdev-dpdk: Use LSC interrupt mode.

2024-06-19 Thread Kevin Traynor
On 19/06/2024 17:00, David Marchand wrote:
> Querying link status may get delayed for an undeterministic (long) time
> with mlx5 ports. This is a consequence of the mlx5 driver calling ethtool
> kernel API and getting stuck on the kernel RTNL lock while some other
> operation is in progress under this lock.
> 
> One impact for long link status query is that it is called under the bond
> lock taken in write mode periodically in bond_run().
> In parallel, datapath threads may block requesting to read bonding related
> info (like for example in bond_check_admissibility()).
> 
> The LSC interrupt mode is available with many DPDK drivers and is used by
> default with testpmd.
> 
> It seems safe enough to switch on this feature by default in OVS.
> We keep the per interface option to disable this feature in case of an
> unforeseen bug.
> 
> Signed-off-by: David Marchand 
> Reviewed-by: Robin Jarry 
> Acked-by: Mike Pattrick 
> ---

LGTM

Acked-by: Kevin Traynor 

Re backporting. I'm not so keen on changing a default when someone
upgrades from 3.3.1 -> 3.3.2 etc. The feature is already available so
anyone who needs it can enable it.

Perhaps a separate small 'known issue' type of doc patch for phy.rst
could be backported to guide a user if they want to enable it ?

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


Re: [ovs-dev] [PATCH v2] dpdk: Check other_config:dpdk-extra for '--lcores'.

2024-06-19 Thread Kevin Traynor
On 13/06/2024 12:25, Eelco Chaudron wrote:
> 
> 
> On 13 Jun 2024, at 11:05, Kevin Traynor wrote:
> 
>> Currently dpdk lcore args for DPDK EAL init can be generated or
>> they can be written directly by the user through dpdk-extra.
>>
>> If dpdk-extra does not contain '-l' or '-c', a '-l' argument with
>> a core list for DPDK EAL init will be generated.
>>
>> The '--lcores' argument should also be checked, as if it is used in
>> dpdk-extra, currently a '-l' is still generated and that causes
>> DPDK EAL init to fail:
>>
>> |9|dpdk|INFO|EAL ARGS: ovs-vswitchd --lcores 0@18 --in-memory -l 0.
>> |00012|dpdk|ERR|EAL: Option -l is ignored, because (--lcore) is set!
>>
>> Add check for '--lcores' in dpdk-extra config and don't generate '-l'
>> if it is detected:
>>
>> |9|dpdk|INFO|EAL ARGS: ovs-vswitchd --lcores 0@8 --in-memory.
>>
>> Fixes: 543342a41cbc ("DPDK: add support for v2.0.0")
>> Signed-off-by: Kevin Traynor 
>> Reviewed-by: David Marchand 
> 
> Thanks for the patch Kevin, the change looks good to me.
> 
> Acked-by: Eelco Chaudron 
> 

Thanks David and Eelco. Applied and backported as far as oldest
maintained branch (2.17).

Interestingly, if it was to be applied to *all* branches, it would go
back to OVS 2.4!

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


[ovs-dev] [PATCH v2] dpdk: Check other_config:dpdk-extra for '--lcores'.

2024-06-13 Thread Kevin Traynor
Currently dpdk lcore args for DPDK EAL init can be generated or
they can be written directly by the user through dpdk-extra.

If dpdk-extra does not contain '-l' or '-c', a '-l' argument with
a core list for DPDK EAL init will be generated.

The '--lcores' argument should also be checked, as if it is used in
dpdk-extra, currently a '-l' is still generated and that causes
DPDK EAL init to fail:

|9|dpdk|INFO|EAL ARGS: ovs-vswitchd --lcores 0@18 --in-memory -l 0.
|00012|dpdk|ERR|EAL: Option -l is ignored, because (--lcore) is set!

Add check for '--lcores' in dpdk-extra config and don't generate '-l'
if it is detected:

|9|dpdk|INFO|EAL ARGS: ovs-vswitchd --lcores 0@8 --in-memory.

Fixes: 543342a41cbc ("DPDK: add support for v2.0.0")
Signed-off-by: Kevin Traynor 
Reviewed-by: David Marchand 
---
v2: Correct the Fixes: tag
---
 lib/dpdk.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/dpdk.c b/lib/dpdk.c
index d76d53f8f..940c43c07 100644
--- a/lib/dpdk.c
+++ b/lib/dpdk.c
@@ -338,5 +338,7 @@ dpdk_init__(const struct smap *ovs_other_config)
 #endif
 
-if (args_contains(&args, "-c") || args_contains(&args, "-l")) {
+if (args_contains(&args, "-c") ||
+args_contains(&args, "-l") ||
+args_contains(&args, "--lcores")) {
 auto_determine = false;
 }
-- 
2.45.0

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


Re: [ovs-dev] [PATCH] dpdk: Check other_config:dpdk-extra for '--lcores'.

2024-06-13 Thread Kevin Traynor
On 13/06/2024 09:52, David Marchand wrote:
> Hello Kevin,
> 
> On Wed, Jun 12, 2024 at 7:09 PM Kevin Traynor  wrote:
>>
>> Currently dpdk lcore args for DPDK EAL init can be generated or it
>> can be written directly by the user through dpdk-extra.
>>
>> If dpdk-extra does not contain '-l' or '-c', a '-l' argument with
>> a core list for DPDK EAL init will be generated.
>>
>> The '--lcores' argument should also be checked, as if it is used in
>> dpdk-extra, a '-l' is still generated and that causes DPDK EAL init
>> to fail:
>>
>> |9|dpdk|INFO|EAL ARGS: ovs-vswitchd --lcores 0@18 --in-memory -l 0.
>> |00012|dpdk|ERR|EAL: Option -l is ignored, because (--lcore) is set!
> 
> Not important for this patch, but there is a typo in the DPDK error
> message, should be --lcores.
> Can you send a fix on DPDK side?
> 

Yes, i noticed that and it caused me a bit of confusion. Will send a fix.

>>
>> Add check for '--lcores' in dpdk-extra config and don't add '-l' if
>> it is detected:
>>
>> |9|dpdk|INFO|EAL ARGS: ovs-vswitchd --lcores 0@8 --in-memory.
>>
>> Fixes: 0a0f39df1d5a ("netdev-dpdk: Add support for DPDK 16.07")
> 
> I am not clear why you point at this commit.
> 

It's sooo old, I'd forgotten about the v2.X tags and just looked at the
first tags for the DPDK commit and then went by the NEWS for next OVS
update!

> --lcores were introduced in DPDK v2.0.0.
> In 0a0f39df1d5a (which swaps DPDK from 16.04 to 16.07), only -c is
> handled so passing additional -l and --lcores via dpdk-extra would
> already be a problem.
> 
> I would point at:
> Fixes: 543342a41cbc ("DPDK: add support for v2.0.0")
> 

Makes sense. Thanks for reviewing.

>> Signed-off-by: Kevin Traynor 
> 
> With the Fixes: tag sorted out, you can add:
> Reviewed-by: David Marchand 
> 
> 

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


[ovs-dev] [PATCH] dpdk: Check other_config:dpdk-extra for '--lcores'.

2024-06-12 Thread Kevin Traynor
Currently dpdk lcore args for DPDK EAL init can be generated or it
can be written directly by the user through dpdk-extra.

If dpdk-extra does not contain '-l' or '-c', a '-l' argument with
a core list for DPDK EAL init will be generated.

The '--lcores' argument should also be checked, as if it is used in
dpdk-extra, a '-l' is still generated and that causes DPDK EAL init
to fail:

|9|dpdk|INFO|EAL ARGS: ovs-vswitchd --lcores 0@18 --in-memory -l 0.
|00012|dpdk|ERR|EAL: Option -l is ignored, because (--lcore) is set!

Add check for '--lcores' in dpdk-extra config and don't add '-l' if
it is detected:

|9|dpdk|INFO|EAL ARGS: ovs-vswitchd --lcores 0@8 --in-memory.

Fixes: 0a0f39df1d5a ("netdev-dpdk: Add support for DPDK 16.07")
Signed-off-by: Kevin Traynor 
---
 lib/dpdk.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/dpdk.c b/lib/dpdk.c
index d76d53f8f..940c43c07 100644
--- a/lib/dpdk.c
+++ b/lib/dpdk.c
@@ -338,5 +338,7 @@ dpdk_init__(const struct smap *ovs_other_config)
 #endif
 
-if (args_contains(&args, "-c") || args_contains(&args, "-l")) {
+if (args_contains(&args, "-c") ||
+args_contains(&args, "-l") ||
+args_contains(&args, "--lcores")) {
 auto_determine = false;
 }
-- 
2.45.0

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


[ovs-dev] [PATCH 1/1] netdev-dpdk: Check pending reset when adding device.

2024-06-12 Thread Kevin Traynor
When a device reset interrupt event (RTE_ETH_EVENT_INTR_RESET)
is detected for a DPDK device added to OVS, a device reset is
performed.

If a device reset interrupt event is detected for a device before
it is added to OVS, device reset is not called.

If that device is later attempted to be added to OVS, it may fail
while being configured if it is still pending a reset as pending
reset is not checked when adding a device.

A simple way to force a reset event from the ice driver for an
iavf device is to set the mac address after binding iavf dev to
vfio but before adding to OVS. (note: should not be set like this
in normal case). e.g.

$ echo 2 > /sys/class/net/ens3f0/device/sriov_numvfs
$ ./devbind.py -b vfio-pci :d8:01.1
$ ip link set ens3f0 vf 1 mac 26:ab:e6:6f:79:4d
$ ovs-vsctl add-port br0 dpdk0 -- set Interface dpdk0 type=dpdk \
  options:dpdk-devargs=:d8:01.1

|dpdk|ERR|Port1 dev_configure = -1
|netdev_dpdk|WARN|Interface dpdk0 eth_dev setup error
Operation not permitted
|netdev_dpdk|ERR|Interface dpdk0(rxq:1 txq:5 lsc interrupt mode:false)
configure error: Operation not permitted
|dpif_netdev|ERR|Failed to set interface dpdk0 new configuration

Add a check if there was any previous device reset interrupt events
when a device is added to OVS. If there was, perform the reset
before continuing with the rest of the configuration.

netdev_dpdk_pending_reset[] already tracks device reset interrupt
events for all devices, so it can be reused to check if there is a
reset needed during configuration of newly added devices. By extending
it's usage, dev->reset_needed is no longer needed.

Signed-off-by: Kevin Traynor 
---
 lib/netdev-dpdk.c | 20 
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 0fa37d514..9ceb0d972 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -465,7 +465,6 @@ struct netdev_dpdk {
 /* If true, rte_eth_dev_start() was successfully called */
 bool started;
-bool reset_needed;
-/* 1 pad byte here. */
 struct eth_addr hwaddr;
+/* 2 pad byte here. */
 int mtu;
 int socket_id;
@@ -1532,5 +1531,4 @@ common_construct(struct netdev *netdev, dpdk_port_t 
port_no,
 dev->attached = false;
 dev->started = false;
-dev->reset_needed = false;
 
 ovsrcu_init(&dev->qos_conf, NULL);
@@ -2155,5 +2153,4 @@ netdev_dpdk_run(const struct netdev_class *netdev_class 
OVS_UNUSED)
 continue;
 }
-atomic_store_relaxed(&netdev_dpdk_pending_reset[port_id], false);
 
 ovs_mutex_lock(&dpdk_mutex);
@@ -2161,5 +2158,4 @@ netdev_dpdk_run(const struct netdev_class *netdev_class 
OVS_UNUSED)
 if (dev) {
 ovs_mutex_lock(&dev->mutex);
-dev->reset_needed = true;
 netdev_request_reconfigure(&dev->up);
 VLOG_DBG_RL(&rl, "%s: Device reset requested.",
@@ -6073,4 +6069,5 @@ netdev_dpdk_reconfigure(struct netdev *netdev)
 {
 struct netdev_dpdk *dev = netdev_dpdk_cast(netdev);
+bool pending_reset;
 bool try_rx_steer;
 int err = 0;
@@ -6084,4 +6081,7 @@ netdev_dpdk_reconfigure(struct netdev *netdev)
 }
 
+atomic_read_relaxed(&netdev_dpdk_pending_reset[dev->port_id],
+&pending_reset);
+
 if (netdev->n_txq == dev->requested_n_txq
 && netdev->n_rxq == dev->requested_n_rxq
@@ -6093,5 +6093,5 @@ netdev_dpdk_reconfigure(struct netdev *netdev)
 && eth_addr_equals(dev->hwaddr, dev->requested_hwaddr)
 && dev->socket_id == dev->requested_socket_id
-&& dev->started && !dev->reset_needed) {
+&& dev->started && !pending_reset) {
 /* Reconfiguration is unnecessary */
 
@@ -6102,8 +6102,12 @@ retry:
 dpdk_rx_steer_unconfigure(dev);
 
-if (dev->reset_needed) {
+if (pending_reset) {
+/*
+ * Set false before reset to avoid missing a new reset interrupt event
+ * in a race with event callback.
+ */
+atomic_store_relaxed(&netdev_dpdk_pending_reset[dev->port_id], false);
 rte_eth_dev_reset(dev->port_id);
 if_notifier_manual_report();
-dev->reset_needed = false;
 } else {
 rte_eth_dev_stop(dev->port_id);
-- 
2.45.0

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


[ovs-dev] [PATCH 0/1] netdev-dpdk: Check pending reset when adding device.

2024-06-12 Thread Kevin Traynor
fyi - I removed dev->reset_needed when looking at the duplication
of using both it and netdev_dpdk_pending_reset[] in reconfigure.
Early version here [0].

[0] 
https://github.com/kevintraynor/ovs/commit/dc89dfbcb7dafa929c03834ac5aa0026ba4c74d9

Kevin Traynor (1):
  netdev-dpdk: Check pending reset when adding device.

 lib/netdev-dpdk.c | 20 
 1 file changed, 12 insertions(+), 8 deletions(-)

-- 
2.45.0

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


Re: [ovs-dev] [PATCH branch-2.17 0/2] Release patches for v2.17.10.

2024-06-07 Thread Kevin Traynor
On 07/06/2024 15:01, Ilya Maximets wrote:
> We didn't make a stable release for a while.  It's definitely time
> to make one.
> 
> Ilya Maximets (2):
>   Set release date for 2.17.10.
>   Prepare for 2.17.11.
> 
>  NEWS | 6 +-
>  configure.ac | 2 +-
>  debian/changelog | 8 +++-
>  3 files changed, 13 insertions(+), 3 deletions(-)
> 

Acked-by: Kevin Traynor 

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


Re: [ovs-dev] [PATCH branch-3.0 0/2] Release patches for v3.0.7.

2024-06-07 Thread Kevin Traynor
On 07/06/2024 15:01, Ilya Maximets wrote:
> We didn't make a stable release for a while.  It's definitely time
> to make one.
> 
> Ilya Maximets (2):
>   Set release date for 3.0.7.
>   Prepare for 3.0.8.
> 
>  NEWS | 6 +-
>  configure.ac | 2 +-
>  debian/changelog | 8 +++-
>  3 files changed, 13 insertions(+), 3 deletions(-)
> 

Acked-by: Kevin Traynor 

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


Re: [ovs-dev] [PATCH branch-3.2 0/2] Release patches for v3.2.3.

2024-06-07 Thread Kevin Traynor
On 07/06/2024 15:01, Ilya Maximets wrote:
> We didn't make a stable release for a while.  It's definitely time
> to make one.
> 
> Ilya Maximets (2):
>   Set release date for 3.2.3.
>   Prepare for 3.2.4.
> 
>  NEWS | 6 +-
>  configure.ac | 2 +-
>  debian/changelog | 8 +++-
>  3 files changed, 13 insertions(+), 3 deletions(-)
> 

Acked-by: Kevin Traynor 

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


Re: [ovs-dev] [PATCH branch-3.1 0/2] Release patches for v3.1.5.

2024-06-07 Thread Kevin Traynor
On 07/06/2024 15:01, Ilya Maximets wrote:
> We didn't make a stable release for a while.  It's definitely time
> to make one.
> 
> Ilya Maximets (2):
>   Set release date for 3.1.5.
>   Prepare for 3.1.6.
> 
>  NEWS | 6 +-
>  configure.ac | 2 +-
>  debian/changelog | 8 +++-
>  3 files changed, 13 insertions(+), 3 deletions(-)
> 

Acked-by: Kevin Traynor 

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


Re: [ovs-dev] [PATCH branch-3.3 0/2] Release patches for v3.3.1.

2024-06-07 Thread Kevin Traynor
On 07/06/2024 15:01, Ilya Maximets wrote:
> We didn't make a stable release for a while.  It's definitely time
> to make one.
> 
> Ilya Maximets (2):
>   Set release date for 3.3.1.
>   Prepare for 3.3.2.
> 
>  NEWS | 6 +-
>  configure.ac | 2 +-
>  debian/changelog | 8 +++-
>  3 files changed, 13 insertions(+), 3 deletions(-)
> 

Acked-by: Kevin Traynor 

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


Re: [ovs-dev] [PATCH 2/2] ci: Restore vhost-user unit tests in check-dpdk.

2024-06-07 Thread Kevin Traynor
On 07/06/2024 11:08, Eelco Chaudron wrote:
> 
> 
> On 6 Jun 2024, at 15:11, David Marchand wrote:
> 
>> Following a rework in the DPDK cache, the PATH variable is incorrectly
>> set, resulting in dpdk-testpmd not being available.
>> Because of this, vhost-user unit tests were skipped in GHA runs.
>>
>> Fixes: 8893e24d9d09 ("dpdk: Update to use v23.11.")
>> Signed-off-by: David Marchand 
> 
> Thanks David for looking into this. Ran some tests in my environment and all 
> is fine.
> 
> Acked-by: Eelco Chaudron 
> 
> ___
> dev mailing list
> d...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> 

Thanks Christian, David and Eelco. Series applied to main and backported
to branch-3.3.

regards,
Kevin.

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


Re: [ovs-dev] [PATCH 2/2] ci: Restore vhost-user unit tests in check-dpdk.

2024-06-07 Thread Kevin Traynor
On 06/06/2024 14:11, David Marchand wrote:
> Following a rework in the DPDK cache, the PATH variable is incorrectly
> set, resulting in dpdk-testpmd not being available.
> Because of this, vhost-user unit tests were skipped in GHA runs.
> 
> Fixes: 8893e24d9d09 ("dpdk: Update to use v23.11.")
> Signed-off-by: David Marchand 
> ---
>  .ci/linux-build.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 

Acked-by: Kevin Traynor 

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


Re: [ovs-dev] [PATCH 1/2] system-dpdk: Fix socket conflict when starting testpmd.

2024-06-07 Thread Kevin Traynor
On 06/06/2024 14:11, David Marchand wrote:
> The DPDK telemetry library tries to connect to existing socket files so
> that it knows whether it can take over them.
> 
> As was reported by Christian, following a fix in DPDK that got backported
> in v23.11.1, vhost-user unit tests that have both OVS and testpmd running
> at the same time reveal a conflict over the telemetry socket.
> This conflict shows up as an error message in OVS logs which makes those
> tests fail in the CI:
> 
> 2024-06-06T13:03:38.351Z|1|dpdk|ERR|TELEMETRY: Socket write base info
>   to client failed
> 
> The EAL file-prefix option affects both the directory where DPDK stores
> running files (like the telemetry socket) and how files backing hugepages
> are named (when in non --in-memory mode).
> Configure (again) this prefix so that testpmd runs in a dedicated directory.
> 
> Reported-at: 
> https://mail.openvswitch.org/pipermail/ovs-dev/2024-June/414545.html
> Fixes: c488f28a0eaf ("system-dpdk: Don't require hugetlbfs.")
> Signed-off-by: David Marchand 
> ---
>  tests/system-dpdk-macros.at | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 

Acked-by: Kevin Traynor 


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


Re: [ovs-dev] [PATCH v4 6/6] netdev-dpdk: Refactor tunnel checksum offloading.

2024-06-06 Thread Kevin Traynor
On 05/06/2024 19:16, Ilya Maximets wrote:
> On 5/31/24 16:10, Kevin Traynor wrote:
>> On 30/05/2024 14:10, David Marchand wrote:
>>> All informations required for checksum offloading can be deducted by
>>
>> nit:  "All information required for checksum offloading can be deduced
>> by" can update on applying, assuming no more revs are needed.
>>
>>> already tracked dp_packet l3_ofs, l4_ofs, inner_l3_ofs and inner_l4_ofs
>>> fields.
>>> Remove DPDK specific l[2-4]_len from generic OVS code.
>>>
>>> netdev-dpdk code then fills mbuf specifics step by step:
>>> - outer_l2_len and outer_l3_len are needed for tunneling (and below
>>>   features),
>>> - l2_len and l3_len are needed for IP and L4 checksum (and below features),
>>> - l4_len and tso_segsz are needed when doing TSO,
>>>
>>> Signed-off-by: David Marchand 
>>> ---
>>>  lib/dp-packet.h | 37 --
>>>  lib/netdev-dpdk.c   | 35 ++++++---
>>>  lib/netdev-native-tnl.c | 50 +
>>>  3 files changed, 27 insertions(+), 95 deletions(-)
>>
>> Acked-by: Kevin Traynor 
> 
> Thanks, David and Kevin!
> 
> I generally like the direction of this patch set, especially the
> cleanup of the generic tunnel code.
> 
> I didn't test it with a real hardware nor I re-checked the math,
> so will not Ack it, but it looks good to me otherwise, and I think
> we should backport the whole thing to at least branch-3.3 as well.
> 
> Best regards, Ilya Maximets.
> 

Thanks David, Jun and Ilya. Series applied and backported to branch-3.3.

Kevin.

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


Re: [ovs-dev] [PATCH v4 6/6] netdev-dpdk: Refactor tunnel checksum offloading.

2024-05-31 Thread Kevin Traynor
On 30/05/2024 14:10, David Marchand wrote:
> All informations required for checksum offloading can be deducted by

nit:  "All information required for checksum offloading can be deduced
by" can update on applying, assuming no more revs are needed.

> already tracked dp_packet l3_ofs, l4_ofs, inner_l3_ofs and inner_l4_ofs
> fields.
> Remove DPDK specific l[2-4]_len from generic OVS code.
> 
> netdev-dpdk code then fills mbuf specifics step by step:
> - outer_l2_len and outer_l3_len are needed for tunneling (and below
>   features),
> - l2_len and l3_len are needed for IP and L4 checksum (and below features),
> - l4_len and tso_segsz are needed when doing TSO,
> 
> Signed-off-by: David Marchand 
> ---
>  lib/dp-packet.h | 37 --
>  lib/netdev-dpdk.c   | 35 ++---
>  lib/netdev-native-tnl.c | 50 +
>  3 files changed, 27 insertions(+), 95 deletions(-)

Acked-by: Kevin Traynor 



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


Re: [ovs-dev] [PATCH v4 5/6] netdev-dpdk: Use guest TSO segmentation size hint.

2024-05-31 Thread Kevin Traynor
On 30/05/2024 14:10, David Marchand wrote:
> In a typical setup like:
> guest A <-virtio-> OVS A <-vxlan-> OVS B <-virtio-> guest B
> 
> TSO packets from guest A are segmented against the OVS A physical port
> mtu adjusted by the vxlan tunnel header size, regardless of guest A
> interface mtu.
> 
> As an example, let's say guest A and guest B mtu are set to 1500 bytes.
> OVS A and OVS B physical ports mtu are set to 1600 bytes.
> Guest A will request TCP segmentation for 1448 bytes segments.
> On the other hand, OVS A will request 1498 bytes segments to the HW.
> This results in OVS B dropping packets because decapsulated packets
> are larger than the vhost-user port (serving guest B) mtu.
> 
> 2024-04-17T14:13:01.239Z|2|netdev_dpdk(pmd-c03/id:7)|WARN|vhost0:
>   Too big size 1564 max_packet_len 1518
> 
> vhost-user ports expose a guest mtu by filling mbuf->tso_segsz.
> Use it as a hint.
> 
> This may result in segments (on the wire) slightly shorter than the
> optimal size.
> 
> Reported-at: https://github.com/openvswitch/ovs-issues/issues/321
> Signed-off-by: David Marchand 

It seems like it should be tagged as a fix and backported. wdyt?

For the changes,
Acked-by: Kevin Traynor 


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


Re: [ovs-dev] [PATCH v2 branch-2.17] dpdk: Use DPDK 21.11.7 release for OVS 2.17.

2024-05-30 Thread Kevin Traynor
On 30/05/2024 13:13, Eelco Chaudron wrote:
> 
> 
> On 28 May 2024, at 11:25, Kevin Traynor wrote:
> 
>> Update the CI and docs to use DPDK 21.11.7.
>>
>> Signed-off-by: Kevin Traynor 
> 
> Thanks Kevin, changes look good to me.
> 
> Acked-by: Eelco Chaudron 
> 

Thanks Ilya and Eelco. Applied and pushed to the relevant branches.

Kevin.

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


[ovs-dev] [PATCH v2 branch-3.1] dpdk: Use DPDK 22.11.5 release for OVS 3.1.

2024-05-28 Thread Kevin Traynor
Update the CI and docs to use DPDK 22.11.5.

Signed-off-by: Kevin Traynor 
---
v2: no change
---
 .github/workflows/build-and-test.yml | 2 +-
 Documentation/faq/releases.rst   | 6 +++---
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 ++
 4 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index 22dc81252..6659c1025 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -12,5 +12,5 @@ jobs:
   CC: gcc
   DPDK_GIT: https://dpdk.org/git/dpdk-stable
-  DPDK_VER: 22.11.4
+  DPDK_VER: 22.11.5
 name: dpdk gcc
 outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index a393f78a8..a2625062d 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -215,7 +215,7 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.6
-3.0.x21.11.6
-3.1.x22.11.4
+2.17.x   21.11.7
+3.0.x21.11.7
+3.1.x22.11.5
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index 27df48493..a9921ae42 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 22.11.4
+- DPDK 22.11.5
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-22.11.4.tar.xz
-   $ tar xf dpdk-22.11.4.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.4
+   $ wget https://fast.dpdk.org/rel/dpdk-22.11.5.tar.xz
+   $ tar xf dpdk-22.11.5.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.5
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index aaddb77e8..44a3e6247 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 v3.1.5 - xx xxx 
 
+   - DPDK:
+ * OVS validated with DPDK 22.11.5.
 
 v3.1.4 - 08 Feb 2024
-- 
2.44.0

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


[ovs-dev] [PATCH v2 branch-3.3] dpdk: Use DPDK 23.11.1 release for OVS 3.3.

2024-05-28 Thread Kevin Traynor
Update the CI and docs to use DPDK 23.11.1.

Signed-off-by: Kevin Traynor 
---
v2: update NEWS
---
 .github/workflows/build-and-test.yml |  4 ++--
 Documentation/faq/releases.rst   | 10 +-
 Documentation/intro/install/dpdk.rst |  8 
 NEWS |  2 ++
 4 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index 44491db3e..4a012efd9 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -11,6 +11,6 @@ jobs:
   dependencies: gcc libbpf-dev libnuma-dev libpcap-dev ninja-build pkgconf
   CC: gcc
-  DPDK_GIT: https://dpdk.org/git/dpdk
-  DPDK_VER: 23.11
+  DPDK_GIT: https://dpdk.org/git/dpdk-stable
+  DPDK_VER: 23.11.1
 name: dpdk gcc
 outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 49b987b61..95ce0bf41 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -217,9 +217,9 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.6
-3.0.x21.11.6
-3.1.x22.11.4
-3.2.x22.11.4
-3.3.x23.11
+2.17.x   21.11.7
+3.0.x21.11.7
+3.1.x22.11.5
+3.2.x22.11.5
+3.3.x23.11.1
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index ad9bdf22c..93c4a12e7 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 23.11
+- DPDK 23.11.1
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-23.11.tar.xz
-   $ tar xf dpdk-23.11.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-23.11
+   $ wget https://fast.dpdk.org/rel/dpdk-23.11.1.tar.xz
+   $ tar xf dpdk-23.11.1.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-23.11.1
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index 4bfb341cf..31d235a40 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 v3.3.1 - xx xxx 
 
+   - DPDK:
+ * OVS validated with DPDK 23.11.1.
 
 v3.3.0 - 16 Feb 2024
-- 
2.44.0

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


[ovs-dev] [PATCH v2 branch-3.2] dpdk: Use DPDK 22.11.5 release for OVS 3.2.

2024-05-28 Thread Kevin Traynor
Update the CI and docs to use DPDK 22.11.5.

Signed-off-by: Kevin Traynor 
---
v2: no change
---
 .github/workflows/build-and-test.yml | 2 +-
 Documentation/faq/releases.rst   | 8 
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 ++
 4 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index 565058cec..951e7e321 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -12,5 +12,5 @@ jobs:
   CC: gcc
   DPDK_GIT: https://dpdk.org/git/dpdk-stable
-  DPDK_VER: 22.11.4
+  DPDK_VER: 22.11.5
 name: dpdk gcc
 outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index f47d40836..2be9b501c 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -216,8 +216,8 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.6
-3.0.x21.11.6
-3.1.x22.11.4
-3.2.x22.11.4
+2.17.x   21.11.7
+3.0.x21.11.7
+3.1.x22.11.5
+3.2.x22.11.5
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index 27df48493..a9921ae42 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 22.11.4
+- DPDK 22.11.5
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-22.11.4.tar.xz
-   $ tar xf dpdk-22.11.4.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.4
+   $ wget https://fast.dpdk.org/rel/dpdk-22.11.5.tar.xz
+   $ tar xf dpdk-22.11.5.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.5
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index baeecae04..8baf3d2aa 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 v3.2.3 - xx xxx 
 
+   - DPDK:
+ * OVS validated with DPDK 22.11.5.
 
 v3.2.2 - 08 Feb 2024
-- 
2.44.0

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


[ovs-dev] [PATCH v2] dpdk: Use DPDK 23.11.1 release.

2024-05-28 Thread Kevin Traynor
Update the CI and docs to use DPDK 23.11.1.

Signed-off-by: Kevin Traynor 
---
v2: update NEWS
---
 .github/workflows/build-and-test.yml |  4 ++--
 Documentation/faq/releases.rst   | 10 +-
 Documentation/intro/install/dpdk.rst |  8 
 NEWS |  2 ++
 4 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index 424dbab6c..9d3a13ca1 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -11,6 +11,6 @@ jobs:
   dependencies: gcc libbpf-dev libnuma-dev libpcap-dev ninja-build pkgconf
   CC: gcc
-  DPDK_GIT: https://dpdk.org/git/dpdk
-  DPDK_VER: 23.11
+  DPDK_GIT: https://dpdk.org/git/dpdk-stable
+  DPDK_VER: 23.11.1
 name: dpdk gcc
 outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 26973c2ad..70219d717 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -217,9 +217,9 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.6
-3.0.x21.11.6
-3.1.x22.11.4
-3.2.x22.11.4
-3.3.x23.11
+2.17.x   21.11.7
+3.0.x21.11.7
+3.1.x22.11.5
+3.2.x22.11.5
+3.3.x23.11.1
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index f1646322c..63a978f0e 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 23.11
+- DPDK 23.11.1
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-23.11.tar.xz
-   $ tar xf dpdk-23.11.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-23.11
+   $ wget https://fast.dpdk.org/rel/dpdk-23.11.1.tar.xz
+   $ tar xf dpdk-23.11.1.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-23.11.1
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index b92cec532..5ae0108d5 100644
--- a/NEWS
+++ b/NEWS
@@ -8,4 +8,6 @@ Post-v3.3.0
  The OVS tree remains hosted on GitHub.
  https://github.com/openvswitch/ovs.git
+   - DPDK:
+ * OVS validated with DPDK 23.11.1.
 
 
-- 
2.44.0

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


[ovs-dev] [PATCH v2 branch-2.17] dpdk: Use DPDK 21.11.7 release for OVS 2.17.

2024-05-28 Thread Kevin Traynor
Update the CI and docs to use DPDK 21.11.7.

Signed-off-by: Kevin Traynor 
---
v2: no change
---
 .ci/linux-build.sh   | 2 +-
 Documentation/faq/releases.rst   | 2 +-
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 ++
 4 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 2e1bf2588..0f5263709 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -221,5 +221,5 @@ fi
 if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
 if [ -z "$DPDK_VER" ]; then
-DPDK_VER="21.11.6"
+DPDK_VER="21.11.7"
 fi
 install_dpdk $DPDK_VER
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index a9045a2d5..1e896add5 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -211,5 +211,5 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.6
+2.17.x   21.11.7
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index fff49007e..3d011ecb3 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 21.11.6
+- DPDK 21.11.7
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-21.11.6.tar.xz
-   $ tar xf dpdk-21.11.6.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.6
+   $ wget https://fast.dpdk.org/rel/dpdk-21.11.7.tar.xz
+   $ tar xf dpdk-21.11.7.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.7
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index ca111ae3a..e91072dd6 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 v2.17.10 - xx xxx 
 --
+   - DPDK:
+ * OVS validated with DPDK 21.11.7.
 
 v2.17.9 - 08 Feb 2024
-- 
2.44.0

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


[ovs-dev] [PATCH v2 branch-3.0] dpdk: Use DPDK 21.11.7 release for OVS 3.0.

2024-05-28 Thread Kevin Traynor
Update the CI and docs to use DPDK 21.11.7.

Signed-off-by: Kevin Traynor 
---
v2: no change
---
 .ci/linux-build.sh   | 2 +-
 Documentation/faq/releases.rst   | 4 ++--
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 ++
 4 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 7cb183dde..9d44c80d7 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -229,5 +229,5 @@ fi
 if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
 if [ -z "$DPDK_VER" ]; then
-DPDK_VER="21.11.6"
+DPDK_VER="21.11.7"
 fi
 install_dpdk $DPDK_VER
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 0dd2ec865..10156c209 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -214,6 +214,6 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.6
-3.0.x21.11.6
+2.17.x   21.11.7
+3.0.x21.11.7
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index fff49007e..3d011ecb3 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 21.11.6
+- DPDK 21.11.7
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-21.11.6.tar.xz
-   $ tar xf dpdk-21.11.6.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.6
+   $ wget https://fast.dpdk.org/rel/dpdk-21.11.7.tar.xz
+   $ tar xf dpdk-21.11.7.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.7
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index 0bb28638c..8550e8e89 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 v3.0.7 - xx xxx 
 
+   - DPDK:
+ * OVS validated with DPDK 21.11.7.
 
 v3.0.6 - 08 Feb 2024
-- 
2.44.0

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


Re: [ovs-dev] [PATCH branch-3.3] dpdk: Use DPDK 23.11.1 release for OVS 3.3.

2024-05-28 Thread Kevin Traynor
On 27/05/2024 23:28, Ilya Maximets wrote:
> On 5/23/24 18:00, Kevin Traynor wrote:
>> Update the CI and docs to use DPDK 23.11.1.
>>
>> Signed-off-by: Kevin Traynor 
>> ---
>>  .github/workflows/build-and-test.yml |  4 ++--
>>  Documentation/faq/releases.rst   | 10 +-
>>  Documentation/intro/install/dpdk.rst |  8 
>>  NEWS |  3 +++
>>  4 files changed, 14 insertions(+), 11 deletions(-)
>>
>> diff --git a/.github/workflows/build-and-test.yml 
>> b/.github/workflows/build-and-test.yml
>> index 44491db3e..4a012efd9 100644
>> --- a/.github/workflows/build-and-test.yml
>> +++ b/.github/workflows/build-and-test.yml
>> @@ -11,6 +11,6 @@ jobs:
>>dependencies: gcc libbpf-dev libnuma-dev libpcap-dev ninja-build 
>> pkgconf
>>CC: gcc
>> -  DPDK_GIT: https://dpdk.org/git/dpdk
>> -  DPDK_VER: 23.11
>> +  DPDK_GIT: https://dpdk.org/git/dpdk-stable
>> +  DPDK_VER: 23.11.1
>>  name: dpdk gcc
>>  outputs:
>> diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
>> index 49b987b61..95ce0bf41 100644
>> --- a/Documentation/faq/releases.rst
>> +++ b/Documentation/faq/releases.rst
>> @@ -217,9 +217,9 @@ Q: What DPDK version does each Open vSwitch release work 
>> with?
>>  2.15.x   20.11.6
>>  2.16.x   20.11.6
>> -2.17.x   21.11.6
>> -3.0.x21.11.6
>> -3.1.x22.11.4
>> -3.2.x22.11.4
>> -3.3.x23.11
>> +2.17.x   21.11.7
>> +3.0.x21.11.7
>> +3.1.x22.11.5
>> +3.2.x22.11.5
>> +3.3.x23.11.1
>>   
>>  
>> diff --git a/Documentation/intro/install/dpdk.rst 
>> b/Documentation/intro/install/dpdk.rst
>> index ad9bdf22c..93c4a12e7 100644
>> --- a/Documentation/intro/install/dpdk.rst
>> +++ b/Documentation/intro/install/dpdk.rst
>> @@ -43,5 +43,5 @@ In addition to the requirements described in 
>> :doc:`general`, building Open
>>  vSwitch with DPDK will require the following:
>>  
>> -- DPDK 23.11
>> +- DPDK 23.11.1
>>  
>>  - A `DPDK supported NIC`_
>> @@ -74,7 +74,7 @@ Install DPDK
>>  
>> $ cd /usr/src/
>> -   $ wget https://fast.dpdk.org/rel/dpdk-23.11.tar.xz
>> -   $ tar xf dpdk-23.11.tar.xz
>> -   $ export DPDK_DIR=/usr/src/dpdk-23.11
>> +   $ wget https://fast.dpdk.org/rel/dpdk-23.11.1.tar.xz
>> +   $ tar xf dpdk-23.11.1.tar.xz
>> +   $ export DPDK_DIR=/usr/src/dpdk-stable-23.11.1
>> $ cd $DPDK_DIR
>>  
>> diff --git a/NEWS b/NEWS
>> index 4bfb341cf..1c93d2944 100644
>> --- a/NEWS
>> +++ b/NEWS
>> @@ -1,4 +1,7 @@
>>  v3.3.1 - xx xxx 
>>  
>> +   - DPDK:
>> + * Add support for DPDK 23.11.1.
>> +
> 
> We're normally using 'validated with'.

Yeah, I just updated the text from the 23.11 update, but I agree
validated is better than supported.

> And the extra line is not needed here.
> 

Right, I had copied below, but now I see in other branch that major
release has double space and minor release has single, so I'll keep to that.

I'll update this patch and main branch patch and send a v2, thanks.

> Best regards, Ilya Maximets.
> 

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


[ovs-dev] [PATCH] dpdk: Use DPDK 23.11.1 release.

2024-05-23 Thread Kevin Traynor
Update the CI and docs to use DPDK 23.11.1.

Signed-off-by: Kevin Traynor 
---
 .github/workflows/build-and-test.yml |  4 ++--
 Documentation/faq/releases.rst   | 10 +-
 Documentation/intro/install/dpdk.rst |  8 
 NEWS |  2 ++
 4 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index 424dbab6c..9d3a13ca1 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -11,6 +11,6 @@ jobs:
   dependencies: gcc libbpf-dev libnuma-dev libpcap-dev ninja-build pkgconf
   CC: gcc
-  DPDK_GIT: https://dpdk.org/git/dpdk
-  DPDK_VER: 23.11
+  DPDK_GIT: https://dpdk.org/git/dpdk-stable
+  DPDK_VER: 23.11.1
 name: dpdk gcc
 outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 26973c2ad..70219d717 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -217,9 +217,9 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.6
-3.0.x21.11.6
-3.1.x22.11.4
-3.2.x22.11.4
-3.3.x23.11
+2.17.x   21.11.7
+3.0.x21.11.7
+3.1.x22.11.5
+3.2.x22.11.5
+3.3.x23.11.1
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index f1646322c..63a978f0e 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 23.11
+- DPDK 23.11.1
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-23.11.tar.xz
-   $ tar xf dpdk-23.11.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-23.11
+   $ wget https://fast.dpdk.org/rel/dpdk-23.11.1.tar.xz
+   $ tar xf dpdk-23.11.1.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-23.11.1
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index b92cec532..f7e8a1372 100644
--- a/NEWS
+++ b/NEWS
@@ -8,4 +8,6 @@ Post-v3.3.0
  The OVS tree remains hosted on GitHub.
  https://github.com/openvswitch/ovs.git
+   - DPDK:
+ * Add support for DPDK 23.11.1.
 
 
-- 
2.44.0

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


[ovs-dev] [PATCH branch-3.3] dpdk: Use DPDK 23.11.1 release for OVS 3.3.

2024-05-23 Thread Kevin Traynor
Update the CI and docs to use DPDK 23.11.1.

Signed-off-by: Kevin Traynor 
---
 .github/workflows/build-and-test.yml |  4 ++--
 Documentation/faq/releases.rst   | 10 +-
 Documentation/intro/install/dpdk.rst |  8 
 NEWS |  3 +++
 4 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index 44491db3e..4a012efd9 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -11,6 +11,6 @@ jobs:
   dependencies: gcc libbpf-dev libnuma-dev libpcap-dev ninja-build pkgconf
   CC: gcc
-  DPDK_GIT: https://dpdk.org/git/dpdk
-  DPDK_VER: 23.11
+  DPDK_GIT: https://dpdk.org/git/dpdk-stable
+  DPDK_VER: 23.11.1
 name: dpdk gcc
 outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 49b987b61..95ce0bf41 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -217,9 +217,9 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.6
-3.0.x21.11.6
-3.1.x22.11.4
-3.2.x22.11.4
-3.3.x23.11
+2.17.x   21.11.7
+3.0.x21.11.7
+3.1.x22.11.5
+3.2.x22.11.5
+3.3.x23.11.1
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index ad9bdf22c..93c4a12e7 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 23.11
+- DPDK 23.11.1
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-23.11.tar.xz
-   $ tar xf dpdk-23.11.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-23.11
+   $ wget https://fast.dpdk.org/rel/dpdk-23.11.1.tar.xz
+   $ tar xf dpdk-23.11.1.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-23.11.1
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index 4bfb341cf..1c93d2944 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,7 @@
 v3.3.1 - xx xxx 
 
+   - DPDK:
+ * Add support for DPDK 23.11.1.
+
 
 v3.3.0 - 16 Feb 2024
-- 
2.44.0

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


[ovs-dev] [PATCH branch-3.2] dpdk: Use DPDK 22.11.5 release for OVS 3.2.

2024-05-23 Thread Kevin Traynor
Update the CI and docs to use DPDK 22.11.5.

Signed-off-by: Kevin Traynor 
---
 .github/workflows/build-and-test.yml | 2 +-
 Documentation/faq/releases.rst   | 8 
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 ++
 4 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index 565058cec..951e7e321 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -12,5 +12,5 @@ jobs:
   CC: gcc
   DPDK_GIT: https://dpdk.org/git/dpdk-stable
-  DPDK_VER: 22.11.4
+  DPDK_VER: 22.11.5
 name: dpdk gcc
 outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index f47d40836..2be9b501c 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -216,8 +216,8 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.6
-3.0.x21.11.6
-3.1.x22.11.4
-3.2.x22.11.4
+2.17.x   21.11.7
+3.0.x21.11.7
+3.1.x22.11.5
+3.2.x22.11.5
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index 27df48493..a9921ae42 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 22.11.4
+- DPDK 22.11.5
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-22.11.4.tar.xz
-   $ tar xf dpdk-22.11.4.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.4
+   $ wget https://fast.dpdk.org/rel/dpdk-22.11.5.tar.xz
+   $ tar xf dpdk-22.11.5.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.5
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index baeecae04..8baf3d2aa 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 v3.2.3 - xx xxx 
 
+   - DPDK:
+ * OVS validated with DPDK 22.11.5.
 
 v3.2.2 - 08 Feb 2024
-- 
2.44.0

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


[ovs-dev] [PATCH branch-3.1] dpdk: Use DPDK 22.11.5 release for OVS 3.1.

2024-05-23 Thread Kevin Traynor
Update the CI and docs to use DPDK 22.11.5.

Signed-off-by: Kevin Traynor 
---
 .github/workflows/build-and-test.yml | 2 +-
 Documentation/faq/releases.rst   | 6 +++---
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 ++
 4 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index 22dc81252..6659c1025 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -12,5 +12,5 @@ jobs:
   CC: gcc
   DPDK_GIT: https://dpdk.org/git/dpdk-stable
-  DPDK_VER: 22.11.4
+  DPDK_VER: 22.11.5
 name: dpdk gcc
 outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index a393f78a8..a2625062d 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -215,7 +215,7 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.6
-3.0.x21.11.6
-3.1.x22.11.4
+2.17.x   21.11.7
+3.0.x21.11.7
+3.1.x22.11.5
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index 27df48493..a9921ae42 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 22.11.4
+- DPDK 22.11.5
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-22.11.4.tar.xz
-   $ tar xf dpdk-22.11.4.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.4
+   $ wget https://fast.dpdk.org/rel/dpdk-22.11.5.tar.xz
+   $ tar xf dpdk-22.11.5.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.5
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index aaddb77e8..44a3e6247 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 v3.1.5 - xx xxx 
 
+   - DPDK:
+ * OVS validated with DPDK 22.11.5.
 
 v3.1.4 - 08 Feb 2024
-- 
2.44.0

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


[ovs-dev] [PATCH branch-3.0] dpdk: Use DPDK 21.11.7 release for OVS 3.0.

2024-05-23 Thread Kevin Traynor
Update the CI and docs to use DPDK 21.11.7.

Signed-off-by: Kevin Traynor 
---
 .ci/linux-build.sh   | 2 +-
 Documentation/faq/releases.rst   | 4 ++--
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 ++
 4 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 7cb183dde..9d44c80d7 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -229,5 +229,5 @@ fi
 if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
 if [ -z "$DPDK_VER" ]; then
-DPDK_VER="21.11.6"
+DPDK_VER="21.11.7"
 fi
 install_dpdk $DPDK_VER
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 0dd2ec865..10156c209 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -214,6 +214,6 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.6
-3.0.x21.11.6
+2.17.x   21.11.7
+3.0.x21.11.7
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index fff49007e..3d011ecb3 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 21.11.6
+- DPDK 21.11.7
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-21.11.6.tar.xz
-   $ tar xf dpdk-21.11.6.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.6
+   $ wget https://fast.dpdk.org/rel/dpdk-21.11.7.tar.xz
+   $ tar xf dpdk-21.11.7.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.7
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index 0bb28638c..8550e8e89 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 v3.0.7 - xx xxx 
 
+   - DPDK:
+ * OVS validated with DPDK 21.11.7.
 
 v3.0.6 - 08 Feb 2024
-- 
2.44.0

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


[ovs-dev] [PATCH branch-2.17] dpdk: Use DPDK 21.11.7 release for OVS 2.17.

2024-05-23 Thread Kevin Traynor
Update the CI and docs to use DPDK 21.11.7.

Signed-off-by: Kevin Traynor 
---
 .ci/linux-build.sh   | 2 +-
 Documentation/faq/releases.rst   | 2 +-
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 ++
 4 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 2e1bf2588..0f5263709 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -221,5 +221,5 @@ fi
 if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
 if [ -z "$DPDK_VER" ]; then
-DPDK_VER="21.11.6"
+DPDK_VER="21.11.7"
 fi
 install_dpdk $DPDK_VER
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index a9045a2d5..1e896add5 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -211,5 +211,5 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.6
+2.17.x   21.11.7
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index fff49007e..3d011ecb3 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 21.11.6
+- DPDK 21.11.7
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-21.11.6.tar.xz
-   $ tar xf dpdk-21.11.6.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.6
+   $ wget https://fast.dpdk.org/rel/dpdk-21.11.7.tar.xz
+   $ tar xf dpdk-21.11.7.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.7
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index ca111ae3a..e91072dd6 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 v2.17.10 - xx xxx 
 --
+   - DPDK:
+ * OVS validated with DPDK 21.11.7.
 
 v2.17.9 - 08 Feb 2024
-- 
2.44.0

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


Re: [ovs-dev] [PATCH v3 4/6] netdev-dpdk: Refactor TSO request code.

2024-05-15 Thread Kevin Traynor
On 13/05/2024 08:13, David Marchand wrote:
> Hello Kevin,
> 
> Thanks for reviewing.
> 
> On Fri, May 10, 2024 at 11:50 PM Kevin Traynor  wrote:
>>
>> On 19/04/2024 15:06, David Marchand wrote:
>>> Replace check on th == NULL with an assert() because dp_packet_l4(pkt)
>>> is priorly used to compute (outer) L3 length.
>>>
>>> Besides, filling l4_len and tso_segsz only matters to TSO, so there is
>>> no need to check for other L4 checksum offloading requests.
>>>
>>> Signed-off-by: David Marchand 
>>> ---
>>>  lib/netdev-dpdk.c | 36 +++-
>>>  1 file changed, 11 insertions(+), 25 deletions(-)
>>>
>>> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
>>> index 8b6a3ed189..661269e4b6 100644
>>> --- a/lib/netdev-dpdk.c
>>> +++ b/lib/netdev-dpdk.c
>>> @@ -2584,7 +2584,6 @@ static bool
>>>  netdev_dpdk_prep_hwol_packet(struct netdev_dpdk *dev, struct rte_mbuf 
>>> *mbuf)
>>>  {
>>>  struct dp_packet *pkt = CONTAINER_OF(mbuf, struct dp_packet, mbuf);
>>> -struct tcp_header *th;
>>>
>>>  const uint64_t all_inner_requests = (RTE_MBUF_F_TX_IP_CKSUM |
>>>   RTE_MBUF_F_TX_L4_MASK |
>>> @@ -2614,6 +2613,8 @@ netdev_dpdk_prep_hwol_packet(struct netdev_dpdk *dev, 
>>> struct rte_mbuf *mbuf)
>>>  return true;
>>>  }
>>>
>>> +ovs_assert(dp_packet_l4(pkt));
>>
>> I'm not clear why you want to change this from a warning/return
>> fail/drop to an assert ?
> 
> From this point in the function, there is at least one request for
> checksum offloading pending.
> Any L3 (or higher) checksum requested by OVS means that the packet has
> been parsed/composed as either IP or IPv6 and packet->l4_ofs was set
> to point after the l3 header (with miniflow_extract / *_compose()
> helpers).
> 
> So getting a NULL pointer for l4 here indicates a bug in OVS.
> An assert seems better than a warn/return that probably nobody notice(d).
> 
> Did I miss a case where l4_ofs can be unset?
> 

I don't have a reason why it wouldn't be set. I was just wondering why
the change from drop/warn.

>>
>> Nit: should this be in the previous patch instead ? and I see it is
>> removed in a later patch.
> 
> It is not supposed to be removed in the series.
> The last patch moves it later in the function.
> 

ok, I hadn't reviewed full series when i made that comment.

> 

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


Re: [ovs-dev] [PATCH v3 6/6] netdev-dpdk: Refactor tunnel checksum offloading.

2024-05-15 Thread Kevin Traynor
On 19/04/2024 15:06, David Marchand wrote:
> All informations required for checksum offloading can be deduced by
> already tracked dp_packet l3_ofs, l4_ofs, inner_l3_ofs and inner_l4_ofs
> fields.
> Remove DPDK specific l[2-4]_len from generic OVS code.
> 
> netdev-dpdk code then fills mbuf specifics step by step:
> - outer_l2_len and outer_l3_len are needed for tunneling (and below
>   features),
> - l2_len and l3_len are needed for IP and L4 checksum (and below features),
> - l4_len and tso_segsz are needed when doing TSO,
> 
> Signed-off-by: David Marchand 
> ---
>  lib/dp-packet.h | 37 --
>  lib/netdev-dpdk.c   | 35 ++---
>  lib/netdev-native-tnl.c | 50 +
>  3 files changed, 27 insertions(+), 95 deletions(-)
> 
> diff --git a/lib/dp-packet.h b/lib/dp-packet.h
> index 3622764c47..a75b1c5cdb 100644
> --- a/lib/dp-packet.h
> +++ b/lib/dp-packet.h
> @@ -604,25 +604,6 @@ dp_packet_get_nd_payload(const struct dp_packet *b)
>  }
>  
>  #ifdef DPDK_NETDEV
> -static inline void
> -dp_packet_set_l2_len(struct dp_packet *b, size_t l2_len)
> -{
> -b->mbuf.l2_len = l2_len;
> -}
> -
> -static inline void
> -dp_packet_set_l3_len(struct dp_packet *b, size_t l3_len)
> -{
> -b->mbuf.l3_len = l3_len;
> -}
> -
> -static inline void
> -dp_packet_set_l4_len(struct dp_packet *b, size_t l4_len)
> -{
> -b->mbuf.l4_len = l4_len;
> -}
> -
> -
>  static inline uint64_t *
>  dp_packet_ol_flags_ptr(const struct dp_packet *b)
>  {
> @@ -642,24 +623,6 @@ dp_packet_flow_mark_ptr(const struct dp_packet *b)
>  }
>  
>  #else
> -static inline void
> -dp_packet_set_l2_len(struct dp_packet *b OVS_UNUSED, size_t l2_len 
> OVS_UNUSED)
> -{
> -/* There is no implementation. */
> -}
> -
> -static inline void
> -dp_packet_set_l3_len(struct dp_packet *b OVS_UNUSED, size_t l3_len 
> OVS_UNUSED)
> -{
> -/* There is no implementation. */
> -}
> -
> -static inline void
> -dp_packet_set_l4_len(struct dp_packet *b OVS_UNUSED, size_t l4_len 
> OVS_UNUSED)
> -{
> -/* There is no implementation. */
> -}
> -
>  static inline uint32_t *
>  dp_packet_ol_flags_ptr(const struct dp_packet *b)
>  {
> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
> index 1dad2ef833..31dd6f1d5a 100644
> --- a/lib/netdev-dpdk.c
> +++ b/lib/netdev-dpdk.c
> @@ -2584,6 +2584,9 @@ static bool
>  netdev_dpdk_prep_hwol_packet(struct netdev_dpdk *dev, struct rte_mbuf *mbuf)
>  {
>  struct dp_packet *pkt = CONTAINER_OF(mbuf, struct dp_packet, mbuf);
> +void *l2;
> +void *l3;
> +void *l4;
>  
>  const uint64_t all_inner_requests = (RTE_MBUF_F_TX_IP_CKSUM |
>   RTE_MBUF_F_TX_L4_MASK |
> @@ -2613,11 +2616,6 @@ netdev_dpdk_prep_hwol_packet(struct netdev_dpdk *dev, 
> struct rte_mbuf *mbuf)
>  return true;
>  }
>  
> -ovs_assert(dp_packet_l4(pkt));
> -
> -/* If packet is vxlan or geneve tunnel packet, calculate outer
> - * l2 len and outer l3 len. Inner l2/l3/l4 len are calculated
> - * before. */
>  const uint64_t tunnel_type = mbuf->ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK;
>  if (OVS_UNLIKELY(tunnel_type &&
>   tunnel_type != RTE_MBUF_F_TX_TUNNEL_GENEVE &&
> @@ -2635,6 +2633,11 @@ netdev_dpdk_prep_hwol_packet(struct netdev_dpdk *dev, 
> struct rte_mbuf *mbuf)
>   (char *) dp_packet_eth(pkt);
>  mbuf->outer_l3_len = (char *) dp_packet_l4(pkt) -
>   (char *) dp_packet_l3(pkt);
> +

> +/* Inner L2 length must account for the tunnel header length. */
> +l2 = dp_packet_l4(pkt);

Code looks ok to me, but it's tricky and the L2 settings with inner
requests are a bit unintuitive without a notepad and thinking from the
driver perspective backwards. Not sure there is much can be done to
mitigate that here, other than the comment you added.

Did you manage to test to confirm they're working as expected ?

> +l3 = dp_packet_inner_l3(pkt);
> +l4 = dp_packet_inner_l4(pkt);

see below

>  } else {
>  /* If no outer offloading is requested, clear outer marks. */
>  mbuf->ol_flags &= ~all_outer_marks;
> @@ -2642,8 +2645,9 @@ netdev_dpdk_prep_hwol_packet(struct netdev_dpdk *dev, 
> struct rte_mbuf *mbuf)
>  mbuf->outer_l3_len = 0;
>  
>  /* Skip outer headers. */
> -mbuf->l2_len += (char *) dp_packet_l4(pkt) -
> -(char *) dp_packet_eth(pkt);
> +l2 = dp_packet_eth(pkt);

> +l3 = dp_packet_inner_l3(pkt);
> +l4 = dp_packet_inner_l4(pkt);

You could move these outside the inner (pardon the pun) if else, but I
could understand if you prefer to set l2/l3/l4 together for better
readability ?

>  }
>  } else {
>  if (tunnel_type) {
> @@ -2663,22 +2667,27 @@ netdev_dpdk_prep_hwol_packet(struct netdev_dpdk 

Re: [ovs-dev] [PATCH v3 5/6] netdev-dpdk: Use guest TSO segmentation size hint.

2024-05-15 Thread Kevin Traynor
On 19/04/2024 15:06, David Marchand wrote:
> In a typical setup like:
> guest A <-virtio-> OVS A <-vxlan-> OVS B <-virtio-> guest B
> 
> TSO packets from guest A are segmented against the OVS A physical port
> mtu adjusted by the vxlan tunnel header size, regardless of guest A
> interface mtu.
> 
> As an example, let's say guest A and guest B mtu are set to 1500 bytes.
> OVS A and OVS B physical ports mtu are set to 1600 bytes.
> Guest A will request TCP segmentation for 1448 bytes segments.
> On the other hand, OVS A will request 1498 bytes segments to the HW.
> This results in OVS B dropping packets because decapsulated packets
> are larger than the vhost-user port (serving guest B) mtu.
> 
> 2024-04-17T14:13:01.239Z|2|netdev_dpdk(pmd-c03/id:7)|WARN|vhost0:
>   Too big size 1564 max_packet_len 1518
> 
> vhost-user ports expose a guest mtu by filling mbuf->tso_segsz.
> Use it as a hint.
> 
> This may result in segments (on the wire) slightly shorter than the
> optimal size.
> 
> Reported-at: https://github.com/openvswitch/ovs-issues/issues/321
> Signed-off-by: David Marchand 
> ---
> Note:
> As we trust the guest with this change, should we put a lower limit on
> mbuf->tso_segsz?
> 

There are some checks I looked at (e.g [0]), but it could be checked
here for an earlier drop i suppose...additional comment below

[0]
https://git.dpdk.org/dpdk/tree/drivers/net/ice/ice_rxtx.c#n3754

> ---
>  lib/netdev-dpdk.c | 11 ---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
> index 661269e4b6..1dad2ef833 100644
> --- a/lib/netdev-dpdk.c
> +++ b/lib/netdev-dpdk.c
> @@ -2671,14 +2671,19 @@ netdev_dpdk_prep_hwol_packet(struct netdev_dpdk *dev, 
> struct rte_mbuf *mbuf)
>  
>  if (mbuf->ol_flags & RTE_MBUF_F_TX_TCP_SEG) {
>  struct tcp_header *th = dp_packet_l4(pkt);
> +uint16_t link_tso_segsz;
>  int hdr_len;
>  
>  if (tunnel_type) {
> -mbuf->tso_segsz = dev->mtu - mbuf->l2_len - mbuf->l3_len -
> -  mbuf->l4_len - mbuf->outer_l3_len;
> +link_tso_segsz = dev->mtu - mbuf->l2_len - mbuf->l3_len -
> + mbuf->l4_len - mbuf->outer_l3_len;
>  } else {
>  mbuf->l4_len = TCP_OFFSET(th->tcp_ctl) * 4;
> -mbuf->tso_segsz = dev->mtu - mbuf->l3_len - mbuf->l4_len;
> +link_tso_segsz = dev->mtu - mbuf->l3_len - mbuf->l4_len;
> +}
> +
> +if (!mbuf->tso_segsz || mbuf->tso_segsz > link_tso_segsz) {

It seems like something is not right if the flag is set but tso_segsz is
0. It is set by vhost lib from gso_size, but I don't see a validation
there either.

So it could be checked and/or adjusted here for obviously incorrect
values. The only question would be is it the right layer to check these,
or is it more appropriate for it to be done in the drivers.

> +mbuf->tso_segsz = link_tso_segsz;
>  }
>  
>  hdr_len = mbuf->l2_len + mbuf->l3_len + mbuf->l4_len;

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


Re: [ovs-dev] [PATCH v3 4/6] netdev-dpdk: Refactor TSO request code.

2024-05-10 Thread Kevin Traynor
On 19/04/2024 15:06, David Marchand wrote:
> Replace check on th == NULL with an assert() because dp_packet_l4(pkt)
> is priorly used to compute (outer) L3 length.
> 
> Besides, filling l4_len and tso_segsz only matters to TSO, so there is
> no need to check for other L4 checksum offloading requests.
> 
> Signed-off-by: David Marchand 
> ---
>  lib/netdev-dpdk.c | 36 +++-
>  1 file changed, 11 insertions(+), 25 deletions(-)
> 
> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
> index 8b6a3ed189..661269e4b6 100644
> --- a/lib/netdev-dpdk.c
> +++ b/lib/netdev-dpdk.c
> @@ -2584,7 +2584,6 @@ static bool
>  netdev_dpdk_prep_hwol_packet(struct netdev_dpdk *dev, struct rte_mbuf *mbuf)
>  {
>  struct dp_packet *pkt = CONTAINER_OF(mbuf, struct dp_packet, mbuf);
> -struct tcp_header *th;
>  
>  const uint64_t all_inner_requests = (RTE_MBUF_F_TX_IP_CKSUM |
>   RTE_MBUF_F_TX_L4_MASK |
> @@ -2614,6 +2613,8 @@ netdev_dpdk_prep_hwol_packet(struct netdev_dpdk *dev, 
> struct rte_mbuf *mbuf)
>  return true;
>  }
>  
> +ovs_assert(dp_packet_l4(pkt));

I'm not clear why you want to change this from a warning/return
fail/drop to an assert ?

Nit: should this be in the previous patch instead ? and I see it is
removed in a later patch.

> +
>  /* If packet is vxlan or geneve tunnel packet, calculate outer
>   * l2 len and outer l3 len. Inner l2/l3/l4 len are calculated
>   * before. */
> @@ -2667,22 +2668,10 @@ netdev_dpdk_prep_hwol_packet(struct netdev_dpdk *dev, 
> struct rte_mbuf *mbuf)
>  mbuf->l3_len = (char *) dp_packet_l4(pkt) -
> (char *) dp_packet_l3(pkt);
>  }
> -th = dp_packet_l4(pkt);
>  
>  if (mbuf->ol_flags & RTE_MBUF_F_TX_TCP_SEG) {
> -if (!th) {
> -VLOG_WARN_RL(&rl, "%s: TCP Segmentation without L4 header"
> - " pkt len: %"PRIu32"", dev->up.name, mbuf->pkt_len);
> -return false;
> -}
> -}
> -
> -if ((mbuf->ol_flags & RTE_MBUF_F_TX_L4_MASK) == RTE_MBUF_F_TX_TCP_CKSUM) 
> {
> -if (!th) {
> -VLOG_WARN_RL(&rl, "%s: TCP offloading without L4 header"
> - " pkt len: %"PRIu32"", dev->up.name, mbuf->pkt_len);
> -return false;
> -}
> +struct tcp_header *th = dp_packet_l4(pkt);
> +int hdr_len;
>  
>  if (tunnel_type) {
>  mbuf->tso_segsz = dev->mtu - mbuf->l2_len - mbuf->l3_len -
> @@ -2692,16 +2681,13 @@ netdev_dpdk_prep_hwol_packet(struct netdev_dpdk *dev, 
> struct rte_mbuf *mbuf)
>  mbuf->tso_segsz = dev->mtu - mbuf->l3_len - mbuf->l4_len;
>  }
>  
> -if (mbuf->ol_flags & RTE_MBUF_F_TX_TCP_SEG) {
> -int hdr_len = mbuf->l2_len + mbuf->l3_len + mbuf->l4_len;
> -if (OVS_UNLIKELY((hdr_len +
> -  mbuf->tso_segsz) > dev->max_packet_len)) {
> -VLOG_WARN_RL(&rl, "%s: Oversized TSO packet. hdr: %"PRIu32", 
> "
> - "gso: %"PRIu32", max len: %"PRIu32"",
> - dev->up.name, hdr_len, mbuf->tso_segsz,
> - dev->max_packet_len);
> -return false;
> -}
> +hdr_len = mbuf->l2_len + mbuf->l3_len + mbuf->l4_len;
> +if (OVS_UNLIKELY((hdr_len + mbuf->tso_segsz) > dev->max_packet_len)) 
> {
> +VLOG_WARN_RL(&rl, "%s: Oversized TSO packet. hdr: %"PRIu32", "
> + "gso: %"PRIu32", max len: %"PRIu32"",
> + dev->up.name, hdr_len, mbuf->tso_segsz,
> + dev->max_packet_len);
> +return false;
>  }
>  }
>  

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


Re: [ovs-dev] [PATCH v3 3/6] netdev-dpdk: Fix inner checksum when outer is not supported.

2024-05-10 Thread Kevin Traynor
On 19/04/2024 15:06, David Marchand wrote:
> If outer checksum is not supported and OVS already set L3/L4 outer
> checksums in the packet, no outer mark should be left in ol_flags
> (as it confuses some driver, like net/ixgbe).
> 
> l2_len must be adjusted to account for the tunnel header.
> 
> Fixes: 084c8087292c ("userspace: Support VXLAN and GENEVE TSO.")
> Signed-off-by: David Marchand 
> ---
>  lib/netdev-dpdk.c | 19 +++
>  1 file changed, 15 insertions(+), 4 deletions(-)
> 
> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
> index f732716141..8b6a3ed189 100644
> --- a/lib/netdev-dpdk.c
> +++ b/lib/netdev-dpdk.c
> @@ -2629,10 +2629,21 @@ netdev_dpdk_prep_hwol_packet(struct netdev_dpdk *dev, 
> struct rte_mbuf *mbuf)
>  }
>  
>  if (tunnel_type && (mbuf->ol_flags & all_inner_requests)) {
> -mbuf->outer_l2_len = (char *) dp_packet_l3(pkt) -
> - (char *) dp_packet_eth(pkt);
> -mbuf->outer_l3_len = (char *) dp_packet_l4(pkt) -
> - (char *) dp_packet_l3(pkt);
> +if (mbuf->ol_flags & all_outer_requests) {
> +mbuf->outer_l2_len = (char *) dp_packet_l3(pkt) -
> + (char *) dp_packet_eth(pkt);
> +mbuf->outer_l3_len = (char *) dp_packet_l4(pkt) -
> + (char *) dp_packet_l3(pkt);
> +} else {
> +/* If no outer offloading is requested, clear outer marks. */
> +mbuf->ol_flags &= ~all_outer_marks;
> +mbuf->outer_l2_len = 0;
> +mbuf->outer_l3_len = 0;
> +
> +/* Skip outer headers. */
> +mbuf->l2_len += (char *) dp_packet_l4(pkt) -
> +    (char *) dp_packet_eth(pkt);
> +}
>  } else {
>  if (tunnel_type) {
>  /* No inner offload is requested, fallback to non tunnel

Acked-by: Kevin Traynor 

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


Re: [ovs-dev] [PATCH v3 2/6] netdev-dpdk: Disable outer UDP checksum for net/iavf.

2024-05-10 Thread Kevin Traynor
On 19/04/2024 15:06, David Marchand wrote:
> Same as the commit 6f93d8e62f13 ("netdev-dpdk: Disable outer UDP checksum
> offload for ice/i40e driver."), disable outer UDP checksum and related
> offloads for net/iavf.
> 
> Fixes: 084c8087292c ("userspace: Support VXLAN and GENEVE TSO.")
> Signed-off-by: David Marchand 
> ---
> Note:
> - DPDK (in progress) fixes can be found at:
>   https://patchwork.dpdk.org/project/dpdk/list/?series=31780&state=*
> 
> ---
>  lib/netdev-dpdk.c | 6 --
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
> index 7e109903c0..f732716141 100644
> --- a/lib/netdev-dpdk.c
> +++ b/lib/netdev-dpdk.c
> @@ -1355,12 +1355,14 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev)
>  }
>  
>  if (!strcmp(info.driver_name, "net_ice")
> -|| !strcmp(info.driver_name, "net_i40e")) {
> +|| !strcmp(info.driver_name, "net_i40e")
> +|| !strcmp(info.driver_name, "net_iavf")) {
>  /* FIXME: Driver advertises the capability but doesn't seem
>   * to actually support it correctly.  Can remove this once
>   * the driver is fixed on DPDK side. */
>  VLOG_INFO("%s: disabled Tx outer udp checksum offloads for a "
> -  "net/ice or net/i40e port.", netdev_get_name(&dev->up));
> +  "net/ice, net/i40e or net/iavf port.",
> +  netdev_get_name(&dev->up));
>  info.tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM;
>  info.tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO;
>  info.tx_offload_capa &= ~RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO;

Acked-by: Kevin Traynor 


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


Re: [ovs-dev] [PATCH v3 1/6] netdev-dpdk: Fallback to non tunnel checksum offloading.

2024-05-10 Thread Kevin Traynor
ENEVE &&
> + tunnel_type != RTE_MBUF_F_TX_TUNNEL_VXLAN)) {
>  VLOG_WARN_RL(&rl, "%s: Unexpected tunnel type: %#"PRIx64,
>   netdev_get_name(&dev->up), tunnel_type);
>  netdev_dpdk_mbuf_dump(netdev_get_name(&dev->up),
>"Packet with unexpected tunnel type", mbuf);
>  return false;
> +}
> +
> +if (tunnel_type && (mbuf->ol_flags & all_inner_requests)) {
> +mbuf->outer_l2_len = (char *) dp_packet_l3(pkt) -
> + (char *) dp_packet_eth(pkt);
> +mbuf->outer_l3_len = (char *) dp_packet_l4(pkt) -
> + (char *) dp_packet_l3(pkt);
>  } else {
> -mbuf->l2_len = (char *) dp_packet_l3(pkt) -
> -   (char *) dp_packet_eth(pkt);
> -mbuf->l3_len = (char *) dp_packet_l4(pkt) -
> -   (char *) dp_packet_l3(pkt);
> +if (tunnel_type) {
> +/* No inner offload is requested, fallback to non tunnel
> + * checksum offloads. */
> +mbuf->ol_flags &= ~all_inner_marks;
> +if (mbuf->ol_flags & RTE_MBUF_F_TX_OUTER_IP_CKSUM) {
> +mbuf->ol_flags |= RTE_MBUF_F_TX_IP_CKSUM;
> +mbuf->ol_flags |= RTE_MBUF_F_TX_IPV4;
> +}
> +if (mbuf->ol_flags & RTE_MBUF_F_TX_OUTER_UDP_CKSUM) {
> +mbuf->ol_flags |= RTE_MBUF_F_TX_UDP_CKSUM;
> +mbuf->ol_flags |= mbuf->ol_flags & RTE_MBUF_F_TX_OUTER_IPV4
> +  ? RTE_MBUF_F_TX_IPV4 : RTE_MBUF_F_TX_IPV6;
> +}
> +mbuf->ol_flags &= ~(all_outer_requests | all_outer_marks);
> +}
>  mbuf->outer_l2_len = 0;
>  mbuf->outer_l3_len = 0;
> +mbuf->l2_len = (char *) dp_packet_l3(pkt) -
> +   (char *) dp_packet_eth(pkt);
> +mbuf->l3_len = (char *) dp_packet_l4(pkt) -
> +   (char *) dp_packet_l3(pkt);
>  }
>  th = dp_packet_l4(pkt);
>  

Acked-by: Kevin Traynor 

Just to note, I reviewed the series but did not test all the combinations.



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


Re: [ovs-dev] [PATCH] dpctl: fix segfault on ct-{set,del}-limits

2024-04-25 Thread Kevin Traynor
On 22/04/2024 13:37, Paolo Valerio wrote:
> When no parameters other than the datapath are specified a segfault
> occurs.
> 
> Fix it by checking the argument access is inside the bounds.
> 
> Signed-off-by: Paolo Valerio 
> ---

Acked-by: Kevin Traynor 

(nit: checkpatch complained about the subject summary format. No need to
send a new version, it could be fixed when on apply.)

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


Re: [ovs-dev] [PATCH] vlog: Log stack trace on vlog_abort.

2024-04-10 Thread Kevin Traynor
On 10/04/2024 16:16, Ilya Maximets wrote:
> On 4/10/24 17:01, Kevin Traynor wrote:
>> On 05/04/2024 23:08, Ilya Maximets wrote:
>>> Currently, calls like ovs_assert() just print out a condition that
>>> caused assertion to fail.  But it may be not enough to understand what
>>> exactly has happened, especially if assertion failed in some generic
>>> function like dp_packet_resize() or similar.
>>>
>>> Print the stack trace along with the abort message to give more context
>>> for the later debugging.
>>>
>>> This should be especially useful in case the issue happens in an
>>> environment with core dumps disabled.
>>>
>>> Adding the log to vlog_abort() to cover a little more cases where
>>> VLOG_ABORT is called and not only assertion failures.
>>>
>>> It would be nice to also have stack traces in case of reaching the
>>> OVS_NOT_REACHED().  But this macro is used in some places as a last
>>> resort and should not actually do more than just stopping the process
>>> immediately.  And it also can be used in contexts without logging
>>> initialized.  Such a change will need to be done more carefully.
>>> Better solution might be to use VLOG_ABORT() where appropriate instead.
>>>
>> Thanks Ilya. Tried it and it's working. One comment below.
>>
>>> Signed-off-by: Ilya Maximets 
>>> ---
>>>  lib/vlog.c   | 10 --
>>>  tests/library.at |  4 +++-
>>>  2 files changed, 11 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/lib/vlog.c b/lib/vlog.c
>>> index b2653142f..e78c785f7 100644
>>> --- a/lib/vlog.c
>>> +++ b/lib/vlog.c
>>> @@ -29,6 +29,7 @@
>>>  #include 
>>>  #include 
>>>  #include "async-append.h"
>>> +#include "backtrace.h"
>>>  #include "coverage.h"
>>>  #include "dirs.h"
>>>  #include "openvswitch/dynamic-string.h"
>>> @@ -1274,8 +1275,9 @@ vlog_fatal(const struct vlog_module *module, const 
>>> char *message, ...)
>>>  va_end(args);
>>>  }
>>>  
>>> -/* Logs 'message' to 'module' at maximum verbosity, then calls abort().  
>>> Always
>>> - * writes the message to stderr, even if the console destination is 
>>> disabled.
>>> +/* Attempts to log a stack trace, logs 'message' to 'module' at maximum
>>> + * verbosity, then calls abort().  Always writes the message to stderr, 
>>> even
>>> + * if the console destination is disabled.
>>>   *
>>>   * Choose this function instead of vlog_fatal_valist() if the daemon 
>>> monitoring
>>>   * facility should automatically restart the current daemon.  */
>>> @@ -1289,6 +1291,10 @@ vlog_abort_valist(const struct vlog_module *module_,
>>>   * message written by the later ovs_abort_valist(). */
>>>  module->levels[VLF_CONSOLE] = VLL_OFF;
>>>  
>>> +/* Printing the stack trace before the 'message', because the 'message'
>>> + * will flush the async log queue (VLL_EMER).  With a different order 
>>> we
>>> + * would need to flush the queue manually again. */
>>> +log_backtrace();
>>>  vlog_valist(module, VLL_EMER, message, args);
>>>  ovs_abort_valist(0, message, args);
>>>  }
>>
>> Is it worth adding to vlog_fatal_valist() as well for VLOG_FATAL()?
>>
>> If there's some reason not to, then LGTM as is.
> 
> VLOG_FATAL is used more widely for user-errors or environment issues.
> It's not appropriate to print stack traces in such scenarios.
> For example, I don't think we want to dump the trace when users provide
> incorrect command line arguments in tools (VLOG_FATAL is used for that).
> 
> Abort, OTOH, usually signifies a programming error and should not actually
> be invoked under normal circumstances, so it should be fine to dump the
> stack there.
> 

ok, that sounds reasonable. Thanks.

>>
>> Acked-by: Kevin Traynor 
>>
>>> diff --git a/tests/library.at b/tests/library.at
>>> index 7b4acebb8..d962e1b3f 100644
>>> --- a/tests/library.at
>>> +++ b/tests/library.at
>>> @@ -230,7 +230,9 @@ AT_CHECK([ovstest test-util -voff -vfile:info 
>>> '-vPATTERN:file:%c|%p|%m' --log-fi
>>>[$exit_status], [], [stderr])
>>>  
>>>  AT_CHECK([sed 's/\(opened log file\) .*/\1/
>>> -s/|[[^|]]*: /|/' test-util.log], [0], [dnl
>>> +s/|[[^|]]*: /|/
>>> +/backtrace/d
>>> +/|.*|/!d' test-util.log], [0], [dnl
>>>  vlog|INFO|opened log file
>>>  util|EMER|assertion false failed in test_assert()
>>>  ])
>>
> 

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


Re: [ovs-dev] [PATCH] vlog: Log stack trace on vlog_abort.

2024-04-10 Thread Kevin Traynor
On 05/04/2024 23:08, Ilya Maximets wrote:
> Currently, calls like ovs_assert() just print out a condition that
> caused assertion to fail.  But it may be not enough to understand what
> exactly has happened, especially if assertion failed in some generic
> function like dp_packet_resize() or similar.
> 
> Print the stack trace along with the abort message to give more context
> for the later debugging.
> 
> This should be especially useful in case the issue happens in an
> environment with core dumps disabled.
> 
> Adding the log to vlog_abort() to cover a little more cases where
> VLOG_ABORT is called and not only assertion failures.
> 
> It would be nice to also have stack traces in case of reaching the
> OVS_NOT_REACHED().  But this macro is used in some places as a last
> resort and should not actually do more than just stopping the process
> immediately.  And it also can be used in contexts without logging
> initialized.  Such a change will need to be done more carefully.
> Better solution might be to use VLOG_ABORT() where appropriate instead.
> 
Thanks Ilya. Tried it and it's working. One comment below.

> Signed-off-by: Ilya Maximets 
> ---
>  lib/vlog.c   | 10 --
>  tests/library.at |  4 +++-
>  2 files changed, 11 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/vlog.c b/lib/vlog.c
> index b2653142f..e78c785f7 100644
> --- a/lib/vlog.c
> +++ b/lib/vlog.c
> @@ -29,6 +29,7 @@
>  #include 
>  #include 
>  #include "async-append.h"
> +#include "backtrace.h"
>  #include "coverage.h"
>  #include "dirs.h"
>  #include "openvswitch/dynamic-string.h"
> @@ -1274,8 +1275,9 @@ vlog_fatal(const struct vlog_module *module, const char 
> *message, ...)
>  va_end(args);
>  }
>  
> -/* Logs 'message' to 'module' at maximum verbosity, then calls abort().  
> Always
> - * writes the message to stderr, even if the console destination is disabled.
> +/* Attempts to log a stack trace, logs 'message' to 'module' at maximum
> + * verbosity, then calls abort().  Always writes the message to stderr, even
> + * if the console destination is disabled.
>   *
>   * Choose this function instead of vlog_fatal_valist() if the daemon 
> monitoring
>   * facility should automatically restart the current daemon.  */
> @@ -1289,6 +1291,10 @@ vlog_abort_valist(const struct vlog_module *module_,
>   * message written by the later ovs_abort_valist(). */
>  module->levels[VLF_CONSOLE] = VLL_OFF;
>  
> +/* Printing the stack trace before the 'message', because the 'message'
> + * will flush the async log queue (VLL_EMER).  With a different order we
> + * would need to flush the queue manually again. */
> +log_backtrace();
>  vlog_valist(module, VLL_EMER, message, args);
>  ovs_abort_valist(0, message, args);
>  }

Is it worth adding to vlog_fatal_valist() as well for VLOG_FATAL()?

If there's some reason not to, then LGTM as is.

Acked-by: Kevin Traynor 

> diff --git a/tests/library.at b/tests/library.at
> index 7b4acebb8..d962e1b3f 100644
> --- a/tests/library.at
> +++ b/tests/library.at
> @@ -230,7 +230,9 @@ AT_CHECK([ovstest test-util -voff -vfile:info 
> '-vPATTERN:file:%c|%p|%m' --log-fi
>[$exit_status], [], [stderr])
>  
>  AT_CHECK([sed 's/\(opened log file\) .*/\1/
> -s/|[[^|]]*: /|/' test-util.log], [0], [dnl
> +s/|[[^|]]*: /|/
> +/backtrace/d
> +/|.*|/!d' test-util.log], [0], [dnl
>  vlog|INFO|opened log file
>  util|EMER|assertion false failed in test_assert()
>  ])

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


Re: [ovs-dev] [PATCH] cirrus: Update to FreeBSD 13.3.

2024-04-10 Thread Kevin Traynor
On 10/04/2024 11:04, Kevin Traynor wrote:
> On 10/04/2024 10:51, Eelco Chaudron wrote:
>>
>>
>> On 10 Apr 2024, at 11:41, Ilya Maximets wrote:
>>
>>> 13.3 was released on March 5 and 13.2 will reach EoL in June.
>>> Update now.
>>
>> Changing from 13.2 to 13.3 looks fine to me. Assume you ran it trough GitHub 
>> actions;
>>
> 
> I ran it here:
> https://cirrus-ci.com/build/5951252381564928
> 

I was assuming you meant cirrus, but just in case, github actions is
here: https://github.com/kevintraynor/ovs/actions/runs/8629238065

> Acked-by: Kevin Traynor 
> 
>> Acked-by: Eelco Chaudron 
>>
>> //Eelco
>>
>>
>>
>>> Signed-off-by: Ilya Maximets 
>>> ---
>>>  .cirrus.yml | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/.cirrus.yml b/.cirrus.yml
>>> index d8a972280..8db385f00 100644
>>> --- a/.cirrus.yml
>>> +++ b/.cirrus.yml
>>> @@ -2,7 +2,7 @@ freebsd_build_task:
>>>
>>>freebsd_instance:
>>>  matrix:
>>> -  image_family: freebsd-13-2-snap
>>> +  image_family: freebsd-13-3-snap
>>>image_family: freebsd-14-0-snap
>>>  cpu: 4
>>>  memory: 4G
>>> -- 
>>> 2.44.0
>>>
>>> ___
>>> 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


Re: [ovs-dev] [PATCH] cirrus: Update to FreeBSD 13.3.

2024-04-10 Thread Kevin Traynor
On 10/04/2024 10:51, Eelco Chaudron wrote:
> 
> 
> On 10 Apr 2024, at 11:41, Ilya Maximets wrote:
> 
>> 13.3 was released on March 5 and 13.2 will reach EoL in June.
>> Update now.
> 
> Changing from 13.2 to 13.3 looks fine to me. Assume you ran it trough GitHub 
> actions;
> 

I ran it here:
https://cirrus-ci.com/build/5951252381564928

Acked-by: Kevin Traynor 

> Acked-by: Eelco Chaudron 
> 
> //Eelco
> 
> 
> 
>> Signed-off-by: Ilya Maximets 
>> ---
>>  .cirrus.yml | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/.cirrus.yml b/.cirrus.yml
>> index d8a972280..8db385f00 100644
>> --- a/.cirrus.yml
>> +++ b/.cirrus.yml
>> @@ -2,7 +2,7 @@ freebsd_build_task:
>>
>>freebsd_instance:
>>  matrix:
>> -  image_family: freebsd-13-2-snap
>> +  image_family: freebsd-13-3-snap
>>image_family: freebsd-14-0-snap
>>  cpu: 4
>>  memory: 4G
>> -- 
>> 2.44.0
>>
>> ___
>> 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


Re: [ovs-dev] [PATCH v2] netdev-dpdk: Dump packets that fail Tx preparation.

2024-03-08 Thread Kevin Traynor
On 07/03/2024 19:39, Ilya Maximets wrote:
> It's hard to debug situations where driver rejects packets for some
> reason.  Dumping out the mbuf should help with that.
> 
> Sample output looks like this:
> 
>   |netdev_dpdk(pmd-c03/id:8)|DBG|ovs-p1: First invalid packet:
>   dump mbuf at 0x1180bce140, iova=0x2cb7ce400, buf_len=2176
> pkt_len=64, ol_flags=0x2, nb_segs=1, port=65535, ptype=0
> segment at 0x1180bce140, data=0x1180bce580, len=90, off=384, refcnt=1
> Dump data at [0x1180bce580], len=64
>   : 33 33 00 00 00 16 AA 27 91 F9 4D 96 86 DD 60 00 | 33.'..M...`.
>   0010: 00 00 00 24 00 01 00 00 00 00 00 00 00 00 00 00 | ...$
>   0020: 00 00 00 00 00 00 FF 02 00 00 00 00 00 00 00 00 | 
>   0030: 00 00 00 00 00 16 3A 00 05 02 00 00 01 00 8F 00 | ..:.
> 
> Signed-off-by: Ilya Maximets 

Acked-by: Kevin Traynor 

> ---
> 
> Version 2:
>   * Only dumping the first invalid packet as we don't actually
> know if the other ones correct or not.  [Kevin]
> 
> Also, we may want to have this backported to 3.3 and maybe 3.2,
> as I suspect those will be branches where will will actually have
> to debug offloading rejection issues.  We already have a few.
> For example: https://github.com/openvswitch/ovs-issues/issues/321
> for which I actually prepared this patch in the first place.
> 
> This is a debug-only change that should not have any impact
> on end users.
> 
> Thoughts?
> 

I think it's reasonable to backport it. It is non-intrusive for the
normal case and will be helpful for debug.

>  lib/netdev-dpdk.c | 31 +++
>  1 file changed, 31 insertions(+)
> 
> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
> index 45f61930d..9444c53b1 100644
> --- a/lib/netdev-dpdk.c
> +++ b/lib/netdev-dpdk.c
> @@ -2664,6 +2664,35 @@ netdev_dpdk_prep_hwol_batch(struct netdev_dpdk *dev, 
> struct rte_mbuf **pkts,
>  return cnt;
>  }
>  
> +static void
> +netdev_dpdk_mbuf_dump(const char *prefix, const char *message,
> +  const struct rte_mbuf *mbuf)
> +{
> +static struct vlog_rate_limit dump_rl = VLOG_RATE_LIMIT_INIT(5, 5);
> +char *response = NULL;
> +FILE *stream;
> +size_t size;
> +
> +if (VLOG_DROP_DBG(&dump_rl)) {
> +return;
> +}
> +
> +stream = open_memstream(&response, &size);
> +if (!stream) {
> +VLOG_ERR("Unable to open memstream for mbuf dump: %s.",
> + ovs_strerror(errno));
> +return;
> +}
> +
> +rte_pktmbuf_dump(stream, mbuf, rte_pktmbuf_pkt_len(mbuf));
> +
> +fclose(stream);
> +
> +VLOG_DBG(prefix ? "%s: %s:\n%s" : "%s%s:\n%s",
> + prefix ? prefix : "", message, response);
> +free(response);
> +}
> +
>  /* Tries to transmit 'pkts' to txq 'qid' of device 'dev'.  Takes ownership of
>   * 'pkts', even in case of failure.
>   *
> @@ -2680,6 +2709,8 @@ netdev_dpdk_eth_tx_burst(struct netdev_dpdk *dev, int 
> qid,
>  VLOG_WARN_RL(&rl, "%s: Output batch contains invalid packets. "
>   "Only %u/%u are valid: %s", netdev_get_name(&dev->up),
>   nb_tx_prep, cnt, rte_strerror(rte_errno));
> +netdev_dpdk_mbuf_dump(netdev_get_name(&dev->up),
> +  "First invalid packet", pkts[nb_tx_prep]);
>  }
>  
>  while (nb_tx != nb_tx_prep) {

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


Re: [ovs-dev] [PATCH] netdev-dpdk: Dump packets that fail Tx preparation.

2024-03-07 Thread Kevin Traynor
On 05/03/2024 17:31, Ilya Maximets wrote:
> On 3/5/24 18:13, Kevin Traynor wrote:
>> On 05/03/2024 15:22, Ilya Maximets wrote:
>>> It's hard to debug situations where driver rejects packets for some
>>> reason.  Dumping out the mbuf should help with debugging.
>>>
>>> Sample output looks like this:
>>>
>>>   |netdev_dpdk(pmd-c03/id:8)|DBG|ovs-p1: Invalid packet:
>>>   dump mbuf at 0x1180bce140, iova=0x2cb7ce400, buf_len=2176
>>> pkt_len=64, ol_flags=0x2, nb_segs=1, port=65535, ptype=0
>>> segment at 0x1180bce140, data=0x1180bce580, len=90, off=384, refcnt=1
>>> Dump data at [0x1180bce580], len=64
>>>   : 33 33 00 00 00 16 AA 27 91 F9 4D 96 86 DD 60 00 | 
>>> 33.'..M...`.
>>>   0010: 00 00 00 24 00 01 00 00 00 00 00 00 00 00 00 00 | 
>>> ...$
>>>   0020: 00 00 00 00 00 00 FF 02 00 00 00 00 00 00 00 00 | 
>>> 
>>>   0030: 00 00 00 00 00 16 3A 00 05 02 00 00 01 00 8F 00 | 
>>> ..:.
>>>
>>
>> Hi Ilya,
>>
>> Thanks for the patch, that could be useful. One comment below.
>>
>>> Signed-off-by: Ilya Maximets 
>>> ---
>>>  lib/netdev-dpdk.c | 33 +
>>>  1 file changed, 33 insertions(+)
>>>
>>> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
>>> index 45f61930d..662b41d5c 100644
>>> --- a/lib/netdev-dpdk.c
>>> +++ b/lib/netdev-dpdk.c
>>> @@ -2664,6 +2664,35 @@ netdev_dpdk_prep_hwol_batch(struct netdev_dpdk *dev, 
>>> struct rte_mbuf **pkts,
>>>  return cnt;
>>>  }
>>>  
>>> +static void
>>> +netdev_dpdk_mbuf_dump(const char *prefix, const char *message,
>>> +  const struct rte_mbuf *mbuf)
>>> +{
>>> +static struct vlog_rate_limit dump_rl = VLOG_RATE_LIMIT_INIT(5, 5);
>>> +char *response = NULL;
>>> +FILE *stream;
>>> +size_t size;
>>> +
>>> +if (VLOG_DROP_DBG(&dump_rl)) {
>>> +return;
>>> +}
>>> +
>>> +stream = open_memstream(&response, &size);
>>> +if (!stream) {
>>> +VLOG_ERR("Unable to open memstream for mbuf dump: %s.",
>>> + ovs_strerror(errno));
>>> +return;
>>> +}
>>> +
>>> +rte_pktmbuf_dump(stream, mbuf, rte_pktmbuf_pkt_len(mbuf));
>>> +
>>> +fclose(stream);
>>> +
>>> +VLOG_DBG(prefix ? "%s: %s:\n%s" : "%s%s:\n%s",
>>> + prefix ? prefix : "", message, response);
>>> +free(response);
>>> +}
>>> +
>>>  /* Tries to transmit 'pkts' to txq 'qid' of device 'dev'.  Takes ownership 
>>> of
>>>   * 'pkts', even in case of failure.
>>>   *
>>> @@ -2680,6 +2709,10 @@ netdev_dpdk_eth_tx_burst(struct netdev_dpdk *dev, 
>>> int qid,
>>>  VLOG_WARN_RL(&rl, "%s: Output batch contains invalid packets. "
>>>   "Only %u/%u are valid: %s", netdev_get_name(&dev->up),
>>>   nb_tx_prep, cnt, rte_strerror(rte_errno));
>>> +for (size_t i = nb_tx_prep; i < cnt; i++) {
>>> +netdev_dpdk_mbuf_dump(netdev_get_name(&dev->up),
>>> +  "Invalid packet", pkts[i]);
>>
>> rte_eth_tx_prepare() stops when it finds an invalid packet, so we don't
>> know the status of subsequent packets except that they will not be sent.
>> It might be confusing if we dump them and label as invalid.
> 
> Ah, interesting.  I just assumed that since netdev_dpdk_eth_tx_burst()
> is calling it once, it will re-order the packets moving the bad ones
> to the end like some other functions do.  But you're right, that's not
> the case.  And the existing log message is actually not right either.
> 


Yeah, maybe 's/are valid/are sent' would be more appropriate for that
log message

>>
>> How about only dump the known invalid packet or else replace "Invalid
>> packet" with, i == nb_tx_prep ? "Invalid packet" : "Not sent"
>>
>> (maybe a better term than "Not sent")
>>
>> What do you think ?
> 
> I don't think we need to dump the 'not sent' packets at all.  We don't
> know if they are bad or not, so dumping them doesn

Re: [ovs-dev] [PATCH] netdev-dpdk: Dump packets that fail Tx preparation.

2024-03-05 Thread Kevin Traynor
On 05/03/2024 15:22, Ilya Maximets wrote:
> It's hard to debug situations where driver rejects packets for some
> reason.  Dumping out the mbuf should help with debugging.
> 
> Sample output looks like this:
> 
>   |netdev_dpdk(pmd-c03/id:8)|DBG|ovs-p1: Invalid packet:
>   dump mbuf at 0x1180bce140, iova=0x2cb7ce400, buf_len=2176
> pkt_len=64, ol_flags=0x2, nb_segs=1, port=65535, ptype=0
> segment at 0x1180bce140, data=0x1180bce580, len=90, off=384, refcnt=1
> Dump data at [0x1180bce580], len=64
>   : 33 33 00 00 00 16 AA 27 91 F9 4D 96 86 DD 60 00 | 33.'..M...`.
>   0010: 00 00 00 24 00 01 00 00 00 00 00 00 00 00 00 00 | ...$
>   0020: 00 00 00 00 00 00 FF 02 00 00 00 00 00 00 00 00 | 
>   0030: 00 00 00 00 00 16 3A 00 05 02 00 00 01 00 8F 00 | ..:.
> 

Hi Ilya,

Thanks for the patch, that could be useful. One comment below.

> Signed-off-by: Ilya Maximets 
> ---
>  lib/netdev-dpdk.c | 33 +
>  1 file changed, 33 insertions(+)
> 
> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
> index 45f61930d..662b41d5c 100644
> --- a/lib/netdev-dpdk.c
> +++ b/lib/netdev-dpdk.c
> @@ -2664,6 +2664,35 @@ netdev_dpdk_prep_hwol_batch(struct netdev_dpdk *dev, 
> struct rte_mbuf **pkts,
>  return cnt;
>  }
>  
> +static void
> +netdev_dpdk_mbuf_dump(const char *prefix, const char *message,
> +  const struct rte_mbuf *mbuf)
> +{
> +static struct vlog_rate_limit dump_rl = VLOG_RATE_LIMIT_INIT(5, 5);
> +char *response = NULL;
> +FILE *stream;
> +size_t size;
> +
> +if (VLOG_DROP_DBG(&dump_rl)) {
> +return;
> +}
> +
> +stream = open_memstream(&response, &size);
> +if (!stream) {
> +VLOG_ERR("Unable to open memstream for mbuf dump: %s.",
> + ovs_strerror(errno));
> +return;
> +}
> +
> +rte_pktmbuf_dump(stream, mbuf, rte_pktmbuf_pkt_len(mbuf));
> +
> +fclose(stream);
> +
> +VLOG_DBG(prefix ? "%s: %s:\n%s" : "%s%s:\n%s",
> + prefix ? prefix : "", message, response);
> +free(response);
> +}
> +
>  /* Tries to transmit 'pkts' to txq 'qid' of device 'dev'.  Takes ownership of
>   * 'pkts', even in case of failure.
>   *
> @@ -2680,6 +2709,10 @@ netdev_dpdk_eth_tx_burst(struct netdev_dpdk *dev, int 
> qid,
>  VLOG_WARN_RL(&rl, "%s: Output batch contains invalid packets. "
>   "Only %u/%u are valid: %s", netdev_get_name(&dev->up),
>   nb_tx_prep, cnt, rte_strerror(rte_errno));
> +for (size_t i = nb_tx_prep; i < cnt; i++) {
> +netdev_dpdk_mbuf_dump(netdev_get_name(&dev->up),
> +  "Invalid packet", pkts[i]);

rte_eth_tx_prepare() stops when it finds an invalid packet, so we don't
know the status of subsequent packets except that they will not be sent.
It might be confusing if we dump them and label as invalid.

How about only dump the known invalid packet or else replace "Invalid
packet" with, i == nb_tx_prep ? "Invalid packet" : "Not sent"

(maybe a better term than "Not sent")

What do you think ?

thanks,
Kevin.

> +}
>  }
>  
>  while (nb_tx != nb_tx_prep) {

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


Re: [ovs-dev] [PATCH v2 0/5] DEI: Address some instances of master and slave

2024-03-05 Thread Kevin Traynor
On 01/03/2024 14:50, Simon Horman wrote:
> Recently OVS adopted a policy of using the inclusive naming word list v1
> [1, 2].
> 
> This patch-set addresses some uses of the terms master and slave
> by using alternate terms.
> 
> These changes are not intended to have any runtime effect.
> 
> [1] df5e5cf ("Documentation: Add section on inclusive language.")
> [2] https://inclusivenaming.org/word-lists/
> 
> ---
> Simon Horman (5):
>   vswitch.xml: Use member wording for bonds.
>   Documentation: Update to refer to main repository.
>   netdev-linux: Rename sturct nedev_linux field as is_lag_primary
>   netdev-linux: Rename local variables as primary_*.
>   utilities: Use localhost as sample hostname.
> 
>  .../internals/committer-grant-revocation.rst   |  2 +-
>  Documentation/intro/install/dpdk.rst   |  2 +-
>  lib/netdev-linux-private.h |  2 +-
>  lib/netdev-linux.c | 35 
> +++---
>  utilities/usdt-scripts/kernel_delay.rst| 10 +++
>  vswitchd/vswitch.xml   |  4 +--
>  6 files changed, 28 insertions(+), 27 deletions(-)
> 
> base-commit: cc0e7951818a48fbbd11664e1ad0a509a180b558
> 
> ___
> dev mailing list
> d...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> 

Series LGTM (nit: typo sturct in one of the titles). Thanks Simon.

Acked-by: Kevin Traynor 

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


Re: [ovs-dev] [PATCH master/branch-3.3] faq: Update DPDK releases for older branches.

2024-02-07 Thread Kevin Traynor
On 06/02/2024 12:28, Ilya Maximets wrote:
> On 2/2/24 13:46, Kevin Traynor wrote:
>> Branches 2.17/3.0/3.1/3.2 are using newer DPDK LTS releases.
>>
>> Update the faq.
>>
>> Signed-off-by: Kevin Traynor 
>> ---
>>  Documentation/faq/releases.rst | 8 
>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
>> index 3a8387f84..49b987b61 100644
>> --- a/Documentation/faq/releases.rst
>> +++ b/Documentation/faq/releases.rst
>> @@ -217,8 +217,8 @@ Q: What DPDK version does each Open vSwitch release work 
>> with?
>>  2.15.x   20.11.6
>>  2.16.x   20.11.6
>> -2.17.x   21.11.5
>> -3.0.x21.11.5
>> -3.1.x22.11.3
>> -3.2.x22.11.3
>> +2.17.x   21.11.6
>> +3.0.x21.11.6
>> +3.1.x22.11.4
>> +3.2.x22.11.4
>>  3.3.x23.11
>>   
> 
> Hi, Kevin.  Thanks for the patches!
> 
> I didn't test them, but LGTM.  For all DPDK update patches:
> 
> Acked-by: Ilya Maximets 
> 
> P.S.: the 'master/branch-3.3' tag is likely confusing for bots,
>   it's better to send separate patches next time, or just
>   not specify the branch at all and add a footnote that
>   it should be applied to branch-3.3 as well.
> 
> Best regards, Ilya Maximets.
> 

Thanks Simon, Eelco and Ilya. These are applied to the branches now.

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


Re: [ovs-dev] [PATCH master/branch-3.3] faq: Update DPDK releases for older branches.

2024-02-06 Thread Kevin Traynor
On 06/02/2024 12:28, Ilya Maximets wrote:
> On 2/2/24 13:46, Kevin Traynor wrote:
>> Branches 2.17/3.0/3.1/3.2 are using newer DPDK LTS releases.
>>
>> Update the faq.
>>
>> Signed-off-by: Kevin Traynor 
>> ---
>>  Documentation/faq/releases.rst | 8 
>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
>> index 3a8387f84..49b987b61 100644
>> --- a/Documentation/faq/releases.rst
>> +++ b/Documentation/faq/releases.rst
>> @@ -217,8 +217,8 @@ Q: What DPDK version does each Open vSwitch release work 
>> with?
>>  2.15.x   20.11.6
>>  2.16.x   20.11.6
>> -2.17.x   21.11.5
>> -3.0.x21.11.5
>> -3.1.x22.11.3
>> -3.2.x22.11.3
>> +2.17.x   21.11.6
>> +3.0.x21.11.6
>> +3.1.x22.11.4
>> +3.2.x22.11.4
>>  3.3.x23.11
>>   
> 
> Hi, Kevin.  Thanks for the patches!
> 
> I didn't test them, but LGTM.  For all DPDK update patches:
> 
> Acked-by: Ilya Maximets 
> 
> P.S.: the 'master/branch-3.3' tag is likely confusing for bots,
>   it's better to send separate patches next time, or just
>   not specify the branch at all and add a footnote that
>   it should be applied to branch-3.3 as well.
> 

Noted, thanks. It seems to report for a different patch in the email [0]
? The patches also didn't apply for 3.2 and 3.0 for
intel-ovs-compilation tests, but I can see that is fine in the GHA tests
and locally.

Perhaps chaining patches for different branches caused it some confusion
as well.

[0]
https://mail.openvswitch.org/pipermail/ovs-build/2024-February/036673.html

> Best regards, Ilya Maximets.
> 

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


Re: [ovs-dev] [PATCH branch-3.0] dpdk: Use DPDK 21.11.6 release for OVS 3.0.

2024-02-06 Thread Kevin Traynor
On 05/02/2024 11:32, Eelco Chaudron wrote:
> 
> 
> On 2 Feb 2024, at 13:46, Kevin Traynor wrote:
> 
>> Update the CI and docs to use DPDK 21.11.6.
>>
>> Signed-off-by: Kevin Traynor 
> 
> Thanks for getting all DPDK packages upgraded. The changes look good to me. 
> Did not run the GitHub actions, but assume they are fine.
> 

Hi Eelco,

yes, for reference, they are here:
master:  https://github.com/kevintraynor/ovs/actions/runs/7730296983
branch-3.3:  https://github.com/kevintraynor/ovs/actions/runs/7730275340
branch-3.2:  https://github.com/kevintraynor/ovs/actions/runs/7730273763
branch-3.1:  https://github.com/kevintraynor/ovs/actions/runs/7730270878
branch-3.0:  https://github.com/kevintraynor/ovs/actions/runs/7730269366
branch-2.17: https://github.com/kevintraynor/ovs/actions/runs/7730266582

> Acked-by: Eelco Chaudron 
> 

Thanks

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


[ovs-dev] [PATCH master/branch-3.3] faq: Update DPDK releases for older branches.

2024-02-02 Thread Kevin Traynor
Branches 2.17/3.0/3.1/3.2 are using newer DPDK LTS releases.

Update the faq.

Signed-off-by: Kevin Traynor 
---
 Documentation/faq/releases.rst | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 3a8387f84..49b987b61 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -217,8 +217,8 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.5
-3.0.x21.11.5
-3.1.x22.11.3
-3.2.x22.11.3
+2.17.x   21.11.6
+3.0.x21.11.6
+3.1.x22.11.4
+3.2.x22.11.4
 3.3.x23.11
  
-- 
2.43.0

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


[ovs-dev] [PATCH branch-3.2] dpdk: Use DPDK 22.11.4 release for OVS 3.2.

2024-02-02 Thread Kevin Traynor
Update the CI and docs to use DPDK 22.11.4.

Signed-off-by: Kevin Traynor 
---
 .github/workflows/build-and-test.yml | 2 +-
 Documentation/faq/releases.rst   | 8 
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 +-
 4 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index 725d82d4d..b50c42de6 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -9,5 +9,5 @@ jobs:
   CC: gcc
   DPDK_GIT: https://dpdk.org/git/dpdk-stable
-  DPDK_VER: 22.11.3
+  DPDK_VER: 22.11.4
 name: dpdk gcc
 outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 362bf4ec7..f47d40836 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -216,8 +216,8 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.5
-3.0.x21.11.5
-3.1.x22.11.3
-3.2.x22.11.3
+2.17.x   21.11.6
+3.0.x21.11.6
+3.1.x22.11.4
+3.2.x22.11.4
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index 02eaf8b10..27df48493 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 22.11.3
+- DPDK 22.11.4
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-22.11.3.tar.xz
-   $ tar xf dpdk-22.11.3.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.3
+   $ wget https://fast.dpdk.org/rel/dpdk-22.11.4.tar.xz
+   $ tar xf dpdk-22.11.4.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.4
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index 0c5a20c2c..0387b66d5 100644
--- a/NEWS
+++ b/NEWS
@@ -2,5 +2,5 @@ v3.2.2 - xx xxx 
 
- DPDK:
- * OVS validated with DPDK 22.11.3.
+ * OVS validated with DPDK 22.11.4.
 
 v3.2.1 - 17 Oct 2023
-- 
2.43.0

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


[ovs-dev] [PATCH branch-3.1] dpdk: Use DPDK 22.11.4 release for OVS 3.1.

2024-02-02 Thread Kevin Traynor
Update the CI and docs to use DPDK 22.11.4.

Signed-off-by: Kevin Traynor 
---
 .github/workflows/build-and-test.yml | 2 +-
 Documentation/faq/releases.rst   | 6 +++---
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 +-
 4 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index e19e8b402..ade24abc8 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -9,5 +9,5 @@ jobs:
   CC: gcc
   DPDK_GIT: https://dpdk.org/git/dpdk-stable
-  DPDK_VER: 22.11.3
+  DPDK_VER: 22.11.4
 name: dpdk gcc
 outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index f956c7e10..a393f78a8 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -215,7 +215,7 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.5
-3.0.x21.11.5
-3.1.x22.11.3
+2.17.x   21.11.6
+3.0.x21.11.6
+3.1.x22.11.4
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index 02eaf8b10..27df48493 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 22.11.3
+- DPDK 22.11.4
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-22.11.3.tar.xz
-   $ tar xf dpdk-22.11.3.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.3
+   $ wget https://fast.dpdk.org/rel/dpdk-22.11.4.tar.xz
+   $ tar xf dpdk-22.11.4.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.4
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index b88a37b93..77cf4bbac 100644
--- a/NEWS
+++ b/NEWS
@@ -2,5 +2,5 @@ v3.1.4 - xx xxx 
 
- DPDK:
- * OVS validated with DPDK 22.11.3.
+ * OVS validated with DPDK 22.11.4.
 
 v3.1.3 - 17 Oct 2023
-- 
2.43.0

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


[ovs-dev] [PATCH branch-3.0] dpdk: Use DPDK 21.11.6 release for OVS 3.0.

2024-02-02 Thread Kevin Traynor
Update the CI and docs to use DPDK 21.11.6.

Signed-off-by: Kevin Traynor 
---
 .ci/linux-build.sh   | 2 +-
 Documentation/faq/releases.rst   | 4 ++--
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 +-
 4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 2df466b0c..7cb183dde 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -229,5 +229,5 @@ fi
 if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
 if [ -z "$DPDK_VER" ]; then
-DPDK_VER="21.11.5"
+DPDK_VER="21.11.6"
 fi
 install_dpdk $DPDK_VER
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 3825e2695..0dd2ec865 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -214,6 +214,6 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.5
-3.0.x21.11.5
+2.17.x   21.11.6
+3.0.x21.11.6
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index 559e8eb1f..fff49007e 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 21.11.5
+- DPDK 21.11.6
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-21.11.5.tar.xz
-   $ tar xf dpdk-21.11.5.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.5
+   $ wget https://fast.dpdk.org/rel/dpdk-21.11.6.tar.xz
+   $ tar xf dpdk-21.11.6.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.6
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index 631239bde..2a9a99a8f 100644
--- a/NEWS
+++ b/NEWS
@@ -2,5 +2,5 @@ v3.0.6 - xx xxx 
 
- DPDK:
- * OVS validated with DPDK 21.11.5.
+ * OVS validated with DPDK 21.11.6.
 
 v3.0.5 - 17 Oct 2023
-- 
2.43.0

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


[ovs-dev] [PATCH branch-2.17] dpdk: Use DPDK 21.11.6 release for OVS 2.17.

2024-02-02 Thread Kevin Traynor
Update the CI and docs to use DPDK 21.11.6.

Signed-off-by: Kevin Traynor 
---
 .ci/linux-build.sh   | 2 +-
 Documentation/faq/releases.rst   | 2 +-
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 +-
 4 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 9464ea49c..2e1bf2588 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -221,5 +221,5 @@ fi
 if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
 if [ -z "$DPDK_VER" ]; then
-DPDK_VER="21.11.5"
+DPDK_VER="21.11.6"
 fi
 install_dpdk $DPDK_VER
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 0e0c589a3..a9045a2d5 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -211,5 +211,5 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.5
+2.17.x   21.11.6
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index 559e8eb1f..fff49007e 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 21.11.5
+- DPDK 21.11.6
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-21.11.5.tar.xz
-   $ tar xf dpdk-21.11.5.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.5
+   $ wget https://fast.dpdk.org/rel/dpdk-21.11.6.tar.xz
+   $ tar xf dpdk-21.11.6.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.6
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index 3e3e5a115..7ef97cfa8 100644
--- a/NEWS
+++ b/NEWS
@@ -2,5 +2,5 @@ v2.17.9 - xx xxx 
 -
- DPDK:
- * OVS validated with DPDK 21.11.5.
+ * OVS validated with DPDK 21.11.6.
 
 v2.17.8 - 17 Oct 2023
-- 
2.43.0

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


Re: [ovs-dev] [PATCH 0/2] Patches to branch for 3.3.

2024-01-17 Thread Kevin Traynor
On 17/01/2024 12:11, Ilya Maximets wrote:
> The plan is to branch today by the EOD.  There is still a couple of
> patch sets on the list that can/will be applied before that.
> 
> Ilya Maximets (2):
>   Prepare for 3.3.0.
>   Prepare for post-3.3.0 (3.3.90).
> 
>  Documentation/faq/releases.rst |  3 ++-
>  NEWS   |  6 +-
>  configure.ac   |  2 +-
>  debian/changelog   | 10 --
>  debian/rules   |  4 ++--
>  5 files changed, 18 insertions(+), 7 deletions(-)
> 

For series, Acked-by: Kevin Traynor 

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


Re: [ovs-dev] [PATCH v9 1/1] netdev-offload-dpdk: Replace action PORT_ID with REPRESENTED_PORT.

2024-01-16 Thread Kevin Traynor
On 16/01/2024 17:19, Kevin Traynor wrote:
> On 16/01/2024 01:42, Ivan Malov via dev wrote:
>> Action PORT_ID has been deprecated. Use REPRESENTED_PORT instead.
>>
>> Signed-off-by: Ivan Malov 
> 
> nit: checkpatch complains about the length of the title but I think it's
> fine as it's due to the terms and shortening would make it less
> understandable.
> 

Actually, nevermind - it is including the [PATCH] prefix here.

> I didn't test as I don't have a setup ready, but reviewed code and
> confirmed that nfp support [0] is included in DPDK 23.11.
> 
> Acked-by: Kevin Traynor 
> 
> [0] 010b8fa897 net/nfp: support represented port flow action
> 
>> ---
>>  v8: split from 
>> https://mail.openvswitch.org/pipermail/ovs-dev/2023-June/406049.html
>>  v9: address warnings by 0-robot regarding the summary line
>>
>>  lib/netdev-offload-dpdk.c | 30 +-
>>  1 file changed, 17 insertions(+), 13 deletions(-)
>>
>> diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c
>> index 992627fa2..623005b1c 100644
>> --- a/lib/netdev-offload-dpdk.c
>> +++ b/lib/netdev-offload-dpdk.c
>> @@ -735,14 +735,15 @@ dump_flow_action(struct ds *s, struct ds *s_extra,
>>  ds_put_cstr(s, "rss / ");
>>  } else if (actions->type == RTE_FLOW_ACTION_TYPE_COUNT) {
>>  ds_put_cstr(s, "count / ");
>> -} else if (actions->type == RTE_FLOW_ACTION_TYPE_PORT_ID) {
>> -const struct rte_flow_action_port_id *port_id = actions->conf;
>> +} else if (actions->type == RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT) {
>> +const struct rte_flow_action_ethdev *ethdev = actions->conf;
>>  
>> -ds_put_cstr(s, "port_id ");
>> -if (port_id) {
>> -ds_put_format(s, "original %d id %d ",
>> -  port_id->original, port_id->id);
>> +ds_put_cstr(s, "represented_port ");
>> +
>> +if (ethdev) {
>> +ds_put_format(s, "ethdev_port_id %d ", ethdev->port_id);
>>  }
>> +
>>  ds_put_cstr(s, "/ ");
>>  } else if (actions->type == RTE_FLOW_ACTION_TYPE_DROP) {
>>  ds_put_cstr(s, "drop / ");
>> @@ -1776,19 +1777,22 @@ add_count_action(struct flow_actions *actions)
>>  }
>>  
>>  static int
>> -add_port_id_action(struct flow_actions *actions,
>> -   struct netdev *outdev)
>> +add_represented_port_action(struct flow_actions *actions,
>> +struct netdev *outdev)
>>  {
>> -struct rte_flow_action_port_id *port_id;
>> +struct rte_flow_action_ethdev *ethdev;
>>  int outdev_id;
>>  
>>  outdev_id = netdev_dpdk_get_port_id(outdev);
>>  if (outdev_id < 0) {
>>  return -1;
>>  }
>> -port_id = xzalloc(sizeof *port_id);
>> -port_id->id = outdev_id;
>> -add_flow_action(actions, RTE_FLOW_ACTION_TYPE_PORT_ID, port_id);
>> +
>> +ethdev = xzalloc(sizeof *ethdev);
>> +ethdev->port_id = outdev_id;
>> +
>> +add_flow_action(actions, RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT, ethdev);
>> +
>>  return 0;
>>  }
>>  
>> @@ -1808,7 +1812,7 @@ add_output_action(struct netdev *netdev,
>>  return -1;
>>  }
>>  if (!netdev_flow_api_equals(netdev, outdev) ||
>> -add_port_id_action(actions, outdev)) {
>> +add_represented_port_action(actions, outdev)) {
>>  VLOG_DBG_RL(&rl, "%s: Output to port \'%s\' cannot be offloaded.",
>>  netdev_get_name(netdev), netdev_get_name(outdev));
>>  ret = -1;
> 

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


Re: [ovs-dev] [PATCH v9 1/1] netdev-offload-dpdk: Replace action PORT_ID with REPRESENTED_PORT.

2024-01-16 Thread Kevin Traynor
On 16/01/2024 01:42, Ivan Malov via dev wrote:
> Action PORT_ID has been deprecated. Use REPRESENTED_PORT instead.
> 
> Signed-off-by: Ivan Malov 

nit: checkpatch complains about the length of the title but I think it's
fine as it's due to the terms and shortening would make it less
understandable.

I didn't test as I don't have a setup ready, but reviewed code and
confirmed that nfp support [0] is included in DPDK 23.11.

Acked-by: Kevin Traynor 

[0] 010b8fa897 net/nfp: support represented port flow action

> ---
>  v8: split from 
> https://mail.openvswitch.org/pipermail/ovs-dev/2023-June/406049.html
>  v9: address warnings by 0-robot regarding the summary line
> 
>  lib/netdev-offload-dpdk.c | 30 +-
>  1 file changed, 17 insertions(+), 13 deletions(-)
> 
> diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c
> index 992627fa2..623005b1c 100644
> --- a/lib/netdev-offload-dpdk.c
> +++ b/lib/netdev-offload-dpdk.c
> @@ -735,14 +735,15 @@ dump_flow_action(struct ds *s, struct ds *s_extra,
>  ds_put_cstr(s, "rss / ");
>  } else if (actions->type == RTE_FLOW_ACTION_TYPE_COUNT) {
>  ds_put_cstr(s, "count / ");
> -} else if (actions->type == RTE_FLOW_ACTION_TYPE_PORT_ID) {
> -const struct rte_flow_action_port_id *port_id = actions->conf;
> +} else if (actions->type == RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT) {
> +const struct rte_flow_action_ethdev *ethdev = actions->conf;
>  
> -ds_put_cstr(s, "port_id ");
> -if (port_id) {
> -ds_put_format(s, "original %d id %d ",
> -  port_id->original, port_id->id);
> +ds_put_cstr(s, "represented_port ");
> +
> +if (ethdev) {
> +ds_put_format(s, "ethdev_port_id %d ", ethdev->port_id);
>  }
> +
>  ds_put_cstr(s, "/ ");
>  } else if (actions->type == RTE_FLOW_ACTION_TYPE_DROP) {
>  ds_put_cstr(s, "drop / ");
> @@ -1776,19 +1777,22 @@ add_count_action(struct flow_actions *actions)
>  }
>  
>  static int
> -add_port_id_action(struct flow_actions *actions,
> -   struct netdev *outdev)
> +add_represented_port_action(struct flow_actions *actions,
> +struct netdev *outdev)
>  {
> -struct rte_flow_action_port_id *port_id;
> +struct rte_flow_action_ethdev *ethdev;
>  int outdev_id;
>  
>  outdev_id = netdev_dpdk_get_port_id(outdev);
>  if (outdev_id < 0) {
>  return -1;
>  }
> -port_id = xzalloc(sizeof *port_id);
> -port_id->id = outdev_id;
> -add_flow_action(actions, RTE_FLOW_ACTION_TYPE_PORT_ID, port_id);
> +
> +ethdev = xzalloc(sizeof *ethdev);
> +ethdev->port_id = outdev_id;
> +
> +add_flow_action(actions, RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT, ethdev);
> +
>  return 0;
>  }
>  
> @@ -1808,7 +1812,7 @@ add_output_action(struct netdev *netdev,
>  return -1;
>  }
>  if (!netdev_flow_api_equals(netdev, outdev) ||
> -add_port_id_action(actions, outdev)) {
> +add_represented_port_action(actions, outdev)) {
>  VLOG_DBG_RL(&rl, "%s: Output to port \'%s\' cannot be offloaded.",
>  netdev_get_name(netdev), netdev_get_name(outdev));
>  ret = -1;

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


Re: [ovs-dev] [PATCH v2] dpdk: Update to use v23.11.

2024-01-15 Thread Kevin Traynor
On 15/01/2024 14:28, David Marchand wrote:
> This commit adds support for DPDK v23.11.
> It updates the CI script and documentation and includes the following
> changes coming from the dpdk-latest branch:
> 
> - sparse: Add some compiler intrinsics for DPDK build.
>   https://patchwork.ozlabs.org/project/openvswitch/list/?series=371129&state=*
> 
> - ci: Cache DPDK installed libraries only.
> - ci: Reduce optional libraries in DPDK.
>   https://patchwork.ozlabs.org/project/openvswitch/list/?series=383367&state=*
> 
> - system-dpdk: Ignore net/ice error log about QinQ offloading.
>   https://patchwork.ozlabs.org/project/openvswitch/list/?series=385259&state=*
> 
> There is a known issue with i40e VF devices where OVS main thread may
> block when adding such devices as dpif-netdev dpdk ports.
> 
> Signed-off-by: David Marchand 
> ---

Acked-by: Kevin Traynor 

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


Re: [ovs-dev] [PATCH] dpdk: Update to use v23.11.

2024-01-12 Thread Kevin Traynor
On 11/01/2024 15:44, Ilya Maximets wrote:
> On 1/10/24 19:35, Kevin Traynor wrote:
>> +cc some others people who may be interested about OVS upgrading DPDK
>> version.
>>
>> On 10/01/2024 16:52, Ilya Maximets wrote:
>>> On 12/13/23 14:06, David Marchand wrote:
>>>> This commit adds support for DPDK v23.11.
>>>> It updates the CI script and documentation and includes the following
>>>> changes coming from the dpdk-latest branch:
>>>>
>>>> - sparse: Add some compiler intrinsics for DPDK build.
>>>>   
>>>> https://patchwork.ozlabs.org/project/openvswitch/list/?series=371129&state=*
>>>>
>>>> - ci: Cache DPDK installed libraries only.
>>>> - ci: Reduce optional libraries in DPDK.
>>>>   
>>>> https://patchwork.ozlabs.org/project/openvswitch/list/?series=383367&state=*
>>>>
>>>> - system-dpdk: Ignore net/ice error log about QinQ offloading.
>>>>   
>>>> https://patchwork.ozlabs.org/project/openvswitch/list/?series=385259&state=*
>>>>
>>>> Signed-off-by: David Marchand 
>>>> ---
>>>
>>> Hi, Kevin, David, others.
>>>
>>
>> Hi Ilya,
>>
>> Thanks for summarizing the options.
>>
>>> We need to make a decision on this patch as the proposed branching is
>>> only one week away.  As far as I understand, there is a problem with
>>> Intel Virtual Function driver (iavf) that deadlocks OVS when VF is added.
>>> The problem is described in https://bugs.dpdk.org/show_bug.cgi?id=1337
>>> (not 1337 at all) and the commit that introduced the issue in DPDK is
>>> known.  To the date the issue is not fixed.  The potential solution is
>>> to revert the commit from DPDK, bringing back another issue fixed by
>>> aforementioned commit, though that issue seems less severe and, to my
>>> knowledge, we didn't actually experience it in the past.
>>>
>>
>> Agree, non-regression is always better.
>>
>>> There is also a situation around DPDK stable releases.  Since these are
>>> normally created after the next major release of DPDK is out, the time
>>> gap between xx.11 and xx.11.1 is 5 months.  Which is a lot, especially
>>> for an LTS release, since projects are likely to migrate to new LTS
>>> releases of DPDK and they are likely to discover bugs that need fixes
>>> earlier than in 5 months.
>>>
>>
>> Good feedback. The issue is the LTS follows the DPDK main release in
>> order that fixes are applied in main branch and already have gone
>> through some validation. But maybe there's a more limited xx.11.1
>> version with fixes for reported issues that could be released etc. It's
>> something that would need more discussion.
>>
>> I think it's better to address the current issue and possible future
>> workflow changes separately as much as possible, as they might need
>> different resolutions and the thread could get a bit overloaded. I've
>> just commented on the current issue below for now.
> 
> OK.  That makes sense.  It's hard to solve long term issues in
> a time scramble.
> 
>>
>>> With that said, we have a few options for the current patch:
>>>
>>> 0. Accept the patch and do nothing about the issue.  Clearly not a good
>>>option.  The argument can be made that the problem was also
>>>backported to stable DPDK 21.11.5 and 22.11.something, so older OVS
>>>releases are also affected, i.e. it's kind of not a problem for 3.3
>>>release of OVS in particular.  However, for older releases the users
>>>can choose to fall back to older stable releases of DPDK.  With a
>>>major version upgrade we are going to introduce breaking changes,
>>>and there is nowhere to fall back, since going back to 22.11 will
>>>break features for certain drivers even if DPDK API/ABI that we
>>>use would have been compatible.
>>>
>>
>> I have reverted the patch that introduced the issue for 21.11.6.
>> Hopefully we can do the same for 22.11.4, and we will have those
>> releases shortly to cover the branches using those LTS's.
>>
>>> 1. Accept the patch and document that users will need to revert a
>>>particular DPDK commit, if they are planning to use VFs on Intel NICs.
>>>And upgrade to 23.11.1 as soon as it is available, assuming the issue
>>>will be fixed there.
>>>
>>>This is not a very user

Re: [ovs-dev] [PATCH] dpdk: Update to use v23.11.

2024-01-10 Thread Kevin Traynor
+cc some others people who may be interested about OVS upgrading DPDK
version.

On 10/01/2024 16:52, Ilya Maximets wrote:
> On 12/13/23 14:06, David Marchand wrote:
>> This commit adds support for DPDK v23.11.
>> It updates the CI script and documentation and includes the following
>> changes coming from the dpdk-latest branch:
>>
>> - sparse: Add some compiler intrinsics for DPDK build.
>>   
>> https://patchwork.ozlabs.org/project/openvswitch/list/?series=371129&state=*
>>
>> - ci: Cache DPDK installed libraries only.
>> - ci: Reduce optional libraries in DPDK.
>>   
>> https://patchwork.ozlabs.org/project/openvswitch/list/?series=383367&state=*
>>
>> - system-dpdk: Ignore net/ice error log about QinQ offloading.
>>   
>> https://patchwork.ozlabs.org/project/openvswitch/list/?series=385259&state=*
>>
>> Signed-off-by: David Marchand 
>> ---
> 
> Hi, Kevin, David, others.
> 

Hi Ilya,

Thanks for summarizing the options.

> We need to make a decision on this patch as the proposed branching is
> only one week away.  As far as I understand, there is a problem with
> Intel Virtual Function driver (iavf) that deadlocks OVS when VF is added.
> The problem is described in https://bugs.dpdk.org/show_bug.cgi?id=1337
> (not 1337 at all) and the commit that introduced the issue in DPDK is
> known.  To the date the issue is not fixed.  The potential solution is
> to revert the commit from DPDK, bringing back another issue fixed by
> aforementioned commit, though that issue seems less severe and, to my
> knowledge, we didn't actually experience it in the past.
> 

Agree, non-regression is always better.

> There is also a situation around DPDK stable releases.  Since these are
> normally created after the next major release of DPDK is out, the time
> gap between xx.11 and xx.11.1 is 5 months.  Which is a lot, especially
> for an LTS release, since projects are likely to migrate to new LTS
> releases of DPDK and they are likely to discover bugs that need fixes
> earlier than in 5 months.
> 

Good feedback. The issue is the LTS follows the DPDK main release in
order that fixes are applied in main branch and already have gone
through some validation. But maybe there's a more limited xx.11.1
version with fixes for reported issues that could be released etc. It's
something that would need more discussion.

I think it's better to address the current issue and possible future
workflow changes separately as much as possible, as they might need
different resolutions and the thread could get a bit overloaded. I've
just commented on the current issue below for now.

> With that said, we have a few options for the current patch:
> 
> 0. Accept the patch and do nothing about the issue.  Clearly not a good
>option.  The argument can be made that the problem was also
>backported to stable DPDK 21.11.5 and 22.11.something, so older OVS
>releases are also affected, i.e. it's kind of not a problem for 3.3
>release of OVS in particular.  However, for older releases the users
>can choose to fall back to older stable releases of DPDK.  With a
>major version upgrade we are going to introduce breaking changes,
>and there is nowhere to fall back, since going back to 22.11 will
>break features for certain drivers even if DPDK API/ABI that we
>use would have been compatible.
> 

I have reverted the patch that introduced the issue for 21.11.6.
Hopefully we can do the same for 22.11.4, and we will have those
releases shortly to cover the branches using those LTS's.

> 1. Accept the patch and document that users will need to revert a
>particular DPDK commit, if they are planning to use VFs on Intel NICs.
>And upgrade to 23.11.1 as soon as it is available, assuming the issue
>will be fixed there.
> 
>This is not a very user-friendly option.  And it is not clear if
>distributions will do that.  Also, it's a one-off solution that we may
>have to repeat every year.  And it might not be possible for other
>types of issues we may encounter in the future.  Also, users will
>have zero validation for the changes they make in DPDK.
> 
> 2. Check if DPDK can make a one-off stable release of 23.11.1 with just this
>patch reverted or the fix implemented.  If this can be done before OVS
>release in mid February, that might be acceptable.
> 
>This will likely mean skipping some validation steps on the DPDK release
>side, so not ideal.  However, it is better than asking users to revert
>this patch themselves as they will have zero validation this way.
>This also doesn't address the bigger problem with DPDK stable release
>cadence and making one-off releases every year doesn't sound right.
> 

Quite similar, but I guess 1 is more of an inconvenience for the user to
have to revert that patch themselves, especially if they are just using
the tar file.

I'm not sure if it's Luca who is going to maintain 23.11 LTS, but if
he's not available I would be prepared to make a 2

Re: [ovs-dev] [PATCH v6] system-dpdk: Test with mlx5 devices.

2024-01-10 Thread Kevin Traynor
On 10/01/2024 10:04, David Marchand wrote:
> The DPDK unit test only runs if vfio or igb_uio kernel modules are loaded:
> on systems with only mlx5, this test is always skipped.
> 
> Besides, the test tries to grab the first device listed by dpdk-devbind.py,
> regardless of the PCI device status regarding kmod binding.
> 
> Remove dependency on this DPDK script and use a minimal script that
> reads PCI sysfs.
> 
> This script is not perfect, as one can imagine PCI devices bound to
> vfio-pci for virtual machines.
> Plus, this script only tries to take over vfio-pci devices. mlx5 devices
> can't be taken over blindly as it could mean losing connectivity to the
> machine if the netdev was in use for this system.
> 
> For those two reasons, add a new environment variable DPDK_PCI_ADDR for
> testers to select the PCI device of their liking.
> For consistency and grep, the temporary file PCI_ADDR is renamed
> to DPDK_PCI_ADDR.
> 
> Reviewed-by: Maxime Coquelin 
> Acked-by: Eelco Chaudron 
> Signed-off-by: David Marchand 
> ---

Applied. Thanks David, Maxime, Eelco and Ilya.

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


Re: [ovs-dev] [PATCH v5] system-dpdk: Test with mlx5 devices.

2024-01-05 Thread Kevin Traynor
On 22/11/2023 16:09, David Marchand wrote:
> The DPDK unit test only runs if vfio or igb_uio kernel modules are loaded:
> on systems with only mlx5, this test is always skipped.
> 
> Besides, the test tries to grab the first device listed by dpdk-devbind.py,
> regardless of the PCI device status regarding kmod binding.
> 
> Remove dependency on this DPDK script and use a minimal script that
> reads PCI sysfs.
> 
> This script is not perfect, as one can imagine PCI devices bound to
> vfio-pci for virtual machines.
> Plus, this script only tries to take over vfio-pci devices. mlx5 devices
> can't be taken over blindly as it could mean losing connectivity to the
> machine if the netdev was in use for this system.
> 
> For those two reasons, add a new environment variable DPDK_PCI_ADDR for
> testers to select the PCI device of their liking.
> For consistency and grep, the temporary file PCI_ADDR is renamed
> to DPDK_PCI_ADDR.
> 
> Reviewed-by: Maxime Coquelin 
> Acked-by: Eelco Chaudron 
> Signed-off-by: David Marchand 
> ---
> Changes since v4:
> - separated from the original series,
> - rebased,
> - dropped mlx5 devices from the discovery script,
> - documented DPDK_PCI_ADDR env variable,
> 
> Changes since v3:
> - fixed nit from Maxime,
> 
> Changes since v2:
> - sorted logs alphabetically,
> 
> ---
>  Documentation/topics/testing.rst | 11 ++---
>  tests/automake.mk|  1 +
>  tests/system-dpdk-find-device.py | 39 
>  tests/system-dpdk-macros.at  | 10 ++--
>  tests/system-dpdk.at | 14 ++--
>  5 files changed, 57 insertions(+), 18 deletions(-)
>  create mode 100755 tests/system-dpdk-find-device.py

Tested with a combination of mlx5 and intel NICs with/without
DPDK_PCI_ADDR and the correct NIC is selected.

Acked-by: Kevin Traynor 

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


Re: [ovs-dev] [PATCH v5 1/1] dpif-netdev: Add per pmd sleep config.

2023-12-14 Thread Kevin Traynor

On 11/10/2023 20:08, Ilya Maximets wrote:

On 9/29/23 14:50, Kevin Traynor wrote:

Extend 'pmd-sleep-max' so that individual PMD thread cores may have
a specified max sleep request value.

Existing behaviour is maintained.

Any PMD thread core without a value will use the global value if
set or default no sleep.

To set PMD thread cores 8 and 9 to never request a load based
sleep and all other PMD thread cores to be able to request a max
sleep of 50 usecs:

$ ovs-vsctl set open_vswitch .
other_config:pmd-sleep-max=50,8:0,9:0

To set PMD thread cores 10 and 11 to request a max sleep of 100
usecs and all other PMD thread cores to never request a sleep:

$ ovs-vsctl set open_vswitch .
other_config:pmd-sleep-max=10:100,11:100

'pmd-sleep-show' is updated to show the max sleep value for each
PMD thread.

Signed-off-by: Kevin Traynor  ---


Hi, Kevin.  Thanks for the new version!



Hi Ilya, thanks for reviewing.

I see a very strange 1.5% preformance degradation in a V-to-V 
scenario with this patch applied.  Could you, please, check?




I tested V-2-V and I don't see a drop. I only see <=0.5% difference 
between all tests. Sometimes with the patch is better, sometimes 
without, so I think all I see is test/measurement variance.


| Patch | sleep max | tput kpps| cyc/pkt | % tput drop | % cyc/pkt inc |
|---|---|--|-|-|---|
| No| 0 | 7263 | 358 | |   |
| No|   100 | 7260 | 358 | |   |
| Yes   | 0 | 7293 | 357 | -0.41%  | -0.28%|
| Yes   |   100 | 7292 | 357 | -0.44%  | -0.28%|


I also tested V-2-V-2-OVSDROP and different combinations of single and 
multiple pmds (single and multple rxqs on pmd) and see the same behaviour.



Also, this patch needs a NEWS entry.



Added in v6. Reworked other comments, replied to a few of them below. 
(New TB seems to have mangled the text a bit)


thanks,
Kevin.


Some other comments inline.

Documentation/topics/dpdk/pmd.rst |  34 +++- 
lib/dpif-netdev-private-thread.h  |   3 + lib/dpif-netdev.c

| 267 --- tests/pmd.at
| 292 -- vswitchd/vswitch.xml
|  32 +++- 5 files changed, 579 insertions(+), 49 deletions(-)

diff --git a/Documentation/topics/dpdk/pmd.rst
b/Documentation/topics/dpdk/pmd.rst index f43819be0..dd6ee46bd
100644 --- a/Documentation/topics/dpdk/pmd.rst +++
b/Documentation/topics/dpdk/pmd.rst @@ -354,8 +354,4 @@ time not
processing packets will be determined by the sleep and processor 
wake-up times and should be tested with each system configuration.


-The current configuration of the PMD load based sleeping can be
shown with:: - -$ ovs-appctl dpif-netdev/pmd-sleep-show - Sleep
time statistics for 10 secs can be seen with::

@@ -380,4 +376,34 @@ system configuration (e.g. enabling processor
C-states) and workloads. rate.

+Maximum sleep values can also be set for individual PMD threads
using +key:value pairs in the form of core:max_sleep. Any PMD
thread that has been +assigned a specified value will use that. Any
PMD thread that does not have +a specified value will use the
current global value. + +Specified values for individual PMD
threads can be added or removed at +any time. + +For example, to
set PMD threads on cores 8 and 9 to never request a load based 
+sleep and all others PMD threads to be able to request a max sleep

of +50 microseconds (us):: + +$ ovs-vsctl set open_vswitch .
other_config:pmd-sleep-max=50,8:0,9:0 + +The max sleep value for
each PMD threads can be checked in the logs or with:: + +$
ovs-appctl dpif-netdev/pmd-sleep-show +pmd thread numa_id 0
core_id 8: +  max sleep:0 us +pmd thread numa_id 1
core_id 9: +  max sleep:0 us +pmd thread numa_id 0
core_id 10: +  max sleep:   50 us +pmd thread numa_id 1
core_id 11: +  max sleep:   50 us +pmd thread numa_id 0
core_id 12: +  max sleep:   50 us +pmd thread numa_id 1
core_id 13: +  max sleep:   50 us + .. _ovs-vswitchd(8): 
http://openvswitch.org/support/dist-docs/ovs-vswitchd.8.html diff

--git a/lib/dpif-netdev-private-thread.h
b/lib/dpif-netdev-private-thread.h index 1ec3cd794..cb18e5def
100644 --- a/lib/dpif-netdev-private-thread.h +++
b/lib/dpif-netdev-private-thread.h @@ -181,4 +181,7 @@ struct
dp_netdev_pmd_thread { bool isolated;

+/* Max sleep request in microseconds.*/


A space after a period.


+atomic_uint64_t max_sleep; + /* Queue id used by this pmd
thread to send packets on all netdevs if * XPS disabled for this
netdev. All static_tx_qid's are unique and less diff --git
a/lib/dpif-netdev.c b/lib/dpif-netdev.c index 157694bcf..72ee53a02
100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -180,4
+180,9 @@ static struct odp_support dp_netdev_support = { #define
PMD_SLEEP_INC_US 1

+struct pmd_sleep { +unsigned core_id; +uint6

[ovs-dev] [PATCH v6 1/1] dpif-netdev: Add per pmd sleep config.

2023-12-14 Thread Kevin Traynor
Extend 'pmd-sleep-max' so that individual PMD thread cores
may have a specified max sleep request value.

Existing behaviour is maintained.

Any PMD thread core without a value will use the global value
if set or default no sleep.

To set PMD thread cores 8 and 9 to never request a load based sleep
and all other PMD thread cores to be able to request a max sleep of
50 usecs:

$ ovs-vsctl set open_vswitch . other_config:pmd-sleep-max=50,8:0,9:0

To set PMD thread cores 10 and 11 to request a max sleep of 100 usecs
and all other PMD thread cores to never request a sleep:

$ ovs-vsctl set open_vswitch . other_config:pmd-sleep-max=10:100,11:100

'pmd-sleep-show' is updated to show the max sleep value for each PMD thread.

Signed-off-by: Kevin Traynor 
---
 Documentation/topics/dpdk/pmd.rst |  34 ++-
 NEWS  |   4 +
 lib/dpif-netdev-private-thread.h  |   3 +
 lib/dpif-netdev.c | 270 ---
 tests/pmd.at  | 350 --
 vswitchd/vswitch.xml  |  31 ++-
 6 files changed, 642 insertions(+), 50 deletions(-)

diff --git a/Documentation/topics/dpdk/pmd.rst 
b/Documentation/topics/dpdk/pmd.rst
index f43819be0..dd6ee46bd 100644
--- a/Documentation/topics/dpdk/pmd.rst
+++ b/Documentation/topics/dpdk/pmd.rst
@@ -354,8 +354,4 @@ time not processing packets will be determined by the sleep 
and processor
 wake-up times and should be tested with each system configuration.
 
-The current configuration of the PMD load based sleeping can be shown with::
-
-$ ovs-appctl dpif-netdev/pmd-sleep-show
-
 Sleep time statistics for 10 secs can be seen with::
 
@@ -380,4 +376,34 @@ system configuration (e.g. enabling processor C-states) 
and workloads.
 rate.
 
+Maximum sleep values can also be set for individual PMD threads using
+key:value pairs in the form of core:max_sleep. Any PMD thread that has been
+assigned a specified value will use that. Any PMD thread that does not have
+a specified value will use the current global value.
+
+Specified values for individual PMD threads can be added or removed at
+any time.
+
+For example, to set PMD threads on cores 8 and 9 to never request a load based
+sleep and all others PMD threads to be able to request a max sleep of
+50 microseconds (us)::
+
+$ ovs-vsctl set open_vswitch . other_config:pmd-sleep-max=50,8:0,9:0
+
+The max sleep value for each PMD threads can be checked in the logs or with::
+
+$ ovs-appctl dpif-netdev/pmd-sleep-show
+pmd thread numa_id 0 core_id 8:
+  max sleep:0 us
+pmd thread numa_id 1 core_id 9:
+  max sleep:0 us
+pmd thread numa_id 0 core_id 10:
+  max sleep:   50 us
+pmd thread numa_id 1 core_id 11:
+  max sleep:   50 us
+pmd thread numa_id 0 core_id 12:
+  max sleep:   50 us
+pmd thread numa_id 1 core_id 13:
+  max sleep:   50 us
+
 .. _ovs-vswitchd(8):
 http://openvswitch.org/support/dist-docs/ovs-vswitchd.8.html
diff --git a/NEWS b/NEWS
index 63f2842ae..48bd264ed 100644
--- a/NEWS
+++ b/NEWS
@@ -27,4 +27,8 @@ Post-v3.2.0
TSO is enabled but not supported by an egress interface (except for
tunnel interfaces).
+ * 'pmd-sleep-max' is updated to also accept pmd-thread-core:sleep-max.
+   The existing behaviour is maintained and a non key:value pair value
+   will be applied to all other PMD thread cores.'pmd-sleep-show' is
+   updated to show the maximum sleep for each PMD thread core.
 
 
diff --git a/lib/dpif-netdev-private-thread.h b/lib/dpif-netdev-private-thread.h
index 1ec3cd794..8715b3837 100644
--- a/lib/dpif-netdev-private-thread.h
+++ b/lib/dpif-netdev-private-thread.h
@@ -181,4 +181,7 @@ struct dp_netdev_pmd_thread {
 bool isolated;
 
+/* Max sleep request in microseconds. */
+atomic_uint64_t max_sleep;
+
 /* Queue id used by this pmd thread to send packets on all netdevs if
  * XPS disabled for this netdev. All static_tx_qid's are unique and less
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
index 9a59a1b03..f859ef618 100644
--- a/lib/dpif-netdev.c
+++ b/lib/dpif-netdev.c
@@ -180,4 +180,9 @@ static struct odp_support dp_netdev_support = {
 #define PMD_SLEEP_INC_US 1
 
+struct pmd_sleep {
+unsigned core_id;
+uint64_t max_sleep;
+};
+
 struct dpcls {
 struct cmap_node node;  /* Within dp_netdev_pmd_thread.classifiers */
@@ -288,6 +293,6 @@ struct dp_netdev {
 /* Enable collection of PMD performance metrics. */
 atomic_bool pmd_perf_metrics;
-/* Max load based sleep request. */
-atomic_uint64_t pmd_max_sleep;
+/* Default max load based sleep request. */
+uint64_t pmd_max_sleep_default;
 /* Enable the SMC cache from ovsdb config */
 atomic_bool smc_enable_db;
@@ -327,4 +332,7 @@ struct dp_netdev {
 char *pmd_cmask;
 
+/* PMD load based max sleep request user string. */
+char *max_sleep_list;
+
 uint

[ovs-dev] [PATCH v6 0/1] Per pmd load based sleeping

2023-12-14 Thread Kevin Traynor
These patches allow specific sleep settings for PMD threads. It is
backwards compatabile with previously only allowing a global value.

v6:
- Reworked for Ilya v5 review
- Added NEWS
- Reworked list parsing to handle invalid key:value value correctly
- Added UTs for invalid values
- Other minor coding std changes

v5:
- Reworked from previous series

GHA: https://github.com/kevintraynor/ovs/actions/runs/7207817272
cirrus: https://cirrus-ci.com/build/6075630895235072

Kevin Traynor (1):
  dpif-netdev: Add per pmd sleep config.

 Documentation/topics/dpdk/pmd.rst |  34 ++-
 NEWS  |   4 +
 lib/dpif-netdev-private-thread.h  |   3 +
 lib/dpif-netdev.c | 270 ---
 tests/pmd.at  | 350 --
 vswitchd/vswitch.xml  |  31 ++-
 6 files changed, 642 insertions(+), 50 deletions(-)

-- 
2.43.0

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


Re: [ovs-dev] [PATCH v2] system-dpdk: Wait for MTU changes to be applied.

2023-12-07 Thread Kevin Traynor

On 01/12/2023 14:29, David Marchand wrote:

Because a DPDK backed netdev configuration is done in an asynchronous way,
and a MTU change requires a reconfiguration, directly checking
ovs-vswitchd logs or querying ovsdb for the interface current MTU value
is racy.

Add synchronisation points on the interface MTU value in ovsdb as it
ensures that a netdev (re)configuration did happen.
With those synchronisation points in place, error messages may be checked
in logs afterward.

Fixes: bf47829116a8 ("tests: Add OVS-DPDK MTU unit tests.")
Signed-off-by: David Marchand
---
Changes since v1:
- dropped test output,


---
  tests/system-dpdk.at | 42 --
  1 file changed, 12 insertions(+), 30 deletions(-)


Thanks David. Applied on master branch and backported with a minor 
rebase to the relevant branches (3.0/3.1/3.2).


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


Re: [ovs-dev] [PATCH v2] system-dpdk: Wait for MTU changes to be applied.

2023-12-05 Thread Kevin Traynor

On 01/12/2023 14:29, David Marchand wrote:

Because a DPDK backed netdev configuration is done in an asynchronous way,
and a MTU change requires a reconfiguration, directly checking
ovs-vswitchd logs or querying ovsdb for the interface current MTU value
is racy.

Add synchronisation points on the interface MTU value in ovsdb as it
ensures that a netdev (re)configuration did happen.
With those synchronisation points in place, error messages may be checked
in logs afterward.

Fixes: bf47829116a8 ("tests: Add OVS-DPDK MTU unit tests.")
Signed-off-by: David Marchand
---
Changes since v1:
- dropped test output,


---
  tests/system-dpdk.at | 42 --
  1 file changed, 12 insertions(+), 30 deletions(-)



Thanks David, this removes the race.

Acked-by: Kevin Traynor 

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


Re: [ovs-dev] [dpdk-latest] system-dpdk: Ignore net/ice error log about QinQ offloading.

2023-12-05 Thread Kevin Traynor

On 05/12/2023 08:36, David Marchand wrote:

The net/ice DPDK driver complains with an ERROR level log message if the
hw firmware only supports SVM (Single Vlan Mode).
DVM (Dual Vlan mode) seems required when using QinQ offloading.
OVS does not care about this offloading feature and configures nothing
on that topic.

While seeing this error log, some manual tests show that
untagged/tagged/"double" tagged packets (with 0x8100 ethertype)
are still received/transmitted fine.

Ignore this log waiting for a fix on the DPDK side.

Link: https://bugs.dpdk.org/show_bug.cgi?id=1331
Signed-off-by: David Marchand 
---
  tests/system-dpdk-macros.at | 1 +
  1 file changed, 1 insertion(+)

diff --git a/tests/system-dpdk-macros.at b/tests/system-dpdk-macros.at
index dcdfa55741..c011487541 100644
--- a/tests/system-dpdk-macros.at
+++ b/tests/system-dpdk-macros.at
@@ -86,6 +86,7 @@ $1";/does not exist. The Open vSwitch kernel module is 
probably not loaded./d
  /does not support MTU configuration,/d
  /EAL: No \(available\|free\) .*hugepages reported/d
  /Failed to enable flow control/d
+/ice_vsi_config_outer_vlan_stripping(): Single VLAN mode (SVM) does not 
support qinq/d
  /Rx checksum offload is not supported on/d
  /TELEMETRY: No legacy callbacks, legacy socket not created/d"])
  ])


Thanks David

Acked-by: Kevin Traynor 

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


[ovs-dev] [PATCH v3 branch-3.2] dpdk: Use DPDK 22.11.3 release for OVS 3.2.

2023-11-29 Thread Kevin Traynor
Update the CI and docs to use DPDK 22.11.3.

Signed-off-by: Kevin Traynor 
Acked-by: Simon Horman 
Reviewed-by: David Marchand 
Acked-by: Ilya Maximets 
---
 .github/workflows/build-and-test.yml | 2 +-
 Documentation/faq/releases.rst   | 8 
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 ++
 4 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index bc5494e86..fd911c110 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -9,5 +9,5 @@ jobs:
   CC: gcc
   DPDK_GIT: https://dpdk.org/git/dpdk-stable
-  DPDK_VER: 22.11.1
+  DPDK_VER: 22.11.3
 name: dpdk gcc
 outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index e6bda14e7..362bf4ec7 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -216,8 +216,8 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.2
-3.0.x21.11.2
-3.1.x22.11.1
-3.2.x22.11.1
+2.17.x   21.11.5
+3.0.x21.11.5
+3.1.x22.11.3
+3.2.x22.11.3
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index 63a0ebb23..02eaf8b10 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 22.11.1
+- DPDK 22.11.3
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-22.11.1.tar.xz
-   $ tar xf dpdk-22.11.1.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.1
+   $ wget https://fast.dpdk.org/rel/dpdk-22.11.3.tar.xz
+   $ tar xf dpdk-22.11.3.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.3
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index eb7a9b1ba..0c5a20c2c 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 v3.2.2 - xx xxx 
 
+   - DPDK:
+ * OVS validated with DPDK 22.11.3.
 
 v3.2.1 - 17 Oct 2023
-- 
2.42.0

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


[ovs-dev] [PATCH v3] faq: Update matching DPDK releases for older branches.

2023-11-29 Thread Kevin Traynor
Branches 2.17/3.0/3.1/3.2 are using newer DPDK LTS releases.

Update the faq.

Signed-off-by: Kevin Traynor 
---
 Documentation/faq/releases.rst | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index e6bda14e7..362bf4ec7 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -216,8 +216,8 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.2
-3.0.x21.11.2
-3.1.x22.11.1
-3.2.x22.11.1
+2.17.x   21.11.5
+3.0.x21.11.5
+3.1.x22.11.3
+3.2.x22.11.3
  
 
-- 
2.42.0

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


[ovs-dev] [PATCH v3 branch-3.0] dpdk: Use DPDK 21.11.5 release for OVS 3.0.

2023-11-29 Thread Kevin Traynor
Update the CI and docs to use DPDK 21.11.5.

Signed-off-by: Kevin Traynor 
Acked-by: Simon Horman 
Reviewed-by: David Marchand 
Acked-by: Ilya Maximets 
---
 .ci/linux-build.sh   | 2 +-
 Documentation/faq/releases.rst   | 4 ++--
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 ++
 4 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index a0d780101..2df466b0c 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -229,5 +229,5 @@ fi
 if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
 if [ -z "$DPDK_VER" ]; then
-DPDK_VER="21.11.2"
+DPDK_VER="21.11.5"
 fi
 install_dpdk $DPDK_VER
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index b19d9f556..3825e2695 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -214,6 +214,6 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.2
-3.0.x21.11.2
+2.17.x   21.11.5
+3.0.x21.11.5
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index a284e6851..559e8eb1f 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 21.11.2
+- DPDK 21.11.5
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-21.11.2.tar.xz
-   $ tar xf dpdk-21.11.2.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.2
+   $ wget https://fast.dpdk.org/rel/dpdk-21.11.5.tar.xz
+   $ tar xf dpdk-21.11.5.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.5
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index 33b982886..631239bde 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 v3.0.6 - xx xxx 
 
+   - DPDK:
+ * OVS validated with DPDK 21.11.5.
 
 v3.0.5 - 17 Oct 2023
-- 
2.42.0

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


[ovs-dev] [PATCH v3 branch-3.1] dpdk: Use DPDK 22.11.3 release for OVS 3.1.

2023-11-29 Thread Kevin Traynor
Update the CI and docs to use DPDK 22.11.3.

Signed-off-by: Kevin Traynor 
Acked-by: Simon Horman 
Reviewed-by: David Marchand 
Acked-by: Ilya Maximets 
---
 .github/workflows/build-and-test.yml | 2 +-
 Documentation/faq/releases.rst   | 6 +++---
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 ++
 4 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index 80c449336..2a001f9ed 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -9,5 +9,5 @@ jobs:
   CC: gcc
   DPDK_GIT: https://dpdk.org/git/dpdk-stable
-  DPDK_VER: 22.11.1
+  DPDK_VER: 22.11.3
 name: dpdk gcc
 outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 9e1b42262..f956c7e10 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -215,7 +215,7 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.2
-3.0.x21.11.2
-3.1.x22.11.1
+2.17.x   21.11.5
+3.0.x21.11.5
+3.1.x22.11.3
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index 63a0ebb23..02eaf8b10 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 22.11.1
+- DPDK 22.11.3
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-22.11.1.tar.xz
-   $ tar xf dpdk-22.11.1.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.1
+   $ wget https://fast.dpdk.org/rel/dpdk-22.11.3.tar.xz
+   $ tar xf dpdk-22.11.3.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.3
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index 13229cb3a..b88a37b93 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 v3.1.4 - xx xxx 
 
+   - DPDK:
+ * OVS validated with DPDK 22.11.3.
 
 v3.1.3 - 17 Oct 2023
-- 
2.42.0

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


[ovs-dev] [PATCH v3 branch-2.17] dpdk: Use DPDK 21.11.5 release for OVS 2.17.

2023-11-29 Thread Kevin Traynor
Update the CI and docs to use DPDK 21.11.5.

Signed-off-by: Kevin Traynor 
Acked-by: Simon Horman 
Reviewed-by: David Marchand 
Acked-by: Ilya Maximets 
---
 .ci/linux-build.sh   | 2 +-
 Documentation/faq/releases.rst   | 2 +-
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 ++
 4 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index f5021e1a8..9464ea49c 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -221,5 +221,5 @@ fi
 if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
 if [ -z "$DPDK_VER" ]; then
-DPDK_VER="21.11.2"
+DPDK_VER="21.11.5"
 fi
 install_dpdk $DPDK_VER
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 49895c595..0e0c589a3 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -211,5 +211,5 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.2
+2.17.x   21.11.5
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index a284e6851..559e8eb1f 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 21.11.2
+- DPDK 21.11.5
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-21.11.2.tar.xz
-   $ tar xf dpdk-21.11.2.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.2
+   $ wget https://fast.dpdk.org/rel/dpdk-21.11.5.tar.xz
+   $ tar xf dpdk-21.11.5.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.5
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index 7d4a8c081..3e3e5a115 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 v2.17.9 - xx xxx 
 -
+   - DPDK:
+ * OVS validated with DPDK 21.11.5.
 
 v2.17.8 - 17 Oct 2023
-- 
2.42.0

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


Re: [ovs-dev] [PATCH v2 branch-3.2] dpdk: Use DPDK 22.11.3 release for OVS 3.2.

2023-11-29 Thread Kevin Traynor

On 29/11/2023 16:09, Ilya Maximets wrote:

On 11/29/23 17:04, Kevin Traynor wrote:

On 29/11/2023 15:35, Ilya Maximets wrote:

On 11/29/23 16:31, Kevin Traynor wrote:

On 29/11/2023 15:19, Ilya Maximets wrote:

On 11/28/23 15:13, Kevin Traynor wrote:

Update the CI and docs to use DPDK 22.11.3.

Signed-off-by: Kevin Traynor 
Acked-by: Simon Horman 
Reviewed-by: David Marchand 
---
.github/workflows/build-and-test.yml | 2 +-
Documentation/faq/releases.rst   | 8 
Documentation/intro/install/dpdk.rst | 8 
NEWS | 2 ++
4 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index bc5494e86..fd911c110 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -9,5 +9,5 @@ jobs:
  CC: gcc
  DPDK_GIT: https://dpdk.org/git/dpdk-stable
-  DPDK_VER: 22.11.1
+  DPDK_VER: 22.11.3
name: dpdk gcc
outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index e6bda14e7..362bf4ec7 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -216,8 +216,8 @@ Q: What DPDK version does each Open vSwitch release work 
with?
2.15.x   20.11.6
2.16.x   20.11.6
-2.17.x   21.11.2
-3.0.x21.11.2
-3.1.x22.11.1
-3.2.x22.11.1
+2.17.x   21.11.5
+3.0.x21.11.5
+3.1.x22.11.3
+3.2.x22.11.3
 

diff --git a/Documentation/intro/install/dpdk.rst b/Documentation/intro/install/dpdk.rst

index 63a0ebb23..02eaf8b10 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
vSwitch with DPDK will require the following:

-- DPDK 22.11.1

+- DPDK 22.11.3

- A `DPDK supported NIC`_

@@ -74,7 +74,7 @@ Install DPDK

   $ cd /usr/src/

-   $ wget https://fast.dpdk.org/rel/dpdk-22.11.1.tar.xz
-   $ tar xf dpdk-22.11.1.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.1
+   $ wget https://fast.dpdk.org/rel/dpdk-22.11.3.tar.xz
+   $ tar xf dpdk-22.11.3.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.3
   $ cd $DPDK_DIR

diff --git a/NEWS b/NEWS

index eb7a9b1ba..6e1f175c5 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
v3.2.2 - xx xxx 

+   - DPDK:
+ * OVS validated with DPDK 22.11.3


Ditto.

And this patch will need to be forward-ported to the master
branch as well, dropping the NEWS part and the 'OVS 3.2' from
the subject line.  A separate patch would work too.



I don't think there's value to move the master branch to 22.11.3 now
that DPDK 23.11 is released and it is the focus for updating the master
branch. I had been anticipating it, which is why i didn't include a patch.

If there is some issue or delay with integrating DPDK 23.11, then we
could update it to 22.11.3.


We still need to update the documentation that lists versions
for older OVS releases.  And that is not really part of the
bringing the new major version of DPDK in.  That's why I thought
it's just easier to port this patch.



ah ok, good point, I forgot about the faq.

I would prefer to just update the faq for older release and move
directly to 23.11, as it would save time doing some testing for an
update that could be replaced in a week etc. but if there's going to be
a longer delay, then it might be worth doing.


I'm not sure what is the current status of 23.11, but if we can get
it shortly, then fine.

It's just a bit weird to have branches not in sync for an extended
period of time.



Agreed.

I'll send faq update for master as part of a v3, as it makes sense these 
patches are bundled together. Other patches are unchanged except added a 
'.' in NEWS.


thanks,
Kevin.



I'll discuss with David regarding 23.11 timeline and send a patch for
master branch based on this.


OK.






Acked-by: Ilya Maximets 











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


Re: [ovs-dev] [PATCH v2 branch-3.2] dpdk: Use DPDK 22.11.3 release for OVS 3.2.

2023-11-29 Thread Kevin Traynor

On 29/11/2023 15:35, Ilya Maximets wrote:

On 11/29/23 16:31, Kevin Traynor wrote:

On 29/11/2023 15:19, Ilya Maximets wrote:

On 11/28/23 15:13, Kevin Traynor wrote:

Update the CI and docs to use DPDK 22.11.3.

Signed-off-by: Kevin Traynor 
Acked-by: Simon Horman 
Reviewed-by: David Marchand 
---
   .github/workflows/build-and-test.yml | 2 +-
   Documentation/faq/releases.rst   | 8 
   Documentation/intro/install/dpdk.rst | 8 
   NEWS | 2 ++
   4 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index bc5494e86..fd911c110 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -9,5 +9,5 @@ jobs:
 CC: gcc
 DPDK_GIT: https://dpdk.org/git/dpdk-stable
-  DPDK_VER: 22.11.1
+  DPDK_VER: 22.11.3
   name: dpdk gcc
   outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index e6bda14e7..362bf4ec7 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -216,8 +216,8 @@ Q: What DPDK version does each Open vSwitch release work 
with?
   2.15.x   20.11.6
   2.16.x   20.11.6
-2.17.x   21.11.2
-3.0.x21.11.2
-3.1.x22.11.1
-3.2.x22.11.1
+2.17.x   21.11.5
+3.0.x21.11.5
+3.1.x22.11.3
+3.2.x22.11.3
    
   
diff --git a/Documentation/intro/install/dpdk.rst b/Documentation/intro/install/dpdk.rst

index 63a0ebb23..02eaf8b10 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
   vSwitch with DPDK will require the following:
   
-- DPDK 22.11.1

+- DPDK 22.11.3
   
   - A `DPDK supported NIC`_

@@ -74,7 +74,7 @@ Install DPDK
   
  $ cd /usr/src/

-   $ wget https://fast.dpdk.org/rel/dpdk-22.11.1.tar.xz
-   $ tar xf dpdk-22.11.1.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.1
+   $ wget https://fast.dpdk.org/rel/dpdk-22.11.3.tar.xz
+   $ tar xf dpdk-22.11.3.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.3
  $ cd $DPDK_DIR
   
diff --git a/NEWS b/NEWS

index eb7a9b1ba..6e1f175c5 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
   v3.2.2 - xx xxx 
   
+   - DPDK:
+ * OVS validated with DPDK 22.11.3


Ditto.

And this patch will need to be forward-ported to the master
branch as well, dropping the NEWS part and the 'OVS 3.2' from
the subject line.  A separate patch would work too.



I don't think there's value to move the master branch to 22.11.3 now
that DPDK 23.11 is released and it is the focus for updating the master
branch. I had been anticipating it, which is why i didn't include a patch.

If there is some issue or delay with integrating DPDK 23.11, then we
could update it to 22.11.3.


We still need to update the documentation that lists versions
for older OVS releases.  And that is not really part of the
bringing the new major version of DPDK in.  That's why I thought
it's just easier to port this patch.



ah ok, good point, I forgot about the faq.

I would prefer to just update the faq for older release and move 
directly to 23.11, as it would save time doing some testing for an 
update that could be replaced in a week etc. but if there's going to be 
a longer delay, then it might be worth doing.


I'll discuss with David regarding 23.11 timeline and send a patch for 
master branch based on this.





Acked-by: Ilya Maximets 







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


Re: [ovs-dev] [PATCH v2 branch-3.2] dpdk: Use DPDK 22.11.3 release for OVS 3.2.

2023-11-29 Thread Kevin Traynor

On 29/11/2023 15:19, Ilya Maximets wrote:

On 11/28/23 15:13, Kevin Traynor wrote:

Update the CI and docs to use DPDK 22.11.3.

Signed-off-by: Kevin Traynor 
Acked-by: Simon Horman 
Reviewed-by: David Marchand 
---
  .github/workflows/build-and-test.yml | 2 +-
  Documentation/faq/releases.rst   | 8 
  Documentation/intro/install/dpdk.rst | 8 
  NEWS | 2 ++
  4 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index bc5494e86..fd911c110 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -9,5 +9,5 @@ jobs:
CC: gcc
DPDK_GIT: https://dpdk.org/git/dpdk-stable
-  DPDK_VER: 22.11.1
+  DPDK_VER: 22.11.3
  name: dpdk gcc
  outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index e6bda14e7..362bf4ec7 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -216,8 +216,8 @@ Q: What DPDK version does each Open vSwitch release work 
with?
  2.15.x   20.11.6
  2.16.x   20.11.6
-2.17.x   21.11.2
-3.0.x21.11.2
-3.1.x22.11.1
-3.2.x22.11.1
+2.17.x   21.11.5
+3.0.x21.11.5
+3.1.x22.11.3
+3.2.x22.11.3
   
  
diff --git a/Documentation/intro/install/dpdk.rst b/Documentation/intro/install/dpdk.rst

index 63a0ebb23..02eaf8b10 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
  vSwitch with DPDK will require the following:
  
-- DPDK 22.11.1

+- DPDK 22.11.3
  
  - A `DPDK supported NIC`_

@@ -74,7 +74,7 @@ Install DPDK
  
 $ cd /usr/src/

-   $ wget https://fast.dpdk.org/rel/dpdk-22.11.1.tar.xz
-   $ tar xf dpdk-22.11.1.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.1
+   $ wget https://fast.dpdk.org/rel/dpdk-22.11.3.tar.xz
+   $ tar xf dpdk-22.11.3.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.3
 $ cd $DPDK_DIR
  
diff --git a/NEWS b/NEWS

index eb7a9b1ba..6e1f175c5 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
  v3.2.2 - xx xxx 
  
+   - DPDK:
+ * OVS validated with DPDK 22.11.3


Ditto.

And this patch will need to be forward-ported to the master
branch as well, dropping the NEWS part and the 'OVS 3.2' from
the subject line.  A separate patch would work too.



I don't think there's value to move the master branch to 22.11.3 now 
that DPDK 23.11 is released and it is the focus for updating the master 
branch. I had been anticipating it, which is why i didn't include a patch.


If there is some issue or delay with integrating DPDK 23.11, then we 
could update it to 22.11.3.



Acked-by: Ilya Maximets 



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


Re: [ovs-dev] [PATCH branch-2.17] dpdk: Use DPDK 21.11.5 release for OVS 2.17.

2023-11-28 Thread Kevin Traynor

On 27/11/2023 11:34, Ilya Maximets wrote:

On 11/24/23 11:32, David Marchand wrote:

On Thu, Nov 23, 2023 at 12:50 PM Kevin Traynor  wrote:


Update the CI and docs to use DPDK 21.11.5.

Signed-off-by: Kevin Traynor 
---
  .ci/linux-build.sh   | 2 +-
  Documentation/faq/releases.rst   | 2 +-
  Documentation/intro/install/dpdk.rst | 8 
  NEWS | 3 +++
  4 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index f5021e1a8..9464ea49c 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -221,5 +221,5 @@ fi
  if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
  if [ -z "$DPDK_VER" ]; then
-DPDK_VER="21.11.2"
+DPDK_VER="21.11.5"
  fi
  install_dpdk $DPDK_VER
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 49895c595..0e0c589a3 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -211,5 +211,5 @@ Q: What DPDK version does each Open vSwitch release work 
with?
  2.15.x   20.11.6
  2.16.x   20.11.6
-2.17.x   21.11.2
+2.17.x   21.11.5
   

diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index a284e6851..559e8eb1f 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
  vSwitch with DPDK will require the following:

-- DPDK 21.11.2
+- DPDK 21.11.5

  - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK

 $ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-21.11.2.tar.xz
-   $ tar xf dpdk-21.11.2.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.2
+   $ wget https://fast.dpdk.org/rel/dpdk-21.11.5.tar.xz
+   $ tar xf dpdk-21.11.5.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.5
 $ cd $DPDK_DIR

diff --git a/NEWS b/NEWS
index 7d4a8c081..642beb45b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,7 @@
  v2.17.9 - xx xxx 
  -
+   - Bug fixes


I see in the history that the "Bug fixes" characterization is usually
added when releasing a version.
So I am not sure it should be added in this patch.




Good point. I just added it as i was updating the section, but yes it is 
unrelated and maybe it will interfere with some release script.



It should not.  Kind of unrelated change for this patch.
Kevin, could you re-post removing these extra lines, please?



Ack - I just sent a v2.

thanks,
Kevin.


Best regards, Ilya Maximets.




+   - DPDK:
+ * OVS validated with DPDK 21.11.5

  v2.17.8 - 17 Oct 2023


Otherwise, it lgtm.

Reviewed-by: David Marchand 







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


[ovs-dev] [PATCH v2 branch-3.2] dpdk: Use DPDK 22.11.3 release for OVS 3.2.

2023-11-28 Thread Kevin Traynor
Update the CI and docs to use DPDK 22.11.3.

Signed-off-by: Kevin Traynor 
Acked-by: Simon Horman 
Reviewed-by: David Marchand 
---
 .github/workflows/build-and-test.yml | 2 +-
 Documentation/faq/releases.rst   | 8 
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 ++
 4 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index bc5494e86..fd911c110 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -9,5 +9,5 @@ jobs:
   CC: gcc
   DPDK_GIT: https://dpdk.org/git/dpdk-stable
-  DPDK_VER: 22.11.1
+  DPDK_VER: 22.11.3
 name: dpdk gcc
 outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index e6bda14e7..362bf4ec7 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -216,8 +216,8 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.2
-3.0.x21.11.2
-3.1.x22.11.1
-3.2.x22.11.1
+2.17.x   21.11.5
+3.0.x21.11.5
+3.1.x22.11.3
+3.2.x22.11.3
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index 63a0ebb23..02eaf8b10 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 22.11.1
+- DPDK 22.11.3
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-22.11.1.tar.xz
-   $ tar xf dpdk-22.11.1.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.1
+   $ wget https://fast.dpdk.org/rel/dpdk-22.11.3.tar.xz
+   $ tar xf dpdk-22.11.3.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.3
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index eb7a9b1ba..6e1f175c5 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 v3.2.2 - xx xxx 
 
+   - DPDK:
+ * OVS validated with DPDK 22.11.3
 
 v3.2.1 - 17 Oct 2023
-- 
2.42.0

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


[ovs-dev] [PATCH v2 branch-3.1] dpdk: Use DPDK 22.11.3 release for OVS 3.1.

2023-11-28 Thread Kevin Traynor
Update the CI and docs to use DPDK 22.11.3.

Signed-off-by: Kevin Traynor 
Acked-by: Simon Horman 
Reviewed-by: David Marchand 
---
 .github/workflows/build-and-test.yml | 2 +-
 Documentation/faq/releases.rst   | 6 +++---
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 ++
 4 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index 80c449336..2a001f9ed 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -9,5 +9,5 @@ jobs:
   CC: gcc
   DPDK_GIT: https://dpdk.org/git/dpdk-stable
-  DPDK_VER: 22.11.1
+  DPDK_VER: 22.11.3
 name: dpdk gcc
 outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 9e1b42262..f956c7e10 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -215,7 +215,7 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.2
-3.0.x21.11.2
-3.1.x22.11.1
+2.17.x   21.11.5
+3.0.x21.11.5
+3.1.x22.11.3
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index 63a0ebb23..02eaf8b10 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 22.11.1
+- DPDK 22.11.3
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-22.11.1.tar.xz
-   $ tar xf dpdk-22.11.1.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.1
+   $ wget https://fast.dpdk.org/rel/dpdk-22.11.3.tar.xz
+   $ tar xf dpdk-22.11.3.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.3
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index 13229cb3a..70d9f5ade 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 v3.1.4 - xx xxx 
 
+   - DPDK:
+ * OVS validated with DPDK 22.11.3
 
 v3.1.3 - 17 Oct 2023
-- 
2.42.0

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


[ovs-dev] [PATCH v2 branch-3.0] dpdk: Use DPDK 21.11.5 release for OVS 3.0.

2023-11-28 Thread Kevin Traynor
Update the CI and docs to use DPDK 21.11.5.

Signed-off-by: Kevin Traynor 
Acked-by: Simon Horman 
Reviewed-by: David Marchand 
---
 .ci/linux-build.sh   | 2 +-
 Documentation/faq/releases.rst   | 4 ++--
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 ++
 4 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index a0d780101..2df466b0c 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -229,5 +229,5 @@ fi
 if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
 if [ -z "$DPDK_VER" ]; then
-DPDK_VER="21.11.2"
+DPDK_VER="21.11.5"
 fi
 install_dpdk $DPDK_VER
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index b19d9f556..3825e2695 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -214,6 +214,6 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.2
-3.0.x21.11.2
+2.17.x   21.11.5
+3.0.x21.11.5
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index a284e6851..559e8eb1f 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 21.11.2
+- DPDK 21.11.5
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-21.11.2.tar.xz
-   $ tar xf dpdk-21.11.2.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.2
+   $ wget https://fast.dpdk.org/rel/dpdk-21.11.5.tar.xz
+   $ tar xf dpdk-21.11.5.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.5
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index 33b982886..23327927b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 v3.0.6 - xx xxx 
 
+   - DPDK:
+ * OVS validated with DPDK 21.11.5
 
 v3.0.5 - 17 Oct 2023
-- 
2.42.0

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


[ovs-dev] [PATCH v2 branch-2.17] dpdk: Use DPDK 21.11.5 release for OVS 2.17.

2023-11-28 Thread Kevin Traynor
Update the CI and docs to use DPDK 21.11.5.

Signed-off-by: Kevin Traynor 
Acked-by: Simon Horman 
Reviewed-by: David Marchand 
---
 .ci/linux-build.sh   | 2 +-
 Documentation/faq/releases.rst   | 2 +-
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 2 ++
 4 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index f5021e1a8..9464ea49c 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -221,5 +221,5 @@ fi
 if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
 if [ -z "$DPDK_VER" ]; then
-DPDK_VER="21.11.2"
+DPDK_VER="21.11.5"
 fi
 install_dpdk $DPDK_VER
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 49895c595..0e0c589a3 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -211,5 +211,5 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.2
+2.17.x   21.11.5
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index a284e6851..559e8eb1f 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 21.11.2
+- DPDK 21.11.5
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-21.11.2.tar.xz
-   $ tar xf dpdk-21.11.2.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.2
+   $ wget https://fast.dpdk.org/rel/dpdk-21.11.5.tar.xz
+   $ tar xf dpdk-21.11.5.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.5
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index 7d4a8c081..ceecc25da 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
 v2.17.9 - xx xxx 
 -
+   - DPDK:
+ * OVS validated with DPDK 21.11.5
 
 v2.17.8 - 17 Oct 2023
-- 
2.42.0

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


[ovs-dev] [PATCH branch-3.2] dpdk: Use DPDK 22.11.3 release for OVS 3.2.

2023-11-23 Thread Kevin Traynor
Update the CI and docs to use DPDK 22.11.3.

Signed-off-by: Kevin Traynor 
---
 .github/workflows/build-and-test.yml | 2 +-
 Documentation/faq/releases.rst   | 8 
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 3 +++
 4 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index bc5494e86..fd911c110 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -9,5 +9,5 @@ jobs:
   CC: gcc
   DPDK_GIT: https://dpdk.org/git/dpdk-stable
-  DPDK_VER: 22.11.1
+  DPDK_VER: 22.11.3
 name: dpdk gcc
 outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index e6bda14e7..362bf4ec7 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -216,8 +216,8 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.2
-3.0.x21.11.2
-3.1.x22.11.1
-3.2.x22.11.1
+2.17.x   21.11.5
+3.0.x21.11.5
+3.1.x22.11.3
+3.2.x22.11.3
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index 63a0ebb23..02eaf8b10 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 22.11.1
+- DPDK 22.11.3
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-22.11.1.tar.xz
-   $ tar xf dpdk-22.11.1.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.1
+   $ wget https://fast.dpdk.org/rel/dpdk-22.11.3.tar.xz
+   $ tar xf dpdk-22.11.3.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.3
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index eb7a9b1ba..bd5acb153 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,7 @@
 v3.2.2 - xx xxx 
 
+   - Bug fixes
+   - DPDK:
+ * OVS validated with DPDK 22.11.3
 
 v3.2.1 - 17 Oct 2023
-- 
2.41.0

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


[ovs-dev] [PATCH branch-3.1] dpdk: Use DPDK 22.11.3 release for OVS 3.1.

2023-11-23 Thread Kevin Traynor
Update the CI and docs to use DPDK 22.11.3.

Signed-off-by: Kevin Traynor 
---
 .github/workflows/build-and-test.yml | 2 +-
 Documentation/faq/releases.rst   | 6 +++---
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 3 +++
 4 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/build-and-test.yml 
b/.github/workflows/build-and-test.yml
index 80c449336..2a001f9ed 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -9,5 +9,5 @@ jobs:
   CC: gcc
   DPDK_GIT: https://dpdk.org/git/dpdk-stable
-  DPDK_VER: 22.11.1
+  DPDK_VER: 22.11.3
 name: dpdk gcc
 outputs:
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 9e1b42262..f956c7e10 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -215,7 +215,7 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.2
-3.0.x21.11.2
-3.1.x22.11.1
+2.17.x   21.11.5
+3.0.x21.11.5
+3.1.x22.11.3
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index 63a0ebb23..02eaf8b10 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 22.11.1
+- DPDK 22.11.3
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-22.11.1.tar.xz
-   $ tar xf dpdk-22.11.1.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.1
+   $ wget https://fast.dpdk.org/rel/dpdk-22.11.3.tar.xz
+   $ tar xf dpdk-22.11.3.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-22.11.3
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index 13229cb3a..b78da3f9d 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,7 @@
 v3.1.4 - xx xxx 
 
+   - Bug fixes
+   - DPDK:
+ * OVS validated with DPDK 22.11.3
 
 v3.1.3 - 17 Oct 2023
-- 
2.41.0

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


[ovs-dev] [PATCH branch-3.0] dpdk: Use DPDK 21.11.5 release for OVS 3.0.

2023-11-23 Thread Kevin Traynor
Update the CI and docs to use DPDK 21.11.5.

Signed-off-by: Kevin Traynor 
---
 .ci/linux-build.sh   | 2 +-
 Documentation/faq/releases.rst   | 4 ++--
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 3 +++
 4 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index a0d780101..2df466b0c 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -229,5 +229,5 @@ fi
 if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
 if [ -z "$DPDK_VER" ]; then
-DPDK_VER="21.11.2"
+DPDK_VER="21.11.5"
 fi
 install_dpdk $DPDK_VER
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index b19d9f556..3825e2695 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -214,6 +214,6 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.2
-3.0.x21.11.2
+2.17.x   21.11.5
+3.0.x21.11.5
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index a284e6851..559e8eb1f 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 21.11.2
+- DPDK 21.11.5
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-21.11.2.tar.xz
-   $ tar xf dpdk-21.11.2.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.2
+   $ wget https://fast.dpdk.org/rel/dpdk-21.11.5.tar.xz
+   $ tar xf dpdk-21.11.5.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.5
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index 33b982886..d59645b04 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,7 @@
 v3.0.6 - xx xxx 
 
+   - Bug fixes
+   - DPDK:
+ * OVS validated with DPDK 21.11.5
 
 v3.0.5 - 17 Oct 2023
-- 
2.41.0

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


[ovs-dev] [PATCH branch-2.17] dpdk: Use DPDK 21.11.5 release for OVS 2.17.

2023-11-23 Thread Kevin Traynor
Update the CI and docs to use DPDK 21.11.5.

Signed-off-by: Kevin Traynor 
---
 .ci/linux-build.sh   | 2 +-
 Documentation/faq/releases.rst   | 2 +-
 Documentation/intro/install/dpdk.rst | 8 
 NEWS | 3 +++
 4 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index f5021e1a8..9464ea49c 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -221,5 +221,5 @@ fi
 if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
 if [ -z "$DPDK_VER" ]; then
-DPDK_VER="21.11.2"
+DPDK_VER="21.11.5"
 fi
 install_dpdk $DPDK_VER
diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst
index 49895c595..0e0c589a3 100644
--- a/Documentation/faq/releases.rst
+++ b/Documentation/faq/releases.rst
@@ -211,5 +211,5 @@ Q: What DPDK version does each Open vSwitch release work 
with?
 2.15.x   20.11.6
 2.16.x   20.11.6
-2.17.x   21.11.2
+2.17.x   21.11.5
  
 
diff --git a/Documentation/intro/install/dpdk.rst 
b/Documentation/intro/install/dpdk.rst
index a284e6851..559e8eb1f 100644
--- a/Documentation/intro/install/dpdk.rst
+++ b/Documentation/intro/install/dpdk.rst
@@ -43,5 +43,5 @@ In addition to the requirements described in :doc:`general`, 
building Open
 vSwitch with DPDK will require the following:
 
-- DPDK 21.11.2
+- DPDK 21.11.5
 
 - A `DPDK supported NIC`_
@@ -74,7 +74,7 @@ Install DPDK
 
$ cd /usr/src/
-   $ wget https://fast.dpdk.org/rel/dpdk-21.11.2.tar.xz
-   $ tar xf dpdk-21.11.2.tar.xz
-   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.2
+   $ wget https://fast.dpdk.org/rel/dpdk-21.11.5.tar.xz
+   $ tar xf dpdk-21.11.5.tar.xz
+   $ export DPDK_DIR=/usr/src/dpdk-stable-21.11.5
$ cd $DPDK_DIR
 
diff --git a/NEWS b/NEWS
index 7d4a8c081..642beb45b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,7 @@
 v2.17.9 - xx xxx 
 -
+   - Bug fixes
+   - DPDK:
+ * OVS validated with DPDK 21.11.5
 
 v2.17.8 - 17 Oct 2023
-- 
2.41.0

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


Re: [ovs-dev] [PATCH v8 0/3] netdev: Sync and clean {get, set}_config() callbacks.

2023-11-14 Thread Kevin Traynor

On 13/11/2023 08:53, jm...@redhat.com wrote:

From: Jakob Meng 

This patch series incorporates Ilya's comments for v7 and has been rebased to 
master:
* fixed afxdp status descriptions in vswitchd/vswitch.xml
* be consistent with rx/Rx/RX/tx/Tx/TX in vswitchd/vswitch.xml

Jakob Meng (3):
   netdev-dummy: Sync and clean {get,set}_config() callbacks.
   netdev-afxdp: Sync and clean {get,set}_config() callbacks.
   netdev-dpdk: Sync and clean {get,set}_config() callbacks.

  Documentation/intro/install/afxdp.rst |  12 +--
  Documentation/topics/dpdk/phy.rst |   4 +-
  NEWS  |   7 ++
  lib/netdev-afxdp.c|  21 -
  lib/netdev-afxdp.h|   1 +
  lib/netdev-dpdk.c | 113 ++
  lib/netdev-dummy.c|  19 -
  lib/netdev-linux-private.h|   1 +
  lib/netdev-linux.c|   4 +-
  tests/pmd.at  |  26 +++---
  tests/system-dpdk.at  |  64 +--
  vswitchd/vswitch.xml  |  25 +-
  12 files changed, 209 insertions(+), 88 deletions(-)

--
2.39.2



Ilya's documentation comments from v7 were resolved in v8.

Added Robin's RvB from earlier version to relevant patches.

Applied. Thanks Jakob, Robin, Ilya and others who had comments on early 
versions.


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


Re: [ovs-dev] [PATCH] release-process: Update LTS designation schedule example.

2023-11-03 Thread Kevin Traynor

On 03/11/2023 19:01, Ilya Maximets wrote:

It is an example and the dates are not set in stone, so updating
the table it is not very important.  But it's nice to see currently
supported releases there as well as the near future plans.

Signed-off-by: Ilya Maximets 
---
  Documentation/internals/release-process.rst | 16 ++--
  1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/Documentation/internals/release-process.rst 
b/Documentation/internals/release-process.rst
index 0eb8e192a..d939c2d3a 100644
--- a/Documentation/internals/release-process.rst
+++ b/Documentation/internals/release-process.rst
@@ -96,18 +96,22 @@ LTS designation schedule example (depends on current state 
of development):
  +-+--+--+
  | Version | Release Date | Actions  |
  +-+--+--+
-| 2.14| Aug 2020 | 2.14 - new latest stable, 2.13 stable ⟶ new LTS  |
-+-+--+--+
-| 2.15| Feb 2021 | 2.12 - new latest stable, 2.5  LTS ⟶ EOL |
-+-+--+--+
-| 2.16| Aug 2021 | 2.16 - new latest stable |
-+-+--+--+
  | 2.17| Feb 2022 | 2.17 - new latest stable |
  +-+--+--+
  | 3.0 | Aug 2022 | 3.0  - new latest stable, 2.17 stable ⟶ new LTS  |
  +-+--+--+
  | 3.1 | Feb 2023 | 3.1  - new latest stable, 2.13 LTS ⟶ EOL |
  +-+--+--+
+| 3.2 | Aug 2023 | 3.2  - new latest stable |
++-+--+--+
+| 3.3 | Feb 2024 | 3.3  - new latest stable |
++-+--+--+
+| 3.4 | Aug 2024 | 3.4  - new latest stable, 3.3  stable ⟶ new LTS  |
++-+--+--+
+| 3.5 | Feb 2025 | 3.5  - new latest stable, 2.17 LTS ⟶ EOL |
++-+--+--+
+| 3.6 | Aug 2025 | 3.6  - new latest stable |
++-+--+--+
  
  While branches other than LTS and the latest release are not formally

  maintained, the OVS project usually provides stable releases for these 
branches


Acked-by: Kevin Traynor 

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


Re: [ovs-dev] [PATCH v7 3/3] netdev-dpdk: Sync and clean {get, set}_config() callbacks.

2023-11-02 Thread Kevin Traynor

On 30/10/2023 09:50, jm...@redhat.com wrote:

From: Jakob Meng

For better usability, the function pairs get_config() and
set_config() for netdevs should be symmetric: Options which are
accepted by set_config() should be returned by get_config() and the
latter should output valid options for set_config() only.

This patch moves key-value pairs which are no valid options from
get_config() to the get_status() callback. For example, get_config()
in lib/netdev-dpdk.c returned {configured,requested}_{rx,tx}_queues
previously. For requested rx queues the proper option name is n_rxq,
so requested_rx_queues has been renamed respectively. Tx queues
cannot be changed by the user, hence requested_tx_queues has been
dropped. Both configured_{rx,tx}_queues will be returned as
n_{r,t}xq in the get_status() callback.

The netdev dpdk classes no longer share a common get_config() callback,
instead both the dpdk_class and the dpdk_vhost_client_class define
their own callbacks. The get_config() callback for dpdk_vhost_class has
been dropped because it does not have a set_config() callback.

The documentation in vswitchd/vswitch.xml for status columns as well
as tests have been updated accordingly.

Reported-at:https://bugzilla.redhat.com/1949855
Signed-off-by: Jakob Meng
---
  Documentation/topics/dpdk/phy.rst |   4 +-
  NEWS  |   7 ++
  lib/netdev-dpdk.c | 113 +-
  tests/system-dpdk.at  |  64 ++---
  vswitchd/vswitch.xml  |  14 +++-
  5 files changed, 143 insertions(+), 59 deletions(-)


Acked-by: Kevin Traynor 

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


Re: [ovs-dev] [PATCH v7 2/3] netdev-afxdp: Sync and clean {get, set}_config() callbacks.

2023-11-02 Thread Kevin Traynor

On 30/10/2023 09:49, jm...@redhat.com wrote:

From: Jakob Meng

For better usability, the function pairs get_config() and
set_config() for netdevs should be symmetric: Options which are
accepted by set_config() should be returned by get_config() and the
latter should output valid options for set_config() only. This patch
also moves key-value pairs which are no valid options from get_config()
to the get_status() callback.

The documentation in vswitchd/vswitch.xml for status columns has been
updated accordingly.

Reported-at:https://bugzilla.redhat.com/1949855
Signed-off-by: Jakob Meng
---
  Documentation/intro/install/afxdp.rst | 12 
  lib/netdev-afxdp.c| 21 +++--
  lib/netdev-afxdp.h|  1 +
  lib/netdev-linux-private.h|  1 +
  lib/netdev-linux.c|  4 ++--
  vswitchd/vswitch.xml  | 11 +++
  6 files changed, 38 insertions(+), 12 deletions(-)


This needs a small rebase for vswitch.xml due to vhost additions in 
other patch series, but no need to send a new version for that, it can 
handled when pushing.


Acked-by: Kevin Traynor 

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


  1   2   3   4   5   6   7   8   9   10   >