Commit 510f9f61 authored by Yevgeny Kliteynik's avatar Yevgeny Kliteynik Committed by Saeed Mahameed

net/mlx5: HWS, added API and enabled HWS support

Enabling HWS support in the mlx5 driver:
 - added HWS API header
 - added HWS files in the mlx5 driver makefile
 - added kconfig flag that enables HWS compilation
Reviewed-by: default avatarErez Shitrit <erezsh@nvidia.com>
Signed-off-by: default avatarYevgeny Kliteynik <kliteyn@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
parent 2ca62599
...@@ -130,6 +130,9 @@ Enabling the driver and kconfig options ...@@ -130,6 +130,9 @@ Enabling the driver and kconfig options
| Build support for software-managed steering in the NIC. | Build support for software-managed steering in the NIC.
**CONFIG_MLX5_HW_STEERING=(y/n)**
| Build support for hardware-managed steering in the NIC.
**CONFIG_MLX5_TC_CT=(y/n)** **CONFIG_MLX5_TC_CT=(y/n)**
......
...@@ -172,6 +172,16 @@ config MLX5_SW_STEERING ...@@ -172,6 +172,16 @@ config MLX5_SW_STEERING
help help
Build support for software-managed steering in the NIC. Build support for software-managed steering in the NIC.
config MLX5_HW_STEERING
bool "Mellanox Technologies hardware-managed steering"
depends on MLX5_CORE_EN && MLX5_ESWITCH
default y
help
Build support for Hardware-Managed Flow Steering (HMFS) in the NIC.
HMFS is a new approach to managing steering rules where STEs are
written to ICM by HW (as opposed to SW in software-managed steering),
which allows higher rate of rule insertion.
config MLX5_SF config MLX5_SF
bool "Mellanox Technologies subfunction device support using auxiliary device" bool "Mellanox Technologies subfunction device support using auxiliary device"
depends on MLX5_CORE && MLX5_CORE_EN depends on MLX5_CORE && MLX5_CORE_EN
......
...@@ -119,6 +119,27 @@ mlx5_core-$(CONFIG_MLX5_SW_STEERING) += steering/dr_domain.o steering/dr_table.o ...@@ -119,6 +119,27 @@ mlx5_core-$(CONFIG_MLX5_SW_STEERING) += steering/dr_domain.o steering/dr_table.o
steering/dr_action.o steering/fs_dr.o \ steering/dr_action.o steering/fs_dr.o \
steering/dr_definer.o steering/dr_ptrn.o \ steering/dr_definer.o steering/dr_ptrn.o \
steering/dr_arg.o steering/dr_dbg.o lib/smfs.o steering/dr_arg.o steering/dr_dbg.o lib/smfs.o
#
# HW Steering
#
mlx5_core-$(CONFIG_MLX5_HW_STEERING) += steering/hws/mlx5hws_cmd.o \
steering/hws/mlx5hws_context.o \
steering/hws/mlx5hws_pat_arg.o \
steering/hws/mlx5hws_buddy.o \
steering/hws/mlx5hws_pool.o \
steering/hws/mlx5hws_table.o \
steering/hws/mlx5hws_action.o \
steering/hws/mlx5hws_rule.o \
steering/hws/mlx5hws_matcher.o \
steering/hws/mlx5hws_send.o \
steering/hws/mlx5hws_definer.o \
steering/hws/mlx5hws_bwc.o \
steering/hws/mlx5hws_debug.o \
steering/hws/mlx5hws_vport.o \
steering/hws/mlx5hws_bwc_complex.o
# #
# SF device # SF device
# #
......
# SPDX-License-Identifier: GPL-2.0-only
subdir-ccflags-y += -I$(src)/..
This diff is collapsed.
...@@ -5,13 +5,13 @@ ...@@ -5,13 +5,13 @@
#define MLX5HWS_INTERNAL_H_ #define MLX5HWS_INTERNAL_H_
#include <linux/mlx5/transobj.h> #include <linux/mlx5/transobj.h>
#include <linux/mlx5/vport.h>
#include "../dr_types.h" #include "fs_core.h"
#include "wq.h"
#include "lib/mlx5.h"
#include "mlx5hws_prm.h" #include "mlx5hws_prm.h"
#include "mlx5hws.h" #include "mlx5hws.h"
#include "mlx5hws_pool.h" #include "mlx5hws_pool.h"
#include "mlx5hws_vport.h" #include "mlx5hws_vport.h"
#include "mlx5hws_context.h" #include "mlx5hws_context.h"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment