Universal network interface controller
First Claim
1. A network interface controller (NIC) for a host computer, comprising:
- a bus interface communicatively coupled to a memory within the host computer; and
circuitry configured to;
receive a fabric packet and a network packet from the memory via the bus interface to be transmitted to at least one external device;
slice the fabric packet into at least one fabric cell; and
queue and schedule the at least one fabric cell and the network packet for transmission of the at least one fabric cell and the network packet over a switch fabric and a packet network, respectively, to the at least one external device,wherein the circuitry comprises;
an ingress packet processor configured to define at least one virtual output queue (VOQ) in the memory and map at least one destination endpoint to the at least one VOQ; and
an ingress traffic manager configured to queue and de-queue the at least one fabric cell and the network packet in the at least one VOQ,wherein the circuitry is;
configured to receive at least one egress fabric cell from the switch fabric and an egress network packet from the packet network and map the at least one egress fabric cell and the egress network packet to at least one egress queue, andconfigured to manage the at least one egress queue.
8 Assignments
0 Petitions
Accused Products
Abstract
A universal network interface controller (UNIC) is provided for interfacing a host computer to a switch fabric, a packet network, or both. The UNIC includes ingress transmit logic designed to transmit switch fabric data in memory associated with the host computer to a switch fabric. The UNIC further includes egress receive logic designed to receive switch fabric data from the switch fabric to store the received switch fabric data in the host memory associated with the host computer. As an option, the ingress transmit logic may be further designed to transmit packet network data in memory associated with the host computer to a packet network, such as Ethernet, and the egress receive logic may be further designed to receive the packet network data from the packet network and to store the received switch fabric data and the received packet network data in the host memory associated with the host computer.
43 Citations
22 Claims
-
1. A network interface controller (NIC) for a host computer, comprising:
-
a bus interface communicatively coupled to a memory within the host computer; and circuitry configured to; receive a fabric packet and a network packet from the memory via the bus interface to be transmitted to at least one external device; slice the fabric packet into at least one fabric cell; and queue and schedule the at least one fabric cell and the network packet for transmission of the at least one fabric cell and the network packet over a switch fabric and a packet network, respectively, to the at least one external device, wherein the circuitry comprises; an ingress packet processor configured to define at least one virtual output queue (VOQ) in the memory and map at least one destination endpoint to the at least one VOQ; and an ingress traffic manager configured to queue and de-queue the at least one fabric cell and the network packet in the at least one VOQ, wherein the circuitry is; configured to receive at least one egress fabric cell from the switch fabric and an egress network packet from the packet network and map the at least one egress fabric cell and the egress network packet to at least one egress queue, and configured to manage the at least one egress queue. - View Dependent Claims (2, 3, 4, 5, 6, 7, 9, 21, 22)
-
-
8. A network interface controller (NIC) for a host computer, comprising:
-
a bus interface communicatively coupled to a memory associated with the host computer; and circuitry configured to receive a fabric packet and a network packet from the memory via the bus interface, slice the fabric packet into at least one fabric cell, and queue and schedule the at least one fabric cell and the network packet for communication over at least one of a switch fabric and a packet network, wherein the circuitry comprises; an ingress packet processor communicatively coupled to the host computer via the bus interface and configured to define at least one virtual output queue (VOQ) in the memory and map at least one destination endpoint to the at least one VOQ; an ingress traffic manager communicatively coupled to the ingress packet processor and configured to queue and de-queue the at least one fabric cell and the network packet in the at least one VOQ; and an ingress transmit processor communicatively coupled to the ingress traffic manager and configured to communicate the at least one fabric cell and the network packet over the switch fabric and the packet network, respectively, to at least one external device, wherein the circuitry is; configured to receive at least one egress fabric cell from the switch fabric and an egress network packet from the packet network and map the at least one egress fabric cell and the egress network packet to at least one egress queue, and configured to manage the at least one egress queue.
-
-
10. A system, comprising:
-
a switch fabric; a packet network; a first universal network controller (UNIC) communicatively coupled to the switch fabric and the packet network; and a second UNIC communicatively coupled to the switch fabric and the packet network, wherein the first UNIC comprises; a bus interface communicatively coupled to a memory within a host computer; and circuitry configured to; receive a fabric packet and a network packet from the memory via the bus interface to be transmitted to the second UNIC; slice the fabric packet into at least one fabric cell; and queue and schedule the at least one fabric cell and the network packet for transmission of the at least one fabric cell and the network packet over the switch fabric and the packet network, respectively, to the second UNIC, wherein the circuitry comprises; an ingress packet processor configured to define at least one virtual output queue (VOQ) in the memory and map at least one destination endpoint to the at least one VOQ; and an ingress traffic manager configured to queue and de-queue the at least one fabric cell and the network packet in the at least one VOQ, wherein the circuitry is; configured to receive at least one egress fabric cell from the switch fabric and an egress network packet from the packet network and map the at least one egress fabric cell and the egress network packet to at least one egress queue, and configured to manage the at least one egress queue. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A method of communication, comprising:
-
receiving a fabric packet and a network packet from a memory within a host computer via a bus interface to be transmitted to at least one external device; slicing, with a network interface card (NIC), the fabric packet into at least one fabric cell; queuing and scheduling, with the NIC, the at least one fabric cell and the network packet for transmission of the at least one fabric cell and the network packet over a switch fabric and a packet network, respectively, to the at least one external device; defining at least one virtual output queue (VOQ) in the memory and mapping at least one destination endpoint to the at least one VOQ; queuing and de-queuing the at least one fabric cell and the network packet in the at least one VOQ; receiving at least one egress fabric cell from the switch fabric and an egress network packet from the packet network and mapping the at least one egress fabric cell and the egress network packet to at least one egress queue; and managing the at least one egress queue. - View Dependent Claims (17, 18, 19, 20)
-
Specification