When creating an action it can contain a bulk of objects,
but the objects are fixed to a specific pattern and cannot
be reused. This can lead to inefficient usage of the HW resources,
This support allows creating multiple patterns over a single
mlx5dr action.
Signed-off-by: Alex Vesker
Reviewed
> + MLX5DR_DEFINER_FNAME_IB_L4_QPN,
> MLX5DR_DEFINER_FNAME_MAX,
> };
>
> diff --git a/drivers/net/mlx5/mlx5_flow_hw.c
> b/drivers/net/mlx5/mlx5_flow_hw.c index 853c94af9c..f9e7f844ea 100644
> --- a/drivers/net/mlx5/mlx5_flow_hw.c
> +++ b/drivers/net/mlx5/mlx5_flow_hw.c
> @@ -4969,6 +4969,7 @@ flow_hw_pattern_validate(struct rte_eth_dev
> *dev,
> case RTE_FLOW_ITEM_TYPE_IPV6_ROUTING_EXT:
> case RTE_FLOW_ITEM_TYPE_ESP:
> case RTE_FLOW_ITEM_TYPE_FLEX:
> + case RTE_FLOW_ITEM_TYPE_IB_BTH:
> break;
> case RTE_FLOW_ITEM_TYPE_INTEGRITY:
> /*
> --
> 2.27.0
Acked-by: Alex Vesker
fragment_offset based on spec and last
same as any other field.
Fixes: c55c2bf35333 ("net/mlx5/hws: add definer layer")
Cc: sta...@dpdk.org
Signed-off-by: Hamdan Igbaria
Reviewed-by: Alex Vesker
Acked-by: Matan Azrad ma...@nvidia.com
---
drivers/net/mlx5/hws/mlx5dr_defi
nous drain")
Signed-off-by: Alex Vesker
Reviewed-by: Erez Shitrit
Acked-by: Matan Azrad ma...@nvidia.com
---
drivers/net/mlx5/hws/mlx5dr_send.h | 5 -
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mlx5/hws/mlx5dr_send.h
b/drivers/net/mlx5/hws/mlx5dr_send.h
i
The rte_errno should be set to a positive error value
while the ret of the function should return a negative
value this aligns code to other mlx5dr API functions.
Fixes: 3eb748869d2d ("net/mlx5/hws: add send layer")
Cc: sta...@dpdk.org
Signed-off-by: Alex Vesker
Reviewed-by: Erez Shit
mp6(&cd, items, i);
> item_flags |= MLX5_FLOW_LAYER_ICMP6;
> break;
> + case RTE_FLOW_ITEM_TYPE_ICMP6_ECHO_REQUEST:
> + case RTE_FLOW_ITEM_TYPE_ICMP6_ECHO_REPLY:
> + ret = mlx5dr_definer_conv_item_icmp6_echo(&cd,
> items, i);
> + item_flags |= MLX5_FLOW_LAYER_ICMP6;
> + break;
> case RTE_FLOW_ITEM_TYPE_METER_COLOR:
> ret = mlx5dr_definer_conv_item_meter_color(&cd,
> items, i);
> item_flags |= MLX5_FLOW_ITEM_METER_COLOR;
> --
> 2.27.0
Acked-by: Alex Vesker
Definers are a limited resource in the system per GVMI, to
avoid failure we try to improve bt checking if it is possible
to reuse the definers in some cases. Added a cache on the context
for this purpose.
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_context.c | 12 ++-
drivers
To have the same name convention for future caches, use
cache and cache item naming.
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_pat_arg.c | 22 +++---
drivers/net/mlx5/hws/mlx5dr_pat_arg.h | 6 +++---
2 files changed, 14 insertions(+), 14 deletions(-)
diff
Add support for dumping range and hash definers objects.
Hash definer is a per matcher object describing the fields
used for hashing. Range definer is per match template object
describing the fields used for range matching.
Both are optional based on the given match templates.
Signed-off-by: Alex
FW WQE and HW WQE are done in a similar way but not to
jeopardize the performance rule creation is done over
the new FW rule creation function. The deletion function
is shared between both flows.
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_rule.c | 180
W
GTA WQE command.
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_definer.c | 255 +++---
drivers/net/mlx5/hws/mlx5dr_definer.h | 16 +-
drivers/net/mlx5/hws/mlx5dr_matcher.c | 27 ++-
drivers/net/mlx5/hws/mlx5dr_matcher.h | 17 +-
4 files changed, 281 inser
definers bitmasks intersection.
Since current HW GTA implementation doesn't allow specifying
match and hash definers rule insertion is done using the FW
GTA WQE command.
Signed-off-by: Alex Vesker
---
drivers/common/mlx5/mlx5_prm.h| 4 +
drivers/net/mlx5/hws/mlx5dr_definer.c
matching will be done over these fields.
There are two field setter, field copy (fc) and field copy
range (fcr).
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_definer.c | 73 +--
drivers/net/mlx5/hws/mlx5dr_definer.h | 5 +-
2 files changed, 72 inserti
sharing the hl over
multiple definers. First calculate the shared hl than
create definers based on the definer shared layout.
Once all definers use the same layout it is possible to
hash over the shared fields since the location is the same
across all of the definers.
Signed-off-by: Alex Vesker
This check can be later on reused for other places, it
will look better in a function
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_matcher.c | 43 +--
1 file changed, 27 insertions(+), 16 deletions(-)
diff --git a/drivers/net/mlx5/hws/mlx5dr_matcher.c
b
range data1.
FW manages STEs/ICM and coherency between deletion and creation.
It is possible to also pass the definer value as part of the
STE, this is not supported with current HW.
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_send.c | 19 +++
drivers/net/mlx5/hws
: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_send.c | 134 +
drivers/net/mlx5/hws/mlx5dr_send.h | 7 +-
2 files changed, 140 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mlx5/hws/mlx5dr_send.c
b/drivers/net/mlx5/hws/mlx5dr_send.c
index a507e5f626..a9958df4f2
Rename rtc params create for new format.
Signed-off-by: Alex Vesker
---
drivers/common/mlx5/mlx5_prm.h| 16 ++--
drivers/net/mlx5/hws/mlx5dr_cmd.c | 13 +++--
drivers/net/mlx5/hws/mlx5dr_cmd.h | 11 +++
drivers/net/mlx5/hws/mlx5dr_matcher.c | 19
Read the capabilities required to determine support for GENERATE_WQE.
Signed-off-by: Alex Vesker
---
drivers/common/mlx5/mlx5_prm.h| 6 --
drivers/net/mlx5/hws/mlx5dr_cmd.c | 12
drivers/net/mlx5/hws/mlx5dr_cmd.h | 3 +++
3 files changed, 19 insertions(+), 2 deletions
The generate WQE command is used as an interface to writing GTA
WQEs with fields that are not supported in current HW, for example
extended match definer.
Signed-off-by: Alex Vesker
---
drivers/common/mlx5/mlx5_prm.h| 27 +-
drivers/net/mlx5/hws/mlx5dr_cmd.c | 47
the FW command
which requires synchronization.
This also fixes an issue with shared arguments send that require more than
one WQE.
Signed-off-by: Erez Shitrit
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr.h | 6 --
drivers/net/mlx5/hws/mlx5dr_pat_arg.c | 27
checkpatch comments
Alex Vesker (16):
net/mlx5/hws: support synchronous drain
net/mlx5/hws: matcher remove AT and MT limitation
net/mlx5/hws: support GTA WQE write using FW command
net/mlx5/hws: add capability query for gen wqe command
net/mlx5/hws: align RTC create command with PRM format
fixed
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_debug.c | 4 +-
drivers/net/mlx5/hws/mlx5dr_matcher.c | 109 --
drivers/net/mlx5/hws/mlx5dr_matcher.h | 8 +-
drivers/net/mlx5/hws/mlx5dr_rule.c| 15 ++--
4 files changed, 78 insertions(+), 58
the FW command
which requires synchronization.
This also fixes an issue with shared arguments send that require more than
one WQE.
Signed-off-by: Erez Shitrit
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr.h | 6 --
drivers/net/mlx5/hws/mlx5dr_pat_arg.c | 27
Rename rtc params create for new format.
Signed-off-by: Alex Vesker
---
drivers/common/mlx5/mlx5_prm.h| 16 ++--
drivers/net/mlx5/hws/mlx5dr_cmd.c | 13 +++--
drivers/net/mlx5/hws/mlx5dr_cmd.h | 11 +++
drivers/net/mlx5/hws/mlx5dr_matcher.c | 19
Read the capabilities required to determine support for GENERATE_WQE.
Signed-off-by: Alex Vesker
---
drivers/common/mlx5/mlx5_prm.h| 6 --
drivers/net/mlx5/hws/mlx5dr_cmd.c | 12
drivers/net/mlx5/hws/mlx5dr_cmd.h | 3 +++
3 files changed, 19 insertions(+), 2 deletions
To have the same name convention for future caches, use
cache and cache item naming.
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_pat_arg.c | 22 +++---
drivers/net/mlx5/hws/mlx5dr_pat_arg.h | 6 +++---
2 files changed, 14 insertions(+), 14 deletions(-)
diff
FW WQE and HW WQE are done in a similar way but not to
jeopardize the performance rule creation is done over
the new FW rule creation function. The deletion function
is shared between both flows.
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_rule.c | 180
W
GTA WQE command.
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_definer.c | 255 +++---
drivers/net/mlx5/hws/mlx5dr_definer.h | 16 +-
drivers/net/mlx5/hws/mlx5dr_matcher.c | 27 ++-
drivers/net/mlx5/hws/mlx5dr_matcher.h | 17 +-
4 files changed, 281 inser
matching will be done over these fields.
There are two field setter, field copy (fc) and field copy
range (fcr).
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_definer.c | 73 +--
drivers/net/mlx5/hws/mlx5dr_definer.h | 5 +-
2 files changed, 72 inserti
Definers are a limited resource in the system per GVMI, to
avoid failure we try to improve bt checking if it is possible
to reuse the definers in some cases. Added a cache on the context
for this purpose.
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_context.c | 12 ++-
drivers
definers bitmasks intersection.
Since current HW GTA implementation doesn't allow specifying
match and hash definers rule insertion is done using the FW
GTA WQE command.
Signed-off-by: Alex Vesker
---
drivers/common/mlx5/mlx5_prm.h| 4 +
drivers/net/mlx5/hws/mlx5dr_definer.c
Add support for dumping range and hash definers objects.
Hash definer is a per matcher object describing the fields
used for hashing. Range definer is per match template object
describing the fields used for range matching.
Both are optional based on the given match templates.
Signed-off-by: Alex
This check can be later on reused for other places, it
will look better in a function
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_matcher.c | 43 +--
1 file changed, 27 insertions(+), 16 deletions(-)
diff --git a/drivers/net/mlx5/hws/mlx5dr_matcher.c
b
sharing the hl over
multiple definers. First calculate the shared hl than
create definers based on the definer shared layout.
Once all definers use the same layout it is possible to
hash over the shared fields since the location is the same
across all of the definers.
Signed-off-by: Alex Vesker
The generate WQE command is used as an interface to writing GTA
WQEs with fields that are not supported in current HW, for example
extended match definer.
Signed-off-by: Alex Vesker
---
drivers/common/mlx5/mlx5_prm.h| 27 +-
drivers/net/mlx5/hws/mlx5dr_cmd.c | 47
range data1.
FW manages STEs/ICM and coherency between deletion and creation.
It is possible to also pass the definer value as part of the
STE, this is not supported with current HW.
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_send.c | 19 +++
drivers/net/mlx5/hws
fixed
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_debug.c | 4 +-
drivers/net/mlx5/hws/mlx5dr_matcher.c | 109 --
drivers/net/mlx5/hws/mlx5dr_matcher.h | 8 +-
drivers/net/mlx5/hws/mlx5dr_rule.c| 15 ++--
4 files changed, 78 insertions(+), 58
: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_send.c | 134 +
drivers/net/mlx5/hws/mlx5dr_send.h | 7 +-
2 files changed, 140 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mlx5/hws/mlx5dr_send.c
b/drivers/net/mlx5/hws/mlx5dr_send.c
index a507e5f626..a9958df4f2
fields to split the hash and match in a way the HW can
support. This increases the match templates combinations possible although
it may limit the maximum PPS. Since (1) and (2) are not fully support on
current HW the implementation is done on top of a HW like FW API using
WQEs.
Alex Vesker (16
On elemend db init we allocated the element_manager
which was unused and not freed.
Fixes: b4dd7bcb0dcbe ("net/mlx5/hws: add pool and buddy")
Signed-off-by: Alex Vesker
Reviewed-by: Erez Shitrit
---
drivers/net/mlx5/hws/mlx5dr_pool.c | 7 ---
1 file changed, 7 deletions(-)
di
Add a special value max_uint16 to request dump of all
rte ethernet ports. This is useful for collecting the
full info from all the ports in a single dump.
Signed-off-by: Alex Vesker
Reviewed-by: Ori Kam
---
drivers/net/mlx5/linux/mlx5_socket.c | 39 ++--
1 file changed
Add a special value max_uint16 to request dump of all
rte ethernet ports. This is useful for collecting the
full info from all the ports in a single dump.
Signed-off-by: Alex Vesker
Reviewed-by: Ori Kam
---
drivers/net/mlx5/linux/mlx5_socket.c | 39 ++--
1 file changed
The offset of format_select_dw_8_6_ext was incorrect.
Update the reserved offsets to correct value.
Fixes: 365cdf5f8ce7 ("net/mlx5/hws: add command layer")
Signed-off-by: Alex Vesker
Reviewed-by: Erez Shitrit
---
drivers/common/mlx5/mlx5_prm.h | 7 ---
1 file changed, 4 insert
-manager.
Fixes: b0290e5 ("net/mlx5/hws: add context object")
Signed-off-by: Alex Vesker
Reviewed-by: Erez Shitrit
Acked-by: Matan Azrad
---
drivers/net/mlx5/hws/mlx5dr_context.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mlx5/hws/mlx5dr_co
Fix segmentation fault when a user will request to allocate
a HWS action while current device doesn't support HWS.
Fixes: f8c8a6d ("net/mlx5/hws: add action object")
Signed-off-by: Alex Vesker
Reviewed-by: Erez Shitrit
Acked-by: Matan Azrad
---
drivers/net/mlx5/hws/mlx5
: add action object")
Signed-off-by: Alex Vesker
Reviewed-by: Erez Shitrit
Acked-by: Matan Azrad
---
drivers/net/mlx5/hws/mlx5dr_action.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/mlx5/hws/mlx5dr_action.h
b/drivers/net/mlx5/hws/mlx5dr_action.h
index
The sysconf call can return a negative value (-1) on failure
this will lead to posix_memalign to fail. This is not a realistic
case which was found by the static checkers.
Coverity issue: 381674
Fixes: 3eb7488 ("net/mlx5/hws: add send layer")
Signed-off-by: Alex Vesker
Reviewed-by: Er
: add action object")
Signed-off-by: Alex Vesker
Reviewed-by: Erez Shitrit
Acked-by: Matan Azrad
---
drivers/net/mlx5/hws/mlx5dr_action.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/mlx5/hws/mlx5dr_action.h
b/drivers/net/mlx5/hws/mlx5dr_action.h
index
The sysconf call can return a negative value (-1) on failure
this will lead to posix_memalign to fail. This is not a realistic
case which was found by the static checkers.
Coverity issue: 381674
Fixes: 3eb7488 ("net/mlx5/hws: add send layer")
Signed-off-by: Alex Vesker
Reviewed-by: Er
Also forgot to add to commit message:
Coverity issue: 381674
> -Original Message-
> From: Alex Vesker
> Sent: Thursday, November 3, 2022 2:52 PM
> To: Alex Vesker ; Slava Ovsiienko
> ; NBU-Contact-Thomas Monjalon (EXTERNAL)
> ; Suanming Mou ;
> Matan Azrad
> C
The sysconf call can return a negative value (-1) on failure
this will lead to posix_memalign to fail. This is not a realistic
case which was found by the static checkers.
Fixes: 3eb7488 ("net/mlx5/hws: add send layer")
Signed-off-by: Alex Vesker
Reviewed-by: Erez Shitrit
---
driver
: add action object")
Signed-off-by: Alex Vesker
Reviewed-by: Erez Shitrit
---
drivers/net/mlx5/hws/mlx5dr_action.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/mlx5/hws/mlx5dr_action.h
b/drivers/net/mlx5/hws/mlx5dr_action.h
index f14d91f994..808f44a740 10
Fix segmentation fault when user will request to allocate
a HWS action while current device doesn't support HWS.
Fixes: f8c8a6d ("net/mlx5/hws: add action object")
Signed-off-by: Alex Vesker
Reviewed-by: Erez Shitrit
---
drivers/net/mlx5/hws/mlx5dr_action.c | 7 +++
1
bject")
Signed-off-by: Alex Vesker
Reviewed-by: Erez Shitrit
---
drivers/net/mlx5/hws/mlx5dr_context.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mlx5/hws/mlx5dr_context.c
b/drivers/net/mlx5/hws/mlx5dr_context.c
index ae86694a51..76ada7bb7f 100644
--- a/d
The use of rte_atomic functions is deprecated and is not
required in HWS code. HWS refcounts are used only during
control and always under lock.
Fixes: f8c8a6d8440d ("net/mlx5/hws: add action object")
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_action.c | 8 +++-
d
> -Original Message-
> From: Thomas Monjalon
> Sent: Sunday, October 30, 2022 1:08 PM
> To: dev@dpdk.org
> Cc: Alex Vesker ; ferruh.yi...@amd.com;
> andrew.rybche...@oktetlabs.ru; Raslan Darawsheh ;
> david.march...@redhat.com; Matan Azrad ; Slava
> Ovsiienko
> -Original Message-
> From: Thomas Monjalon
> Sent: Sunday, October 30, 2022 1:08 PM
> To: dev@dpdk.org
> Cc: Alex Vesker ; ferruh.yi...@amd.com;
> andrew.rybche...@oktetlabs.ru; Raslan Darawsheh ;
> david.march...@redhat.com; Matan Azrad ; Fan
> Zhang
Replace stub implenation of HWS with mlx5dr code.
Signed-off-by: Alex Vesker
---
doc/guides/nics/mlx5.rst | 5 +-
doc/guides/rel_notes/release_22_11.rst | 4 +
drivers/common/mlx5/linux/meson.build| 9 +-
drivers/net/mlx5/hws/meson.build | 18
From: Hamdan Igbaria
The debug layer is used to generate a debug CSV file
containing details of the context, table, matcher, rules
and other useful debug information.
Signed-off-by: Hamdan Igbaria
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_debug.c | 462
configured to the HW.
Signed-off-by: Erez Shitrit
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_rule.c | 528 +
drivers/net/mlx5/hws/mlx5dr_rule.h | 50 +++
2 files changed, 578 insertions(+)
create mode 100644 drivers/net/mlx5/hws/mlx5dr_rule.c
create
From: Erez Shitrit
Action objects are used for executing different HW actions
over packets. Each action contains the HW resources and parameters
needed for action use over the HW when creating a rule.
Signed-off-by: Erez Shitrit
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws
the matcher
and from there to other objects. The matcher allows efficent
HW packet field matching and action execution based on the
configuration done to it.
Signed-off-by: Alex Vesker
Signed-off-by: Erez Shitrit
---
drivers/common/mlx5/linux/meson.build | 2 +
drivers/net/mlx5/hws
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_table.c | 248
drivers/net/mlx5/hws/mlx5dr_table.h | 44 +
2 files changed, 292 insertions(+)
create mode 100644 drivers/net/mlx5/hws/mlx5dr_table.c
create mode 100644 drivers/net/mlx5/hws/mlx5dr_table.h
the field
copy (fc) array used for efficient items to WQE conversion.
Signed-off-by: Mark Bloch
Signed-off-by: Alex Vesker
---
doc/guides/nics/features/default.ini |1 +
doc/guides/nics/features/mlx5.ini |1 +
drivers/net/mlx5/hws/mlx5dr_definer.c | 1968
Context is the first mlx5dr object created, all sub object:
table, matcher, rule, action are created using the context.
The context holds the capabilities and send queues used for
configuring the offloads to the HW.
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_context.c | 223
From: Erez Shitrit
The command layer is used to communicate with the FW,
query capabilities and allocate FW resources needed for HWS.
Signed-off-by: Erez Shitrit
Signed-off-by: Alex Vesker
---
drivers/common/mlx5/mlx5_prm.h| 607 ++-
drivers/net/mlx5/hws/mlx5dr_cmd.c
HWS configures flows to the HW using a QP, each WQE has
the details of the flow we want to offload. The send layer
allocates the resources needed to send the request to the HW
as well as managing the queues, getting completions and
handling failures.
Signed-off-by: Mark Bloch
Signed-off-by: Alex
Add missing glue support for HWS mlx5dr layer. The new glue
functions are needed for mlx5dv create matcher and action,
which are used as the kernel root table as well as for
capabilities query like device name and ports info.
Signed-off-by: Alex Vesker
---
drivers/common/mlx5/linux/mlx5_glue.c
From: Erez Shitrit
HWS needs to manage different types of device memory in
an efficient and quick way. For this, memory pools are
being used.
Signed-off-by: Erez Shitrit
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_buddy.c | 200 +
drivers/net/mlx5/hws/mlx5dr_buddy.h
From: Bing Zhao
In the flow table capabilities, new fields are added to query the
capability to set, add, copy to a REG_C_x.
The set capability are queried and saved for the future usage.
Signed-off-by: Bing Zhao
---
drivers/common/mlx5/mlx5_devx_cmds.c | 30 +++
drivers/commo
From: Bing Zhao
The available tags that can be used by the application are fixed
after startup.
A global array is used to store the information and transfer the TAG
item directly from the ID to the REG_C_x.
Signed-off-by: Bing Zhao
---
drivers/net/mlx5/linux/mlx5_os.c | 2 +
drivers/net/mlx5
From: Suanming Mou
As hardware steering root table flows still work under FW steering
mode. This commit provides shared item tranlsation code for hardware
steering root table flows.
Signed-off-by: Suanming Mou
---
drivers/net/mlx5/mlx5_flow.c| 10 +--
drivers/net/mlx5/mlx5_flow.h| 52
From: Suanming Mou
As hardware steering mode translates flow matcher and value in two
different stages, split the flow item matcher and value translation
to help reuse the code.
Signed-off-by: Suanming Mou
---
drivers/net/mlx5/mlx5_flow.h| 32 +
drivers/net/mlx5/mlx5_flow_dv.c | 2314 +++
From: Dariusz Sosnowski
This patch initial version of functions used to:
- convert between ethdev port_id and internal tag/mask value,
- convert between IB context and internal tag/mask value.
Signed-off-by: Dariusz Sosnowski
---
drivers/net/mlx5/linux/mlx5_os.c | 10 +-
drivers/net/mlx5/
From: Suanming Mou
In order to share the item translation code with hardware steering
mode, this commit splits flow item translation code to a dedicate
function.
Signed-off-by: Suanming Mou
---
drivers/net/mlx5/mlx5_flow_dv.c | 1915 ---
1 file changed, 979 insertio
compile on old rdma-core or no rdma core
v6:
-Fix meson style and improve configure
-Checkpatch and compilation fixes
-Fix action number issue
Alex Vesker (8):
net/mlx5: Add additional glue functions for HWS
net/mlx5/hws: Add HWS send layer
net/mlx5/hws: Add HWS definer layer
net/mlx5/hws
From: Hamdan Igbaria
The debug layer is used to generate a debug CSV file
containing details of the context, table, matcher, rules
and other useful debug information.
Signed-off-by: Hamdan Igbaria
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_debug.c | 462
Replace stub implenation of HWS with mlx5dr code.
Signed-off-by: Alex Vesker
---
doc/guides/nics/mlx5.rst | 5 +-
doc/guides/rel_notes/release_22_11.rst | 4 +
drivers/common/mlx5/linux/meson.build| 3 +
drivers/net/mlx5/hws/meson.build | 18
From: Erez Shitrit
Action objects are used for executing different HW actions
over packets. Each action contains the HW resources and parameters
needed for action use over the HW when creating a rule.
Signed-off-by: Erez Shitrit
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws
configured to the HW.
Signed-off-by: Erez Shitrit
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_rule.c | 528 +
drivers/net/mlx5/hws/mlx5dr_rule.h | 50 +++
2 files changed, 578 insertions(+)
create mode 100644 drivers/net/mlx5/hws/mlx5dr_rule.c
create
the matcher
and from there to other objects. The matcher allows efficent
HW packet field matching and action execution based on the
configuration done to it.
Signed-off-by: Alex Vesker
---
drivers/common/mlx5/linux/meson.build | 2 +
drivers/net/mlx5/hws/mlx5dr_matcher.c | 919
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_table.c | 248
drivers/net/mlx5/hws/mlx5dr_table.h | 44 +
2 files changed, 292 insertions(+)
create mode 100644 drivers/net/mlx5/hws/mlx5dr_table.c
create mode 100644 drivers/net/mlx5/hws/mlx5dr_table.h
Context is the first mlx5dr object created, all sub object:
table, matcher, rule, action are created using the context.
The context holds the capabilities and send queues used for
configuring the offloads to the HW.
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_context.c | 223
the field
copy (fc) array used for efficient items to WQE conversion.
Signed-off-by: Mark Bloch
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_definer.c | 1968 +
drivers/net/mlx5/hws/mlx5dr_definer.h | 585
2 files changed, 2553 insertions
HWS configures flows to the HW using a QP, each WQE has
the details of the flow we want to offload. The send layer
allocates the resources needed to send the request to the HW
as well as managing the queues, getting completions and
handling failures.
Signed-off-by: Mark Bloch
Signed-off-by: Alex
From: Erez Shitrit
HWS needs to manage different types of device memory in
an efficient and quick way. For this, memory pools are
being used.
Signed-off-by: Erez Shitrit
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_buddy.c | 201 +
drivers/net/mlx5/hws/mlx5dr_buddy.h
From: Erez Shitrit
The command layer is used to communicate with the FW,
query capabilities and allocate FW resources needed for HWS.
Signed-off-by: Erez Shitrit
Signed-off-by: Alex Vesker
---
drivers/common/mlx5/mlx5_prm.h| 607 ++-
drivers/net/mlx5/hws/mlx5dr_cmd.c
Add missing glue support for HWS mlx5dr layer. The new glue
functions are needed for mlx5dv create matcher and action,
which are used as the kernel root table as well as for
capabilities query like device name and ports info.
Signed-off-by: Alex Vesker
---
drivers/common/mlx5/linux/mlx5_glue.c
From: Bing Zhao
The available tags that can be used by the application are fixed
after startup.
A global array is used to store the information and transfer the TAG
item directly from the ID to the REG_C_x.
Signed-off-by: Bing Zhao
---
drivers/net/mlx5/linux/mlx5_os.c | 2 +
drivers/net/mlx5
From: Bing Zhao
In the flow table capabilities, new fields are added to query the
capability to set, add, copy to a REG_C_x.
The set capability are queried and saved for the future usage.
Signed-off-by: Bing Zhao
---
drivers/common/mlx5/mlx5_devx_cmds.c | 30 +++
drivers/commo
From: Dariusz Sosnowski
This patch initial version of functions used to:
- convert between ethdev port_id and internal tag/mask value,
- convert between IB context and internal tag/mask value.
Signed-off-by: Dariusz Sosnowski
---
drivers/net/mlx5/linux/mlx5_os.c | 10 +-
drivers/net/mlx5/
From: Suanming Mou
As hardware steering mode translates flow matcher and value in two
different stages, split the flow item matcher and value translation
to help reuse the code.
Signed-off-by: Suanming Mou
---
drivers/net/mlx5/mlx5_flow.h| 32 +
drivers/net/mlx5/mlx5_flow_dv.c | 2314 +++
From: Suanming Mou
As hardware steering root table flows still work under FW steering
mode. This commit provides shared item tranlsation code for hardware
steering root table flows.
Signed-off-by: Suanming Mou
---
drivers/net/mlx5/mlx5_flow.c| 10 +--
drivers/net/mlx5/mlx5_flow.h| 52
From: Suanming Mou
In order to share the item translation code with hardware steering
mode, this commit splits flow item translation code to a dedicate
function.
Signed-off-by: Suanming Mou
---
drivers/net/mlx5/mlx5_flow_dv.c | 1915 ---
1 file changed, 979 insertio
compile on old rdma-core or no rdma core
Alex Vesker (8):
net/mlx5: Add additional glue functions for HWS
net/mlx5/hws: Add HWS send layer
net/mlx5/hws: Add HWS definer layer
net/mlx5/hws: Add HWS context object
net/mlx5/hws: Add HWS table object
net/mlx5/hws: Add HWS matcher object
From: Hamdan Igbaria
The debug layer is used to generate a debug CSV file
containing details of the context, table, matcher, rules
and other useful debug information.
Signed-off-by: Hamdan Igbaria
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_debug.c | 462
Replace stub implenation of HWS with mlx5dr code.
Signed-off-by: Alex Vesker
---
doc/guides/nics/mlx5.rst | 5 +-
doc/guides/rel_notes/release_22_11.rst | 4 +
drivers/common/mlx5/linux/meson.build| 2 +
drivers/net/mlx5/hws/meson.build | 18
Action objects are used for executing different HW actions
over packets. Each action contains the HW resources and parameters
needed for action use over the HW when creating a rule.
Signed-off-by: Erez Shitrit
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_action.c |
configured to the HW.
Signed-off-by: Erez Shitrit
Signed-off-by: Alex Vesker
---
drivers/net/mlx5/hws/mlx5dr_rule.c | 528 +
drivers/net/mlx5/hws/mlx5dr_rule.h | 50 +++
2 files changed, 578 insertions(+)
create mode 100644 drivers/net/mlx5/hws/mlx5dr_rule.c
create
1 - 100 of 174 matches
Mail list logo