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