IP Library › Granted Patent US 10,305,783
Granted Patent B2
US 10,305,783 · App. 15/421,667 · Granted May 28, 2019

Packet control method, switch, and controller

Inventors: Hui Cai (Shenzhen, CN); Weiqi Hu (Shenzhen, CN)
Assignee: Huawei Technologies Co., Ltd.
H04L45/16H04L29/06H04L45/64H04L45/745
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,305,783
App. No.
15/421,667
Granted
May 28, 2019
Kind
B2
Abstract

The embodiments disclose a packet control method, a switch, and a controller. The method includes receiving, by a switch, a packet, and processing the packet according to a pipeline, where an original packet is stored in a buffer, and a buffer location of the original packet is identified by using a buffer identifier. The method also includes when the packet fails to match a flow table, sending, by the switch, a first packet message to a controller, where the first packet message carries the buffer identifier, all or partial content of the packet; receiving, a second packet message sent by the controller, where the second packet message carries the buffer identifier and a packet processing instruction, and the packet processing instruction includes indication information of a specified flow table. Additionally, the method includes reprocessing, the packet according to the packet processing instruction and starting at the specified flow table.

Claims (69)

1. A method comprising:

receiving, by a switch, an original packet;

processing, by the switch, the original packet according to a pipeline, wherein the original packet is stored at a buffer location in a buffer, and a buffer identifier indicates the buffer location;

sending, by the switch to a controller, a first packet message in response to the processed packet not matching a flow table, wherein the first packet message comprises processed packet information and causes the controller to determine a processing method for the processed packet, and wherein the first packet message further comprises the buffer identifier and a portion of the processed packet;

receiving, by the switch from the controller, a second packet message comprising a packet processing instruction and the buffer identifier, wherein the packet processing instruction comprises indication information of a specified flow table, and wherein the specified flow table is a start flow table that is in the pipeline; and

reprocessing, by the switch, the original packet according to the packet processing instruction and starting at the specified flow table.

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

storing, by the switch, the original packet at the buffer location; and

generating the buffer identifier, wherein the buffer identifier is carried in messages that are generated as part of processing the packet according to the flow table.

3. The method according to claim 1 , wherein sending the first packet message to the controller comprises:

receiving, by the switch from the controller, a carry original packet instruction message instructing the switch to add the original packet into the first packet message when the switch sends the first packet message;

adding, by the switch, to the first packet message, the original packet, a portion of the original packet, or a transformation of the original packet, according to the carry original packet instruction message; and

sending, by the switch to the controller, the first packet message.

4. The method according to claim 1 , wherein reprocessing the original packet according to the packet processing instruction comprises:

obtaining, by the switch, the original packet using the buffer identifier; and

reprocessing, by the switch, the original packet according to the packet processing instruction and starting at the flow table at a first level, wherein the specified flow table is at the first level in the pipeline.

5. The method according to claim 1 , wherein reprocessing the original packet according to the packet processing instruction comprises:

obtaining, by the switch, a flow table identifier of a current flow table for the original packet using the buffer identifier;

obtaining, by the switch from the buffer, a current packet obtained after the original packet is processed; and

sending, by the switch according to the packet processing instruction, the current packet to a location that is in the pipeline and that is indicated by the flow table identifier of the current flow table to continue processing, wherein the specified flow table is identified by the flow table identifier.

6. The method according to claim 1 , wherein before receiving the second packet message, the method further comprises:

receiving, by the switch from the controller, an instruction message instructing the switch to perform an addition, a deletion, or a modification operation on the flow table; and

performing the addition, the deletion, or the modification operation on the flow table according to the instruction message.

7. A method comprising:

receiving, by a controller from a switch, a first packet message comprising information of a processed packet, a buffer identifier, and a portion of the processed packet, and wherein the buffer identifier identifies a buffer location of an original version of the processed packet;

performing, by the controller, analysis processing on the information of the processed packet, and generating a packet processing instruction, in response to receiving the first packet message, wherein the packet processing instruction comprises indication information of a specified flow table, and the specified flow table is a start flow table that is in a pipeline; and

sending, by the controller to the switch, a second packet message comprising the packet processing instruction and the buffer identifier.

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

sending, by the controller to the switch, a buffer instruction message, before receiving the first packet message, wherein the buffer instruction message instructs the switch to store original version of the processed packet in a buffer.

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

sending, by the controller to the switch, an instruction message instructing the switch to perform an addition, deletion, or modification operation on the specified flow table, before sending the second packet message.

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

sending, by the controller to the switch, a carry original packet instruction message, before receiving the first packet message, wherein the carry original packet instruction message instructs the switch to add the original version of the processed packet into the first packet message when the switch sends the first packet message.

11. A switch, comprising:

a processor; and

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

processing an original packet according to a pipeline, wherein the original packet is stored at a buffer location in a buffer, and a buffer identifier indicates the buffer location;

sending, to a controller, a first packet message, in response to the processed packet not matching a flow table, wherein the first packet message comprises processed packet information and causes the controller to determine a processing method for the processed packet, and wherein the first packet message further comprises the buffer identifier and a portion of the processed packet;

receiving, from the controller, a second packet message comprising a packet processing instruction and the buffer identifier, wherein the packet processing instruction comprises indication information of a specified flow table, and wherein the specified flow table is a start flow table that is in the pipeline; and

reprocessing the original packet according to the packet processing instruction and starting at the specified flow table.

12. The switch according to claim 11 , wherein the instructions further comprise instructions for:

storing the original packet at the buffer location; and

generating the buffer identifier, wherein the buffer identifier is carried in messages that are generated as part of processing the packet according to the flow table.

13. The switch according to claim 11 , wherein the instructions further comprise instructions for:

receiving, from the controller, a carry original packet instruction message instructing the switch to add the original packet into the first packet message when the switch sends the first packet message;

adding to the first packet message the original packet, a portion of the original packet, or a transformation of the original packet, according to the carry original packet instruction message; and

sending, to the controller, the first packet message.

14. The switch according to claim 11 , wherein the instructions for reprocessing the original packet according to the packet processing instruction comprises instructions for:

obtaining the original packet using the buffer identifier; and

reprocessing the original packet according to the packet processing instruction and starting at the flow table at a first level, wherein the specified flow table is at the first level in the pipeline.

15. The switch according to claim 11 , wherein the instructions for reprocessing the original packet according to the packet processing instruction comprises instructions for:

obtaining a flow table identifier of a current flow table for the original packet using the buffer identifier;

obtaining from the buffer, a current packet obtained after the original packet is processed; and

sending according to the packet processing instruction, the current packet to a location that is in the pipeline and that is indicated by the flow table identifier of the current flow table to continue to perform processing, wherein the specified flow table is identified by the flow table identifier.

16. The switch according to claim 11 , wherein the instructions further comprise instructions for:

receiving, from the controller, an instruction message instructing the switch to perform an addition, a deletion, or a modification operation on the flow table before receiving the second packet message; and

performing the addition, the deletion, or the modification operation on the flow table according to the instruction message.

17. A controller, comprising:

a processor; and

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

receiving, from a switch, a first packet message comprising information of a processed packet, a buffer identifier, and a portion of the processed packet, and wherein the buffer identifier identifies a buffer location of an original version of the processed packet;

performing analysis processing on the information of the processed packet, and generating a packet processing instruction, in response to receiving the first packet message, wherein the packet processing instruction comprises indication information of a specified flow table, and the specified flow table is a start flow table that is in a pipeline; and

sending, to the switch, a second packet message comprising the packet processing instruction and the buffer identifier.

18. The controller according to claim 17 , wherein the instructions further comprise instructions for:

sending, to the switch, a buffer instruction message, before receiving the first packet message, wherein the buffer instruction message instructs the switch to store original version of the processed packet in a buffer.

19. The controller according to claim 17 , wherein the instructions further comprise instructions for:

sending, to the switch, an instruction message instructing the switch to perform an addition, a deletion, or a modification operation on the specified flow table, before sending the second packet message.

20. The controller according to claim 17 , wherein the instructions further comprise instructions for:

sending, to the switch, a carry original packet instruction message, before receiving the first packet message, wherein the carry original packet instruction message instructs the switch to add the original version of the processed packet into the first packet message when the switch sends the first packet message.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2018
From: CAI, HUI; HU, WEIQI
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 045161/0232 →
Continuity (2)
Continuation PCTCN2014084084 · Aug 11, 2014
Related Publication 20170142000A1 · May 18, 2017