# US 7,411,907 B2 · Method and apparatus for controlling packet flow for corresponding bandwidths of ports

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

- Number: US 7,411,907 B2
- Document ID: US7411907B2
- Status: Granted
- Kind: B2
- Application number: 10/857,934
- Filed: 2004-06-02
- Published: 2004-12-30
- Granted: 2008-08-12
- Earliest claimed: 2003-06-30
- Assignees: Samsung Electronics Co., Ltd.
- Inventors: Kyu-Wook Han
- Web page: https://patentgrep.com/patent/US7411907B2

## CPC

- H04L 47/10: Flow control; Congestion control
- H04L 47/22: Traffic shaping
- H04L 47/29: {using a combination of thresholds}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

An apparatus and method for controlling a packet flow according to the bandwidth of corresponding ports, including a plurality of ports configured to compare a first packet number and a second packet number, and generate a packet flow control signal based on the comparison result, the packet flow control signal being used to control the packet flow.

## Claims

### Claim 1

A method of controlling a packet flow in accordance with bandwidths of a corresponding plurality of ports comprising:
accumulating packets transmitted from a first port of the plurality of ports for a specific time interval;
counting a length of the accumulated packets in units of M, M being an integer bytes M≧64, for calculating a first packet number, the first packet number being—a second packet number+a third packet number—, the second packet number corresponding to a length of previously accumulated packets, and the third packet number corresponding to a length of a present packet;
calculating a fourth packet number corresponding to a first bandwidth assigned to a second port;
comparing the first packet number with the fourth packet number; and
generating a packet flow control signal based on the comparison result.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
monitoring a condition of a packet memory;
generating information representing the condition of the packet memory; and
storing the packets transmitted in the packet memory using the information representing the condition of the packet memory.

### Claim 3 (depends on 1)

The method of claim 1, further comprising: generating a look-up table using the transmitted packets.

### Claim 4 (depends on 3)

The method of claim 3, wherein the look-up table includes at least one source address, destination address and medium access control (MAC) address.

### Claim 5 (depends on 1)

The method of claim 1, wherein the fourth packet number corresponding to the first bandwidth of a second port is proportional to at least one other packet number corresponding to a second bandwidth assigned to the first port.

### Claim 6 (depends on 5)

The method of claim 5, wherein the fourth packet number has a binary value.

### Claim 7 (depends on 1)

The method of claim 1, wherein M is 64 bytes.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first packet number is—the second packet number+the third packet number+1—when—a first remainder+a second remainder—is greater than 64 bytes, where the first remainder corresponds to a remainder of—total bytes of the previously accumulated packets÷the length of previously accumulated packets—, and the second remainder corresponds to a remainder of—total bytes of the present packet÷the length of the present packet—, and where the first and second remainders are expressed in units of bytes.

### Claim 9 (depends on 1)

The method of claim 1, further comprising converting an analog signal corresponding to the packets into a digital signal.

### Claim 10 (depends on 1)

The method of claim 1, wherein the packet flow control signal controls the flow of packets.

### Claim 11 (depends on 10)

The method of claim 10, wherein the packet flow control signal corresponds to a back pressure packet for a half duplex communication.

### Claim 12 (depends on 11)

The method of claim 11, wherein the packet flow control signal corresponds to a pause packet for a full duplex communication.

### Claim 13

A method of controlling a packet flow in accordance with bandwidths of a corresponding plurality of ports comprising:
generating a look-up table based on packets received from a first port of the plurality of ports;
monitoring a condition of a packet memory;
generating packet transmission information based on information in the look-up table;
generating information representing the condition of the packet memory;
reading packets from the packet memory using the look-up table information, the packet transmission information and the information representing the condition of the packet memory;
counting a length of the packets read in units of M bytes to calculate a first packet number, M being an integer≧64 bytes, the first packet number being—a second packet number+a third packet number—, the second packet number corresponding to a length of previously accumulated packets, and the third packet number corresponding to a length of a present packet;
calculating a fourth packet number corresponding to a bandwidth assigned to a second port;
comparing the first packet number with the fourth packet number; and generating a packet flow control signal based on the comparison result.

### Claim 14 (depends on 13)

The method of claim 13, wherein the look-up table includes at least one source address, destination address and medium access control (MAC) address.

### Claim 15 (depends on 13)

The method of claim 13, wherein the fourth packet number corresponding to the bandwidth of the second port is proportional to at least an other packet number corresponding to another bandwidth assigned to the first port.

### Claim 16 (depends on 15)

The method of claim 15, wherein the fourth packet number has a binary value.

### Claim 17 (depends on 14)

The method of claim 14, wherein M is 64.

### Claim 18 (depends on 17)

The method of claim 17, wherein the first packet number is—the second packet number+the third packet number+1—, when—a first remainder+a second remainder—is greater than 64 bytes, the first remainder corresponds to a remainder of—total bytes of the previously accumulated packets÷the length of previously accumulated packets—, and the second remainder corresponds to a remainder of—total bytes of a present packet÷the length of the present packet—, and the first and second remainders are expressed in a unit of bytes.

### Claim 19 (depends on 13)

The method of claim 13, further comprising: converting a digital signal, corresponding to the packets read, into an analog signal.

### Claim 20 (depends on 13)

The method of claim 13, wherein the packet flow is controlled based on a transmission rate control.

### Claim 21

An apparatus for controlling a packet flow in accordance with bandwidths of a corresponding plurality of ports, the apparatus comprising:
a plurality of port controllers configured to receive a first set of packets and compare a first packet number with a second packet number and generate a packet flow control signal based on the comparison result, where the first packet number is calculated in units of M bytes, M being an integer≧64 bytes, the first packet number being—a third packet number+a fourth packet number—, the third packet number corresponding to a length of previously accumulated packets, and the fourth packet number corresponding to a length of a present packet;
a packet memory configured to store the first set of packets;
a look-up section configured to receive the first set of packets from the plurality of port controllers and generate a look-up table containing at least one source address and destination address from the first set of packets; and
a queue manager that is configured to monitor a condition of the packet memory and generate packet transmission information based on the look-up table, and transmit information representing the condition of the packet memory to port controllers.

### Claim 22 (depends on 21)

The apparatus of claim 21, wherein at least one of said plurality of port controllers write the first set of packets in the packet memory, and read the second set of packets from the packet memory.

### Claim 23 (depends on 21)

The apparatus of claim 21, wherein M is 64 bytes.

### Claim 24 (depends on 23)

The apparatus of claim 23, wherein the first packet number is—the third packet number+the fourth packet number+1—, when—a first remainder+a second remainder—is greater than 64 bytes, the first remainder corresponds to a remainder of—total bytes of the previously accumulated packets÷the length of previously accumulated packets—, and the second remainder corresponds to a remainder of—total bytes of the present packet÷the length of the present packet—, where the first and second remainders are expressed in a unit of bytes.

### Claim 25 (depends on 21)

The apparatus of claim 21, wherein the port controllers include:
a packet controller configured to transmit the second set of packets, and configured to receive the first set of packets; and
a flow controller that is configured to control the packet flow of the first and second set of packets.

### Claim 26 (depends on 25)

The apparatus of claim 25, wherein the flow controller includes:
a bandwidth calculator configured to calculate the first packet number and the second packet number;
a comparator configured to compare the first packet number with the second packet number; and
a flow control signal generator configured to generate the packet flow control signal.

### Claim 27 (depends on 26)

The apparatus of claim 26, wherein the bandwidth calculator includes:
a transmission/receipt bandwidth calculator that is configured to calculate the first packet number; and
a port bandwidth calculator that is configured to calculate the second packet number.

### Claim 28 (depends on 26)

The apparatus of claim 26, wherein the flow control signal generator includes:
a receipt flow control signal generator configured to generate the packet flow control signal corresponding to the first set of packets; and
a transmission flow control signal generator configured to generate the packet flow control signal corresponding to the second set of packets.

### Claim 29 (depends on 21)

The apparatus of claim 21, wherein the queue manager includes:
a packet memory controller configured to monitor the packet memory, and control the condition of the packet memory; and
a queue memory configured to generate the packet transmission information based on the look-up table.

### Claim 30 (depends on 21)

The apparatus of claim 21, further comprising:
a physical layer which receives the first and second sets of packets, and converts a signal corresponding to the first set of packets into a digital signal, and converts another signal corresponding to the second set of packets into an analog signal; and
a medium access control (MAC) which transmits the digital signal to at least one of the port controllers, and controls the packet flow of the first and second set of packets.

### Claim 31 (depends on 30)

The apparatus of claim 30, wherein the packet flow control signal is generated and a transmission rate control is performed when the second set of packets are provided from the packet memory.

### Claim 32 (depends on 31)

The apparatus of claim 31, wherein the packet flow control signal corresponds to a back pressure packet for a half duplex communication.

### Claim 33 (depends on 32)

The apparatus of claim 32, wherein the packet flow control signal corresponds to a pause packet for a full duplex communication.

### Claim 34 (depends on 21)

The apparatus of claim 21, wherein the plurality of ports correspond to the plurality of port controllers.

### Claim 35 (depends on 34)

The apparatus of claim 34, wherein the plurality of ports have at least one assigned bandwidth.

### Claim 36

An Ethernet switch comprising:
a plurality of port controllers configured to receive a first set of packets and compare a first packet number with a second packet number, and generate a packet flow control signal based on the comparison result, where the first packet number is calculated in units of M bytes, M being an integer≧64 bytes, the first packet number being—a third packet number+a fourth packet number—, the third packet number corresponding to a length of previously accumulated packets, and the fourth packet number corresponding to a length of a present packet;
a packet memory that is configured to store the first set of packets;
a look-up section that is configured to receive the first set of packets from the plurality of port controllers, and generate a look-up table containing at least one source address, destination address, and medium access control (MAC) address information based on the first set of packets; and
a queue manager configured to monitor a condition of the packet memory, and generate packet transmission information based on the look-up table, and transmit information representing the condition of the packet memory to at least one of said plurality of port controllers.

### Claim 37 (depends on 36)

The Ethernet switch of claim 36, wherein the plurality of port controllers are configured to write the first set of packets in the packet memory, and read the second set of packets from the packet memory.

### Claim 38 (depends on 37)

The Ethernet switch of claim 37, wherein the plurality of ports correspond to the plurality of port controllers.

### Claim 39 (depends on 36)

The Ethernet switch of claim 36, wherein M is 64 bytes.

### Claim 40 (depends on 36)

The Ethernet switch of claim 36, wherein the second packet number is proportional to at least another second packet number of another of the plurality of ports.

### Claim 41 (depends on 40)

The Ethernet switch of claim 40, wherein the second packet number has a binary value.

### Claim 42

A flow controller comprising:
a bandwidth calculator configured to count at least one set of packets and calculate at least a first packet number, the first packet number being—a second packet number+a third packet number—, the second packet number corresponding to a length of previously accumulated packets, and the third packet number corresponding to a length of a present packet;
a comparator configured to compare the first packet number with a fourth packet number; and
a flow control signal generator which receives the comparison result of the comparator and generates a packet flow control signal corresponding to the comparison result.

### Claim 43

A method for controlling a flow of data comprising:
counting at least one set of packets received;
calculating a first packet number from the at least one set of packets counted, the first packet number being—a second packet number+a third packet number—, the second packet number corresponding to a length of previously accumulated packets, and the third packet number corresponding to a length of a present packet;
comparing the first packet number to a fourth packet number; and
generating a packet flow control signal corresponding to the comparison result.

### Claim 44

A bandwidth calculator comprising:
a transmission receipt bandwidth calculator, which calculates a first packet number corresponding to a length of a set of packets, the first packet number being—a second packet number+a third packet number—, the second packet number corresponding to a length of previously accumulated packets, and the third packet number corresponding to a length of a present packet; and
a port bandwidth calculator, which calculates a fourth packet number corresponding to a bandwidth assigned to at least one port.

### Claim 45 (depends on 44)

The bandwidth calculator of claim 44, further comprising:
at least one port controller configured to receive a first set of packets and compare the first packet number with the fourth packet number and generate a packet flow control signal based on the comparison result, where the first packet number is calculated in units of M bytes, M being an integer≧64 bytes.

### Claim 46 (depends on 45)

The bandwidth calculator of claim 45, wherein the at least one port controller includes,
a comparator configured to compare the first packet number with the fourth packet number, and
a flow control signal generator configured to generate a packet flow control signal.

### Claim 47 (depends on 45)

The bandwidth calculator of claim 45, further comprising:
a packet memory configured to store the set of packets; and
a look-up section that is configured to receive the set of packets from the at least one port controller and generate a look-up table containing at least one source address and destination address from the set of packets; and
a queue manager configured to monitor a condition of the packet memory and generate packet transmission information based on the look-up table, and transmit information representing the condition of the packet memory to the at least one port controller.

### Claim 48

A flow control signal generator comprising:
a transmission flow control signal generator, which generates a packet flow control signal when a first packet number is greater than a second packet number, the first packet number being—a third packet number+a fourth packet number—, the third packet number corresponding to a length of previously accumulated packets, and the fourth packet number corresponding to a length of a present packet; and
a receipt flow control signal generator, which generates a pseudo packet to prevent packets from being transmitted if the first packet number is greater than the second packet number.

### Claim 49 (depends on 48)

The flow control signal generator of claim 48, including a bandwidth calculator further comprising:
a transmission receipt bandwidth calculator, which calculates a first packet number corresponding to a length of a set of packets; and
a port bandwidth calculator, which calculates a second packet number corresponding to a bandwidth assigned to at least one port.

### Claim 50 (depends on 49)

The flow control signal generator of claim 49, further comprising:
at least one port controller configured to receive a first set of packets and compare the first packet number with the second packet number and generate a packet flow control signal based on the comparison result, where the first packet number is calculated in units of M bytes, M being an integer, and M≧64.

### Claim 51 (depends on 50)

The flow control signal generator of claim 50, wherein the at least one port controller includes,
a comparator configured to compare the first packet number with the second packet number, and
a flow control signal generator configured to generate a packet flow control signal.

### Claim 52 (depends on 49)

The flow control signal generator of claim 49, further comprising:
a packet memory configured to store the first set of packets; and
a look-up section that is configured to receive the first set of packets from the at least one port controller and generate a look-up table containing source address and destination address information from the first set of packets; and
a queue manager configured to monitor a condition of the packet memory and generate packet transmission information based on the look-up table, and transmit information representing the condition of the packet memory to the at least one port controller.

### Claim 53

A method for controlling a flow control signal generator comprising:
generating a packet flow control signal when a first packet number is greater than a second packet number, the first packet number being—a third packet number+a fourth packet number—, the third packet number corresponding to a length of previously accumulated packets, the fourth packet number corresponding to a length of a present packet; and
generating a pseudo packet to prevent packets from being transmitted from the port if the first packet number is greater than the second packet number.
