IP Library › Granted Patent US 10,560,394
Granted Patent B2
US 10,560,394 · App. 15/713,230 · Granted Feb 11, 2020

Dynamic transmission side scaling

Inventors: Prasannakumar Murugesan (San Ramon, CA); Ajeet Pal Singh Gill (Fremont, CA); David A. Johnson (Nashua, NH); Ian McDowell Campbell (Littleton, CO); Ravinandan Arakali (San Jose, CA)
Assignee: CISCO TECHNOLOGY, INC.
H04L47/6255H04L43/0888H04L49/3063H04W28/0231H04L41/20
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,560,394
App. No.
15/713,230
Granted
Feb 11, 2020
Kind
B2
Abstract

In one embodiment, a method includes assigning a number of threads for user plane functions to a corresponding number of transmit queues for transmission of packets on a network interface, assigning additional threads exceeding the number of transmit queues to software transmission queues associated with the threads assigned to the transmit queues, identifying a load at each of the threads, dynamically updating assignment of the additional threads to the software transmission queues based on the load at the threads, and transmitting packets from the transmit queues for transmission on a network from a physical interface at a network device. An apparatus and logic are also disclosed herein.

Claims (35)

1. A method comprising:

assigning a number of threads for user plane functions to a corresponding number of transmit queues for transmission of packets on a network interface;

assigning a plurality of additional threads exceeding the number of transmit queues to software transmission queues associated with the threads assigned to the transmit queues;

identifying a load at each of the threads assigned to the transmit queues;

dynamically updating assignment of said additional threads to said software transmission queues based on the load at the threads; and

transmitting packets from the transmit queues for transmission on a network from a physical interface at a network device.

2. The method of claim 1 wherein the network interface comprises a virtual network interface card.

3. The method of claim 1 wherein each of the threads and said additional threads corresponds to a mobile packet processing core.

4. The method of claim 1 wherein identifying the load comprises identifying key performance indicators.

5. The method of claim 1 wherein identifying the load comprises identifying cycles spent in user plane functions running in the threads.

6. The method of claim 1 wherein assigning each of said plurality of additional threads further comprises initially assigning each of said additional threads to one of the software transmission queues based on a hash function.

7. The method of claim 1 further comprising generating a mapping of said additional threads to said software transmission queues and dynamically updating said mapping.

8. An apparatus comprising:

a plurality of transmit queues associated with a network interface;

a plurality of threads for user plane functions, a number of said threads exceeding a number of the transmit queues;

a processor for assigning a portion of said plurality of threads to a corresponding number of transmit queues, assigning remaining threads to software transmission queues associated with the threads assigned to the transmit queues, identifying a load at each of the threads, and dynamically updating assignment of the threads to said software transmission queues based on the load at the threads;

memory for storing a mapping of the threads to said software transmission queues; and

a physical interface for transmitting packets from the transmit queues to a network.

9. The apparatus of claim 8 wherein the network interface comprises a virtual network interface card.

10. The apparatus of claim 8 wherein each of the threads corresponds to a mobile packet processing core.

11. The apparatus of claim 8 wherein the load is based on key performance indicators.

12. The apparatus of claim 8 wherein the load is based at least in part on cycles spent in user plane functions running in the threads.

13. The apparatus of claim 8 wherein the threads are initially assigned to the software transmission queues using a hash function.

14. The apparatus of claim 8 wherein the processor is configured to periodically update the mapping based on changes in the load.

15. Non-transitory computer readable media for execution and when executed operable to:

assign a number of threads for user plane functions to a corresponding number of transmit queues for transmission of packets on a network interface;

assign a plurality of additional threads exceeding the number of transmit queues to software transmission queues associated with the threads assigned to the transmit queues;

identify a load at each of the threads assigned to the transmit queues;

dynamically update assignment of said additional threads to said software transmission queues based on the load at the threads; and

transmit packets from the transmit queues for transmission on a network from a physical interface at a network device.

16. The non-transitory computer readable media of claim 15 wherein the network interface comprises a virtual network interface card.

17. The non-transitory computer readable media of claim 15 wherein each of the threads corresponds to a mobile packet processing core.

18. The non-transitory computer readable media of claim 15 wherein the load is based on key performance indicators.

19. The non-transitory computer readable media of claim 15 wherein the load is based at least in part on cycles spent in transmission functions.

20. The non-transitory computer readable media of claim 15 wherein the threads are initially assigned to said software transmission queues based on a hash function.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2017
From: MURUGESAN, PRASANNAKUMAR; GILL, AJEET PAL SINGH; JOHNSON, DAVID A.; CAMPBELL, IAN MCDOWELL; ARAKALI, RAVINANDAN
To: CISCO TECHNOLOGY, INC.
Reel/Frame 043668/0631 →
Continuity (1)
Related Publication 20190097939A1 · Mar 28, 2019
Cited By (1)
US 12,452,176