ethdev: add traffic management API
authorCristian Dumitrescu <cristian.dumitrescu@intel.com>
Mon, 12 Jun 2017 13:35:39 +0000 (14:35 +0100)
committerCristian Dumitrescu <cristian.dumitrescu@intel.com>
Tue, 11 Jul 2017 17:38:02 +0000 (19:38 +0200)
commit5d109deffa87a39a7804c3db7890d3459fac0205
tree891820f5a5b92f3e602bdee8b731662af08c01a8
parent530beded12bf9e59e5c20f6c258040904a84ed4e
ethdev: add traffic management API

This patch introduces the generic ethdev API for the traffic manager
capability, which includes: hierarchical scheduling, traffic shaping,
congestion management, packet marking.

Main features:
- Exposed as ethdev plugin capability (similar to rte_flow)
- Capability query API per port, per level and per node
- Scheduling algorithms: Strict Priority (SP), Weighed Fair Queuing (WFQ)
- Traffic shaping: single/dual rate, private (per node) and shared (by
  multiple nodes) shapers
- Congestion management for hierarchy leaf nodes: algorithms of tail drop,
  head drop, WRED; private (per node) and shared (by multiple nodes) WRED
  contexts
- Packet marking: IEEE 802.1q (VLAN DEI), IETF RFC 3168 (IPv4/IPv6 ECN for
  TCP and SCTP), IETF RFC 2597 (IPv4 / IPv6 DSCP)

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Balasubramanian Manoharan <balasubramanian.manoharan@caviumnetworks.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
MAINTAINERS
doc/api/doxy-api-index.md
lib/librte_ether/Makefile
lib/librte_ether/rte_ether_version.map
lib/librte_ether/rte_tm.c [new file with mode: 0644]
lib/librte_ether/rte_tm.h [new file with mode: 0644]
lib/librte_ether/rte_tm_driver.h [new file with mode: 0644]