# US 10,320,670 B2 · Routers with network processing unit and central processing unit-based line cards

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

- Number: US 10,320,670 B2
- Document ID: US10320670B2
- Status: Granted
- Kind: B2
- Application number: 14/970,403
- Filed: 2015-12-15
- Published: 2017-06-15
- Granted: 2019-06-11
- Earliest claimed: 2015-12-15
- Assignees: AT&T Intellectual Property I, L.P.
- Applicants: AT&T Intellectual Property I, L.P.
- Inventors: Han Q. Nguyen; Huajin Jeng; Tuan Duong; Kang Xi
- Web page: https://patentgrep.com/patent/US10320670B2

## CPC

- H04L 45/60: Router architectures
- H04L 45/742: {Route cache; Operation thereof}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A router may include a central processing unit-based line card storing a forwarding table that includes a first set of entries, a network processing unit-based line card storing a partial forwarding table that includes a second set of entries comprising a subset of the first set of entries, where the second set of entries comprises entries that are most utilized by a plurality of line cards of the router, and a route controller for updating the second set of entries to comprise the entries that are the most utilized. The network processing unit-based line card may forward a packet when an entry in the partial forwarding table matches the packet and may forward the packet to the central processing unit-based line card to forward the packet when there is no entry in the partial forwarding table of the network processing-unit based line card that matches the packet.

## Claims

### Claim 1

A router comprising:
a central processing unit-based line card storing a forwarding table that includes a first set of entries;
a network processing unit-based line card storing a partial forwarding table that includes a second set of entries, wherein the second set of entries comprises a subset of the first set of entries, wherein the second set of entries comprises entries that are most utilized by a plurality of line cards of the router, the plurality of line cards including the central processing unit-based line card and the network processing unit-based line card, wherein the central processing unit-based line card and the network processing unit-based line card are distinct physical devices, wherein the network processing unit-based line card is configured to forward a packet received at the router to a destination when an entry in the partial forwarding table of the network processing unit-based line card matches the packet and to transfer the packet to the central processing unit-based line card to allow the central processing unit-based line card to forward the packet to the destination using the forwarding table stored by the central processing unit-based line card when there is no entry in the partial forwarding table of the network processing unit-based line card that matches the packet; and
a route controller for updating the second set of entries in the partial forwarding table to comprise the entries that are the most utilized by the plurality of line cards of the router.

### Claim 2 (depends on 1)

The router of claim 1, wherein the central processing unit-based line card comprise an x86 architecture-based central processing unit.

### Claim 3 (depends on 1)

The router of claim 1, wherein the network processing unit-based line card comprises a merchant silicon network processing unit.

### Claim 4 (depends on 1)

The router of claim 1, wherein the forwarding table comprises entries for a full set of Internet destinations.

### Claim 5 (depends on 1)

The router of claim 1, wherein the forwarding table comprises greater than 500,000 entries.

### Claim 6 (depends on 1)

The router of claim 1, wherein the network processing unit-based line card has a capacity of less than 500,000 entries for the partial forwarding table.

### Claim 7 (depends on 1)

The router of claim 1, wherein the network processing unit-based line card routes the packet at a wire speed when the packet matches the entry in the partial forwarding table.

### Claim 8 (depends on 7)

The router of claim 7, wherein the wire speed is at least 100 gigabits per second.

### Claim 9 (depends on 1)

The router of claim 1, wherein the central processing unit-based line card routes the packet at less than a wire speed when the packet is forwarded to the central processing unit-based line card.

### Claim 10 (depends on 9)

The router of claim 9, wherein the wire speed is at least 100 gigabits per second.

### Claim 11 (depends on 1)

The router of claim 1, wherein the central processing unit-based line card is one of a plurality of central processing unit-based line cards of the router, and wherein the network processing unit-based line card is one of a plurality of network processing unit-based line cards of the router.

### Claim 12 (depends on 11)

The router of claim 11, wherein the plurality of network processing unit-based line cards comprises two network processing unit-based line cards, and wherein the plurality of central processing unit-based line cards comprises greater than ten central processing unit-based line cards.

### Claim 13 (depends on 11)

The router of claim 11, wherein the plurality of central processing unit-based line cards comprises virtual machines hosted on at least one server.

### Claim 14 (depends on 13)

The router of claim 13, wherein the route controller is further for adjusting a number of central processing unit-based line cards of the plurality of central processing unit-based line cards in response to a utilization level of the router.

### Claim 15 (depends on 11)

The router of claim 11, wherein the route controller is further for reconfiguring the network processing unit-based line card to forward a further packet to a different central processing unit-based line card of the plurality of central processing unit-based line cards when there is no matching entry in the partial forwarding table of the network processing unit-based line card for the additional packet.

### Claim 16 (depends on 1)

The router of claim 1, wherein the network processing unit-based line card is further for:
counting utilizations of the second set of entries in the partial forwarding table of the network processing unit-based line card; and
reporting to the route controller the utilizations of the second set of entries in the partial forwarding table of the network processing unit-based line card.

### Claim 17 (depends on 16)

The router of claim 16, wherein the central processing unit-based line card is for:
counting utilizations of the first set of entries in the forwarding table of the central processing unit-based line card; and
reporting to the route controller the utilizations of the first set of entries in the forwarding table of the central processing unit-based line card.

### Claim 18 (depends on 1)

The router of claim 1, wherein the router comprises a provider edge router of a telecommunication service provider network.

### Claim 19

A method comprising:
receiving, by a processor, utilizations of a first set of entries in a forwarding table of a central processing unit-based line card of a router;
receiving, by the processor, utilizations of a second set of entries in a partial forwarding table of a network processing unit-based line card of the router, wherein the second set of entries comprises a subset of the first set of entries, wherein the second set of entries comprises entries that are most utilized by a plurality of line cards of the router, the plurality of line cards including the central processing unit-based line card and the network processing unit-based line card, wherein the central processing unit-based line card and the network processing unit-based line card are distinct physical devices, wherein the network processing unit-based line card is configured to forward a packet received at the router to a destination when an entry in the partial forwarding table of the network processing unit-based line card matches the packet and to transfer the packet to the central processing unit-based line card to allow the central processing unit-based line card to forward the packet to the destination using the forwarding table of the central processing unit-based line card when there is no entry in the partial forwarding table of the network processing unit-based line card that matches the packet; and
updating, by the processor, the second set of entries in the partial forwarding table to comprise the entries that are the most utilized by the plurality of line cards of the router.

### Claim 20

A device comprising:
a processor; and
a computer-readable medium storing instructions which, when executed by the processor, cause the processor to perform operations, the operations comprising:
receiving utilizations of a first set of entries in a forwarding table of a central processing unit-based line card of a router;
receiving utilizations of a second set of entries in a partial forwarding table of a network processing unit-based line card of the router, wherein the second set of entries comprises a subset of the first set of entries, wherein the second set of entries comprises entries that are most utilized by a plurality of line cards of the router, the plurality of line cards including the central processing unit-based line card and the network processing unit-based line card, wherein the central processing unit-based line card and the network processing unit-based line card are distinct physical devices, wherein the network processing unit-based line card is configured to forward a packet received at the router to a destination when an entry in the partial forwarding table of the network processing unit-based line card matches the packet and to transfer the packet to the central processing unit-based line card to allow the central processing unit-based line card to forward the packet to the destination using the forwarding table of the central processing unit-based line card when there is no entry in the partial forwarding table of the network processing unit-based line card that matches the packet; and
updating the second set of entries in the partial forwarding table to comprise the entries that are the most utilized by the plurality of line cards of the router.
