This is generally related to the technical field of networking. More specifically, this disclosure is related to systems and methods for facilitating a network interface controller (NIC) with fine-grain flow control (FGFC) support.
Related Art
As network-enabled devices and applications become progressively more ubiquitous, various types of traffic as well as the ever-increasing network load continue to demand more performance from the underlying network architecture. For example, applications such as high-performance computing (HPC), media streaming, and Internet of Things (JOT) can generate different types of traffic with distinctive characteristics. As a result, in addition to conventional network performance metrics such as bandwidth and delay, network architects continue to face challenges such as scalability, versatility, and efficiency.
A network interface controller (NIC) capable of facilitating fine-grain flow control (FGFC) is provided. The NIC can be equipped with a network interface, an FGFC logic block, and a traffic management logic block. During operation, the network interface can determine that a control frame from a switch is associated with FGFC. The network interface can then identify a data flow indicated in the control frame for applying the FGFC. The FGFC logic block can insert information from the control frame into an entry of a data structure stored in the NIC. The traffic management logic block can identify the entry in the data structure based on one or more fields of a packet belonging to the flow. Subsequently, the traffic management logic block can determine whether the packet is allowed to be forwarded based on the information in the entry.
In the figures, like reference numerals refer to the same figure elements.
Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present disclosure. Thus, the present invention is not limited to the embodiments shown.
Overview
The present disclosure describes systems and methods that facilitate fine-grain flow control (FGFC) in a network interface controller (NIC). The NIC allows a host to communicate with a data-driven network. The network can accommodate dynamic data traffic with fast, effective congestion control by maintaining state information of individual packet streams. More specifically, packets injected into the network of switches can be categorized into streams, which can be mapped to their layer-2, layer-3, or other protocol-specific header information. Each stream can be marked by a distinctive identifier that is local to an input port of a switch, and provided with a stream-specific input buffer so that each stream can be individually flow-controlled. In addition, packets of a respective stream can be acknowledged upon reaching the egress point of the network, and the acknowledgment packets can be sent back to the ingress point of the stream along the same data path in the reverse direction. As a result, each switch can obtain state information of active packet streams it is forwarding and can perform highly responsive, stream-specific flow control. Such flow control can allow the network to operate at higher capacity while providing versatile traffic-engineering capabilities.
The embodiments described herein solve the problem of flow-level congestion management by (i) identifying a congestion-causing flow in the NIC, and (ii) throttling the forwarding rate for packets belonging to the flow at the NIC.
Network congestion in a network, such as a switch fabric, may exhaust packet buffers of the switches in the network. With existing technologies, a switch facing congestion can instruct an upstream switch to pause or slow the packet injection rate for a specific class of traffic. However, this class-level congestion control approach may impact all data flows of the class. For example, traffic from a number of applications can belong to the same class of traffic. Consequently, packets that are not causing the congestion can be adversely affected by such a congestion control policy.
To solve this problem, the congested switch can convey flow-specific congestion notifications to a link partner, which can be a NIC on a host device. The congestion notification can generate a “back pressure” on a sequence of packets that belongs to the congestion-causing flow (e.g., an Internet Protocol (IP) level flow or an application-level flow) instead of throttling traffic from all applications and services of a traffic class. By identifying flow-level congestion, the switch can allow the NIC to facilitate fine-grain flow control (FGFC).
In some embodiments, upon detecting congestion, a switch can identify a sequence of packets that have caused that congestion. Such a sequence of packets can be referred to as a flow. The switch can then provide this information to the link partner, such as a NIC, by sending a “turn off” control frame, which can be referred to as an XOFF frame. Upon receiving the XOFF frame, the NIC can refrain from sending packets for that flow and buffer the packets in the NIC. The NIC then relies on the switch to manage the flow. Based on the congestion associated with the flow, the switch may send control frames, which can be referred to as credit frames, to the NIC.
Upon receiving the credit frames, the NIC can forward more packets belonging to the flow to the switch based on the respective amount indicated by the credit frames. This allows the NIC to limit the number of packets for the flow while facilitating regular forwarding for other flows. If the congestion is mitigated, the switch can send a “turn on” control frame, which can be referred to as an XON frame. Upon receiving the XON frame, the NIC releases the flow from FGFC and initiates regular forwarding for the packets belonging to the flow.
One embodiment of the present invention provides a NIC. The NIC can be equipped with a network interface, an FGFC logic block, and a traffic management logic block. During operation, the network interface can determine that a control frame from a switch is associated with FGFC. The network interface can then identify a data flow indicated in the control frame for applying the FGFC. The FGFC logic block can insert information from the control frame into an entry of a data structure stored in the NIC. The traffic management logic block can identify the entry in the data structure based on one or more fields of a packet belonging to the flow. Subsequently, the traffic management logic block can determine whether the packet is allowed to be forwarded based on the information in the entry.
In a variation on this embodiment, the network interface can determine whether to process the control frame at the network interface based on a type of the control frame.
In a further variation, the network interface can provide information from one or more fields of the control frame to the traffic management logic block based on the type of the control frame.
In a variation on this embodiment, the network interface can generate an event for the flow based on a duration value and a credit value from the information in the control frame. The event can be an internal control message that can indicate whether to initiate or terminate the FGFC for the flow.
In a variation on this embodiment, the FGFC logic block can insert the information into the entry by: (i) determining a duration value for applying the FGFC to the flow based on the information in the control frame, and (ii) updating a duration counter in the entry based on the duration value.
In a variation on this embodiment, the FGFC logic block can insert the information into the entry by: (i) determining credit information, which indicates an amount of data of the flow that can be forwarded, from the information in the control frame, and (ii) updating a duration counter in the entry based on the duration value.
In a further variation, the traffic management logic block can allocate the packet to a message chopping unit (MCU) of a plurality of MCUs. The traffic management logic block can then arbitrate among the plurality of MCUs to select an MCU for forwarding the packet based on the credit value in the entry.
In a variation on this embodiment, the FGFC logic block can insert the information into the entry by: (i) determining whether one or more fields match an existing entry in the data structure, (ii) determining a new entry in the data structure if no match is found, and (iii) inserting information from the one or more fields into the new entry.
In a further variation, the FGFC logic block can determine whether the data structure has availability for a new entry. If the data structure does not have availability, the FGFC logic block can discard the control frame.
In a variation on this embodiment, the entry can include one or more of: an identifier, which can be the index of the entry, of the flow, a validity flag indicating whether the entry is valid, a duration counter indicating a duration value for applying FGFC to the flow, a credit value indicating an amount of data of the flow that can be forwarded, and an event queue identifier.
In a variation on this embodiment, the FGFC logic block can be associated with the network interface or the traffic management logic block.
In this disclosure, the description in conjunction with
In this disclosure, packet streams can also be referred to as “packet flows,” or simply “flows.” The data path traversed by a flow, together with its configuration information maintained by switches, can be referred to as a “flow channel.” Furthermore, the terms “buffer” and “queue” are used interchangeably in this disclosure.
Exemplary NIC Architecture
In some embodiments, HI 210 can be a peripheral component interconnect (PCI) or a peripheral component interconnect express (PCIe) interface. HI 210 can be coupled to a host via a host connection 201, which can include N (e.g., N can be 16 in some chips) PCIe Gen 4 lanes capable of operating at signaling rates up to 25 Gbps per lane. HNI 210 can facilitate a high-speed network connection 203, which can communicate with a link in switch fabric 100 of
NIC 202 can support one or more of: point-to-point message passing based on Message Passing Interface (MPI), remote memory access (RMA) operations, offloading and progression of bulk data collective operations, and Ethernet packet processing. When the host issues an MPI message, NIC 202 can match the corresponding message type. Furthermore, NIC 202 can implement both eager protocol and rendezvous protocol for MPI, thereby offloading the corresponding operations from the host.
Furthermore, the RMA operations supported by NIC 202 can include PUT, GET, and Atomic Memory Operations (AMO). NIC 202 can provide reliable transport. For example, if NIC 202 is a source NIC, NIC 202 can provide a retry mechanism for idempotent operations. Furthermore, connection-based error detection and retry mechanism can be used for ordered operations that may manipulate a target state. The hardware of NIC 202 can maintain the state necessary for the retry mechanism. In this way, NIC 202 can remove the burden from the host (e.g., the software). The policy that dictates the retry mechanism can be specified by the host via the driver software, thereby ensuring flexibility in NIC 202.
Furthermore, NIC 202 can facilitate triggered operations, a general-purpose mechanism for offloading, and progression of dependent sequences of operations, such as bulk data collectives. MC 202 can support an application programming interface (API) (e.g., libfabric API) that facilitates fabric communication services provided by switch fabric 100 of
NIC 202 can include a Command Queue (CQ) unit 230. CQ unit 230 can be responsible for fetching and issuing host side commands. CQ unit 230 can include command queues 232 and schedulers 234. Command queues 232 can include two independent sets of queues for initiator commands (PUT, GET, etc.) and target commands (Append, Search, etc.), respectively. Command queues 232 can be implemented as circular buffers maintained in the memory of NIC 202. Applications running on the host can write to command queues 232 directly. Schedulers 234 can include two separate schedulers for initiator commands and target commands, respectively. The initiator commands are sorted into flow queues 236 based on a hash function. One of flow queues 236 can be allocated to a unique flow. Furthermore, CQ unit 230 can further include a triggered operations module (or logic block) 238, which is responsible for queuing and dispatching triggered commands.
Outbound transfer engine (OXE) 240 can pull commands from flow queues 236 in order to process them for dispatch. OXE 240 can include an address translation request unit (ATRU) 244 that can send address translation requests to address translation unit (ATU) 212. ATU 212 can provide virtual to physical address translation on behalf of different engines, such as OXE 240, inbound transfer engine (IXE) 250, and event engine (EE) 216. ATU 212 can maintain a large translation cache 214. ATU 212 can either perform translation itself or may use host-based address translation services (ATS). OXE 240 can also include message chopping unit (MCU) 246, which can fragment a large message into packets of sizes corresponding to a maximum transmission unit (MTU). MCU 246 can include a plurality of MCU modules. When an MCU module becomes available, the MCU module can obtain the next command from an assigned flow queue. The received data can be written into data buffer 242. The MCU module can then send the packet header, the corresponding traffic class, and the packet size to traffic shaper 248. Shaper 248 can determine which requests presented by MCU 246 can proceed to the network.
Subsequently, the selected packet can be sent to packet and connection tracking (PCT) 270. PCT 270 can store the packet in a queue 274. PCT 270 can also maintain state information for outbound commands and update the state information as responses are returned. PCT 270 can also maintain packet state information (e.g., allowing responses to be matched to requests), message state information (e.g., tracking the progress of multi-packet messages), initiator completion state information, and retry state information (e.g., maintaining the information required to retry a command if a request or response is lost). If a response is not returned within a threshold time, the corresponding command can be stored in retry buffer 272. PCT 270 can facilitate connection management for initiator and target commands based on source tables 276 and target tables 278, respectively. For example, PCT 270 can update its source tables 276 to track the necessary state for reliable delivery of the packet and message completion notification. PCT 270 can forward outgoing packets to HNI 220, which stores the packets in outbound queue 222.
NIC 202 can also include an IXE 250, which provides packet processing if NIC 202 is a target or a destination. IXE 250 can obtain the incoming packets from HNI 220. Parser 256 can parse the incoming packets and pass the corresponding packet information to a List Processing Engine (LPE) 264 or a Message State Table (MST) 266 for matching. LPE 264 can match incoming messages to buffers. LPE 264 can determine the buffer and start address to be used by each message. LPE 264 can also manage a pool of list entries 262 used to represent buffers and unexpected messages. MST 266 can store matching results and the information required to generate target side completion events. MST 266 can be used by unrestricted operations, including multi-packet PUT commands, and single-packet and multi-packet GET commands.
Subsequently, parser 256 can store the packets in packet buffer 254. IXE 250 can obtain the results of the matching for conflict checking. DMA write and AMO module 252 can then issue updates to the memory generated by write and AMO operations. If a packet includes a command that generates target side memory read operations (e.g., a GET response), the packet can be passed to the OXE 240. NIC 202 can also include an EE 216, which can receive requests to generate event notifications from other modules or units in NIC 202. An event notification can specify that either a fill event or a counting event is generated. EE 216 can manage event queues, located within host processor memory, to which it writes full events. EE 216 can forward counting events to CQ unit 230.
Congestion Management in NIC
The FGFC identifier can include one or more of: a virtual network identifier (VNI), a VLAN ID, IPv4 flow label, and IPv6 flow label. The FGFC FID can include a predetermined value associated with a respective FGFC frame. The PID can be expressed based on an OUI, which can indicate that the link partners are from supported vendors and may support the same protocol. Instead of specifying a traffic class for flow control, NIC 202 can identify a flow based on the VNI, which can be based on a source IP address and a hash over a number of fields of a packet, such as a protocol type, source and destination IP addresses, and source and destination ports, etc. VNIs can be added by NIC 202 if NIC 202 is a source NIC, and can be removed by NIC 202 if NIC 202 is a destination NIC. VNIs can be checked by the ingress and egress switches of a switch fabric.
NIC 202 can facilitate Ethernet-based or an API-based FGFC. For example, if the link partner of NIC 202 supports Portals API, NIC 202 can provide API-based FGFC for the link partner. On the other hand, if the link partner supports Ethernet-based communication, NIC 202 can provide Ethernet-based FGFC. Upon receiving frame 280, HNI 220 can inspect a number of fields of frame 280, such as the DMAC address, Ethertype, the PID, and the FID, to determine that frame 280 is an FGFC frame. In some embodiments, HNI 220 can maintain a set of control and status registers (CSRs) to store the expected pieces of information and match the fields with the corresponding CSR. For example, the DMAC address field should match a CSR that can store a MAC address of NIC 202.
If HNI 220 determines that frame 280 is an FGFC frame, HNI 220 inspects the FGFC type field of frame 280. The FGFC type can identify whether the FGFC frame is based on an API, such as portals API, or Ethernet, IPv4, or IPv6 protocol. HNI 220 can maintain a CSR for each of these types. If the FGFC type of frame 280 matches none of the types, HNI 220 can issue an error message and drop frame 280. If the FGFC type indicates API-based FGFC, HNI 220 can provide the pause period, FGFC credit value, and the lower portion of the identifier (e.g., the lower 16 bits) of frame 280 to OXE 240 for further processing. On the other hand, if the FGFC type indicates Ethernet, IPv4, or IPv6, HNI 220 can determine that frame 280 is an Ethernet-based FGFC frame. In some embodiments, HNI 220 can then process frame 280 in HNI 220. NIC 202 may also process frame 280 at any other element of NIC 202. For example, OXE 240 or CQ unit 230 in
FGFC cache 320 can have a plurality of entries, each of which can store information associated with a flow. For example, FGFC cache 320 can include a cache entry 322, which can include information associated with a flow, such as a valid field (e.g., a flag), a type field, a tag for the source IP address, an identifier field, an EQ identifier field, and a pause counter. The valid field can indicate whether entry 322 is valid. The type field can indicate an FGFC type for entry 322. The source IP address tag can indicate a type for a source IP address for entry 322. For example, the tag can incorporate an integer value from 0 to 3, each indicating a type of IP address. A value of 0 can indicate a layer-2 frame. The identifier field can store a 32-bit identifier from frame 300 associated with the tag. The EQ identifier field can store the EQ identifier obtained from the matched address. Furthermore, the pause counter can be decremented periodically based on the Ethernet pause standard. The pause counter can be loaded from an FGFC frame and decrement over time based on the pause quanta.
If HNI 220 can successfully match an address of frame 300 with an address stored in CSRs 310, HNI 220 can determine whether cache 320 is enabled. If cache 320 is disabled, each frame matching an address in CSRs 310 can generate an event (e.g., to be managed by EE 216 in
If the fields of frame 300 match a valid entry and frame 300 has a pause period of zero, HNI 220 can set that entry in cache 320 as invalid (e.g., by modifying the valid field). HNI 220 can then forward an event (e.g., to EE 216 in
If the fields of frame 300 do not match a valid entry, HNI 220 can determine whether frame 300 includes a non-zero pause period value and whether cache 320 has availability for a new entry (e.g., whether a cache line is available). If cache 320 has availability and frame 300 includes a non-zero pause period value, HNI 220 can generate an entry in cache 320 with the pause counter set to the pause period value in frame 320. HNI 220 can also forward an XOFF event that can include the credit value specified in frame 300. On the other hand, if cache 320 does not have availability and frame 300 includes a non-zero pause period value, HNI 220 can discard frame 300 without creating an event. If frame 300 includes a zero pause period value, HNI 220 can forward an XON event that can include the credit value specified in frame 300.
If an entry in cache 320 has a pause counter value below the pause quanta, HNI 220 can set a flag for the entry indicating that HNI 220 should create an XON event. HNI 220 can apply a round-robin arbitration process to select the entry. Subsequently, HNI 220 can invalidate the entry and forward an event. The event can indicate an XON status for the EQ identifier of the entry. However, if a subsequent FGFC frame arrives before the entry is selected via the arbitration, HNI 220 can update the pause counter in the entry and remove the request for arbitration for the entry. The EQ identifier from the entry can be used to locate the target event queue. In some embodiments, HNI 220 can perform the arbitration based on the clock of NIC 202 when there is no incoming Ethernet-based FGFC frame that matches an address and there is availability in queue 222.
Queue 222 allows HNI 220 HNI to process a small number of FGFC frames if EE 216 is backed up. Events forwarded from a prior state can be inserted into queue 222. If queue 222 is full, the generated event can be discarded. A respective entry of queue 222, such as entry 324, can include a return code, a type field, a tag for a source IP address, an identifier field, credit information, an XOFF indicator, an EQ identifier, and an event type. The return code can be set to a constant, which indicates a valid return. The type field can indicate whether frame 300 corresponds to Ethernet, IPv4, or IPv6. The tag for the source IP can indicate a type of IP address of the source address of frame 300. The respective values for the identifier and credit fields can be obtained from corresponding fields in frame 300. The XOFF indicator can indicate whether an XOFF event should be generated. The EQ identifier field can store the EQ identifier obtained from the matched address. Moreover, the event type field can be set to Ethernet. The respective values for the type, tag, identifier, and EQ identifier fields can be obtained from cache 320 if a cache timeout occurs for an XON event. Furthermore, the value of the credits field can be set to zero for the cache timeout event.
On the other hand, if the FGFC type indicates API-based FGFC, HNI 220 can provide information 350 associated with frame 300 to OXE 240 for further processing. Information 350 can include the pause period value, FGFC credit value, and the lower portion of the identifier (e.g., the lower 16 bits) of frame 300. OXE 240 can then store information 350 in an FGFC table 330. MC 202 can throttle packets belonging to a flow subjected to FGFC using table 330. Table 330 can include a plurality of entries. A respective entry of table 330, such as entry 332, can include a VNI field, a valid field (e.g., a flag), a credit field, and a pause counter. These fields can include 16 bits, 1 bit, 24 bits, and 32 bits, respectively.
OXE 240 can match the VNI field with an incoming FGFC packet and determine, from MCU 246, an MCU module that is allowed to send more packets. The valid field can indicate whether a VNI is valid. The credit field can store the sum of credit values received in the FGFC frames, such as frame 300. In some embodiments, each credit allows an MCU module to forward one byte. If the value of the credit field becomes negative, table 330 can have a shortage of credit to send a packet. The credit field can be associated with a maximum value (i.e., a maximum value to which the credit can be incremented). The pause counter can correspond to Ethernet Pause. The upper 16 bits can be loaded from frame 300. The lower 16 bits can represent a fraction that can be decremented over time based on the pause quanta.
Upon classifying frame 300 as an API-based FGFC frame, HNI 220 can pass frame 300 to OXE 240 for processing if table 330 is enabled. If frame 300 matches a valid entry for the VNI in frame 300 and frame 300 has a pause period value of zero, OXE 240 can mark the entry as invalid. Otherwise, if frame 300 matches a valid entry for the VNI in frame 300 and frame 300 has a non-zero pause period value, OXE 240 can increment the credit value in the entry based on the credit indicated in frame 300 and update the pause counter based on the pause value of frame 300. If frame 300 does not match a valid entry and table 330 has availability (e.g., a line in table 300 is available), OXE 240 can create an entry in table 330 by inserting the VNI, the credit value, and the pause value from frame 300 into the entry. The initial credit can be subtracted by a credit adjustment constant. In some embodiments, the default value for this constant can be determined as (MTU+maximum header size+FCS). Here, FCS indicates a frame check sequence. If frame 300 does not match a valid entry and table 330 does not have availability, OXE 240 can drop frame 300.
If no entry matches packet 360, OXE 240 can allow packet 360 to proceed and can be placed in output buffer 242. If an entry exists and the credit is not negative in the entry, OXE 240 can allow packet 360 to proceed and deduct an amount of credit from the credit field of the matching entry. The amount of credit can be determined as:
However, if an entry exists and the credit is negative, OXE 240 can set an FGFC flag for MCU module 306 and discards packet 360 (e.g., by disqualifying the selection of MCU module 306 in the arbitration process).
Because MCU module 306′s FGFC flag is set, arbitration module 340 can remove MCU module 306 from arbitration. OXE 240 can save the index of the corresponding entry (i.e., the entry that matched packet 360) of table 330. OXE 240 can then monitor the entry based on the index. If the entry becomes invalidated or the credit value in the entry is incremented to a non-negative value, OXE 240 can clear the FGFC flag of MCU module 306. When the FGFC flag is cleared, arbitration module 340 can include MCU module 306 in the arbitration process. Furthermore, when FGFC is applied to an MCU module, in addition to selecting the MCU module based on the credit during the arbitration process, that MCU module can be in an “in order” mode. Consequently, that MCU module may forward packets based on their order until that MCU module is subject to FGFC.
If the frame matches an entry in the FGFC cache and has a non-zero pause value, the HNI can process the frame based on the credit value. The HNI can update the pause counter in the entry based on the non-zero pause value from the frame and forward an XOFF event with the non-zero credit from the frame if the frame has a non-zero credit value in the frame (denoted with parentheses) (operation 416). On the other hand, HNI can update the pause counter in the entry based on the non-zero pause value from the frame without forwarding the XOFF event if the frame has a zero credit value in the frame (operation 416).
If the frame does not match an entry in the FGFC cache (operations 404 and 406), the HNI can check whether the cache has availability (operation 408). If the cache has availability, the HNI can create an entry with a pause counter based on the non-zero pause value from the frame and forward an XOFF event with the credit from the frame (operation 418). If the cache does not have availability, the HNI can check whether the frame has a non-zero pause value (operation 410). If the frame has a non-zero pause value, the HNI can forward an XON event with the credit from the frame (operation 420). On the other hand, if the frame does not have a non-zero pause value (i.e., has a zero pause value), the HNI can defer the frame (operation 412) (e.g., can wait for more credits to arrive).
If the frame does not match an entry in the FGFC table (operations 434 and 436), the OXE can check whether the table has availability (operation 438). If the table has availability, the OXE can create an entry in the FGFC table with a pause counter and a credit value, and subtract a default credit value (operation 446). The pause counter can be based on the non-zero pause value and the credit value can be based on the credit from the frame. If the cache does not have availability, the OXE can discard the frame (operation 440).
Otherwise, the OXE can check whether the credit is not negative in the entry (operation 458). If the credit is not negative in the entry, the OXE can allow the packet to proceed and deduct an amount of credit from the credit of the entry (operation 466). On the other hand, if the credit is negative in the entry, the OXE can discard the packet and set an FGFC flag for the MCU module (operation 460). The OXE can then remove the MCU module from arbitration and monitor the matched entry (operation 462).
Exemplary Computer System
Computer system 550 can be equipped with a host interface coupling a NIC 520 that facilitates efficient data request management. NIC 520 can provide one or more HNIs, such as HNI 540, to computer system 550. NIC 520 can be coupled to a switch 502 via HNI 540. Upon receiving an FGFC control frame from switch 502, HNI 540 can determine whether the frame is an Ethernet-based frame or an API-based frame. If the frame is an Ethernet-based frame, HNI 540 can compare the source IP addresses with the local addresses stored in registers 532. Upon detecting a match, HNI 540 can process the frame based on the entries in FGLC cache 534 and the content of the frame. HNI 540 can also include a queue 536 that can store events that cannot be accommodated in an event engine of NIC 520. If the frame is an API-based frame, HNI 540 can provide header information to an OXE logic block 530 of NIC 520 and send the frame to OXE logic block 530.
OXE logic block 530 can store the information in an entry in an FGLC table 536. OXE logic block 530 can then process the frame based on the entries in FGLC table 536 and the content of the frame. Upon receiving a packet belonging to a flow subject to FGLC from computer system 550 via an HI of NIC 520, OXE logic block 530 can allocate the packet to an MCU logic block 532. An arbitration logic block 534 can select MCU logic block 532 based on an arbitration policy. If MCU logic block 532 is selected, OXE logic block 530 can process the packet based on a matching entry in FGLC table 536 and the content of the packet.
In summary, the present disclosure describes a NIC that facilitates fine-grain flow control (FGFC). The NIC can be equipped with a network interface, an FGFC logic block, and a traffic management logic block. During operation, the network interface can determine that a control frame from a remote switch is for applying FGFC. The network interface can then identify a data flow indicated in the control frame for applying the FGFC. The FGFC logic block can insert information from the control frame into an entry of a data structure stored in the NIC. The traffic management logic block can identify the entry in the data structure based on one or more fields of a packet belonging to the flow. Subsequently, the traffic management logic block can determine whether the packet is allowed to be forwarded based on the information in the entry.
The methods and processes described above can be performed by hardware logic blocks, modules, logic blocks, or apparatus. The hardware logic blocks, modules, or apparatus can include, but are not limited to, application-specific integrated circuit (ASIC) chips, field-programmable gate arrays (FPGAs), dedicated or shared processors that execute a piece of code at a particular time, and other programmable-logic devices now known or later developed. When the hardware logic blocks, modules, or apparatus are activated, they perform the methods and processes included within them.
The methods and processes described herein can also be embodied as code or data, which can be stored in a storage device or computer-readable storage medium. When a processor reads and executes the stored code or data, the processor can perform these methods and processes.
The foregoing descriptions of embodiments of the present invention have been presented for purposes of illustration and description only. They are not intended to be exhaustive or to limit the present invention to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present invention. The scope of the present invention is defined by the appended claims.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2020/024245 | 3/23/2020 | WO |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2020/236272 | 11/26/2020 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
4807118 | Lin et al. | Feb 1989 | A |
5138615 | Lamport et al. | Aug 1992 | A |
5457687 | Newman | Oct 1995 | A |
5937436 | Watkins | Aug 1999 | A |
5960178 | Cochinwala et al. | Sep 1999 | A |
5970232 | Passint et al. | Oct 1999 | A |
5983332 | Watkins | Nov 1999 | A |
6112265 | Harriman et al. | Aug 2000 | A |
6230252 | Passint et al. | May 2001 | B1 |
6246682 | Roy et al. | Jun 2001 | B1 |
6493347 | Sindhu et al. | Dec 2002 | B2 |
6545981 | Garcia et al. | Apr 2003 | B1 |
6633580 | Toerudbakken et al. | Oct 2003 | B1 |
6674720 | Passint et al. | Jan 2004 | B1 |
6714553 | Poole et al. | Mar 2004 | B1 |
6728211 | Peris | Apr 2004 | B1 |
6732212 | Sugahara et al. | May 2004 | B2 |
6735173 | Lenoski | May 2004 | B1 |
6894974 | Aweva et al. | May 2005 | B1 |
7023856 | Washabaugh et al. | Apr 2006 | B1 |
7133940 | Blightman et al. | Nov 2006 | B2 |
7218637 | Best et al. | May 2007 | B1 |
7269180 | Bly et al. | Sep 2007 | B2 |
7305487 | Blumrich et al. | Dec 2007 | B2 |
7337285 | Tanoue | Feb 2008 | B2 |
7397797 | Alfieri et al. | Jul 2008 | B2 |
7430559 | Lomet | Sep 2008 | B2 |
7441006 | Biran et al. | Oct 2008 | B2 |
7464174 | Ngai | Dec 2008 | B1 |
7483442 | Torudbakken et al. | Jan 2009 | B1 |
7562366 | Pope et al. | Jul 2009 | B2 |
7593329 | Kwan et al. | Sep 2009 | B2 |
7596628 | Aloni et al. | Sep 2009 | B2 |
7620791 | Wentzlaff et al. | Nov 2009 | B1 |
7633869 | Morris et al. | Dec 2009 | B1 |
7639616 | Manula et al. | Dec 2009 | B1 |
7734894 | Wentzlaff et al. | Jun 2010 | B1 |
7774461 | Tanaka et al. | Aug 2010 | B2 |
7782869 | Chitlur Srinivasa | Aug 2010 | B1 |
7796579 | Bruss | Sep 2010 | B2 |
7856026 | Finan et al. | Dec 2010 | B1 |
7933282 | Gupta et al. | Apr 2011 | B1 |
7953002 | Opsasnick | May 2011 | B2 |
7975120 | Sabbatini, Jr. et al. | Jul 2011 | B2 |
8014278 | Subramanian et al. | Sep 2011 | B1 |
8023521 | Woo et al. | Sep 2011 | B2 |
8050180 | Judd | Nov 2011 | B2 |
8077606 | Litwack | Dec 2011 | B1 |
8103788 | Miranda | Jan 2012 | B1 |
8160085 | Voruganti et al. | Apr 2012 | B2 |
8175107 | Yalagandula et al. | May 2012 | B1 |
8249072 | Sugumar et al. | Aug 2012 | B2 |
8281013 | Mundkur et al. | Oct 2012 | B2 |
8352727 | Chen et al. | Jan 2013 | B2 |
8353003 | Noehring et al. | Jan 2013 | B2 |
8443151 | Tang et al. | May 2013 | B2 |
8473783 | Andrade et al. | Jun 2013 | B2 |
8543534 | Alves et al. | Sep 2013 | B2 |
8619793 | Lavian et al. | Dec 2013 | B2 |
8626957 | Blumrich et al. | Jan 2014 | B2 |
8650582 | Archer et al. | Feb 2014 | B2 |
8706832 | Blocksome | Apr 2014 | B2 |
8719543 | Kaminski et al. | May 2014 | B2 |
8811183 | Anand et al. | Aug 2014 | B1 |
8948175 | Bly et al. | Feb 2015 | B2 |
8971345 | McCanne et al. | Mar 2015 | B1 |
9001663 | Attar et al. | Apr 2015 | B2 |
9053012 | Northcott et al. | Jun 2015 | B1 |
9088496 | Vaidya et al. | Jul 2015 | B2 |
9094327 | Jacobs et al. | Jul 2015 | B2 |
9178782 | Matthews et al. | Nov 2015 | B2 |
9208071 | Talagala et al. | Dec 2015 | B2 |
9218278 | Talagala et al. | Dec 2015 | B2 |
9231876 | Mir et al. | Jan 2016 | B2 |
9231888 | Bogdanski et al. | Jan 2016 | B2 |
9239804 | Kegel et al. | Jan 2016 | B2 |
9269438 | Nachimuthu et al. | Feb 2016 | B2 |
9276864 | Vincent | Mar 2016 | B1 |
9436651 | Underwood et al. | Sep 2016 | B2 |
9455915 | Sinha et al. | Sep 2016 | B2 |
9460178 | Bashyam et al. | Oct 2016 | B2 |
9479426 | Munger et al. | Oct 2016 | B2 |
9496991 | Plamondon et al. | Nov 2016 | B2 |
9544234 | Markine | Jan 2017 | B1 |
9548924 | Pettit et al. | Jan 2017 | B2 |
9594521 | Blagodurov et al. | Mar 2017 | B2 |
9635121 | Mathew et al. | Apr 2017 | B2 |
9742855 | Shuler et al. | Aug 2017 | B2 |
9762488 | Previdi et al. | Sep 2017 | B2 |
9762497 | Kishore et al. | Sep 2017 | B2 |
9830273 | Bk et al. | Nov 2017 | B2 |
9838500 | Ilan et al. | Dec 2017 | B1 |
9853900 | Mula et al. | Dec 2017 | B1 |
9887923 | Chorafakis et al. | Feb 2018 | B2 |
10003544 | Liu et al. | Jun 2018 | B2 |
10009270 | Stark et al. | Jun 2018 | B1 |
10031857 | Menachem et al. | Jul 2018 | B2 |
10050896 | Yang et al. | Aug 2018 | B2 |
10061613 | Brooker et al. | Aug 2018 | B1 |
10063481 | Jiang et al. | Aug 2018 | B1 |
10089220 | McKelvie et al. | Oct 2018 | B1 |
10169060 | Vincent et al. | Jan 2019 | B1 |
10178035 | Dillon | Jan 2019 | B2 |
10200279 | Aljaedi | Feb 2019 | B1 |
10218634 | Aldebert et al. | Feb 2019 | B2 |
10270700 | Burnette et al. | Apr 2019 | B2 |
10305772 | Zur et al. | May 2019 | B2 |
10331590 | MacNamara et al. | Jun 2019 | B2 |
10353833 | Hagspiel et al. | Jul 2019 | B2 |
10454835 | Contavalli et al. | Oct 2019 | B2 |
10498672 | Graham et al. | Dec 2019 | B2 |
10567307 | Fairhurst et al. | Feb 2020 | B2 |
10728173 | Agrawal et al. | Jul 2020 | B1 |
10802828 | Volpe et al. | Oct 2020 | B1 |
10817502 | Talagala et al. | Oct 2020 | B2 |
11128561 | Matthews et al. | Sep 2021 | B1 |
11271869 | Agrawal et al. | Mar 2022 | B1 |
11416749 | Bshara et al. | Aug 2022 | B2 |
11444886 | Stawitzky et al. | Sep 2022 | B1 |
20010010692 | Sindhu et al. | Aug 2001 | A1 |
20010047438 | Forin | Nov 2001 | A1 |
20020174279 | Wynne et al. | Nov 2002 | A1 |
20030016808 | Hu et al. | Jan 2003 | A1 |
20030041168 | Musoll | Feb 2003 | A1 |
20030110455 | Baumgartner et al. | Jun 2003 | A1 |
20030174711 | Shankar | Sep 2003 | A1 |
20030200363 | Futral | Oct 2003 | A1 |
20030223420 | Ferolito | Dec 2003 | A1 |
20040008716 | Stiliadis | Jan 2004 | A1 |
20040059828 | Hooper et al. | Mar 2004 | A1 |
20040095882 | Hamzah et al. | May 2004 | A1 |
20040133634 | Luke et al. | Jul 2004 | A1 |
20040223452 | Santos et al. | Nov 2004 | A1 |
20050021837 | Haselhorst et al. | Jan 2005 | A1 |
20050047334 | Paul et al. | Mar 2005 | A1 |
20050088969 | Carlsen et al. | Apr 2005 | A1 |
20050091396 | Nilakantan et al. | Apr 2005 | A1 |
20050108444 | Flauaus et al. | May 2005 | A1 |
20050108518 | Pandya | May 2005 | A1 |
20050152274 | Simpson | Jul 2005 | A1 |
20050182854 | Pinkerton et al. | Aug 2005 | A1 |
20050270974 | Mayhew | Dec 2005 | A1 |
20050270976 | Yang | Dec 2005 | A1 |
20060023705 | Zoranovic et al. | Feb 2006 | A1 |
20060067347 | Naik et al. | Mar 2006 | A1 |
20060075480 | Noehring et al. | Apr 2006 | A1 |
20060174251 | Pope et al. | Aug 2006 | A1 |
20060203728 | Kwan et al. | Sep 2006 | A1 |
20070061433 | Reynolds et al. | Mar 2007 | A1 |
20070070901 | Aloni et al. | Mar 2007 | A1 |
20070198804 | Moyer | Aug 2007 | A1 |
20070211746 | Oshikiri et al. | Sep 2007 | A1 |
20070242611 | Archer et al. | Oct 2007 | A1 |
20070268825 | Corwin et al. | Nov 2007 | A1 |
20080013453 | Chiang et al. | Jan 2008 | A1 |
20080013549 | Okagawa et al. | Jan 2008 | A1 |
20080071757 | Ichiriu et al. | Mar 2008 | A1 |
20080084864 | Archer et al. | Apr 2008 | A1 |
20080091915 | Moertl et al. | Apr 2008 | A1 |
20080147881 | Krishnamurthy et al. | Jun 2008 | A1 |
20080159138 | Shepherd et al. | Jul 2008 | A1 |
20080253289 | Naven et al. | Oct 2008 | A1 |
20090003212 | Kwan et al. | Jan 2009 | A1 |
20090010157 | Holmes | Jan 2009 | A1 |
20090013175 | Elliott | Jan 2009 | A1 |
20090055496 | Garg | Feb 2009 | A1 |
20090092046 | Naven et al. | Apr 2009 | A1 |
20090122703 | Gangwal | May 2009 | A1 |
20090141621 | Fan et al. | Jun 2009 | A1 |
20090198958 | Arimilli et al. | Aug 2009 | A1 |
20090259713 | Blumrich et al. | Oct 2009 | A1 |
20090285222 | Hoover et al. | Nov 2009 | A1 |
20100061241 | Sindhu et al. | Mar 2010 | A1 |
20100169608 | Kuo et al. | Jul 2010 | A1 |
20100172260 | Kwan et al. | Jul 2010 | A1 |
20100183024 | Gupta | Jul 2010 | A1 |
20100220595 | Petersen | Sep 2010 | A1 |
20100274876 | Kagan et al. | Oct 2010 | A1 |
20100302942 | Shankar et al. | Dec 2010 | A1 |
20100316053 | Miyoshi et al. | Dec 2010 | A1 |
20110051724 | Scott et al. | Mar 2011 | A1 |
20110066824 | Bestler | Mar 2011 | A1 |
20110072179 | Lacroute et al. | Mar 2011 | A1 |
20110099326 | Jung et al. | Apr 2011 | A1 |
20110110383 | Yang et al. | May 2011 | A1 |
20110128959 | Bando et al. | Jun 2011 | A1 |
20110158096 | Leung et al. | Jun 2011 | A1 |
20110158248 | Vorunganti et al. | Jun 2011 | A1 |
20110164496 | Loh et al. | Jul 2011 | A1 |
20110173370 | Jacobs et al. | Jul 2011 | A1 |
20110264822 | Ferguson et al. | Oct 2011 | A1 |
20110276699 | Pedersen | Nov 2011 | A1 |
20110280125 | Jayakumar | Nov 2011 | A1 |
20110320724 | Mejdrich et al. | Dec 2011 | A1 |
20120093505 | Yeap et al. | Apr 2012 | A1 |
20120102506 | Hopmann et al. | Apr 2012 | A1 |
20120117423 | Andrade et al. | May 2012 | A1 |
20120137075 | Vorbach | May 2012 | A1 |
20120144064 | Parker et al. | Jun 2012 | A1 |
20120144065 | Parker et al. | Jun 2012 | A1 |
20120147752 | Ashwood-Smith et al. | Jun 2012 | A1 |
20120170462 | Sinha | Jul 2012 | A1 |
20120170575 | Mehra | Jul 2012 | A1 |
20120213118 | Lindsay et al. | Aug 2012 | A1 |
20120250512 | Jagadeeswaran et al. | Oct 2012 | A1 |
20120287821 | Godfrey et al. | Nov 2012 | A1 |
20120297083 | Ferguson et al. | Nov 2012 | A1 |
20120300669 | Zahavi | Nov 2012 | A1 |
20120314707 | Epps et al. | Dec 2012 | A1 |
20130010636 | Regula | Jan 2013 | A1 |
20130039169 | Schlansker et al. | Feb 2013 | A1 |
20130060944 | Archer et al. | Mar 2013 | A1 |
20130103777 | Kagan et al. | Apr 2013 | A1 |
20130121178 | Mainaud et al. | May 2013 | A1 |
20130136090 | Liu et al. | May 2013 | A1 |
20130182704 | Jacobs et al. | Jul 2013 | A1 |
20130194927 | Yamaguchi et al. | Aug 2013 | A1 |
20130203422 | Masputra et al. | Aug 2013 | A1 |
20130205002 | Wang et al. | Aug 2013 | A1 |
20130208593 | Nandagopal | Aug 2013 | A1 |
20130246552 | Underwood et al. | Sep 2013 | A1 |
20130290673 | Archer et al. | Oct 2013 | A1 |
20130301645 | Bogdanski et al. | Nov 2013 | A1 |
20130304988 | Totolos et al. | Nov 2013 | A1 |
20130311525 | Neerincx et al. | Nov 2013 | A1 |
20130329577 | Suzuki et al. | Dec 2013 | A1 |
20130336164 | Yang et al. | Dec 2013 | A1 |
20140019661 | Hormuth et al. | Jan 2014 | A1 |
20140032695 | Michels et al. | Jan 2014 | A1 |
20140036680 | Lih et al. | Feb 2014 | A1 |
20140064082 | Yeung et al. | Mar 2014 | A1 |
20140095753 | Crupnicoff et al. | Apr 2014 | A1 |
20140098675 | Frost et al. | Apr 2014 | A1 |
20140119367 | Han et al. | May 2014 | A1 |
20140122560 | Ramey et al. | May 2014 | A1 |
20140129664 | McDaniel et al. | May 2014 | A1 |
20140133292 | Yamatsu et al. | May 2014 | A1 |
20140136646 | Tamir et al. | May 2014 | A1 |
20140169173 | Naouri et al. | Jun 2014 | A1 |
20140185621 | Decusatis et al. | Jul 2014 | A1 |
20140189174 | Ajanovic et al. | Jul 2014 | A1 |
20140207881 | Nussle et al. | Jul 2014 | A1 |
20140211804 | Makikeni et al. | Jul 2014 | A1 |
20140226488 | Shamis et al. | Aug 2014 | A1 |
20140241164 | Cociglio et al. | Aug 2014 | A1 |
20140258438 | Ayoub | Sep 2014 | A1 |
20140301390 | Scott et al. | Oct 2014 | A1 |
20140307554 | Basso et al. | Oct 2014 | A1 |
20140325013 | Tamir et al. | Oct 2014 | A1 |
20140328172 | Kumar et al. | Nov 2014 | A1 |
20140347997 | Bergamasco et al. | Nov 2014 | A1 |
20140362698 | Arad | Dec 2014 | A1 |
20140369360 | Carlstrom | Dec 2014 | A1 |
20140379847 | Williams | Dec 2014 | A1 |
20150003247 | Mejia et al. | Jan 2015 | A1 |
20150006849 | Xu et al. | Jan 2015 | A1 |
20150009823 | Ganga et al. | Jan 2015 | A1 |
20150026361 | Matthews et al. | Jan 2015 | A1 |
20150029848 | Jain | Jan 2015 | A1 |
20150055476 | Decusatis et al. | Feb 2015 | A1 |
20150055661 | Boucher et al. | Feb 2015 | A1 |
20150067095 | Gopal et al. | Mar 2015 | A1 |
20150089495 | Persson et al. | Mar 2015 | A1 |
20150103667 | Elias et al. | Apr 2015 | A1 |
20150124826 | Edsall et al. | May 2015 | A1 |
20150146527 | Kishore et al. | May 2015 | A1 |
20150154004 | Aggarwal | Jun 2015 | A1 |
20150161064 | Pope | Jun 2015 | A1 |
20150180782 | Rimmer et al. | Jun 2015 | A1 |
20150186318 | Kim et al. | Jul 2015 | A1 |
20150193262 | Archer et al. | Jul 2015 | A1 |
20150195388 | Snyder et al. | Jul 2015 | A1 |
20150208145 | Parker et al. | Jul 2015 | A1 |
20150220449 | Stark et al. | Aug 2015 | A1 |
20150237180 | Swartzentruber et al. | Aug 2015 | A1 |
20150244617 | Nakil et al. | Aug 2015 | A1 |
20150244804 | Warfield et al. | Aug 2015 | A1 |
20150261434 | Kagan et al. | Sep 2015 | A1 |
20150263955 | Talaski et al. | Sep 2015 | A1 |
20150263994 | Haramaty et al. | Sep 2015 | A1 |
20150288626 | Aybay | Oct 2015 | A1 |
20150365337 | Pannell | Dec 2015 | A1 |
20150370586 | Cooper et al. | Dec 2015 | A1 |
20160006664 | Sabato et al. | Jan 2016 | A1 |
20160012002 | Arimilli et al. | Jan 2016 | A1 |
20160028613 | Haramaty et al. | Jan 2016 | A1 |
20160065455 | Wang et al. | Mar 2016 | A1 |
20160094450 | Ghanwani et al. | Mar 2016 | A1 |
20160134518 | Callon et al. | May 2016 | A1 |
20160134535 | Callon | May 2016 | A1 |
20160134559 | Abel et al. | May 2016 | A1 |
20160134573 | Gagliardi et al. | May 2016 | A1 |
20160142318 | Beecroft | May 2016 | A1 |
20160154756 | Dodson et al. | Jun 2016 | A1 |
20160182383 | Pedersen | Jun 2016 | A1 |
20160205023 | Janardhanan | Jul 2016 | A1 |
20160226797 | Aravinthan et al. | Aug 2016 | A1 |
20160254991 | Eckert et al. | Sep 2016 | A1 |
20160259394 | Ragavan | Sep 2016 | A1 |
20160283422 | Crupnicoff et al. | Sep 2016 | A1 |
20160285545 | Schmidtke et al. | Sep 2016 | A1 |
20160285677 | Kashyap et al. | Sep 2016 | A1 |
20160294694 | Parker et al. | Oct 2016 | A1 |
20160294926 | Zur et al. | Oct 2016 | A1 |
20160301610 | Amit et al. | Oct 2016 | A1 |
20160344620 | Santos et al. | Nov 2016 | A1 |
20160381189 | Caulfield et al. | Dec 2016 | A1 |
20170024263 | Verplanken | Jan 2017 | A1 |
20170039063 | Gopal et al. | Feb 2017 | A1 |
20170041239 | Goldenberg et al. | Feb 2017 | A1 |
20170048144 | Liu | Feb 2017 | A1 |
20170054633 | Underwood et al. | Feb 2017 | A1 |
20170091108 | Arellano et al. | Mar 2017 | A1 |
20170097840 | Bridgers | Apr 2017 | A1 |
20170103108 | Datta et al. | Apr 2017 | A1 |
20170118090 | Pettit et al. | Apr 2017 | A1 |
20170118098 | Littlejohn et al. | Apr 2017 | A1 |
20170153852 | Ma et al. | Jun 2017 | A1 |
20170177541 | Berman et al. | Jun 2017 | A1 |
20170220500 | Tong | Aug 2017 | A1 |
20170237654 | Turner et al. | Aug 2017 | A1 |
20170237671 | Rimmer et al. | Aug 2017 | A1 |
20170242753 | Sherlock et al. | Aug 2017 | A1 |
20170250914 | Caulfield et al. | Aug 2017 | A1 |
20170251394 | Johansson et al. | Aug 2017 | A1 |
20170270051 | Chen et al. | Sep 2017 | A1 |
20170272331 | Lissack | Sep 2017 | A1 |
20170272370 | Ganga et al. | Sep 2017 | A1 |
20170286316 | Doshi et al. | Oct 2017 | A1 |
20170289066 | Haramaty et al. | Oct 2017 | A1 |
20170295098 | Watkins et al. | Oct 2017 | A1 |
20170324664 | Xu et al. | Nov 2017 | A1 |
20170371778 | McKelvie et al. | Dec 2017 | A1 |
20180004705 | Menachem et al. | Jan 2018 | A1 |
20180019948 | Patwardhan et al. | Jan 2018 | A1 |
20180026878 | Zahavi et al. | Jan 2018 | A1 |
20180077064 | Wang | Mar 2018 | A1 |
20180083868 | Cheng | Mar 2018 | A1 |
20180097645 | Rajagopalan et al. | Apr 2018 | A1 |
20180097912 | Chumbalkar et al. | Apr 2018 | A1 |
20180113618 | Chan et al. | Apr 2018 | A1 |
20180115469 | Erickson et al. | Apr 2018 | A1 |
20180131602 | Civanlar et al. | May 2018 | A1 |
20180131678 | Agarwal et al. | May 2018 | A1 |
20180150374 | Ratcliff | May 2018 | A1 |
20180152317 | Chang et al. | May 2018 | A1 |
20180152357 | Natham et al. | May 2018 | A1 |
20180173557 | Nakil et al. | Jun 2018 | A1 |
20180183724 | Callard et al. | Jun 2018 | A1 |
20180191609 | Caulfield et al. | Jul 2018 | A1 |
20180198736 | Labonte et al. | Jul 2018 | A1 |
20180212876 | Bacthu et al. | Jul 2018 | A1 |
20180212902 | Steinmacher-Burow | Jul 2018 | A1 |
20180219804 | Graham et al. | Aug 2018 | A1 |
20180225238 | Karguth et al. | Aug 2018 | A1 |
20180234343 | Zdornov et al. | Aug 2018 | A1 |
20180254945 | Bogdanski et al. | Sep 2018 | A1 |
20180260324 | Marathe et al. | Sep 2018 | A1 |
20180278540 | Shalev et al. | Sep 2018 | A1 |
20180287928 | Levi et al. | Oct 2018 | A1 |
20180323898 | Dods | Nov 2018 | A1 |
20180335974 | Simionescu et al. | Nov 2018 | A1 |
20180341494 | Sood et al. | Nov 2018 | A1 |
20190007349 | Wang et al. | Jan 2019 | A1 |
20190018808 | Beard et al. | Jan 2019 | A1 |
20190036771 | Sharpless et al. | Jan 2019 | A1 |
20190042337 | Dinan et al. | Feb 2019 | A1 |
20190042518 | Marolia | Feb 2019 | A1 |
20190044809 | Willis et al. | Feb 2019 | A1 |
20190044827 | Ganapathi et al. | Feb 2019 | A1 |
20190044863 | Mula et al. | Feb 2019 | A1 |
20190044872 | Ganapathi et al. | Feb 2019 | A1 |
20190044875 | Murty et al. | Feb 2019 | A1 |
20190052327 | Motozuka et al. | Feb 2019 | A1 |
20190058663 | Song | Feb 2019 | A1 |
20190068501 | Schneider et al. | Feb 2019 | A1 |
20190081903 | Kobayashi et al. | Mar 2019 | A1 |
20190095134 | Li | Mar 2019 | A1 |
20190104057 | Goel et al. | Apr 2019 | A1 |
20190104206 | Goel et al. | Apr 2019 | A1 |
20190108106 | Aggarwal et al. | Apr 2019 | A1 |
20190108332 | Glew et al. | Apr 2019 | A1 |
20190109791 | Mehra et al. | Apr 2019 | A1 |
20190121781 | Kasichainula | Apr 2019 | A1 |
20190140979 | Levi et al. | May 2019 | A1 |
20190146477 | Cella et al. | May 2019 | A1 |
20190171612 | Shahar et al. | Jun 2019 | A1 |
20190196982 | Rozas et al. | Jun 2019 | A1 |
20190199646 | Singh et al. | Jun 2019 | A1 |
20190253354 | Caulfield et al. | Aug 2019 | A1 |
20190280978 | Schmatz et al. | Sep 2019 | A1 |
20190294575 | Dennison et al. | Sep 2019 | A1 |
20190306134 | Shanbhogue et al. | Oct 2019 | A1 |
20190332314 | Zhang et al. | Oct 2019 | A1 |
20190334624 | Bernard | Oct 2019 | A1 |
20190356611 | Das et al. | Nov 2019 | A1 |
20190361728 | Kumar et al. | Nov 2019 | A1 |
20190379610 | Srinivasan et al. | Dec 2019 | A1 |
20200036644 | Belogolovy et al. | Jan 2020 | A1 |
20200084150 | Burstein et al. | Mar 2020 | A1 |
20200145725 | Eberle et al. | May 2020 | A1 |
20200177505 | Li | Jun 2020 | A1 |
20200177521 | Blumrich et al. | Jun 2020 | A1 |
20200259755 | Wang et al. | Aug 2020 | A1 |
20200272579 | Humphrey et al. | Aug 2020 | A1 |
20200274832 | Humphrey et al. | Aug 2020 | A1 |
20200334195 | Chen et al. | Oct 2020 | A1 |
20200349098 | Caulfield et al. | Nov 2020 | A1 |
20210081410 | Chavan et al. | Mar 2021 | A1 |
20210152494 | Johnsen et al. | May 2021 | A1 |
20210263779 | Haghighat et al. | Aug 2021 | A1 |
20210334206 | Colgrove et al. | Oct 2021 | A1 |
20210377156 | Michael et al. | Dec 2021 | A1 |
20210409351 | Das et al. | Dec 2021 | A1 |
20220131768 | Ganapathi et al. | Apr 2022 | A1 |
20220166705 | Froese | May 2022 | A1 |
20220200900 | Roweth | Jun 2022 | A1 |
20220210058 | Bataineh et al. | Jun 2022 | A1 |
20220217078 | Ford et al. | Jul 2022 | A1 |
20220217101 | Yefet et al. | Jul 2022 | A1 |
20220245072 | Roweth et al. | Aug 2022 | A1 |
20220278941 | Shalev et al. | Sep 2022 | A1 |
20220309025 | Chen et al. | Sep 2022 | A1 |
20230035420 | Sankaran et al. | Feb 2023 | A1 |
20230046221 | Pismenny et al. | Feb 2023 | A1 |
Number | Date | Country |
---|---|---|
101729609 | Jun 2010 | CN |
102932203 | Feb 2013 | CN |
110324249 | Oct 2019 | CN |
110601888 | Dec 2019 | CN |
0275135 | Jul 1988 | EP |
2187576 | May 2010 | EP |
2219329 | Aug 2010 | EP |
2947832 | Nov 2015 | EP |
3445006 | Feb 2019 | EP |
2003-244196 | Aug 2003 | JP |
3459653 | Oct 2003 | JP |
10-2012-0062864 | Jun 2012 | KR |
10-2012-0082739 | Jul 2012 | KR |
10-2014-0100529 | Aug 2014 | KR |
10-2015-0026939 | Mar 2015 | KR |
10-2015-0104056 | Sep 2015 | KR |
10-2017-0110106 | Oct 2017 | KR |
10-1850749 | Apr 2018 | KR |
2001069851 | Sep 2001 | WO |
0247329 | Jun 2002 | WO |
2003019861 | Mar 2003 | WO |
2004001615 | Dec 2003 | WO |
2005094487 | Oct 2005 | WO |
2007034184 | Mar 2007 | WO |
2009010461 | Jan 2009 | WO |
2009018232 | Feb 2009 | WO |
2014092780 | Jun 2014 | WO |
2014137382 | Sep 2014 | WO |
2014141005 | Sep 2014 | WO |
2018004977 | Jan 2018 | WO |
2018046703 | Mar 2018 | WO |
2019072072 | Apr 2019 | WO |
Entry |
---|
Ramakrishnan et al, RFC 3168, “The addition of Explicit Congestion Notification (ECN) to IP”, Sep. 2001 (Year: 2001). |
Awerbuch, B., et al.; “An On-Demand Secure Routing Protocol Resilient to Byzantine Failures”; Sep. 2002; 10 pages. |
Belayneh L.W., et al.; “Method and Apparatus for Routing Data in an Inter-Nodal Communications Lattice of a Massively Parallel Computer System by Semi-Randomly Varying Routing Policies for Different Packets”; 2019; 3 pages. |
Bhatele, A., et al.; “Analyzing Network Health and Congestion in Dragonfly-based Supercomputers”; May 23-27, 2016; 10 pages. |
Blumrich, M.A., et al.; “Exploiting Idle Resources in a High-Radix Switch for Supplemental Storage”; Nov. 2018; 13 pages. |
Chang, F., et al.; “PVW: Designing Vir PVW: Designing Virtual World Ser orld Server Infr er Infrastructur astructure”; 2010; 8 pages. |
Chang, F., et al; “PVW: Designing Virtual World Server Intiastructure”; 2010; 8 pages. |
Chen, F., et al.; “Requirements for RoCEv3 Congestion Management”; Mar. 21, 2019; 8 pages. |
Cisco Packet Tracer; “packet-tracer;—ping”; https://www.cisco.com/c/en/us/td/docs/security/asa/asa-command-reference/I-R/cmdref2/p1.html; 2017. |
Cisco; “Understanding Rapid Spanning Tree Protocol (802.1w)”; Aug. 1, 2017; 13 pages. |
Eardley, ED, P; “Pre-Congestion Notification (PCN) Architecture”; Jun. 2009; 54 pages. |
Escudero-Sahuquillo, J., et al.; “Combining Congested-Flow Isolation and Injection Throttling in HPC Interconnection Networks”; Sep. 13-16, 2011; 3 pages. |
Hong, Y.; “Mitigating the Cost, Performance, and Power Overheads Induced by Load Variations in Multicore Cloud Servers”; Fall 2013; 132 pages. |
Huawei; “The Lossless Network for Data Centers”; Nov. 7, 2017; 15 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024248, dated Jul. 8, 2020, 11 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US20/024332, dated Jul. 8, 2020, 13 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US20/24243, dated Jul. 9, 2020, 10 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US20/24253, dated Jul. 6, 2020, 12 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US20/24256, dated Jul. 7, 2020, 11 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US20/24257, dated Jul. 7, 2020, 10 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US20/24258, dated Jul. 7, 2020, 9 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US20/24259, dated Jul. 9, 2020, 13 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US20/24260, dated Jul. 7, 2020, 11 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US20/24268, dated Jul. 9, 2020, 11 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US20/24269, dated Jul. 9, 2020, 11 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US20/24339, dated Jul. 8, 2020, 11 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024125, dated Jul. 10, 2020, 5 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024129, dated Jul. 10, 2020, 11 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024237, dated Jul. 14, 2020, 5 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024239, dated Jul. 14, 2020, 11 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024241, dated Jul. 14, 2020, 13 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024242, dated Jul. 6, 2020, 11 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024244, dated Jul. 13, 2020, 10 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024246, dated Jul. 14, 2020, 10 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024250, dated Jul. 14, 2020, 12 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024254, dated Jul. 13, 2020, 10 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024262, dated Jul. 13, 2020, 10 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024266, dated Jul. 9, 2020, 10 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024270, dated Jul. 10, 2020, 13 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024271, dated Jul. 9, 2020, 10 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024272, dated Jul. 9, 2020, 10 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024276, dated Jul. 13, 2020, 9 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024304, dated Jul. 15, 2020, 11 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024311, dated Jul. 17, 2020, 8 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024321, dated Jul. 9, 2020, 9 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024324, dated Jul. 14, 2020, 10 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024327, dated Jul. 10, 2020, 15 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/24158, dated Jul. 6, 2020, 18 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/24251, dated Jul. 6, 2020, 11 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/24267, dated Jul. 6, 2020, 9 pages. |
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US20/24303, dated Oct. 21, 2020, 9 pages. |
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US20/24340, dated Oct. 26, 2020, 9 pages. |
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US20/24342, dated Oct. 27, 2020, 10 pages. |
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US2020/024192, dated Oct. 23, 2020, 9 pages. |
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US2020/024221, dated Oct. 26, 2020, 9 pages. |
International Search Report cited in PCT/US2020/024170 dated Dec. 16, 2020; 3 pages. |
Maabi, S., et al.; “ERFAN: Efficient reconfigurable fault-tolerant deflection routing algorithm for 3-D Network-on-Chip”; Sep. 6-9, 2016. |
Maglione-Mathey, G., et al.; “Scalable Deadlock-Free Deterministic Minimal-Path Routing Engine for InfiniBand-Based Dragonfly Networks”; Aug. 21, 2017; 15 pages. |
Mamidala, A.R., et al.; “Efficient Barrier and Allreduce on Infiniband clusters using multicast and adaptive algorithms”; Sep. 20-23, 2004; 10 pages. |
Mammeri, Z; “Reinforcement Learning Based Routing in Networks: Review and Classification of Approaches”; Apr. 29, 2019; 35 pages. |
Mollah; M. A., et al.; “High Performance Computing Systems. Performance Modeling, Benchmarking, and Simulation: 8th International Workshop”; Nov. 13, 2017. |
Open Networking Foundation; “OpenFlow Switch Specification”; Mar. 26, 2015; 283 pages. |
Prakash, P., et al.; “The TCP Outcast Problem: Exposing Unfairness in Data Center Networks”; 2011; 15 pages. |
Ramakrishnan, K., et al.; “The Addition of Explicit Congestion Notification (ECN) to IP”; Sep. 2001; 63 pages. |
Roth, P. C., et al; “MRNet: A Software-Based Multicast/Reduction Network for Scalable Tools1”; Nov. 15-21, 2003; 16 pages. |
Silveira, J., et al.; “Preprocessing of Scenarios for Fast and Efficient Routing Reconfiguration in Fault-Tolerant NoCs”; Mar. 4-6, 2015. |
Tsunekawa, K.; “Fair bandwidth allocation among LSPs for AF class accommodating TCP and UDP traffic in a Diffserv-capable MPLS network”; Nov. 17, 2005; 9 pages. |
Underwood, K.D., et al.; “A hardware acceleration unit for MPI queue processing”; Apr. 18, 2005; 10 pages. |
Wu, J.; “Fault-tolerant adaptive and minimal routing in mesh-connected multicomputers using extended safety levels”; Feb. 2000; 11 pages. |
Xiang, D., et al.; “Fault-Tolerant Adaptive Routing in Dragonfly Networks”; Apr. 12, 2017; 15 pages. |
Xiang, D., et al; “Deadlock-Free Broadcast Routing in Dragonfly Networks without Virtual Channels”, submission to IEEE transactions on Parallel and Distributed Systems, 2015, 15 pages. |
International Search Report and Written Opinion received for PCT Application No. PCT/US2020/024245, dated Jul. 14, 2020, 11 pages. |
Extended European Search Report and Search Opinion received for EP Application No. 20809930.9, dated Mar. 2, 2023, 9 pages. |
Extended European Search Report and Search Opinion received for EP Application No. 20810784.7, dated Mar. 9, 2023, 7 pages. |
Number | Date | Country | |
---|---|---|---|
20220217094 A1 | Jul 2022 | US |
Number | Date | Country | |
---|---|---|---|
62852273 | May 2019 | US | |
62852203 | May 2019 | US | |
62852289 | May 2019 | US |