Launch Time

From HandWiki

Launch Time is a new concept for handling Ethernet packets proposed for the Linux kernel. It is an attempt to add some isochronous capability to the kernel by hinting at what time a packet should be sent out. When sending a packet to socket, an additional bit (MSG_LAUNCHTIME) is specified in the "sendto" flags field. If this bit is set, then the buffer passed to the socket includes the desired send time or "launch time". The sendto syscall will shave off the launchtime from the packet and add it to the msghdr passed to the lower layers of the network stack.

The UDP + IPv4/IPv6 are planned to be extended to support this, and if launchtime is requested, they will try to call a new send message routine in the network driver which allows passing the launchtime parameter, in addition to those of the normal send message present in the driver. Before Launch time is used the network driver will have to be initialized using an ioctl.

Support

Very few network controllers support launchtime today. The Intel i210 Gigabit Ethernet controller does, but there is no support in the igb driver as of December 2012.

Launch time can be supported in FPGA based network cards, but it is not common for TCP/IP Offload Engines to support launch time. The Endace DAG cards are an exception, but have no support for Linux networking using the normal network stack, only using a proprietary API.

The linux_igb_avb project[1] at SourceForge does support launch time for user space applications.

References