IP Library Granted Patent US 11,936,554
Granted Patent B2
US 11,936,554 · App. 17/809,496 · Granted Mar 19, 2024

Dynamic network interface card fabric

Inventors: Raja Kommula (Cupertino, CA); Thayumanavan Sridhar (Sunnyvale, CA); Yuvaraja Mariappan (San Jose, CA); Kiran K N (Bangalore, IN); Raj Yavatkar (Los Gatos, CA); Dilip Sundarraj (San Mateo, CA)
Assignee: Juniper Networks, Inc.
H04L45/124H04L12/4633H04L45/02H04L45/20H04L45/302H04L45/34H04L45/42H04L47/781H04L47/822H04L49/30H04L69/08H04L69/22H04L2212/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,936,554
App. No.
17/809,496
Granted
Mar 19, 2024
Kind
B2
Abstract

A system comprises an edge services controller configured to: compute, based on a physical topology of physical links that connect a plurality of network interface cards (NICs) that comprise embedded switches and processing units coupled to the embedded switches, a virtual topology comprising a strict subset of the physical links; and program the virtual topology into the respective processing units of the NICs to cause the processing units of the NICs to send data packets via physical links in the strict subset of the physical links.

Claims (87)

1. A system comprising:

an edge services controller including one or more computing devices configured to:

compute, based on a physical topology of physical links that connect a plurality of network interface cards (NICs) that comprise embedded switches and processing units coupled to the embedded switches, a virtual topology comprising a strict subset of the physical links, wherein the physical topology of the physical links includes one or more physical links in addition to the physical links included in the strict subset; and

program the virtual topology into the respective processing units of the NICs to cause the processing units of the NICs to send data packets via physical links in the strict subset of the physical links.

2. The system of claim 1 , wherein the data packets are exchanged by services executed by the processing units.

3. The system of claim 1 , wherein to program the virtual topology into the respective processing units of the NICs, the edge services controller is further configured to:

drain traffic from the NICs;

update forwarding tables on the NICs with the virtual topology; and

restart traffic in the NICs.

4. The system of claim 1 , wherein the edge services controller is configured to, as part of computing the virtual topology, perform a loop until the virtual topology is a connected graph in which each of the NICs is reachable via one or more paths, wherein the edge services controller is configured to, as part of performing an iteration of the loop:

create a set of fabric links; and

compute the virtual topology based on the set of fabric links.

5. The system of claim 4 , wherein:

the plurality of NICs include a set of one or more internal NICs and a set of one or more external NICs,

the edge services controller is further configured to:

receive telemetry data for each NIC in the plurality of NICs; and

receive service level agreement (SLA) data for NICs in the plurality of NICs, and the edge services controller is configured to, as part of creating the set of fabric links:

for each NIC in the plurality of NICs:

determine a resource availability level of the NIC based on the telemetry data for the NIC and the SLA data for the NIC;

select a set of links of the NIC at random, wherein the number of selected links in the set of links is based on the resource availability level of the NIC;

add the selected set of links of the MC to the set of fabric links;

determine a ranking of the external NICs based on resource availability levels of the external NICs;

selecting one or more of the external NICs based on the ranking of the external NICs; and

add external links of the selected external NICs to the set of fabric links,

the edge services controller is configured to, as part of computing the virtual topology based on the set of fabric links:

for each NIC in the plurality of NICs, determine data paths from the NIC to each other NIC in the plurality of NICs and an external network; and

include the determined data paths in the virtual topology.

6. The system of claim 5 , wherein the edge services controller is configured to, as part of determining the data paths from the NIC to each other NIC in the plurality of NICs and the external network, apply a shortest-path first algorithm to determine the data paths from the NIC to each other NIC in the plurality of NICs and the external network.

7. A method comprising:

computing, by an edge services controller that includes one or more computing devices, based on a physical topology of physical links that connect a plurality of network interface cards (NICs) that comprise embedded switches and processing units coupled to the embedded switches, a virtual topology comprising a strict subset of the physical links, wherein the physical topology of the physical links includes one or more physical links in addition to the physical links included in the strict subset; and

program the virtual topology into the respective processing units of the NICs to cause the processing units of the NICs to send data packets via physical links in the strict subset of the physical links.

8. The method of claim 7 , wherein the data packets are exchanged by services executed by the processing units.

9. The method of claim 8 , further comprising:

draining, by the edge services controller, traffic from the NICs;

updating, by the edge services controller, forwarding tables on the NICs with the virtual topology; and

restarting, by the edge services controller, traffic in the NICs.

10. The method of claim 7 , wherein computing the virtual topology comprises performing a loop until the virtual topology is a connected graph in which each of the NICs is reachable via one or more paths, wherein performing an iteration of the loop comprises:

creating, by the edge services controller, a set of fabric links; and

computing, by the edge services controller, the virtual topology based on the set of fabric links.

11. The method of claim 10 , wherein:

the plurality of NICs include a set of one or more internal NICs and a set of one or more external NICs,

the method further comprises:

receiving, by the edge services controller, telemetry data for each NIC in the plurality of NICs; and

receiving, by the edge services controller, service level agreement (SLA) data for NICs in the plurality of NICs, and

creating the set of fabric links comprises:

for each NIC in the plurality of NICs:

determining, by the edge services controller, a resource availability level of the NIC based on the telemetry data for the NIC and the SLA data for the NIC;

selecting, by the edge services controller, a set of links of the NIC at random, wherein the number of selected links in the set of links is based on the resource availability level of the NIC;

adding, by the edge services controller, the selected set of links of the NIC to the set of fabric links;

determining, by the edge services controller, a ranking of the external NICs based on resource availability levels of the external NICs;

selecting, by the edge services controller, one or more of the external NICs based on the ranking of the external NICs; and

adding, by the edge services controller, external links of the selected external NICs to the set of fabric links,

computing the virtual topology based on the set of fabric links comprises:

for each NIC in the plurality of NICs, determining, by the edge services controller, data paths from the NIC to each other NIC in the plurality of NICs and an external network; and

including, by the edge services controller, the determined data paths in the virtual topology.

12. The method of claim 11 , wherein determining the data paths from the NIC to each other NIC in the plurality of NICs and the external network comprises applying a shortest-path first algorithm to determine the data paths from the NIC to each other NIC in the plurality of NICs and the external network.

13. The method of claim 7 , further comprising:

determining, by the edge services controller, for a first NIC of the plurality of NICs, a data path in the virtual topology from the first NIC to a second NIC in the plurality of NICs;

programming, by the edge service controller, a forwarding table of the first NIC to cause the first NIC to forward traffic from the first NIC to the second NIC along the data path.

14. The method of claim 13 , wherein determining the data path comprises applying a shortest-path first algorithm to the virtual topology to determine a shortest path in the virtual topology from the first NIC to the second NIC.

15. A non-transitory computer-readable storage medium having instructions stored thereon that, when executed, cause an edge services controller to:

compute, based on a physical topology of physical links that connect a plurality of network interface cards (NICs) that comprise embedded switches and processing units coupled to the embedded switches, a virtual topology comprising a strict subset of the physical links, wherein the physical topology of the physical links includes one or more physical links in addition to the physical links included in the strict subset; and

program the virtual topology into the respective processing units of the NICs to cause the processing units of the NICs to send data packets via physical links in the strict subset of the physical links.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the data packets are exchanged by services executed by the processing units.

17. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions that cause the edge services controller to program the virtual topology into the respective processing units of the NICs, include instructions that, when executed, further cause the edge services controller to:

drain traffic from the NICs;

update forwarding tables on the NICs with the virtual topology; and

restart traffic in the NICs.

18. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions that cause the edge services controller to compute the virtual topology, comprise instructions that, when executed, cause the edge services controller to perform a loop until the virtual topology is a connected graph in which each of the NICs is reachable via one or more paths, wherein the instructions that cause the edge services controller to perform the loop cause the edge services controller to, as part of performing an iteration of the loop:

create a set of fabric links; and

compute the virtual topology based on the set of fabric links.

19. The non-transitory computer-readable storage medium of claim 18 , wherein:

the plurality of NICs include a set of one or more internal NICs and a set of one or more external NICs,

the edge services controller is further configured to:

receive telemetry data for each NIC in the plurality of NICs; and

receive service level agreement (SLA) data for NICs in the plurality of NICs, and the edge services controller is configured to, as part of creating the set of fabric links:

for each NIC in the plurality of NICs:

determine a resource availability level of the NIC based on the telemetry data for the NIC and the SLA data for the NIC;

select a set of links of the NIC at random, wherein the number of selected links in the set of links is based on the resource availability level of the NIC;

add the selected set of links of the MC to the set of fabric links;

determine a ranking of the external NICs based on resource availability levels of the external NICs;

selecting one or more of the external NICs based on the ranking of the external NICs; and

add external links of the selected external NICs to the set of fabric links,

the edge services controller is configured to, as part of computing the virtual topology based on the set of fabric links:

for each NIC in the plurality of NICs, determine data paths from the NIC to each other NIC in the plurality of NICs and an external network; and

include the determined data paths in the virtual topology.

20. The non-transitory computer-readable storage medium of claim 19 , wherein the instructions that cause the edge services controller to determine the data paths from the NIC to each other NIC in the plurality of NICs and the external network comprise instructions that, when executed, cause the edge services controller to apply a shortest-path first algorithm to determine the data paths from the NIC to each other NIC in the plurality of NICs and the external network.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2025
From: YAVATKAR, RAJENDRA SHIVARAM
To: JUNIPER NETWORKS, INC.
Reel/Frame 073226/0029 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2022
From: KOMMULA, RAJA; SRIDHAR, THAYUMANAVAN; MARIAPPAN, YUVARAJA; K N, KIRAN; YAVATKAR, RAJ; SUNDARRAJ, DILIP
To: JUNIPER NETWORKS, INC.
Reel/Frame 060341/0586 →
Priority Claims (1)
IN 202141029401 · Jun 30, 2021 · national
Continuity (1)
Related Publication 20230012308A1 · Jan 12, 2023
Cited By (1)
US 12,701,072