From: Andi Kleen <ak@suse.de>
To: Vladimir Ivaschenko <hazard@francoudi.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: sendmsg() leaves Identification field in IP header empty
Date: 05 Dec 2001 21:04:27 +0100 [thread overview]
Message-ID: <p73d71t8md0.fsf@amdsim2.suse.de> (raw)
In-Reply-To: <3C0E6F8B.A6C85AB6@francoudi.com.suse.lists.linux.kernel>
In-Reply-To: Vladimir Ivaschenko's message of "5 Dec 2001 20:08:57 +0100"
Vladimir Ivaschenko <hazard@francoudi.com> writes:
> Hi All,
>
> I've been struggling to understand why an application which worked fine
> on 2.2.X stopped working on 2.4.7 (RH72) and found out that sendmsg()
> always leaves Identification field in IP header set to 0 (at least for
> UDP sockets). This confuses Cisco devices when you're doing
> WCCP negotiations with them. The application is "Oops!" proxy server -
> http://zipper.paco.net/~igor/oops.eng/
Linux does that for all sockets with DF set. Don't ask why it is a long story;
in summary for some reason it gets rather expensive to compute ipid so it is
avoided as far as possible and it is not strictly needed for packets with
DF set because the ipid should be only needed for defragmenting.
For TCP it caused serious problems with buggy VJ header compression functions
so a 'fake id' per socket is generated. This was not done for UDP however.
For UDP you could get an IPID by turning path mtu discovery off; i.e.
using the IP_PMTU_DISCOVERY socket options. See ip(7) for more details.
In theory the hack from TCP could be ported to UDP too, but I'm not sure if it is
worth it for WCCP (to be honest I don't know what WCCP is so I cannot assess if
it's important enough to add a workaround for it)
Another way would be to switch back to traditional ipid computation, as the
'secure' ipid does not seem to be worth the effort and problems it causes.
>
> Sorry if I'm wrong but I think this is a kernel problem because
> sendmsg() is a system call. On RH6.2 with 2.2.19 this doesn't happen,
It's strictly not a bug because the RFCs don't require an IPID for !DF.
-Andi
next parent reply other threads:[~2001-12-05 20:04 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <3C0E6F8B.A6C85AB6@francoudi.com.suse.lists.linux.kernel>
2001-12-05 20:04 ` Andi Kleen [this message]
2001-12-05 20:22 ` sendmsg() leaves Identification field in IP header empty Vladimir Ivaschenko
2001-12-05 19:03 Vladimir Ivaschenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=p73d71t8md0.fsf@amdsim2.suse.de \
--to=ak@suse.de \
--cc=hazard@francoudi.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox