IP Library Granted Patent US 11,146,488
Granted Patent B2
US 11,146,488 · App. 16/598,506 · Granted Oct 12, 2021

Data packet forwarding method, device, and system

Inventors: Weiguo Hao (Nanjing, CN); Xinjun Xu (Nanjing, CN); Hao Wu (Nanjing, CN); Fei Zhang (Nanjing, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
H04L45/745H04L12/4641H04L41/0668H04L45/28H04L45/38
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 11,146,488
App. No.
16/598,506
Granted
Oct 12, 2021
Kind
B2
Abstract

A data packet forwarding method and an apparatus, where the method includes: receiving, by a forwarding device, a first default flow entry of the virtual network from a controller, where the first default flow entry of the virtual network instructs the forwarding device to send a data packet to a specified forwarding device when the forwarding device looks up a first flow table based on a match item of the data packet but no flow entry is hit; receiving, a first data packet from an end system; and when the controller is faulty and the forwarding device looks up the first flow table based on a match item of the first data packet but no flow entry is hit, sending, by the forwarding device, the first data packet to the specified forwarding device using the first default flow entry of the virtual network.

Claims (63)

1. A data packet forwarding method applied to a virtual network in which control and forwarding are separated, wherein the virtual network comprises a controller and a forwarding device, and wherein the method comprises:

receiving, by the forwarding device, a first default flow entry of the virtual network from the controller, wherein the first default flow entry of the virtual network instructs the forwarding device to send a data packet in the virtual network to a specified forwarding device when the forwarding device looks up a first flow table based on a match item of the data packet but no flow entry is hit;

receiving, by the forwarding device, a second default flow entry of the virtual network from the controller, wherein the second default flow entry of the virtual network instructs the forwarding device to send a second data packet in the virtual network to the controller when the forwarding device looks up the first flow table based on a second match item of the second data packet in the virtual network but no flow entry is hit, and wherein a second priority of the second default flow entry of the virtual network is higher than a first priority of the first default flow entry of the virtual network;

receiving, by the forwarding device, a first data packet from an end system (ES) in the virtual network; and either

sending, by the forwarding device when the controller is faulty and the forwarding device looks up the first flow table based on a first match item of the first data packet but no flow entry is hit, the first data packet to the specified forwarding device using the first default flow entry of the virtual network; or

sending, by the forwarding device when the controller works normally and the forwarding device looks up the first flow table based on the first match item of the first data packet but no flow entry is hit, the first data packet to the controller using the second default flow entry of the virtual network.

2. The method according to claim 1 , further comprising setting, by the forwarding device when determining that the controller is faulty, the first priority of the first default flow entry of the virtual network to be higher than the second priority of the second default flow entry of the virtual network, such that the first default flow entry of the virtual network is preferentially used to send the first data packet to the specified forwarding device when no flow entry is hit.

3. The method according to claim 1 , further comprising setting, by the forwarding device when determining that the controller works normally, the first priority of the first default flow entry to be higher than the second priority of the second default flow entry such that the first default flow entry of the virtual network is preferentially used to send the first data packet to the specified forwarding device when no flow entry is hit.

4. The method according to claim 1 , further comprising setting, by the forwarding device when determining that the controller recovers from being faulty, the second priority of the second default flow entry of to be higher than the first priority of the first default flow entry such that the second default flow entry of the virtual network is preferentially used to send the first data packet to the controller when no flow entry is hit.

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

receiving, by the forwarding device, the second default flow entry of the virtual network from the controller, wherein the second default flow entry of the virtual network instructs the forwarding device to send the second data packet in the virtual network to the controller when the forwarding device looks up a second flow table based on the second match item of the second data packet but no flow entry is hit; and

sending, by the forwarding device when the controller works normally and the forwarding device looks up the second flow table based on the first match item of the first data packet but no flow entry is hit, the first data packet to the controller using the second default flow entry of the virtual network.

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

receiving, by the forwarding device, a third default flow entry of the virtual network from the controller, wherein the third default flow entry of the virtual network instructs the forwarding device to send a third data packet in the virtual network based on the first flow table when the forwarding device looks up a third flow table based on a third match item of the data packet in the virtual network but no flow entry is hit; and

sending, by the forwarding device when the controller is faulty and the forwarding device looks up the third flow table based on the first match item of the first data packet but no flow entry is hit, the first data packet based on the first flow table according to the third default flow entry of the virtual network.

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

receiving, by the forwarding device, a fourth default flow entry of the virtual network from the controller, wherein the fourth default flow entry of the virtual network instructs the forwarding device to send a fourth data packet in the virtual network based on the second flow table when the forwarding device looks up the third flow table based on a fourth match item of the data packet in the virtual network but no flow entry is hit, and wherein a fourth priority of the fourth default flow entry of the virtual network is higher than a third priority of the third default flow entry of the virtual network; and

sending, by the forwarding device when the controller works normally and the forwarding device looks up the third flow table based on the first match item of the first data packet but no flow entry is hit, the first data packet based on the second flow table according to the fourth default flow entry of the virtual network.

8. The method according to claim 7 , further comprising setting, by the forwarding device when determining that the controller is faulty, the third priority of the third default flow entry of the virtual network to be higher than the fourth priority of the fourth default flow entry of the virtual network, such that the first data packet is sent preferentially based on the first flow table according to the third default flow entry of the virtual network when no flow entry is hit.

9. A flow entry sending method applied to a virtual network in which control and forwarding are separated, wherein the virtual network comprises a controller and a forwarding device, and wherein the method comprises:

generating, by the controller, a first default flow entry of the virtual network, wherein the first default flow entry of the virtual network instructs the forwarding device to send a data packet in the virtual network to a specified forwarding device either when the controller is faulty and the forwarding device looks up a flow table based on a match item of the data packet in the virtual network but no flow entry is hit, or when the controller works normally and the forwarding device looks up the flow table based on the match item of the data packet in the virtual network but no flow entry is hit;

generating, by the controller, a second default flow entry of the virtual network, wherein the second default flow entry of the virtual network instructs the forwarding device to send a second data packet in the virtual network to the controller when the controller works normally and the forwarding device looks up the flow table based on a second match item of the second data packet in the virtual network but no flow entry is hit; and

sending, by the controller, the first default flow entry of the virtual network and the second default flow entry of the virtual network to the forwarding device.

10. The method according to claim 9 , wherein the first default flow entry of the virtual network is an entry in a first flow table, wherein the second default flow entry of the virtual network is a second entry in the first flow table, and wherein the flow table is the first flow table.

11. The method according to claim 9 , wherein the first default flow entry of the virtual network is an entry in a first flow table, wherein the first flow table instructs the forwarding device to send the data packet when the controller is faulty and the forwarding device looks up the flow table based on the match item of the data packet in the virtual network but no flow entry is hit, wherein the second default flow entry of the virtual network is a second entry in a second flow table, and wherein the second flow table instructs the forwarding device to send the second data packet when the controller works normally and the forwarding device looks up the second flow table based on the second match item of the second data packet in the virtual network but no flow entry is hit.

12. The method according to claim 11 , further comprising:

generating, by the controller, a third default flow entry of the virtual network, wherein the third default flow entry of the virtual network instructs the forwarding device to send a third data packet in the virtual network based on the first flow table when the controller is faulty and the forwarding device looks up a third flow table based on a third match item of the third data packet in the virtual network but no flow entry is hit; and

sending, by the controller, the third default flow entry of the virtual network to the forwarding device.

13. A forwarding device applied to a virtual network in which control and forwarding are separated, wherein the virtual network comprises a controller and the forwarding device, and wherein the forwarding device comprises:

at least one processor; and

a computer-readable storage medium storing instructions to be executed by the at least one processor to cause the forwarding device to:

receive a first default flow entry of the virtual network from the controller, wherein the first default flow entry of the virtual network instructs the forwarding device to send a data packet in the virtual network to a specified forwarding device when the forwarding device looks up a first flow table based on a match item of the data packet in the virtual network but no flow entry is hit;

receive a second default flow entry of the virtual network from the controller, wherein the second default flow entry of the virtual network instructs the forwarding device to send a second data packet in the virtual network to the controller when the forwarding device looks up the first flow table based on a second match item of the data packet in the virtual network but no flow entry is hit, and wherein a second priority of the second default flow entry of the virtual network is higher than a first priority of the first default flow entry of the virtual network;

receive a first data packet from an end system (ES) in the virtual network;

determine to use the first default flow entry of the virtual network to forward the first data packet when the controller is faulty and the forwarding device looks up the first flow table based on a first match item of the first data packet but no flow entry is hit; and either

send the first data packet to the specified forwarding device; or

send the first data packet to the controller after determining to use the second default flow entry of the virtual network to forward the first data packet when the controller works normally and the forwarding device looks up the first flow table based on the first match item of the first data packet but no flow entry is hit.

14. The forwarding device according to claim 13 , wherein the instructions, when executed by the at least one processor, further cause the forwarding device to set the first priority of the first default flow entry to be higher than the second priority of the second default flow entry when determining that the controller is faulty.

15. The forwarding device according to claim 13 , wherein the instructions, when executed by the at least one processor, further cause the forwarding device to:

set the first priority of the first default flow entry to be higher than the second priority of the second default flow entry when determining that the controller works normally; and

send the first data packet preferentially based on the first default flow entry of the virtual network when no flow entry is hit.

16. The forwarding device according to claim 13 , wherein the instructions, when executed by the at least one processor, further cause the forwarding device to:

set the second priority of the second default flow entry to be higher than the first priority of the first default flow entry when determining that the controller recovers from being faulty; and

send the first data packet based on the second default flow entry of the virtual network when no flow entry is hit.

17. The forwarding device according to claim 13 , wherein the instructions, when executed by the at least one processor, further cause the forwarding device to:

receive a second default flow entry of the virtual network from the controller, wherein the second default flow entry of the virtual network instructs the forwarding device to send a third data packet in the virtual network to the controller when the forwarding device looks up a second flow table based on a third match item of the third data packet in the virtual network but no flow entry is hit;

determine to use the second default flow entry of the virtual network to forward the first data packet when the controller works normally and the forwarding device looks up the second flow table based on the first match item of the first data packet but no flow entry is hit; and

send the first data packet to the controller.

18. The forwarding device according to claim 17 , wherein the instructions, when executed by the at least one processor, further cause the forwarding device to:

receive a third default flow entry of the virtual network from the controller, wherein the third default flow entry of the virtual network instructs the forwarding device to send a fourth data packet in the virtual network based on the first flow table when the forwarding device looks up a third flow table based on a fourth match item of the fourth data packet in the virtual network but no flow entry is hit;

determine to use the first flow table as a basis for forwarding the first data packet according to the third default flow entry of the virtual network when the controller is faulty and the forwarding device looks up the third flow table based on the first match item of the first data packet but no flow entry is hit; and

send the first data packet based on a determining result.

19. The forwarding device according to claim 18 , wherein the instructions, when executed by the at least one processor, further cause the forwarding device to:

receive a fourth default flow entry of the virtual network from the controller, wherein the fourth default flow entry of the virtual network instructs the forwarding device to send a fifth data packet in the virtual network based on the second flow table when the forwarding device looks up the third flow table based on a fifth match item of the fifth data packet in the virtual network but no flow entry is hit, and wherein a fourth priority of the fourth default flow entry of the virtual network is higher than a third priority of the third default flow entry of the virtual network;

determine to use the second flow table as a second basis for forwarding the first data packet according to the fourth default flow entry of the virtual network when the controller works normally and the forwarding device looks up the third flow table based on the first match item of the first data packet but no flow entry is hit; and

send the first data packet based on determining to use the second flow table.

20. A controller applied to a virtual network in which control and forwarding are separated, wherein the virtual network comprises the controller and a forwarding device, and wherein the controller comprises:

at least one processor; and

a computer-readable storage medium storing instructions to be executed by the at least one processor to cause the controller to:

generate a first default flow entry of the virtual network, wherein the first default flow entry of the virtual network instructs the forwarding device to send a data packet in the virtual network to a specified forwarding device either when the controller is faulty and the forwarding device looks up a flow table based on a match item of the data packet in the virtual network but no flow entry is hit, or when the controller works normally and the forwarding device looks up the flow table based on the match item of the data packet in the virtual network but no flow entry is hit;

generate a second default flow entry of the virtual network, wherein the second default flow entry of the virtual network instructs the forwarding device to send a second data packet in the virtual network to the controller when the controller works normally and the forwarding device looks up the flow table based on a second match item of the second data packet in the virtual network but no flow entry is hit; and

send the first default flow entry of the virtual network and the second default flow entry of the virtual network to the forwarding device.

21. The controller according to claim 20 , wherein the first default flow entry of the virtual network is an entry in a first flow table, wherein the second default flow entry of the virtual network is a second entry in the first flow table, and wherein the flow table is the first flow table.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2020
From: HAO, WEIGUO; XU, XINJUN; WU, HAO; ZHANG, FEI
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 053381/0189 →
Priority Claims (1)
CN 201710233682.4 · Apr 11, 2017 · national
Continuity (2)
Continuation PCTCN2018082435 · Apr 10, 2018
Related Publication 20200044969A1 · Feb 6, 2020
Cited By (2)
US 12,273,421 US 12,719,791