# US 7,742,471 B2 · Methods and systems for routing packets with a hardware forwarding engine and a software forwarding engine

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

- Number: US 7,742,471 B2
- Document ID: US7742471B2
- Status: Granted
- Kind: B2
- Application number: 11/289,749
- Filed: 2005-11-29
- Published: 2007-05-31
- Granted: 2010-06-22
- Earliest claimed: 2005-11-29
- Assignees: Samsung Electronics Co., Ltd.
- Inventors: Sreedharan Sreejith; Praseeth Sreedharan
- Web page: https://patentgrep.com/patent/US7742471B2

## CPC

- H04L 45/00: Routing or path finding of packets in data switching networks (routing or path finding in wireless networks H04W40/00)
- H04L 12/66: Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
- H04L 45/60: Router architectures
- H04L 45/74591: {using content-addressable memories [CAM]}
- Y10S 370/902: Packet switching
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

A system is provided that includes a hardware forwarding engine that routes data packets. The system also comprises a processor coupled to the hardware forwarding engine, the processor having a software forwarding engine that routes data packets. If data packets are forwarded from the hardware forwarding engine to the software forwarding engine, the hardware forwarding engine provides route lookup results for at least some of the data packets forwarded to the software forwarding engine.

## Claims

### Claim 1

A system, comprising:
a hardware forwarding engine that routes data packets; and
a processor coupled to the hardware forwarding engine, the processor having a software forwarding engine that routes data packets,
wherein, if data packets are forwarded from the hardware forwarding engine to the software forwarding engine, the hardware forwarding engine provides route lookup results for at least some of the data packets forwarded to the software forwarding engine.

### Claim 2 (depends on 1)

The system of claim 1 wherein the route lookup results comprise a mute entry index value that enables the software forwarding engine to directly lookup a route from a mute entry database.

### Claim 3 (depends on 1)

The system of claim 1 wherein the hardware forwarding engine provides the mute lookup results in a Layer 3 (“L3”) tunnel header.

### Claim 4 (depends on 3)

The system of claim 3 wherein the hardware forwarding engine provides the mute lookup results in a destination address data field of the L3 tunnel header.

### Claim 5 (depends on 3)

The system of claim 3 wherein the hardware forwarding engine provides the route lookup results in a source address data field of the L3 tunnel header.

### Claim 6 (depends on 1)

The system of claim 1 wherein the hardware forwarding engine provides another tunnel header having a signature, the signature enables the software forwarding engine to identify packets that include route lookup results.

### Claim 7 (depends on 6)

The system of claim 6 wherein the hardware forwarding engine provides the signature in a Layer 2 (“L2”) tunnel header.

### Claim 8 (depends on 7)

The system of claim 7 wherein the hardware forwarding engine provides the signature in a destination media access control data field of the L2 tunnel header.

### Claim 9 (depends on 1)

The system of claim 1 wherein the software forwarding engine does not perform time-to-live decrements for packets that include the route lookup results.

### Claim 10 (depends on 1)

The system of claim 1 wherein the software forwarding engine does not perform header error checksum (HEC) recalculations for packets that include the route lookup results.

### Claim 11

A method, comprising:
performing, by a hardware forwarding engine, a route lookup process to determine a route associated with a data packet;
if a next hop of the data packet is a processor interface, encapsulating the data packet in a first tunnel header that includes a result of the route lookup process; and
forwarding, by the hardware forwarding engine, the result of the route lookup process along with the data packet to a software forwarding engine.

### Claim 12 (depends on 11)

The method of claim 11 wherein the result comprises a route entry index value associated with a route entry database.

### Claim 13 (depends on 11)

The method of claim 11 further comprising extracting, by the software forwarding engine, the result from the first tunnel header and using the result to route the data packet to the processor interface.

### Claim 14 (depends on 11)

The method of claim 11 further comprising encapsulating the data packet in a second tunnel header having a signature, the signature indicates that the first tunnel header includes the result.

### Claim 15 (depends on 14)

The method of claim 14 further comprising inserting the signature in a destination media access control (DMAC) data field of the second tunnel header.

### Claim 16 (depends on 11)

The method of claim 11 further comprising inserting the result in a destination address data field of the first tunnel header.

### Claim 17 (depends on 11)

The method of claim 11 further comprising inserting the result in source address data field of the first tunnel header.

### Claim 18

A routing system, comprising:
a hardware forwarding engine that routes data packets received from a network interface; and
a processor in communication with the hardware forwarding engine, the processor having a software forwarding engine that routes data packets received from a processor interface, such that for a packet received from the network interface destined for the processor interface, the hardware forwarding engine is operable to perform a route lookup, the hardware forwarding engine further operable to insert a route lookup result into a tunnel header associated with the data packet and forward the tunnel header and the data packet to the processor, and further such that the software forwarding engine is operable to extract the route lookup result from the tunnel header and to route the data packet based on the route lookup result.

### Claim 19 (depends on 18)

The routing system of claim 18 wherein the hardware forwarding engine encapsulates the tunnel header and the data packet in a second tunnel header having a signature, the signature can be used by the software forwarding engine to identify when the hardware forwarding engine provides the route lookup result.

### Claim 20 (depends on 19)

The routing system of claim 19 wherein the signature is inserted into a destination media access control (DMAC) data field of the second tunnel header.
