[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20120421.153743.699070106218049860.davem@davemloft.net>
Date: Sat, 21 Apr 2012 15:37:43 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: horms@...ge.net.au
Cc: netdev@...r.kernel.org, dev@...nvswitch.org, eric.dumazet@...il.com
Subject: Re: [RFC v4] Add TCP encap_rcv hook (repost)
From: Simon Horman <horms@...ge.net.au>
Date: Thu, 19 Apr 2012 13:53:35 +0900
> 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-01
I 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.
Do what the SunRPC layer does, register a TCP socket for the port,
and use the ->data_ready() socket callback to consume the packets
into your subsystem.
That allows TCP to do all of it's work, and you just get a sane
in-order validated datastream on your end.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists