[dpdk-users] how to design high performance QoS support for a large amount of subscribers
yuyong.zhang at casa-systems.com
Tue Aug 2 17:26:06 CEST 2016
I am trying to add QoS support for a high performance VNF with large amount of subscribers (millions). It requires to support guaranteed bit rate for different service level of subscribers. I.e. four service levels need to be supported:
* Diamond, 500M
* Gold, 100M
* Silver, 50M
* Bronze, 10M
Here is the current pipeline design using DPDK:
* 4 RX threads, does packet classification and load balancing
* 10-20 worker thread, does application subscriber management
* 4 TX threads, sends packets to TX NICs.
* Ring buffers used among RX threads, Worker threads, and TX threads
I read DPDK program guide for QoS framework regarding hierarchical scheduler: Port, sub-port, pipe, TC and queues, I am looking for advice on how to design QoS scheduler to support millions of subscribers (pipes) which traffic are processed in tens of worker threads where subscriber management processing are handled?
One design thought is as the following:
8 ports (each one is associated with one physical port), 16-20 sub-ports (each is used by one Worker thread), each sub-port supports 250K pipes for subscribers. Each worker thread manages one sub-port and does metering for the sub-port to get color, and after identity subscriber flow pick a unused pipe, and do sched enqueuer/de-queue and then put into TX rings to TX threads, and TX threads send the packets to TX NICs.
Are there functional and performance issues with above approach?
Any advice and input are appreciated.
More information about the users