# US 10,454,823 B1 · Packet processing in a routing instance that is distributed across at least two different routing stacks

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

- Number: US 10,454,823 B1
- Document ID: US10454823B1
- Status: Granted
- Kind: B1
- Application number: 15/892,297
- Filed: 2018-02-08
- Granted: 2019-10-22
- Earliest claimed: 2018-02-08
- Assignees: Juniper Networks, Inc.
- Applicants: Juniper Networks, Inc.
- Inventors: Reji Thomas; Vivek Ramesh; Pranavadatta Devaki Narasimha Bhatta
- Web page: https://patentgrep.com/patent/US10454823B1

## CPC

- H04L 45/74: Address processing for routing
- H04L 45/586: of virtual routers
- H04L 47/17: Interaction among intermediate nodes, e.g. hop by hop
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The problem of processing an egress packet by a data forwarding device having (1) a first routing stack associated with a first namespace and a first interface, (2) a second routing stack associated with a second namespace and a second interface, wherein at least some forwarding information included in the second namespace is incompatible with the first routing stack, (3) a virtual routing and forwarding instance (VRF), and (4) a shared session layer socket associated with both the first and second routing stack, and bound to the VRF, where the VRF is associated with the second interface via the second routing stack, is solved by: adding the first interface to the VRF whereby the VRF is associated with both the first and second interfaces; and responsive to the adding of the first interface to the VRF, (1) adding routes from the second namespace to the first namespace such that network address prefixes of the second namespace are associated with a “special” next hop, and (2) flagging the shared session layer socket bound to the VRF. When an egress packet on the flagged shared session layer socket is received, the data forwarding device (1) sends the egress packet to the first routing stack for processing, (2) looks up next hop information using the first namespace of the first routing stack, and (3) determines whether or not the next hop information is a “special” next hop. Responsive to a determination that the next hop information is a “special” next hop, the data forwarding device injects the egress packet into the second routing stack for processing.

## Claims

### Claim 1

A computer-implemented method for controlling the forwarding of egress packets in a data forwarding device having
a first routing stack associated with a first namespace and a first interface,
a second routing stack associated with a second namespace and a second interface, wherein at least some forwarding information included in the second namespace is incompatible with the first routing stack,
a virtual routing and forwarding instance (VRF), and
a shared session layer socket associated with both the first routing stack and the second routing stack, and bound to the VRF, wherein the VRF is associated with the second interface via the second routing stack,
the computer-implemented method comprising:
a) adding the first interface to the VRF whereby the VRF is associated with both the first interface and the second interface; and
b) responsive to the adding of the first interface to the VRF,
1) adding routes from the second namespace to the first namespace such that network address prefixes of the second namespace are associated with a special next hop, and
2) flagging the shared session layer socket bound to the VRF.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1 further comprising:
c) receiving an egress packet;
d) determining whether or not the egress packet is on the flagged shared session layer socket; and
e) responsive to determining that the egress packet is on the flagged shared session layer socket,
1) sending the egress packet to the first routing stack for processing;
2) looking up next hop information using the first namespace of the first routing stack,
3) determining whether or not the next hop information is a special next hop, and
4) responsive to a determination that the next hop information is a special next hop,
injecting the egress packet into the second routing stack for processing,
otherwise, responsive to a determination that the next hop information is not a special next hop,
forwarding the egress packet by the first routing stack using the next hop information.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2 wherein the egress packet is injected into the second routing stack, via a logical tunnel, for processing.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1 wherein the first routing stack is a proprietary routing stack and the second routing stack is a native routing stack.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1 wherein the second interface is an out-of-band control plane interface which is used by a remote management protocol.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1 wherein the second interface is an out-of-band control plane interface which is one of (A) an internal Ethernet interface, and (B) an external, remote management, Ethernet interface.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1 wherein the first interface is an in-band data plane interface and the second interface is an out-of-band control plane interface.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7 wherein the VRF uses the both the in-band data plane interface and the out-of-band control plane interface to provide redundancy in a management protocol.

### Claim 9 (depends on 8)

The computer-implemented method of claim 8 wherein the management protocol is one of Terminal Access Controller Access Control System (TACACS) and Network Time Protocol (NTP).

### Claim 10 (depends on 1)

The computer-implemented method of claim 1 wherein the first namespace includes a first forwarding information base (FIB) and wherein the second namespace includes a second FIB.

### Claim 11

A data forwarding device comprising:
a) a data plane component including a first routing stack associated with a first namespace and an in-band data plane interface;
b) a control plane component including a second routing stack associated with a second namespace and an out-of-band control plane interface, wherein at least some forwarding information included in the second namespace is incompatible with the first routing stack;
c) a virtual routing and forwarding instance (VRF);
d) a shared session layer socket associated with both the first routing stack and the second routing stack, and bound to the VRF, wherein the VRF is associated with the out-of-band control plane interface via the second routing stack; and
e) a packet processing module which is adapted to, responsive to adding of the in-band data plane interface to the VRF whereby the VRF is associated with both the in-band data plane interface and the out-of-band control plane interface,
1) add routes from the second namespace to the first namespace such that network address prefixes of the second namespace are associated with a special next hop, and
2) flag the shared session layer socket bound to the VRF.

### Claim 12 (depends on 11)

The data forwarding device of claim 11 wherein the packet processing module is further adapted to
3) receive an egress packet,
4) determine whether or not the egress packet is on the flagged shared session layer socket, and
5) responsive to determining that the egress packet is on the flagged shared session layer socket,
A) send the egress packet to the first routing stack for processing, wherein the first routing stack
i) looks up next hop information using the first namespace of the first routing stack,
ii) determines whether or not the next hop information is a special next hop, and
iii) responsive to a determination that the next hop information is a special next hop, injects the egress packet into the second routing stack for processing, and otherwise, responsive to a determination that the next hop information is not a special next hop, forwards the egress packet using the next hop information.

### Claim 13

A non-transitory computer-readable storage medium storing processor-executable instructions for controlling the forwarding of egress packets in a data forwarding device having
a first routing stack associated with a first namespace and a first interface,
a second routing stack associated with a second namespace and a second interface, wherein at least some forwarding information included in the second namespace is incompatible with the first routing stack,
a virtual routing and forwarding instance (VRF), and
a shared session layer socket associated with both the first routing stack and the second routing stack, and bound to the VRF, wherein the VRF is associated with the second interface via the second routing stack,
the processor executable instructions, when executed by at least one processor, cause the at least one processor to perform a method comprising:
a) adding the first interface to the VRF whereby the VRF is associated with both the first interface and the second interface; and
b) responsive to the adding of the first interface to the VRF,
1) adding routes from the second namespace to the first namespace such that network address prefixes of the second namespace are associated with a special next hop, and
2) flagging the shared session layer socket bound to the VRF.

### Claim 14 (depends on 13)

The non-transitory computer-readable medium of claim 13 wherein the method further comprises:
c) receiving an egress packet;
d) determining whether or not the egress packet is on the flagged shared session layer socket; and
e) responsive to determining that the egress packet is on the flagged shared session layer socket,
1) sending the egress packet to the first routing stack for processing;
2) looking up next hop information using the first namespace of the first routing stack,
3) determining whether or not the next hop information is a special next hop, and
4) responsive to a determination that the next hop information is a special next hop,
injecting the egress packet into the second routing stack for processing,
otherwise, responsive to a determination that the next hop information is not a special next hop,
forwarding the egress packet by the first routing stack using the next hop information.

### Claim 15 (depends on 14)

The non-transitory computer-readable medium of claim 14 wherein the egress packet is injected into the second routing stack, via a logical tunnel, for processing.

### Claim 16 (depends on 13)

The non-transitory computer-readable medium of claim 13 wherein the first routing stack is a proprietary routing stack and the second routing stack is a native routing stack.

### Claim 17 (depends on 13)

The non-transitory computer-readable medium of claim 13 wherein the second interface is an out-of-band control plane interface which is used by a remote management protocol.

### Claim 18 (depends on 13)

The non-transitory computer-readable medium of claim 13 wherein the first interface is an in-band data plane interface and the second interface is an out-of-band control plane interface.

### Claim 19 (depends on 13)

The non-transitory computer-readable medium of claim 13 wherein the VRF uses the both the in-band data plane interface and the out-of-band control plane interface to provide redundancy in a management protocol.

### Claim 20 (depends on 13)

The non-transitory computer-readable medium of claim 13 wherein the first namespace includes a first forwarding information base (FIB) and wherein the second namespace includes a second FIB.
