Hi Jianfeng,

> > >
> > > +static int
> > > +check_packet_type_ok(int portid)
> > > +{
> > > + int i;
> > > + int ret;
> > > + uint32_t ptypes[RTE_PTYPE_L3_MAX_NUM];
> > > + int ptype_l3_ipv4 = 0, ptype_l3_ipv6 = 0;
> > > +
> > > + ret = rte_eth_dev_get_ptype_info(portid, RTE_PTYPE_L3_MASK,
> > ptypes);
> > > + for (i = 0; i < ret; ++i) {
> > > +         if (ptypes[i] & RTE_PTYPE_L3_IPV4)
> > > +                 ptype_l3_ipv4 = 1;
> > > +         if (ptypes[i] & RTE_PTYPE_L3_IPV6)
> > > +                 ptype_l3_ipv6 = 1;
> > > + }
> > > +
> > > + if (ptype_l3_ipv4 == 0)
> > > +         printf("port %d cannot parse RTE_PTYPE_L3_IPV4\n", portid);
> > > +
> > > + if (ptype_l3_ipv6 == 0)
> > > +         printf("port %d cannot parse RTE_PTYPE_L3_IPV6\n", portid);
> > > +
> > > + if (ptype_l3_ipv4 || ptype_l3_ipv6)
> > > +         return 1;


Forgot one thing: I think it should be:

if (ptype_l3_ipv4 && ptype_l3_ipv6)
  return 1;
return 0;

or just:

return ptype_l3_ipv4 && ptype_l3_ipv6;

Konstantin

Reply via email to