# US 12,111,681 B2 · Network adapter providing isolated self-contained time services

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

- Number: US 12,111,681 B2
- Document ID: US12111681B2
- Status: Granted
- Kind: B2
- Application number: 17/313,026
- Filed: 2021-05-06
- Published: 2022-11-10
- Granted: 2024-10-08
- Earliest claimed: 2021-05-06
- Assignees: Mellanox Technologies, Ltd.
- Applicants: Mellanox Technologies, Ltd.
- Inventors: Itai Levy; Dotan David Levi; Nir Nitzani; Natan Manevich; Alex Vaynman; Ariel Almog
- Web page: https://patentgrep.com/patent/US12111681B2

## CPC

- G06F 1/12: Synchronisation of different clock signals {provided by a plurality of clock generators}
- G06F 13/20: for access to input/output bus
- H04J 3/0697: {Synchronisation in a packet node}
- H04L 7/0012: {by comparing receiver clock with transmitter clock}
- 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)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A network adapter includes a network port for communicating with a communication network, a hardware clock, and circuitry. The circuitry is coupled to receive from the communication network, via the network port, one or more time-protocol packets that convey a network time used for synchronizing network devices in the communication network, to align the hardware clock to the network time conveyed in the time-protocol packets, and to make the network time available to one or more time-service consumers running in a host served by the network adapter.

## Claims

### Claim 1

An apparatus, comprising:
a hardware clock fitted in a network adapter; and
circuitry, which is contained within the network adapter and is to:
communicate with a host over a peripheral bus; receive, from a communication network, one or more time-protocol packets of a time-synchronization protocol, the time-protocol packets conveying a network time used for synchronizing network devices in the communication network;
run, within the network adapter, a software stack of the time-synchronization protocol, wherein running the software stack includes aligning the hardware clock to the network time conveyed in the time-protocol packets; and
make the network time available over the peripheral bus to one or more time-service consumers running in the host.

### Claim 2 (depends on 1)

The apparatus according to claim 1, wherein the circuitry is to make the network time available to the time-service consumers using a peripheral-bus device exposed on the peripheral bus.

### Claim 3 (depends on 2)

The apparatus according to claim 2, wherein the peripheral-bus device is a read-only bus device that transfers information only unidirectionally from the peripheral bus to the host.

### Claim 4 (depends on 1)

The apparatus according to claim 1, wherein the circuitry comprises a processor to run software that aligns the hardware clock.

### Claim 5 (depends on 1)

The apparatus according to claim 1, wherein the circuitry is to apply to the time-protocol packets timestamps having a defined timestamping accuracy, and to align the hardware clock with an accuracy that matches the timestamping accuracy.

### Claim 6 (depends on 1)

The apparatus according to claim 1, wherein the circuitry is to isolate the time-protocol packets from the host.

### Claim 7 (depends on 1)

The apparatus according to claim 1, wherein the circuitry is to isolate a control plane of the time-synchronization protocol from the host.

### Claim 8 (depends on 1)

The apparatus according to claim 1, wherein the circuitry is to calculate, based on the received time-protocol packets, one or more corrections that align the hardware clock to the network time, and to apply the calculated corrections to the hardware clock.

### Claim 9 (depends on 1)

The apparatus according to claim 1, wherein the circuitry is to align both a frequency and a time offset of the hardware clock to the network time, so as to make an offset-free value of the network time available to the host.

### Claim 10 (depends on 1)

The apparatus according to claim 1, wherein the circuitry is to make available a value of the network time that is usable by the time-service consumers without translation or conversion.

### Claim 11 (depends on 1)

The apparatus according to claim 1, wherein the circuitry is further to provide networking services to the host, concurrently with making the network time available to the host.

### Claim 12

A compute node, comprising:
a host, comprising one or more processors for running one or more time-service consumer processes;
a peripheral bus; and
a network adapter, which comprises a hardware clock and which is to:
communicate with the host over the peripheral bus;
receive, from a communication network, one or more time-protocol packets of a time-synchronization protocol, the time-protocol packets conveying a network time used for synchronizing network devices in the communication network;
run, within the network adapter, a software stack of the time-synchronization protocol, wherein running the software stack includes aligning the hardware clock to the network time conveyed in the time-protocol packets; and
make the network time available over the peripheral bus to the time-service consumer processes running in the host.

### Claim 13 (depends on 12)

The compute node according to claim 12, wherein the time-service consumer processes running in the host are of at least one process type selected from a group of types consisting of a user application, a Virtual Machine (VM), and operating-system process and a container.

### Claim 14 (depends on 12)

The compute node according to claim 12, wherein the host is to obtain the network time from the network adapter using a peripheral-bus device that is queried for the network time by the time-service consumer processes running in the host.

### Claim 15 (depends on 14)

The compute node according to claim 14, wherein the peripheral-bus device is a read-only bus device that transfers information only unidirectionally from the peripheral bus to the host.

### Claim 16

A method in a network adapter, the method comprising:
receiving in the network adapter, from a communication network, one or more time-protocol packets of a time-synchronization protocol, the time-protocol packets conveying a network time used for synchronizing network devices in the communication network;
running, within the network adapter, a software stack of the time-synchronization protocol, including aligning a hardware clock in the network adapter to the network time conveyed in the time-protocol packets; and
making the network time available over a peripheral bus to one or more time-service consumers running in a host served by the network adapter.

### Claim 17 (depends on 16)

The method according to claim 16, wherein making the network time available is performed using a peripheral-bus device exposed on the peripheral bus.

### Claim 18 (depends on 17)

The method according to claim 17, wherein the peripheral-bus device is a read-only bus device that transfers information only unidirectionally from the peripheral bus to the host.

### Claim 19

A method is a compute node, the method comprising:
running one or more time-service consumer processes in one or more processors of a host; and
in a network adapter that serves the host:
communicating with the host over a peripheral bus;
receiving, from a communication network, one or more time-protocol packets of a time-synchronization protocol, the time-protocol packets conveying a network time used for synchronizing network devices in the communication network;
running, within the network adapter, a software stack of the time-synchronization protocol, including aligning a hardware clock in the network adapter to the network time conveyed in the time-protocol packets; and
making the network time available over the peripheral bus to the time-service consumer processes running in the host.

### Claim 20 (depends on 19)

The method according to claim 19, wherein making the network time available is performed using a peripheral-bus device that is queried for the network time by the time-service consumer processes.

### Claim 21 (depends on 20)

The method according to claim 20, wherein the peripheral-bus device is a read-only bus device that transfers information only unidirectionally from the peripheral bus to the host.
