Intelligent network processor and method of using intelligent network processor
First Claim
1. An intelligent network processor (INP) for connection to a PCI express (PCIe) bus, comprising:
- one or more processors for emulating one or more virtual PCIe devices supported by the INP; and
a Root Complex/EndPoint (RC/EP) module communicatively couplable to the PCIe bus and to the one or more processors for receiving communications over the PCIe bus, the RC/EP module including a virtualization engine providing a hardware window through which entities on the PCIe bus can communicate with the one or more processors to configure the one or more virtual PCIe devices and send read and write requests to the one or more virtual PCIe devices.
8 Assignments
0 Petitions
Accused Products
Abstract
An intelligent network processor is disclosed that provides a PCI express (PCIe) host bus adapter with firmware selectable hardware capabilities and firmware enabled emulation of capabilities not supported by hardware. Support for Fibre Channel (FC) and Gigabit Ethernet (GbE) protocols are provided through the same fabric ports, including multiple port trunking for both protocols. On chip protocol conversion is provided for switching and routing between FC and GbE ports. Switching using the same crossbar module is provided for both FC and GbE protocols. The crossbar module is coupled to directly access external DDR memory so that messages from FC, GbE, and PCIe interfaces may be switched directly to the DDR memory.
309 Citations
75 Claims
-
1. An intelligent network processor (INP) for connection to a PCI express (PCIe) bus, comprising:
-
one or more processors for emulating one or more virtual PCIe devices supported by the INP; and
a Root Complex/EndPoint (RC/EP) module communicatively couplable to the PCIe bus and to the one or more processors for receiving communications over the PCIe bus, the RC/EP module including a virtualization engine providing a hardware window through which entities on the PCIe bus can communicate with the one or more processors to configure the one or more virtual PCIe devices and send read and write requests to the one or more virtual PCIe devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A method for virtualizing PCIe devices, comprising:
-
emulating one or more virtual PCIe devices utilizing one or more processors;
receiving PCIe communications over a PCIe bus;
providing a hardware window through which entities on the PCIe bus can communicate with the one or more processors to configure the one or more virtual PCIe devices and send read and write requests to the one or more virtual PCIe devices. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
-
-
43. One or more storage media including a computer program which, when executed by one or more processors in an intelligent network processor (INP), assists in enabling the INP to emulate multiple virtual PCIe devices by causing the one or more processors to perform the steps of:
-
emulating one or more fields in a configuration header of one or more virtual PCIe devices; and
storing entries in an aperture table acting as a hardware window through which entities on the PCIe bus can communicate with the one or more processors to configure the one or more virtual PCIe devices and send read and write requests to the one or more virtual PCIe devices, the entries corresponding to the one or more virtual PCIe devices and also corresponding to Base Address Registers (BARs) in a configuration space of Operating Systems (OSs) in communication with the virtual PCIe devices over the PCIe bus. - View Dependent Claims (44, 45, 46, 47)
-
-
48. An intelligent network processor (INP) for connecting to a Fibre Channel (FC) protocol fabric, a Gigabit Ethernet (GbE) protocol fabric and to a host computer, comprising:
-
a plurality of port interfaces for connection to a protocol fabric, and adjustable to be selectively compatible with FC or GbE;
a plurality of Combined Media Access Controller (CMAC) modules, with each CMAC connected to a corresponding port interface, and adjustable to be selectively compatible with FC or GbE; and
an Application. Processor (APEX) module connected to each port interface for selecting between support for FC or GbE, and connected to each CMAC for selecting between support for FC or GbE, and enabled to execute firmware for responding to protocol designation messages from the host computer, FC messages from a CMAC through its corresponding port interface, and GbE messages from a CMAC through its corresponding port interface. - View Dependent Claims (49, 50, 51, 52)
-
-
53. A method for connecting to a Fibre Channel (FC) protocol fabric, a Gigabit Ethernet (GbE) protocol fabric and to a host computer, comprising:
-
providing a plurality of adjustable port interfaces selectively compatible with FC or GbE for connection to a protocol fabric;
providing a plurality of adjustable Combined Media Access Controller (CMAC) modules selectively compatible with FC or GbE, each CMAC connected to a corresponding port interface; and
connecting an Application Processor (APEX) module to each port interface and to each CMAC for selecting between support for FC or GbE, the APEX module enabled to execute firmware for responding to protocol designation messages from the host computer, FC messages from a CMAC through its corresponding port interface, and GbE messages from a CMAC through its corresponding port interface. - View Dependent Claims (54, 55, 56, 57)
-
-
58. One or more storage media including a computer program which, when executed by one or more processors in an intelligent network processor (INP), assists in enabling the INP to connect to a Fibre Channel (FC) protocol fabric, a Gigabit Ethernet (GbE) protocol fabric and to a host computer by causing the one or more processors to perform the step of:
responding to protocol designation messages from the host computer, FC messages from a Combined Media Access Controller (CMAC) module through its corresponding port interface, and GbE messages from a CMAC through its corresponding port interface and selectively configuring each port interface and each CMAC for either FC or GbE operation. - View Dependent Claims (59, 60, 61)
-
62. An intelligent network processor (INP) having expanded Media Access Controller (MAC) packet filtering, comprising:
-
one or more MACs, each with a fixed number of packet filtering rule registers; and
a hash engine communicatively coupled to the one or more MACs for receiving a destination MAC address, generating a hash output, and comparing the hash output to a table of hash entries containing valid destination MAC addresses to determine if there is a match;
wherein the table of hash entries is stored external to the INP and is not limited by the fixed number of packet filtering rule registers; and
wherein the hash engine includes programmable offsets for identifying the destination MAC address in a packet formatted according to different protocols.
-
-
63. A method for providing expanded Media Access Controller (MAC) packet filtering, comprising:
-
providing one or more MACs, each with a fixed number of packet filtering rule registers;
storing a table of hash entries in memory not limited by the fixed number of packet filtering rule registers;
selectively adjusting programmable offsets in the hash engine to identify a destination MAC address in a packet formatted according to a particular protocol;
receiving the destination MAC address at a hash engine and generating a hash output;
comparing the hash output to a table of hash entries containing valid destination MAC addresses to determine if there is a match; and
forwarding the packet to a processor for processing if there was a match.
-
-
64. An intelligent network processor (INP) for connecting to a first protocol fabric, a second protocol fabric and to a host computer, comprising:
-
a plurality of port interfaces for connection to a protocol fabric, and adjustable to be selectively compatible with the first or second protocol;
a plurality of Combined Media Access Controller (CMAC) modules, with each CMAC connected to a corresponding port interface, and adjustable to be selectively compatible with the first or second protocol; and
an Application Processor (APEX) module connected to each port interface for selecting between support for the first or second protocol, and connected to each CMAC for selecting between support for the first or second protocol, and enabled to execute firmware for responding to protocol designation messages from the host computer, messages in the first protocol from a CMAC through its corresponding port interface, and messages in a second protocol from a CMAC through its corresponding port interface;
wherein the APEX module is capable of executing firmware for the reception of messages in the first protocol from a first CMAC through its corresponding first port interface, for the translation of such messages in the first protocol to messages in the second protocol, and for the transmission of the messages in the second protocol through a second CMAC through its corresponding second port interface. - View Dependent Claims (65)
-
-
66. An intelligent network processor (INP) on a single silicon die for connection to a Fibre Channel (FC) protocol fabric and to a Gigabit Ethernet (GbE) protocol fabric and to a host computer, comprising:
-
a plurality of port interfaces for connection to a protocol fabric, and adjustable to be selectively compatible with FC or GbE;
a Bi-directional Crossbar Module (BCM) coupled to receive messages from each of the plurality of port modules, and having crossbar passageways compatible with both FC and GbE messages; and
an application processor (APEX) module coupled to the BCM for controlling the connections between the port interfaces through the BCM, and for allowing simultaneous crossbar connections of FC and GbE messages through the passageways of the BCM. - View Dependent Claims (67, 68)
-
-
69. A method for connecting to a first protocol fabric, a second protocol fabric and to a host computer, comprising:
-
providing a plurality of port interfaces for connection to a protocol fabric, the plurality of port interfaces being adjustable to be selectively compatible with the first or second protocol;
providing a plurality of Combined Media Access Controller (CMAC) modules, each CMAC connected to a corresponding port interface and adjustable to be selectively compatible with the first or second protocol;
responding to protocol designation messages from the host computer, messages in the first protocol from a CMAC through its corresponding port interface, and messages in a second protocol from a CMAC through its corresponding port interface; and
receiving messages in the first protocol from a first CMAC through its corresponding first port interface, translating such messages in the first protocol to messages in the second protocol, and transmitting the messages in the second protocol through a second CMAC through its corresponding second port interface. - View Dependent Claims (70)
-
-
71. A method for connection to a Fibre Channel (FC) protocol fabric and to a Gigabit Ethernet (GbE) protocol fabric and to a host computer, comprising:
-
providing a plurality of port interfaces for connection to a protocol fabric, the plurality of port interfaces being adjustable to be selectively compatible with FC or GbE;
receiving messages from each of the plurality of port modules through a Bi-directional Crossbar Module (BCM) having crossbar passageways compatible with both FC and GbE messages;
controlling the connections between the port interfaces through the BCM; and
allowing simultaneous crossbar connections of FC and GbE messages through the passageways of the BCM. - View Dependent Claims (72, 73)
-
-
74. An intelligent network processor (INP) for connection to a protocol fabric, comprising:
-
a plurality of port interfaces for connection to a protocol fabric, and adjustable to be selectively compatible with FC or GbE;
a bidirectional crossbar module (BCM) coupled to receive messages from each of the plurality of port modules, and having crossbar passageways compatible with both FC and GbE messages;
a DDR memory interface for connecting to an external DDR memory, for storing and retrieving data messages in queues contained in the DDR memory, and connected to send and receive data messages directly from the BCM; and
an application processor module (APEX) coupled to the BCM for controlling the connections between the port interfaces and the DDR memory interface through the BCM, and enabling direct memory access operations between the DDR memory interface and the BCM without data messages passing through the APEX.
-
-
75. A method for connecting a plurality of port interfaces to a protocol fabric, comprising:
-
providing a plurality of port interfaces for connection to a protocol fabric, the plurality of port interfaces being adjustable to be selectively compatible with FC or GbE;
receiving messages from each of the plurality of port interfaces through a bidirectional crossbar module (BCM) having crossbar passageways compatible with both FC and GbE messages;
connecting to an external DDR memory for storing and retrieving data messages in queues contained in DDR memory, and for sending and receiving data messages directly from the BCM; and
controlling the connections between the port interfaces and the DDR memory interface through the BCM, and enabling direct memory access operations between the DDR memory interface and the BCM without data messages passing through the APEX.
-
Specification