IP Library Granted Patent US 10,944,852
Granted Patent B2
US 10,944,852 · App. 16/392,533 · Granted Mar 9, 2021

Computer network packet transmission timing

Inventors: Mohammed Hawari (Montigny-le-Bretonneux, FR); Andre Surcouf (St Leu la Foret, FR)
Assignee: CISCO TECHNOLOGY, INC.
H04L69/28H03M13/09H04J3/065H04J3/0644H04L49/9078
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,944,852
App. No.
16/392,533
Granted
Mar 9, 2021
Kind
B2
Abstract

Establishing an expected transmit time at which a network interface controller (NIC) is expected to transmit a next packet. Enqueuing, with the NIC and before the expected transmit time, a packet P 1 to be transmitted at the expected transmit time. Upon enqueuing P 1 , incrementing the expected transmit time by an expected transmit duration of P 1 . Transmitting at the NIC's line rate and timestamping enqueued P 1 with its actual transmit time. Adjusting the expected transmit time by a difference between P 1 's actual transmit and P 1 's expected transmit time. Requesting, before completion of transmitting P 1 , to transmit a P 2 at time t(P 2 ). Enqueuing, in sequence, zero or more P 0 , such that the current expected transmit time plus the duration of the transmission of the P 0 s at the line rate equals t(P 2 ). Transmitting at the line rate each enqueued P 0 . Upon enqueuing each P 0 , incrementing, for each P 0 , the expected transmit time by the expected transmit duration of the P 0 . Enqueuing P 2 for transmission directly following enqueuing the final P 0 . Transmitting, by the NIC, enqueued P 2 at t(P 2 ).

Claims (53)

1. A method, comprising:

establishing, by a computer network host, an expected transmit time at which a network interface controller (NIC) of the computer network host is expected to transmit a next packet of type P;

enqueuing, by the computer network host with the NIC and prior to the expected transmit time, a packet P 1 of type P to be transmitted by the NIC at the expected transmit time;

upon enqueuing P 1 , first incrementing, by the computer network host, the expected transmit time by an expected transmit duration of P 1 ;

transmitting at a line rate of the NIC and timestamping, by the NIC, enqueued P 1 with an actual transmit time of P 1 ;

adjusting, by the computer network host, the expected transmit time by a difference between the actual transmit time of P 1 and the expected transmit time of P 1 ;

requesting, by the computer network host and prior to completion by the NIC of transmitting P 1 , to transmit a packet P 2 of type P at a time t(P 2 ) later than the first incremented and adjusted expected transmit time;

enqueuing, by the computer network host in sequence, one or more packets P 0 of type P, such that the first incremented and adjusted expected transmit time plus an expected transmit duration of the transmission of the enqueued packets P 0 at the line rate of the NIC equals t(P 2 );

enqueuing, by the computer network host, packet P 2 for transmission directly following a final packet P 0 of the enqueued one or more packets P 0 ;

transmitting at the line rate of the NIC, by the NIC, each of the enqueued one or more packets P 0 ; and

transmitting, by the NIC, enqueued P 2 at t(P 2 ).

2. The method of claim 1 , further comprising, upon enqueuing each P 0 , second incrementing, by the computer network host for the enqueued P 0 , the expected transmit time by the expected transmit duration of the enqueued one or more packets P 0 .

3. The method of claim 1 , wherein each packet P 0 is a packet that is droppable after transmission by the NIC.

4. The method of claim 3 , wherein each packet P 0 comprises one of an Ethernet flow control frame and a bad cyclic redundancy check (CRC) frame.

5. The method of claim 1 , wherein the NIC participates in Precision Time Protocol (PTP) as a synchronization destination, and wherein the timestamping is PTP hardware timestamping based on a PTP synchronization source clock operated by a network switch on the same network as the computer network host.

6. The method of claim 5 , wherein adjusting the expected transmit time further comprises scaling the adjustment based on a ratio of a frequency of the PTP synchronization source clock and a frequency of a NIC synchronization destination clock.

7. The method of claim 6 , wherein the ratio is determined based on an average unscaled adjustment over a moving window of W unscaled adjustments.

8. A computer program product, comprising:

a non-transitory computer-readable storage device having computer-executable program instructions embodied thereon that when executed by a computer cause the computer to transmit packets from computer network hosts, the computer-executable program instructions comprising computer-executable instructions to:

establish, by a computer network host, an expected transmit time at which a network interface controller (NIC) of the computer network host is expected to transmit a next packet of type P;

enqueue, by the computer network host with the NIC and prior to the expected transmit time, a packet P 1 of type P to be transmitted by the NIC at the expected transmit time;

upon enqueuing P 1 , first increment, by the computer network host, the expected transmit time by an expected transmit duration of P 1 ;

transmit at a line rate of the NIC and timestamp, by the NIC, enqueued P 1 with an actual transmit time of P 1 ;

adjust, by the computer network host, the expected transmit time by a difference between the actual transmit time of P 1 and the expected transmit time of P 1 ;

request, by the computer network host and prior to completion by the NIC of transmitting P 1 , to transmit a packet P 2 of type P at a time t(P 2 ) later than the first incremented and adjusted expected transmit time;

enqueue, by the computer network host in sequence, one or more packets P 0 of type P, such that the first incremented and adjusted expected transmit time plus duration of the enqueued packets P 0 at the line rate of the NIC equals t(P 2 );

enqueue, by the computer network host, packet P 2 for transmission directly following a final packet P 0 of the enqueued one or more packets P 0 ;

transmit at the line rate of the NIC, by the NIC, each of the enqueued one or more packets P 0 ; and

transmit, by the NIC, enqueued P 2 at t(P 2 ).

9. The computer program product of claim 8 , further comprising, upon enqueuing each P 0 , second incrementing, by the computer network host for the enqueued P 0 , the expected transmit time by the expected transmit duration of the enqueued one or more packets P 0 .

10. The computer program product of claim 8 , wherein each packet P 0 is a packet that is droppable after transmission by the NIC.

11. The computer program product of claim 10 , wherein each packet P 0 comprises one of an Ethernet flow control frame and a bad cyclic redundancy check (CRC) frame.

12. The computer program product of claim 8 , wherein the NIC participates in Precision Time Protocol (PTP) as a synchronization destination, and wherein the timestamp is a PTP hardware timestamp based on a PTP synchronization source clock operated by a network switch on the same network as the computer network host.

13. The computer program product of claim 12 , wherein adjusting the expected transmit time further comprises scaling the adjustment based on a ratio of a frequency of the PTP synchronization source clock and a frequency of a NIC synchronization destination clock.

14. The computer program product of claim 13 , wherein the ratio is determined based on an average unscaled adjustment over a moving window of W unscaled adjustments.

15. A system to transmit packets from computer network hosts, comprising:

a storage device; and

a processor communicatively coupled to the storage device, wherein the processor executes application code instructions that are stored in the storage device to cause the system to:

establish, by a computer network host, an expected transmit time at which a network interface controller (NIC) of the computer network host is expected to transmit a next packet of type P;

enqueue, by the computer network host with the NIC and prior to the expected transmit time, a packet P 1 of type P to be transmitted by the NIC at the expected transmit time;

upon enqueuing P 1 , first increment, by the computer network host, the expected transmit time by an expected transmit duration of P 1 ;

transmit at a line rate of the NIC and timestamp, by the NIC, enqueued P 1 with an actual transmit time of P 1 ;

adjust, by the computer network host, the expected transmit time by a difference between the actual transmit time of P 1 and the expected transmit time of P 1 ;

request, by the computer network host and prior to completion by the NIC of transmitting P 1 , to transmit a packet P 2 of type P at a time t(P 2 ) later than the first incremented and adjusted expected transmit time;

enqueue, by the computer network host in sequence, one or more packets P 0 of type P, such that the first incremented and adjusted expected transmit time plus an expected transmit duration of the enqueued packets P 0 at the line rate of the NIC equals t(P 2 );

enqueue, by the computer network host, packet P 2 for transmission directly following a final packet P 0 of the enqueued one or more packets P 0 ;

transmit at the line rate of the NIC, by the NIC, each of the enqueued one or more packets P 0 ; and

transmit, by the NIC, enqueued P 2 at t(P 2 ).

16. The system of claim 15 , further comprising, upon enqueuing each P 0 , second incrementing, by the computer network host for the enqueued P 0 , the expected transmit time by the expected transmit duration of the enqueued one or more packets P 0 .

17. The system of claim 15 , wherein each packet P 0 is a packet that is droppable after transmission by the NIC.

18. The system of claim 17 , wherein each packet P 0 comprises one of an Ethernet flow control frame and a bad cyclic redundancy check (CRC) frame.

19. The system of claim 15 , wherein the NIC participates in Precision Time Protocol (PTP) as a synchronization destination, and wherein the timestamp is a PTP hardware timestamp based on a PTP synchronization source clock operated by a network switch on the same network as the computer network host.

20. The system of claim 19 , wherein adjusting the expected transmit time further comprises scaling the adjustment based on a ratio of a frequency of the PTP synchronization source clock and a frequency of a NIC synchronization destination clock.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2019
From: HAWARI, MOHAMMED; SURCOUF, ANDRE
To: CISCO TECHNOLOGY, INC.
Reel/Frame 048979/0687 →
Continuity (1)
Related Publication 20200344333A1 · Oct 29, 2020