Thread (79 messages) 79 messages, 6 authors, 2017-10-12

Re: [PATCH v8 5/5] app/testpmd: add traffic management forwarding mode

From: Ferruh Yigit <hidden>
Date: 2017-10-10 18:24:23

On 10/10/2017 11:18 AM, Jasvinder Singh wrote:
This commit extends the testpmd application with new forwarding engine
that demonstrates the use of ethdev traffic management APIs and softnic
PMD for QoS traffic management.

In this mode, 5-level hierarchical tree of the QoS scheduler is built
with the help of ethdev TM APIs such as shaper profile add/delete,
shared shaper add/update, node add/delete, hierarchy commit, etc.
The hierarchical tree has following nodes; root node(x1, level 0),
subport node(x1, level 1), pipe node(x4096, level 2),
tc node(x16348, level 3), queue node(x65536, level 4).

During runtime, each received packet is first classified by mapping the
packet fields information to 5-tuples (HQoS subport, pipe, traffic class,
queue within traffic class, and color) and storing it in the packet mbuf
sched field. After classification, each packet is sent to softnic port
which prioritizes the transmission of the received packets, and
accordingly sends them on to the output interface.

To enable traffic management mode, following testpmd command is used;

$ ./testpmd -c c -n 4 --vdev
	'net_softnic0,hard_name=0000:06:00.1,soft_tm=on' -- -i
	--forward-mode=tm

Signed-off-by: Jasvinder Singh <redacted>
Acked-by: Cristian Dumitrescu <redacted>
Acked-by: Thomas Monjalon <redacted>

---
v8 change:
- fix compilation warning on uninitialsed parameter
 
v7 change:
- change port_id type to uint16_t
- rebase on dpdk-next-net

v5 change:
- add CLI to enable default tm hierarchy
 
v3 change:
- Implements feedback from Pablo[1]
  - add flag to check required librte_sched lib and softnic pmd
  - code cleanup

v2 change:
- change file name softnictm.c to tm.c
- change forward mode name to "tm"
- code clean up

[1] http://dpdk.org/ml/archives/dev/2017-September/075744.html

 app/test-pmd/Makefile  |  12 +
 app/test-pmd/cmdline.c |  88 +++++
 app/test-pmd/testpmd.c |  15 +
 app/test-pmd/testpmd.h |  46 +++
 app/test-pmd/tm.c      | 865 +++++++++++++++++++++++++++++++++++++++++++++++++
Testpmd documentation [1] is missing, can you please send a separate
patch to update it? I can squash it later into this patch.

[1]
doc/guides/testpmd_app_ug/testpmd_funcs.rst
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help