Skip to contentSkip to conversation

IPV4 IPComp : threshold comparison

PATCH In review Mitsuru KANDA / 神田 充 3 participants 3 messages May 17, 2003 – May 18, 2003

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 IPV4 IPComp : threshold comparison

Hello,

I'm not sure how exactly we should check threshold. In IPsec tunnel mode, the original comparison code seems to be including IP header length.

Could you check it?

Regards,
-mk

===== ipcomp.c 1.6 vs edited =====

ipcomp.c renamed from net/ipv4/ipcomp.c +6 -1
@@ -168,6 +168,7 @@
 		struct iphdr	iph;
 		char 		buf[60];
 	} tmp_iph;
+	int hdr_len = 0;
 
 	if (skb->ip_summed == CHECKSUM_HW && skb_checksum_help(skb) == NULL) {
 		err = -EINVAL;
@@ -180,7 +181,11 @@
 		goto error;
 
 	/* Don't bother compressing */
-	if (skb->len < ipcd->threshold) {
+	if (!x->props.mode) {
+		iph = skb->nh.iph;
+		hdr_len = iph->ihl * 4;
+	}
+	if ((skb->len - hdr_len) < ipcd->threshold) {
 		if (x->props.mode) {
 			ipcomp_tunnel_encap(x, skb);
 			iph = skb->nh.iph;
#1 lore raw
Quoted 1 line · On Sun, 18 May 2003, Mitsuru KANDA / [ISO-2022-JP] $B?@ED(B $B=<(B wrote:

I'm not sure how exactly we should check threshold.

We should check the length of the IP payload, which the current code is only currently doing for tunnel mode.

Quoted 2 lines

In IPsec tunnel mode, the original comparison code seems to be including IP header length.

It is counting the inner IP header, which is correct, as it is part of the final IP payload. The transport mode calculation is incorrect.

Quoted 1 line

Could you check it?

Your patch fixes the calculation for transport mode, and looks correct.

- James

Signature · 2 lines
James Morris
<[email protected]>
#2 lore raw
In reply to Mitsuru KANDA / 神田 充

From: Mitsuru KANDA / 神田 充 <[email protected]>
Date: Sun, 18 May 2003 02:00:01 +0900

===== ipcomp.c 1.6 vs edited =====
--- 1.6/net/ipv4/ipcomp.c Tue May 13 05:58:03 2003
+++ edited/ipcomp.c Sun May 18 01:42:22 2003

I am applying this, but please you USAGI guys start to generate properly rooted patched for me ok?

I want something of the form:

--- a/net/ipv4/ipcomp.c Tue May 13 05:58:03 2003
+++ b/net/ipv4/ipcomp.c Sun May 18 01:42:22 2003

Almost everyone sends me patches like this, USAGI are the one exception. If everyone sends me patches this way, then all of my patch applying scripts know they can simply use "patch -p1" when sitting at top of kernel tree.

Probably all of the USAGI patches look this way because of CVS or something like that.

Thank you.