US11543852B2ActiveUtilityA1
Multihost clock synchronization
Est. expiryNov 7, 2039(~13.3 yrs left)· nominal 20-yr term from priority
G06F 1/14H04J 3/0688H04J 3/0667G06F 1/12H03C 3/0966
83
PatentIndex Score
2
Cited by
157
References
24
Claims
Abstract
In one embodiment, a network interface card device includes communication interfaces to provide data connection with respective local devices configured to run respective clock synchronization clients, at least one network interface to provide data connection between a packet data network and ones of the local devices, and a hardware clock to maintain a time value, and serve the clock synchronization clients.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A network interface card device, comprising:
respective communication interfaces configured to provide data connection with respective local devices configured to run respective clock synchronization clients;
at least one network interface to provide data connection between a packet data network and ones of the local devices;
a hardware clock configured to maintain a time value, and serve the clock synchronization clients; and
a clock controller configured to designate one of the local devices as a controlling device for updating the hardware clock,
wherein the clock controller is configured to:
receive clock synchronization request messages generated by the clock synchronization clients of the respective local devices, the clock synchronization request messages including first respective clock synchronization request messages received from the designated controlling device and second respective clock synchronization request messages received from a non-controlling device of the local device; and
update the hardware clock responsively to first respective clock synchronization request messages received from the designated controlling device.
2. The device according to claim 1 , wherein the clock controller is configured to send respective confirmation messages to the non-controlling device without updating the hardware clock responsively to the second respective clock synchronization request messages.
3. The device according to claim 1 , wherein the clock controller is configured to select the controlling device in accordance with a selection method responsively to any one or more of the following: a lowest network address of respective ones of the local devices; a highest network address of respective ones of the local devices; an earliest one of respective ones of the local devices to boot; a lowest or highest communication bus device index; a controlling device having a most accurate oscillator of the local devices; an initial controlling device indicated by a baseboard management controller; a random selection from respective ones of the local devices; or selection from an ordered list of respective ones of the local devices on a round robin basis.
4. The device according to claim 2 , wherein the selection method is commanded by the baseboard management controller.
5. The device according to claim 1 , wherein the clock controller is configured to re-designate one of the local devices as a controlling device according to at least one re-designation criterion, responsively to any one or more of the following: the designated controlling device being non-responsive for more than a threshold time period; the designated controlling device being designated for a given or random time period; detecting a power-state change of the designated controlling device; detecting a driver start and/or driver stop on the designated controlling device; or detecting a driver start and/or driver stop on one of the local devices.
6. The device according to claim 5 , wherein the at least one re-designation criterion is commanded by a baseboard management controller.
7. The device according to claim 1 , wherein the clock controller is configured to:
receive a time value request message from the non-controlling device;
query the hardware clock for a time value responsively to the time value request message; and
send the time value to the non-controlling device.
8. The device according to claim 1 , wherein the local devices include network hosts.
9. The device according to claim 8 , wherein the local devices include a baseboard management controller.
10. The device according to claim 9 , wherein the designated controlling device is the baseboard management controller.
11. The device according to claim 10 , wherein the baseboard management controller is designated as the controlling device responsively to a command from the baseboard management controller to designate the baseboard management controller as the controlling device.
12. The device according to claim 1 , further comprising a memory configured to store respective offsets of respective ones of the local devices, the clock controller being configured to:
update the hardware clock responsively to the first respective clock synchronization request messages received from the designated controlling device adjusted by a respective one of the offsets of the designated controlling device of the local devices;
receive a time value request message from a first one of the local devices;
query the hardware clock for a time value responsively to the time value request message;
adjust the time value responsively to a respective one of the offsets of the first local device; and
send the adjusted time value to the first local device.
13. A network interfacing method, comprising:
providing data connection with respective local devices configured to run respective clock synchronization clients;
providing data connection between a packet data network and ones of the local devices;
maintaining a time value by a hardware clock;
designating one of the local devices as a controlling device for updating the hardware clock;
receiving clock synchronization request messages generated by the clock synchronization clients of the respective local devices;
updating the hardware clock responsively to first respective ones of the clock synchronization request messages received from only the designated controlling device, and sending respective confirmation messages to the designated controlling device indicating that the hardware clock was updated responsively to the first respective ones of the clock synchronization request messages; and
sending respective confirmation messages to a non-controlling device of the local devices spuriously indicating that the hardware clock was updated responsively to second respective ones of the clock synchronization request messages received from the non-controlling device.
14. The device according to claim 1 , wherein the clock controller is configured to:
send respective confirmation messages to the designated controlling device indicating that the hardware clock was updated responsively to the first respective clock synchronization request messages; and
send respective confirmation messages to the non-controlling device spuriously indicating that the hardware clock was updated responsively to the second respective clock synchronization request messages received from the non-controlling device.
15. The method according to claim 13 , wherein the sending the respective confirmation messages to the non-controlling device includes sending the respective confirmation messages to the non-controlling device without updating the hardware clock responsively to the second respective ones of the clock synchronization request messages.
16. A network interface card device, comprising:
respective communication interfaces configured to provide data connection with respective local devices configured to run respective clock synchronization clients;
at least one network interface to provide data connection between a packet data network and ones of the local devices;
a hardware clock configured to maintain a time value;
a memory configured to store respective offsets of respective ones of the local devices; and
a clock controller configured to:
receive clock synchronization request messages generated by a first one of the clock synchronization clients of a first respective one of the local devices;
update the hardware clock responsively to the clock synchronization request messages adjusted by a respective one of the offsets of the first respective one of the local devices;
receive a time value request message from a second one of the local devices;
query the hardware clock for a time value responsively to the time value request message;
adjust the time value responsively to a respective one of the offsets of the second local device; and
send the adjusted time value to the second local device.
17. A network interfacing method, comprising:
providing data connection with respective local devices configured to run respective clock synchronization clients;
providing data connection between a packet data network and ones of the local devices;
maintaining a time value by a hardware clock;
storing respective offsets of respective ones of the local devices;
receiving clock synchronization request messages generated by a first one of the clock synchronization clients of a first respective one of the local devices;
updating the hardware clock responsively to the clock synchronization request messages adjusted by a respective one of the offsets of the first respective one of the local devices;
receiving a time value request message from a second one of the local devices;
querying the hardware clock for a time value responsively to the time value request message;
adjusting the time value responsively to a respective one of the offsets of the second local device; and
sending the adjusted time value to the second local device.
18. A system comprising:
a network interface card device comprising:
respective communication interfaces configured to provide data connection with respective local devices configured to run respective clock synchronization clients;
at least one network interface to provide data connection between a packet data network and ones of the local devices;
a hardware clock configured to maintain a time value; and
a clock controller configured to: designate one of the local devices as a controlling device for updating the hardware clock; receive clock synchronization request messages generated by the clock synchronization clients of the respective local devices; update the hardware clock responsively to first respective ones of the clock synchronization request messages received from the designated controlling device, and send respective confirmation messages to the designated controlling device indicating that the hardware clock was updated responsively to the first respective ones of the clock synchronization request messages; and send respective confirmation messages to a non-controlling device of the local devices spuriously indicating that the hardware clock was updated responsively to second respective ones of the clock synchronization request messages received from the non-controlling device; and
the local devices comprising network hosts and a baseboard management controller.
19. The system according to claim 18 , wherein the clock controller is configured to send the respective confirmation messages to the non-controlling device indicating that the hardware clock was updated responsively to the second respective ones of the clock synchronization request messages received from the non-controlling device without updating the hardware clock responsively to the second respective ones of the clock synchronization request messages.
20. The system according to claim 18 , wherein: the clock controller is configured to select the controlling device in accordance with a selection method; and the baseboard management controller is configured to command the clock controller to use the selection method.
21. The system according to claim 20 , wherein the baseboard management controller is configured to command the clock controller to designate an initial controlling device of the local devices as the controlling device.
22. The system according to claim 18 , wherein: the clock controller is configured to re-designate one of the local devices as a controlling device according to at least one re-designation criterion; and the baseboard management controller is configured to command the clock controller to use the at least one re-designation criterion.
23. The system according to claim 18 , wherein the designated controlling device is the baseboard management controller.
24. The system according to claim 23 , wherein the baseboard management controller is configured to command the clock controller to designate the baseboard management controller as the controlling device.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.