# US 2025/0147795 A1 · Teaming of smart nics

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2025/0147795 A1
- Document ID: US20250147795A1
- Status: Published application
- Kind: A1
- Application number: 19/018,197
- Filed: 2025-01-13
- Published: 2025-05-08
- Earliest claimed: 2021-12-22
- Assignees: VMware, Inc.
- Applicants: VMware LLC
- Inventors: Boon S. Ang; Wenyi Jiang; Guolin Yang; Jin Heo
- Web page: https://patentgrep.com/patent/US20250147795A1

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Some embodiments provide a method for a first smart NIC of multiple smart NICs of a host computer. Each of the smart NICs executes a smart NIC operating system that performs virtual networking operations for a set of data compute machines executing on the host computer. The method receives a data message sent by one of the data compute machines executing on the host computer. The method performs virtual networking operations on the data message to determine that the data message is to be transmitted from a port of a second smart NIC of the multiple smart NICs. The method passes the data message to the second smart NIC via a private communication channel connecting the plurality of smart NICs.

## Claims

### Claim 1

A system comprising:
a virtual function (VF) implemented on a host computer configured to receive data messages from a virtual machine (VM), the data messages comprising a first data message;
a packet processing circuit configured to execute virtualization operations, the virtualization operations comprising determining destinations of the data messages and applying load balancing;
a memory configured to store configuration data associated with the virtualization operation and results associated with the load balancing;
a communication interface configured to transmit the first data message to a first network interface card (NIC) based on a context associated with the first data message; and
a network port configured to transmit the data messages to an external network.

### Claim 2 (depends on 1)

The system of claim 1, wherein the communication is configured to receive a second data message from a second NIC via the network port.

### Claim 3 (depends on 1)

The system of claim 1, further comprising a smart network interface card.

### Claim 4 (depends on 1)

The system of claim 1, wherein the communication interface is configured to execute direct memory access (DMA) operations.

### Claim 5 (depends on 1)

The system of claim 1, wherein the communication interface comprises a virtual local area network channel.

### Claim 6 (depends on 1)

The system of claim 1, wherein the context indicates a status of virtualization operations.

### Claim 7 (depends on 1)

The system of claim 1, wherein the network port comprises aggregated communication links.

### Claim 8 (depends on 1)

The system of claim 1, wherein the network port is configured to prioritize network traffics based on quality of service parameters.

### Claim 9 (depends on 1)

The system of claim 1, wherein the packet processing circuit is configured to apply stateful firewall rules based on connection information including source and destination addresses.

### Claim 10 (depends on 1)

The system of claim 1, wherein the packet processing circuit is configured to process encapsulated network traffic using VXLAN or Geneve tunneling protocols.

### Claim 11 (depends on 1)

The system of claim 1, wherein the packet processing circuit is configured to replicate multicast data messages for transmission.

### Claim 12

A system comprising:
a virtual function implemented on a host computer, the virtual function configured to receive data messages from a virtual machine, each data message comprising a destination address;
a packet processing circuit configured to execute virtualization operations, the virtualization operations comprising determining whether the data messages are destined for the host computer or an external network and applying load balancing across one or more network ports;
a memory configured to store configuration data associated with the virtualization operations, including results of load balancing;
a communication interface configured to transmit data messages to another network interface card via a private communication channel; and
a network port configured to transmit data messages to an external network and to receive data messages from the external network.

### Claim 13 (depends on 12)

The system of claim 12, wherein the virtual function is configured to assign the data messages to virtual machines based on media access control (MAC) addresses or virtual local area network (VLAN) tags.

### Claim 14 (depends on 12)

The system of claim 12, wherein the virtual function is configured to monitor traffic statistics for each virtual machine and provide traffic metrics to a management system.

### Claim 15 (depends on 12)

The system of claim 12 wherein the virtual function is configured to support multiple virtual machines in parallel by allocating transmit and receive queues for each virtual machine.

### Claim 16 (depends on 12)

The system of claim 12, wherein the packet processing circuit is configured to execute stateful firewall operations based on connection information.

### Claim 17 (depends on 12)

The system of claim 12, wherein the packet processing circuit is configured to execute stateful firewall operations based on connection information.

### Claim 18 (depends on 12)

The system of claim 12, wherein the private communication channel comprises a peripheral component interconnect express (PCIe) interface.

### Claim 19

A system comprising:
a virtual function implemented on a host computer, the virtual function configured to receive data messages from a virtual machine, the data messages comprising a first data message;
a packet processing circuit configured to determine a context associated with the first data message and transmit the first data message to a second network interface card based on the context;
a memory configured to store the context and configuration data for the packet processing circuit;
a communication interface configured to exchange data messages and state synchronization information with another network device and synchronize state information; and
a network port configured to transmit data messages to an external network.

### Claim 20 (depends on 19)

The system of claim 19, wherein the packet processing circuit is configured to execute virtualization operations, including applying stateful firewall rules based on connection information comprising source and destination addresses.
