[dpdk-dev] [PATCH v8 5/5] app/testpmd: add traffic management forwarding mode

Ferruh Yigit ferruh.yigit at intel.com
Tue Oct 10 20:24:22 CEST 2017


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 <jasvinder.singh at intel.com>
> Acked-by: Cristian Dumitrescu <cristian.dumitrescu at intel.com>
> Acked-by: Thomas Monjalon <thomas at monjalon.net>
> 
> ---
> 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



More information about the dev mailing list