Packet transmission scheduling
Examples described herein relate to a network interface device comprising circuitry to cause transmission of packets based on transmission times and use of at least one of multiple time slot granular scheduling lists, wherein the multiple time slot granular scheduling lists comprise at least one list of a first time slot duration and at least one list of a second time slot duration and wherein the first time slot duration is different than the second time slot duration. In some examples, a minimum delay value of a list of the at least one list of a second time slot duration corresponds to a maximum delay value of a list of the at least one list of a first time slot duration. In some examples, the at least one list of a first time slot duration comprises a fine granularity list and the at least one list of a second time slot duration comprises a coarse granularity list.
1 . An apparatus comprising:
a network interface device comprising:
a host interface circuitry;
a network interface circuitry;
direct memory access (DMA) circuitry; and
second circuitry to cause transmission of packets based on transmission times and use of at least one of multiple timing wheels, wherein:
the multiple timing wheels comprise a first timing wheel having a first time slot duration and a second timing wheel having a second time slot duration,
the first time slot duration is shorter than the second time slot duration, the packets comprise a first packet,
based on a first time difference between a current time and a time slot of the first packet assigned to the second timing wheel, the second circuitry is to copy an identifier of the first packet from the second timing wheel to the first timing wheel prior to transmission of the first packet,
based on a second time difference between the current time and the time slot of the first packet assigned to the second timing wheel, the second circuitry is to retain the identifier of the first packet in the second timing wheel, and
the second time difference is larger than the first time difference.
2 . The apparatus of claim 1 , wherein
the packets comprise a second packet and
the second circuitry is to allocate the second packet to a slot in the second timing wheel based on a transmit time associated with the packet being outside of a time duration associated with the first timing wheel.
3 . The apparatus of claim 1 , wherein
the packets comprise a second packet,
the second circuitry is to schedule the second packet for transmission by access from the first timing wheel by re-assignment of the second packet from the second timing wheel to the first timing wheel, and
the second circuitry is to re-assign the second packet from the second timing wheel to the first timing wheel based on a difference between a transmission time stamp of the second packet and a current packet transmission time stamp.
4 . The apparatus of claim 1 , wherein the second circuitry is to associate packet metadata with a time slot of the multiple timing wheels and wherein the associated packet metadata comprises one or more of: packet transmission timestamp, port identifier (ID), host identifier (HostID), Traffic Class, Function, virtual server instance (VSI) identifier, virtual machine (VM) identifier, cryptography related information, or scatter gather list (SGL) pointers in host memory.
5 . The apparatus of claim 1 , comprising a memory device to store the multiple timing wheels.
6 . The apparatus of claim 1 , wherein the second circuitry is to associate packet metadata for multiple, different time windows with a time slot of the first timing wheel.
7 . The apparatus of claim 1 , wherein:
the packets comprise a second packet and
the second circuitry is to store second packet metadata into a cache and based on a depth of the cache, evict the second packet metadata from the cache based on an associated transmit timestamp of the second packet and a current timestamp.
8 . The apparatus of claim 1 , wherein the network interface device comprises one or more of: network interface controller (NIC), a remote direct memory access (RDMA)-enabled NIC, SmartNIC, router, switch, forwarding element, infrastructure processing unit (IPU), or data processing unit (DPU).
9 . The apparatus of claim 1 , comprising a server communicatively coupled to the network interface device, wherein the server is to request packet transmission and offload packet scheduling to the network interface device.
10 . The apparatus of claim 9 , comprising a datacenter, wherein the datacenter comprises the server and the server is to use at least one of multiple timing wheels.
11 . A method comprising:
managing, by a network interface device, transmission of packets at transmission times based on use of at least one of multiple timing wheels, wherein:
the multiple timing wheels comprise at least a first timing wheel of a first time slot duration and a second timing wheel of a second time slot duration,
the first time slot duration is less than the second time slot duration, and
the packets comprise a first packet,
the managing transmission of packets at transmission times based on use of at least one of multiple timing wheels comprises:
based on a first time difference between a current time and a time slot of the first packet assigned to the second timing wheel, copying an identifier of the first packet from the second timing wheel to the first timing wheel for egress from the first timing wheel and
based on a second time difference between the current time and the time slot of the first packet assigned to the second timing wheel, retaining the identifier of the first packet in the second timing wheel, wherein the second time difference is larger than the first time difference.
12 . The method of claim 11 , wherein
the first timing wheel comprises a transmit time window that is within X seconds of a current packet transmit time and
the second timing wheel comprises a transmit time window that is outside of X seconds of the current packet transmit time.
13 . The method of claim 11 , comprising:
associating, by the network interface device, packet metadata with a time slot of the multiple timing wheels, wherein the associated packet metadata comprises one or more of: packet transmission timestamp, port identifier (ID), host identifier (HostID), Traffic Class, Function, virtual server instance (VSI) identifier, virtual machine (VM) identifier, cryptography related information, or scatter gather list (SGL) pointers in host memory.
14 . The method of claim 11 , wherein the network interface device comprises one or more of: network interface controller (NIC), a remote direct memory access (RDMA)-enabled NIC, SmartNIC, router, switch, forwarding element, infrastructure processing unit (IPU), or data processing unit (DPU).
15 . The method of claim 11 , wherein the packets include media data for an on-demand media streaming service.