# US 8,787,197 B2 · Global switch resource manager

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

- Number: US 8,787,197 B2
- Document ID: US8787197B2
- Status: Granted
- Kind: B2
- Application number: 13/905,776
- Filed: 2013-05-30
- Published: 2013-10-03
- Granted: 2014-07-22
- Earliest claimed: 2006-02-24
- Assignees: Marvell World Trade Ltd.
- Applicants: Marvell World Trade Ltd.
- Inventors: Raghu Kondapalli
- Web page: https://patentgrep.com/patent/US8787197B2

## CPC

- H04L 49/30: {Peripheral units, e.g. input or output ports}
- H04L 49/206: {Real Time traffic}
- H04L 49/50: Overload detection or protection within a single switching element
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A network device includes an input circuit configured to receive a plurality of data streams. An output circuit is configured to transmit the plurality of data streams. A forwarding engine includes a plurality of different types of resources associated with transmission of the plurality of data streams and is configured to transfer data streams from the input circuit to the output circuit according to the plurality of different types of resources. A resource manager is configured to determine performance requirements for each of the plurality of data streams, determine whether the performance requirements for each of the plurality of data streams can be accepted, store data entries corresponding to the performance requirements in response to a determination that the performance requirements can be accepted, and program, for each of the plurality of data streams, the plurality of different types of resources based on the data entries.

## Claims

### Claim 1

A network device, comprising:
an input circuit configured to receive, from a network, a plurality of data streams each comprising a plurality of packets of data;
an output circuit configured to transmit, to the network, the plurality of data streams;
a forwarding engine including a plurality of different types of resources used by the network device for transmission of the plurality of data streams, wherein the plurality of different types of resources includes (i) an allocation of buffer or queue pointers and (ii) an allocation of time slots in a schedule, the forwarding engine configured to transfer the packets of data from the input circuit to the output circuit using the plurality of different types of resources; and
a resource manager configured to
determine performance requirements for each of the plurality of data streams,
determine whether the performance requirements for each of the plurality of data streams can be accepted,
store, in a data stream table, data entries corresponding to the performance requirements for each of the plurality of data streams in response to a determination that the performance requirements can be accepted, and
program, for each of the plurality of data streams, the plurality of different types of resources based on the data entries stored in the data stream table.

### Claim 2 (depends on 1)

The network device of claim 1, wherein the plurality of different types of resources further includes at least two of ingress buffer resources, ingress rate-limiting resources, queue resources, output port scheduler resources, output queue scheduler resources, egress buffer resources, and egress rate-limiting resources.

### Claim 3 (depends on 1)

The network device of claim 1, wherein the resource manager is configured to determine the performance requirements for each of the plurality of data streams based on performance requirements of data packets included in respective ones of the plurality of data streams.

### Claim 4 (depends on 1)

The network device of claim 1, wherein the resource manager is configured to determine the performance requirements for each of the plurality of data streams based on setup packets included in respective ones of the plurality of data streams.

### Claim 5 (depends on 1)

The network device of claim 1, wherein the resource manager is configured to determine whether each of the plurality of data streams is i) a new data stream, or ii) a data stream already having an associated data entry in the data stream table.

### Claim 6 (depends on 5)

The network device of claim 5, wherein the resource manager is configured to selectively refresh an associated data entry for the data stream already having an associated entry in the data stream table.

### Claim 7 (depends on 1)

The network device of claim 1, wherein the resource manager is configured to block selected ones of the plurality of data streams that have performance requirements that are not accepted.

### Claim 8 (depends on 1)

The network device of claim 1, wherein the resource manager is configured to determine whether the performance requirements for each of the plurality of data streams can be accepted based on data entries already stored in the data stream table.

### Claim 9 (depends on 1)

The network device of claim 1, wherein the performance requirements include at least two of a bandwidth required by a data stream, a burst size required by a data stream, a latency required by a data stream, and a jitter required by the data stream.

### Claim 10 (depends on 1)

The network device of claim 1, wherein programming the plurality of different types of resources includes modifying at least one of the different types of resources according to two or more of the performance requirements.

### Claim 11

A method, comprising:
receiving, from a network, a plurality of data streams each comprising a plurality of packets of data; and
transferring the packets of data to the network using a plurality of different types of resources, wherein the resources are used for transmission of the plurality of data streams, and wherein the plurality of different types of resources includes (i) an allocation of buffer or queue pointers and (ii) an allocation of time slots in a schedule;
wherein the transferring the packets includes
determining performance requirements for each of the plurality of data streams,
determining whether the performance requirements for each of the plurality of data streams can be accepted,
storing, in a data stream table, data entries corresponding to the performance requirements for each of the plurality of data streams in response to a determination that the performance requirements can be accepted, and
programming, for each of the plurality of data streams, the plurality of different types of resources based on the data entries stored in the data stream table.

### Claim 12 (depends on 11)

The method of claim 11, wherein the plurality of different types of resources further includes at least two of ingress buffer resources, ingress rate-limiting resources, queue resources, output port scheduler resources, output queue scheduler resources, egress buffer resources, and egress rate-limiting resources.

### Claim 13 (depends on 11)

The method of claim 11, wherein the determining the performance requirements for each of the plurality of data streams includes determining the performance requirements based on performance requirements of data packets included in respective ones of the plurality of data streams.

### Claim 14 (depends on 11)

The method of claim 11, wherein the determining the performance requirements for each of the plurality of data streams includes determining the performance requirements based on setup packets included in respective ones of the plurality of data streams.

### Claim 15 (depends on 11)

The method of claim 11, further comprising determining whether each of the plurality of data streams is i) a new data stream, or ii) a data stream already having an associated data entry in the data stream table.

### Claim 16 (depends on 15)

The method of claim 15, further comprising selectively refreshing an associated data entry for the data stream already having an associated entry in the data stream table.

### Claim 17 (depends on 11)

The method of claim 11, further comprising blocking selected ones of the plurality of data streams that have performance requirements that are not accepted.

### Claim 18 (depends on 11)

The method of claim 11, wherein the determining whether the performance requirements for each of the plurality of data streams can be accepted includes determining whether the performance requirements can be accepted based on data entries already stored in the data stream table.

### Claim 19 (depends on 11)

The method of claim 11, wherein the performance requirements include at least two of a bandwidth required by a data stream, a burst size required by a data stream, a latency required by a data stream, and a jitter required by the data stream.

### Claim 20 (depends on 11)

The method of claim 11, wherein programming the plurality of different types of resources includes modifying at least one of the different types of resources according to two or more of the performance requirements.
