# US 2022/0286387 A1 · Source-based routing

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

- Number: US 2022/0286387 A1
- Document ID: US20220286387A1
- Status: Published application
- Kind: A1
- Application number: 17/657,389
- Filed: 2022-03-31
- Published: 2022-09-08
- Earliest claimed: 2019-05-13
- Assignees: 128 Technology, Inc.
- Applicants: 128 Technology, Inc.
- Inventors: Hadriel S. Kaplan; Abilash Menon; Patrick Timmons; Michael Baj; Robert Penfield; Patrick J. MeLampy
- Web page: https://patentgrep.com/patent/US20220286387A1

## CPC

- H04L 45/34: {Source routing}
- H04L 45/28: using route fault recovery
- H04L 45/50: using label swapping, e.g. multi-protocol label switch [MPLS]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A routing system for routing packets for a route or service comprises a plurality of routers including a source router, wherein the source router is configured to receive, using a service and topology exchange protocol, service and topology state information from a STEP repository for at least one other router based on configured relationships between routers; determine a first path to a destination for a route or service based on the service and topology state information, the first path including an ordered list of successive routers to receive a packet associated with the route or service starting with a first successive router and ending with a destination router; and transmit a packet toward the first successive router with first metadata including a list of at least one remaining router of the ordered list of routers to receive the packet associated with the route or service. Each successive router, starting with the first successive router, is configured to receive a packet and determine if the router is the destination router based on metadata associated with the received packet, and when the router is not the destination router, forward the packet toward a next successive router in the ordered list of routers.

## Claims

### Claim 1

A method comprising:
receiving, by a router of a plurality of routers and for each other router of the plurality of routers, state information comprising service availability information indicating an availability of a service through the other router and service topology information indicating a network topology for reaching the service via the other router;
determining, by the router and based on the state information, a path along one or more successive routers of the plurality of routers over which to forward network traffic associated with the service;
determining, by the router, that an initial packet of a communication session is associated with the service for the path, wherein the initial packet comprises a header specifying a source and a destination;
generating, by the router, a modified packet comprising metadata inserted after the header, wherein the metadata comprises information specifying a list of the one or more successive routers along the path and a session identifier for the communication session; and
transmitting, by the router, the modified packet toward the one or more successive routers along the path.

### Claim 2 (depends on 1)

The method of claim 1, wherein generating the modified packet comprises including a next successive router in the list of one or more successive routers.

### Claim 3 (depends on 1)

The method of claim 1, wherein generating the modified packet comprises excluding a next successive router from the list of one or more successive routers.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
receiving, by the router, a second modified packet, the second modified packet comprising metadata specifying a second list of one or more successive routers and a second session identifier for a second session associated with the second modified packet;
determining, by the router and based on metadata of the second modified packet, a destination router for a second path for a second service; and
forwarding, by the router, the second modified packet toward a next successive router in the second list of one or more successive routers.

### Claim 5 (depends on 4)

The method of claim 4, wherein forwarding the second modified packet toward the next successive router in the second list of one or more successive routers comprises removing the router from the metadata of the second modified packet before forwarding the second modified packet to the next successive router in the second list of one or more successive routers.

### Claim 6 (depends on 4)

The method of claim 4, wherein forwarding the second modified packet toward the next successive router in the second list of one or more successive routers comprises changing a destination address within the header of the second modified packet to an address of the next successive router as specified within the metadata of the second modified packet.

### Claim 7 (depends on 6)

The method of claim 6, wherein forwarding the second modified packet toward the next successive router in the second list of one or more successive routers comprises changing the source address within the header of the second modified packet to an address of a forwarding router of the one or more successive routers in the second list.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
receiving, by the router, a second modified packet, the second modified packet comprising metadata specifying a second list of one or more successive routers and a second session identifier for a second session associated with the second modified packet;
determining, by the router and based on the metadata of the second modified packet, that the router is a destination router for the second path for the service; and
forwarding, by the router, the second modified packet to a destination of the second modified packet with the metadata removed from the second modified packet.

### Claim 9 (depends on 1)

The method of claim 1, wherein the router is a destination router for a first district and a source router for a second district, the method further comprising:
receiving, by the router, a second packet;
determining, by the router, a second path to a destination for the second service, the second path including one or more successive routers to receive the second packet associated with the second service; and
transmitting, by the router, the second packet toward the one or more successive routers, wherein the second packet comprises metadata specifying a list of one or more second successive routers and a second session identifier for a second session associated with the second packet associated with the second service.

### Claim 10

A non-transitory computer-readable medium comprising instructions that, when executed, are configured to cause processing circuitry of a router of a plurality of routers to:
receive, for each other router of the plurality of routers, state information comprising service availability information indicating an availability of a service through the other router and service topology information indicating a network topology for reaching the service via the other router;
determine, based on the state information, a path along one or more successive routers of the plurality of routers over which to forward network traffic associated with the service;
determine that an initial packet of a communication session is associated with the service for the path, wherein the initial packet comprises a header specifying a source and a destination;
generate a modified packet comprising metadata inserted after the header, wherein the metadata comprises information specifying a list of the one or more successive routers along the path and a session identifier for the communication session; and
transmit the modified packet toward the one or more successive routers along the path.

### Claim 11 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein to generate the modified packet, the instructions further cause processing circuitry of the router to include a next successive router in the list of one or more successive routers.

### Claim 12 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein to generate the modified packet, the instructions further cause processing circuitry of the router to exclude a next successive router from the list of one or more successive routers.

### Claim 13 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein the instructions are further configured to cause processing circuitry of the router to:
receive a second modified packet, the second modified packet comprising metadata specifying a second list of one or more successive routers and a second session identifier for a second session associated with the second modified packet;
determine, based on metadata of the second modified packet, a destination router for a second path for a second service; and
forward the second modified packet toward a next successive router in the second list of one or more successive routers.

### Claim 14 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein to forward the second modified packet toward the next successive router in the second list of one or more successive routers, the instructions are further configured to cause processing circuitry of the router to:
remove the router from the metadata of the second modified packet before forwarding the second modified packet to the next successive router in the second list of one or more successive routers.

### Claim 15 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein to forward the second modified packet toward the next successive router in the second list of one or more successive routers, the instructions are further configured to cause processing circuitry of the router to:
change a destination address within the header of the second modified packet to an address of the next successive router as specified within the metadata of the second modified packet.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein to forward the second modified packet toward the next successive router in the second list of one or more successive routers, the instructions are further configured to cause processing circuitry of the router to:
change the source address within the header of the second modified packet to an address of a forwarding router of the one or more successive routers in the second list.

### Claim 17 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein the instructions are further configured to cause processing circuitry of the router to:
receive a second modified packet, the second modified packet comprising metadata specifying a second list of one or more successive routers and a second session identifier for a second session associated with the second modified packet;
determine, based on the metadata of the second modified packet, that the router is a destination router for the second path for the service; and
forward the second modified packet to a destination of the second modified packet with the metadata removed from the second modified packet.

### Claim 18 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein the router is a destination router for a first district and a source router for a second district, wherein the instructions are further configured to cause processing circuitry of the router to:
receive a second packet;
determine a second path to a destination for the second service, the second path including one or more successive routers to receive the second packet associated with the second service; and
transmit the second packet toward the one or more successive routers, wherein the second packet comprises metadata specifying a list of one or more second successive routers and a second session identifier for a second session associated with the second packet associated with the second service.
