2022-10-26 13:10:11

by Cai Huoqing

[permalink] [raw]
Subject: [PATCH 1/2] 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]>
---
.../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-10-26 13:36:48

by Cai Huoqing

[permalink] [raw]
Subject: [PATCH 2/2] 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.

Signed-off-by: Cai Huoqing <[email protected]>
---
.../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 a5f08b969e3f..bba41994dee6 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


2022-10-27 18:18:33

by Jakub Kicinski

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

On Wed, 26 Oct 2022 20:59:11 +0800 Cai Huoqing wrote:
> 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.

For what definition of "work"?

The commands are actually supported or you're just ignoring them
silently?

2022-10-27 18:29:02

by Jakub Kicinski

[permalink] [raw]
Subject: Re: [PATCH 1/2] net: hinic: Convert the cmd code from decimal to hex to be more readable

On Wed, 26 Oct 2022 20:59:10 +0800 Cai Huoqing wrote:
> Subject: [PATCH 1/2] net: hinic: Convert the cmd code from decimal to hex to be more readable

Please put [PATCH net-next] or [PATCH -next] in the subject,
to make the patch sorting easier for maintainers.

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

> - 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,

This deletes some entries. Please don't mix changes with mechanical
conversions.

2022-10-28 01:57:22

by shaozhengchao

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



On 2022/10/26 20:59, Cai Huoqing wrote:
> 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.
>
> Signed-off-by: Cai Huoqing <[email protected]>
> ---
> .../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 a5f08b969e3f..bba41994dee6 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
Hi Cai:
I guess how do you get the opcodes of these commands? Have they
all been tested? Is the test result consistent with the driver released
on the Huawei support website?

Zhengchao Shao

2022-10-28 04:58:31

by Cai Huoqing

[permalink] [raw]
Subject: Re: [PATCH 1/2] net: hinic: Convert the cmd code from decimal to hex to be more readable

On 27 10月 22 11:02:41, Jakub Kicinski wrote:
> On Wed, 26 Oct 2022 20:59:10 +0800 Cai Huoqing wrote:
> > Subject: [PATCH 1/2] net: hinic: Convert the cmd code from decimal to hex to be more readable
>
> Please put [PATCH net-next] or [PATCH -next] in the subject,
> to make the patch sorting easier for maintainers.
>
> > The print cmd code is in hex, so using hex cmd code intead of
> > decimal is easy to check the value with print info.
>
> > - 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,
>
> This deletes some entries. Please don't mix changes with mechanical
> conversions.
will revert these lines and resend

thanks,
Cai

2022-10-28 05:11:12

by Cai Huoqing

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

On 27 10月 22 11:03:12, Jakub Kicinski wrote:
> On Wed, 26 Oct 2022 20:59:11 +0800 Cai Huoqing wrote:
> > 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.
>
> For what definition of "work"?
Hi Jakub,
The work means that when the VF NIC driver in guest OS do some
configuration (VF L2NIC config),
firstly, VF send cmd to PF viamailbox,
then, PF deside what cmd is valid as a command filter.

see these,
./hinic_sriov.c:1031:static int nic_pf_mbox_handler(..
./hinic_sriov.c:1045: if (!hinic_mbox_check_cmd_valid(hwdev, nic_cmd_support_vf, vf_id, cmd,
>
> The commands are actually supported or you're just ignoring them
> silently?
No, if the cmd is not added to 'nic_cmd_support_vf',
the PF will return false, and the error messsage "PF Receive VFx
unsupported cmd x" in the function 'hinic_mbox_check_cmd_valid',
then, the configuration will not be set to hardware.

./hinic_hw_mbox.c:1238:bool hinic_mbox_check_cmd_valid(struct hinic_hwdev *hwdev,

Thanks,
Cai

2022-10-28 05:56:44

by Cai Huoqing

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

On 28 10月 22 09:21:09, shaozhengchao wrote:
>
>
> On 2022/10/26 20:59, Cai Huoqing wrote:
> > 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.
> >
> > Signed-off-by: Cai Huoqing <[email protected]>
> > ---
> > .../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 a5f08b969e3f..bba41994dee6 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
> Hi Cai:
> I guess how do you get the opcodes of these commands? Have they
> all been tested? Is the test result consistent with the driver released
> on the Huawei support website?
Hi Shao,
Thanks for your reply.

I try to keep this PF part support to recv hinic VF PMD driver in DPDK
upstream.
the command comes from here,
https://github.com/DPDK/dpdk/blob/main/drivers/net/hinic/base/hinic_pmd_niccfg.c

send by the DPDK-hinic function 'l2nic_msg_to_mgmt_sync' when
'hinic_func_type(hwdev) == TYPE_VF'.

for the test, the DPDK part is tested, I also test this part in SP582 NIC

Thanks.
Cai
>
> Zhengchao Shao

2022-10-28 16:38:20

by Jakub Kicinski

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

On Fri, 28 Oct 2022 12:56:55 +0800 Cai Huoqing wrote:
> > The commands are actually supported or you're just ignoring them
> > silently?
> No,

Do you mean "neither"?

> if the cmd is not added to 'nic_cmd_support_vf',
> the PF will return false, and the error messsage "PF Receive VFx
> unsupported cmd x" in the function 'hinic_mbox_check_cmd_valid',
> then, the configuration will not be set to hardware.

You're describing the behavior before the patch?

After the patch the command is ignored silently, like I said, right?
Because there is no handler added to nic_vf_cmd_msg_handler[].
Why is that okay? Or is there handler somewhere else?

2022-10-29 08:11:58

by Cai Huoqing

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

On 28 10月 22 08:56:51, Jakub Kicinski wrote:
> On Fri, 28 Oct 2022 12:56:55 +0800 Cai Huoqing wrote:
> > > The commands are actually supported or you're just ignoring them
> > > silently?
> > No,
>
> Do you mean "neither"?
>
> > if the cmd is not added to 'nic_cmd_support_vf',
> > the PF will return false, and the error messsage "PF Receive VFx
> > unsupported cmd x" in the function 'hinic_mbox_check_cmd_valid',
> > then, the configuration will not be set to hardware.
>
> You're describing the behavior before the patch?
>
> After the patch the command is ignored silently, like I said, right?
> Because there is no handler added to nic_vf_cmd_msg_handler[].
> Why is that okay? Or is there handler somewhere else?

No need to add handlers to nic_vf_cmd_msg_handler[].
It will run the path,
if (i == ARRAY_SIZE(nic_vf_cmd_msg_handler))
err = hinic_msg_to_mgmt(&pfhwdev->pf_to_mgmt, HINIC_MOD_L2NIC,
cmd, buf_in, in_size, buf_out,
out_size, HINIC_MGMT_MSG_SYNC);
right? or if not please show the related code.

2022-10-31 02:22:12

by Cai Huoqing

[permalink] [raw]
Subject: Re: [PATCH 1/2] net: hinic: Convert the cmd code from decimal to hex to be more readable

On 27 10月 22 11:02:41, Jakub Kicinski wrote:
> On Wed, 26 Oct 2022 20:59:10 +0800 Cai Huoqing wrote:
> > Subject: [PATCH 1/2] net: hinic: Convert the cmd code from decimal to hex to be more readable
>
> Please put [PATCH net-next] or [PATCH -next] in the subject,
> to make the patch sorting easier for maintainers.
>
> > The print cmd code is in hex, so using hex cmd code intead of
> > decimal is easy to check the value with print info.
>
> > - 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,
>
> This deletes some entries. Please don't mix changes with mechanical
> conversions.
After checking my patch again, these can be find,

+ HINIC_PORT_CMD_SET_AUTONEG = 0xDB,
+ HINIC_PORT_CMD_GET_STD_SFP_INFO = 0xF0,
+ HINIC_PORT_CMD_SET_LRO_TIMER = 0xF4,
+ HINIC_PORT_CMD_SET_VF_MAX_MIN_RATE = 0xF9,


2022-11-01 00:18:25

by Jakub Kicinski

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

On Sat, 29 Oct 2022 15:53:35 +0800 Cai Huoqing wrote:
> On 28 10月 22 08:56:51, Jakub Kicinski wrote:
> > > if the cmd is not added to 'nic_cmd_support_vf',
> > > the PF will return false, and the error messsage "PF Receive VFx
> > > unsupported cmd x" in the function 'hinic_mbox_check_cmd_valid',
> > > then, the configuration will not be set to hardware.
> >
> > You're describing the behavior before the patch?
> >
> > After the patch the command is ignored silently, like I said, right?
> > Because there is no handler added to nic_vf_cmd_msg_handler[].
> > Why is that okay? Or is there handler somewhere else?
>
> No need to add handlers to nic_vf_cmd_msg_handler[].
> It will run the path,
> if (i == ARRAY_SIZE(nic_vf_cmd_msg_handler))
> err = hinic_msg_to_mgmt(&pfhwdev->pf_to_mgmt, HINIC_MOD_L2NIC,
> cmd, buf_in, in_size, buf_out,
> out_size, HINIC_MGMT_MSG_SYNC);

Meaning it just forwards it to the firmware?

> right? or if not please show the related code.

I don't know, I don't know this random driver. I'm just asking you
questions because as the author of the patch _you_ are supposed to know.

2022-11-01 02:18:18

by Cai Huoqing

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

On 31 10月 22 16:52:55, Jakub Kicinski wrote:
> On Sat, 29 Oct 2022 15:53:35 +0800 Cai Huoqing wrote:
> > On 28 10月 22 08:56:51, Jakub Kicinski wrote:
> > > > if the cmd is not added to 'nic_cmd_support_vf',
> > > > the PF will return false, and the error messsage "PF Receive VFx
> > > > unsupported cmd x" in the function 'hinic_mbox_check_cmd_valid',
> > > > then, the configuration will not be set to hardware.
> > >
> > > You're describing the behavior before the patch?
> > >
> > > After the patch the command is ignored silently, like I said, right?
> > > Because there is no handler added to nic_vf_cmd_msg_handler[].
> > > Why is that okay? Or is there handler somewhere else?
> >
> > No need to add handlers to nic_vf_cmd_msg_handler[].
> > It will run the path,
> > if (i == ARRAY_SIZE(nic_vf_cmd_msg_handler))
> > err = hinic_msg_to_mgmt(&pfhwdev->pf_to_mgmt, HINIC_MOD_L2NIC,
> > cmd, buf_in, in_size, buf_out,
> > out_size, HINIC_MGMT_MSG_SYNC);
>
> Meaning it just forwards it to the firmware?
Yes, 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.

Thanks,
Cai
>
> > right? or if not please show the related code.
>
> I don't know, I don't know this random driver. I'm just asking you
> questions because as the author of the patch _you_ are supposed to know.

2022-11-01 02:34:34

by Cai Huoqing

[permalink] [raw]
Subject: Re: [PATCH 1/2] net: hinic: Convert the cmd code from decimal to hex to be more readable

On 27 10月 22 11:02:41, Jakub Kicinski wrote:
> On Wed, 26 Oct 2022 20:59:10 +0800 Cai Huoqing wrote:
> > Subject: [PATCH 1/2] net: hinic: Convert the cmd code from decimal to hex to be more readable
>
> Please put [PATCH net-next] or [PATCH -next] in the subject,
> to make the patch sorting easier for maintainers.
This series is based on net-next, if need to resend, I will add
net-next prefix.

Thanks,
Cai
>
> > The print cmd code is in hex, so using hex cmd code intead of
> > decimal is easy to check the value with print info.
>
> > - 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,
>
> This deletes some entries. Please don't mix changes with mechanical
> conversions.

2022-11-01 04:04:33

by Jakub Kicinski

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

On Tue, 1 Nov 2022 09:49:17 +0800 Cai Huoqing wrote:
> > Meaning it just forwards it to the firmware?
> Yes, 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.

I see, please include this info in the commit message for v2.