Re: [PATCH v3 2/5] buildtools: script to generate cmdline boilerplate

2023-10-13 Thread Robin Jarry
Bruce Richardson, Oct 11, 2023 at 15:33: Provide a "dpdk-cmdline-gen.py" script for application developers to quickly generate the boilerplate code necessary for using the cmdline library. Example of use: The script takes an input file with a list of commands the user wants in the app, where the

Re: [PATCH v2 1/1] usertools/rss: add CNXK RSS key

2023-10-17 Thread Robin Jarry
or the hex value of the key (well-known names: "intel", "mlx", default: "intel"). """, -- 2.25.1 -- Robin Jarry Principal Software Engineer Red Hat, Telco/NFV

Re: [EXT] Re: [PATCH v2 1/1] usertools/rss: add CNXK RSS key

2023-10-18 Thread Robin Jarry
Thomas Monjalon, Oct 18, 2023 at 11:14: 18/10/2023 09:26, Sunil Kumar Kori: > From: Robin Jarry > > From: Sunil Kumar Kori > > > > > > This patch adds RSS key for CNXK platforms. CNXK platform uses > > > 48 bytes long key for hash calculations. > > &g

[PATCH 1/2] usertools/rss: add driver abstractions

2023-10-23 Thread Robin Jarry
that abstraction for all three known keys. Signed-off-by: Robin Jarry --- usertools/dpdk-rss-flows.py | 144 ++-- 1 file changed, 89 insertions(+), 55 deletions(-) diff --git a/usertools/dpdk-rss-flows.py b/usertools/dpdk-rss-flows.py index 73821eb47125

[PATCH 2/2] usertools/rss: add --info flag

2023-10-23 Thread Robin Jarry
2.2.0.12 1.0.0.02.2.0.20 1.0.0.02.2.0.41 1.0.0.02.2.0.63 The flag is only available with the default text output. Signed-off-by: Robin Jarry --- usertools/dpdk-rss-flows.py | 16 1 file changed, 16 insertions(+) diff --git a/usertools/dpdk-rss

Re: [EXT] Re: [PATCH v2 1/1] usertools/rss: add CNXK RSS key

2023-10-25 Thread Robin Jarry
Sunil Kumar Kori, Oct 18, 2023 at 12:01: > I could have a shot at it since it may involve some refactoring. > Also, existing supported drivers will benefit from it. This does not > seem like it is directly related to CNXK. Sure, Thanks. Hi Sunil, I have sent a patch that should allow you to

Re: [PATCH v5 2/9] buildtools: script to generate cmdline boilerplate

2023-10-25 Thread Robin Jarry
, +default="-", +help="Output header filename [default to stdout]", +) +ap.add_argument( +"--context-name", +default="ctx", +help="Name given to the cmdline context variable in the output header [default=ctx

[PATCH] usertools/pmdinfo: remove dependency to ldd

2022-10-13 Thread Robin Jarry
ynamically executable ELF programs to avoid obscure and confusing errors. Reported-by: Olivier Matz Signed-off-by: Robin Jarry --- doc/guides/tools/pmdinfo.rst | 4 ++-- usertools/dpdk-pmdinfo.py| 34 +++--- 2 files changed, 25 insertions(+), 13 deletions(-) diff -

rte-flow: unmatched ingress traffic default action

2022-10-17 Thread Robin Jarry
n their own implementation, it would be much appreciated. Thanks in advance. -- Robin Jarry Principal Software Engineer Red Hat

Re: rte-flow: unmatched ingress traffic default action

2022-10-18 Thread Robin Jarry
Hi Ori, Ori Kam, Oct 18, 2022 at 09:41: > > Should I read "general expectation" as a simple recommendation or is > > it a requirement from the RTE flow API? > > I think the wording in the doc should change since it is not clear. So > let me clarify it. > > The idea of isolated mode is that the DPD

Re: rte-flow: unmatched ingress traffic default action

2022-10-18 Thread Robin Jarry
Ori Kam, Oct 18, 2022 at 11:16: > > This is also in regular (non-isolated) mode? > > No, in non-isolated mode PMD will insert default rules based on the > configuration, for example matching on the mac/vlan And eventually redirecting packets in queues following the RSS configuration? Do you think

Re: rte-flow: unmatched ingress traffic default action

2022-10-18 Thread Robin Jarry
Ori Kam, Oct 18, 2022 at 12:11: > > Do you think this is something that can be relied upon across > > different PMDs/NICs? > > Unless I'm missing something, yes this is the basis of DPDK. (I assume > you are talking about non-isolated mode) Yes I am. Thanks a lot for the precisions.

Re: [PATCH v5 0/4] lcore telemetry improvements

2023-01-18 Thread Robin Jarry
Robin Jarry, Dec 16, 2022 at 11:21: > This is a follow up on previous work by Kevin Laatz: > > http://patches.dpdk.org/project/dpdk/list/?series=24658&state=* > > This series is aimed at allowing DPDK applications to expose their CPU > usage stats in the DPDK telemetry under

Re: [PATCH v5 1/4] eal: add lcore info in telemetry

2023-01-18 Thread Robin Jarry
Kevin Laatz, Jan 18, 2023 at 10:42: > Hi Robin, > > Thanks for taking the time to work on this. It is a good implementation > for debug use-cases. > > I have 2 suggestions which would improve the usability of the data: > 1. Could we make the lcore_id paramater on /eal/lcore/info optional? > This

Re: [PATCH v5 1/4] eal: add lcore info in telemetry

2023-01-18 Thread Robin Jarry
Kevin Laatz, Jan 18, 2023 at 17:01: > The additional endpoint(s) (I like Morten's idea of a single additional > endpoint where you can specify the metrics to include via parameters) > shouldn't affect the format of other parts of this patchset, but we > would gain the benefits of the additional

Re: [PATCH v5 2/4] eal: allow applications to report their cpu usage

2023-01-18 Thread Robin Jarry
Konstantin Ananyev, Jan 04, 2023 at 11:53: > Probably we can even print warning or so if some-one tries to overwrite > it once again. I'm not sure that is necessary. If an application wants to reset the callback to NULL at any point in time, I don't see why DPDK should tell them it is a bad thing.

[PATCH v6 0/5] lcore telemetry improvements

2023-01-19 Thread Robin Jarry
ow a JSON list of CPU ids. - Applications must now report their raw CPU cycles counts. The busyness ratio and rate of change is left to external monitoring tools. - Renamed show lcores -> dump_lcores in testpmd. Robin Jarry (5): eal: add lcore info in telemetry eal: allow applications to

[PATCH v6 1/5] eal: add lcore info in telemetry

2023-01-19 Thread Robin Jarry
"cpuset": [ 3 ] } } Signed-off-by: Robin Jarry Acked-by: Morten Brørup --- Notes: v5 -> v6: No change lib/eal/common/eal_common_lcore.c | 96 +++ 1 file changed, 96 insertions(+) diff --git a/lib/eal/common/eal_comm

[PATCH v6 2/5] eal: allow applications to report their cpu usage

2023-01-19 Thread Robin Jarry
work. Signed-off-by: Robin Jarry Acked-by: Morten Brørup --- Notes: v5 -> v6: Added/rephrased some inline comments. lib/eal/common/eal_common_lcore.c | 45 --- lib/eal/include/rte_lcore.h | 35 lib/eal/version.map |

[PATCH v6 5/5] telemetry: add /eal/lcore/usage endpoint

2023-01-19 Thread Robin Jarry
ot;total_cycles": [ 23846845590, 23900558914 ], "busy_cycles": [ 21043446682, 21448837316 ] } } Cc: Kevin Laatz Cc: Morten Brørup Signed-off-by: Robin Jarry --- Notes: v6: new patch lib/eal/common/eal_common_lcore.c | 64 ++

[PATCH v6 3/5] testpmd: add dump_lcores command

2023-01-19 Thread Robin Jarry
Add a simple command that calls rte_lcore_dump(). Signed-off-by: Robin Jarry Acked-by: Morten Brørup Acked-by: Konstantin Ananyev --- Notes: v5 -> v6: No change app/test-pmd/cmdline.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdlin

[PATCH v6 4/5] testpmd: report lcore usage

2023-01-19 Thread Robin Jarry
3140 lcore 5, socket 0, role RTE, cpuset 5, busy cycles 1255661768/9218141538 --> /eal/lcore/info,4 { "/eal/lcore/info": { "lcore_id": 4, "socket": 0, "role": "RTE", "cpuset": [ 4 ], "busy_cyc

Re: [PATCH v6 5/5] telemetry: add /eal/lcore/usage endpoint

2023-01-19 Thread Robin Jarry
Morten Brørup, Jan 19, 2023 at 17:21: > In the future, the rte_lcore_usage structure may contain more fields, > and some may not be related to the TSC. So consider removing "cycles" > from the description of the telemetry path. > > Don't waste time changing it unless you are providing a new patch >

Re: [PATCH 0/6] Testpmd code cleanup

2023-01-25 Thread Robin Jarry
duplicated code. Warning: this is only compile tested. 1: https://patchwork.dpdk.org/project/dpdk/patch/20230119150656.418404-5-rja...@redhat.com/ Hi David, The code looks good to me. I have made some basic testing, it seems not to break obvious things. Reviewed-by: Robin Jarry

[PATCH v7 2/5] eal: report applications lcore usage

2023-01-26 Thread Robin Jarry
work. Signed-off-by: Robin Jarry Acked-by: Morten Brørup Reviewed-by: Kevin Laatz --- Notes: v6 -> v7: * Use asprintf to format busy/total cycles in lcore_dump_cb * Style fixes * Moved rte_lcore_register_usage_cb in a 23.03 block of eal/version.map * Added release no

[PATCH v7 0/5] lcore telemetry improvements

2023-01-26 Thread Robin Jarry
- Added/rephrased some inline comments to address reviews. - Added a new commit that adds the /eal/lcore/usage endpoint as suggested by Kevin and Morten. Robin Jarry (5): eal: add lcore info in telemetry eal: report applications lcore usage app/testpmd: add dump command for lcores app

[PATCH v7 1/5] eal: add lcore info in telemetry

2023-01-26 Thread Robin Jarry
"cpuset": [ 3 ] } } Signed-off-by: Robin Jarry Acked-by: Morten Brørup Reviewed-by: Kevin Laatz --- Notes: v6 -> v7: * Moved lcore role enum to name conversion in a function for reuse * Style fixes lib/eal/common/eal_common_lcore.c | 119 +++

[PATCH v7 3/5] app/testpmd: add dump command for lcores

2023-01-26 Thread Robin Jarry
Add a simple command that calls rte_lcore_dump(). Signed-off-by: Robin Jarry Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Reviewed-by: Kevin Laatz --- Notes: v6 -> v7: Added doc entry app/test-pmd/cmdline.c | 3 +++ doc/guides/testpmd_app

[PATCH v7 5/5] eal: add lcore usage telemetry endpoint

2023-01-26 Thread Robin Jarry
ot;total_cycles": [ 23846845590, 23900558914 ], "busy_cycles": [ 21043446682, 21448837316 ] } } Cc: Morten Brørup Signed-off-by: Robin Jarry Reviewed-by: Kevin Laatz --- Notes: v7: * Indentation fix * Added rele

[PATCH v7 4/5] app/testpmd: report lcore usage

2023-01-26 Thread Robin Jarry
3140 lcore 5, socket 0, role RTE, cpuset 5, busy cycles 1255661768/9218141538 --> /eal/lcore/info,4 { "/eal/lcore/info": { "lcore_id": 4, "socket": 0, "role": "RTE", "cpuset": [ 4 ], "busy_cyc

Re: [PATCH v7 1/5] eal: add lcore info in telemetry

2023-01-31 Thread Robin Jarry
Hi Stephen, Stephen Hemminger, Jan 26, 2023 at 18:03: Alternatively, you could should check for lcore out of range. Simplified as: struct lcore_telemetry_info info = { .d = d }; char *endptr; // init not really needed if (params == NULL) // length check can be handled

[PATCH v8 0/5] lcore telemetry improvements

2023-02-02 Thread Robin Jarry
es - Use asprintf to format busy/total cycles in lcore_dump_cb Robin Jarry (5): eal: add lcore info in telemetry eal: report applications lcore usage app/testpmd: add dump command for lcores app/testpmd: report lcore usage eal: add lcore usage telemetry endpoint app/test-pmd/

[PATCH v8 2/5] eal: report applications lcore usage

2023-02-02 Thread Robin Jarry
work. Signed-off-by: Robin Jarry Acked-by: Morten Brørup Reviewed-by: Kevin Laatz --- Notes: v7 -> v8: no change doc/guides/rel_notes/release_23_03.rst | 7 lib/eal/common/eal_common_lcore.c | 48 -- lib/eal/include/rte_lcore.h|

[PATCH v8 1/5] eal: add lcore info in telemetry

2023-02-02 Thread Robin Jarry
"cpuset": [ 3 ] } } Signed-off-by: Robin Jarry Acked-by: Morten Brørup Reviewed-by: Kevin Laatz --- Notes: v7 -> v8: made lcore_id integer parsing more robust lib/eal/common/eal_common_lcore.c | 123 +- 1 file change

[PATCH v8 3/5] app/testpmd: add dump command for lcores

2023-02-02 Thread Robin Jarry
Add a simple command that calls rte_lcore_dump(). Signed-off-by: Robin Jarry Acked-by: Morten Brørup Acked-by: Konstantin Ananyev Reviewed-by: Kevin Laatz --- Notes: v7 -> v8: no change app/test-pmd/cmdline.c | 3 +++ doc/guides/testpmd_app_ug/testpmd_funcs.rst

[PATCH v8 5/5] eal: add lcore usage telemetry endpoint

2023-02-02 Thread Robin Jarry
ot;total_cycles": [ 23846845590, 23900558914 ], "busy_cycles": [ 21043446682, 21448837316 ] } } Signed-off-by: Robin Jarry Reviewed-by: Kevin Laatz --- Notes: v7 -> v8: no change doc/guides/rel_notes/release_23_03.rst | 5 +

[PATCH v8 4/5] app/testpmd: report lcore usage

2023-02-02 Thread Robin Jarry
3140 lcore 5, socket 0, role RTE, cpuset 5, busy cycles 1255661768/9218141538 --> /eal/lcore/info,4 { "/eal/lcore/info": { "lcore_id": 4, "socket": 0, "role": "RTE", "cpuset": [ 4 ], "busy_cyc

Re: [PATCH v8 2/5] eal: report applications lcore usage

2023-02-06 Thread Robin Jarry
Morten Brørup, Feb 06, 2023 at 08:36: > The 'record_burst_stats' also important for performance tune. While I agree that burst size spread is important for comparing CPU usage and capacity, the 'record_burst_stats' is a test_pmd specific feature. Applications may implement something different.

Re: [PATCH v8 1/5] eal: add lcore info in telemetry

2023-02-06 Thread Robin Jarry
fengchengwen, Feb 06, 2023 at 04:50: > + return rte_lcore_iterate(lcore_telemetry_info_cb, &info); lcore_iterate will iterate and find the lcore. How about add one new API e.g. rte_lcore_cb(xxx) ? Hi fengchengwen, what would that new API do?

Re: [PATCH v8 5/5] eal: add lcore usage telemetry endpoint

2023-02-06 Thread Robin Jarry
fengchengwen, Feb 06, 2023 at 04:27: The telemetry should be human-readable also. so why not "/eal/lcore/usage": { "lcore_4" : { "total_cycles" : xxx "busy_cycles" : xxx "busy/total ratio" : "xx%" }, "lcore_5" : { "total_cycles" : yyy "busy_cyc

Re: [PATCH v8 2/5] eal: report applications lcore usage

2023-02-06 Thread Robin Jarry
David Marchand, Feb 06, 2023 at 09:48: > +struct rte_lcore_usage { > + /** The total amount of time since application start, in TSC cycles. */ > + uint64_t total_cycles; This code comment needs some clarification. What is this "total amount of time"? "application start" is ambiguou

Re: [PATCH v8 4/5] app/testpmd: report lcore usage

2023-02-06 Thread Robin Jarry
David Marchand, Feb 06, 2023 at 09:58: I have been playing a bit with this series with two lcores, each one polling a net/null port. At first it looked good, but then I started to have one idle lcore, by asking net/null not to receive anything. $ build-clang/app/dpdk-testpmd -c 7 --no-huge -m 40

Re: [PATCH v8 1/5] eal: add lcore info in telemetry

2023-02-06 Thread Robin Jarry
fengchengwen, Feb 06, 2023 at 12:22: Just invoke callback on one specific lcore. In this patch, the lcore_telemetry_info_cb() only valid on specific lcore, but it was implements by rte_lcore_iterate which will iterate all lcores. Ok I see. I don't think this would be worth the effort. There

Re: [PATCH v5 2/4] eal: allow applications to report their cpu usage

2023-02-06 Thread Robin Jarry
Konstantin Ananyev, Feb 06, 2023 at 21:07: > Problem is not in resetting cb function itself. > > Usually with CB user needs some sort of data structure (to accumulate > stats, track states, etc.). If we allow to reset the CB, then it > arises the question when/how should we allow user to free assoc

Re: [PATCH v5 2/4] eal: allow applications to report their cpu usage

2023-02-06 Thread Robin Jarry
Konstantin Ananyev, Feb 06, 2023 at 21:34: > Yes, app knows what resources it wants to free. > But it has no way to know *when* it is safe to free them. > Just a bit more explanation: > App invokes your function which resets global value of CB. > How would it know that after return from this functi

Re: [PATCH v5 2/4] eal: allow applications to report their cpu usage

2023-02-06 Thread Robin Jarry
Konstantin Ananyev, Feb 06, 2023 at 21:44: > > Ok I see. But what should we do to prevent this? Simply ignore the > > request and log a warning? > > That's seems like simplest choice to me... Or if you still prefer to > allow it - put a special comment that it is user responsibility to > handle suc

[PATCH] telemetry: fix docstring of RTE_TEL_INT_VAL

2023-02-07 Thread Robin Jarry
The doc string was left to its previous definition. Make it explicit that RTE_TEL_INT_VAL is a 64-bit signed integer. Fixes: 8e639c7c50cc ("telemetry: use 64-bit signed values in API") Signed-off-by: Robin Jarry --- lib/telemetry/rte_telemetry.h | 2 +- 1 file changed, 1 inser

[PATCH] usertools/pmdinfo: fix usage typos

2023-09-19 Thread Robin Jarry
write simpler script") Cc: sta...@dpdk.org Signed-off-by: Robin Jarry --- doc/guides/tools/pmdinfo.rst | 2 +- usertools/dpdk-pmdinfo.py| 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/guides/tools/pmdinfo.rst b/doc/guides/tools/pmdinfo.rst index a9217de4eef2..fd

[RFC PATCH] usertools: add telemetry exporter

2023-09-26 Thread Robin Jarry
6 Link: https://prometheus.io/docs/instrumenting/exposition_formats/#text-based-format Link: https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#text-format Link: https://graphite.readthedocs.io/en/latest/feeding-carbon.html#the-pickle-protocol Link: https

IPv6 APIs rework

2024-07-18 Thread Robin Jarry
Hi folks, while working on IPv6 support for grout [1], I noticed that all DPDK IPv6 APIs used fixed sized arrays in the route lookup functions [2]. int rte_fib6_lookup_bulk(struct rte_fib6 *fib, uint8_t ips[][RTE_FIB6_IPV6_ADDR_SIZE], uint64_t

Re: IPv6 APIs rework

2024-07-18 Thread Robin Jarry
Vladimir Medvedkin, Jul 18, 2024 at 23:25: I think alignment should be 1 since in FIB6 users usually don't copy IPv6 address and just provide a pointer to the memory inside the packet. Current vector implementation loads IPv6 addresses using unaligned access ( _mm512_loadu_si512) so it doesn't re

Re: IPv6 APIs rework

2024-07-18 Thread Robin Jarry
Stephen Hemminger, Jul 18, 2024 at 23:15: If you look at the standard netinet/in.h the storage of IPv6 addresses is in in6_addr. DPDK has always wanted to do its own thing... The in6_addr is a union with no explicit alignment. struct in6_addr { union { uint8_t __u6_addr8[16]

Re: IPv6 APIs rework

2024-07-19 Thread Robin Jarry
Morten Brørup, Jul 19, 2024 at 11:12: > Vladimir Medvedkin, Jul 18, 2024 at 23:25: > > I think alignment should be 1 since in FIB6 users usually don't > > copy IPv6 address and just provide a pointer to the memory inside > > the packet. How can they do that? The bulk lookup function takes an

Re: IPv6 APIs rework

2024-07-19 Thread Robin Jarry
Morten Brørup, Jul 19, 2024 at 12:46: When passing an IPv4 address as a value, alignment does matter; it must be 4 byte aligned. I was expecting the compiler to do what is necessary to copy the data to an aligned register before jumping to the function. On a CPU with 128 bit registers, I wou

Re: IPv6 APIs rework

2024-07-20 Thread Robin Jarry
Cutting down the quoting a bit. I understand the arguments against having an unaligned packed struct. But it is precisely what we have in the current code base. All IPv6 addresses are uint8_t[16] arrays. And nobody ever complained about it. Since this rework is already massive, could we proce

Re: IPv6 APIs rework

2024-07-20 Thread Robin Jarry
Stephen Hemminger, Jul 20, 2024 at 22:26: There is no need for packing or alignment in in6_addr or current DPDK, what would be the benefit? Compilers generate worse code if a structure is marked packed. The only benefit is to maintain current behaviour. At first, I had not packed nor aligned

Re: IPv6 APIs rework

2024-07-21 Thread Robin Jarry
Hi Morten, Stephen, Morten Brørup, Jul 21, 2024 at 18:12: If the IPv6 address type you tested with was a struct containing a union of different types (other than an array of 16 bytes), then those sub-types made your IPv6 address type non-byte aligned, and caused padding when used in other stru

[PATCH dpdk] rel_notes: announce 24.11 ipv6 api breakage

2024-07-22 Thread Robin Jarry
In 24.11, all IPv6 public APIs will be modified to use a structure instead of fixed size arrays. Cc: Bruce Richardson Cc: Morten Brørup Cc: Stephen Hemminger Cc: Vladimir Medvedkin Cc: Konstantin Ananyev Signed-off-by: Robin Jarry --- doc/guides/rel_notes/deprecation.rst | 16

[PATCH dpdk v2] rel_notes: announce 24.11 ipv6 api breakage

2024-07-23 Thread Robin Jarry
In 24.11, all IPv6 public APIs will be modified to use a structure instead of fixed size arrays. Signed-off-by: Robin Jarry Acked-by: Morten Brørup --- Notes: v2: updated with the exhaustive list of symbols doc/guides/rel_notes/deprecation.rst | 42 1 file

Re: [PATCH] doc: announce fib configuration structure changes

2024-07-26 Thread Robin Jarry
Vladimir Medvedkin, Jul 26, 2024 at 18:13: Announce addition of the flags field into rte_fib_conf structure. Signed-off-by: Vladimir Medvedkin Acked-by: Robin Jarry

fib/rib: allow storing void * instead of nexthop index

2024-07-31 Thread Robin Jarry
Hi Vladimir, I noticed that the fib/rib APIs (both IPv4 and IPv6) require the next hops to be represented as integer indexes. Reading the code, I noticed that they are stored as uint64_t with the MSB used for internal purposes. This require either having a contiguous array of nexthop objects

[PATCH dpdk] buildtools/cmdline: fix meson error when used as a subproject

2024-08-01 Thread Robin Jarry
using script in subproject") Signed-off-by: Robin Jarry --- buildtools/subproject/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildtools/subproject/meson.build b/buildtools/subproject/meson.build index 9ba94671bd0e..8ae081e1698a 100644 --- a/buildtools/subproje

Re: [PATCH v1 1/2] usertools/cpu_layout: update coding style

2024-08-19 Thread Robin Jarry
Anatoly Burakov, Aug 14, 2024 at 13:19: Update coding style: - make it PEP-484 compliant - address all flake8, mypy etc. warnings - use f-strings in place of old-style string interpolation - refactor printing to make the code more readable Signed-off-by: Anatoly Burakov --- Hi Anatoly, than

Re: [PATCH v2 1/4] usertools/cpu_layout: update coding style

2024-08-19 Thread Robin Jarry
Anatoly Burakov, Aug 16, 2024 at 14:16: Update coding style: - make it PEP-484 compliant - address all flake8, mypy etc. warnings - use f-strings in place of old-style string interpolation - refactor printing to make the code more readable Signed-off-by: Anatoly Burakov --- usertools/cpu_layo

Re: [PATCH v2 2/4] usertools/cpu_layout: print out NUMA nodes

2024-08-19 Thread Robin Jarry
Anatoly Burakov, Aug 16, 2024 at 14:16: In traditional NUMA case, NUMA nodes and physical sockets were used interchangeably, but there are cases where there can be multiple NUMA nodes per socket, as well as all CPU's being assigned NUMA node 0 even in cases of multiple sockets. Use sysfs to print

Re: [PATCH v2 3/4] usertools/dpdk-hugepages.py: sort by NUMA node

2024-08-19 Thread Robin Jarry
Anatoly Burakov, Aug 16, 2024 at 14:16: Currently, the list of per-NUMA node hugepages is displayed in glob order, which can be arbitrary. Fix it to sort the glob order. Signed-off-by: Anatoly Burakov Hey Anatoly, I mean no offense to anyone but dpdk-hugepages.py is really ugly :( Is this s

Re: [PATCH v2 4/4] usertools/dpdk-devbind: print NUMA node

2024-08-19 Thread Robin Jarry
: Robin Jarry NB: Although it is better than dpdk-hugepages.py, this script could also benefit from a major cleanup as you did for cpu_layout.py. usertools/dpdk-devbind.py | 27 +++ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/usertools/dpdk

Re: [PATCH v2 3/4] usertools/dpdk-hugepages.py: sort by NUMA node

2024-08-20 Thread Robin Jarry
Burakov, Anatoly, Aug 20, 2024 at 11:04: I do agree it is, umm, let's say not up to Python standards, but I was attempting to minimize changes to ensure this change gets integrated quickly. I can try and rewrite it if that's something that community is willing to accept. I'm not a master Python

Re: [PATCH v2 1/4] usertools/cpu_layout: update coding style

2024-08-20 Thread Robin Jarry
Burakov, Anatoly, Aug 20, 2024 at 11:12: > FYI: if we change the minimum supported python version to 3.9, we could > even get rid of this import completely as builtin types `set`, `list`, > `tuple` and `dict` have become subscriptable. > >    https://peps.python.org/pep-0585/ > > You can use

Re: [PATCH v2 4/4] usertools/dpdk-devbind: print NUMA node

2024-08-20 Thread Robin Jarry
Burakov, Anatoly, Aug 20, 2024 at 11:08: Rewriting this one would take a bit more time because unlike working with hugepages or sysfs CPU layouts, I'm not familiar enough with all of the specifics this script does, so I'd have to learn it more. I can try though, if you think it's worth the effo

Re: [PATCH v2 1/4] usertools/cpu_layout: update coding style

2024-08-20 Thread Robin Jarry
Burakov, Anatoly, Aug 20, 2024 at 11:31: > I checked and unless I missed something, dpdk-pmdinfo.py uses the > symbols from the typing module for annotations. Not builtin container > types. It does both. Check e.g. line 147: def scrub_pci_ids(info: dict): Ah, that does not require python 3.

Re: [PATCH v2 4/4] usertools/dpdk-devbind: print NUMA node

2024-08-20 Thread Robin Jarry
Burakov, Anatoly, Aug 20, 2024 at 11:40: I have heard about driverctl for a long time in context of devbind, and I quickly tried it out just now, and IMO while the *functionality* is there, the usability of devbind is IMO far more friendly: - it filters by device types that are of interest to

Re: [PATCH v2 4/4] usertools/dpdk-devbind: print NUMA node

2024-08-20 Thread Robin Jarry
Burakov, Anatoly, Aug 20, 2024 at 11:56: Actually, I should correct myself (and yourself) somewhat. This is not obvious from help message (I found it through reading the REAME) but driverctl *does* allow listing PCI devices by type, but only one type (e.g. list all network devices), but not mu

Re: [PATCH v3 3/4] usertools/dpdk-hugepages.py: update coding style

2024-08-20 Thread Robin Jarry
Anatoly Burakov, Aug 20, 2024 at 17:35: Update coding style: - Make the code PEP-484 compliant - Add more comments, improve readability, use f-strings everywhere - Use quotes consistently - Address all Python static analysis (e.g. mypy, pylint) warnings - Improve error handling - Refactor printi

Re: [PATCH v3 1/4] usertools/cpu_layout: update coding style

2024-08-20 Thread Robin Jarry
Anatoly Burakov, Aug 20, 2024 at 17:35: Update coding style: - make it PEP-484 compliant - address all flake8, mypy etc. warnings - use f-strings in place of old-style string interpolation - refactor printing to make the code more readable - read valid CPU ID's from "online" sysfs node Signed-o

Re: [PATCH v3 2/4] usertools/cpu_layout: print out NUMA nodes

2024-08-20 Thread Robin Jarry
Anatoly Burakov, Aug 20, 2024 at 17:35: In traditional NUMA case, NUMA nodes and physical sockets were used interchangeably, but there are cases where there can be multiple NUMA nodes per socket, as well as all CPU's being assigned NUMA node 0 even in cases of multiple sockets. Use sysfs to print

Re: [PATCH v3 3/4] usertools/dpdk-hugepages.py: update coding style

2024-08-21 Thread Robin Jarry
Burakov, Anatoly, Aug 21, 2024 at 11:16: > Actually, I take that back - I had a configuration mishap and didn't > notice that I wasn't using Ruff for formatting on the machine I was > creating the commits. > > Still, cpu_layout's formatting is not affected, but hugepage script is. > > However,

Re: [PATCH v4 3/4] usertools/dpdk-hugepages.py: update coding style

2024-08-21 Thread Robin Jarry
Anatoly Burakov, Aug 21, 2024 at 11:22: Update coding style: - Make the code PEP-484 compliant - Add more comments, improve readability, use f-strings everywhere - Address all Python static analysis (e.g. mypy, pylint) warnings - Format code with Ruff - Improve error handling - Refactor printing

Re: [PATCH v5 1/4] usertools/cpu_layout: update coding style

2024-08-21 Thread Robin Jarry
s/cpu_layout.py | 161 ++-- 1 file changed, 106 insertions(+), 55 deletions(-) Acked-by: Robin Jarry Thanks!

Re: [PATCH v5 3/4] usertools/dpdk-hugepages.py: update coding style

2024-08-21 Thread Robin Jarry
ertools/dpdk-hugepages.py | 518 +--- 1 file changed, 310 insertions(+), 208 deletions(-) Acked-by: Robin Jarry Thanks!

Re: [PATCH v5 2/4] usertools/cpu_layout: print out NUMA nodes

2024-08-21 Thread Robin Jarry
fs to print out NUMA information. Signed-off-by: Anatoly Burakov --- Notes: v2 -> v3: - Sort imports alphabetically usertools/cpu_layout.py | 36 +++- 1 file changed, 31 insertions(+), 5 deletions(-) Acked-by: Robin Jarry Thanks!

Re: [PATCH v5 4/4] usertools/dpdk-devbind: print NUMA node

2024-08-21 Thread Robin Jarry
: Robin Jarry --- Notes: v1 -> v2: - Added commit to print out NUMA information in devbind usertools/dpdk-devbind.py | 29 + 1 file changed, 21 insertions(+), 8 deletions(-) Acked-by: Robin Jarry Thanks!

[PATCH dpdk v1 00/15] IPv6 APIs overhaul

2024-08-21 Thread Robin Jarry
Cc: Konstantin Ananyev Cc: Bruce Richardson Robin Jarry (15): net: split raw checksum functions in separate header net: split ipv6 symbols in separate header net: add structure for ipv6 addresses net: use ipv6 structure for header addresses fib6,rib6,lpm6: use ipv6 addr struct net

[PATCH dpdk v1 01/15] net: split raw checksum functions in separate header

2024-08-21 Thread Robin Jarry
The checksum functions are used by both ipv4 and ipv6 functions. In preparation of moving ipv6 symbols to a new header, move the checksum related symbols to another dedicated header. Signed-off-by: Robin Jarry --- lib/net/meson.build | 1 + lib/net/rte_cksum.h | 189

[PATCH dpdk v1 03/15] net: add structure for ipv6 addresses

2024-08-21 Thread Robin Jarry
There is currently no structure defined for IPv6 addresses. Introduce one that is simply a uint8_t array of 16 elements without any union. The idea is to ensure this structure alignment is 1 so that it can be mapped directly on unaligned packet memory. Signed-off-by: Robin Jarry --- lib/net

[PATCH dpdk v1 02/15] net: split ipv6 symbols in separate header

2024-08-21 Thread Robin Jarry
Move all ipv6 related symbols to a dedicated header. Update all code accordingly. Signed-off-by: Robin Jarry --- app/test/packet_burst_generator.c | 1 + app/test/test_cryptodev_security_ipsec.c| 1 + drivers/common/cnxk/cnxk_security.c | 1 + drivers/crypto/cnxk

[PATCH dpdk v1 04/15] net: use ipv6 structure for header addresses

2024-08-21 Thread Robin Jarry
The rte_ipv6_hdr uses ad-hoc uint8_t[16] arrays to represent addresses. Replace these arrays with the previously introduced rte_ipv6_addr structure. Adapt all code accordingly. Signed-off-by: Robin Jarry --- app/test-flow-perf/items_gen.c | 4 +-- app/test-pipeline/pipeline_hash.c

[PATCH dpdk v1 06/15] net: add ipv6 address utilities

2024-08-21 Thread Robin Jarry
Add utility functions that use the previously introduced IPv6 address structure. Add basic unit tests to ensure everything works as expected. These functions will be used in the next commits to replace private and/or duplicated functions. Signed-off-by: Robin Jarry --- app/test/meson.build

[PATCH dpdk v1 07/15] fib6,rib6,lpm6: use ipv6 utils

2024-08-21 Thread Robin Jarry
Replace duplicated and/or private functions by some of the previously introduced utility functions. Mark rib6 functions that deal with ipv6 addresses as deprecated. Signed-off-by: Robin Jarry --- app/test/test_fib6.c | 9 +++-- app/test/test_rib6.c | 2

[PATCH dpdk v1 08/15] graph,node: use ipv6 addr struct and utils

2024-08-21 Thread Robin Jarry
Replace ad-hoc uint8_t[16] arrays with the previously introduced IPv6 address structure. Signed-off-by: Robin Jarry --- app/graph/ethdev.c | 40 ++- app/graph/ethdev.h | 9 --- app/graph/ip6_route.c | 47

[PATCH dpdk v1 12/15] gro: use ipv6 addr struct

2024-08-21 Thread Robin Jarry
Update tcp6_flow_key to use the recently introduced IPv6 address structure instead of uint8_t[16] arrays. Signed-off-by: Robin Jarry --- lib/gro/gro_tcp6.c | 8 lib/gro/gro_tcp6.h | 6 -- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/gro/gro_tcp6.c b/lib/gro

[PATCH dpdk v1 11/15] thash: use ipv6 addr struct

2024-08-21 Thread Robin Jarry
Update rte_ipv6_tuple to use the recently added IPv6 address structure instead of uint8_t[16] arrays. Signed-off-by: Robin Jarry --- app/test/test_thash.c | 46 --- lib/hash/rte_thash.h | 20 +-- 2 files changed, 27 insertions(+), 39

[PATCH dpdk v1 10/15] ipsec: use ipv6 addr struct

2024-08-21 Thread Robin Jarry
Update rte_ipsec_sadv6_key to use the recently introduced IPv6 address structure instead of ad-hoc uint8_t[16] arrays. Signed-off-by: Robin Jarry --- app/test-sad/main.c| 24 ++--- app/test/test_ipsec_sad.c | 44 +++--- examples/ipsec

[PATCH dpdk v1 14/15] rib6,fib6,lpm6: remove duplicate constants

2024-08-21 Thread Robin Jarry
Replace all address size and max depth macros with common ones from rte_ip6.h. Signed-off-by: Robin Jarry --- app/test/test_fib6.c | 50 ++-- lib/fib/rte_fib6.c | 6 +++--- lib/fib/rte_fib6.h | 4 lib/fib/trie.c | 6 +++--- lib/fib

[PATCH dpdk v1 15/15] net: add utilities for well known ipv6 address types

2024-08-21 Thread Robin Jarry
Add more utilities to work with IPv6 addresses. These functions will be required in order to help building IPv6 routing applications. Signed-off-by: Robin Jarry --- app/test/test_net_ipv6.c | 74 ++ lib/net/rte_ip6.h| 98

[PATCH dpdk v1 09/15] pipeline: use ipv6 addr struct

2024-08-21 Thread Robin Jarry
Update rte_table_action_ipv6_header and rte_table_action_nat_params to use the recently added IPv6 address structure instead of uint8_t[16] arrays. Signed-off-by: Robin Jarry --- examples/ip_pipeline/cli.c | 12 +-- lib/pipeline/rte_table_action.c | 36

[PATCH dpdk v1 13/15] rte_flow: use ipv6 addr struct

2024-08-21 Thread Robin Jarry
Update rte_flow_tunnel, rte_flow_action_set_ipv6, rte_flow_item_icmp6_nd_na and rte_flow_item_icmp6_nd_ns to use the recently introduced IPv6 address structure instead of uint8_t[16] arrays. Update all code accordingly. Signed-off-by: Robin Jarry --- app/test-flow-perf/actions_gen.c

Re: [PATCH dpdk v1 00/15] IPv6 APIs overhaul

2024-08-22 Thread Robin Jarry
Stephen Hemminger, Aug 22, 2024 at 16:13: Let me ask a couple of questions about this. Why does DPDK need to have its own definitions of IPv4 and IPv6 addresses? The structures in_addr and in6_addr exist on Linux, BSD, and Windows. It creates lots of code reimplementation (see inet_ntop etc). W

Re: [PATCH dpdk v1 00/15] IPv6 APIs overhaul

2024-08-22 Thread Robin Jarry
Stephen Hemminger, Aug 22, 2024 at 16:13: Why does DPDK need to have its own definitions of IPv4 and IPv6 addresses? The structures in_addr and in6_addr exist on Linux, BSD, and Windows. It creates lots of code reimplementation (see inet_ntop etc). By the way, you can call inet_ntop(AF_INET6) w

Re: [PATCH dpdk v1 00/15] IPv6 APIs overhaul

2024-08-22 Thread Robin Jarry
Morten Brørup, Aug 22, 2024 at 17:13: The types seem to be different in the Windows API (than in Linux/BSD): https://github.com/tpn/winsdk-10/blob/9b69fd26ac0c7d0b83d378dba01080e93349c2ed/Include/10.0.14393.0/shared/in6addr.h#L25 https://github.com/tpn/winsdk-10/blob/9b69fd26ac0c7d0b83d378dba0108

  1   2   3   4   5   >