US10721157B2ActiveUtilityA1

Mechanism to detect data plane loops in an openflow network

73
Assignee: ERICSSON TELEFON AB L MPriority: Feb 21, 2017Filed: Feb 21, 2017Granted: Jul 21, 2020
Est. expiryFeb 21, 2037(~10.6 yrs left)· nominal 20-yr term from priority
H04L 45/18H04L 49/3009H04L 49/3063H04L 47/18
73
PatentIndex Score
2
Cited by
9
References
18
Claims

Abstract

A method is implemented by a network device functioning as a switch in a software defined networking (SDN) network to detect data plane loops in the SDN network. The method includes receiving a packet, setting a value of a packet register associated with the packet to an initial loop count value, performing an arithmetic operation on the packet register to update the value of the packet register to an updated loop count value when the packet is to be resubmitted to a current flow table or a previous flow table of a packet processing pipeline of the switch, and determining that the packet is in a data plane loop in response to a determination that the updated loop count value is an invalid value.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method implemented by a network device functioning as a switch in a software defined networking (SDN) network to detect data plane loops in the SDN network, the method comprising:
 receiving a packet; 
 setting a value of a packet register associated with the packet to an initial loop count value; 
 performing an arithmetic operation on the packet register to update the value of the packet register to an updated loop count value when the packet is to be resubmitted to a current flow table or a previous flow table of a packet processing pipeline of the switch; 
 determining that the packet is in a data plane loop in response to a determination that the updated loop count value is an invalid value; and 
 transmitting a control message to an SDN controller in response to a determination that the packet is in the data plane loop, wherein the control message is an OpenFlow Packet-In message and includes an indication that the packet is in the data plane loop, wherein the indication is carried in a reason field of the OpenFlow Packet-In message. 
 
     
     
       2. The method of  claim 1 , wherein the arithmetic operation is a decrement operation. 
     
     
       3. The method of  claim 1 , further comprising:
 generating a first flow entry that includes an instruction to set the value of the packet register to the initial loop count value; and
 generating a second flow entry that includes an instruction to perform the arithmetic operation on the packet register and an instruction to resubmit packets matching the second flow entry to a current flow table or a previous flow table of the packet processing pipeline of the switch. 
 
 
     
     
       4. The method of  claim 3 , wherein the first flow entry is generated in a foremost flow table of the packet processing pipeline of the switch. 
     
     
       5. The method of  claim 1 , further comprising:
 performing the arithmetic operation on the packet register to update the value of the packet register when the packet is to be output to an SDN controller. 
 
     
     
       6. The method of  claim 5 , further comprising:
 transmitting a first control message to the SDN controller to output the packet to the SDN controller, wherein the first control message includes the value of the packet register, wherein the value of the packet register corresponds to a current loop count value for the packet; 
 receiving a second control message from the SDN controller that is responsive to the first control message transmitted to the SDN controller, wherein the second control message includes an instruction for the switch to set the value of the packet register to the current loop count value; and 
 setting the value of the packet register to the current loop count value according to the instruction included in the second control message. 
 
     
     
       7. The method of  claim 6 , wherein the first control message is an OpenFlow Packet-In message. 
     
     
       8. The method of  claim 7 , wherein the current loop count value is carried in a metadata field of the OpenFlow Packet-In message. 
     
     
       9. The method of  claim 7 , wherein the OpenFlow Packet-In message includes the packet, and wherein the current loop count value is carried in a virtual local area network (VLAN) tag added to the packet. 
     
     
       10. The method of  claim 6 , wherein the second control message is an OpenFlow Packet-Out message. 
     
     
       11. A network device configured to detect data plane loops in a software defined networking (SDN) network, the network device to function as a switch in the SDN network, the network device comprising:
 a set of one or more processors; and 
 a non-transitory machine-readable storage medium having stored therein a data plane loop detection component, which when executed by the set of one or more processors, causes the network device to receive a packet, set a value of a packet register associated with the packet to an initial loop count value, perform an arithmetic operation on the packet register to update the value of the packet register to an updated loop count value when the packet is to be resubmitted to a current flow table or a previous flow table of a packet processing pipeline of the switch, determine that the packet is in a data plane loop in response to a determination that the updated loop count value is an invalid value, and transmit a control message to an SDN controller in response to a determination that the packet is in the data plane loop, wherein the control message is an OpenFlow Packet-In message and includes an indication that the packet is in the data plane loop, wherein the indication is carried in a reason field of the OpenFlow Packet-In message. 
 
     
     
       12. The network device of  claim 11 , wherein the arithmetic operation is a decrement operation. 
     
     
       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 functioning as a switch in a software defined networking (SDN) network, causes the network device to perform operations for detecting data plane loops in the SDN network, the operations comprising:
 receiving a packet; 
 setting a value of a packet register associated with the packet to an initial loop count value; 
 performing an arithmetic operation on the packet register to update the value of the packet register to an updated loop count value when the packet is to be resubmitted to a current flow table or a previous flow table of a packet processing pipeline of the switch; 
 determining that the packet is in a data plane loop in response to a determination that the updated loop count value is an invalid value; and 
 transmitting a control message to an SDN controller in response to a determination that the packet is in the data plane loop, wherein the control message is an OpenFlow Packet-In message and includes an indication that the packet is in the data plane loop, wherein the indication is carried in a reason field of the OpenFlow Packet-In message. 
 
     
     
       14. The non-transitory machine-readable medium of  claim 13 , wherein the computer code, when executed by the set of one or more processors of the network device, causes the network device to perform further operations comprising:
 performing the arithmetic operation on the packet register to update the value of the packet register when the packet is to be output to an SDN controller. 
 
     
     
       15. The non-transitory machine-readable medium of  claim 14 , wherein the computer code, when executed by the set of one or more processors of the network device, causes the network device to perform further operations comprising:
 transmitting a first control message to the SDN controller to output the packet to the SDN controller, wherein the first control message includes the value of the packet register, wherein the value of the packet register corresponds to a current loop count value for the packet; 
 receiving a second control message from the SDN controller that is responsive to the first control message transmitted to the SDN controller, wherein the second control message includes an instruction for the switch to set the value of the packet register to the current loop count value; and 
 setting the value of the packet register to the current loop count value according to the instruction included in the second control message. 
 
     
     
       16. The non-transitory machine-readable medium of  claim 15 , wherein the first control message is an OpenFlow Packet-In message, and wherein the second control message is an OpenFlow Packet-Out message. 
     
     
       17. The non-transitory machine-readable medium of  claim 16 , wherein the current loop count value is carried in a metadata field of the OpenFlow Packet-In message. 
     
     
       18. The non-transitory machine-readable medium of  claim 16 , wherein the OpenFlow Packet-In message includes the packet, and wherein the current loop count value is carried in a virtual local area network (VLAN) tag added to the packet.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.