Per-packet jamming in a multi-port bridge for a local area network
First Claim
1. A multi-port bridge for interconnecting a plurality of segments of a local area network, the multi-port bridge comprising:
- a. a source port for receiving a packet to be bridged by the multi-port bridge;
b. a control circuit coupled to the source port, the control circuit for assigning a location within a memory device to the packet; and
c. a destination port coupled to the source port, the destination port for transmitting the packet to a destination node, wherein the destination port includes a memory pointer buffer for storing an indicia of the location assigned to the packet, wherein a jam request is transmitted by the destination port in response to an amount of space available in the memory pointer buffer being less than a predetermined amount.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique for controlling the flow of packets in a multi-port bridge according to availability of resources within the bridge. The bridge includes a memory for storing packets and a plurality of ports. Each port includes a receive buffer, a transmit buffer and a memory pointer buffer. A data packet is received by the receive buffer of a port. As the packet is still being received, a look-up table is utilized to determine which is the appropriate destination port for the packet. If the memory pointer buffer in the destination port is nearly full, the destination port generates a jam request. The source port receives the jam request and, in response, discards the incoming packet and sends a jam signal. Otherwise, the memory pointer is stored in the destination port until the packet can be retrieved from the memory for transmission by the destination port. Because packets are not stored in the ports, the receive buffer and the transmit buffer will not become full and, thus, need not be checked to determine whether to transmit a jam signal. Instead, only the memory pointer buffer in the destination port for a packet need to checked to determine whether to transmit a jam signal.
186 Citations
33 Claims
-
1. A multi-port bridge for interconnecting a plurality of segments of a local area network, the multi-port bridge comprising:
-
a. a source port for receiving a packet to be bridged by the multi-port bridge; b. a control circuit coupled to the source port, the control circuit for assigning a location within a memory device to the packet; and c. a destination port coupled to the source port, the destination port for transmitting the packet to a destination node, wherein the destination port includes a memory pointer buffer for storing an indicia of the location assigned to the packet, wherein a jam request is transmitted by the destination port in response to an amount of space available in the memory pointer buffer being less than a predetermined amount. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A multi-port bridge for interconnecting a plurality of segments of a local area network, the multi-port bridge comprising:
-
a. a switch engine for controlling bridging of packets to be bridged by the multi-port bridge; b. a memory device coupled to the switch engine for temporarily storing the packets wherein each stored packet corresponds to a location within the memory device; and c. a plurality of ports, each port coupled to the memory device and to a respective one of the plurality of segments of the local area network, wherein each port includes a memory pointer buffer for storing indica of the location within the memory device for each stored packet to be transmitted by the port and wherein a jam signal is transmitted by the multi-port bridge in response to an amount of free space available in the memory pointer buffer. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A method of controlling flow of packets in a multi-port bridge having a plurality of ports, the multi-port bridge for interconnecting a plurality of segments of a local area network, the method comprising steps of:
-
a. receiving a destination address for a packet in a source port; b. determining a destination port for the packet based upon the destination address; c. assigning a location in a memory device to the packet; d. forming indicia of the location; e. determining whether the destination port is available to receive the indicia; and f. if the destination port is available to receive the indicia, receiving the indicia in the destination port, otherwise, sending a jam signal to a segment associated with the source port. - View Dependent Claims (19, 20, 21, 22, 23)
-
-
24. A method of controlling flow of packets in a multi-port bridge having a plurality of ports interconnected to a memory device by a communication bus, the multi-port bridge for interconnecting a plurality of segments of a local area network, the method comprising steps of:
-
a. receiving a packet into a receive buffer in a source port for the packet, the packet having a destination address, a source address and a data field and the packet being received from a segment associated with the source port; b. looking-up the destination address in a table for determining a destination port for the packet; c. assigning a location in the memory device to the packet; d. forming a triplet for the packet wherein the triplet includes a first field for identifying the source port, a second field for identifying the destination port, and a third field for identifying a starting address assigned to the packet in the memory device; e. placing the triplet on the communication bus a first time; f. determining whether the destination port is available to receive the indicia; and g. if the destination port is not available to receive the indica, performing steps of; (1) placing a jam request on the communication bus; and (2) sending a jam signal to the segment associated with the source port in response to the jam request; h. if the destination port is available to receive the indica, performing steps of; (1) loading the packet into the memory device at the location in the memory device assigned to the packet; (2) placing the triplet on the communication bus a second time; (3) receiving the triplet into a triplet buffer in the destination port; (4) receiving the packet into a transmit buffer in the destination port from the location in the memory device; and (5) transmitting the packet to a segment associated with the destination port for the packet. - View Dependent Claims (25, 26, 27, 28)
-
-
29. A method of controlling flow of packets in a multi-port bridge having a plurality of ports interconnected to a memory device by a communication bus, the multi-port bridge for interconnecting a plurality of segments of a local area network, the method comprising steps of:
-
a. receiving a packet into a receive buffer in a source port for the packet, the packet having a destination address, a source address and a data field and the packet being received from a segment associated with the source port; b. looking-up the destination address in a table for determining one or more destination ports for the packet; c. assigning a location in the memory device to the packet; d. forming a bit-map for the packet wherein each of the plurality of ports is assigned a respective one signal line of the communication bus, the bit-map including a logic level for each signal line assigned to a port wherein the logic level is indicative of whether the respective port is a destination port for the packet; e. placing the bit-map on the communication bus; f. determining whether the destination port is available to receive indicia of the memory location assigned to the packet; and g. if the destination port is not available to receive the indicia, performing steps of; (1) placing a jam request on the communication bus; and (2) sending a jam signal to the segment associated with the source port in response to the jam request; h. if the destination port is available to receive the indicia, performing steps of; (1) loading the packet into the memory device at the location in the memory device assigned to the packet; (2) placing the indicia on the communication bus; (3) receiving the indicia into a buffer in the destination port; (4) receiving the packet into a transmit buffer in the destination port from the location in the memory device; and (5) transmitting the packet to a segment associated with the destination port for the packet. - View Dependent Claims (30, 31, 32, 33)
-
Specification