[lkml]   [1996]   [Jun]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectProblems with the IP tunnel

I'm having problems with hanging sockets using the 2.0 IP tunnel, Generally
things work well, but rlogin through a tunnel to a Sun 4.1.3, hangs after
entering the passwd (when it should show the motd). ftp to some machines
also hangs.

Looking at new_tunnel.c there are a few things I don't understand.

if (skb_headroom(skb) >= max_headroom) {
skb->h.iph = (struct iphdr *) skb_push(skb, tunnel_hlen);
} else {
So if there isn't enough space, here we copy the buffer - OK

memcpy(new_skb->ip_hdr, skb->data, skb->len);
This copies the data - OK
memset(new_skb->proto_priv, 0, sizeof(skb->proto_priv));
Zero the proto_priv field - WHY don't we copy?

WHY don't we copy the other fields from the old skb?
i.e. what about saddr,daddr,raddr and pkt_type??

Sure I don't follow what is going on 100%, but it seems strange to me that
we can ignore always the old skb fields. Can somebody look over this

Jon. <,>

 \ /
  Last update: 2005-03-22 13:37    [from the cache]
©2003-2014 Jasper Spaans. hosted at Digital Ocean