Plurality of smart network interface cards on a single compute node
Example techniques and computing devices are disclosed. An example computing device includes a first non-uniform memory access (NUMA) node and a second NUMA nod. The first NUMA node includes a first network interface card, a first virtual router for one or more virtual networks, the first virtual router comprising first processing circuitry and configured with a first virtual host interface having a first Internet Protocol (IP) address, and a first workload executing on the first NUMA node. The second NUMA node includes a second network interface card, a second virtual router for the one or more virtual networks, the second virtual router comprising second processing circuitry and configured with a second virtual host interface having a second IP address, and a second workload executing on the second NUMA node.
1 . A physical server comprising:
a first non-uniform memory access (NUMA) node and a second NUMA node, wherein the first NUMA node comprises:
a first network interface card;
a first workload executing on the first NUMA node; and
a first virtual router for one or more virtual networks, the first virtual router comprising first processing circuitry and configured with a first virtual host interface having a first Internet Protocol (IP) address, wherein the first virtual router executes as another workload of the first NUMA node and the first virtual host interface comprises a virtual network interface configured for the another workload; and
wherein the second NUMA node comprises:
a second network interface card;
a second virtual router for the one or more virtual networks, the second virtual router comprising second processing circuitry and configured with a second virtual host interface having a second IP address, wherein the second virtual router is configured with routing information to cause the second virtual router to forward packets, destined for the first workload of the first NUMA node, via an external interface of the second network interface card to a switch external to the physical server; and
a second workload executing on the second NUMA node.
2 . The physical server of claim 1 , wherein the switch comprises an underlay switch.
3 . The physical server of claim 2 , wherein the first virtual router is configured with routing information to cause the first virtual router to forward packets, destined for the second workload of the second NUMA node, via an external interface of the first network interface card to the underlay switch external to the physical server.
4 . The physical server of claim 1 , wherein the first IP address and the second IP address are IP addresses for an underlay network coupled to the first network interface card and the second network interface card.
5 . The physical server of claim 1 , wherein the first virtual router is a data plane development kit (DPDK)-based virtual router.
6 . The physical server of claim 1 ,
wherein the first virtual router comprises a first virtual tunnel endpoint, and
wherein the second virtual router comprises a second virtual tunnel endpoint.
7 . The physical server of claim 1 , further comprising:
a virtual router agent for the first virtual router, the virtual router agent being configured to send the first IP address to a controller.
8 . The physical server of claim 1 , further comprising:
a network module configured to obtain, for the first workload, a NUMA identifier associated with the first NUMA node and determine that the NUMA identifier is associated with the first NUMA node.
9 . The physical server of claim 8 , further comprising:
a virtual router agent for the first virtual router,
wherein the network module is configured to request, in response to determining the NUMA identifier is associated with the first NUMA node, the virtual router agent for the first virtual router to add the virtual network interface for the first workload, and
wherein the virtual router agent for the first virtual router is configured to, in response to the request, add the virtual network interface for the first workload to the first virtual router.
10 . The physical server of claim 9 , wherein the virtual router agent for the first virtual router is further configured to send the first IP address to a controller to indicate the first IP address is a next hop for the first workload.
11 . A method comprising:
instantiating, on a first non-uniform memory access (NUMA) node of a physical server, a first workload, wherein the first NUMA node includes first processing circuitry and a first network interface card;
instantiating, on the first NUMA node, a first virtual router for one or more virtual networks, the first virtual router including a first virtual host interface having a first Internet Protocol (IP) address, wherein the first virtual router executes as another workload of the first NUMA node and the first virtual host interface comprises a virtual network interface configured for the another workload;
instantiating, on a second NUMA node of the physical server, a second virtual router for the one or more virtual networks, the second virtual router including a second virtual host interface having a second IP address, wherein the second NUMA node includes second processing circuitry and a second network interface card;
instantiating a second workload on the second NUMA node; and
forwarding, by the second virtual router and based on routing information, packets destined for the first workload of the first NUMA node, via an external interface of the second network interface card to a switch external to the physical server.
12 . The method of claim 11 , wherein the switch comprises an underlay switch.
13 . The method of claim 12 , further comprising:
forwarding, by the first virtual router and based on routing information, packets destined for the second workload of the second NUMA node, via an external interface of the first network interface card to the underlay switch external to the physical server.
14 . The method of claim 11 , wherein the first IP address and the second IP address are IP addresses for an underlay network coupled to the first network interface card and the second network interface card.
15 . The method of claim 11 , further comprising:
sending, by a virtual router agent for the first virtual router, the first IP address to a controller.
16 . The method of claim 15 , further comprising:
obtaining, by a network module, for the first workload, a NUMA identifier associated with the first NUMA node; and
determining that the NUMA identifier is associated with the first NUMA node.
17 . The method of claim 16 , further comprising:
sending, in response to determining the NUMA identifier is associated with the first NUMA node, a request to the virtual router agent for the first virtual router to add the virtual network interface for the first workload; and
adding, by the virtual router agent for the first virtual router, in response to the request, the virtual network interface for the first workload to the first virtual router.
18 . The method of claim 17 , further comprising:
sending, by the virtual router agent for the first virtual router, the first IP address to a controller to indicate the first IP address is a next hop for the first workload.