[dpdk-dev] [PATCH 1/4] net/i40e: support replace filter type
Xing, Beilei
beilei.xing at intel.com
Thu Mar 9 11:43:00 CET 2017
> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Thursday, March 9, 2017 6:02 PM
> To: Xing, Beilei <beilei.xing at intel.com>; Wu, Jingjing <jingjing.wu at intel.com>
> Cc: Zhang, Helin <helin.zhang at intel.com>; dev at dpdk.org; Iremonger,
> Bernard <bernard.iremonger at intel.com>; Stroe, Laura
> <laura.stroe at intel.com>
> Subject: Re: [dpdk-dev] [PATCH 1/4] net/i40e: support replace filter type
>
> On 3/9/2017 5:59 AM, Xing, Beilei wrote:
> >
> >
> >> -----Original Message-----
> >> From: Yigit, Ferruh
> >> Sent: Wednesday, March 8, 2017 11:50 PM
> >> To: Xing, Beilei <beilei.xing at intel.com>; Wu, Jingjing
> >> <jingjing.wu at intel.com>
> >> Cc: Zhang, Helin <helin.zhang at intel.com>; dev at dpdk.org; Iremonger,
> >> Bernard <bernard.iremonger at intel.com>; Stroe, Laura
> >> <laura.stroe at intel.com>
> >> Subject: Re: [dpdk-dev] [PATCH 1/4] net/i40e: support replace filter
> >> type
> >>
> >> On 3/3/2017 9:31 AM, Beilei Xing wrote:
> >>> Add new admin queue function and extended fields in DCR 288:
> >>> - Add admin queue function for Replace filter
> >>> command (Opcode: 0x025F)
> >>> - Add General fields for Add/Remove Cloud filters
> >>> command
> >>>
> >>> This patch will be removed to base driver in future.
> >>>
> >>> Signed-off-by: Bernard Iremonger <bernard.iremonger at intel.com>
> >>> Signed-off-by: Stroe Laura <laura.stroe at intel.com>
> >>> Signed-off-by: Jingjing Wu <jingjing.wu at intel.com>
> >>> Signed-off-by: Beilei Xing <beilei.xing at intel.com>
> >>> ---
> >>> drivers/net/i40e/i40e_ethdev.h | 106
> ++++++++++++++++++++++++++++
> >>> drivers/net/i40e/i40e_flow.c | 152
> >> +++++++++++++++++++++++++++++++++++++++++
> >>> 2 files changed, 258 insertions(+)
> >>>
> >>> diff --git a/drivers/net/i40e/i40e_ethdev.h
> >>> b/drivers/net/i40e/i40e_ethdev.h index f545850..3a49865 100644
> >>> --- a/drivers/net/i40e/i40e_ethdev.h
> >>> +++ b/drivers/net/i40e/i40e_ethdev.h
> >>> @@ -729,6 +729,100 @@ struct i40e_valid_pattern {
> >>> parse_filter_t parse_filter;
> >>> };
> >>>
> >>> +/* Support replace filter */
> >>> +
> >>> +/* i40e_aqc_add_remove_cloud_filters_element_big_data is used
> when
> >>> + * I40E_AQC_ADD_REM_CLOUD_CMD_BIG_BUFFER flag is set. refer to
> >>> + * DCR288
> >>
> >> Please do not refer to DCR, unless you can provide a public link for it.
> > OK, got it.
> >
> >>
> >>> + */
> >>> +struct i40e_aqc_add_remove_cloud_filters_element_big_data {
> >>> + struct i40e_aqc_add_remove_cloud_filters_element_data element;
> >>
> >> What is the difference between
> >> "i40e_aqc_add_remove_cloud_filters_element_big_data" and
> >> "i40e_aqc_add_remove_cloud_filters_element_data", why need
> big_data
> >> one?
> >
> > As ' Add/Remove Cloud filters -command buffer ' is changed in the DCR288,
> 'general fields' exists only when big_buffer is set.
>
> What does it mean having "big_buffer" set? What changes functionally being
> big_buffer set or not?
According to DCR288, "Add/Remove Cloud Filter Command" should add 'Big Buffer' in byte20, but we can't change ' struct i40e_aqc_add_remove_cloud_filters ' in base code,
struct i40e_aqc_add_remove_cloud_filters {
u8 num_filters;
u8 reserved;
__le16 seid;
#define I40E_AQC_ADD_CLOUD_CMD_SEID_NUM_SHIFT 0
#define I40E_AQC_ADD_CLOUD_CMD_SEID_NUM_MASK (0x3FF << \
I40E_AQC_ADD_CLOUD_CMD_SEID_NUM_SHIFT)
u8 reserved2[4];
__le32 addr_high;
__le32 addr_low;
};
So we use reserverd[0] for 'Big Buffer' here, in the patch for ND, we changed above structure with following:
struct i40e_aqc_add_remove_cloud_filters {
u8 num_filters;
u8 reserved;
__le16 seid;
#define I40E_AQC_ADD_CLOUD_CMD_SEID_NUM_SHIFT 0
#define I40E_AQC_ADD_CLOUD_CMD_SEID_NUM_MASK (0x3FF << \
I40E_AQC_ADD_CLOUD_CMD_SEID_NUM_SHIFT)
u8 big_buffer;
u8 reserved2[3];
__le32 addr_high;
__le32 addr_low;
};
>
> > But we don't want to change the "
> i40e_aqc_add_remove_cloud_filters_element_data " as it will cause ABI/API
> change in kernel driver.
> >
> <...>
More information about the dev
mailing list