Patent ID: 8194667

Claim:
A method for obtaining a capability from a physical network interface card (NIC), comprising: sending a first query to the physical NIC for the capability, wherein the physical NIC is associated with a first set of capabilities; obtaining the capability from the physical NIC in response to the first query; sending the capability to a first virtual NIC, wherein the first virtual NIC is one of a plurality of virtual NICs associated with the physical NIC, wherein the first virtual NIC is associated with a second set of capabilities, wherein the second set of capabilities is a subset of the first set of capabilities, wherein the first virtual NIC is configured to access only capabilities in the second set of capabilities, and wherein the capability is in the second set of capabilities; sending the capability from the first virtual NIC to a first virtual network stack associated with the first virtual NIC, wherein the first virtual NIC is operatively connected to a first non-global container by the first virtual network stack, wherein the first non-global container is one of a plurality of non-global containers associated with a common operating system kernel, wherein each one of the plurality of non-global containers is an isolated execution environment, wherein the capability is used by the first virtual network stack to process first packets, and wherein the first packets are sent and received by the first non-global container using the first virtual NIC; sending a second query to the physical NIC for the capability; obtaining the capability from the physical NIC in response to the second query; sending the capability to a second virtual NIC, wherein the second virtual NIC is one of the plurality of virtual NICs associated with the physical NIC, wherein the virtual NIC is associated with a third set of capabilities, wherein the third set of capabilities is a subset of the first set of capabilities, wherein the second virtual NIC is configured to access only capabilities in the third set of capabilities, and wherein the capability is in the third set of capabilities; and sending the capability from the second virtual NIC to a second virtual network stack associated with the second virtual NIC, wherein the second virtual NIC is operatively connected to a second non-global container by the second virtual network stack, and wherein the second non-global container is one of the plurality of non-global containers associated with the common operating system kernel, wherein the capability is used by the second virtual network stack to process second packets, and wherein the second packets are sent and received by the second non-global container using the second virtual NIC.