# US 7,609,633 B2 · Bandwidth policer with compact data structure

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

- Number: US 7,609,633 B2
- Document ID: US7609633B2
- Status: Granted
- Kind: B2
- Application number: 11/451,849
- Filed: 2006-06-12
- Published: 2007-12-13
- Granted: 2009-10-27
- Earliest claimed: 2006-06-12
- Assignees: Cisco Technology, Inc.
- Inventors: Doron Shoham; Rami Zemach
- Web page: https://patentgrep.com/patent/US7609633B2

## CPC

- H04L 47/32: by discarding or delaying data units, e.g. packets or frames
- H04L 43/106: using time related information in packets, e.g. by adding timestamps
- H04L 43/50: Testing arrangements
- H04L 47/10: Flow control; Congestion control
- H04L 47/20: Traffic policing
- H04L 47/2458: {Modification of priorities while in transit}
- H04L 43/00: Arrangements for monitoring or testing data switching networks
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for controlling data transmission includes setting a respective rate criterion for each of a plurality of interfaces of a network element. Upon conveying a first data packet of a first size via a given interface of the network element at a first time, a time-stamp value is computed based on the first time, the first size and the respective rate criterion that is set for the given interface. A disposition of a second packet for conveyance via the given interface at a second time, subsequent to the first time, is determined responsively to the time-stamp value.

## Claims

### Claim 1

A method for controlling data transmission, comprising:
setting a respective rate criterion comprising an allocated data transmission rate for each of a plurality of interfaces of a network element;
conveying a first data packet of a first size via a given interface of the network element at a first time;
computing and setting a time-stamp value which differs from the first time by an amount which is a predetermined function of: a burst size permitted on the given interface at the first time, the first size and the respective rate criterion that is set for the given interface; and
determining a disposition of a second packet for conveyance via the given interface at a second time, subsequent to the first time, responsively to the time-stamp value.

### Claim 2 (depends on 1)

The method according to claim 1, wherein setting the respective rate criterion comprises setting multiple rate criteria for the given interface, and wherein computing the time-stamp value comprises computing multiple time-stamp values corresponding to the multiple rate criteria.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the second packet has a second size, and wherein determining the disposition comprises computing a permitted burst size based on the time-stamp value, and comparing the second size to the permitted burst size.

### Claim 4 (depends on 3)

The method according to claim 3, wherein determining the disposition comprises at least one of discarding the second packet and transmitting the second packet at a reduced priority level if the second size exceeds the permitted burst size by a difference that is greater than a predetermined threshold.

### Claim 5 (depends on 1)

The method according to claim 1 wherein the predetermined function is a quotient of a difference between the burst size and the first size divided by the respective rate criterion.

### Claim 6 (depends on 5)

The method according to claim 5, and comprising computing a remainder value of the quotient, wherein determining the disposition comprises computing the burst size permitted at the second time responsively to the time-stamp value and the remainder value.

### Claim 7

A device for controlling data transmission, comprising:
a memory, which is configured to store policing data with respect to each of a plurality of interfaces of a network element, the policing data comprising a respective rate criterion comprising an allocated data transmission rate for each of the interfaces; and
a network processor, which is coupled to receive an indication of a first data packet of a first size that is to be transmitted via a given interface of the network element at a first time, to read the policing data from the memory with respect to the given interface and to compute and set a time-stamp value which differs from the first time by an amount which is a predetermined function of: a burst size permitted on the given interface at the first time, the first size and the respective rate criterion that is set for the given interface, and to determine a disposition of a second packet for conveyance via the given interface at a second time, subsequent to the first time, responsively to the time-stamp value.

### Claim 8 (depends on 7)

The device according to claim 7, wherein the policing data comprise multiple rate criteria for the given interface, and wherein the network processor is arranged to compute multiple time-stamp values corresponding to the multiple rate criteria.

### Claim 9 (depends on 7)

The device according to claim 7, wherein the second packet has a second size, and the network processor is arranged to compute a permitted burst size based on the time-stamp value, and to compare the second size to the permitted burst size in order to determine the disposition of the second packet.

### Claim 10 (depends on 9)

The device according to claim 9, wherein the disposition comprises at least one of discarding the second packet and transmitting the second packet at a reduced priority level if the second size exceeds the permitted burst size by a difference that is greater than a predetermined threshold.

### Claim 11 (depends on 7)

The device according to claim 7 wherein the predetermined function is a quotient of a difference between the burst size and the first size divided by the respective rate criterion.

### Claim 12 (depends on 11)

The device according to claim 11, wherein the network processor is arranged to compute a remainder value of the quotient, and to compute the burst size permitted at the second time responsively to the time-stamp value and the remainder value.

### Claim 13 (depends on 11)

The apparatus according to claim 11, wherein the traffic policer is arranged to compute a remainder value of the quotient, and to compute the burst size permitted at the second time responsively to the time-stamp value and the remainder value.

### Claim 14

Apparatus for conveying packets over a network, the apparatus comprising:
a plurality of interfaces, for connection to other network nodes; and
a traffic policer, which is coupled to store a respective rate criterion comprising an allocated data transmission rate for each of the plurality of interfaces, and upon conveyance of a first data packet of a first size via a given interface at a first time, to compute and set a time-stamp value which differs from the first time by an amount which is a predetermined function of: a burst size permitted on the given interface at the first time, the first size and the respective rate criterion that is set for the given interface, and to determine a disposition of a second packet for conveyance via the given interface at a second time, subsequent to the first time, responsively to the time-stamp value.

### Claim 15 (depends on 14)

The apparatus according to claim 14, wherein the policing data comprise multiple rate criteria for the given interface, and wherein the traffic policer is arranged to compute multiple time-stamp values corresponding to the multiple rate criteria.

### Claim 16 (depends on 14)

The apparatus according to claim 14, wherein the second packet has a second size, and the traffic policer is arranged to compute a permitted burst size based on the time-stamp value, and to compare the second size to the permitted burst size in order to determine the disposition of the second packet.

### Claim 17 (depends on 16)

The apparatus according to claim 16, wherein the disposition comprises at least one of discarding the second packet and transmitting the second packet at a reduced priority level if the second size exceeds the permitted burst size by a difference that is greater than a predetermined threshold.

### Claim 18 (depends on 14)

The apparatus according to claim 14, wherein the predetermined function is a quotient of a difference between the burst size and the first size divided by the respective rate criterion.

### Claim 19

Apparatus for controlling data transmission, comprising:
means for setting a respective rate criterion comprising an allocated data transmission rate for each of a plurality of interfaces of a network element;
means for conveying a first data packet of a first size via a given interface of the network element at a first time;
means for computing and setting a time-stamp value which differs from the first time by an amount which is a predetermined function of: a burst size permitted on the given interface at the first time, the first size and the respective rate criterion that is set for the given interface; and
means for determining a disposition of a second packet for conveyance via the given interface at a second time, subsequent to the first time, responsively to the time-stamp value.
