All of lore.kernel.org
 help / color / mirror / Atom feed
From: Olivier Matz <olivier.matz@6wind.com>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: dev@dpdk.org
Subject: Re: [RFC 00/14] prefix network structures
Date: Fri, 26 Oct 2018 13:28:55 +0200	[thread overview]
Message-ID: <20181026112855.xtzlibbcyyntgndq@platinum> (raw)
In-Reply-To: <20181026101514.GB14620@bricha3-MOBL.ger.corp.intel.com>

On Fri, Oct 26, 2018 at 11:15:14AM +0100, Bruce Richardson wrote:
> On Fri, Oct 26, 2018 at 09:20:15AM +0200, Olivier Matz wrote:
> > Hi,
> > 
> > On Wed, Oct 24, 2018 at 05:39:09PM +0100, Bruce Richardson wrote:
> > > On Wed, Oct 24, 2018 at 10:18:19AM +0200, Olivier Matz wrote:
> > > > This RFC targets 19.02.
> > > > 
> > > > The rte_net headers conflict with the libc headers, because
> > > > some definitions are duplicated, sometimes with few differences.
> > > > This was discussed in [1], and more recently at the techboard.
> > > > 
> > > > Before sending the deprecation notice (target for this is 18.11),
> > > > here is a draft that can be discussed.
> > > > 
> > > > This RFC adds the rte_ (or RTE_) prefix to all structures, functions
> > > > and defines in rte_net library. This is a big changeset, that will
> > > > break the API of many functions, but not the ABI.
> > > > 
> > > > One question I'm asking is how can we manage the transition.
> > > > Initially, I hoped it was possible to have a compat layer during
> > > > one release (supporting both prefixed and unprefixed names), but
> > > > now that the patch is done, it seems the impact is too big, and
> > > > impacts too many libraries.
> > > > 
> > > > Few examples:
> > > >   - rte_eth_macaddr_get/add/remove() use a (struct rte_ether_addr *)
> > > >   - many rte_flow structures use the rte_ prefixed net structures
> > > >   - the mac field of virtio_net structure is rte_ether_addr
> > > >   - the first arg of rte_thash_load_v6_addrs is (struct rte_ipv6_hdr *)
> > > >   ...
> > > > 
> > > > Therefore, it is clear that doing this would break the compilation
> > > > of many external applications.
> > > > 
> > > 
> > > Can you clarify a bit as to why we can't keep around compatibility versions
> > > of the headers, alongside the new versions? I'm not following the logic
> > > above. Can we not introduce completely new headers with the replacements
> > > while leaving the old ones intact?
> > 
> > This is something I tried to do, it is not in the RFC because it was
> > not satisfying, but you can find it there:
> > 
> > http://git.droids-corp.org/?p=dpdk.git;a=commitdiff;h=ba1e8e498306
> > 
> > With this patch, the usage of unprefixed structures, defines and
> > functions in rte net is still possible by an external application,
> > except if RTE_NET_NO_COMPAT is defined.
> > 
> > However, functions and structures that are not in librte_net (the
> > examples from my previous mail, quoted above) use the rte_ prefixed
> > structures in their prototypes. For instance, an application that use
> > rte_eth_macaddr_get() will no compile anymore because it will pass
> > a (struct ether_addr *) instead of a (struct rte_ether_addr *).
> > 
> > I don't see any good mean to fix this. Maybe we can do something with
> > defines, but I don't think it is possible to provide both APIs for
> > functions like rte_eth_macaddr_get(). I'm also not convinced it will be
> > that helpful. At the end, if the patchset is applied, we want the
> > applications to switch to the new API. To ease the transition, we can
> > provide a script to patch an application, very similar to the one I use
> > to generate the patchset.
> > 
> 
> Out of interest, about how many non rte_net functions are we talking about here?

I didn't count, but many. And not only functions, also structures.

To give an idea, here is the output of:
  git diff origin/master..HEAD lib/ | filterdiff -i '*.h' -x 'a/lib/librte_net/*'


  diff --git a/lib/librte_ethdev/rte_eth_ctrl.h b/lib/librte_ethdev/rte_eth_ctrl.h
  index 5ea8ae24c..821d971cd 100644
  --- a/lib/librte_ethdev/rte_eth_ctrl.h
  +++ b/lib/librte_ethdev/rte_eth_ctrl.h
  @@ -110,7 +110,7 @@ struct rte_eth_mac_filter {
   	uint8_t is_vf; /**< 1 for VF, 0 for port dev */
   	uint16_t dst_id; /**< VF ID, available when is_vf is 1*/
   	enum rte_mac_filter_type filter_type; /**< MAC filter type */
  -	struct ether_addr mac_addr;
  +	struct rte_ether_addr mac_addr;
   };
   
   /**
  @@ -126,7 +126,7 @@ struct rte_eth_mac_filter {
    * RTE_ETH_FILTER_DELETE and RTE_ETH_FILTER_GET operations.
    */
   struct rte_eth_ethertype_filter {
  -	struct ether_addr mac_addr;   /**< Mac address to match. */
  +	struct rte_ether_addr mac_addr;   /**< Mac address to match. */
   	uint16_t ether_type;          /**< Ether type to match */
   	uint16_t flags;               /**< Flags from RTE_ETHTYPE_FLAGS_* */
   	uint16_t queue;               /**< Queue assigned to when match*/
  @@ -265,8 +265,8 @@ enum rte_tunnel_iptype {
    * Tunneling Packet filter configuration.
    */
   struct rte_eth_tunnel_filter_conf {
  -	struct ether_addr outer_mac;    /**< Outer MAC address to match. */
  -	struct ether_addr inner_mac;    /**< Inner MAC address to match. */
  +	struct rte_ether_addr outer_mac;    /**< Outer MAC address to match. */
  +	struct rte_ether_addr inner_mac;    /**< Inner MAC address to match. */
   	uint16_t inner_vlan;            /**< Inner VLAN to match. */
   	enum rte_tunnel_iptype ip_type; /**< IP address type. */
   	/** Outer destination IP address to match if ETH_TUNNEL_FILTER_OIP
  @@ -473,7 +473,7 @@ struct rte_eth_sctpv6_flow {
    * A structure used to define the input for MAC VLAN flow
    */
   struct rte_eth_mac_vlan_flow {
  -	struct ether_addr mac_addr;  /**< Mac address to match. */
  +	struct rte_ether_addr mac_addr;  /**< Mac address to match. */
   };
   
   /**
  @@ -493,7 +493,7 @@ struct rte_eth_tunnel_flow {
   	enum rte_eth_fdir_tunnel_type tunnel_type; /**< Tunnel type to match. */
   	/** Tunnel ID to match. TNI, VNI... in big endian. */
   	uint32_t tunnel_id;
  -	struct ether_addr mac_addr;                /**< Mac address to match. */
  +	struct rte_ether_addr mac_addr;                /**< Mac address to match. */
   };
   
   /**
  diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
  index fb40c89e0..5deb4e38e 100644
  --- a/lib/librte_ethdev/rte_ethdev.h
  +++ b/lib/librte_ethdev/rte_ethdev.h
  @@ -2159,7 +2159,7 @@ int rte_eth_dev_set_rx_queue_stats_mapping(uint16_t port_id,
    *   A pointer to a structure of type *ether_addr* to be filled with
    *   the Ethernet address of the Ethernet device.
    */
  -void rte_eth_macaddr_get(uint16_t port_id, struct ether_addr *mac_addr);
  +void rte_eth_macaddr_get(uint16_t port_id, struct rte_ether_addr *mac_addr);
   
   /**
    * Retrieve the contextual information of an Ethernet device.
  @@ -2843,7 +2843,7 @@ int rte_eth_dev_priority_flow_ctrl_set(uint16_t port_id,
    *   - (-ENOSPC) if no more MAC addresses can be added.
    *   - (-EINVAL) if MAC address is invalid.
    */
  -int rte_eth_dev_mac_addr_add(uint16_t port_id, struct ether_addr *mac_addr,
  +int rte_eth_dev_mac_addr_add(uint16_t port_id, struct rte_ether_addr *mac_addr,
   				uint32_t pool);
   
   /**
  @@ -2859,7 +2859,7 @@ int rte_eth_dev_mac_addr_add(uint16_t port_id, struct ether_addr *mac_addr,
    *   - (-ENODEV) if *port* invalid.
    *   - (-EADDRINUSE) if attempting to remove the default MAC address
    */
  -int rte_eth_dev_mac_addr_remove(uint16_t port_id, struct ether_addr *mac_addr);
  +int rte_eth_dev_mac_addr_remove(uint16_t port_id, struct rte_ether_addr *mac_addr);
   
   /**
    * Set the default MAC address.
  @@ -2875,7 +2875,7 @@ int rte_eth_dev_mac_addr_remove(uint16_t port_id, struct ether_addr *mac_addr);
    *   - (-EINVAL) if MAC address is invalid.
    */
   int rte_eth_dev_default_mac_addr_set(uint16_t port_id,
  -		struct ether_addr *mac_addr);
  +		struct rte_ether_addr *mac_addr);
   
   /**
    * Update Redirection Table(RETA) of Receive Side Scaling of Ethernet device.
  @@ -2936,7 +2936,7 @@ int rte_eth_dev_rss_reta_query(uint16_t port_id,
    *   - (-EIO) if device is removed.
    *   - (-EINVAL) if bad parameter.
    */
  -int rte_eth_dev_uc_hash_table_set(uint16_t port_id, struct ether_addr *addr,
  +int rte_eth_dev_uc_hash_table_set(uint16_t port_id, struct rte_ether_addr *addr,
   				  uint8_t on);
   
    /**
  @@ -3479,7 +3479,7 @@ rte_eth_dev_get_module_eeprom(uint16_t port_id,
    *   - (-ENOSPC) if *port_id* has not enough multicast filtering resources.
    */
   int rte_eth_dev_set_mc_addr_list(uint16_t port_id,
  -				 struct ether_addr *mc_addr_set,
  +				 struct rte_ether_addr *mc_addr_set,
   				 uint32_t nb_mc_addr);
   
   /**
  diff --git a/lib/librte_ethdev/rte_ethdev_core.h b/lib/librte_ethdev/rte_ethdev_core.h
  index 0d28fd902..fa518620e 100644
  --- a/lib/librte_ethdev/rte_ethdev_core.h
  +++ b/lib/librte_ethdev/rte_ethdev_core.h
  @@ -250,17 +250,17 @@ typedef void (*eth_mac_addr_remove_t)(struct rte_eth_dev *dev, uint32_t index);
   /**< @internal Remove MAC address from receive address register */
   
   typedef int (*eth_mac_addr_add_t)(struct rte_eth_dev *dev,
  -				  struct ether_addr *mac_addr,
  +				  struct rte_ether_addr *mac_addr,
   				  uint32_t index,
   				  uint32_t vmdq);
   /**< @internal Set a MAC address into Receive Address Address Register */
   
   typedef int (*eth_mac_addr_set_t)(struct rte_eth_dev *dev,
  -				  struct ether_addr *mac_addr);
  +				  struct rte_ether_addr *mac_addr);
   /**< @internal Set a MAC address into Receive Address Address Register */
   
   typedef int (*eth_uc_hash_table_set_t)(struct rte_eth_dev *dev,
  -				  struct ether_addr *mac_addr,
  +				  struct rte_ether_addr *mac_addr,
   				  uint8_t on);
   /**< @internal Set a Unicast Hash bitmap */
   
  @@ -292,7 +292,7 @@ typedef int (*eth_udp_tunnel_port_del_t)(struct rte_eth_dev *dev,
   /**< @internal Delete tunneling UDP port */
   
   typedef int (*eth_set_mc_addr_list_t)(struct rte_eth_dev *dev,
  -				      struct ether_addr *mc_addr_set,
  +				      struct rte_ether_addr *mc_addr_set,
   				      uint32_t nb_mc_addr);
   /**< @internal set the list of multicast addresses on an Ethernet device */
   
  @@ -597,10 +597,10 @@ struct rte_eth_dev_data {
   	/**< Common rx buffer size handled by all queues */
   
   	uint64_t rx_mbuf_alloc_failed; /**< RX ring mbuf allocation failures. */
  -	struct ether_addr* mac_addrs;/**< Device Ethernet Link address. */
  +	struct rte_ether_addr* mac_addrs;/**< Device Ethernet Link address. */
   	uint64_t mac_pool_sel[ETH_NUM_RECEIVE_MAC_ADDR];
   	/** bitmap array of associating Ethernet MAC addresses to pools */
  -	struct ether_addr* hash_mac_addrs;
  +	struct rte_ether_addr* hash_mac_addrs;
   	/** Device Ethernet MAC addresses of hash filtering. */
   	uint16_t port_id;           /**< Device [external] port identifier. */
   	__extension__
  diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h
  index 26e2fcfa0..c27d590a1 100644
  --- a/lib/librte_ethdev/rte_flow.h
  +++ b/lib/librte_ethdev/rte_flow.h
  @@ -577,8 +577,8 @@ static const struct rte_flow_item_raw rte_flow_item_raw_mask = {
    * same order as on the wire.
    */
   struct rte_flow_item_eth {
  -	struct ether_addr dst; /**< Destination MAC. */
  -	struct ether_addr src; /**< Source MAC. */
  +	struct rte_ether_addr dst; /**< Destination MAC. */
  +	struct rte_ether_addr src; /**< Source MAC. */
   	rte_be16_t type; /**< EtherType or TPID. */
   };
   
  @@ -597,7 +597,7 @@ static const struct rte_flow_item_eth rte_flow_item_eth_mask = {
    * Matches an 802.1Q/ad VLAN tag.
    *
    * The corresponding standard outer EtherType (TPID) values are
  - * ETHER_TYPE_VLAN or ETHER_TYPE_QINQ. It can be overridden by the preceding
  + * RTE_ETHER_TYPE_VLAN or RTE_ETHER_TYPE_QINQ. It can be overridden by the preceding
    * pattern item.
    */
   struct rte_flow_item_vlan {
  @@ -621,7 +621,7 @@ static const struct rte_flow_item_vlan rte_flow_item_vlan_mask = {
    * Note: IPv4 options are handled by dedicated pattern items.
    */
   struct rte_flow_item_ipv4 {
  -	struct ipv4_hdr hdr; /**< IPv4 header definition. */
  +	struct rte_ipv4_hdr hdr; /**< IPv4 header definition. */
   };
   
   /** Default mask for RTE_FLOW_ITEM_TYPE_IPV4. */
  @@ -643,7 +643,7 @@ static const struct rte_flow_item_ipv4 rte_flow_item_ipv4_mask = {
    * RTE_FLOW_ITEM_TYPE_IPV6_EXT.
    */
   struct rte_flow_item_ipv6 {
  -	struct ipv6_hdr hdr; /**< IPv6 header definition. */
  +	struct rte_ipv6_hdr hdr; /**< IPv6 header definition. */
   };
   
   /** Default mask for RTE_FLOW_ITEM_TYPE_IPV6. */
  @@ -666,7 +666,7 @@ static const struct rte_flow_item_ipv6 rte_flow_item_ipv6_mask = {
    * Matches an ICMP header.
    */
   struct rte_flow_item_icmp {
  -	struct icmp_hdr hdr; /**< ICMP header definition. */
  +	struct rte_icmp_hdr hdr; /**< ICMP header definition. */
   };
   
   /** Default mask for RTE_FLOW_ITEM_TYPE_ICMP. */
  @@ -685,7 +685,7 @@ static const struct rte_flow_item_icmp rte_flow_item_icmp_mask = {
    * Matches a UDP header.
    */
   struct rte_flow_item_udp {
  -	struct udp_hdr hdr; /**< UDP header definition. */
  +	struct rte_udp_hdr hdr; /**< UDP header definition. */
   };
   
   /** Default mask for RTE_FLOW_ITEM_TYPE_UDP. */
  @@ -704,7 +704,7 @@ static const struct rte_flow_item_udp rte_flow_item_udp_mask = {
    * Matches a TCP header.
    */
   struct rte_flow_item_tcp {
  -	struct tcp_hdr hdr; /**< TCP header definition. */
  +	struct rte_tcp_hdr hdr; /**< TCP header definition. */
   };
   
   /** Default mask for RTE_FLOW_ITEM_TYPE_TCP. */
  @@ -723,7 +723,7 @@ static const struct rte_flow_item_tcp rte_flow_item_tcp_mask = {
    * Matches a SCTP header.
    */
   struct rte_flow_item_sctp {
  -	struct sctp_hdr hdr; /**< SCTP header definition. */
  +	struct rte_sctp_hdr hdr; /**< SCTP header definition. */
   };
   
   /** Default mask for RTE_FLOW_ITEM_TYPE_SCTP. */
  @@ -761,7 +761,7 @@ static const struct rte_flow_item_vxlan rte_flow_item_vxlan_mask = {
    * Matches a E-tag header.
    *
    * The corresponding standard outer EtherType (TPID) value is
  - * ETHER_TYPE_ETAG. It can be overridden by the preceding pattern item.
  + * RTE_ETHER_TYPE_ETAG. It can be overridden by the preceding pattern item.
    */
   struct rte_flow_item_e_tag {
   	/**
  @@ -908,7 +908,7 @@ static const struct rte_flow_item_gtp rte_flow_item_gtp_mask = {
    * Matches an ESP header.
    */
   struct rte_flow_item_esp {
  -	struct esp_hdr hdr; /**< ESP header definition. */
  +	struct rte_esp_hdr hdr; /**< ESP header definition. */
   };
   
   /** Default mask for RTE_FLOW_ITEM_TYPE_ESP. */
  @@ -974,9 +974,9 @@ struct rte_flow_item_arp_eth_ipv4 {
   	uint8_t hln; /**< Hardware address length, normally 6. */
   	uint8_t pln; /**< Protocol address length, normally 4. */
   	rte_be16_t op; /**< Opcode (1 for request, 2 for reply). */
  -	struct ether_addr sha; /**< Sender hardware address. */
  +	struct rte_ether_addr sha; /**< Sender hardware address. */
   	rte_be32_t spa; /**< Sender IPv4 address. */
  -	struct ether_addr tha; /**< Target hardware address. */
  +	struct rte_ether_addr tha; /**< Target hardware address. */
   	rte_be32_t tpa; /**< Target IPv4 address. */
   };
   
  @@ -1120,7 +1120,7 @@ rte_flow_item_icmp6_nd_opt_mask = {
   struct rte_flow_item_icmp6_nd_opt_sla_eth {
   	uint8_t type; /**< ND option type, normally 1. */
   	uint8_t length; /**< ND option length, normally 1. */
  -	struct ether_addr sla; /**< Source Ethernet LLA. */
  +	struct rte_ether_addr sla; /**< Source Ethernet LLA. */
   };
   
   /** Default mask for RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH. */
  @@ -1145,7 +1145,7 @@ rte_flow_item_icmp6_nd_opt_sla_eth_mask = {
   struct rte_flow_item_icmp6_nd_opt_tla_eth {
   	uint8_t type; /**< ND option type, normally 2. */
   	uint8_t length; /**< ND option length, normally 1. */
  -	struct ether_addr tla; /**< Target Ethernet LLA. */
  +	struct rte_ether_addr tla; /**< Target Ethernet LLA. */
   };
   
   /** Default mask for RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH. */
  @@ -2036,7 +2036,7 @@ struct rte_flow_action_set_ttl {
    * Set MAC address from the matched flow
    */
   struct rte_flow_action_set_mac {
  -	uint8_t mac_addr[ETHER_ADDR_LEN];
  +	uint8_t mac_addr[RTE_ETHER_ADDR_LEN];
   };
   
   /*
  diff --git a/lib/librte_gro/gro_tcp4.h b/lib/librte_gro/gro_tcp4.h
  index 6bb30cdb9..63f06bec4 100644
  --- a/lib/librte_gro/gro_tcp4.h
  +++ b/lib/librte_gro/gro_tcp4.h
  @@ -19,8 +19,8 @@
   
   /* Header fields representing a TCP/IPv4 flow */
   struct tcp4_flow_key {
  -	struct ether_addr eth_saddr;
  -	struct ether_addr eth_daddr;
  +	struct rte_ether_addr eth_saddr;
  +	struct rte_ether_addr eth_daddr;
   	uint32_t ip_src_addr;
   	uint32_t ip_dst_addr;
   
  @@ -182,8 +182,8 @@ uint32_t gro_tcp4_tbl_pkt_count(void *tbl);
   static inline int
   is_same_tcp4_flow(struct tcp4_flow_key k1, struct tcp4_flow_key k2)
   {
  -	return (is_same_ether_addr(&k1.eth_saddr, &k2.eth_saddr) &&
  -			is_same_ether_addr(&k1.eth_daddr, &k2.eth_daddr) &&
  +	return (rte_is_same_ether_addr(&k1.eth_saddr, &k2.eth_saddr) &&
  +			rte_is_same_ether_addr(&k1.eth_daddr, &k2.eth_daddr) &&
   			(k1.ip_src_addr == k2.ip_src_addr) &&
   			(k1.ip_dst_addr == k2.ip_dst_addr) &&
   			(k1.recv_ack == k2.recv_ack) &&
  @@ -255,7 +255,7 @@ merge_two_tcp4_packets(struct gro_tcp4_item *item,
    */
   static inline int
   check_seq_option(struct gro_tcp4_item *item,
  -		struct tcp_hdr *tcph,
  +		struct rte_tcp_hdr *tcph,
   		uint32_t sent_seq,
   		uint16_t ip_id,
   		uint16_t tcp_hl,
  @@ -264,17 +264,17 @@ check_seq_option(struct gro_tcp4_item *item,
   		uint8_t is_atomic)
   {
   	struct rte_mbuf *pkt_orig = item->firstseg;
  -	struct ipv4_hdr *iph_orig;
  -	struct tcp_hdr *tcph_orig;
  +	struct rte_ipv4_hdr *iph_orig;
  +	struct rte_tcp_hdr *tcph_orig;
   	uint16_t len, tcp_hl_orig;
   
  -	iph_orig = (struct ipv4_hdr *)(rte_pktmbuf_mtod(pkt_orig, char *) +
  +	iph_orig = (struct rte_ipv4_hdr *)(rte_pktmbuf_mtod(pkt_orig, char *) +
   			l2_offset + pkt_orig->l2_len);
  -	tcph_orig = (struct tcp_hdr *)((char *)iph_orig + pkt_orig->l3_len);
  +	tcph_orig = (struct rte_tcp_hdr *)((char *)iph_orig + pkt_orig->l3_len);
   	tcp_hl_orig = pkt_orig->l4_len;
   
   	/* Check if TCP option fields equal */
  -	len = RTE_MAX(tcp_hl, tcp_hl_orig) - sizeof(struct tcp_hdr);
  +	len = RTE_MAX(tcp_hl, tcp_hl_orig) - sizeof(struct rte_tcp_hdr);
   	if ((tcp_hl != tcp_hl_orig) || ((len > 0) &&
   				(memcmp(tcph + 1, tcph_orig + 1,
   					len) != 0)))
  diff --git a/lib/librte_gro/gro_vxlan_tcp4.h b/lib/librte_gro/gro_vxlan_tcp4.h
  index 0cafb9211..7832942a6 100644
  --- a/lib/librte_gro/gro_vxlan_tcp4.h
  +++ b/lib/librte_gro/gro_vxlan_tcp4.h
  @@ -12,10 +12,10 @@
   /* Header fields representing a VxLAN flow */
   struct vxlan_tcp4_flow_key {
   	struct tcp4_flow_key inner_key;
  -	struct vxlan_hdr vxlan_hdr;
  +	struct rte_vxlan_hdr vxlan_hdr;
   
  -	struct ether_addr outer_eth_saddr;
  -	struct ether_addr outer_eth_daddr;
  +	struct rte_ether_addr outer_eth_saddr;
  +	struct rte_ether_addr outer_eth_daddr;
   
   	uint32_t outer_ip_src_addr;
   	uint32_t outer_ip_dst_addr;
  diff --git a/lib/librte_gso/gso_common.h b/lib/librte_gso/gso_common.h
  index 6cd764ff5..48ad1686f 100644
  --- a/lib/librte_gso/gso_common.h
  +++ b/lib/librte_gso/gso_common.h
  @@ -12,8 +12,8 @@
   #include <rte_tcp.h>
   #include <rte_udp.h>
   
  -#define IS_FRAGMENTED(frag_off) (((frag_off) & IPV4_HDR_OFFSET_MASK) != 0 \
  -		|| ((frag_off) & IPV4_HDR_MF_FLAG) == IPV4_HDR_MF_FLAG)
  +#define IS_FRAGMENTED(frag_off) (((frag_off) & RTE_IPV4_HDR_OFFSET_MASK) != 0 \
  +		|| ((frag_off) & RTE_IPV4_HDR_MF_FLAG) == RTE_IPV4_HDR_MF_FLAG)
   
   #define TCP_HDR_PSH_MASK ((uint8_t)0x08)
   #define TCP_HDR_FIN_MASK ((uint8_t)0x01)
  @@ -46,9 +46,9 @@
   static inline void
   update_udp_header(struct rte_mbuf *pkt, uint16_t udp_offset)
   {
  -	struct udp_hdr *udp_hdr;
  +	struct rte_udp_hdr *udp_hdr;
   
  -	udp_hdr = (struct udp_hdr *)(rte_pktmbuf_mtod(pkt, char *) +
  +	udp_hdr = (struct rte_udp_hdr *)(rte_pktmbuf_mtod(pkt, char *) +
   			udp_offset);
   	udp_hdr->dgram_len = rte_cpu_to_be_16(pkt->pkt_len - udp_offset);
   }
  @@ -71,9 +71,9 @@ static inline void
   update_tcp_header(struct rte_mbuf *pkt, uint16_t l4_offset, uint32_t sent_seq,
   		uint8_t non_tail)
   {
  -	struct tcp_hdr *tcp_hdr;
  +	struct rte_tcp_hdr *tcp_hdr;
   
  -	tcp_hdr = (struct tcp_hdr *)(rte_pktmbuf_mtod(pkt, char *) +
  +	tcp_hdr = (struct rte_tcp_hdr *)(rte_pktmbuf_mtod(pkt, char *) +
   			l4_offset);
   	tcp_hdr->sent_seq = rte_cpu_to_be_32(sent_seq);
   	if (likely(non_tail))
  @@ -98,9 +98,9 @@ update_tcp_header(struct rte_mbuf *pkt, uint16_t l4_offset, uint32_t sent_seq,
   static inline void
   update_ipv4_header(struct rte_mbuf *pkt, uint16_t l3_offset, uint16_t id)
   {
  -	struct ipv4_hdr *ipv4_hdr;
  +	struct rte_ipv4_hdr *ipv4_hdr;
   
  -	ipv4_hdr = (struct ipv4_hdr *)(rte_pktmbuf_mtod(pkt, char *) +
  +	ipv4_hdr = (struct rte_ipv4_hdr *)(rte_pktmbuf_mtod(pkt, char *) +
   			l3_offset);
   	ipv4_hdr->total_length = rte_cpu_to_be_16(pkt->pkt_len - l3_offset);
   	ipv4_hdr->packet_id = rte_cpu_to_be_16(id);
  diff --git a/lib/librte_gso/rte_gso.h b/lib/librte_gso/rte_gso.h
  index a626a11e3..3aab297f4 100644
  --- a/lib/librte_gso/rte_gso.h
  +++ b/lib/librte_gso/rte_gso.h
  @@ -18,12 +18,12 @@ extern "C" {
   #include <rte_mbuf.h>
   
   /* Minimum GSO segment size for TCP based packets. */
  -#define RTE_GSO_SEG_SIZE_MIN (sizeof(struct ether_hdr) + \
  -		sizeof(struct ipv4_hdr) + sizeof(struct tcp_hdr) + 1)
  +#define RTE_GSO_SEG_SIZE_MIN (sizeof(struct rte_ether_hdr) + \
  +		sizeof(struct rte_ipv4_hdr) + sizeof(struct rte_tcp_hdr) + 1)
   
   /* Minimum GSO segment size for UDP based packets. */
  -#define RTE_GSO_UDP_SEG_SIZE_MIN (sizeof(struct ether_hdr) + \
  -		sizeof(struct ipv4_hdr) + sizeof(struct udp_hdr) + 1)
  +#define RTE_GSO_UDP_SEG_SIZE_MIN (sizeof(struct rte_ether_hdr) + \
  +		sizeof(struct rte_ipv4_hdr) + sizeof(struct rte_udp_hdr) + 1)
   
   /* GSO flags for rte_gso_ctx. */
   #define RTE_GSO_FLAG_IPID_FIXED (1ULL << 0)
  diff --git a/lib/librte_hash/rte_thash.h b/lib/librte_hash/rte_thash.h
  index a6ddb7bf7..adbaf8f70 100644
  --- a/lib/librte_hash/rte_thash.h
  +++ b/lib/librte_hash/rte_thash.h
  @@ -168,7 +168,7 @@ rte_convert_rss_key(const uint32_t *orig, uint32_t *targ, int len)
    *   Pointer to rte_ipv6_tuple structure
    */
   static inline void
  -rte_thash_load_v6_addrs(const struct ipv6_hdr *orig, union rte_thash_tuple *targ)
  +rte_thash_load_v6_addrs(const struct rte_ipv6_hdr *orig, union rte_thash_tuple *targ)
   {
   #ifdef RTE_ARCH_X86
   	__m128i ipv6 = _mm_loadu_si128((const __m128i *)orig->src_addr);
  diff --git a/lib/librte_ip_frag/rte_ip_frag.h b/lib/librte_ip_frag/rte_ip_frag.h
  index 7f425f610..28ba33dac 100644
  --- a/lib/librte_ip_frag/rte_ip_frag.h
  +++ b/lib/librte_ip_frag/rte_ip_frag.h
  @@ -210,7 +210,7 @@ rte_ipv6_fragment_packet(struct rte_mbuf *pkt_in,
    */
   struct rte_mbuf *rte_ipv6_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
   		struct rte_ip_frag_death_row *dr,
  -		struct rte_mbuf *mb, uint64_t tms, struct ipv6_hdr *ip_hdr,
  +		struct rte_mbuf *mb, uint64_t tms, struct rte_ipv6_hdr *ip_hdr,
   		struct ipv6_extension_fragment *frag_hdr);
   
   /**
  @@ -225,7 +225,7 @@ struct rte_mbuf *rte_ipv6_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
    *   present.
    */
   static inline struct ipv6_extension_fragment *
  -rte_ipv6_frag_get_ipv6_fragment_header(struct ipv6_hdr *hdr)
  +rte_ipv6_frag_get_ipv6_fragment_header(struct rte_ipv6_hdr *hdr)
   {
   	if (hdr->proto == IPPROTO_FRAGMENT) {
   		return (struct ipv6_extension_fragment *) ++hdr;
  @@ -284,7 +284,7 @@ int32_t rte_ipv4_fragment_packet(struct rte_mbuf *pkt_in,
    */
   struct rte_mbuf * rte_ipv4_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
   		struct rte_ip_frag_death_row *dr,
  -		struct rte_mbuf *mb, uint64_t tms, struct ipv4_hdr *ip_hdr);
  +		struct rte_mbuf *mb, uint64_t tms, struct rte_ipv4_hdr *ip_hdr);
   
   /**
    * Check if the IPv4 packet is fragmented
  @@ -295,12 +295,12 @@ struct rte_mbuf * rte_ipv4_frag_reassemble_packet(struct rte_ip_frag_tbl *tbl,
    *   1 if fragmented, 0 if not fragmented
    */
   static inline int
  -rte_ipv4_frag_pkt_is_fragmented(const struct ipv4_hdr * hdr) {
  +rte_ipv4_frag_pkt_is_fragmented(const struct rte_ipv4_hdr * hdr) {
   	uint16_t flag_offset, ip_flag, ip_ofs;
   
   	flag_offset = rte_be_to_cpu_16(hdr->fragment_offset);
  -	ip_ofs = (uint16_t)(flag_offset & IPV4_HDR_OFFSET_MASK);
  -	ip_flag = (uint16_t)(flag_offset & IPV4_HDR_MF_FLAG);
  +	ip_ofs = (uint16_t)(flag_offset & RTE_IPV4_HDR_OFFSET_MASK);
  +	ip_flag = (uint16_t)(flag_offset & RTE_IPV4_HDR_MF_FLAG);
   
   	return ip_flag != 0 || ip_ofs  != 0;
   }
  diff --git a/lib/librte_kni/rte_kni.h b/lib/librte_kni/rte_kni.h
  index 601abdfc6..ce86b19a2 100644
  --- a/lib/librte_kni/rte_kni.h
  +++ b/lib/librte_kni/rte_kni.h
  @@ -68,7 +68,7 @@ struct rte_kni_conf {
   
   	__extension__
   	uint8_t force_bind : 1; /* Flag to bind kernel thread */
  -	char mac_addr[ETHER_ADDR_LEN]; /* MAC address assigned to KNI */
  +	char mac_addr[RTE_ETHER_ADDR_LEN]; /* MAC address assigned to KNI */
   	uint16_t mtu;
   };
   
  diff --git a/lib/librte_pipeline/rte_table_action.h b/lib/librte_pipeline/rte_table_action.h
  index c96061291..400bd5e2c 100644
  --- a/lib/librte_pipeline/rte_table_action.h
  +++ b/lib/librte_pipeline/rte_table_action.h
  @@ -384,8 +384,8 @@ enum rte_table_action_encap_type {
   
   /** Pre-computed Ethernet header fields for encapsulation action. */
   struct rte_table_action_ether_hdr {
  -	struct ether_addr da; /**< Destination address. */
  -	struct ether_addr sa; /**< Source address. */
  +	struct rte_ether_addr da; /**< Destination address. */
  +	struct rte_ether_addr sa; /**< Source address. */
   };
   
   /** Pre-computed VLAN header fields for encapsulation action. */
  diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h
  index b4abad30c..064ebb951 100644
  --- a/lib/librte_vhost/vhost.h
  +++ b/lib/librte_vhost/vhost.h
  @@ -356,7 +356,7 @@ struct virtio_net {
   	uint64_t		log_size;
   	uint64_t		log_base;
   	uint64_t		log_addr;
  -	struct ether_addr	mac;
  +	struct rte_ether_addr	mac;
   	uint16_t		mtu;
   
   	struct vhost_device_ops const *notify_ops;

  reply	other threads:[~2018-10-26 11:28 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-24  8:18 [RFC 00/14] prefix network structures Olivier Matz
2018-10-24  8:18 ` [RFC 01/14] net: add rte prefix to arp structures Olivier Matz
2018-10-24  8:18 ` [RFC 02/14] net: add rte prefix to arp defines Olivier Matz
2018-10-24 14:53   ` Wiles, Keith
2018-10-26  7:25     ` Olivier Matz
2018-10-24  8:18 ` [RFC 03/14] net: add rte prefix to ether structures Olivier Matz
2018-12-20 22:04   ` Ferruh Yigit
2018-10-24  8:18 ` [RFC 04/14] net: add rte prefix to ether functions Olivier Matz
2018-10-24  8:18 ` [RFC 05/14] net: add rte prefix to ether defines Olivier Matz
2018-10-24  8:18 ` [RFC 06/14] net: add rte prefix to esp structure Olivier Matz
2018-10-24  8:18 ` [RFC 07/14] net: add rte prefix to gre structure Olivier Matz
2018-10-24  8:18 ` [RFC 08/14] net: add rte prefix to icmp structure Olivier Matz
2018-10-24  8:18 ` [RFC 09/14] net: add rte prefix to icmp defines Olivier Matz
2018-10-24  8:18 ` [RFC 10/14] net: add rte prefix to ip structure Olivier Matz
2018-10-24  8:18 ` [RFC 11/14] net: add rte prefix to ip defines Olivier Matz
2018-10-24  8:18 ` [RFC 12/14] net: add rte prefix to sctp structure Olivier Matz
2018-10-24  8:18 ` [RFC 13/14] net: add rte prefix to tcp structure Olivier Matz
2018-10-24  8:18 ` [RFC 14/14] net: add rte prefix to udp structure Olivier Matz
2018-10-24  8:32 ` [RFC 00/14] prefix network structures Olivier Matz
2018-10-24 14:56 ` Wiles, Keith
2018-10-26  7:22   ` Olivier Matz
2018-10-24 16:09 ` Stephen Hemminger
2018-10-24 16:39 ` Bruce Richardson
2018-10-26  7:20   ` Olivier Matz
2018-10-26 10:15     ` Bruce Richardson
2018-10-26 11:28       ` Olivier Matz [this message]
2018-10-24 18:38 ` Stephen Hemminger
2018-10-26  7:56   ` Olivier Matz
2018-12-20 21:59 ` Ferruh Yigit
2018-12-20 23:48   ` Stephen Hemminger
2018-12-21 14:38     ` Wiles, Keith
2018-12-21 15:14       ` Ferruh Yigit
2018-12-27  9:35         ` Olivier Matz
2019-02-13 11:48           ` Yigit, Ferruh
2019-02-18 12:37             ` Ferruh Yigit
2019-02-18 16:58               ` Olivier Matz
2019-04-10  8:32 ` [dpdk-dev] [RFC v2 " Olivier Matz
2019-04-10  8:32   ` [dpdk-dev] [RFC v2 01/14] net: add rte prefix to arp structures Olivier Matz
2019-04-22 16:00     ` Stephen Hemminger
2019-05-13 11:59       ` Olivier Matz
2019-04-22 16:03     ` Stephen Hemminger
2019-05-13 12:04       ` Olivier Matz
2019-04-10  8:32   ` [dpdk-dev] [RFC v2 02/14] net: add rte prefix to arp defines Olivier Matz
2019-04-10  8:32   ` [dpdk-dev] [RFC v2 03/14] net: add rte prefix to ether structures Olivier Matz
2019-04-10  8:32   ` [dpdk-dev] [RFC v2 04/14] net: add rte prefix to ether functions Olivier Matz
2019-04-10  8:32   ` [dpdk-dev] [RFC v2 05/14] net: add rte prefix to ether defines Olivier Matz
2019-04-10  8:32   ` [dpdk-dev] [RFC v2 06/14] net: add rte prefix to esp structure Olivier Matz
2019-04-10  8:32   ` [dpdk-dev] [RFC v2 07/14] net: add rte prefix to gre structure Olivier Matz
2019-04-10  8:32   ` [dpdk-dev] [RFC v2 08/14] net: add rte prefix to icmp structure Olivier Matz
2019-04-10  8:32   ` [dpdk-dev] [RFC v2 09/14] net: add rte prefix to icmp defines Olivier Matz
2019-04-10  8:32   ` [dpdk-dev] [RFC v2 10/14] net: add rte prefix to ip structure Olivier Matz
2019-04-10  8:32   ` [dpdk-dev] [RFC v2 11/14] net: add rte prefix to ip defines Olivier Matz
2019-04-22 16:05     ` Stephen Hemminger
2019-05-13 12:02       ` Olivier Matz
2019-04-10  8:32   ` [dpdk-dev] [RFC v2 12/14] net: add rte prefix to sctp structure Olivier Matz
2019-04-10  8:32   ` [dpdk-dev] [RFC v2 13/14] net: add rte prefix to tcp structure Olivier Matz
2019-04-10  8:32   ` [dpdk-dev] [RFC v2 14/14] net: add rte prefix to udp structure Olivier Matz
2019-05-20 17:11   ` [dpdk-dev] [RFC v2 00/14] prefix network structures Ferruh Yigit
2019-05-21 16:15     ` Olivier Matz
2019-05-21 16:13   ` [dpdk-dev] [PATCH 00/15] " Olivier Matz
2019-05-21 16:13     ` [dpdk-dev] [PATCH 01/15] net: add rte prefix to arp structures Olivier Matz
2019-05-24 11:37       ` Ferruh Yigit
2019-05-21 16:13     ` [dpdk-dev] [PATCH 02/15] net: add rte prefix to arp defines Olivier Matz
2019-05-21 16:13     ` [dpdk-dev] [PATCH 03/15] net: add rte prefix to ether structures Olivier Matz
2019-05-29  8:39       ` David Marchand
2019-05-21 16:13     ` [dpdk-dev] [PATCH 04/15] net: add rte prefix to ether functions Olivier Matz
2019-05-21 16:13     ` [dpdk-dev] [PATCH 05/15] net: add rte prefix to ether defines Olivier Matz
2019-05-24 11:37       ` Ferruh Yigit
2019-05-21 16:13     ` [dpdk-dev] [PATCH 06/15] net: add rte prefix to esp structure Olivier Matz
2019-05-21 16:13     ` [dpdk-dev] [PATCH 07/15] net: add rte prefix to gre structure Olivier Matz
2019-05-21 16:13     ` [dpdk-dev] [PATCH 08/15] net: add rte prefix to icmp structure Olivier Matz
2019-05-21 16:13     ` [dpdk-dev] [PATCH 09/15] net: add rte prefix to icmp defines Olivier Matz
2019-05-21 16:13     ` [dpdk-dev] [PATCH 10/15] net: add rte prefix to ip structure Olivier Matz
2019-05-21 16:13     ` [dpdk-dev] [PATCH 11/15] net: add rte prefix to ip defines Olivier Matz
2019-05-29  8:41       ` David Marchand
2019-05-21 16:13     ` [dpdk-dev] [PATCH 12/15] net: add rte prefix to sctp structure Olivier Matz
2019-05-21 16:13     ` [dpdk-dev] [PATCH 13/15] net: add rte prefix to tcp structure Olivier Matz
2019-05-21 16:13     ` [dpdk-dev] [PATCH 14/15] net: add rte prefix to udp structure Olivier Matz
2019-05-21 16:13     ` [dpdk-dev] [PATCH 15/15] doc: announce network api change Olivier Matz
2019-05-21 16:23     ` [dpdk-dev] [PATCH 00/15] prefix network structures Stephen Hemminger
2019-05-23 11:41     ` Maxime Coquelin
2019-05-24 11:38     ` Ferruh Yigit
2019-05-29  7:59       ` David Marchand
2019-05-29 14:46         ` Olivier Matz
2019-05-29 17:29           ` David Marchand
2019-05-29 21:15             ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181026112855.xtzlibbcyyntgndq@platinum \
    --to=olivier.matz@6wind.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.