Ttpoe
No description available
Install / Use
/learn @teslamotors/TtpoeREADME
/$$$$$$$$ /$$
|__ $$__/ | $$
| $$ /$$$$$$ /$$$$$$$| $$ /$$$$$$
| $$ /$$__ $$ /$$_____/| $$ |____ $$
| $$| $$$$$$$$| $$$$$$ | $$ /$$$$$$$
| $$| $$_____/ \____ $$| $$ /$$__ $$
| $$| $$$$$$$ /$$$$$$$/| $$| $$$$$$$
|__/ \_______/|_______/ |__/ \_______/
/$$$$$$$$ /$$
|__ $$__/ | $$
| $$ /$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$
| $$ /$$__ $$|____ $$| $$__ $$ /$$_____/ /$$__ $$ /$$__ $$ /$$__ $$|_ $$_/
| $$| $$ \__/ /$$$$$$$| $$ \ $$| $$$$$$ | $$ \ $$| $$ \ $$| $$ \__/ | $$
| $$| $$ /$$__ $$| $$ | $$ \____ $$| $$ | $$| $$ | $$| $$ | $$ /$$
| $$| $$ | $$$$$$$| $$ | $$ /$$$$$$$/| $$$$$$$/| $$$$$$/| $$ | $$$$/
|__/|__/ \_______/|__/ |__/|_______/ | $$____/ \______/ |__/ \___/
| $$
| $$
|__/
/$$$$$$$ /$$ /$$
| $$__ $$ | $$ | $$
| $$ \ $$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$ | $$
| $$$$$$$//$$__ $$ /$$__ $$|_ $$_/ /$$__ $$ /$$_____/ /$$__ $$| $$
| $$____/| $$ \__/| $$ \ $$ | $$ | $$ \ $$| $$ | $$ \ $$| $$
| $$ | $$ | $$ | $$ | $$ /$$| $$ | $$| $$ | $$ | $$| $$
| $$ | $$ | $$$$$$/ | $$$$/| $$$$$$/| $$$$$$$| $$$$$$/| $$
|__/ |__/ \______/ \___/ \______/ \_______/ \______/ |__/
Introduction
At HotChips 2024, Tesla announced the open-sourcing of the Tesla Transport Protocol over Ethernet (TTPoE), represented on this GitHub repo.
Tesla also announced joining the Ultra Ethernet Consortium (UEC) to share this protocol and work to standardize a new high-speed/low-latency fabric (be that TTPoE or otherwise) for AI/ML/Datacenters -- desiring a non-proprietary, low cost, distributed congestion control, standard EthernetII frame, and non-centralized interconnect protocol to commoditize and accelerate technical progress.
In TTPoE, just like TCP, dropped packets and replays are the acceptable default behavior, yet full transmission is guaranteed.
TTPoE's initial deployment was for the Tesla Dojo v1 project, where the protocol executed entirely in hardware and deployed to a very large multi-ExaFlops (fp16) supercomputer with over 10s of thousands of concurrent endpoints. This protocol does not need a CPU or OS to be involved in any way to link and execute.
If you came here to be impressed by something complex and clever, you won't be. The protocol is designed on basic fundamentals -- simple transport and to the point. Ethernet transport in essence is only intended to move data from point A to B and should be limited by physics -- not software execution time. Centralized congestion management of extremely large scale machines (just like the internet) is a fool's errand -- each endpoint should be resiliant and self-managing.
Eric Quinnell -- Sept 13, 2024
TTPoE Transport Header
/* Transport Header (TTP) that follows TSH
*
* 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
* +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
* | opcode [7:0] | vc [7:0] |
* +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
* | tx [7:0] | rx [7:0] |
* +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
* | epoch [15:0] |
* +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
* | congestion [7:0] | reserved-byte [7:0] |
* +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
* | reserved-byte [7:0] | extension [7:0] |
* +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
* | tx-sequence [31:0] |
* | |
* +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
* | rx-sequence [31:0] |
* | |
* +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
*/
TTPoE Specification
You will find the spec
In the repo "doc" folder
TTPoE
ttpoe_sw
The following sections have details regarding making and executing the reference linux kernel sw model. It is matched to v1.5 of the TTP specification. Some variables may have changed slightly without documentation updates, but we're sure you can figure it out.
TTP Kernel Module (modttpoe.ko):
GIT repo info and unit tests
The source code git repo is at https://github.com/teslamotors/ttpoe. The code for modttpoe is under the 'modttpoe' subdir. The compilation is controlled via a top level Makefile in order to allow related modules to share symbols. Compilation is done as follows (gcc, linux-5.15-0-48-generic, ubuntu22):
$ pwd
GIT_HEAD
$ make all
.... <compilation output> ....
$ ls -l ./modttpoe/modttpoe.ko
-rw-rw-r-- 1 user group 3456000 Jan 1 10:00 modttpoe/modttpoe.ko
$ modinfo ./modttpoe/modttpoe.ko
filename: /home/dojo-user/work/git/tesla/ttpoe_sw/modttpoe/modttpoe.ko
license: GPL
version: 1.0
description: TTP Over Ethernet
author: dntundlam@tesla.com
srcversion: 547796AAC2C633E730FAF4F
depends:
retpoline: Y
name: modttpoe
vermagic: 6.11.0-9-generic SMP preempt mod_unload modversions
parm: dev: ttp device name (required at module-load)
parm: dest_mac: ttp destination mac-address: e.g. dest_mac=xx:xx:xx:xx:xx:xx)
parm: valid: target is valid (default=0, or 1)
parm: vci: ttp conn-VCI (default=0, 1, 2)
parm: use_gw: use gateway to reach target (default=0, or 1)
parm: nhmac: next-hop mac address (format: xx:xx:xx:xx:xx:xx)
parm: ipv4: encap mode for TTP: 0 = TTPoE, 1 = TTPoIPv4 (read-only)
parm: prefix: ipv4 prefix: (A.B.C.D/N)
parm: ipv4_sip: ipv4 src-ip: (A.B.C.D)
parm
Related Skills
node-connect
338.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
338.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.6kCommit, push, and open a PR
