A network adapter that provides an isolated, self-contained time service
The network adapter synchronizes network time and provides it securely to hosts, addressing the challenges of accuracy and security in time synchronization by isolating the time synchronization protocol within the adapter, ensuring robust and efficient time services across diverse configurations and environments.
Patent Information
- Application Number
- CN202210456108.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-05-06
- Filing Date
- 2022-04-27
- Publication Date
- 2025-03-28
- Estimated Expiration
- 2042-04-27
AI Technical Summary
Existing communication networks face challenges in providing accurate and isolated time synchronization services to hosts, as existing solutions often require complex configurations and can be vulnerable to software attacks, especially in multi-tenant cloud environments where tenants may have limited control over the underlying infrastructure.
A network adapter that receives time protocol data packets from a communication network, synchronizes its hardware clock with the network time, and provides this synchronized time to host-based time service consumers through a secure, isolated mechanism, using a dedicated hardware clock and a software stack that runs the time synchronization protocol, thereby keeping the host's configuration and operation system independent of the time synchronization protocol.
This solution ensures high accuracy and security of time synchronization services, reducing the attack surface by isolating the time synchronization protocol within the network adapter, allowing it to be optimized for specific hardware and reducing the computational load on the host, while maintaining service integrity across varying loads and configurations.
Smart Images

Figure CN115314141B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates generally to time synchronization in communication networks, and more particularly to a network adapter that provides time services to a host computer. Background Art
[0002] Computer and communication networks can use various schemes and protocols to synchronize network nodes to a common time base. A common example of such a protocol is the Precision Time Protocol (PTP) defined in IEEE Standards 1588-2002 and 1588-2008 and later versions. PTP is used to synchronize clocks throughout a computer network and can achieve sub-microsecond accuracy.
[0003] US Patent 8,370,675 describes a method for clock synchronization, the method comprising: calculating an offset value between a local clock time of a real-time clock circuit and a reference clock time; and loading the offset value into a register associated with the real-time clock circuit. The local clock time is then added to the value in the register to give a corrected value of the local clock time synchronized with the reference clock.
[0004] U.S. Patent Application Publication 2020 / 0162234 describes an apparatus including a shared device that communicates with a plurality of computers external to the shared device. The shared device includes at least one PTP domain coefficient storage area that receives PTP coefficients from a computer having a PTP client and provides the PTP coefficients to a computer that does not have a PTP client. Summary of the invention
[0005] Embodiments of the invention described herein provide a network adapter comprising a network port for communicating with a communication network, a hardware clock, and a circuit. The circuit is coupled to: receive one or more time protocol packets from the communication network through the network port, the one or more time protocol packets conveying a network time for synchronizing network devices in the communication network; align the hardware clock with the network time conveyed in the time protocol packets; and make the network time available to one or more time service consumers running in a host served by the network adapter.
[0006] In some embodiments, the circuit is coupled to: communicate with the host via a peripheral bus; and make the network time available to the time service consumer using a peripheral bus device exposed on the peripheral bus. In an example embodiment, the peripheral bus device is a read-only bus device that can only transmit information unidirectionally from the peripheral bus to the host.
[0007] In a disclosed embodiment, the circuit includes a processor coupled to run software that aligns the hardware clock. In an embodiment, the time protocol data packet complies with a time synchronization protocol, and the processor is coupled to run a software stack of the time synchronization protocol that aligns the hardware clock with the network time.
[0008] In another embodiment, the circuit is coupled to apply a timestamp to the time protocol data packets with a defined timestamping accuracy, and the processor is coupled to align the hardware clock with an accuracy matching the timestamping accuracy. In another embodiment, the circuit is coupled to isolate the time protocol data packets from the host. In another embodiment, the time protocol data packets comply with a time synchronization protocol, and the circuit is coupled to isolate a control plane of the time synchronization protocol from the host.
[0009] In one embodiment, the circuit is coupled to: calculate one or more corrections based on the received time protocol data packet, the one or more corrections aligning the hardware clock with the network time; and apply the calculated corrections to the hardware clock. In one embodiment, the circuit is coupled to align both the frequency and time offset of the hardware clock with the network time so that the host can obtain an un-offset value of the network time. In another embodiment, the circuit is coupled to make the value of the network time available, which can be used by the time service consumer without conversion or translation.
[0010] Typically, the circuitry is further coupled to provide networking services to the host while making the network time available to the host.
[0011] According to an embodiment of the present invention, a computing node is also provided, which includes a host and a network adapter. The host includes one or more processors for running one or more time service consumer processes. The network adapter includes a hardware clock and is coupled to: receive one or more time protocol packets from a communication network, the one or more time protocol packets conveying network time for synchronizing network devices in the communication network; align the hardware clock with the network time conveyed in the time protocol packets; and make the network time available to the time service consumer process running in the host.
[0012] In various embodiments, the time service consumer process running in the host has at least one process type selected from the group consisting of user applications, virtual machines (VMs), operating system processes, and containers.
[0013] In some embodiments, the host and the network adapter are coupled to communicate with each other via a peripheral bus, and the host is coupled to obtain the network time from the network adapter using a peripheral bus device, the peripheral bus device querying the network time through the time service consumer process running in the host. In one embodiment, the peripheral bus device is a read-only bus device that can only transmit information unidirectionally from the peripheral bus to the host.
[0014] According to an embodiment of the present invention, a method in a network adapter is also provided. The method includes receiving one or more time protocol packets from a communication network in the network adapter, the one or more time protocol packets conveying a network time for synchronizing network devices in the communication network. A hardware clock in the network adapter is aligned with the network time conveyed in the time protocol packets. The network time is made available to one or more time service consumers running in a host served by the network adapter.
[0015] According to an embodiment of the present invention, a method for computing a node is further provided. The method includes running one or more time service consumer processes in one or more processors of a host. In a network adapter serving the host, one or more time protocol packets are received from a communication network, and the one or more time protocol packets convey network time for synchronizing communication devices in the communication network. A hardware clock in the network adapter is aligned with the network time conveyed in the time protocol packet. The network time is made available to the time service consumer process running in the host. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] The present invention will be more fully understood through the detailed description of the following embodiments in conjunction with the accompanying drawings, in which:
[0017] Figure 1 is a block diagram generally illustrating a computing system including a network adapter that provides isolated, self-contained time services to a host according to one embodiment of the present invention; and
[0018] Figure 2 is a flow chart schematically illustrating a method for providing isolated, self-contained time services by a network adapter according to an embodiment of the present invention. DETAILED DESCRIPTION
[0019] Overview
[0020] Embodiments of the invention described herein provide improved network adapters that, in addition to connecting their hosts to a network, also provide accurate time services to the hosts.
[0021] In this context, the term "time service" refers to a service by which a network adapter provides the current network time to a host. The term "network time" refers to a common time reference used to synchronize network devices (e.g., computing nodes, network adapters, network switches, etc.) in a network with each other. Network devices typically synchronize with the network time by exchanging time protocol packets of a suitable time synchronization protocol such as PTP.
[0022] In some embodiments, the network adapter communicates with the host via a peripheral bus (e.g., a Peripheral Component Interconnect Express (PCIe) bus). The host includes one or more processors that can run various "time service consumers," such as user applications, virtual machines (VMs), operating system processes, or any other suitable software that uses network time. At least some of the time service consumers may require a highly accurate indication of network time to execute various time-sensitive applications. In order to provide time services to time service consumers running in the host, the network adapter includes the following:
[0023] A hardware clock that tracks network time (e.g., PTP Hardware Clock - PHC).
[0024] A processor running a software stack of a time synchronization protocol. The software stack typically receives a time protocol packet (e.g., a PTP packet) from the network and aligns ("canonicalizes") the hardware clock with the network time based on the received time protocol packet. In some embodiments, the aligned ("canonical") network time is made available to the time service consumer using one or more dedicated devices (e.g., a PCIe device, also referred to as a PCIe interface) exposed to the host via a peripheral bus. In other embodiments, other mechanisms for providing network time may be used, such as shared memory.
[0025] When using the disclosed techniques, the host is typically completely isolated from the control plane of the time synchronization protocol. Time protocol packets arriving from the network are processed by the software stack of the time synchronization protocol running in the network adapter and typically do not reach the host. The host's interaction with the time service is typically limited to querying a dedicated device for the current network time. The time service consumer does not need to support the time synchronization protocol (e.g., PTP). The time service consumer does not even need to be aware of (i.e., have any information about) the fact that such a protocol is being used.
[0026] The isolated time service solution described in this article offers considerable advantages. For example, the implementation of the time service is independent of the hardware and software configuration of the host, the host operating system, and the software that the host can run. Therefore, configuration changes in the host, such as hardware or software upgrades, have no effect on the time service. The accuracy of the time service remains constant regardless of load conditions and the hardware and software configuration or topology of the host.
[0027] In addition, since the time service is implemented entirely within the network adapter, the software stack of the time synchronization protocol can be designed and optimized for the specific network adapter hardware. The network adapter can provide pre-configured time synchronization protocol hardware and software "out of the box". For example, the software stack can be optimized for the accuracy of a specific hardware clock used in the network adapter. In an example embodiment, the software stack can avoid aligning the hardware clock with a resolution or timestamping resolution (e.g., 400nSec) that is finer than the accuracy of the hardware clock. Offloading the time synchronization protocol stack to the network adapter also reduces the computational load of the host.
[0028] Furthermore, isolating the host from the time service provides a high degree of security. Since the host is exposed only to dedicated devices with specific functions through the peripheral bus, the "attack surface" that can be exploited by malware is very small. Vulnerability is further reduced by the fact that the exposed devices are usually read-only devices, which means that the flow of time-related information is unidirectional from the network adapter to the host.
[0029] The disclosed solution can be used for a variety of applications and use cases. One typical example is a server in a "bare metal cloud" data center, where clients ("tenants") are provided full access to the host. Another typical example is a server in a multi-tenant cloud-based data center (sometimes called a "virtualized cloud"). In both use cases, the service provider has little or no control over the end user's instance (which may include an entire host, a VM, a container, or any other suitable entity). In such environments, a time service that is isolated and self-contained within a network adapter works very well.
[0030] When the disclosed technology is used in a cloud architecture, time services can be provided to tenants in a transparent manner that is easy to integrate with the tenant's system, regardless of the operating system and software used by the tenant. At the same time, the entire time synchronization protocol infrastructure and configuration remain hidden from the tenant, thereby isolating and protecting the cloud provider network from possible attacks from tenant software. Cloud providers can also use a single time synchronization protocol infrastructure to serve multiple isolated tenants (in a bare metal configuration or otherwise).
[0031] Providing accurate time service through network adapter
[0032] Figure 1 is a block diagram schematically illustrating a computing system 20 according to one embodiment of the present invention. System 20 includes a network adapter 32 that uses the techniques described in detail herein to provide isolated, self-contained time services to a host 24. In various embodiments, host 24 may include any suitable type of computer, such as a server in a data center or a computer in a high performance computing (HPC) cluster.
[0033] The network adapter 32 may include any suitable type of network adapter. In this example, the network adapter 32 is a high-performance device that includes one or more integrated CPUs 40 and processing hardware 44. Such a network adapter is also called a data processing unit (DPU) or a "smart network interface controller (Smart-NIC)". In an alternative embodiment, the network adapter 32 may include, for example, an Ethernet NIC, an Infiniband NIC, or a network interface controller. TM A host channel adapter (HCA), a network-enabled graphics processing unit (GPU), a field programmable gate array (FGPA), or any other suitable type of device capable of network communications. As an example, the following description refers to a DPU.
[0034] The host 24 and the DPU 32 communicate with each other via a peripheral bus 36. In this example, the bus 36 comprises a Peripheral Component Interconnect Express (PCIe) bus. Alternatively, any other suitable type of peripheral bus may be used.
[0035] DPU 32 connects host 24 to packet network 28. Network 28 may include, for example, a local area network (LAN) of a data center, a wide area network (WAN) (e.g., the Internet), or any other suitable type of network or combination of networks, depending on the applicable use case. Communication over network 28 may be performed using any suitable communication protocol (e.g., Ethernet or Infiniband). DPU 32 includes one or more network ports 52 ( Figure 1 A single port in the example of ) is used to connect to network 28.
[0036] In some embodiments, the DPU 32 is synchronized with the network time of the network 28. Typically, the network devices of the network 28 are synchronized with the network time by exchanging time protocol packets of a suitable time synchronization protocol. In this example, the time synchronization protocol is PTP, and the time protocol packets are referred to as PTP packets. Alternatively, the time synchronization protocol may include, for example, the Network Time Protocol (NTP) or Synchronous Ethernet (SyncE). (Aspects of synchronization using SyncE are addressed, for example, in U.S. patent application Ser. No. 16 / 920,772, filed on July 6, 2020, which is assigned to the assignee of the present patent application, and the disclosure of which is incorporated herein by reference.) As an example, the following description relates to PTP.
[0037] exist Figure 1 In an embodiment of the present invention, the DPU 32 is synchronized with the network time using (i) a PTP hardware clock (PHC) 56, which is part of the hardware 44, and (ii) a PTP daemon 60 running on the CPU 40. The PHC 56 tracks the network time and is used, for example, to time stamp inbound PTP packets (PTP packets received from the network 28 by the DPU 32) and outbound PTP packets (PTP packets sent to the network by the DPU). The PTP daemon 60 implements the PTP software stack. Among other tasks, the PTP daemon 60 aligns (norms) the PHC 56 with the network time based on the incoming PTP packets.
[0038] When the operating system of CPU 40 is Linux, PTP daemon 60 may include, for example, PTP4L software. Alternatively, PTP daemon 60 may include any other suitable software that executes the protocol stack of the time synchronization protocol used. In an example embodiment, CPU 40 runs the Linux operating system, and PTP4L software runs in a "hardware-aware" mode to have high stability and accuracy. In one embodiment, CPU 40 also maintains a PTP queue 64 for queuing incoming PTP packets waiting to be processed by PTP daemon 60.
[0039] In some embodiments, the DPU 32 provides isolated, self-contained time services to the host 24 using a dedicated PTP device 68 exposed on the PCIe bus 36. The present example involves a single PTP device 68. In alternative embodiments, multiple PTP devices 68 may be exposed on the PCIe bus.
[0040] A variety of time service consumers 48 (e.g., user applications, virtual machines, or operating system processes) running on the host 24 can request and receive the current network time from the PTP device 68. The time service consumer 48 can interact with the device 68 directly or indirectly, such as through an appropriate application programming interface (API). The host 24 includes one or more processors (e.g., CPUs—not shown). The time service consumer 48 can run on any processor in the host. For simplicity, software running on any processor of the host 24 is sometimes referred to as "running in the host 24."
[0041] As part of the "isolation" provided by the disclosed techniques, in some embodiments, PTP packets arriving from the network 28 are generally kept confined within the DPU 32 and do not reach the host 24. In contrast, non-PTP packets arriving from the network are passed to the host 24 and queued in one or more non-PTP queues 72 (as opposed to the PTP queues 64 that are part of the DPU 32).
[0042] Figure 1 The configuration of the network adapter (e.g., DPU) 32 and the host 24 shown in is an example configuration described purely for conceptual clarity. Any other suitable configuration may be used in alternative embodiments. For example, Figure 1 The embodiment shows a single host 24 served by a network adapter 32. In an alternative embodiment, the same network adapter (e.g., DPU) 32 may provide time services to multiple hosts 24 in parallel by exposing a PTP device 68 to multiple hosts. In an embodiment, the device 68 may be exposed to each host using a different name. Appropriate logic in the DPU 32 distinguishes requests for the device arriving from different hosts. In one example, different time offsets (e.g., corresponding to local times in different time zones) may be added to the network time provided to different hosts. Aspects of clock synchronization in a multi-host scenario, which may be combined with the disclosed techniques, are described in U.S. patent application Ser. No. 16 / 779,611, filed on Feb. 2, 2020, the disclosure of which is incorporated herein by reference.
[0043] In various embodiments, the synchronized hardware PTP clock functionality may be exposed to the time service consumer 48 on the host 24 in a variety of ways. In some embodiments, the host 24 operating system may run a native software driver to identify the synchronized PTP functionality through the PCIe bus 36 of the network adapter and expose the synchronized PTP functionality as a system PTP device 68. In other embodiments, some host operating systems may require appropriate middleware that will provide an API for the time service consumer to interact with the synchronized PTP functionality through the PCIe bus.
[0044] Figure 1 The embodiments of the present invention describe a certain functional division ("division of labor") between software and hardware, or between general-purpose processing circuitry (CPU 40 in this example) and dedicated network processing circuitry (hardware 44 in this example). In alternative embodiments, any other suitable division may be used, including pure software or pure hardware implementations. In this context, CPU 40 and hardware 44 (excluding port 52) are collectively referred to as "circuitry" that performs the techniques described herein. In alternative embodiments, the disclosed techniques may be implemented using any other suitable circuitry. Host 24 and network adapter 32 are also collectively referred to as computing nodes.
[0045] The various elements of the network adapter (e.g., DPU) 32 and the host 24 may be implemented using appropriate hardware (e.g., in one or more application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs)), using software, or using a combination of hardware and software elements. In some embodiments, any CPU 40 of the network adapter 32 and / or any CPU of the host 24 may include a general purpose processor that is programmed in software to perform the functions described herein. The software may be downloaded to the processor in electronic form, such as over a network, or it may, alternatively or additionally, be provided and / or stored on a non-transitory tangible medium, such as a magnetic, optical, or electronic memory.
[0046] Figure 2 is a flow chart schematically illustrating a method for providing an isolated, self-contained time service by a DPU 32 according to one embodiment of the present invention. The flow includes two branches that are generally executed in parallel. In the first branch, corresponding to steps 84-100, the DPU 32 receives data packets from the network, including PTP data packets, and uses the PTP data packets to align the PHC 56 with the network time. In the second branch, corresponding to steps 104-108, the DPU 32 uses the network time to provide time services to a time service consumer running in the host 24.
[0047] While the protocol stack runs step 80, the CPU 40 of the DPU 32 runs the PTP daemon 60, which implements the PTP software stack. At a packet reception step 84, the DPU 32 receives packets from the network 28 via port 52. At an inspection step 88, the hardware 44 inspects the received packets and classifies them into PTP packets and non-PTP packets. At a non-PTP forwarding step 92, the hardware 44 of the DPU 32 sends any non-PTP packets to the queue 72 of the host 24 via the PCIe bus 36. At a PTP forwarding step 96, the hardware 44 sends any PTP packets to the PTP queue 64 for processing by the PTP daemon 60. PTP packets are typically timestamped with the current network time by the PHC 56 before being forwarded to the queue 64.
[0048] In an alignment step 100, the PTP daemon 60 aligns the PHC 56 based on the time stamped PTP packets. The PTP daemon 60 typically calculates a correction to align the PHC 56 with the network time based on the received PTP packets and applies the calculated correction to the PHC. The method loops back to step 80 described above.
[0049] In parallel with steps 84-100, the PTP daemon 60 exposes the dedicated PTP device 68 to the host 24 via the PCIe bus 36 at a device exposure step 104. At a time service provisioning step 108, any time service consumer running in the host 24 can query the device 68 and thereby obtain the current network time. The method loops back to step 80 described above.
[0050] In some embodiments, the alignment of the PHC 56 (at step 100) includes frequency alignment and time offset alignment. Through this alignment of the PHC 56, the PTP device 68 can disclose the offset-free value of the current network time to the time service consumer 48, thereby eliminating the need for any conversion or translation in the host 24.
[0051] In various embodiments, the time service consumer 48 may use network time information in any suitable manner and for any suitable purpose. The host may use time-sensitive semantics and operations, such as, for example, "send packet X at 8:00 AM" or "forward packet Y to queue Z based on the arrival time of the packet." Such techniques are addressed in, for example, U.S. Patent Application Publication 2020 / 0162234 referenced above and U.S. Patent Application 16 / 782,075 filed on February 2, 2020, which has been assigned to the assignee of the present patent application and whose disclosure is incorporated herein by reference.
[0052] In one embodiment, the host 24 can use the time service to synchronize its own clock with the PHC 56 of the DPU 32 (and therefore with the network time) without having to execute any PTP stack. Any time service consumer 48 (e.g., a VM) can similarly synchronize its clock with the network time. Multiple different software entities in the host 24 can be synchronized in this manner. Aspects of this synchronization are also addressed in U.S. Patent Application Publication 2020 / 0162234 referenced above, the disclosure of which is incorporated herein by reference. Linux methods and services, such as PHC2SYS, can use the time service to synchronize with the network time with little or no software overhead.
[0053] Although the embodiments described herein primarily deal with various general cloud computing architectures, the methods and systems described herein may also be used for other applications, such as industry-specific cloud architectures (e.g., cloud architectures for telecommunications, media and entertainment, financial clouds, etc.). The architectures discussed may be implemented in the core or at the edge of the network. Further optionally, the disclosed techniques may be used for standard bare metal architectures without cloud / virtualization, which may be used for various industry-oriented applications. In one example, an enterprise customer may use the disclosed techniques to run time-sensitive applications on a bare metal operating system that does not support any time protocol software stack.
[0054] It should therefore be understood that the above embodiments are cited as examples, and the present invention is not limited to what has been specifically shown and described above. On the contrary, the scope of the present invention includes combinations and sub-combinations of the various features described above, as well as changes and modifications not disclosed in this specification and in the prior art that would occur to a person skilled in the art after reading the above description. The documents incorporated by reference in this patent application should be considered as an integral part of this application, unless any term defined in these incorporated documents in a manner that conflicts with the explicit or implicit definition in this specification, only the definition in this specification should be considered.
Claims
1. A network adapter, comprising: a hardware clock installed in the network adapter; and Circuitry, contained in the network adapter, for: Communicate with the host via the peripheral bus; receiving one or more time protocol packets of a time synchronization protocol from a communication network, the time protocol packets conveying a network time for synchronizing network devices in the communication network; executing a software stack of the time synchronization protocol within the network adapter, wherein executing the software stack includes aligning the hardware clock with a network time communicated in the time protocol data packet; as well as The network time is made available via the peripheral bus to one or more time service consumers executing in the host.
2. The network adapter of claim 1, wherein the circuit is to make the network time available to the time service consumer using a peripheral bus device exposed on the peripheral bus.
3. The network adapter of claim 2, wherein the peripheral bus device is a read-only bus device that can only transfer information unidirectionally from the peripheral bus to the host.
4. The network adapter of claim 1, wherein the circuitry comprises a processor for running software for aligning the hardware clocks.
5. The network adapter of claim 1, wherein the circuit is for applying a timestamp to the time protocol data packets with a defined timestamping accuracy and for aligning the hardware clock with an accuracy matching the timestamping accuracy.
6. The network adapter of claim 1, wherein the circuit is configured to isolate the time protocol data packets from the host.
7. The network adapter of claim 1, wherein the circuit is used to isolate a control plane of the time synchronization protocol from the host.
8. The network adapter of claim 1, wherein the circuit is to calculate one or more corrections based on the received time protocol data packets, the one or more corrections aligning the hardware clock with the network time; and apply the calculated corrections to the hardware clock.
9. The network adapter of claim 1, wherein the circuit is to align both the frequency and the time offset of the hardware clock with the network time so that the host can obtain an un-offset value of the network time.
10. The network adapter of claim 1, wherein the circuitry is to make the value of the network time available, the value of the network time usable by the time service consumer without conversion or translation.
11. The network adapter of claim 1, wherein the circuit is further configured to provide networking services to the host and enable the host to obtain the network time.
12. A computing node, comprising: a host computer comprising one or more processors for running one or more time service consumer processes; peripheral bus; and Network adapters, which contain a hardware clock and are used to: communicating with the host via the peripheral bus; receiving one or more time protocol packets of a time synchronization protocol from a communication network, the time protocol packets conveying a network time for synchronizing network devices in the communication network; executing a software stack of the time synchronization protocol within the network adapter, wherein executing the software stack includes aligning the hardware clock with the network time conveyed in the time protocol data packet; as well as The network time is made available to the time service consumer process running in the host through the peripheral bus.
13. The computing node according to claim 12, wherein the time service consumer process running in the host has at least one process type, and the at least one process type is selected from the group consisting of user applications, virtual machines (VMs), operating system processes, and containers.
14. The computing node of claim 12, wherein the host is configured to obtain the network time from the network adapter using a peripheral bus device, the peripheral bus device querying the network time through the time service consumer process running in the host.
15. The computing node of claim 14, wherein the peripheral bus device is a read-only bus device that can only transfer information unidirectionally from the peripheral bus to the host.
16. A method in a network adapter, the method comprising: One or more of the time synchronization protocols are received in the network adapter from the communication network. a time protocol data packet conveying a network time for synchronizing network devices in the communication network; running a software stack of the time synchronization protocol in the network adapter, including aligning a hardware clock in the network adapter with the network time communicated in the time protocol data packet; as well as The network time is made available over a peripheral bus to one or more time service consumers executing in a host serviced by the network adapter.
17. The method of claim 16, wherein making the network time available is performed using a peripheral bus device exposed on the peripheral bus.
18. The method of claim 17, wherein the peripheral bus device is a read-only bus device that can only transfer information unidirectionally from the peripheral bus to the host.
19. A method for computing a node, the method comprising: running one or more time service consumer processes in one or more processors of the host; as well as In the network adapter serving said host: Communicate with the host via a peripheral bus; receiving one or more time protocol packets of a time synchronization protocol from a communication network, the time protocol packets conveying a network time for synchronizing communication devices in the communication network; A software stack for running the time synchronization protocol in the network adapter includes synchronizing a hardware clock in the network adapter with a time synchronization protocol packet in the time protocol packet. said network time alignment communicated; as well as The network time is made available through the peripheral bus to a time service consumer process running in the host.
20. The method of claim 19, wherein making the network time available is performed using a peripheral bus device that is queried by the time service consumer process for the network time.
21. The method of claim 20, wherein the peripheral bus device is a read-only bus device that can only transfer information unidirectionally from the peripheral bus to the host.
Citation Information
Patent Citations
Network adapter with time-aware packet-processing pipeline
US11271874B2
Clock Synchronization
US20200162234A1
Multihost Clock Synchronization
US20210141413A1
Synthesized Clock Synchronization Between Network Devices
US20220021393A1
Precise clock synchronization
US8370675B2