2016-03-21 14:18, Jingjing Wu: > This patch added RTE_ETH_INPUT_SET_L3_IP4_TTL, > RTE_ETH_INPUT_SET_L3_IP6_HOP_LIMITS input field type and extended > struct rte_eth_ipv4_flow and rte_eth_ipv6_flow to support filtering > by tos, protocol and ttl. [...] > --- a/doc/guides/rel_notes/deprecation.rst > +++ b/doc/guides/rel_notes/deprecation.rst > @@ -22,10 +22,6 @@ Deprecation Notices > * The ethdev structures rte_eth_link, rte_eth_dev_info and rte_eth_conf > must be updated to support 100G link and to have a cleaner link speed API. > > -* ABI changes are planned for struct rte_eth_fdir_flow in order to support > - extend flow director's input set. The release 2.2 does not contain these > ABI > - changes, but release 2.3 will, and no backwards compatibility is planned.
The changed structures are part of rte_eth_fdir_flow. So this deprecation notice apply to this patch. > * ABI changes are planned for rte_eth_ipv4_flow and rte_eth_ipv6_flow to > include more fields to be matched against. The release 2.2 does not > contain these ABI changes, but release 2.3 will. These are the structures changed in this patch. I think this section must be also removed. > --- a/doc/guides/rel_notes/release_16_04.rst > +++ b/doc/guides/rel_notes/release_16_04.rst > @@ -435,6 +435,8 @@ ABI Changes > > * The cmdline buffer size has been increase from 256 to 512. > > +* The ethdev flow director structure ``rte_eth_fdir_flow`` structure was > + changed. New fields were added to extend flow director's input set. For reading ease, it's better to group ethdev changes (before cmdline change). > --- a/lib/librte_ether/rte_eth_ctrl.h > +++ b/lib/librte_ether/rte_eth_ctrl.h > @@ -343,6 +343,8 @@ enum rte_eth_input_set_field { > RTE_ETH_INPUT_SET_L3_IP4_PROTO, > RTE_ETH_INPUT_SET_L3_IP6_TC, > RTE_ETH_INPUT_SET_L3_IP6_NEXT_HEADER, > + RTE_ETH_INPUT_SET_L3_IP4_TTL, > + RTE_ETH_INPUT_SET_L3_IP6_HOP_LIMITS, > > /* L4 */ > RTE_ETH_INPUT_SET_L4_UDP_SRC_PORT = 257, > @@ -410,6 +412,9 @@ struct rte_eth_l2_flow { > struct rte_eth_ipv4_flow { > uint32_t src_ip; /**< IPv4 source address to match. */ > uint32_t dst_ip; /**< IPv4 destination address to match. */ > + uint8_t tos; /**< Type of service to match. */ > + uint8_t ttl; /**< Time to live to match. */ > + uint8_t proto; /**< Protocol, next header to match. */ > }; > > /** > @@ -446,6 +451,9 @@ struct rte_eth_sctpv4_flow { > struct rte_eth_ipv6_flow { > uint32_t src_ip[4]; /**< IPv6 source address to match. */ > uint32_t dst_ip[4]; /**< IPv6 destination address to match. */ > + uint8_t tc; /**< Traffic class to match. */ > + uint8_t proto; /**< Protocol, next header to match. */ > + uint8_t hop_limits; /**< Hop limits to match. */ > }; This extension of the existing API looks OK.