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
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
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
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
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
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
,
+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
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 -
n their own implementation, it
would be much appreciated.
Thanks in advance.
--
Robin Jarry
Principal Software Engineer
Red Hat
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
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
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.
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
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
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
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.
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
"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
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 |
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 ++
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
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
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
>
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
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
- 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
"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 +++
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
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
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
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
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/
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|
"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
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
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 +
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
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.
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?
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
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
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
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
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
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
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
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
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
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
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
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
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]
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
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
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
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
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
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
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
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
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
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
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
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
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
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
: 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
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
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
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
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.
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
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
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
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
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
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,
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
s/cpu_layout.py | 161 ++--
1 file changed, 106 insertions(+), 55 deletions(-)
Acked-by: Robin Jarry
Thanks!
ertools/dpdk-hugepages.py | 518 +---
1 file changed, 310 insertions(+), 208 deletions(-)
Acked-by: Robin Jarry
Thanks!
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!
: 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!
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 - 100 of 455 matches
Mail list logo