# US 7,609,657 B2 · Network device and address learning method thereof

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

- Number: US 7,609,657 B2
- Document ID: US7609657B2
- Status: Granted
- Kind: B2
- Application number: 11/511,373
- Filed: 2006-08-29
- Published: 2008-03-06
- Granted: 2009-10-27
- Earliest claimed: 2006-08-29
- Assignees: Accton Technology Corporation
- Inventors: Chih-Chiang Lee; Li-Hua Wu; Jia-Jang Young
- Web page: https://patentgrep.com/patent/US7609657B2

## CPC

- H04L 12/4641: {Virtual LANs, VLANs, e.g. virtual private networks [VPN] (LAN interconnection over a bridge based backbone H04L12/462; encapsulation techniques H04L12/4633; routing of packets H04L45/00; packet switches H04L49/00; virtual private networks for security H04L63/0272)}
- H04L 45/745: Address table lookup; Address filtering
- H04L 49/00: Packet switching elements
- H04L 49/3009: {Header conversion, routing tables or routing tags}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

An address learning method for a network device having a plurality of connection ports, at least one of which is electrically connected to a terminal device. The method includes a fetching process, a hashed-address generating process, a data registering process and an address registering process. The fetching process fetches an address data string from a first memory unit by a programmable logic device (PLD). The hashed-address generating process generates a hashed-address by the programmable logic device. The data registering process writes the address data string into an address data table. The address registering process writes the hashed-address into a hashed-address table. A network device for performing the address data learning method is also disclosed.

## Claims

### Claim 1

An address learning method for a network device having a plurality of connection ports, at least one of which is electrically connected to a terminal device, the method comprising:
a fetching process for fetching an address data string from a first memory unit by a programmable logic device;
a hashed-address generating process for generating a hashed-address by the programmable logic device;
a data registering process for writing the address data string into a data table; and
an address registering process for writing the hashed-address into a hashed-address table,
wherein the method is applied to a calculator program executed by a computing unit,
wherein the computing unit reads the address data string and the hashed-address respectively from the data table and the hashed-address table and writes the address data string into an address of a third memory unit corresponding to the hashed-address,
wherein the computing unit writes a deletion address into a deletion address table and outputs a deletion instruction to the programmable logic device, and
wherein the programmable logic device fetches the deletion address from the deletion address table and deletes data in an address of the third memory unit corresponding to the deletion address.

### Claim 2 (depends on 1)

The method according to claim 1, further comprising a checking process for checking whether the address data string is effective data.

### Claim 3 (depends on 1)

The method according to claim 1, further comprising a checking process for checking whether the hashed-address is repeated.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the address data string comprises a MAC (Media Access Control) address, a connection port identifier or a virtual LAN identifier of the terminal device.

### Claim 5 (depends on 1)

The method according to claim 1, wherein the data table and the hashed-address table are located in a second memory unit.

### Claim 6 (depends on 1)

The method according to claim 1, wherein the data registering process writes the address data string into the data table by the programmable logic device.

### Claim 7 (depends on 1)

The method according to claim 1, wherein the address registering process writes the hashed-address into the hashed-address table by the programmable logic device.

### Claim 8 (depends on 1)

The method according to claim 1, wherein the programmable logic device commands an application specific integrated circuit (ASIC) to delete data in an address of the third memory unit corresponding to the deletion address.

### Claim 9

A network device, comprising:
a first memory unit;
a second memory unit having a data table and a hashed-address table;
a programmable logic device electrically connecting to the first memory unit and the second memory unit, and having a fetching module, an address computing module and a registering module, wherein the fetching module fetches an address data string from the first memory unit, the address computing module generates a hashed-address, and the registering module writes the address data string and the hashed-address into the data table and the hashed-address table, respectively,
a third memory unit, wherein the address data string is recorded in the third memory unit; and
a calculator program executed by a computing unit for respectively reading the address data string and the hashed-address from the data table and the hashed-address table, and writing the address data string into an address of the third memory unit corresponding to the hashed-address
wherein the second memory unit further has a deletion address table, and the computing unit writes a deletion address into the deletion address table and outputs a deletion instruction to the programmable logic device, and
wherein the programmable logic device deletes data in an address of the third memory unit corresponding to the deletion address according to the deletion address of the deletion address table.

### Claim 10 (depends on 9)

The device according to claim 9, wherein the programmable logic device is a field programmable gate array (FPGA).

### Claim 11 (depends on 9)

The device according to claim 9, wherein the programmable logic device comprises a plurality of logic gates.

### Claim 12 (depends on 9)

The device according to claim 9, wherein the fetching module, the address computing module or the registering module comprises a plurality of logic gates.

### Claim 13 (depends on 9)

The device according to claim 9, wherein the first memory unit is a cache.

### Claim 14 (depends on 9)

The device according to claim 9, wherein the second memory unit is a dynamic random access memory (DRAM).

### Claim 15 (depends on 9)

The device according to claim 9, wherein the programmable logic device further comprises a checking module electrically connecting to the fetching module for checking whether the address data string is effective data.

### Claim 16 (depends on 9)

The device according to claim 9, wherein the programmable logic device further comprises a checking module electrically connecting to the address computing module for checking whether the hashed-address is repeated.

### Claim 17 (depends on 9)

The device according to claim 9, further comprising a plurality of connection ports, wherein at least one of the connection ports electrically connects to a terminal device.

### Claim 18 (depends on 17)

The device according to claim 17, wherein the address data string comprises a MAC (Media Access Control) address, a connection port identifier or a virtual LAN identifier of the terminal device.

### Claim 19 (depends on 9)

The device according to claim 9, further comprising an application specific integrated circuit (ASIC) electrically connected with the programmable logic device and the third memory unit, wherein the application specific integrated circuit (ASIC) deletes data in an address of the third memory unit corresponding to the deletion address.

### Claim 20 (depends on 9)

The device according to claim 9, wherein the first memory unit is disposed in an application specific integrated circuit (ASIC).
