lkml.org 
[lkml]   [1999]   [Aug]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: linux-ipsec: possibly bogus value passed to skb->dst->output
Date
-----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/

\
 
 \ /
  Last update: 2005-03-22 13:53    [from the cache]
©2003-2011 Jasper Spaans. Advertise on this site