Hi, Yigit

> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Saturday, January 7, 2017 1:11 AM
> To: Zhao1, Wei <wei.zh...@intel.com>; dev@dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo...@intel.com>
> Subject: Re: [dpdk-dev] [PATCH v2 12/18] net/ixgbe: parse ethertype filter
> 
> On 12/30/2016 7:53 AM, Wei Zhao wrote:
> > check if the rule is a ethertype rule, and get the ethertype info.
> > Signed-off-by: Wei Zhao <wei.zh...@intel.com>
> > Signed-off-by: Wenzhuo Lu <wenzhuo...@intel.com>
> >
> > ---
> >
> > v2:add new error set function
> > ---
> 
> <...>
> 
> > +static int
> > +ixgbe_parse_ethertype_filter(const struct rte_flow_attr *attr,
> > +                        const struct rte_flow_item pattern[],
> > +                        const struct rte_flow_action actions[],
> > +                        struct rte_eth_ethertype_filter *filter,
> > +                        struct rte_flow_error *error) {
> > +   int ret;
> > +
> > +   ret = cons_parse_ethertype_filter(attr, pattern,
> > +                                   actions, filter, error);
> > +
> > +   if (ret)
> > +           return ret;
> > +
> > +   /* Ixgbe doesn't support MAC address. */
> > +   if (filter->flags & RTE_ETHTYPE_FLAGS_MAC) {
> > +           memset(filter, 0, sizeof(struct rte_eth_ethertype_filter));
> 
> Is memset required for error cases, if so is other error cases also require 
> it?


Yes, Ok , I will do as your suggestion.

> 
> > +           rte_flow_error_set(error, EINVAL,
> > +                           RTE_FLOW_ERROR_TYPE_ITEM,
> > +                           NULL, "Not supported by ethertype filter");
> > +           return -rte_errno;
> > +   }
> > +
> > +   if (filter->queue >= IXGBE_MAX_RX_QUEUE_NUM)
> > +           return -rte_errno;
> > +
> > +   if (filter->ether_type == ETHER_TYPE_IPv4 ||
> > +           filter->ether_type == ETHER_TYPE_IPv6) {
> > +           PMD_DRV_LOG(ERR, "unsupported ether_type(0x%04x) in"
> > +                   " ethertype filter.", filter->ether_type);
> 
> Not sure about this log here, specially it is in ERR level.
> This function is returning error, and public API will return an error, if we 
> want
> to notify user with a log, should app do this as library
> (here) should do this? More comment welcome?
> 
> btw, should rte_flow_error_set() used here (and below) ?

Yes, I will change to rte_flow_error_set() 

> 
> > +           return -rte_errno;
> > +   }
> > +
> > +   if (filter->flags & RTE_ETHTYPE_FLAGS_MAC) {
> 
> Isn't this duplicate with above check?
> 
> > +           PMD_DRV_LOG(ERR, "mac compare is unsupported.");
> > +           return -rte_errno;
> > +   }
> > +
> > +   if (filter->flags & RTE_ETHTYPE_FLAGS_DROP) {
> 
> Just to double check, isn't drop action by ether filters?

Yse , ixgbe do not, but i40e is.
> 
> > +           PMD_DRV_LOG(ERR, "drop option is unsupported.");
> > +           return -rte_errno;
> > +   }
> > +
> > +   return 0;
> > +}
> > +
> > +/**
> <...>

Reply via email to