IP Library Granted Patent US 11,968,114
Granted Patent B2
US 11,968,114 · App. 17/649,282 · Granted Apr 23, 2024

Embedded network packet data for use of alternative paths within a group of network devices

Inventor: Deepak Goel (San Jose, CA)
Assignee: Microsoft Technology Licensing, LLC
H04L45/22H04L45/12H04L45/24H04L45/28
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,968,114
App. No.
17/649,282
Granted
Apr 23, 2024
Kind
B2
Abstract

This disclosure describes techniques for addressing and/or accounting for path failures (e.g., congestion, link failures, disconnections, or other types of failures) within a network environment. In one example, this disclosure describes a method that includes receiving, by a node connected to a plurality of interconnected nodes, a network packet to be forwarded to a destination node; identifying, by a forwarding plane within the node, a first link along a path to the destination node; determining, by the forwarding plane, that the first link is inoperable; storing, by the node and within the network packet, data identifying the node as having been visited; identifying, by the forwarding plane and from among the plurality of egress links from the node, a second link that is operable and is along an alternative path to the destination node; and transmitting the network packet over the second link.

Claims (63)

1. A system comprising a network device having processing circuitry and storage, wherein the processing circuitry has access to the storage and is configured to:

receive a network packet to be forwarded to a destination device;

store, within the network packet, visited node data identifying the network device as having been visited by the network packet;

identify, from among a plurality of egress links from the network device, a first link along a path to the destination device;

determine that the first link is inoperable;

identify, from among the plurality of egress links from the network device, a second link that is operable and is along an alternative path to the destination device; and

transmit the network packet over the second link.

2. The system of claim 1 , wherein the network device is a first network device, and wherein the system further comprises a second network device connected to the first network device over the second link, and wherein the second network device is configured to:

receive the network packet over the second link from the first network device;

update the visited node data to identify the second network device as having been visited by the network packet,

identify, from among a plurality of egress links from the second network device, a third link along a path to the destination device,

determine, based on the visited node data stored within the network packet, that the third link leads to a network device that has been previously visited by the network packet;

identify, from among the plurality of egress links from the second network device, a fourth link that is operable and is along a second alternative path to the destination device; and

transmit the network packet over the fourth link.

3. The system of claim 1 , wherein the network device is included within a plurality of interconnected network devices, and wherein to store the visited node data, the network device is further configured to:

insert a visited node vector into the network packet, wherein the visited node vector includes one bit associated with each of the plurality of interconnected devices.

4. The system of claim 1 , wherein to identify the second link, the processing circuitry is further configured to:

determine that the second link does not connect to another device that the network packet has previously visited.

5. The system of claim 1 , wherein to store data identifying the network device, the processing circuitry is further configured to:

determine whether the packet includes any data identifying previously-visited devices.

6. The system of claim 5 , wherein if the packet does not include any data identifying previously-visited devices, the processing circuitry is further configured to:

insert visited node data into the network packet and encode the network packet to indicate that the network packet includes the visited node data.

7. The system of claim 5 , wherein if the packet does include data identifying previously-visited devices, the processing circuitry is further configured to:

identify visited node data within the network packet; and

update the visited node data in the network packet.

8. The system of claim 1 , wherein to identify the second link, the processing circuitry is further configured to:

identify, without notifying a control plane, the second link.

9. A network device having processing circuitry and storage, wherein the processing circuitry has access to the storage and is configured to:

receive a network packet to be forwarded to a destination device;

store, within the network packet, data identifying the network device as having been visited;

identify, from among a plurality of egress links from the network device, a first link along a path to the destination device;

determine that the first link is inoperable;

identify, from among the plurality of egress links from the network device, a second link that is along an alternative path to the destination device and does not connect to another device that the network packet has previously visited; and

transmit the network packet over the second link.

10. The network device of claim 9 , wherein the network device is included within a plurality of interconnected network devices, and wherein to store data identifying the network device as having been visited, the network device is further configured to:

insert a visited node vector into the network packet, wherein the visited node vector includes one bit associated with each of the plurality of interconnected devices.

11. The network device of claim 9 , wherein to store data identifying the network device as having been visited, the network device is further configured to:

determine whether the packet includes any data identifying previously-visited devices.

12. The network device of claim 11 , wherein if the packet does not include any data identifying previously-visited devices, the network device is further configured to:

insert visited node data into the network packet.

13. The network device of claim 11 , wherein if the packet does include data identifying previously-visited devices, the network device is further configured to:

identify visited node data within the network packet; and

update the visited node data in the network packet.

14. The network device of claim 9 , wherein to identify the second link, the processing circuitry is further configured to:

identify, without notifying a control plane, the second link.

15. A computer-implemented method comprising:

receiving, at a network device, a network packet to be forwarded to a destination device;

storing, within the network packet, data identifying the network device as having been visited by the packet;

identifying, from among a plurality of egress links from the network device, a first link along a path to the destination device;

determining that the first link is inoperable;

identifying, from among the plurality of egress links from the network device, a second link that is along an alternative path to the destination device and does not connect to another device that the network packet has previously visited; and

transmitting the network packet over the second link.

16. The computer-implemented method of claim 15 , wherein the network device is included within a plurality of interconnected network devices, and wherein the computer-implemented further comprises:

inserting a visited node vector into the network packet, wherein the visited node vector includes one bit associated with each of the plurality of interconnected devices.

17. The computer-implemented method of claim 15 , further comprising:

determining whether the packet includes any data identifying previously-visited devices.

18. The computer-implemented method of claim 17 , further comprising: wherein if the packet does not include any data identifying previously-visited devices, the instructions cause the processing circuitry to:

inserting visited node data into the network packet based on the network packet not including any data identifying previously-visited devices.

19. The computer-implemented method of claim 17 , further comprising:

identifying visited node data within the network packet; and

updating the visited node data in the network packet.

20. The computer-implemented method of claim 15 , wherein identifying the second link further includes:

identifying the second link without notifying a control plane.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2023
From: FUNGIBLE, INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 064434/0430 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2022
From: GOEL, DEEPAK
To: FUNGIBLE, INC.
Reel/Frame 058813/0284 →
Continuity (3)
Continuation 16863730 · Apr 30, 2020
Provisional Application 62842001 · May 2, 2019
Related Publication 20220150157A1 · May 12, 2022