# US 2020/0401434 A1 · Precision time protocol in a virtualized environment

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

- Number: US 2020/0401434 A1
- Document ID: US20200401434A1
- Status: Published application
- Kind: A1
- Application number: 16/446,139
- Filed: 2019-06-19
- Published: 2020-12-24
- Earliest claimed: 2019-06-19
- Assignees: VMware, Inc.
- Applicants: VMware, Inc.
- Inventors: VIVEK MOHAN THAMPI; Joseph A. Landers
- Web page: https://patentgrep.com/patent/US20200401434A1

## CPC

- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 1/14: Time supervision arrangements, e.g. real time clock
- G06F 13/4221: {being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus}
- H04J 3/0667: {Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays (arrangements for monitoring round trip delays in packet switching networks H04L43/0864)}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- G06F 2213/0024: Peripheral component interconnect [PCI]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04J: MULTIPLEX COMMUNICATION (transmission in general H04B; peculiar to transmission of digital information H04L5/00; systems for the simultaneous or sequential transmission of more than one television signal H04N7/08; in exchanges H04Q11/00; stereophonic systems H04S)

## Abstract

Disclosed are aspects of a Precision Time Protocol (PTP) implementation in a virtualized environment. A PTP daemon is executed in a VM that publishes clock parameters generated from a NIC providing a PTP stack to a shared memory space. Other VM's can obtain the clock parameters and synchronize clocks using a PTP daemon executed on the VM.

## Claims

### Claim 1

A computer-implemented method, comprising:
executing a precision time protocol (PTP) virtual machine (VM) on a host machine, the host machine comprising a physical network interface card (NIC), the PTP VM executed by a hypervisor on the host machine;
binding the PTP VM to the physical NIC through the hypervisor, wherein the PTP VM is provided direct access to the physical NIC through the hypervisor;
executing a PTP daemon on an operating system executed by the PTP VM;
configuring the PTP daemon implementing the PTP daemon on the PTP VM to generate at least one PTP time parameter based on the direct access to the physical NIC;
obtaining the at least one PTP time parameter from the PTP daemon; and
publishing the at least one PTP time parameter into a portion of memory of the PTP VM, wherein the portion of memory of the PTP VM is shared with other VMs executed by the host machine that are within a common PTP time domain as the PTP VM.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein another VM executed by the PTP VM is configured to derive a local clock on the other VM from the at least one PTP time parameter published in the portion of memory of the PTP VM.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the portion of memory of the PTP VM is shared using a memory sharing feature of the hypervisor.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the at least one PTP time parameter comprises a string identifying a time domain associated with the PTP VM.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein binding the PTP VM to the physical NIC further comprises linking the PTP VM and the physical NIC using a peripheral component interconnect (PCI) pass-through feature of the hypervisor.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein another VM executed by the host machine utilizes a virtual NIC for network accessibility rather than the physical NIC, wherein the virtual NIC relies upon a different physical NIC in the host machine.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6, further comprising:
executing a second PTP VM on the host machine, the host machine comprising a second physical NIC, the second PTP VM executed by the hypervisor on the host machine;
binding the second PTP VM to the second physical NIC through the hypervisor, wherein the PTP VM is provided direct access to the physical NIC through the hypervisor;
executing a second PTP daemon on an operating system executed by the second PTP VM;
configuring the second PTP daemon to implement PTP on the PTP VM;
obtaining a second at least one PTP time parameter from the PTP daemon; and
publishing the second at least one PTP time parameter into a portion of memory of the second PTP VM, wherein the portion of memory of the second PTP VM is shared with other VMs executed by the host machine that are within a second PTP time domain.

### Claim 8

A system, comprising:
a host machine comprising at least one processor, the host machine configured to at least:
execute a precision time protocol (PTP) virtual machine (VM) on the host machine, the host machine comprising a physical network interface card (NIC), the PTP VM executed by a hypervisor on the host machine;
bind the PTP VM to the physical NIC through the hypervisor, wherein the PTP VM is provided direct access to the physical NIC through the hypervisor;
execute a PTP daemon on an operating system executed by the PTP VM;
configure the PTP daemon implementing the PTP daemon on the PTP VM to generate at least one PTP time parameter based on the direct access to the physical NIC;
obtain the at least one PTP time parameter from the PTP daemon; and
publish the at least one PTP time parameter into a portion of memory of the PTP VM, wherein the portion of memory of the PTP VM is shared with other VMs executed by the host machine that are within a common PTP time domain as the PTP VM.

### Claim 9 (depends on 8)

The system of claim 8, wherein another VM executed by the PTP VM is configured to derive a local clock on the other VM from the at least one PTP time parameter published in the portion of memory of the PTP VM.

### Claim 10 (depends on 8)

The system of claim 8, wherein the portion of memory of the PTP VM is shared using a memory sharing feature of the hypervisor.

### Claim 11 (depends on 8)

The system of claim 8, wherein the at least one PTP time parameter comprises a string identifying a time domain associated with the PTP VM.

### Claim 12 (depends on 8)

The system of claim 8, wherein binding the PTP VM to the physical NIC further comprises linking the PTP VM and the physical NIC using a peripheral component interconnect (PCI) pass-through feature of the hypervisor.

### Claim 13 (depends on 8)

The system of claim 8, wherein another VM executed by the host machine utilizes a virtual NIC for network accessibility rather than the physical NIC, wherein the virtual NIC relies upon a different physical NIC in the host machine.

### Claim 14 (depends on 13)

The system of claim 13, wherein the host machine is further configured to at least:
execute a second PTP VM on the host machine, the host machine comprising a second physical NIC, the second PTP VM executed by the hypervisor on the host machine;
bind the second PTP VM to the second physical NIC through the hypervisor, wherein the PTP VM is provided direct access to the physical NIC through the hypervisor;
execute a second PTP daemon on an operating system executed by the second PTP VM;
configure the second PTP daemon to implement PTP on the PTP VM;
obtain a second at least one PTP time parameter from the PTP daemon; and
publish the second at least one PTP time parameter into a portion of memory of the second PTP VM, wherein the portion of memory of the second PTP VM is shared with other VMs executed by the host machine that are within a second PTP time domain.

### Claim 15

A non-transitory computer-readable medium embodying code executable by a host machine, the code causing the host machine to at least:
execute a precision time protocol (PTP) virtual machine (VM) on the host machine, the host machine comprising a physical network interface card (NIC), the PTP VM executed by a hypervisor on the host machine;
bind the PTP VM to the physical NIC through the hypervisor, wherein the PTP VM is provided direct access to the physical NIC through the hypervisor;
execute a PTP daemon on an operating system executed by the PTP VM;
configure the PTP daemon implementing the PTP daemon on the PTP VM to generate at least one PTP time parameter based on the direct access to the physical NIC;
obtain the at least one PTP time parameter from the PTP daemon; and
publish the at least one PTP time parameter into a portion of memory of the PTP VM, wherein the portion of memory of the PTP VM is shared with other VMs executed by the host machine that are within a common PTP time domain as the PTP VM.

### Claim 16 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein another VM executed by the PTP VM is configured to derive a local clock on the other VM from the at least one PTP time parameter published in the portion of memory of the PTP VM.

### Claim 17 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein the portion of memory of the PTP VM is shared using a memory sharing feature of the hypervisor.

### Claim 18 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein binding the PTP VM to the physical NIC further comprises linking the PTP VM and the physical NIC using a peripheral component interconnect (PCI) pass-through feature of the hypervisor.

### Claim 19 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein another VM executed by the host machine utilizes a virtual NIC for network accessibility rather than the physical NIC, wherein the virtual NIC relies upon a different physical NIC in the host machine.

### Claim 20 (depends on 19)

The non-transitory computer readable medium of claim 19, wherein the code, when executed by the host machine, further cause the host machine to at least:
execute a second PTP VM on the host machine, the host machine comprising a second physical NIC, the second PTP VM executed by the hypervisor on the host machine;
bind the second PTP VM to the second physical NIC through the hypervisor, wherein the PTP VM is provided direct access to the physical NIC through the hypervisor;
execute a second PTP daemon on an operating system executed by the second PTP VM;
configure the second PTP daemon to implement PTP on the PTP VM;
obtain a second at least one PTP time parameter from the PTP daemon; and
publish the second at least one PTP time parameter into a portion of memory of the second PTP VM, wherein the portion of memory of the second PTP VM is shared with other VMs executed by the host machine that are within a second PTP time domain.
