2022-11-02 06:58:05

by Cai Huoqing

[permalink] [raw]
Subject: [PATCH net-next v3 1/3] net: hinic: Convert the cmd code from decimal to hex to be more readable

The print cmd code is in hex, so using hex cmd code intead of
decimal is easy to check the value with print info.

Signed-off-by: Cai Huoqing <[email protected]>
---
v1->v2:
1.Add net-next prefix.
The comments link: https://lore.kernel.org/lkml/[email protected]/
v2->v3:
1.Merge PATCH 3/3 to this series.

.../net/ethernet/huawei/hinic/hinic_hw_dev.h | 108 +++++++++---------
1 file changed, 52 insertions(+), 56 deletions(-)

diff --git a/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h b/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h
index d2d89b0a5ef0..abffd967a791 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h
+++ b/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h
@@ -46,104 +46,100 @@ enum hinic_port_cmd {
HINIC_PORT_CMD_VF_REGISTER = 0x0,
HINIC_PORT_CMD_VF_UNREGISTER = 0x1,

- HINIC_PORT_CMD_CHANGE_MTU = 2,
+ HINIC_PORT_CMD_CHANGE_MTU = 0x2,

- HINIC_PORT_CMD_ADD_VLAN = 3,
- HINIC_PORT_CMD_DEL_VLAN = 4,
+ HINIC_PORT_CMD_ADD_VLAN = 0x3,
+ HINIC_PORT_CMD_DEL_VLAN = 0x4,

- HINIC_PORT_CMD_SET_PFC = 5,
+ HINIC_PORT_CMD_SET_PFC = 0x5,

- HINIC_PORT_CMD_SET_MAC = 9,
- HINIC_PORT_CMD_GET_MAC = 10,
- HINIC_PORT_CMD_DEL_MAC = 11,
+ HINIC_PORT_CMD_SET_MAC = 0x9,
+ HINIC_PORT_CMD_GET_MAC = 0xA,
+ HINIC_PORT_CMD_DEL_MAC = 0xB,

- HINIC_PORT_CMD_SET_RX_MODE = 12,
+ HINIC_PORT_CMD_SET_RX_MODE = 0xC,

- HINIC_PORT_CMD_GET_PAUSE_INFO = 20,
- HINIC_PORT_CMD_SET_PAUSE_INFO = 21,
+ HINIC_PORT_CMD_GET_PAUSE_INFO = 0x14,
+ HINIC_PORT_CMD_SET_PAUSE_INFO = 0x15,

- HINIC_PORT_CMD_GET_LINK_STATE = 24,
+ HINIC_PORT_CMD_GET_LINK_STATE = 0x18,

- HINIC_PORT_CMD_SET_LRO = 25,
+ HINIC_PORT_CMD_SET_LRO = 0x19,

- HINIC_PORT_CMD_SET_RX_CSUM = 26,
+ HINIC_PORT_CMD_SET_RX_CSUM = 0x1A,

- HINIC_PORT_CMD_SET_RX_VLAN_OFFLOAD = 27,
+ HINIC_PORT_CMD_SET_RX_VLAN_OFFLOAD = 0x1B,

- HINIC_PORT_CMD_GET_PORT_STATISTICS = 28,
+ HINIC_PORT_CMD_GET_PORT_STATISTICS = 0x1C,

- HINIC_PORT_CMD_CLEAR_PORT_STATISTICS = 29,
+ HINIC_PORT_CMD_CLEAR_PORT_STATISTICS = 0x1D,

- HINIC_PORT_CMD_GET_VPORT_STAT = 30,
+ HINIC_PORT_CMD_GET_VPORT_STAT = 0x1E,

- HINIC_PORT_CMD_CLEAN_VPORT_STAT = 31,
+ HINIC_PORT_CMD_CLEAN_VPORT_STAT = 0x1F,

- HINIC_PORT_CMD_GET_RSS_TEMPLATE_INDIR_TBL = 37,
+ HINIC_PORT_CMD_GET_RSS_TEMPLATE_INDIR_TBL = 0x25,

- HINIC_PORT_CMD_SET_PORT_STATE = 41,
+ HINIC_PORT_CMD_SET_PORT_STATE = 0x29,

- HINIC_PORT_CMD_SET_RSS_TEMPLATE_TBL = 43,
+ HINIC_PORT_CMD_SET_RSS_TEMPLATE_TBL = 0x2B,
+ HINIC_PORT_CMD_GET_RSS_TEMPLATE_TBL = 0x2C,

- HINIC_PORT_CMD_GET_RSS_TEMPLATE_TBL = 44,
+ HINIC_PORT_CMD_SET_RSS_HASH_ENGINE = 0x2D,
+ HINIC_PORT_CMD_GET_RSS_HASH_ENGINE = 0x2E,

- HINIC_PORT_CMD_SET_RSS_HASH_ENGINE = 45,
+ HINIC_PORT_CMD_GET_RSS_CTX_TBL = 0x2F,
+ HINIC_PORT_CMD_SET_RSS_CTX_TBL = 0x30,

- HINIC_PORT_CMD_GET_RSS_HASH_ENGINE = 46,
+ HINIC_PORT_CMD_RSS_TEMP_MGR = 0x31,

- HINIC_PORT_CMD_GET_RSS_CTX_TBL = 47,
+ HINIC_PORT_CMD_RD_LINE_TBL = 0x39,

- HINIC_PORT_CMD_SET_RSS_CTX_TBL = 48,
+ HINIC_PORT_CMD_RSS_CFG = 0x42,

- HINIC_PORT_CMD_RSS_TEMP_MGR = 49,
+ HINIC_PORT_CMD_FWCTXT_INIT = 0x45,

- HINIC_PORT_CMD_RD_LINE_TBL = 57,
+ HINIC_PORT_CMD_GET_LOOPBACK_MODE = 0x48,
+ HINIC_PORT_CMD_SET_LOOPBACK_MODE = 0x49,

- HINIC_PORT_CMD_RSS_CFG = 66,
+ HINIC_PORT_CMD_ENABLE_SPOOFCHK = 0x4E,

- HINIC_PORT_CMD_FWCTXT_INIT = 69,
+ HINIC_PORT_CMD_GET_MGMT_VERSION = 0x58,

- HINIC_PORT_CMD_GET_LOOPBACK_MODE = 72,
- HINIC_PORT_CMD_SET_LOOPBACK_MODE,
+ HINIC_PORT_CMD_SET_FUNC_STATE = 0x5D,

- HINIC_PORT_CMD_ENABLE_SPOOFCHK = 78,
+ HINIC_PORT_CMD_GET_GLOBAL_QPN = 0x66,

- HINIC_PORT_CMD_GET_MGMT_VERSION = 88,
+ HINIC_PORT_CMD_SET_VF_RATE = 0x69,

- HINIC_PORT_CMD_SET_FUNC_STATE = 93,
+ HINIC_PORT_CMD_SET_VF_VLAN = 0x6A,
+ HINIC_PORT_CMD_CLR_VF_VLAN = 0x6B,

- HINIC_PORT_CMD_GET_GLOBAL_QPN = 102,
+ HINIC_PORT_CMD_SET_TSO = 0x70,

- HINIC_PORT_CMD_SET_VF_RATE = 105,
+ HINIC_PORT_CMD_UPDATE_FW = 0x72,

- HINIC_PORT_CMD_SET_VF_VLAN = 106,
+ HINIC_PORT_CMD_SET_RQ_IQ_MAP = 0x73,

- HINIC_PORT_CMD_CLR_VF_VLAN,
+ HINIC_PORT_CMD_LINK_STATUS_REPORT = 0xA0,

- HINIC_PORT_CMD_SET_TSO = 112,
+ HINIC_PORT_CMD_UPDATE_MAC = 0xA4,

- HINIC_PORT_CMD_UPDATE_FW = 114,
+ HINIC_PORT_CMD_GET_CAP = 0xAA,

- HINIC_PORT_CMD_SET_RQ_IQ_MAP = 115,
+ HINIC_PORT_CMD_GET_LINK_MODE = 0xD9,

- HINIC_PORT_CMD_LINK_STATUS_REPORT = 160,
+ HINIC_PORT_CMD_SET_SPEED = 0xDA,

- HINIC_PORT_CMD_UPDATE_MAC = 164,
+ HINIC_PORT_CMD_SET_AUTONEG = 0xDB,

- HINIC_PORT_CMD_GET_CAP = 170,
+ HINIC_PORT_CMD_GET_STD_SFP_INFO = 0xF0,

- HINIC_PORT_CMD_GET_LINK_MODE = 217,
+ HINIC_PORT_CMD_SET_LRO_TIMER = 0xF4,

- HINIC_PORT_CMD_SET_SPEED = 218,
+ HINIC_PORT_CMD_SET_VF_MAX_MIN_RATE = 0xF9,

- HINIC_PORT_CMD_SET_AUTONEG = 219,
-
- HINIC_PORT_CMD_GET_STD_SFP_INFO = 240,
-
- HINIC_PORT_CMD_SET_LRO_TIMER = 244,
-
- HINIC_PORT_CMD_SET_VF_MAX_MIN_RATE = 249,
-
- HINIC_PORT_CMD_GET_SFP_ABS = 251,
+ HINIC_PORT_CMD_GET_SFP_ABS = 0xFB,
};

/* cmd of mgmt CPU message for HILINK module */
--
2.25.1



2022-11-02 06:58:59

by Cai Huoqing

[permalink] [raw]
Subject: [PATCH net-next v3 2/3] net: hinic: Add control command support for VF PMD driver in DPDK

HINIC has a mailbox for PF-VF communication and the VF driver
could send port control command to PF driver via mailbox.

The control command only can be set to register in PF,
so add support in PF driver for VF PMD driver control
command when VF PMD driver work with linux PF driver.

Then, no need to add handlers to nic_vf_cmd_msg_handler[],
because the host driver just forwards it to the firmware.
Actually the firmware works on a coprocessor MGMT_CPU(inside the NIC)
which will recv and deal with these commands.

Signed-off-by: Cai Huoqing <[email protected]>
---
v1->v2:
1.Update the commit messsage.
2.Add net-next prefix.
The comments link: https://lore.kernel.org/lkml/[email protected]/
v2->v3:
1.Merge PATCH 3/3 to this series.

.../net/ethernet/huawei/hinic/hinic_hw_dev.h | 64 +++++++++++++++++++
.../net/ethernet/huawei/hinic/hinic_sriov.c | 18 ++++++
2 files changed, 82 insertions(+)

diff --git a/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h b/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h
index abffd967a791..4f561e4e849a 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h
+++ b/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.h
@@ -53,11 +53,15 @@ enum hinic_port_cmd {

HINIC_PORT_CMD_SET_PFC = 0x5,

+ HINIC_PORT_CMD_SET_ETS = 0x7,
+ HINIC_PORT_CMD_GET_ETS = 0x8,
+
HINIC_PORT_CMD_SET_MAC = 0x9,
HINIC_PORT_CMD_GET_MAC = 0xA,
HINIC_PORT_CMD_DEL_MAC = 0xB,

HINIC_PORT_CMD_SET_RX_MODE = 0xC,
+ HINIC_PORT_CMD_SET_ANTI_ATTACK_RATE = 0xD,

HINIC_PORT_CMD_GET_PAUSE_INFO = 0x14,
HINIC_PORT_CMD_SET_PAUSE_INFO = 0x15,
@@ -81,6 +85,7 @@ enum hinic_port_cmd {
HINIC_PORT_CMD_GET_RSS_TEMPLATE_INDIR_TBL = 0x25,

HINIC_PORT_CMD_SET_PORT_STATE = 0x29,
+ HINIC_PORT_CMD_GET_PORT_STATE = 0x30,

HINIC_PORT_CMD_SET_RSS_TEMPLATE_TBL = 0x2B,
HINIC_PORT_CMD_GET_RSS_TEMPLATE_TBL = 0x2C,
@@ -97,17 +102,29 @@ enum hinic_port_cmd {

HINIC_PORT_CMD_RSS_CFG = 0x42,

+ HINIC_PORT_CMD_GET_PHY_TYPE = 0x44,
+
HINIC_PORT_CMD_FWCTXT_INIT = 0x45,

HINIC_PORT_CMD_GET_LOOPBACK_MODE = 0x48,
HINIC_PORT_CMD_SET_LOOPBACK_MODE = 0x49,

+ HINIC_PORT_CMD_GET_JUMBO_FRAME_SIZE = 0x4A,
+ HINIC_PORT_CMD_SET_JUMBO_FRAME_SIZE = 0x4B,
+
HINIC_PORT_CMD_ENABLE_SPOOFCHK = 0x4E,

HINIC_PORT_CMD_GET_MGMT_VERSION = 0x58,

+ HINIC_PORT_CMD_GET_PORT_TYPE = 0x5B,
+
HINIC_PORT_CMD_SET_FUNC_STATE = 0x5D,

+ HINIC_PORT_CMD_GET_PORT_ID_BY_FUNC_ID = 0x5E,
+
+ HINIC_PORT_CMD_GET_DMA_CS = 0x64,
+ HINIC_PORT_CMD_SET_DMA_CS = 0x65,
+
HINIC_PORT_CMD_GET_GLOBAL_QPN = 0x66,

HINIC_PORT_CMD_SET_VF_RATE = 0x69,
@@ -121,25 +138,72 @@ enum hinic_port_cmd {

HINIC_PORT_CMD_SET_RQ_IQ_MAP = 0x73,

+ HINIC_PORT_CMD_SET_PFC_THD = 0x75,
+
HINIC_PORT_CMD_LINK_STATUS_REPORT = 0xA0,

+ HINIC_PORT_CMD_SET_LOSSLESS_ETH = 0xA3,
+
HINIC_PORT_CMD_UPDATE_MAC = 0xA4,

HINIC_PORT_CMD_GET_CAP = 0xAA,

+ HINIC_PORT_CMD_UP_TC_ADD_FLOW = 0xAF,
+ HINIC_PORT_CMD_UP_TC_DEL_FLOW = 0xB0,
+ HINIC_PORT_CMD_UP_TC_GET_FLOW = 0xB1,
+
+ HINIC_PORT_CMD_UP_TC_FLUSH_TCAM = 0xB2,
+
+ HINIC_PORT_CMD_UP_TC_CTRL_TCAM_BLOCK = 0xB3,
+
+ HINIC_PORT_CMD_UP_TC_ENABLE = 0xB4,
+
+ HINIC_PORT_CMD_UP_TC_GET_TCAM_BLOCK = 0xB5,
+
+ HINIC_PORT_CMD_SET_IPSU_MAC = 0xCB,
+ HINIC_PORT_CMD_GET_IPSU_MAC = 0xCC,
+
+ HINIC_PORT_CMD_SET_XSFP_STATUS = 0xD4,
HINIC_PORT_CMD_GET_LINK_MODE = 0xD9,

HINIC_PORT_CMD_SET_SPEED = 0xDA,

HINIC_PORT_CMD_SET_AUTONEG = 0xDB,

+ HINIC_PORT_CMD_CLEAR_QP_RES = 0xDD,
+
+ HINIC_PORT_CMD_SET_SUPER_CQE = 0xDE,
+
+ HINIC_PORT_CMD_SET_VF_COS = 0xDF,
+ HINIC_PORT_CMD_GET_VF_COS = 0xE1,
+
+ HINIC_PORT_CMD_CABLE_PLUG_EVENT = 0xE5,
+
+ HINIC_PORT_CMD_LINK_ERR_EVENT = 0xE6,
+
+ HINIC_PORT_CMD_SET_COS_UP_MAP = 0xE8,
+
+ HINIC_PORT_CMD_RESET_LINK_CFG = 0xEB,
+
HINIC_PORT_CMD_GET_STD_SFP_INFO = 0xF0,

+ HINIC_PORT_CMD_FORCE_PKT_DROP = 0xF3,
+
HINIC_PORT_CMD_SET_LRO_TIMER = 0xF4,

+ HINIC_PORT_CMD_SET_VHD_CFG = 0xF7,
+
+ HINIC_PORT_CMD_SET_LINK_FOLLOW = 0xF8,
+
HINIC_PORT_CMD_SET_VF_MAX_MIN_RATE = 0xF9,

HINIC_PORT_CMD_GET_SFP_ABS = 0xFB,
+
+ HINIC_PORT_CMD_Q_FILTER = 0xFC,
+
+ HINIC_PORT_CMD_TCAM_FILTER = 0xFE,
+
+ HINIC_PORT_CMD_SET_VLAN_FILTER = 0xFF
};

/* cmd of mgmt CPU message for HILINK module */
diff --git a/drivers/net/ethernet/huawei/hinic/hinic_sriov.c b/drivers/net/ethernet/huawei/hinic/hinic_sriov.c
index f7e05b41385b..ee357088d021 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_sriov.c
+++ b/drivers/net/ethernet/huawei/hinic/hinic_sriov.c
@@ -489,6 +489,24 @@ static struct vf_cmd_check_handle nic_cmd_support_vf[] = {
{HINIC_PORT_CMD_UPDATE_MAC, hinic_mbox_check_func_id_8B},
{HINIC_PORT_CMD_GET_CAP, hinic_mbox_check_func_id_8B},
{HINIC_PORT_CMD_GET_LINK_MODE, hinic_mbox_check_func_id_8B},
+ {HINIC_PORT_CMD_GET_VF_COS, NULL},
+ {HINIC_PORT_CMD_SET_VHD_CFG, hinic_mbox_check_func_id_8B},
+ {HINIC_PORT_CMD_SET_VLAN_FILTER, hinic_mbox_check_func_id_8B},
+ {HINIC_PORT_CMD_Q_FILTER, hinic_mbox_check_func_id_8B},
+ {HINIC_PORT_CMD_TCAM_FILTER, NULL},
+ {HINIC_PORT_CMD_UP_TC_ADD_FLOW, NULL},
+ {HINIC_PORT_CMD_UP_TC_DEL_FLOW, NULL},
+ {HINIC_PORT_CMD_UP_TC_FLUSH_TCAM, hinic_mbox_check_func_id_8B},
+ {HINIC_PORT_CMD_UP_TC_CTRL_TCAM_BLOCK, hinic_mbox_check_func_id_8B},
+ {HINIC_PORT_CMD_UP_TC_ENABLE, hinic_mbox_check_func_id_8B},
+ {HINIC_PORT_CMD_CABLE_PLUG_EVENT, NULL},
+ {HINIC_PORT_CMD_LINK_ERR_EVENT, NULL},
+ {HINIC_PORT_CMD_SET_PORT_STATE, hinic_mbox_check_func_id_8B},
+ {HINIC_PORT_CMD_SET_ETS, NULL},
+ {HINIC_PORT_CMD_SET_ANTI_ATTACK_RATE, NULL},
+ {HINIC_PORT_CMD_RESET_LINK_CFG, hinic_mbox_check_func_id_8B},
+ {HINIC_PORT_CMD_SET_LINK_FOLLOW, NULL},
+ {HINIC_PORT_CMD_CLEAR_QP_RES, NULL},
};

#define CHECK_IPSU_15BIT 0X8000
--
2.25.1