Hi, Daiwei > -----Original Message----- > From: Dai, Wei > Sent: Tuesday, January 3, 2017 10:33 PM > To: Zhao1, Wei <wei.zh...@intel.com>; dev@dpdk.org > Cc: Lu, Wenzhuo <wenzhuo...@intel.com>; Zhao1, Wei > <wei.zh...@intel.com> > Subject: RE: [dpdk-dev] [PATCH v2 01/18] net/ixgbe: store SYN filter > > Hi, Wei Zhao > > I think that you had better give a cover letter for such a series of patches. > You can give the changes between v2 and v1 in cover letter and maybe no > need describe it in each one. >
Ok, I will add cover letter in v3 > Thanks &Best Regards > -Wei > > > -----Original Message----- > > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Wei Zhao > > Sent: Friday, December 30, 2016 3:53 PM > > To: dev@dpdk.org > > Cc: Lu, Wenzhuo <wenzhuo...@intel.com>; Zhao1, Wei > > <wei.zh...@intel.com> > > Subject: [dpdk-dev] [PATCH v2 01/18] net/ixgbe: store SYN filter > > > > Add support for storing SYN filter in SW. > > > > Signed-off-by: Wenzhuo Lu <wenzhuo...@intel.com> > > Signed-off-by: Wei Zhao <wei.zh...@intel.com> > > --- > > > > v2: > > --synqf assignment location change > > --- > > drivers/net/ixgbe/ixgbe_ethdev.c | 14 +++++++++++--- > > drivers/net/ixgbe/ixgbe_ethdev.h | 2 ++ > > 2 files changed, 13 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c > > b/drivers/net/ixgbe/ixgbe_ethdev.c > > index a25bac8..316e560 100644 > > --- a/drivers/net/ixgbe/ixgbe_ethdev.c > > +++ b/drivers/net/ixgbe/ixgbe_ethdev.c > > @@ -1274,6 +1274,8 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev) > > memset(filter_info->fivetuple_mask, 0, > > sizeof(uint32_t) * IXGBE_5TUPLE_ARRAY_SIZE); > > > > + /* initialize SYN filter */ > > + filter_info->syn_info = 0; > > return 0; > > } > > > > @@ -5580,15 +5582,18 @@ ixgbe_syn_filter_set(struct rte_eth_dev *dev, > > bool add) > > { > > struct ixgbe_hw *hw = > > IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private); > > + struct ixgbe_filter_info *filter_info = > > + IXGBE_DEV_PRIVATE_TO_FILTER_INFO(dev->data- > >dev_private); > > + uint32_t syn_info; > > uint32_t synqf; > > > > if (filter->queue >= IXGBE_MAX_RX_QUEUE_NUM) > > return -EINVAL; > > > > - synqf = IXGBE_READ_REG(hw, IXGBE_SYNQF); > > + syn_info = filter_info->syn_info; > > > > if (add) { > > - if (synqf & IXGBE_SYN_FILTER_ENABLE) > > + if (syn_info & IXGBE_SYN_FILTER_ENABLE) > > return -EINVAL; > > synqf = (uint32_t)(((filter->queue << > > IXGBE_SYN_FILTER_QUEUE_SHIFT) & > > IXGBE_SYN_FILTER_QUEUE) | > IXGBE_SYN_FILTER_ENABLE); @@ -5598,10 > > +5603,13 @@ ixgbe_syn_filter_set(struct rte_eth_dev *dev, > > else > > synqf &= ~IXGBE_SYN_FILTER_SYNQFP; > > } else { > > - if (!(synqf & IXGBE_SYN_FILTER_ENABLE)) > > + synqf = IXGBE_READ_REG(hw, IXGBE_SYNQF); > > + if (!(syn_info & IXGBE_SYN_FILTER_ENABLE)) > > return -ENOENT; > > synqf &= ~(IXGBE_SYN_FILTER_QUEUE | > IXGBE_SYN_FILTER_ENABLE); > > } > > + > > + filter_info->syn_info = synqf; > > IXGBE_WRITE_REG(hw, IXGBE_SYNQF, synqf); > > IXGBE_WRITE_FLUSH(hw); > > return 0; > > diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h > > b/drivers/net/ixgbe/ixgbe_ethdev.h > > index 4ff6338..827026c 100644 > > --- a/drivers/net/ixgbe/ixgbe_ethdev.h > > +++ b/drivers/net/ixgbe/ixgbe_ethdev.h > > @@ -262,6 +262,8 @@ struct ixgbe_filter_info { > > /* Bit mask for every used 5tuple filter */ > > uint32_t fivetuple_mask[IXGBE_5TUPLE_ARRAY_SIZE]; > > struct ixgbe_5tuple_filter_list fivetuple_list; > > + /* store the SYN filter info */ > > + uint32_t syn_info; > > }; > > > > /* > > -- > > 2.5.5