IP Library › Granted Patent US 10,291,555
Granted Patent B2
US 10,291,555 · App. 14/944,084 · Granted May 14, 2019

Service based intelligent packet-in buffering mechanism for openflow switches by having variable buffer timeouts

Inventors: Faseela K (Bangalore, IN); Vishal Thapar (Bangalore, IN)
Assignee: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
H04L49/9094H04L1/188H04L45/38H04L45/74H04L47/28H04L45/64H04L49/9005H04L49/9052Y02D30/30
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,291,555
App. No.
14/944,084
Granted
May 14, 2019
Kind
B2
Abstract

A method is performed by a network device acting as a switch in a Software Defined Networking (SDN) network, where the switch is coupled to a controller in the SDN network. The method implements variable buffer timeout output actions. The method includes generating a flow entry that includes a packet matching criteria and an output action that specifies a buffer timeout value, receiving a packet for forwarding, determining whether the packet matches the packet matching criteria of the flow entry, and storing the packet in a buffer of the switch in response to determining that the packet matches the packet matching criteria of the flow entry, the buffer to temporarily store the packet while the controller determines processing for the packet. The method further includes associating the buffered packet with the buffer timeout value specified in the flow entry and transmitting a portion of the packet to the controller.

Claims (48)

1. A method performed by a network device acting as a switch in a Software Defined Networking (SDN) network, the switch coupled to a controller in the SDN network, the method to implement variable buffer timeout output actions, the method comprising:

generating a flow entry that includes a packet matching criteria and an output action that specifies the controller as an output destination and a buffer timeout value;

receiving a packet for forwarding;

determining whether the packet matches the packet matching criteria of the flow entry;

storing the packet in a buffer of the switch and transmitting at least a portion of the packet to the controller in response to determining that the packet matches the packet matching criteria of the flow entry because the controller is specified as the output destination in the output action of the flow entry, the buffer to temporarily store the packet while the controller determines processing for the packet;

associating the buffered packet with the buffer timeout value specified in the flow entry to indicate that the buffered packet is to be deleted from the buffer if an instruction for processing the buffered packet is not received from the controller within a length of time indicated by the buffer timeout value;

determining whether an elapsed lifetime of the buffered packet reaches or exceeds the buffer timeout value; and

deleting the buffered packet from the buffer in response to determining that the elapsed lifetime of the buffered packet reaches or exceeds the buffer timeout value.

2. The method of claim 1 , further comprising:

receiving an instruction from the controller for processing the buffered packet before an elapsed lifetime of the buffered packet reaches or exceeds the buffer timeout value;

processing the packet according to the instruction received from the controller; and

deleting the buffered packet from the buffer after the buffered packet has been processed.

3. The method of claim 1 , wherein the packet matching criteria matches packets that are associated with a service.

4. The method of claim 3 , wherein the service is any one of an Address Resolution Protocol (ARP) service, a Link Layer Discovery Protocol (LLDP) service, and a Dynamic Host Configuration Protocol (DHCP) service.

5. The method of claim 1 , further comprising:

receiving a request from the controller to identify features supported by the switch; and

transmitting a response to the controller that identifies the features supported by the switch, wherein the identified features include a variable buffer timeout output action feature.

6. The method of claim 1 , wherein the buffer is associated with the buffer timeout value.

7. The method of claim 1 , wherein the switch communicates with the controller using an extension to OpenFlow.

8. A method performed by a network device acting as a controller in a Software Defined Networking (SDN) network, the method to implement variable buffer timeout output actions, the method comprising:

transmitting an instruction to a switch to generate a flow entry in the switch that includes a packet matching criteria and an output action that specifies the controller as an output destination and a buffer timeout value, wherein the generation of the flow entry in the switch causes the switch to store a received packet matching the packet matching criteria in a buffer of the switch, transmit at least a portion of the received packet to the controller because the controller is specified as the output destination in the output action of the flow entry, and delete the buffered packet from the buffer in response to determining that an elapsed lifetime of the buffered packet reaches or exceeds the buffer timeout value.

9. The method of claim 8 , further comprising:

determining whether the switch supports a variable buffer timeout output action feature before transmitting the instruction to the switch.

10. A network device configured to implement variable buffer timeout output actions in a Software Defined Networking (SDN) network, the network device to act as a switch in the SDN network, the switch to be coupled to a controller in the SDN network, the network device comprising:

a non-transitory machine-readable storage medium to store a variable buffer timeout output action component; and

a processor communicatively coupled to the non-transitory machine-readable storage medium, the processor configured to execute the variable buffer timeout output action component, wherein the variable buffer timeout output action component is configured to generate a flow entry that includes a packet matching criteria and an output action that specifies the controller as an output destination and a buffer timeout value, receive a packet for forwarding, determine whether the packet matches the packet matching criteria of the flow entry, store the packet in a buffer of the switch and transmit at least a portion of the packet to the controller in response to determining that the packet matches the packet matching criteria of the flow entry because the controller is specified as the output destination in the output action of the flow entry, the buffer to temporarily store the packet while the controller determines processing for the packet, associate the buffered packet with the buffer timeout value specified in the flow entry to indicate that the buffered packet is to be deleted from the buffer if an instruction for processing the buffered packet is not received from the controller within a length of time indicated by the buffer timeout value, determine whether an elapsed lifetime of the buffered packet reaches or exceeds the buffer timeout value, and delete the buffered packet from the buffer in response to determining that the elapsed lifetime of the buffered packet reaches or exceeds the buffer timeout value.

11. A network device configured to implement variable buffer timeout output actions in a Software Defined Networking (SDN) network, the network device to act as a controller in the SDN network, the network device comprising:

a non-transitory machine-readable storage medium to store a variable buffer timeout output action component; and

a processor communicatively coupled to the non-transitory machine-readable storage medium, the processor configured to execute the variable buffer timeout output action component, wherein the variable buffer timeout output action component is configured to transmit an instruction to a switch to generate a flow entry in the switch that includes a packet matching criteria and an output action that specifies the controller as an output destination and a buffer timeout value, wherein the generation of the flow entry in the switch causes the switch to store a received packet matching the packet matching criteria in a buffer of the switch, transmit at least a portion of the received packet to the controller because the controller is specified as the output destination in the output action of the flow entry, and delete the buffered packet from the buffer in response to determining that an elapsed lifetime of the buffered packet reaches or exceeds the buffer timeout value.

12. The network device of claim 11 , wherein the variable buffer timeout output action component is further configured to determine whether the switch supports a variable buffer timeout output action feature before transmitting the instruction to the switch.

13. A non-transitory machine-readable medium having computer code stored therein, which when executed by a set of one or more processors of a network device, causes the network device to perform operations for implementing variable buffer timeout output actions in a Software Defined Networking (SDN) network, the network device to act as a switch in the SDN network, the switch to be coupled to a controller in the SDN network, the operations comprising:

generating a flow entry that includes a packet matching criteria and an output action that specifies the controller as an output destination and a buffer timeout value;

receiving a packet for forwarding;

determining whether the packet matches the packet matching criteria of the flow entry;

storing the packet in a buffer of the switch in response to determining that the packet matches the packet matching criteria of the flow entry, the buffer to temporarily store the packet while the controller determines processing for the packet;

associating the buffered packet with the buffer timeout value specified in the flow entry to indicate that the buffered packet is to be deleted from the buffer if an instruction for processing the buffered packet is not received from the controller within a length of time indicated by the buffer timeout value;

transmitting a portion of the packet to the controller because the controller is specified as the output destination in the output action of the flow entry;

determining whether an elapsed lifetime of the buffered packet reaches or exceeds the buffer timeout value; and

deleting the buffered packet from the buffer in response to determining that the elapsed lifetime of the buffered packet reaches or exceeds the buffer timeout value and an instruction for processing the buffered packet has not been received from the controller.

14. The non-transitory machine-readable medium of claim 13 , wherein the computer code, when executed by the set of one or more processors, causes the network device to perform further operations comprising:

receiving an instruction from the controller for processing the buffered packet before an elapsed lifetime of the buffered packet reaches or exceeds the buffer timeout value;

processing the packet according to the instruction received from the controller; and

deleting the buffered packet from the buffer after the buffered packet has been processed.

15. The non-transitory machine-readable medium of claim 13 , wherein the packet matching criteria matches packets that are associated with a service.

16. A non-transitory machine-readable medium having computer code stored therein, which when executed by a set of one or more processors of a network device, causes the network device to perform operations for implementing variable buffer timeout output actions in a Software Defined Networking (SDN) network, the network device to act as a controller in the SDN network, the operations comprising:

transmitting an instruction to a switch to generate a flow entry in the switch that includes a packet matching criteria and an output action that specifies the controller as an output destination and a buffer timeout value, wherein the generation of the flow entry in the switch causes the switch to store a received packet matching the packet matching criteria in a buffer of the switch, transmit at least a portion of the received packet to the controller because the controller is specified as the output destination in the output action of the flow entry, and delete the buffered packet from the buffer in response to determining that an elapsed lifetime of the buffered packet reaches or exceeds the buffer timeout value.

17. The non-transitory machine-readable medium of claim 16 , wherein the computer code, when executed by the set of one or more processors, causes the network device to perform further operations comprising:

determining whether the switch supports a variable buffer timeout output action feature before transmitting the instruction to the switch.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2016
From: K, FASEELA; THAPAR, VISHAL
To: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)
Reel/Frame 037990/0413 →
Continuity (1)
Related Publication 20170142034A1 · May 18, 2017
Cited By (8)
US 12,255,835 US 12,375,588 US 12,381,962 US 12,407,564 US 12,445,542 US 12,457,172 US 12,603,849 US 12,634,199