[dpdk-dev] [PATCH v6 2/9] librte_ether:add VxLAN packet identification API in librte_ether
Thomas Monjalon
thomas.monjalon at 6wind.com
Tue Oct 21 23:19:29 CEST 2014
2014-10-21 13:48, Liu, Jijiang:
> From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > 2014-10-21 16:46, Jijiang Liu:
> > > int
> > > +rte_eth_dev_udp_tunnel_add(uint8_t port_id,
> > > + struct rte_eth_udp_tunnel *udp_tunnel,
> > > + uint8_t count)
> > > +{
> > > + uint8_t i;
> > > + struct rte_eth_dev *dev;
> > > + struct rte_eth_udp_tunnel *tunnel;
> > > +
> > > + if (port_id >= nb_ports) {
> > > + PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
> > > + return -ENODEV;
> > > + }
> > > +
> > > + if (udp_tunnel == NULL) {
> > > + PMD_DEBUG_TRACE("Invalid udp_tunnel parameter\n");
> > > + return -EINVAL;
> > > + }
> > > + tunnel = udp_tunnel;
> > > +
> > > + for (i = 0; i < count; i++, tunnel++) {
> > > + if (tunnel->prot_type >= RTE_TUNNEL_TYPE_MAX) {
> > > + PMD_DEBUG_TRACE("Invalid tunnel type\n");
> > > + return -EINVAL;
> > > + }
> > > + }
> >
> > I'm not sure it's a good idea to provide a count parameter to iterate in a
> > loop.
> > It's probably something that the application should do by itself.
>
> It is necessary to check if this prot_type(tunnel type) is valid here in case
> applications don't do that.
Yes, you have to check prot_type but looping for several tunnels is not needed
at this level.
> > But I doubt we should configure a tunnel type for a whole port.
>
> Yes, your understanding is correct. It is for a whole port/PF, that's why we
> should add tunnel_type in rte_eth_conf structure.
Please explain me why a tunnel type should be associated to a port.
This design looks really broken.
Thanks
--
Thomas
More information about the dev
mailing list