Configurable switching network interface controller using forwarding engine
First Claim
Patent Images
1. A network interface controller configured to facilitate communication among a host and external network connections to a network, comprising:
- a plurality of scatter gather circuits configured to be connected to the host via a host bus;
a packet buffer configured for communication with the scatter gather circuits;
a plurality of access circuits configured to access the external network connections; and
a forwarding engine selectable to generate routing information corresponding to particular data, received via a particular access circuit from a particular one the external network connections, wherein the particular access circuit is any of the plurality of access circuits, and to provide the routing information to the packet buffer,wherein the network interface controller is configured to selectively operate in at leasta switch mode of operation, in which the scatter gather circuits are configured for pass-through communication of the particular data between the packet buffer and host bus, and the forwarding engine is configured to generate the routing information to cause the particular data to be routed between the particular access circuit and the packet buffer; and
a hybrid mode of operation, in which the forwarding engine is configured to process the particular data to determine whether the particular data is to be switched to another access circuit, different from the particular access circuit, to be provided to another external network connection, different from the particular external network connection, or whether the particular data is to be provided from the particular access circuit to the packet buffer and from the packet buffer to the scatter gather circuits for delivery to the host.
8 Assignments
0 Petitions
Accused Products
Abstract
A network interface controller includes a plurality of scatter gather circuits (104a-104d) connectable to a host via a bus (101). A packet buffer (112) is configured for communication with the scatter gather circuits (104a-104d). A plurality of access circuits (110a-110d) are configured to access external network connections. An optional forwarding engine (108) is selectable to generate routing information corresponding to data received via the access circuits (110a-110d) and to provide the routing information to the packet buffer (112).
139 Citations
22 Claims
-
1. A network interface controller configured to facilitate communication among a host and external network connections to a network, comprising:
-
a plurality of scatter gather circuits configured to be connected to the host via a host bus; a packet buffer configured for communication with the scatter gather circuits; a plurality of access circuits configured to access the external network connections; and a forwarding engine selectable to generate routing information corresponding to particular data, received via a particular access circuit from a particular one the external network connections, wherein the particular access circuit is any of the plurality of access circuits, and to provide the routing information to the packet buffer, wherein the network interface controller is configured to selectively operate in at least a switch mode of operation, in which the scatter gather circuits are configured for pass-through communication of the particular data between the packet buffer and host bus, and the forwarding engine is configured to generate the routing information to cause the particular data to be routed between the particular access circuit and the packet buffer; and a hybrid mode of operation, in which the forwarding engine is configured to process the particular data to determine whether the particular data is to be switched to another access circuit, different from the particular access circuit, to be provided to another external network connection, different from the particular external network connection, or whether the particular data is to be provided from the particular access circuit to the packet buffer and from the packet buffer to the scatter gather circuits for delivery to the host. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of configuring a system including a plurality of network interface controllers, wherein at least a first of the plurality of network interface controllers comprises:
-
a plurality of scatter gather circuits configured to be connected to the host via a host bus; a packet buffer configured for communication with the scatter gather circuits; a plurality of access circuits configured to access the external network connections; and a forwarding engine selectable to generate routing information corresponding to particular data, received via a particular access circuit from a particular one the external network connections, wherein the particular access circuit is any of the plurality of access circuits, and to provide the routing information to the packet buffer, wherein the at least one network interface controller is configured to selectively operate in at least a switch mode of operation, in which the scatter gather circuits are configured for pass-through communication of the particular data between the packet buffer and host bus, and the forwarding engine is configured to generate the routing information to cause the particular data to be routed between the particular access circuit and the packet buffer; and a hybrid mode of operation, in which the forwarding engine is configured to process the particular data to determine whether the particular data is to be switched to another access circuit, different from the particular access circuit, to be provided to another external network connection, different from the particular external network connection, or whether the particular data is to be provided from the particular access circuit to the packet buffer and from the packet buffer to the scatter gather circuits for delivery to the host, the method to configure the first of the plurality of network interface controllers, operating in the hybrid mode of operation, and a second one of the plurality of network interface controllers to operate a virtual channel over the host bus, comprising; configuring one of the scatter gather circuits of the first of the plurality of network interface controllers to write the particular data, provided from the packet buffer, to a reserved range of memory addresses; and configuring a scatter gather circuit of a second of the plurality of network interface controllers to receive the particular data from the reserved range of memory addresses. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A network interface controller configured to facilitate communication among a host and external network connections to a network, comprising:
-
a plurality of scatter gather circuits configured to be connected to the host via a host bus; a packet buffer configured for communication with the scatter gather circuits; a plurality of access circuits configured to access the external network connections; and a forwarding engine configured to generate routing information from a layer 2 header corresponding to particular data of received data and not from any information in layers above layer 2, the received data received via a particular access circuit from a particular one the external network connections, wherein the particular access circuit is any of the plurality of access circuits, and to provide the routing information to the packet buffer, wherein the provided routing information is indicative of another access circuit, different from the particular access circuit, such that the particular data is routed from the packet buffer to the other access circuit to be provided from the other access circuit to another external network connection, different from the particular external network connection. - View Dependent Claims (16, 17, 18)
-
-
19. A network interface controller configured to facilitate communication among a host and external network connections to a network, comprising:
-
a plurality of scatter gather circuits configured to be connected to the host via a host bus; a packet buffer configured for communication with the scatter gather circuits; a plurality of access circuits configured to access the external network connections; and a forwarding engine configured to generate routing information from a layer 2 header corresponding to particular data of received data and not from any information in layers above layer 2, the received data received via a particular access circuit from a particular one the external network connections, wherein the particular access circuit is any of the plurality of access circuits, and to provide the routing information to the packet buffer, wherein the forwarding engine is configured such that the provided routing information selectively indicates one of another access circuit, different from the particular access circuit, and a scatter gather circuit, and if the routing information indicates another access circuit, the particular data is routed from the packet buffer to the other access circuit to be provided from the other access circuit to another external network connection, different from the particular external network connection and if the routing information indicates a scatter gather circuit, the particular data is routed from the packet buffer to the indicated scatter gather circuit. - View Dependent Claims (20)
-
-
21. A network interface controller configured to facilitate communication among a host and external network connections to a network, comprising:
-
a plurality of scatter gather circuits configured to be connected to the host via a host bus; a packet buffer configured for communication with the scatter gather circuits; a plurality of access circuits configured to access the external network connections, wherein the packet buffer is also configured for communication with the plurality of access circuits; and a forwarding engine configured to generate routing information corresponding to particular data, received from a first particular access circuit from a first particular one of the external network connections or from a first particular scatter gather circuit, wherein the first particular access circuit is any of the plurality of access circuits, the first particular one of the external network connections is an external network connection to which the first particular access circuit is coupled, and wherein the particular scatter gather circuit is any one of the plurality of scatter gather circuits, the routing information is indicative of a second particular access circuit or a second particular scatter gather circuit, wherein the second particular access circuit is any of the plurality of access circuits and the second particular scatter gather circuit is any one of the plurality of scatter gather circuits; the forwarding engine is further configured to provide the routing information to the packet buffer; and the packet buffer is configured to provide the particular data, based on the routing information provided from the forwarding engine, to the second particular access circuit or to the second particular scatter gather circuit.
-
-
22. A network interface controller, comprising:
-
a plurality of scatter gather circuits configured to be connected to the host via a host bus; a packet buffer configured for communication with the scatter gather circuits; and a forwarding engine configured to generate routing information corresponding to particular data of received data and not from any information in layers above layer 2, the received data received via a particular scatter gather circuit and provided to the packet buffer, and to provide the routing information to the packet buffer, wherein the forwarding engine is configured such that the provided routing information indicates one of another scatter gather circuit, different from the particular scatter gather circuit, and the particular data is routed from the packet buffer to the other scatter gather circuit.
-
Specification