Re: [RFC v4] Add TCP encap_rcv hook (repost)
From: Stephen Hemminger <hidden>
Date: 2012-04-22 15:22:24
From: Simon Horman <horms-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org> Date: Thu, 19 Apr 2012 13:53:35 +0900quoted
This hook is based on a hook of the same name provided by UDP. It provides a way for to receive packets that have a TCP header and treat them in some alternate way. It is intended to be used by an implementation of the STT tunneling protocol within Open vSwtich's datapath. A prototype of such an implementation has been made. The STT draft is available at http://tools.ietf.org/html/draft-davie-stt-01I think that unlike UDP, you need to let the stack handle the TCP packet before taking it into your subsystem. The reason is that otherwise you'll need to handle packet ordering, sequence number gaps, and proper TCP ACK'ing and timeout all inside of your module and that's simply unacceptable.
STT isn't really doing TCP, it just lying and pretending to be TCP to allow TSO to work! There is no packet ordering, sequence numbers or any real transport layer. Therefore Simon's proposed hook is the only way to support it. But exposing that hook does allow for other misuse.