Ingress based headroom buffering for switch architectures
First Claim
1. A method comprising:
- in a network device;
maintaining a packet buffer configured to store network traffic received through a first ingress port of a first network interface from over a network, and destined for an egress port;
determining that the network traffic stored in the packet buffer exceeds a fill threshold, and in response;
sending a headroom buffering indication to the first network interface; and
selectively allocating as additional buffer memory, by the first network interface, at least a portion of an ingress buffer allocated to the ingress port to store in-flight packet data not yet received from over the network by the first network interface, the ingress buffer being separate from the packet buffer and being allocated to store in-flight packet data instead of the packet buffer.
6 Assignments
0 Petitions
Accused Products
Abstract
A network device performs ingress based headroom buffering. The network device may be configured as an output queue switch and include a main packet buffer that stores packet data according to a destination egress port. The network device may implement one or more ingress buffers associated with ingress data ports in the network device. The ingress buffers may be separate from the main packet buffer. The network device may identify a flow control condition triggered by an ingress data port, such as when an amount of data stored in the main packet buffer received through the ingress data port exceeds a fill threshold. In response, the network device may send a flow control message to a link partner to cease sending network traffic through the ingress data port. The network device may store in-flight data from the link partner in an ingress buffer instead of the main packet buffer.
19 Citations
22 Claims
-
1. A method comprising:
-
in a network device; maintaining a packet buffer configured to store network traffic received through a first ingress port of a first network interface from over a network, and destined for an egress port; determining that the network traffic stored in the packet buffer exceeds a fill threshold, and in response; sending a headroom buffering indication to the first network interface; and selectively allocating as additional buffer memory, by the first network interface, at least a portion of an ingress buffer allocated to the ingress port to store in-flight packet data not yet received from over the network by the first network interface, the ingress buffer being separate from the packet buffer and being allocated to store in-flight packet data instead of the packet buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A device comprising:
-
a packet memory configured to store network traffic received over a network, the network traffic stored according to destination data ports for the network traffic; data port logic comprising; a processor; an ingress data port; and a packet buffer associated with the ingress data port; and where the data port logic is executable by the processor to forward network traffic received through the ingress data port for processing and storage in the packet buffer; buffering logic executable by the processor to; determine that an amount of the network traffic received through the ingress data port and stored in the packet buffer exceeds a threshold amount, and in response; send a buffering indication to the data port logic; and where the data port logic is further executable by the processor to, in response to receipt of the buffering indication, selectively allocate at least a portion of an input buffer as additional storage of network traffic and store subsequent network traffic received through the ingress data port into the allocated at least a portion of the input buffer instead of forwarding the subsequent network traffic for processing and storage in the packet buffer. - View Dependent Claims (13, 14, 15, 21)
-
-
16. A device comprising:
-
a network interface configured to communicate across a network with a link partner, the network interface comprising a plurality of ingress ports; and a distributed packet memory architecture comprising; a primary packet memory comprising; a first memory block configured to store packet data received through a first ingress port and destined for a first egress port; a second memory block configured to store packet data received through the first ingress port and destined for a second egress port different from the first egress port; and an ingress buffer separate from the packet memory and allocated to the first ingress port; and system logic in communication with the packet memory and the ingress buffer, the system logic configured to; selectively allocate a portion of the ingress buffer as additional memory space for inflight packet data not yet received from over a network at the first ingress port, an amount of the ingress buffer allocated as additional memory space instead of an allocation in the first memory block and second memory block. - View Dependent Claims (17, 18, 19, 20, 22)
-
Specification