Network switch with dynamic backpressure per port
First Claim
1. A network switch, comprising:
- a plurality of network ports that send and receive data packets, each of said plurality of network ports including core logic that receives a backpressure indication and that transmits a jamming sequence to terminate data packet transmission;
a memory that temporarily stores data packets received from any of said plurality of network ports; and
a switch manager coupled to said memory and said plurality of network ports that determines at least one threshold condition of said memory, that determines if a new data packet being received by one of said plurality of network ports is to be stored in said memory for transmission by another of said plurality of network ports, and if so, that provides said backpressure indication to said one of said plurality of network ports to terminate said new data packet if said at least one threshold condition would be violated by storage of said new data packet.
4 Assignments
0 Petitions
Accused Products
Abstract
A network switch including a plurality of network ports for communicating data packets, each port including logic for receiving a backpressure indication and for transmitting a jamming sequence to terminate transmission of a data packet being received. The switch includes a memory for temporarily storing data packets received by the ports, and a switch manager for determining one or more threshold conditions of the memory, for determining if a new data packet being received is to be stored in the memory for transmission by another port, and if so, for providing the backpressure indication to terminate the new data packet if a backpressure signal indicates that a threshold condition would be violated by storage of the new data packet. The jamming sequence is not sent if the packet is not intended to be stored in the switch, so that network devices coupled to a single port may continue to communicate to each other. The remaining ports of the switch are not effected. The threshold conditions include, among others, a maximum number of sectors storing data packets received by a port in a receive sector chain, a maximum number of data packets stored in the memory in a transmit packet chain, a minimum number of free sectors available in the memory for storage of data packets, and a maximum number of broadcast data packets stored in the memory.
-
Citations
27 Claims
-
1. A network switch, comprising:
-
a plurality of network ports that send and receive data packets, each of said plurality of network ports including core logic that receives a backpressure indication and that transmits a jamming sequence to terminate data packet transmission;
a memory that temporarily stores data packets received from any of said plurality of network ports; and
a switch manager coupled to said memory and said plurality of network ports that determines at least one threshold condition of said memory, that determines if a new data packet being received by one of said plurality of network ports is to be stored in said memory for transmission by another of said plurality of network ports, and if so, that provides said backpressure indication to said one of said plurality of network ports to terminate said new data packet if said at least one threshold condition would be violated by storage of said new data packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
a network interface that receives and transmits data packets on a corresponding network segment and that provides said jamming sequence onto said corresponding network segment in response to a collision command; and
a data interface coupled to said switch manager and said network interface that sends and receives data and that detects said backpressure indication and provides said collision command.
-
-
3. The network switch of claim 1, further comprising:
-
a data bus coupled to said plurality of network ports and to said switch manager; and
said switch manager executing a backpressure cycle on said data bus to provide said backpressure indication.
-
-
4. The network switch of claim 1 for receiving and transmitting data packets, each data packet including a source address and a destination address, further comprising:
-
said memory further storing each source address received and a corresponding port number identifying one of said plurality of network ports; and
said switch manager including control logic that provides said backpressure indication to said one of said plurality of network ports receiving said new data packet if the destination address of said new data packet is not found in said memory, and that provides said backpressure indication if the destination address is found in said memory and a port number corresponding to the destination address does not identify said one of said plurality of network ports.
-
-
5. The network switch of claim 4, wherein said control logic provides said backpressure indication if the destination address indicates a broadcast packet.
-
6. The network switch of claim 4, wherein said switch manager further comprises:
-
polling logic coupled to said control logic that periodically determines whether each of said plurality of network ports is available for transmitting data packets; and
said control logic determining if said one of said plurality of network ports receiving said new data packet and said destination network port support cut-through mode, and not providing said backpressure indication if said destination network port is available for receiving and transmitting said new data packet.
-
-
7. The network switch of claim 1, wherein said memory is divided into a plurality of sectors, and wherein said at least one threshold condition includes a maximum number of data packet sectors storing data packets received by a network port.
-
8. The network switch of claim 1, wherein said at least one threshold condition includes a maximum number of data packets stored in said memory to be transmitted by a network port.
-
9. The network switch of claim 1, wherein said at least one threshold condition includes a minimum number of free sectors available in said memory for storage of data packets.
-
10. The network switch of claim 1, wherein said at least one threshold condition includes a maximum number of broadcast data packets stored in said memory.
-
11. A network system, comprising:
-
a plurality of networks, each including at least one data network device coupled through a network segment that sends and receives data packets; and
a network switch coupled to said plurality of networks that transfers data packets, said network switch comprising;
a plurality of network ports, each including;
a network interface that receives and transmits data packets on a corresponding network segment and that provides a jamming sequence onto said corresponding network segment in response to a collision command; and
a data bus interface coupled to said network interface that sends and receives data and that detects a backpressure cycle and provides said collision command;
a data bus coupled to said data bus interface of each of said plurality of network ports;
a memory that temporarily stores data packets received by any of said plurality of network ports and that stores addresses of network devices and associated network port numbers; and
a switch manager coupled to said data bus and said memory, comprising;
a buffer that receives and stores a packet header of a new data packet received by one of said plurality of network ports, said packet header including a source address and a destination address;
control logic coupled to said data bus and said buffer that transfers said packet header to said buffer and that asserts a hash request signal, that detects packet status signals and a backpressure signal and that executes said backpressure cycle on said data bus to said one of said plurality of network ports receiving said new packet if said backpressure signal is provided and if said packet status signals indicate that said new data packet must otherwise be sent to said memory; and
hash logic coupled to said buffer, said control logic and said memory that detects said hash request signal and that respondingly determines whether said new data packet would violate at least one threshold condition of said memory if transferred to said memory and asserts said backpressure signal indicative thereof, and that determines whether said new data packet is to be dropped, forwarded, or broadcasted and asserts said packet status signals indicative thereof. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
data bus control logic coupled to said buffer and said data bus to execute cycles on said data bus; and
arbitration logic coupled to said data bus control logic and said hash logic to determine cycles to be executed by said data bus control logic.
-
-
13. The system switch of claim 12, wherein said arbitration logic further comprises:
polling logic coupled to said data bus control logic and said data bus that periodically determines whether each of said plurality of network ports is available for transmitting data packets.
-
14. The network system of claim 11, further comprising:
-
said memory storing said at least one threshold condition; and
said hash logic further comprising;
a memory controller coupled to said memory that retrieves at least one threshold value indicative of said at least one threshold condition; and
a hash controller coupled to said buffer, said memory controller and said control logic that receives said hash request, requests threshold conditions from said memory controller and that asserts said backpressure and packet status signals.
-
-
15. The network system of claim 11, wherein said at least one threshold condition includes a maximum number of memory sectors storing data packets received by a network port.
-
16. The network system of claim 11, wherein said at least one threshold condition includes a maximum number of data packets stored in said memory to be transmitted by a network port.
-
17. The network system of claim 11, wherein said at least one threshold condition includes a minimum number of free sectors available in said memory for storage of data packets.
-
18. The network system of claim 11, wherein said at least one threshold condition includes a maximum number of broadcast data packets stored in said memory.
-
19. A network switch, comprising:
-
a plurality of network ports that send and receive data packets, each of said plurality of network ports including core logic that receives a backpressure indication and that transmits a jamming sequence to terminate data packet transmission;
a memory that temporarily stores data packets received from any of said plurality of network ports; and
a switch manager coupled to said memory and said plurality of network ports that determines at least one threshold condition of said memory and that provides said backpressure indication to said one of said plurality of network ports to terminate said new data packet if said at least one threshold condition would be violated by storage of said new data packet.
-
-
20. A method of performing dynamic backpressure for a network switch having a memory for storing received data packets for transmission, comprising:
-
receiving a packet header of a data packet at a source port;
determining if storage of the data packet in the memory would violate at least one threshold parameter of the memory; and
sending a jamming sequence by the source port to terminate the data packet if such storage would violate the at least one threshold parameter.
-
-
21. A method for a network switch to perform at least one backpressure indication comprising:
-
receiving a packet header of a data packet;
determining if the data packet is to be stored in the network switch;
examining the packet header in light of existing data packets that are stored in the network switch to determine if the network switch would violate a threshold condition by storing the data packet in the network switch; and
broadcasting a jamming sequence to terminate the data packet if the data packet is to be stored in the network switch and storing the data packet in the network switch would violate the threshold condition. - View Dependent Claims (22, 23, 24, 25, 26, 27)
receiving a destination address from the packet header; and
determining if the destination address is a unicast address.
-
-
23. The method of claim 22, the destination address being unicast, wherein said determining if the data packet is to be stored in the network switch further comprises:
-
determining if the destination address is known;
if the destination address is known, retrieving a destination port number; and
comparing a source port number and the destination port number.
-
-
24. The method of claim 23, the destination address being known and the source and destination ports being different, wherein said examining the packet header in light of existing data packets that are stored in the network switch to determine if the network switch would violate the threshold condition by storing the data packet in the network switch comprises:
-
comparing the number of memory sectors storing data packets received by the source port with a maximum number of receive sectors for the source port; and
comparing the number of data packets stored in the network switch for transmission by the destination port with a maximum number of transmit packets for the destination port.
-
-
25. The method of claim 23, the destination address being known and the source and destination ports being different, further comprising:
-
determining if the source and destination ports both support and are compatible with cut-through mode of operation; and
determining if the destination port is available for transmission of the data packet.
-
-
26. The method of claim 23, the destination address being unknown, wherein said examining the packet header in light of existing data packets that are stored in the network switch to determine if the network switch would violate the threshold condition by storing the data packet in the network switch further comprises:
-
comparing the number of memory sectors storing data packets received by the source port with a maximum number of receive sectors for the source port;
comparing the number of data packets stored in the network switch for transmission by each destination port of the data packet with corresponding maximum numbers of transmit packets; and
comparing the number of broadcast packets currently stored in the network switch with a maximum number of broadcast packets.
-
-
27. The method of claim 22, the destination address not being unicast, wherein said step of examining the packet header in light of existing data packets that are stored in the network switch to determine if the network switch would violate the threshold condition by storing the data packet in the network switch further comprises:
-
comparing the number of memory sectors storing data packets received by the source port with a maximum number of receive sectors for the source port;
comparing the number of data packets stored in the network switch for transmission by each destination port of the data packet with corresponding maximum numbers of transmit packets; and
comparing the number of broadcast packets currently stored in the network switch with a maximum number of broadcast packets.
-
Specification