Hi,

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.

Regards,

Yuyong




Reply via email to