IP Library Granted Patent US 10,243,833
Granted Patent B2
US 10,243,833 · App. 15/360,129 · Granted Mar 26, 2019

Flow table management method, and related device and system

Inventors: Pengcheng Tang (Shanghai, CN); Wei Zhou (Shanghai, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
H04L45/02H04L45/38H04L45/64
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,243,833
App. No.
15/360,129
Granted
Mar 26, 2019
Kind
B2
Abstract

A flow table management method, devices, and systems. The flow table management method includes: generating, by a software defined network controller, a first flow table entry, where a first field set in the first flow table entry carries an index of an actual value in the first field set, and the first field set includes N fields; and sending, by the software defined network controller, an OpenFlow protocol message to an OpenFlow switch, where the OpenFlow protocol message carries the first flow table entry. The technical solution in the embodiments of the present invention helps reduce a data volume of flow table entries delivered by an SDN controller to an OpenFlow switch, thereby reducing overheads of a control channel to reduce a congestion risk of the control channel, and reducing occupied network processing resources of the SDN controller and the OpenFlow switch to deliver the flow table entries.

Claims (62)

1. A flow table management method, comprising:

generating, by a software defined network controller, a first flow table entry, wherein a first field set in the first flow table entry carries an index of an actual value in the first field set without carrying the actual value in the first field set, the first field set comprises N fields, N is a positive integer, and the index is a flow table entry identifier of a flow table entry stored in an OpenFlow switch; and

sending, by the software defined network controller, an OpenFlow protocol message to the OpenFlow switch, wherein the OpenFlow protocol message carries the first flow table entry to be used by the OpenFlow switch to obtain the actual value in the first field set.

2. The method according to claim 1 , wherein

the OpenFlow switch is to obtain the actual value in the first field set filled in a third field set in the flow table entry which corresponds to the flow table entry identifier carried in the first flow table entry, and

the third field set has a same protocol type as the first field set, and fields that are in the first field set and the third field set and that have a same protocol type have a same actual value.

3. The method according to claim 1 , wherein

each field in a second field set in the first flow table entry carries multiple actual values, and

the second field set comprises M fields, and M is a positive integer.

4. The method according to claim 1 , further comprising:

before the generating a first flow table entry, receiving, by the software defined network controller, a first packet or a packet header of a first packet from a switch, and determining, according to a preset processing policy, a routing instruction set used to process the first packet, wherein an instruction field of the first flow table entry carries the routing instruction set or an index of the routing instruction set.

5. A flow table management method, comprising:

receiving, by an OpenFlow switch, an OpenFlow protocol message, wherein the OpenFlow protocol message carries a first flow table entry, a first field set in the first flow table entry carries an index of an actual value in the first field set, the first field set comprises N fields, N is a positive integer, and the index is a flow table entry identifier of a flow table entry stored in the switch;

obtaining, by the OpenFlow switch, the actual value in the first field set based on the flow table entry identifier, by obtaining an actual value from the flow table entry represented by the flow table entry identifier; and

replacing, by the OpenFlow switch with the actual value in the first field set, the index that is of the actual value in the first field set and that is carried in the first field set in the first flow table entry.

6. The method according to claim 5 , wherein the obtaining the actual value in the first field set comprises: obtaining, based on the flow table entry identifier, an actual value filled in a third field set that is in the flow table entry represented by the flow table entry identifier and that has a same protocol type as the first field set, wherein fields that are in the third field set and the first field set and that have a same protocol type have a same actual value, and

the method further comprises:

after replacing the index, storing the first flow table entry.

7. The method according to claim 6 , further comprising:

sending, by the OpenFlow switch, the stored first flow table entry or the first flow table entry identifier to a software defined network controller.

8. The method according to claim 5 , further comprising:

before the OpenFlow switch receives the first flow table entry,

sending, by the OpenFlow switch, a first packet or a packet header of a first packet to a software defined network controller, wherein an instruction field of the first flow table entry carries a routing instruction set used to process the first packet or an index of a routing instruction set; and

processing, by the OpenFlow switch, the first packet based on the routing instruction set.

9. A flow table relay method, comprising:

receiving, by a virtual layer device, a first OpenFlow protocol message from a first software defined network controller, wherein the first OpenFlow protocol message carries a first flow table entry, and a first field in the first flow table entry carries an index of an actual value in the first field;

receiving, by the virtual layer device, a second OpenFlow protocol message from a second software defined network controller, wherein the second OpenFlow protocol message carries a second flow table entry, and a fourth field in the second flow table entry carries an index of an actual value in the fourth field;

combining, by the virtual layer device, the first flow table entry and the second flow table entry into a third flow table entry; and

sending, by the virtual layer device, a third OpenFlow protocol message carrying the third flow table entry to an OpenFlow switch.

10. A software defined network controller, comprising:

at least one memory; and

at least one processor configured to execute one or more programs or instructions stored in the at least one memory to:

generate a first flow table entry, wherein a first field set in the first flow table entry carries an index of an actual value in the first field set, the first field set comprises N fields, and N is a positive integer and the index is a flow table entry identifier of a flow table entry stored in an OpenFlow switch, and

send an OpenFlow protocol message to the Open Flow switch, wherein the OpenFlow protocol message carries the first flow table entry to be used by the OpenFlow switch to obtain the actual value in the first field set.

11. The software defined network controller according to claim 10 , wherein the OpenFlow switch is to obtain the actual value in the first field set filled in a third field set in the flow table entry which corresponds to the flow table entry identifier carried in the first flow table entry, and

the third field set has a same protocol type as the first field set, and fields that are in the first field set and the third field set and that have a same protocol type have a same actual value.

12. The software defined network controller according to claim 10 , wherein

each field in a second field set in the first flow table entry carries multiple actual values, and

the second field set comprises M fields, and M is a positive integer.

13. The software defined network controller according to claim 10 , wherein

the at least one processor is further configured to, before the first flow table entry is generated, receive a first packet or a packet header of a first packet from a switch, and determine, according to a preset processing policy, a routing instruction set used to process the first packet, and

an instruction field of the first flow table entry carries the routing instruction set or an index of the routing instruction set.

14. An OpenFlow switch, comprising:

at least one memory; and

at least one processor configured to execute one or more programs or instructions stored in the at least one memory to:

receive an OpenFlow protocol message, wherein the OpenFlow protocol message carries a first flow table entry, a first field set in the first flow table entry carries an index of an actual value in the first field set, the first field set comprises N fields, N is a positive integer, and the index is a flow table entry identifier of a flow table entry stored in the switch,

obtain the actual value in the first field set based on the flow table entry identifier by obtaining an actual value from the flow table entry represented by the flow table entry identifier, and

replace, with the obtained actual value of the first field set, the index that is of the actual value in the first field set and that is carried in the first field set in the first flow table entry.

15. The OpenFlow switch according to claim 14 , wherein

the at least one processor is configured to obtain, based on the flow table entry identifier, an actual value filled in a third field set that is in the flow table entry represented by the flow table entry identifier and that has a same protocol type as the first field set, wherein fields that are in the third field set and the first field set and that have a same protocol type have a same actual value, and

the at least one processor is configured to, after replacing the index, store the first flow table entry in the at least one memory.

16. The OpenFlow switch according to claim 15 , wherein the at least one processor is further configured to send the stored first flow table entry or the first flow table entry identifier to a software defined network controller.

17. The OpenFlow switch according to claim 14 , wherein

the at least one processor is further configured to, before the first flow table entry is received, send a first packet or a packet header of a first packet to a software defined network controller,

an instruction field of the first flow table entry carries a routing instruction set used to process the first packet or an index of a routing instruction set, and

the at least one processor is further configured to process the first packet based on the routing instruction set.

18. A virtual layer device, comprising:

at least one memory; and

at least one processor configured to execute one or more programs or instructions stored in the at least one memory to:

receive a first OpenFlow protocol message from a first software defined network controller, wherein the first OpenFlow protocol message carries a first flow table entry, and a first field in the first flow table entry carries an index of an actual value in the first field; and receive a second OpenFlow protocol message from a second software defined network controller, wherein the second OpenFlow protocol message carries a second flow table entry, and a fourth field in the second flow table entry carries an index of an actual value in the fourth field,

combine the first flow table entry and the second flow table entry into a third flow table entry, and

send a third OpenFlow protocol message carrying the third flow table entry to an OpenFlow switch.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2021
From: HUAWEI TECHNOLOGIES CO., LTD.
To: HONOR DEVICE CO., LTD.
Reel/Frame 055919/0344 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2019
From: TANG, PENGCHENG; ZHOU, WEI
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 048130/0576 →
Continuity (2)
Continuation PCTCN2014078551 · May 27, 2014
Related Publication 20170078184A1 · Mar 16, 2017
Cited By (4)
US 12,267,304 US 12,348,494 US 12,381,890 US 12,519,754