# US 11,909,664 B2 · SID allocation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,909,664 B2
- Document ID: US11909664B2
- Status: Granted
- Kind: B2
- Application number: 17/569,286
- Filed: 2022-01-05
- Published: 2022-04-28
- Granted: 2024-02-20
- Earliest claimed: 2020-02-06
- Assignees: Arrcus Inc.
- Applicants: Arrcus Inc.
- Inventors: Keyur Patel; Kalyani Rajaraman; Ravindra Vaishampayan; Derek Man-Kit Yeung; Lalit Kumar; Tetsuya Murakami; Matthew Anderson
- Web page: https://patentgrep.com/patent/US11909664B2

## CPC

- H04L 45/64: using an overlay routing layer
- H04L 47/781: {Centralised allocation of resources}
- H04L 41/0627: {by acting on the notification or alarm source}
- H04L 41/0654: using network fault recovery (ring fault isolation or reconfiguration in loop networks without recovery actions by a network management system H04L12/437)
- H04L 47/746: {Reaction triggered by a failure}
- H04L 45/50: using label swapping, e.g. multi-protocol label switch [MPLS]
- H04L 45/52: Multiprotocol routers
- H04L 2101/659: Internet protocol version 6 [IPv6] addresses
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A segment identifier (SID) manager interfaces with clients by way of a library. Clients implementing network services and needing SIDs according to internet SRv6, are allocated blocks by the SID manager using the library. Clients assign SIDs from the block independent of the SID manager using the library. Where a threshold portion of the block is assigned, the library requests an additional block of SIDs from the SID manager. Clients transmit context mappings of assigned SIDs to the SID manager for use by administrators and to enable recovery in the event of failure.

## Claims

### Claim 1

A system comprising:
a computing device including one or more processing devices and one or more memory devices operably coupled to the one or more processing devices storing executable code that, when executed by the one or more processing devices, causes the one or more processing devices to:
execute a plurality of client nodes implementing a network protocol;
implement a dataplane providing routing of data among the plurality of client nodes and an external network coupled to the computing device; and
implement a segment identifier (SID) manager programmed to:
for each client node of the plurality of client nodes, allocate a block of multiple SIDs to the each client node, the multiple SIDs being globally unique among all SIDs allocated to the plurality of client nodes; and
cause each client node of the plurality of client nodes to, for each individual SID of the block of SIDs, map a context of the each client node to the each individual SID, the allocating of the each individual SID being performed by the each client node independently from the SID manager.

### Claim 2 (depends on 1)

The system of claim 1, wherein the context of the each client node is forwarding behavior associated with the each individual SID.

### Claim 3 (depends on 1)

The system of claim 1, wherein the executable code, when executed by the one or more processing devices, further causes the one or more processing devices to cause each client node of the plurality of client nodes to, for each individual SID of the block of SIDs, map the context of the each client node to the each individual SID by:
invoking a first library function from a SID management library common to the plurality of client nodes.

### Claim 4 (depends on 3)

The system of claim 3, wherein the executable code, when executed by the one or more processing devices, further causes the one or more processing devices to:
cause each client node of the plurality of client nodes to request the block of SIDs allocated to the each client node using a second library function from the SID management library.

### Claim 5 (depends on 1)

The system of claim 1, wherein the executable code, when executed by the one or more processing devices, further causes the one or more processing devices to:
determine, by each client node of the plurality of client nodes, when (a) a threshold number of individual SIDs of the block of SIDs allocated to the each client node have been allocated to contexts of the each client node; and
in response to determining that (a) is true, request, by the each client node, an additional block of SIDs from the SID manager.

### Claim 6 (depends on 1)

The system of claim 1, wherein the plurality of client nodes implement one or more of:
intermediate system to intermediate system (IS-IS) protocol;
open shortest path first (OSPF) protocol;
border gateway protocol (BGP); and
static routing.

### Claim 7 (depends on 1)

The system of claim 1, wherein the plurality of client nodes implement Segment Routing over Internet Protocol Version 6 (SRv6) and use the SIDs of the blocks of SIDs according to SRv6.

### Claim 8

A method comprising:
providing a plurality of client nodes executing on a computer system, the plurality of client nodes implementing a plurality of network protocols;
implementing, on the computer system, a dataplane providing routing of data among the plurality of client nodes and an external network coupled to the computer system;
receiving, by a segment identifier (SID) manager executing on the computer systems, requests for SIDs from the plurality of client nodes; and
for each client node of the plurality of client nodes, allocating, by the SID manager, a block of multiple SIDs to the each client node in response to a requests of the requests received from the each client node, the multiple SIDs being globally unique among all SIDs allocated to the plurality of client nodes.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
mapping, by each client node of the plurality of client nodes, each individual SID of the block of SIDs allocated to the each client node, a context of the each client node to the each individual SID, the allocating of the each individual SID being performed by the each client node independently from the SID manager.

### Claim 10 (depends on 9)

The method of claim 9, wherein the context of the each client node is forwarding behavior associated with the each individual SID.

### Claim 11 (depends on 9)

The method of claim 9, further comprising, for each individual SID of the block of SIDs, map the context of the each client node to the each individual SID by:
invoking a first library function from a SID management library common to the plurality of client nodes to map the each individual SID to the context of the each client node.

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
requesting, by each client node of the plurality of client nodes, the block of SIDs allocated to the each client node using a second library function from the SID management library.

### Claim 13 (depends on 9)

The method of claim 9, further comprising:
determining, by each client node of the plurality of client nodes, when (a) a threshold number of individual SIDs of the block of SIDs allocated to the each client node have been allocated to contexts of the each client node; and
in response to determining that (a) is true, requesting, by the each client node, an additional block of SIDs from the SID manager.

### Claim 14 (depends on 8)

The method of claim 8, wherein the plurality of client nodes implement one or more of:
intermediate system to intermediate system (IS-IS) protocol;
open shortest path first (OSPF) protocol;
border gateway protocol (BGP); and
static routing.

### Claim 15 (depends on 8)

The method of claim 8, wherein the plurality of client nodes implement Segment Routing over Internet Protocol Version 6 (SRv6) and use the SIDs of the blocks of SIDs according to SRv6.

### Claim 16

A system comprising:
a computing device including one or more processing devices and one or more memory devices operably coupled to the one or more processing devices storing executable code that, when executed by the one or more processing devices, causes the one or more processing devices to:
receive, over a network, a block of segment identifiers (SIDs) from a SID manager, the block of SIDs including at least 100 SIDs and being globally unique among clients of the SID manager; and
(a) associating a context mapping with each SID of the block of SIDs independent from the SID manager, the context mapping for each SID including both each SID and a forwarding behavior.

### Claim 17 (depends on 16)

The system of claim 16, wherein the executable code, when executed by the one or more processing devices, causes the one or more processing devices to:
labeling a packet with a first SID of the block of SIDs such that the packet will be routed according to the forwarding behavior of the context mapping associated with the first SID at (a).

### Claim 18 (depends on 16)

The system of claim 16, wherein the executable code, when executed by the one or more processing devices, causes the one or more processing devices to implement one or more of:
intermediate system to intermediate system (IS-IS) protocol;
open shortest path first (OSPF) protocol;
border gateway protocol (BGP); and
static routing.
