# US 11,907,749 B2 · RDMA with virtual address space

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

- Number: US 11,907,749 B2
- Document ID: US11907749B2
- Status: Granted
- Kind: B2
- Application number: 17/745,692
- Filed: 2022-05-16
- Published: 2022-09-01
- Granted: 2024-02-20
- Earliest claimed: 2018-10-08
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Alec Kochevar-Cureton; Somesh Chaturmohta; Norman C. Lam; Sambhrama Madhusudhan Mundkur; Daniel M. Firestone
- Web page: https://patentgrep.com/patent/US11907749B2

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 15/17331: {Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]}
- H04L 12/4645: {Details on frame tagging (routing of packets H04L45/00; support for virtual LAN H04L49/354)}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- 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)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Techniques are disclosed for implementing direct memory access in a virtualized computing environment. A memory access policy of the virtualized computing environment is applied to a direct memory access connection request received from a first virtual machine via an exception path. The request is flagged to indicate that the request has been processed and the request is forwarded to a network interface device configured to execute offloaded network functions for one or more virtual machines. A memory access policy of the virtualized computing environment is applied to a direct memory access connection reply received from a second virtual machine on the exception path. The reply is flagged to indicate that the reply has been processed and the reply is forwarded to the network interface device. A direct memory access connection is established between first and second virtual machines in accordance with the request.

## Claims

### Claim 1

A method for direct memory access in a virtualized computing environment comprising one or more computing devices, the method comprising:
in response to receiving a request for a direct memory access connection between a first virtual machine and a second virtual machine of the virtualized computing environment, flagging the request to indicate that the request has been processed;
forwarding the flagged request to a network interface device configured to execute direct memory access network functions between virtual machines of the virtualized computing environment;
flagging a direct memory access connection reply received from the second virtual machine to indicate that the reply has been processed;
forwarding the flagged direct memory access connection reply to the network interface device; and
causing the network interface device to establish the requested direct memory access connection between the first and second virtual machines based on the flagged request and reply.

### Claim 2 (depends on 1)

The method of claim 1, wherein the network interface device comprises a field programmable gate array (FPGA) configured to perform routability tasks.

### Claim 3 (depends on 1)

The method of claim 1, wherein the direct memory access comprises RDMA.

### Claim 4 (depends on 2)

The method of claim 2, wherein the FPGA is configured to perform operations of Generic Flow Tables (GFTs) to encapsulate an address space from a virtual network with physical space addresses.

### Claim 5 (depends on 2)

The method of claim 2, wherein the FPGA is programmed to process packets and send the processed packets to the network interface device.

### Claim 6 (depends on 1)

The method of claim 1, further comprising applying a memory access policy to the request and direct memory access connection reply.

### Claim 7 (depends on 1)

The method of claim 1, wherein the request and the direct memory access connection reply are marked as an exception by adding a VLAN tag.

### Claim 8 (depends on 1)

The method of claim 1, further comprising applying a filter that augments the network interface device and is configured to abstract details of the network interface device and FPGA.

### Claim 9

A network interface device comprising circuitry configured to perform operations comprising:
receive a request that was flagged to indicate that the request has been processed, the request for a direct memory access connection between a first virtual machine and a second virtual machine of a virtualized computing environment;
receive a direct memory access connection reply received from the second virtual machine and that has been flagged to indicate that the direct memory access connection reply has been processed; and
facilitate a direct memory access data transfer between virtual machines of the virtualized computing environment based at least in part on the request that was flagged to indicate that the request has been processed and the direct memory access connection reply.

### Claim 10 (depends on 9)

The network interface device of claim 9, wherein the circuitry comprises a field programmable gate array (FPGA) configured to perform direct memory access tasks.

### Claim 11 (depends on 9)

The network interface device of claim 9, wherein the direct memory access comprises RDMA.

### Claim 12 (depends on 10)

The network interface device of claim 10, wherein the FPGA is configured to perform operations of Generic Flow Tables (GFTs) to encapsulate an address space from a virtual network with physical space addresses.

### Claim 13 (depends on 9)

The network interface device of claim 9, wherein the circuitry is further configured to perform operations comprising sending packets to a virtual filtering platform for processing.

### Claim 14 (depends on 9)

The network interface device of claim 9, wherein a memory access policy is applied to the request and reply.

### Claim 15 (depends on 9)

The network interface device of claim 9, wherein the request and the reply are marked as an exception by adding a VLAN tag.

### Claim 16 (depends on 10)

The network interface device of claim 10, wherein a filter is applied that augments the network interface device and is configured to abstract details of the network interface device and FPGA.

### Claim 17

A system, comprising:
one or more processors; and
a memory in communication with the one or more processors, the memory having computer-readable instructions stored thereupon that, when executed by the one or more processors, cause the system to perform operations comprising:
in response to receiving a request for a direct memory access connection between a first virtual machine and a second virtual machine, flagging the request to indicate that the request has been processed;
forwarding the flagged request to a network interface device configured to execute direct memory access network functions between the first and second virtual machines;
flagging a direct memory access connection reply received from the second virtual machine to indicate that the reply has been processed;
forwarding the flagged direct memory access connection reply to the network interface device; and
offload establishment of the requested direct memory access connection between the first and second virtual machines to the network interface device based on the flagged request and direct memory access connection reply.

### Claim 18 (depends on 17)

The system of claim 17, wherein the request and the direct memory access connection reply are marked as an exception by adding a VLAN tag.

### Claim 19 (depends on 17)

The system of claim 17, further comprising applying a filter that augments the network interface device and configured to abstract details of the network interface device.

### Claim 20 (depends on 17)

The system of claim 17, further comprising computer-readable instructions stored thereupon that, when executed by the one or more processors, cause the system to perform operations comprising applying a memory access policy to the request and direct memory access connection reply.
