# US 10,374,926 B2 · System and method for monitoring logical network traffic flows using a ternary content addressable memory in a high performance computing environment

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

- Number: US 10,374,926 B2
- Document ID: US10374926B2
- Status: Granted
- Kind: B2
- Application number: 15/414,211
- Filed: 2017-01-24
- Published: 2017-08-03
- Granted: 2019-08-06
- Earliest claimed: 2016-01-28
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Bjørn Dag Johnsen; Arvind Srinivasan
- Web page: https://patentgrep.com/patent/US10374926B2

## CPC

- H04L 47/20: Traffic policing
- G06F 9/451: Execution arrangements for user interfaces
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G11C 15/00: Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
- H04L 43/0876: Network utilisation, e.g. volume of load or congestion level
- H04L 45/74591: {using content-addressable memories [CAM]}
- H04L 47/70: Admission control; Resource allocation
- H04L 49/25: Routing or path finding in a switch fabric
- H04L 49/358: {Infiniband Switches}
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 69/22: Parsing or analysis of headers
- G06F 2201/88: Monitoring involving counting
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G11C: STATIC STORES (semiconductor memory devices H10B)

## Abstract

System and method for monitoring logical network traffic flows using a ternary content addressable memory (TCAM). An exemplary embodiment can provide a network port that is associated with a TCAM. The TCAM can be configured with a plurality of entries, wherein each TCAM entry contains a value. Further, each TCAM entry can be associated with at least one network counter. A predefined set of values can be retrieved from at least one header field of a data packet processed by the network port. Each value in the predefined set of values can be aggregated into a search value, and the search value can be compared to the value contained in each TCAM entry. When a match is found between the search value and the value contained in a TCAM entry, each network counter associated with the matching TCAM entry can be incremented.

## Claims

### Claim 1

A method of monitoring logical network traffic flows, comprising:
providing a network port;
associating a plurality of entries of a ternary content-addressable memory (TCAM) with the network port;
providing a first entry of the plurality of entries of the TCAM with a first value, wherein the first value comprises a first set of data found in a packet header and a second set of data found in a packet header;
providing a second entry of the plurality of entries of the TCAM with a second value, wherein the second value comprises the first set of data found in the packet header and a first mask;
providing a third entry of the plurality of entries of the TCAM with a third value, wherein the third value comprises the second set of data found in the packet header and a second mask;
providing a first counter, a second counter, and a third counter;
retrieving, by the network port, a predefined set of values from at least one header field of a data packet processed by the network port;
aggregating each value in the predefined set of values into a search value;
and performing at least one of:
comparing the search value to the first value of the first entry of the plurality of entries of the TCAM and incrementing the first counter, the second counter, and the third counter, when a match is determined between the search value and the first value of the first entry of the plurality of entries of the TCAM value stored in each TCAM entry;
comparing the search value to the second value of the second entry of the plurality of entries of the TCAM and incrementing the first counter when a match is determined between the search value and the second value of the second entry of the plurality of entries of the TCAM; and
comparing the search value to the third value of the third entry of the plurality of entries of the TCAM and incrementing the third counter when a match is determined between the search value and the third value of the third entry of the plurality of entries of the TCAM.

### Claim 2 (depends on 1)

The method of claim 1, wherein the packet header is an InfiniBand (IB) packet header.

### Claim 3 (depends on 2)

The method of claim 2, wherein the first set of data represents a partition key (P Key) value of an IB network and wherein the second set of data represents a destination local identifier (DLID) of the IB network.

### Claim 4 (depends on 3)

The method of claim 3, wherein the first counter represents a count of packets that include the P KEY represented by the first set of data.

### Claim 5 (depends on 4)

The method of claim 4, wherein the second counter represents a count of packets that include the partition key represented by the first set of data and the DLID represented by the second set of data.

### Claim 6 (depends on 5)

The method of claim 5, wherein the third counter represents a count of packets that include the DLID represented by the second set of data.

### Claim 7 (depends on 1)

The method of claim 1, wherein the at least one header field is a base transport header (BTH) field.

### Claim 8

A system for monitoring logical network traffic flows comprising:
a network device including a processor and a network port; and
a plurality of entries of a ternary content-addressable memory (TCAM) associated with the network port;
a first entry of the plurality of entries of the TCAM with a first value, wherein the first value comprises a first set of data found in a packet header and a second set of data found in a packet header;
a second entry of the plurality of entries of the TCAM with a second value, wherein the second value comprises the first set of data found in the packet header and a first mask;
a third entry of the plurality of entries of the TCAM with a third value, wherein the third value comprises the second set of data found in the packet header and a second mask;
wherein the network device operates to:
retrieve a predefined set of values from at least one header field of a data packet processed by the network port;
aggregating each value in the predefined set of values into a search value; and at least one of:
compare the search value to the first value of the first entry of the plurality of entries of the TCAM and increment the first counter, the second counter, and the third counter, when a match is determined between the search value and the first value of the first entry of the plurality of entries;
compare the search value to the second value of the second entry of the plurality of entries of the TCAM and increment the first counter when a match is determined between the search value and the second value of the second entry of the plurality of entries of the TCAM; and
compare the search value to the third value of the third entry of the plurality of entries of the TCAM and increment the third counter when a match is determined between the search value and the third value of the third entry of the plurality of entries of the TCAM.

### Claim 9 (depends on 8)

The system of claim 8, wherein the packet header is an InfiniBand (IB) packet header.

### Claim 10 (depends on 9)

The system of claim 9, wherein the first set of data represents a partition key (P Key) value of an IB network and wherein the second set of data represents a destination local identifier (DLID) of the IB network.

### Claim 11 (depends on 10)

The system of claim 10, wherein the first counter represents a count of packets that include the P KEY represented by the first set of data.

### Claim 12 (depends on 11)

The system of claim 11, wherein the second counter represents a count of packets that include the partition key represented by the first set of data and the DLID represented by the second set of data.

### Claim 13 (depends on 12)

The system of claim 12, wherein the third counter represents a count of packets that include the DLID represented by the second set of data.

### Claim 14 (depends on 8)

The system of claim 8, wherein the at least one header field is a base transport header (BTH) field.

### Claim 15

A non-transitory computer readable storage medium, including instructions stored thereon for monitoring logical network traffic flows, which when read and executed by one or more computers cause the one or more computers to perform steps comprising:
associating a plurality of entries of a ternary content-addressable memory (TCAM) with a network port of a network device;
providing a first entry of the plurality of entries of the TCAM with a first value, wherein the first value comprises a first set of data found in a packet header and a second set of data found in a packet header;
providing a second entry of the plurality of entries of the TCAM with a second value, wherein the second value comprises the first set of data found in the packet header and a first mask;
providing a third entry of the plurality of entries of the TCAM with a third value, wherein the third value comprises the second set of data found in the packet header and a second mask;
providing a first counter, a second counter, and a third counter;
retrieving, by the network port, a predefined set of values from at least one header field of a data packet processed by the network port;
aggregating each value in the predefined set of values into a search value; and
performing at least one of:
comparing the search value to the first value of the first entry of the plurality of entries of the TCAM and incrementing the first counter, the second counter, and the third counter, when a match is determined between the search value and the first value of the first entry of the plurality of entries of the TCAM value stored in each TCAM entry;
comparing the search value to the second value of the second entry of the plurality of entries of the TCAM and incrementing the first counter when a match is determined between the search value and the second value of the second entry of the plurality of entries of the TCAM; and
comparing the search value to the third value of the third entry of the plurality of entries of the TCAM and incrementing the third counter when a match is determined between the search value and the third value of the third entry of the plurality of entries of the TCAM.

### Claim 16 (depends on 15)

The non-transitory computer readable storage medium of claim 15, wherein the packet header is an InfiniBand (IB) packet header.

### Claim 17 (depends on 16)

The non-transitory computer readable storage medium of claim 16, wherein the first set of data represents a partition key (P Key) value of an IB network and wherein the second set of data represents a destination local identifier (DLID) of the IB network.

### Claim 18 (depends on 17)

The non-transitory computer readable storage medium of claim 17, wherein the first counter represents a count of packets that include the P KEY represented by the first set of data.

### Claim 19 (depends on 18)

The non-transitory computer readable storage medium of claim 18, wherein the second counter represents a count of packets that include the partition key represented by the first set of data and the DLID represented by the second set of data.

### Claim 20 (depends on 19)

The non-transitory computer readable storage medium of claim 19, wherein the third counter represents a count of packets that include the DLID represented by the second set of data.
