Latency equalization
US-2018191601-A1 · Jul 5, 2018 · US
US12506676B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12506676-B2 |
| Application number | US-202217956478-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 29, 2022 |
| Priority date | Sep 29, 2021 |
| Publication date | Dec 23, 2025 |
| Grant date | Dec 23, 2025 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A network device transfers packets from a packet memory to one or more network interfaces for transmission by the one or more network interfaces. The transferring of packets includes transferring the packets via one or more respective transmit data paths that correspond to one or more respective network interfaces. The network device measures one or more respective amounts of time required to transmit respective packet data within the one or more respective transmit data paths. The network device uses the one or more respective measured amounts of time to determine when to start transfer of packets from the packet memory to the one or more network interfaces via the one or more respective transmit data paths.
Opening claim text (preview).
What is claimed is: 1 . A network device, comprising: a plurality of network interfaces configured to transmit and receive via communication links communicatively coupled to the plurality of network interfaces, the plurality of network interfaces including a first network interface communicatively coupled to a first communication link among the communication links communicatively coupled to the plurality of network interfaces; a packet processor configured to process packets received via the plurality of network interfaces, including processing at least headers of the packets to determine a set of network interfaces, among the plurality of network interfaces, to which the packets are to be forwarded; a packet memory to store packet data corresponding to the packets received via the plurality of network interfaces while the packets are processed by the packet processor; a transmit data paths corresponding to the first network interfaces, the transmit data path configured to transfer first packet data, amongst the packet data stored in the packet memory, to the first network interface for transmission by the first network interface on the first communication link, the transmit data path including a memory buffer; and scheduling control circuitry configured to i) measure an amounts of time required for the first network interfaces to transmit a first set of the first packet data that is within the transmit data path including a subset of the first set of the packet data stored in the memory buffer, and ii) use the measured amount of time to determine when to start transfer of a second set of the first packet data from the packet memory to the first network interface via the transmit data path. 2 . The network device of claim 1 , wherein: the scheduling control circuitry comprises a counter; and the scheduling control circuitry is configured to use the counter to measure the amount of time required for the first network interfaces to transmit the first set of the first packet data that is within the transmit data path including the subset of the first set of the first packet data stored in the memory buffer. 3 . The network device of claim 2 , wherein the scheduling control circuitry is configured to: increment the counter to account for an interpacket gap (IPG) between a first packet that is to be transmitted by the first network interface and a second packet that is to be transmitted by the first network interface; and in connection with the first network interface transmitting an end of the first packet, decrement the counter to account for the IPG. 4 . The network device of claim 2 , wherein: the transmit data paths is configured to process the first set of the first packet data in the transmit data path in a manner that changes a length of the first set of the first packet data in the transmit data path; and the scheduling control circuitry is configured to adjust the counter to account for the change of the length of the first set of the first packet data in the transmit data paths. 5 . The network device of claim 4 , wherein: the transmit data path includes at leas one of encryption circuitry and decryption circuitry, the at least one of encryption circuitry and decryption circuitry configured to at least one of encrypt and decrypt the first set of the first packet data in the transmit data path in a manner that changes the length of the first set of the first packet data in the transmit data path; and the scheduling control circuitry is configured to adjust the counter to account for the change of the length of the first set of the first packet data in the transmit data path due to at least one of encryption and decryption of the first set of the first packet data in the transmit data path. 6 . The network device of claim 4 , wherein: the transmit data paths includes telemetry circuitry configured to add telemetry data to or remove telemetry data from the first set of the first packet data in the transmit data path; and the scheduling control circuitry is configured to adjust the counter to account for the change of the length of the first set of the first packet data in the transmit data path due to the adding or removal of telemetry data. 7 . The network device of claim 2 , further comprising: a plurality of transmit queues configured to store packet descriptors corresponding to the packets that are to be transmitted by the network interfaces; wherein the scheduling control circuitry is configured to increment the counter in connection with dequeuing a packet descriptor corresponding to the first packet data that are to be transmitted via the transmit data path. 8 . The network device of claim 7 , wherein the scheduling control circuitry is configured to: increment the counter by an amount that corresponds to at least a sum of i) a length of time required to transmit a packet corresponding to the packet descriptor and ii) an IPG. 9 . The network device of claim 7 , wherein the scheduling control circuitry is configured to: increment the counter by an amount that corresponds to at least a sum of i) a length of the packet corresponding to the packet descriptor and ii) an increase of length of the packet corresponding to the packet descriptor that will occur in the transmit data path. 10 . The network device of claim 1 , wherein the transmit data path is a first transmit data path, wherein the plurality of network interfaces includes a set of multiple respective network interfaces that includes the first network interface, and wherein the network device further comprises: multiple respective transmit data paths that include the first transmit data path, the multiple respective transmit data paths corresponding to the multiple respective network interfaces, a shared memory interface that is configured to communicatively couple the packet memory to the multiple respective transmit data paths; wherein the scheduling control circuitry is configured to control the shared memory interface to transfer the packet data from the packet memory to the multiple respective transmit data paths according to a time division multiplexing (TDM) scheme. 11 . The network device of claim 1 , wherein the transmit data path is configured to transfer the first packet data from the packet memory to the first network interfaces for transmission by the first network interfaces. 12 . A method for scheduling packets for transmission in a network device, the method comprising: transferring packets to one or more network interfaces for transmission by the one or more network interfaces, the transferring including transferring a subset of the packets via a transmit data path that corresponds to a first network interface amongst the one or more network interfaces, the transmit data path including a memory buffer; measuring an amount of time required to transmit first packet data that is within the transmit data path including a subset of the first packet data stored in the memory buffer; and using the measured amount of time to determine when to start transfer of second packet data from a packet memory to the first network interface via the transmit data path. 13 . The method for scheduling packets for transmission of claim 12 , wherein measuring the amount of time required for the first network interfaces to transmit the first packet data within the transmit data path comprises: maintaining a counter that corresponds to the transmit data path, including: incrementing the counter to account for additional first packet data that is being added to the transmit data path, and decrementing the counter in connection with transmission
wherein the data content is protected, e.g. by encrypting or encapsulating the payload · CPC title
Queue scheduling · CPC title
Header conversion, routing tables or routing tags · CPC title
Attaching a time tag to queues · CPC title
Deadline varies as a function of time spent in the queue · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.