NIC Packet Timing Control Using PTP Feedback and Line-Rate Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Typical Network Interface Controllers (NICs) lack precise control over packet transmission times due to operating system scheduling limitations and input/output bus jitter, limiting their ability to manage packet timing with accuracy better than a few milliseconds.
Innovation Solution
The method involves a computer network host establishing an expected transmit time for packets and adjusting it based on the actual transmission time, using Precision Time Protocol (PTP) timestamping and scaling adjustments to ensure precise packet timing, allowing for the transmission of additional packets to align with future transmission requests without gaps.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If typical NICs transmit packets using standard operating system scheduling, then the NIC can operate with simple hardware and standard protocols, but the packet transmission timing precision is limited to a few milliseconds
Solution Approach 1:
The patent introduces an intermediary timing control mechanism between the host CPU and the NIC. This intermediary maintains a timing state machine that tracks expected transmit times and coordinates packet enqueueing with the NIC's transmission schedule, thereby achieving precise timing control without requiring complex modifications to the NIC hardware itself
Solution Approach 2:
The timing control mechanism uses PTP timestamping capabilities that are increasingly integrated into modern NICs. The system leverages the NIC's own timestamping hardware to record actual transmission times, which are then used by the timing state machine to adjust and refine future transmit time predictions, creating a self-correcting timing system
2Measurement precision
If the NIC transmits packets as quickly as possible without timing control, then the transmission speed is maximized, but the packet timing becomes unpredictable and cannot meet phase alignment requirements
Solution Approach 1:
The timing control mechanism performs preliminary actions by pre-calculating expected transmit times and pre-enqueuing packets in the host's transmit queue before the NIC is ready to send them. The timing state machine predicts when the NIC will be available and prepares packets in advance, ensuring that packets are ready to transmit at the precise moments when the NIC can send them without idle gaps
Solution Approach 2:
The system maintains continuous useful action by ensuring the NIC transmitter operates continuously without idle gaps. By carefully coordinating packet enqueueing with the NIC's transmission schedule and using PTP timestamping to track actual transmit times, the system keeps the transmission pipeline full and the NIC operating at maximum utilization while maintaining precise timing control
3Measurement precision
If the host enqueues packets with the NIC without timing coordination, then the enqueueing process is simple and fast, but queuing delays occur and packet timing cannot be controlled
Solution Approach 1:
The timing control mechanism implements feedback by using PTP timestamping to measure actual packet transmit times and comparing them with expected transmit times. The timing state machine uses this feedback information to adjust its predictions and refine the timing model, continuously improving the accuracy of future transmit time estimates and reducing queuing delays
Solution Approach 2:
The system applies dynamics by making the packet enqueueing timing adaptive rather than static. The timing state machine dynamically adjusts expected transmit times based on observed actual transmit times from PTP timestamps, allowing the system to adapt to varying network conditions, NIC performance characteristics, and traffic patterns to minimize queuing delays while maintaining precise timing control
Data Source
AI summary
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 P1 to be transmitted at the expected transmit time. Upon enqueuing P1, incrementing the expected transmit time by an expected transmit duration of P1. Transmitting at the NIC's line rate and timestamping enqueued P1 with its actual transmit time. Adjusting the expected transmit time by a difference between P1's actual transmit and P1's expected transmit time. Requesting, before completion of transmitting P1, to transmit a P2 at time t(P2). Enqueuing, in sequence, zero or more P0, such that the current expected transmit time plus the duration of the transmission of the P0s at the line rate equals t(P2). Transmitting at the line rate each enqueued P0. Upon enqueuing each P0, incrementing, for each P0, the expected transmit time by the expected transmit duration of the P0. Enqueuing P2 for transmission directly following enqueuing the final P0. Transmitting, by the NIC, enqueued P2 at t(P2).


