[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <13c912bb-065a-f732-18a1-f00918b0fafd@oracle.com>
Date: Wed, 11 Oct 2017 16:30:40 -0700
From: Shannon Nelson <shannon.nelson@...cle.com>
To: intel-wired-lan@...osl.org,
Amritha Nambiar <amritha.nambiar@...el.com>
Cc: "netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: Re: [Intel-wired-lan] [jkirsher/next-queue PATCH v4 3/6] i40e: Cloud
filter mode for set_switch_config command
On 10/10/2017 5:24 PM, Amritha Nambiar wrote:
> Add definitions for L4 filters and switch modes based on cloud filters
> modes and extend the set switch config command to include the
> additional cloud filter mode.
>
> Signed-off-by: Amritha Nambiar <amritha.nambiar@...el.com>
> Signed-off-by: Kiran Patil <kiran.patil@...el.com>
> ---
> drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h | 30 ++++++++++++++++++++-
> drivers/net/ethernet/intel/i40e/i40e_common.c | 4 ++-
> drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 2 +
> drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +
> drivers/net/ethernet/intel/i40e/i40e_prototype.h | 2 +
> drivers/net/ethernet/intel/i40e/i40e_type.h | 9 ++++++
> 6 files changed, 44 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h b/drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h
> index 6a5db1b..729976b 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h
> +++ b/drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h
> @@ -790,7 +790,35 @@ struct i40e_aqc_set_switch_config {
> */
> __le16 first_tag;
> __le16 second_tag;
> - u8 reserved[6];
> + /* Next byte is split into following:
> + * Bit 7 : 0: No action, 1: Switch to mode defined by bits 6:0
> + * Bit 6: 0 : Destination Port, 1: source port
> + * Bit 5..4: L4 type
Can you tweak the formatting on these comments to line up the first
couple of ':'s?
> + * 0: rsvd
> + * 1: TCP
> + * 2: UDP
> + * 3: Both TCP and UDP
> + * Bits 3:0 Mode
> + * 0: default mode
> + * 1: L4 port only mode
> + * 2: non-tunneled mode
> + * 3: tunneled mode
> + */
> +#define I40E_AQ_SET_SWITCH_BIT7_VALID 0x80
> +
> +#define I40E_AQ_SET_SWITCH_L4_SRC_PORT 0x40
> +
> +#define I40E_AQ_SET_SWITCH_L4_TYPE_RSVD 0x00
> +#define I40E_AQ_SET_SWITCH_L4_TYPE_TCP 0x10
> +#define I40E_AQ_SET_SWITCH_L4_TYPE_UDP 0x20
> +#define I40E_AQ_SET_SWITCH_L4_TYPE_BOTH 0x30
> +
> +#define I40E_AQ_SET_SWITCH_MODE_DEFAULT 0x00
> +#define I40E_AQ_SET_SWITCH_MODE_L4_PORT 0x01
> +#define I40E_AQ_SET_SWITCH_MODE_NON_TUNNEL 0x02
> +#define I40E_AQ_SET_SWITCH_MODE_TUNNEL 0x03
> + u8 mode;
> + u8 rsvd5[5];
> };
>
> I40E_CHECK_CMD_LENGTH(i40e_aqc_set_switch_config);
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_common.c b/drivers/net/ethernet/intel/i40e/i40e_common.c
> index 1b85eb3..0b3c5b7 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_common.c
> +++ b/drivers/net/ethernet/intel/i40e/i40e_common.c
> @@ -2402,13 +2402,14 @@ i40e_status i40e_aq_get_switch_config(struct i40e_hw *hw,
> * @hw: pointer to the hardware structure
> * @flags: bit flag values to set
> * @valid_flags: which bit flags to set
> + * @mode: cloud filter mode
> * @cmd_details: pointer to command details structure or NULL
> *
> * Set switch configuration bits
> **/
> enum i40e_status_code i40e_aq_set_switch_config(struct i40e_hw *hw,
> u16 flags,
> - u16 valid_flags,
> + u16 valid_flags, u8 mode,
> struct i40e_asq_cmd_details *cmd_details)
> {
> struct i40e_aq_desc desc;
> @@ -2420,6 +2421,7 @@ enum i40e_status_code i40e_aq_set_switch_config(struct i40e_hw *hw,
> i40e_aqc_opc_set_switch_config);
> scfg->flags = cpu_to_le16(flags);
> scfg->valid_flags = cpu_to_le16(valid_flags);
> + scfg->mode = mode;
> if (hw->flags & I40E_HW_FLAG_802_1AD_CAPABLE) {
> scfg->switch_tag = cpu_to_le16(hw->switch_tag);
> scfg->first_tag = cpu_to_le16(hw->first_tag);
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
> index a760d75..37ca294 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
> +++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
> @@ -4341,7 +4341,7 @@ static int i40e_set_priv_flags(struct net_device *dev, u32 flags)
> sw_flags = I40E_AQ_SET_SWITCH_CFG_PROMISC;
> valid_flags = I40E_AQ_SET_SWITCH_CFG_PROMISC;
> ret = i40e_aq_set_switch_config(&pf->hw, sw_flags, valid_flags,
> - NULL);
> + 0, NULL);
> if (ret && pf->hw.aq.asq_last_status != I40E_AQ_RC_ESRCH) {
> dev_info(&pf->pdev->dev,
> "couldn't set switch config bits, err %s aq_err %s\n",
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
> index 33a8f429..0539d43 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_main.c
> +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
> @@ -12165,7 +12165,7 @@ static int i40e_setup_pf_switch(struct i40e_pf *pf, bool reinit)
> u16 valid_flags;
>
> valid_flags = I40E_AQ_SET_SWITCH_CFG_PROMISC;
> - ret = i40e_aq_set_switch_config(&pf->hw, flags, valid_flags,
> + ret = i40e_aq_set_switch_config(&pf->hw, flags, valid_flags, 0,
> NULL);
> if (ret && pf->hw.aq.asq_last_status != I40E_AQ_RC_ESRCH) {
> dev_info(&pf->pdev->dev,
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_prototype.h b/drivers/net/ethernet/intel/i40e/i40e_prototype.h
> index 0150256..92869f5 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_prototype.h
> +++ b/drivers/net/ethernet/intel/i40e/i40e_prototype.h
> @@ -190,7 +190,7 @@ i40e_status i40e_aq_get_switch_config(struct i40e_hw *hw,
> struct i40e_asq_cmd_details *cmd_details);
> enum i40e_status_code i40e_aq_set_switch_config(struct i40e_hw *hw,
> u16 flags,
> - u16 valid_flags,
> + u16 valid_flags, u8 mode,
> struct i40e_asq_cmd_details *cmd_details);
> i40e_status i40e_aq_request_resource(struct i40e_hw *hw,
> enum i40e_aq_resources_ids resource,
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_type.h b/drivers/net/ethernet/intel/i40e/i40e_type.h
> index 17a99b5..24589a4 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_type.h
> +++ b/drivers/net/ethernet/intel/i40e/i40e_type.h
> @@ -283,6 +283,15 @@ struct i40e_hw_capabilities {
> #define I40E_NVM_IMAGE_TYPE_CLOUD 0x2
> #define I40E_NVM_IMAGE_TYPE_UDP_CLOUD 0x3
>
> + /* Cloud filter modes:
> + * Mode1: Filter on L4 port only
> + * Mode2: Filter for non-tunneled traffic
> + * Mode3: Filter for tunnel traffic
> + */
> +#define I40E_NVM_IMAGE_TYPE_MODE1 0x6
> +#define I40E_NVM_IMAGE_TYPE_MODE2 0x7
> +#define I40E_NVM_IMAGE_TYPE_MODE3 0x8
These names aren't very descriptive... out of context these look like
they are describing NVM image types, not message filter types.
> +
> u32 management_mode;
> u32 mng_protocols_over_mctp;
> #define I40E_MNG_PROTOCOL_PLDM 0x2
>
> _______________________________________________
> Intel-wired-lan mailing list
> Intel-wired-lan@...osl.org
> https://lists.osuosl.org/mailman/listinfo/intel-wired-lan
>
Powered by blists - more mailing lists