linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Cai Huoqing <cai.huoqing@linux.dev>
To: shaozhengchao <shaozhengchao@huawei.com>
Cc: "David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@google.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Bin Chen" <bin.chen@corigine.com>,
	"Krzysztof Wilczyński" <kw@linux.com>,
	"Peter Chen" <peter.chen@kernel.org>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] net: hinic: Add control command support for VF PMD driver in DPDK
Date: Fri, 28 Oct 2022 13:24:03 +0800	[thread overview]
Message-ID: <20221028052403.GC3164@chq-T47> (raw)
In-Reply-To: <491aea68-bee6-3bd5-903d-1071b6c1cb73@huawei.com>

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 <cai.huoqing@linux.dev>
> > ---
> >   .../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

  reply	other threads:[~2022-10-28  5:24 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-26 12:59 [PATCH 1/2] net: hinic: Convert the cmd code from decimal to hex to be more readable Cai Huoqing
2022-10-26 12:59 ` [PATCH 2/2] net: hinic: Add control command support for VF PMD driver in DPDK Cai Huoqing
2022-10-27 18:03   ` Jakub Kicinski
2022-10-28  4:56     ` Cai Huoqing
2022-10-28 15:56       ` Jakub Kicinski
2022-10-29  7:53         ` Cai Huoqing
2022-10-31 23:52           ` Jakub Kicinski
2022-11-01  1:49             ` Cai Huoqing
2022-11-01  2:58               ` Jakub Kicinski
2022-10-28  1:21   ` shaozhengchao
2022-10-28  5:24     ` Cai Huoqing [this message]
2022-10-27 18:02 ` [PATCH 1/2] net: hinic: Convert the cmd code from decimal to hex to be more readable Jakub Kicinski
2022-10-28  4:37   ` Cai Huoqing
2022-10-31  2:17   ` Cai Huoqing
2022-11-01  2:23   ` Cai Huoqing

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221028052403.GC3164@chq-T47 \
    --to=cai.huoqing@linux.dev \
    --cc=bin.chen@corigine.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=kw@linux.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=peter.chen@kernel.org \
    --cc=shaozhengchao@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).