From: Tom Herbert <therbert@google.com>
Date: Wed, 21 Apr 2010 12:12:41 -0700
I'll see if I can find it, I sent it to Eric more than a year
ago...
The basic scheme was pretty simple:
1) Add "struct sock *friend" to struct sk_buff
2) TCP initial handshake SYN and SYN+ACK transmits set "skb->friend =
sk" and TCP receive path notices this and stores this 'friend'
socket pointer locally in the newly created connection socket.
The purpose of skb->friend is to let the receiving socket on
loopback see that the other end is on the local system and
can be directly communicated to.
3) TCP sendmsg queues data directly to sk->friend's receive queue
instead sending TCP protocol packets.
The only complications come from making sendmsg and recvmsg not
try to do all of the sequence handling and checking, stuff like
that. Also, URG would need to be dealt with somehow too.
I'm sure someone suitably motivated could get a working patch
going in no time :-)
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html