IP Library Granted Patent US 10,645,009
Granted Patent B2
US 10,645,009 · App. 15/462,560 · Granted May 5, 2020

Method and apparatus for programmable buffers in mobile networks

Inventors: Ulas Can Kozat (Mountain View, CA); Prakash Ramchandran (Santa Clara, CA); Kaippallimalil Mathew John (Richardson, TX)
Assignee: Futurewei Technologies, Inc.
H04L47/24H04L47/50
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,645,009
App. No.
15/462,560
Granted
May 5, 2020
Kind
B2
Abstract

It is possible to dynamically configure buffers in network devices by sending software defined network (SDN) instructions to a Control-to-Data-Plane Interface (CDPI) agents on the network devices. An SDN instruction may instruct a CDPI agent to configure a buffer in a network device to store a specific type of traffic flow in accordance with a traffic handling policy. In some embodiments, the SDN instruction instructs the CDPI Agent to directly configure a buffer by, for example, associating a virtual port with a new/existing buffer, binding a virtual port associated with the buffer to a switch, and/or installing a flow control rule in a flow table of the switch. In other embodiments, the SDN instruction may instruct the CDPI agent to reconfigure the buffer by transitioning the buffer to a different state.

Claims (47)

1. A method for dynamically configuring buffers of a network device on a data plane of a telecommunications network, the method comprising:

sending, by a controller, a software defined network (SDN) instruction to the network device on the data plane of the telecommunications network, the SDN instruction instructing a Control-to-Data-Plane Interface (CDPI) Agent to re-configure a buffer, previously configured in the network device, according to a traffic handling policy by transitioning the buffer to a different state such that, after the transition, the different state governs how data packets of a specific traffic flow type are stored in the buffer and/or forwarded out of the buffer over one or more virtual ports.

2. The method of claim 1 , wherein the network device is one of a network gateway, a network switch, a network router, a base station, or a relay station, and wherein the SDN instruction is a device-specific instruction corresponding to a network device type associated with the network device.

3. The method of claim 1 , wherein the controller is one of a mobility management entity (MME), a Slice Management Entity, a Connectionless Service Management Entity, a content distribution network (CDN) management entity, a cache Management entity, or a radio resource control (RRC) signaling controller.

4. The method of claim 1 , further comprising sending, by the controller, a subsequent SDN instruction that instructs the CDPI Agent to terminate the buffer in the network device.

5. The method of claim 1 , wherein the SDN instruction further instructs the CDPI Agent to associate a virtual port with the buffer.

6. The method of claim 1 , wherein the SDN instruction further instructs the CDPI Agent to bind a virtual port associated with the buffer to a switch.

7. The method of claim 1 , wherein the SDN instruction further instructs the CDPI Agent to install a flow control rule in a flow table of a switch bound to a virtual port associated with the buffer, the switch being configured to switch packets between the virtual port associated with the buffer and a physical port of the network device according to the flow control rule after the flow control rule is installed in the flow table.

8. The method of claim 1 , wherein the different state is a null state, and wherein transitioning the buffer to the null state detaches one or more virtual ports that were previously bound to the buffer and reclaims memory that was previously allocated to the buffer.

9. The method of claim 1 , wherein the different state is an initialized state, and wherein transitioning the buffer to the initialized state allocates memory to the buffer and configures the buffer to store and forward the data packets.

10. The method of claim 1 , wherein the different state is a storing state, and wherein transitioning the buffer to the storing state prevents the buffer both from storing new data packets and from sending existing data packets over virtual ports bound to the buffer.

11. The method of claim 1 , wherein the different state is a simple buffering state, and wherein transitioning the buffer to the simple buffering state prevents the buffer from sending existing data packets over any virtual ports while also permitting the buffer to store new data packets.

12. The method of claim 1 , wherein the different state is a serving state, and wherein transitioning the buffer to the serving state prevents the buffer from storing new data packets while also permitting the buffer to send existing data packets over one or more virtual ports bound to the buffer.

13. The method of claim 1 , wherein the different state is an overlay queue state, and wherein transitioning the buffer to the overlay queue state permits the buffer to both store new data packets and send existing data packets over the one or more virtual ports.

14. A controller comprising:

a processor; and

a non-transitory computer readable storage medium storing programming for execution by the processor, the programming including instructions to:

send a software defined network (SDN) instruction to a network device on a data plane of a mobile telecommunications network, the SDN instruction instructing a Control-to-Data-Plane Interface (CDPI) Agent to re-configure a buffer, previously configured in the network device, according to a traffic handling policy by transitioning the buffer from a first state to a different state such that, after the transition, the different state governs how data packets of a specific traffic flow type are stored in the buffer and/or forwarded out of the buffer over one or more virtual ports.

15. A method for dynamically configuring buffers of a network device on a data plane of a telecommunications network, the method comprising:

receiving, by a Control-to-Data-Plane Interface (CDPI) Agent in a network device, a software defined network (SDN) instruction from a controller; and

re-configuring, by the CDPI Agent based on the SDN instruction, a buffer in the network device according to a traffic handling policy by transitioning the buffer from a first state to a different state such that, after the transition, the different state governs how data packets of a specific traffic flow type are stored in the buffer and/or forwarded out of the buffer over one or more virtual ports.

16. The method of claim 15 , further comprising:

installing, by the CDPI Agent, a flow control rule in a flow table of a switch bound to a virtual port associated with the buffer based on the SDN instruction, installation of the flow control rule configuring the switch to switch packets between the virtual port associated with the buffer and a physical port of the network device according to the flow control rule.

17. A network device on a data plane of a telecommunications network, the network device comprising:

a processor; and

a non-transitory computer readable storage medium storing programming for execution by the processor, the programming including instructions to:

receive, by a Control-to-Data-Plane Interface (CDPI) Agent in the network device, a software defined network (SDN) instruction from a controller; and

re-configure, by the CDPI Agent based on the SDN instruction, a buffer, previously configured in the network device, according to a traffic handling policy by transitioning the buffer from a first state to a different state such that, after the transition, the different state governs how data packets of a specific traffic flow type are stored in the buffer and/or forwarded out of the buffer over one or more virtual ports.

18. The network device of claim 17 , wherein the programming further includes instructions to install, by the CDPI Agent, a flow control rule in a flow table of a switch bound to a virtual port associated with the buffer based on the SDN instruction, installation of the flow control rule configuring the switch to switch packets between the virtual port associated with the buffer and a physical port of the network device according to the flow control rule.

19. The network device of claim 17 , wherein the different state is a null state, and wherein transitioning the buffer to the null state detaches one or more virtual ports that were previously bound to the buffer and reclaims memory that was previously allocated to the buffer.

20. The network device of claim 17 , wherein the different state is an initialized state, and wherein transitioning the buffer to the initialized state allocates memory to the buffer and configures the buffer to store and forward the data packets.

21. The network device of claim 17 , wherein the different state is a storing state, and wherein transitioning the buffer to the storing state prevents the buffer both from storing new data packets and from sending existing data packets over virtual ports bound to the buffer.

22. The network device of claim 17 , wherein the different state is a simple buffering state, and wherein transitioning the buffer to the simple buffering state prevents the buffer from sending existing data packets over any virtual ports while also permitting the buffer to store new data packets.

23. The network device of claim 17 , wherein the different state is a serving state, and wherein transitioning the buffer to the serving state prevents the buffer from storing new data packets while also permitting the buffer to send existing data packets over one or more virtual ports bound to the buffer.

24. The network device of claim 17 , wherein the different state is an overlay queue state, and wherein transitioning the buffer to the overlay queue state permits the buffer to both store new data packets and send existing data packets over the one or more virtual ports.

25. The controller of claim 14 , wherein the different state is a null state, and wherein transitioning the buffer to the null state detaches one or more virtual ports that were previously bound to the buffer and reclaims memory that was previously allocated to the buffer.

26. The controller of claim 14 , wherein the different state is an initialized state, and wherein transitioning the buffer to the initialized state allocates memory to the buffer and configures the buffer to store and forward the data packets.

27. The controller of claim 14 , wherein the different state is a storing state, and wherein transitioning the buffer to the storing state prevents the buffer both from storing new data packets and from sending existing data packets over virtual ports bound to the buffer.

28. The controller of claim 14 , wherein the different state is a simple buffering state, and wherein transitioning the buffer to the simple buffering state prevents the buffer from sending existing data packets over any virtual ports while also permitting the buffer to store new data packets.

29. The controller of claim 14 , wherein the different state is a serving state, and wherein transitioning the buffer to the serving state prevents the buffer from storing new data packets while also permitting the buffer to send existing data packets over one or more virtual ports bound to the buffer.

30. The controller of claim 14 , wherein the different state is an overlay queue state, and wherein transitioning the buffer to the overlay queue state permits the buffer to both store new data packets and send existing data packets over the one or more virtual ports.

31. The method of claim 15 , wherein the different state is a null state, and wherein transitioning the buffer to the null state detaches one or more virtual ports that were previously bound to the buffer and reclaims memory that was previously allocated to the buffer.

32. The method of claim 15 , wherein the different state is an initialized state, and wherein transitioning the buffer to the initialized state allocates memory to the buffer and configures the buffer to store and forward the data packets.

33. The method of claim 15 , wherein the different state is a storing state, and wherein transitioning the buffer to the storing state prevents the buffer both from storing new data packets and from sending existing data packets over virtual ports bound to the buffer.

34. The method of claim 15 , wherein the different state is a simple buffering state, and wherein transitioning the buffer to the simple buffering state prevents the buffer from sending existing data packets over any virtual ports while also permitting the buffer to store new data packets.

35. The method of claim 15 , wherein the different state is a serving state, and wherein transitioning the buffer to the serving state prevents the buffer from storing new data packets while also permitting the buffer to send existing data packets over one or more virtual ports bound to the buffer.

36. The method of claim 15 , wherein the different state is an overlay queue state, and wherein transitioning the buffer to the overlay queue state permits the buffer to both store new data packets and send existing data packets over the one or more virtual ports.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2017
From: KOZAT, ULAS CAN; RAMCHANDRAN, PRAKASH; JOHN, KAIPPALLIMALIL MATHEW
To: FUTUREWEI TECHNOLOGIES, INC.
Reel/Frame 041623/0323 →
Continuity (2)
Provisional Application 62310363 · Mar 18, 2016
Related Publication 20170272367A1 · Sep 21, 2017