Re: [lng-odp] [PATCH v2] example: introducing multi-threaded traffic management case
Hi Maxim, Thank you. I will fix it in the next version. Forrest On 6 February 2017 at 21:10, Maxim Uvarov wrote: > Hello Xuelin, > > new example also needs 'make check' test. > > please see some comments bellow also. > > On 02/06/17 04:35, forrest@linaro.org wrote: > > From: Xuelin Shi > > > > introduce a new example of traffic management with following features: > > - multiple TM threads: one TM thread for each pktio > > - for small system less than 4 cores, only one TM thread created. > > - receiving packets from multiple pktios other than generating packets > > - identifying TM user by ip with individual class of service > > - print the user service while starting the program > > - print the packets counts every 10 seconds for each user > > > > Signed-off-by: Xuelin Shi > > --- > > change history: > > v2: rebase to latest code > > > > example/Makefile.am| 3 +- > > example/m4/configure.m4| 1 + > > example/traffic_mgmt_multi/.gitignore | 3 + > > example/traffic_mgmt_multi/Makefile.am | 10 + > > example/traffic_mgmt_multi/odp_traffic_mgmt.c | 864 > + > > example/traffic_mgmt_multi/odp_traffic_mgmt.h | 48 ++ > > example/traffic_mgmt_multi/odp_traffic_pktio.c | 794 > +++ > > 7 files changed, 1722 insertions(+), 1 deletion(-) > > create mode 100644 example/traffic_mgmt_multi/.gitignore > > create mode 100644 example/traffic_mgmt_multi/Makefile.am > > create mode 100644 example/traffic_mgmt_multi/odp_traffic_mgmt.c > > create mode 100644 example/traffic_mgmt_multi/odp_traffic_mgmt.h > > create mode 100644 example/traffic_mgmt_multi/odp_traffic_pktio.c > > > > diff --git a/example/Makefile.am b/example/Makefile.am > > index dfc07b6..9e21989 100644 > > --- a/example/Makefile.am > > +++ b/example/Makefile.am > > @@ -8,4 +8,5 @@ SUBDIRS = classifier \ > > switch \ > > time \ > > timer \ > > - traffic_mgmt > > + traffic_mgmt \ > > + traffic_mgmt_multi > > diff --git a/example/m4/configure.m4 b/example/m4/configure.m4 > > index 620db04..3bf48bd 100644 > > --- a/example/m4/configure.m4 > > +++ b/example/m4/configure.m4 > > @@ -21,4 +21,5 @@ AC_CONFIG_FILES([example/classifier/Makefile > >example/time/Makefile > >example/timer/Makefile > >example/traffic_mgmt/Makefile > > + example/traffic_mgmt_multi/Makefile > >example/Makefile]) > > diff --git a/example/traffic_mgmt_multi/.gitignore > b/example/traffic_mgmt_multi/.gitignore > > new file mode 100644 > > index 000..d8f5468 > > --- /dev/null > > +++ b/example/traffic_mgmt_multi/.gitignore > > @@ -0,0 +1,3 @@ > > +odp_traffic_mgmt > > +*.log > > +*.trs > > diff --git a/example/traffic_mgmt_multi/Makefile.am > b/example/traffic_mgmt_multi/Makefile.am > > new file mode 100644 > > index 000..3f68e11 > > --- /dev/null > > +++ b/example/traffic_mgmt_multi/Makefile.am > > @@ -0,0 +1,10 @@ > > +include $(top_srcdir)/example/Makefile.inc > > + > > +bin_PROGRAMS = odp_traffic_mgmt$(EXEEXT) > > +odp_traffic_mgmt_LDFLAGS = $(AM_LDFLAGS) -static > > +odp_traffic_mgmt_CFLAGS = $(AM_CFLAGS) -I${top_srcdir}/example > -I${top_srcdir}/test > > + > > +noinst_HEADERS = $(top_srcdir)/example/example_debug.h \ > > + $(top_srcdir)/example/traffic_ > mgmt_multi/odp_traffic_mgmt.h > > + > > +dist_odp_traffic_mgmt_SOURCES = odp_traffic_mgmt.c odp_traffic_pktio.c > > diff --git a/example/traffic_mgmt_multi/odp_traffic_mgmt.c > b/example/traffic_mgmt_multi/odp_traffic_mgmt.c > > new file mode 100644 > > index 000..3879f8e > > --- /dev/null > > +++ b/example/traffic_mgmt_multi/odp_traffic_mgmt.c > > @@ -0,0 +1,864 @@ > > +/* Copyright 2015 EZchip Semiconductor Ltd. All Rights Reserved. > > + * > > New example is not from EZchip. This needs to be removed. > > > > + * Copyright (c) 2015, Linaro Limited > > > year has to be 2017. > > > + * All rights reserved. > > + * > > + * SPDX-License-Identifier: BSD-3-Clause > > + */ > > + > > +#define _GNU_SOURCE > > + > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > + > > +#include "odp_traffic_mgmt.h" > > + > > +#define TM_USER_IP_START 0x01010101 > > +#define NUM_SVC_CLASSES 4 > > +#define USERS_PER_SVC_CLASS 2 > > +#define APPS_PER_USER 1 > > +#define TM_QUEUES_PER_APP 1 > > +#define NUM_USERS (USERS_PER_SVC_CLASS * NUM_SVC_CLASSES) > > +#define NUM_TM_QUEUES (NUM_USERS * APPS_PER_USER * > TM_QUEUES_PER_APP) > > +#define TM_QUEUES_PER_USER (TM_QUEUES_PER_APP * APPS_PER_USER) > > +#define TM_QUEUES_PER_CLASS (USERS_PER_SVC_CLASS * TM_QUEUES_PER_USER) > > +#define MAX_NODES_PER_LEVEL (NUM_USERS * APPS_PER_USER) > > + > > +#define MAX_NB_PKTIO 32 > > +#define MAX_NB_USERS (NUM_USERS * APPS_PER_USER * MAX_NB_PKTIO) > > + > > +#define KBP
Re: [lng-odp] [PATCH v2] example: introducing multi-threaded traffic management case
Hello Xuelin, new example also needs 'make check' test. please see some comments bellow also. On 02/06/17 04:35, forrest@linaro.org wrote: > From: Xuelin Shi > > introduce a new example of traffic management with following features: > - multiple TM threads: one TM thread for each pktio > - for small system less than 4 cores, only one TM thread created. > - receiving packets from multiple pktios other than generating packets > - identifying TM user by ip with individual class of service > - print the user service while starting the program > - print the packets counts every 10 seconds for each user > > Signed-off-by: Xuelin Shi > --- > change history: > v2: rebase to latest code > > example/Makefile.am| 3 +- > example/m4/configure.m4| 1 + > example/traffic_mgmt_multi/.gitignore | 3 + > example/traffic_mgmt_multi/Makefile.am | 10 + > example/traffic_mgmt_multi/odp_traffic_mgmt.c | 864 > + > example/traffic_mgmt_multi/odp_traffic_mgmt.h | 48 ++ > example/traffic_mgmt_multi/odp_traffic_pktio.c | 794 +++ > 7 files changed, 1722 insertions(+), 1 deletion(-) > create mode 100644 example/traffic_mgmt_multi/.gitignore > create mode 100644 example/traffic_mgmt_multi/Makefile.am > create mode 100644 example/traffic_mgmt_multi/odp_traffic_mgmt.c > create mode 100644 example/traffic_mgmt_multi/odp_traffic_mgmt.h > create mode 100644 example/traffic_mgmt_multi/odp_traffic_pktio.c > > diff --git a/example/Makefile.am b/example/Makefile.am > index dfc07b6..9e21989 100644 > --- a/example/Makefile.am > +++ b/example/Makefile.am > @@ -8,4 +8,5 @@ SUBDIRS = classifier \ > switch \ > time \ > timer \ > - traffic_mgmt > + traffic_mgmt \ > + traffic_mgmt_multi > diff --git a/example/m4/configure.m4 b/example/m4/configure.m4 > index 620db04..3bf48bd 100644 > --- a/example/m4/configure.m4 > +++ b/example/m4/configure.m4 > @@ -21,4 +21,5 @@ AC_CONFIG_FILES([example/classifier/Makefile >example/time/Makefile >example/timer/Makefile >example/traffic_mgmt/Makefile > + example/traffic_mgmt_multi/Makefile >example/Makefile]) > diff --git a/example/traffic_mgmt_multi/.gitignore > b/example/traffic_mgmt_multi/.gitignore > new file mode 100644 > index 000..d8f5468 > --- /dev/null > +++ b/example/traffic_mgmt_multi/.gitignore > @@ -0,0 +1,3 @@ > +odp_traffic_mgmt > +*.log > +*.trs > diff --git a/example/traffic_mgmt_multi/Makefile.am > b/example/traffic_mgmt_multi/Makefile.am > new file mode 100644 > index 000..3f68e11 > --- /dev/null > +++ b/example/traffic_mgmt_multi/Makefile.am > @@ -0,0 +1,10 @@ > +include $(top_srcdir)/example/Makefile.inc > + > +bin_PROGRAMS = odp_traffic_mgmt$(EXEEXT) > +odp_traffic_mgmt_LDFLAGS = $(AM_LDFLAGS) -static > +odp_traffic_mgmt_CFLAGS = $(AM_CFLAGS) -I${top_srcdir}/example > -I${top_srcdir}/test > + > +noinst_HEADERS = $(top_srcdir)/example/example_debug.h \ > + $(top_srcdir)/example/traffic_mgmt_multi/odp_traffic_mgmt.h > + > +dist_odp_traffic_mgmt_SOURCES = odp_traffic_mgmt.c odp_traffic_pktio.c > diff --git a/example/traffic_mgmt_multi/odp_traffic_mgmt.c > b/example/traffic_mgmt_multi/odp_traffic_mgmt.c > new file mode 100644 > index 000..3879f8e > --- /dev/null > +++ b/example/traffic_mgmt_multi/odp_traffic_mgmt.c > @@ -0,0 +1,864 @@ > +/* Copyright 2015 EZchip Semiconductor Ltd. All Rights Reserved. > + * New example is not from EZchip. This needs to be removed. > + * Copyright (c) 2015, Linaro Limited year has to be 2017. > + * All rights reserved. > + * > + * SPDX-License-Identifier: BSD-3-Clause > + */ > + > +#define _GNU_SOURCE > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#include "odp_traffic_mgmt.h" > + > +#define TM_USER_IP_START 0x01010101 > +#define NUM_SVC_CLASSES 4 > +#define USERS_PER_SVC_CLASS 2 > +#define APPS_PER_USER 1 > +#define TM_QUEUES_PER_APP 1 > +#define NUM_USERS (USERS_PER_SVC_CLASS * NUM_SVC_CLASSES) > +#define NUM_TM_QUEUES (NUM_USERS * APPS_PER_USER * TM_QUEUES_PER_APP) > +#define TM_QUEUES_PER_USER (TM_QUEUES_PER_APP * APPS_PER_USER) > +#define TM_QUEUES_PER_CLASS (USERS_PER_SVC_CLASS * TM_QUEUES_PER_USER) > +#define MAX_NODES_PER_LEVEL (NUM_USERS * APPS_PER_USER) > + > +#define MAX_NB_PKTIO 32 > +#define MAX_NB_USERS (NUM_USERS * APPS_PER_USER * MAX_NB_PKTIO) > + > +#define KBPS 1000 > +#define MBPS 100 > +#define PERCENT(percent) (100 * percent) > + > +#define FALSE 0 > +#define TRUE 1 > + > +#define MAX(a, b) (((a) > (b)) ? (a) : (b)) > +#define MIN(a, b) (((a) < (b)) ? (a) : (b)) > + > +#define RANDOM_BUF_LEN 1024 > + > +typedef struct { > + odp_tm_shaper_params_tshaper_params; > + odp_tm_threshold_params_t threshol