Messages in this thread | | | From | Richard Guy Briggs <> | Subject | Re: linux-ipsec: possibly bogus value passed to skb->dst->output | Date | Mon, 23 Aug 1999 23:17:25 -0400 (EDT) |
| |
-----BEGIN PGP SIGNED MESSAGE-----
> On Sun, 22 Aug 1999, Richard Guy Briggs wrote: > > I wrote: > > > James Morris wrote: > > > > I'll start looking at the other tunnels (ipip, gre, sit) in the 2.2 kernel > > > > to see if there's anything simple we can try, as they use standard ip > > > > output functions without any of these problems. > > > > > > I will look at them carefully again, IPIP has changed considerably > > > in 2.2, merging drivers/net/new_tunnel.c in with net/ipv4/ipip.c. > > > > I will have to chew on this one for a while, indeed a lot has > > changed... > > > > I think we have some progress here. > > Below is a patch which makes use of ip_send() and route/dst semantics > for newer kernels.
Hmmm, ip_send() has changed since 2.0.xx....this is the sort of solution I was hoping for!
> It's pretty rough at this stage, although it does allow the large MTU > trick to be used, and sending fragments in transport mode now works.
I noticed this. I used your ideas, but it oopsed on the udp/500 and IPIP/0 cases, for which I kept the original code and only called the ip_route_output() stuff for the changed packet. It is still oopsing occasionally. Perhaps it is my platform?
The headroom issue is a little odd, I had a skb_put() panic without it.
> The next step will be to hack MSS for TCP, as per Alan's suggestion, and > find out if anything is broken.
Right...
> I'm not experienced with this area of the kernel, so any input from > (non-us, alas) network people would be most appreciated.
Thanks for the ideas...and time to study ipip.c some more.
> - James > -- > James Morris > <jmorris@intercode.com.au>
> + /* new route/dst cache stuff */ > + if (ip_route_output(&rt, skb->nh.iph->daddr, skb->nh.iph->saddr, > + RT_TOS(skb->nh.iph->tos), physdev->iflink)) { > + stats->tx_errors++; > + goto cleanup; > + } > + dst_release(skb->dst); > + skb->dst = &rt->u.dst; > + stats->tx_bytes += skb->len; > + ip_send(skb);
slainte mhath, RGB - -- The first Ottawa Linux Symposium was a huge success! <ottawalinuxsymposium.org> This SunRayce was a wet one! DroughtRelief_99? -- <www.sunrayce.com/sunrayce/> Richard Guy Briggs -- PGP key available Auto-Free Ottawa! Canada <http://www.conscoop.ottawa.on.ca/rgb/> </www.flora.org/afo/> Prevent Internet Wiretapping! -- FreeS/WAN:<www.xs4all.nl/~freeswan> Thanks for voting Green! -- <green.ca> Marillion:<www.marillion.co.uk>
-----BEGIN PGP SIGNATURE----- Version: 2.6.3i Charset: noconv
iQCVAwUBN8IOvN+sBuIhFagtAQHA8gP+ItBQaBmkLALCY2sEos03iBdjI8eXp/MI 45n0Qqr0luOgioxkSWYagUHEu/O3kwSywky41ukMvF1+6wDxXX3sZZcRNcPwYRMa zxEt5TW/Mt6hQVHAXo/QQHq34b4NZ45FvhNU2Brjy0Rl675SwzL+5yWMoI/xLiBu 2tJYD0jsIQA= =xVbn -----END PGP SIGNATURE-----
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |