Message ID | 150768146806.5320.1212910477662310789.stgit@anamdev.jf.intel.com |
---|---|
State | Changes Requested |
Delegated to: | Jeff Kirsher |
Headers | show |
Series | tc-flower based cloud filters in i40e | expand |
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@intel.com> > Signed-off-by: Kiran Patil <kiran.patil@intel.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@osuosl.org > https://lists.osuosl.org/mailman/listinfo/intel-wired-lan >
On 10/11/2017 4:30 PM, Shannon Nelson wrote: > 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@intel.com> >> Signed-off-by: Kiran Patil <kiran.patil@intel.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. I will address all your comments in v5. I'm thinking of changing these names to I40E_CLOUD_FILTER_MODEX. > >> + >> u32 management_mode; >> u32 mng_protocols_over_mctp; >> #define I40E_MNG_PROTOCOL_PLDM 0x2 >> >> _______________________________________________ >> Intel-wired-lan mailing list >> Intel-wired-lan@osuosl.org >> https://lists.osuosl.org/mailman/listinfo/intel-wired-lan >>
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 + * 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 + u32 management_mode; u32 mng_protocols_over_mctp; #define I40E_MNG_PROTOCOL_PLDM 0x2