Tom Herbert says the key to doing TOE is to offload TCP connection processing and TCP state machine from a host CPU to a SmartNIC CPU running Linux. This is not your grandma's TCP offload anymore! AF_XDP sockets are used to provide a generic and extensible offload messaging interface. Tom takes a different approach than[1]. He believes the solution is to run a TCP “proxy” running in the SmartNIC CPU.
In this talk Tom will cover the overall design, the messaging API used over AF_XDP sockets, the client library, the TCP “proxy” running in the SmartNIC CPU, and example application code. The full lifetime of an offloaded connection is described including connection setup and tear down, data operations, flow control over the messaging interface. He'll further discuss the hardware requirements.
[1]https://netdevconf.info/0x17/sessions/talk/kernel-offload-with-complete-host...
cheers, jamal