[Openswan dev] Patch for review.

David McCullough david_mccullough at mcafee.com
Wed Jun 30 08:53:49 EDT 2010


Jivin Kirill Berezin lays it down ...
> I tested this patch for AH only and esp only tunnels. I used ping to 
> test connectivity and tcpdump to make sure of low level packet 
> structure. Everything seems fine.
> 
> The commentary and commented out code is the part of original code. I am 
> not sure about all the possible usage patterns and decided not to remove 
> original code.

Sorry,  your patch was backwards to what I was expecting and I misread it ;-)

> The main idea of a patch is to move ident select from ipsec_xmit_send 
> procedure, the last in coding pipeline, to ipsec_xmit_ipip, where, I 
> suppose, the header is to be created.

I think it looks safe enough. I'll give it a test tomorrow ;-)

Thanks,
Davidm

> On 30.06.2010 14:52, David McCullough wrote:
> >
> > Jivin Kirill Berezin lays it down ...
> >> Hi.
> >>
> >> I found,  by chance, the AH xmit path for klips protocol stack is a bit
> >> broken. After a small research I found the ident field for ip header is
> >> selected after generation of a hash for a packet. According to RFC 2402
> >> ident must be selected before generation of a hash.
> 
> >>
> >> A possible fix is in the attachment, I hope it will be usefull.
> >
> > Have you had a chance to test that patch ?
> >
> > It's just based on the comment,  and the presense of the commented out code,
> > I suspect it may not work.  But if you have tested it then I am ok with it ;-)
> >
> > Cheers,
> > Davidm
> >
> >> --- ./openswan-2.6.26_new/linux/net/ipsec/ipsec_xmit.c	2010-06-30 04:43:07.000000000 +0400
> >> +++ ./openswan-2.6.26/linux/net/ipsec/ipsec_xmit.c	2010-05-26 02:36:41.000000000 +0400
> >> @@ -976,7 +976,6 @@
> >>   	ixs->newdst = (__u32)ixs->iph->daddr;
> >>   	ixs->newsrc = (__u32)ixs->iph->saddr;
> >>   	
> >> -	KLIPS_IP_SELECT_IDENT(ixs->iph, ixs->skb);
> >>   #ifdef NET_21
> >>   	skb_set_transport_header(ixs->skb, ipsec_skb_offset(ixs->skb, ip_hdr(ixs->skb)));
> >>   #endif /* NET_21 */
> >> @@ -2043,7 +2042,7 @@
> >>   	}
> >>
> >>   	/* newer kernels require skb->dst to be set in KLIPS_IP_SELECT_IDENT */
> >> -	/* KLIPS_IP_SELECT_IDENT(ip_hdr(ixs->skb), ixs->skb); */
> >> +	KLIPS_IP_SELECT_IDENT(ip_hdr(ixs->skb), ixs->skb);
> >>
> >>   	/* fix up the checksum after changes to the header */
> >>   	ip_hdr(ixs->skb)->check = 0;
> >
> >> _______________________________________________
> >> Dev mailing list
> >> Dev at openswan.org
> >> http://lists.openswan.org/mailman/listinfo/dev
> >
> >
> 
> _______________________________________________
> Dev mailing list
> Dev at openswan.org
> http://lists.openswan.org/mailman/listinfo/dev
> 
> 

-- 
David McCullough,      david_mccullough at mcafee.com,  Ph:+61 734352815
McAfee - SnapGear      http://www.mcafee.com         http://www.uCdot.org


More information about the Dev mailing list