Re: [PATCH v5 1/9] ethdev: extend flow director for input selection
From: Thomas Monjalon <hidden>
Date: 2016-03-22 22:07:35
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.
[...]
quoted hunk ↗ jump to hunk
--- 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.
quoted hunk ↗ jump to hunk
--- 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).
quoted hunk ↗ jump to hunk
--- 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.