# US 10,120,706 B2 · Techniques to migrate a virtual machine

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

- Number: US 10,120,706 B2
- Document ID: US10120706B2
- Status: Granted
- Kind: B2
- Application number: 14/717,515
- Filed: 2015-05-20
- Published: 2015-09-10
- Granted: 2018-11-06
- Earliest claimed: 2006-09-28
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Eliel Louzoun; Mickey Gutman; Gregory Cummings
- Web page: https://patentgrep.com/patent/US10120706B2

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 15/167: using a common memory, e.g. mailbox
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- H04L 69/16: Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L 69/161: {Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields}
- H04L 69/162: {involving adaptations of sockets based mechanisms (secure socket layer H04L63/168)}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- 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 described that can be used to enable a transfer of an operating system from one machine to another. The transfer permits the operating system to be available to the target machine at buffers that are accessible to one or more application or other logic. In some implementations, information related to an operating system migration is stored in a buffer that is accessible to an application that is to use the information and thereby avoids a copy of such information from an intermediate buffer to an application buffer.

## Claims

### Claim 1

At least one non-transitory computer readable storage medium storing instructions thereon that when executed by one or more processors cause the one or more processors to:
assign at least one buffer to store a portion of a received network protocol unit;
determine whether a received network protocol unit carries information for a migration of a virtual machine;
cause transfer of a portion of a received network protocol unit to the assigned at least one buffer in response to a determination that the received network protocol unit carries information for a migration of a virtual machine;
provide availability to logic of at least the portion of the received network protocol unit directly from the assigned at least one buffer, wherein the logic is to access the at least the portion of the received network protocol unit directly from the assigned at least one buffer, and without a copy of the at least the portion of the received network protocol unit from the assigned at least one buffer to another buffer, wherein
the transferred portion carries information associated with a migration of a virtual machine and
the logic comprises at least a virtual machine manager for managing migration of the virtual machine to its recipient.

### Claim 2 (depends on 1)

The at least one non-transitory computer readable medium of claim 1, further comprising instructions stored thereon that when executed by one or more processors cause the one or more processors to:
identify a TCP/IP socket associated with the migration of the virtual machine.

### Claim 3 (depends on 2)

The at least one non-transitory computer readable medium of claim 2, wherein to determine whether a received network protocol unit carries information for a migration of a virtual machine, the instructions are to cause the one or more processors to determine whether a sequence number of the received network protocol unit matches an expected sequence number and the received network protocol unit is within the socket.

### Claim 4 (depends on 1)

The at least one non-transitory computer readable medium of claim 1, wherein to assign, the instructions are to cause the one or more processors to transfer identification of the at least one buffer to a network component.

### Claim 5 (depends on 1)

The at least one non-transitory computer readable medium of claim 1, further comprising instructions stored thereon that when executed by one or more processors cause the one or more processors to:
assign a second buffer to store a portion of a received network protocol unit and
selectively transfer a portion of a second received network protocol unit to the assigned second buffer in response to a determination that the second received network protocol unit is not associated with a virtual machine migration.

### Claim 6 (depends on 1)

The at least one non-transitory computer readable medium of claim 1, wherein the at least the portion of the received network protocol unit is not copied from the assigned at least one buffer prior to the access by the logic.

### Claim 7 (depends on 1)

The at least one non-transitory computer readable medium of claim 1, wherein the portion of the received network protocol unit transferred to the assigned at least one buffer is not copied to another buffer prior to access by the logic.

### Claim 8 (depends on 1)

The at least one non-transitory computer readable medium of claim 1, wherein a network component is to transfer the portion of the received network protocol unit to the assigned at least one buffer and the portion of the received network protocol unit transferred to the assigned at least one buffer is not copied to another buffer prior to access by the logic.

### Claim 9

A computer-implemented method, the method comprising:
assigning at least one buffer to store a portion of a received network protocol unit;
determining whether a received network protocol unit carries information for a migration of a virtual machine;
transferring a portion of a received network protocol unit to the assigned at least one buffer in response to a determination that the received network protocol unit carries information for a migration of a virtual machine;
providing availability to logic of at least the portion of the received network protocol unit directly from the assigned at least one buffer, wherein the logic is to access the at least the portion of the received network protocol unit directly from the assigned at least one buffer, and without a copy of the at least the portion of the received network protocol unit from the assigned at least one buffer to another buffer, wherein
the transferred portion carries information associated with a migration of a virtual machine and
the logic comprising at least a virtual machine manager for managing migration of the virtual machine to its recipient.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
identifying a TCP/IP socket associated with the migration of the virtual machine.

### Claim 11 (depends on 10)

The method of claim 10, wherein the determining whether a received network protocol unit carries information for a migration of a virtual machine comprises determining whether a sequence number of the received network protocol unit matches an expected sequence number and the received network protocol unit is within the socket.

### Claim 12 (depends on 9)

The method of claim 9, wherein the assigning at least one buffer comprises transferring identification of the at least one buffer to a network component.

### Claim 13 (depends on 9)

The method of claim 9, further comprising:
assigning a second buffer to store a portion of a received network protocol unit and
selectively transferring a portion of a second received network protocol unit to the second buffer in response to a determination that the second received network protocol unit is not associated with a migration of a virtual machine.

### Claim 14 (depends on 9)

The method of claim 9, wherein:
the at least the portion of the received network protocol unit is not copied from the assigned at least one buffer prior to the access by the logic.

### Claim 15 (depends on 9)

The method of claim 9, wherein the portion of the received network protocol unit transferred to the assigned at least one buffer is not copied to another buffer prior to access by the logic.

### Claim 16 (depends on 9)

The method of claim 9, further comprising:
a network component transferring the portion of the received network protocol unit to the assigned at least one buffer, wherein the portion of the received network protocol unit transferred to the assigned at least one buffer is not copied to another buffer prior to access by the logic.

### Claim 17

A system comprising:
a host system, the host system comprising at least one memory and a network component, the host system to:
assign at least one buffer to store a portion of a received network protocol unit;
determine whether a received network protocol unit carries information for a virtual machine migration;
cause transfer of a portion of a received network protocol unit to the assigned at least one buffer in response to a determination that the received network protocol unit carries information for a virtual machine migration, wherein
the network component is to store the portion of the received network protocol unit directly into the assigned at least one buffer,
the stored portion comprising information associated with a migration of a virtual machine,
a logic to access the stored portion of the received network protocol unit directly from the assigned at least one buffer, without a copy of the at least the portion of the received network protocol unit from the assigned at least one buffer to another buffer, the logic comprising at least a virtual machine manager to manage migration of the virtual machine to the host system, and
the stored portion of the received network protocol unit in the assigned at least one buffer is not copied to another buffer prior to its access by the logic.

### Claim 18 (depends on 17)

The system of claim 17, wherein the host system is to:
identify a TCP/IP socket associated with the virtual machine migration.

### Claim 19 (depends on 18)

The system of claim 18, wherein to determine whether a received network protocol unit carries information for a virtual machine migration, the host system is to determine whether a sequence number of the received network protocol unit matches an expected sequence number and the received network protocol unit is within the socket.

### Claim 20 (depends on 17)

The system of claim 17, wherein to assign, the host system is to transfer identification of the at least one buffer to the network component.

### Claim 21 (depends on 17)

The system of claim 17, wherein the host system is to:
assign a second buffer to store a portion of a received network protocol unit and
selectively transfer a portion of a second received network protocol unit to the second buffer in response to a determination that the second received network protocol unit is not associated with a virtual machine migration.

### Claim 22 (depends on 17)

The system of claim 17, further comprising a display communicatively coupled to the host system.

### Claim 23 (depends on 1)

The at least one computer readable medium of claim 1, wherein the migration of the virtual machine comprises migration of a virtual operating system (OS).

### Claim 24 (depends on 9)

The method of claim 9, wherein the migration of the virtual machine comprises migration of a virtual operating system (OS).

### Claim 25 (depends on 17)

The system of claim 17, wherein the migration of the virtual machine comprises migration of a virtual operating system (OS).
