IP Library › Granted Patent US 11,374,848
Granted Patent B2
US 11,374,848 · App. 17/080,447 · Granted Jun 28, 2022

Explicit routing with network function encoding

Inventors: Alvaro Retana (Raleigh, NC); Renwei Li (Sunnyvale, CA); Yingzhen Qu (San Jose, CA)
Assignee: Huawei Technologies Co., Ltd.
H04L45/02H04L45/04H04L45/34H04L45/42H04L45/64H04L2212/00
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,374,848
App. No.
17/080,447
Granted
Jun 28, 2022
Kind
B2
Abstract

A method of routing a data packet through a network comprises updating at least one router local forwarding table to include path IDs of network segments defining paths between network nodes and network function bit encoding/decoding information. In response to a data packet arriving at an ingress network node, an encapsulation header including a path ID identifying at least one network segment of an explicit routing path and a bit encoding specifying network functions to be performed on the data packet are encapsulated in unused portions of the source address and/or the destination address in the encapsulation header. A network node in the explicit routing path performs a network function encoded in the source address and/or the destination address of the encapsulation header of the data packet and forwards the data packet based on network function bit encoding/decoding and path ID information in the network node's local updated local forwarding table.

Claims (34)

1. A method of routing a data packet through a network of network nodes, comprising:

updating at least one router local forwarding table to include (1) path IDs of network segments defining paths between network nodes of the network and (2) network function bit encoding/decoding information;

in response to a data packet arriving at an ingress network node of the network, adding an encapsulation header to the data packet, the encapsulation header including a network node source address, a network node destination address, a path ID identifying at least one network segment of an explicit routing path the data packet is to traverse from the source address to the destination address, and a bit encoding specifying network functions to be performed on the data packet by one or more network nodes in the explicit routing path, wherein the path ID of the explicit routing path and the bit encoding for the network functions to be performed on the data packet are encapsulated in unused portions of at least one of the source address and the destination address in the encapsulation header;

at least one network node in the explicit routing path performing a network function encoded in at least one of the source address and the destination address of the encapsulation header of the data packet and forwarding the data packet based on network function bit encoding/decoding and path ID information in the at least one network node's local updated local forwarding table; and

when the data packet arrives at an exit network node of the network, removing the encapsulation header and forwarding the data packet.

2. The method of claim 1 , wherein the bit encoding for the network function to be performed on the data packet is dynamically negotiated and changed between a network controller and network nodes in the network.

3. The method of claim 1 , wherein the bit encoding for the network functions is variable for different network configurations and different user applications.

4. The method of claim 1 , wherein the bit encoding for the network functions changes over time.

5. The method of claim 1 , wherein the bit encoding for the network functions varies dependent upon at least one of a location and traffic at a network node in the network.

6. The method of claim 1 , wherein the bit encoding of the network functions is scrambled by different algorithms at different network nodes within the network.

7. The method of claim 1 , wherein adding the encapsulation header to the data packet comprises storing the path ID of the explicit routing path in unused portions of the network node destination address and storing the network function bit encoding/decoding information in unused portions of the network node source address.

8. The method of claim 1 , wherein the path ID uniquely identifies the explicit routing path and further contains at least one flag identifying treatment of the data packet by the network.

9. The method of claim 8 , wherein the at least one flag comprises a reroute flag indicating that the data packet has been rerouted by a fast reroute mechanism and an OAM flag identifying the data packet as an operations, administration and maintenance data packet.

10. The method of claim 8 , further comprising detecting a failure of at least one of a network node and a link between network nodes, rerouting the data packet by encapsulating at least one of function and reroute information in the path ID, and setting a reroute flag to indicate that the data packet has been rerouted.

11. The method of claim 10 , wherein rerouting the data packet by encapsulating at least one of function and reroute information in the path ID comprises adding a layer of encapsulation for the reroute information to the encapsulation header.

12. The method of claim 11 , further comprising a network node receiving the rerouted data packet stripping the encapsulated at least one of function and reroute information from the data packet and forwarding the data packet according to the encapsulation header.

13. The method of claim 1 , further comprising a network node adding a user datagram protocol (UDP) header to a data packet to provide a checksum for data integrity, wherein the checksum in the UDP header is calculated based on the data packet and the encapsulation header.

14. The method of claim 13 , wherein the at least one network segment of the explicit routing path comprises a network segment that crosses domains, wherein the network node that adds the UDP header to the data packet comprises a network node at an edge of a first domain at a first end of the network segment that crosses domains.

15. The method of claim 14 , wherein the network segment that crosses domains further comprises a network node at an edge of a second domain at second end of the network segment that crosses domains, further comprising the network node at the edge of the second domain receiving the data packet, verifying the UDP header checksum, and when the checksum is verified, stripping off the UDP header and forwarding the data packet to another network node in the second domain.

16. The method of claim 15 , further comprising the network node at the edge of the second domain discarding the data packet when the checksum is not verified.

17. A network node that routes a data packet through a network of network nodes, comprising:

at least one transceiver that transmits and receives data packets;

a forwarding table comprising path ID information for network segments through the network;

a non-transitory memory element comprising instructions; and

one or more processors in communication with the at least one transceiver to receive data packets for processing and to the memory to receive instructions for processing the data packets, wherein the one or more processors execute the instructions to:

extract an encapsulation header from the data packet, the encapsulation header including a network node source address, a network node destination address, a path ID identifying at least one network segment of an explicit routing path the data packet is to traverse from the source address to the destination address, and a bit encoding specifying network functions to be performed on the data packet by one or more network nodes in the explicit routing path;

extract the path ID of the explicit routing path and the bit encoding for the network functions to be performed on the data packet from unused portions of at least one of the source address and the destination address in the encapsulation header; and

when the bit encoding indicates a network function that the network node is programmed to perform, the network node performing a network function based on the network function bit encoding/decoding encoded in the encapsulation header of the data packet and forwarding the data packet based on path ID information in the network node's forwarding table.

18. The network node of claim 17 , wherein the at least one processor executes instructions to dynamically negotiate with a network controller to establish the bit encoding for the network functions to be performed on the data packet by the network node.

19. The network node of claim 17 , wherein the at least one processor executes instructions to reroute the data packet by encapsulating at least one of function and reroute information in the path ID and setting a reroute flag to indicate that the data packet has been rerouted upon receipt of an indication that at least one of a network node and a link between network nodes has failed.

20. A non-transitory computer-readable media storing computer instructions for routing a data packet through a network of network nodes, that when executed by one or more processors of a network node cause the one or more processors to:

extract an encapsulation header from the data packet, the encapsulation header including a network node source address, a network node destination address, a path ID identifying at least one network segment of an explicit routing path the data packet is to traverse from the source address to the destination address, and a bit encoding specifying network functions to be performed on the data packet by one or more network nodes in the explicit routing path;

extract the path ID of the explicit routing path and the bit encoding for the network functions to be performed on the data packet from unused portions of at least one of the source address and the destination address in the encapsulation header; and

when the bit encoding indicates a network function that the network node is programmed to perform, performing a network function based on the network function bit encoding/decoding encoded in the encapsulation header of the data packet and forwarding the data packet based on path ID information in a forwarding table of the network node.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2022
From: FUTUREWEI TECHNOLOGIES, INC.
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 059049/0573 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2020
From: RETANA, ALVARO; LI, RENWEI; QU, YINGZHEN
To: FUTUREWEI TECHNOLOGIES, INC.
Reel/Frame 054206/0251 →
Continuity (5)
Continuation PCTCN2019082207 · Apr 11, 2019
Provisional Application 62666568 · May 3, 2018
Provisional Application 62667358 · May 4, 2018
Provisional Application 62758254 · Nov 9, 2018
Related Publication 20210243107A1 · Aug 5, 2021
Cited By (1)
US 12,301,445