[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