# US 2014/0156667 A1 · Increasing Internet Protocol Version 6 Host Table Scalability in Top of Rack Switches for Data Center Deployments

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

- Number: US 2014/0156667 A1
- Document ID: US20140156667A1
- Status: Published application
- Kind: A1
- Application number: 13/693,090
- Filed: 2012-12-04
- Published: 2014-06-05
- Earliest claimed: 2012-12-04
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Shyam Kapadia; Ming Zhang; Nilesh Shah; Putu Harry Subagio
- Web page: https://patentgrep.com/patent/US20140156667A1

## CPC

- G06F 16/901: Indexing; Data structures therefor; Storage structures (for retrieval from the web G06F16/951)
- G06F 16/00: Information retrieval; Database structures therefor; File system structures therefor
- H04L 45/74: Address processing for routing
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Techniques are provided for optimizing storage of address information in switch device databases. A control packet is received from a source host. An address associated with a host is determined. The address comprises a first and second address component. The first address component is stored in a first database and is mapped to an index value that is stored in the first database. The index value is also stored in a second database along with the second address component. The first database may also be examined to determine whether the first address component is stored in the first database. If the first address component is stored in the first database, the index value mapped to the first address component is retrieved. The second database is examined to determine whether the index value and the second address component are stored in the second database.

## Claims

### Claim 1

A method comprising:
at a switch device in a network, receiving a control packet from a source host in the network;
determining from the control packet an address associated with a host in the network, wherein the address comprises a first address component and a second address component;
storing the first address component in a first database of the switch device;
mapping the first address component to an index value and storing the index value in the first database; and
storing the index value and the second address component in a second database of the switch device.

### Claim 2 (depends on 1)

The method of claim 1, wherein receiving comprises receiving the control packet having an Internet Protocol version 6 (IPv6) address associated with the host.

### Claim 3 (depends on 1)

The method of claim 1, wherein determining comprises determining the first address component corresponding to a subnet associated with the host and the second address component corresponding to an interface identifier of the host.

### Claim 4 (depends on 1)

The method of claim 1, wherein storing the first address component comprises storing the first address component in a longest prefix match (LPM) database, and wherein storing the index value and the second address component comprises storing the index value and the second address component in a host routing table (HRT) database.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
determining a next-hop adjacency address for a data packet; and
sending the data packet to a device associated with the next-hop adjacency address.

### Claim 6 (depends on 1)

The method of claim 1, wherein storing the index value and the second address component comprises storing the index value and the second address component in the second database of the switch device such that the second database is able to store a larger number of host addresses compared to when the first address component and the second address component are stored in the second database.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first address component has a length of 64 bits or more for subnet address.

### Claim 8 (depends on 1)

The method of claim 1, wherein a look-up in the first database and another look-up in the second database address component together have a length of 128 bits.

### Claim 9

A method comprising:
at a switch device in a network, receiving a data packet from a source host in the network;
determining from the data packet an address associated with a target host in the network, wherein the address comprises a first address component and a second address component;
examining a first database of the switch device to determine whether the first address component of a target host address is stored in the first database;
if the first address component is determined to be stored in the first database, retrieving from the first database an index value that is mapped to the first address component and examining a second database of the switch device to determine whether the index value and the second address component are stored in the second database.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
if the first address component is stored in the first database and if the index value and the second address component are determined to be stored in the second database, determining a next-hop adjacency address for the packet; and
sending the packet to a device associated with the next-hop adjacency address.

### Claim 11 (depends on 10)

The method of claim 10, wherein determining the next-hop adjacency address comprises determining the next-hop adjacency address from the second database.

### Claim 12 (depends on 9)

The method of claim 9, further comprising:
if the first address component is determined to be stored in the first database and if the index value and the second address component are determined to not be stored in the second database, determining a next-hop adjacency address for the packet from the first database; and
sending the packet to a device associated with the next-hop adjacency address.

### Claim 13 (depends on 9)

The method of claim 9, further comprising dropping the packet when there is no default entry in the first database or forwarding the packet to a gateway router when there is a default entry in the first database.

### Claim 14

An apparatus comprising:
a plurality of network ports;
a switch unit coupled to the plurality of network ports;
a memory; and
a processor coupled to the switch unit and the memory, and configured to:
receive a control packet from a source host in the network;
determine from the control packet an address associated with a host in the network, wherein the address comprises a first address component and a second address component;
store the first address component in a first database;
map the first address component to an index value and store the index value in the first database; and
store the index value and the second address component in a second database.

### Claim 15 (depends on 14)

The apparatus of claim 14, wherein the processor is further configured to determine the first address component corresponding to a subnet associated with the host and the second address component corresponding to an interface identifier of the host.

### Claim 16 (depends on 14)

The apparatus of claim 14, wherein the processor is further configured to:
determine a next-hop adjacency address for a data packet; and
send the data packet to a device associated with the next-hop adjacency address.

### Claim 17 (depends on 14)

The apparatus of claim 14, wherein the processor is further configured to store the index value and the second address component in the second database such that the second database is able to store a larger number of host addresses compared to when the first address component and the second address component are stored in the second database.

### Claim 18

A computer-readable storage media encoded with software comprising computer executable instructions and when the software is executed operable to:
receive a control packet from a source host in the network;
determine from the control packet an address associated with a host in the network, wherein the address comprises a first address component and a second address component;
store the first address component in a first database of the switch device;
map the first address component to an index value and store the index value in the first database; and
store the index value and the second address component in a second database of the switch device.

### Claim 19 (depends on 18)

The computer-readable storage media of claim 18, wherein the instructions operable to determine comprise instructions operable to determine the first address component corresponding to a subnet associated with the target host and the second address component corresponding to an interface identifier of the target host.

### Claim 20 (depends on 18)

The computer-readable storage media of claim 18, further comprising instructions operable to:
determine a next-hop adjacency address for the packet; and
send the packet to a device associated with the next-hop adjacency address.

### Claim 21 (depends on 18)

The computer-readable storage media of claim 18, wherein the instructions operable to store the index value and the second address component in the second database comprise instructions operable to store the index value and the second address component in the second database such that the second database is able to store a larger number of host addresses compared to when the first address component and the second address component are stored in the second database.
