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.
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