Date: Tue, 21 Feb 2006 01:49:14 +0100 From: Joerg Pernfuss <elessar@bsdforen.de> To: net@FreeBSD.org Cc: Andre Oppermann <andre@FreeBSD.org>, Ruslan Ermilov <ru@FreeBSD.org> Subject: Re: [FIX] dummynet breaks IP reassembly Message-ID: <20060221014914.7f8de7d1@loki> In-Reply-To: <20060210221415.GC33588@ip.net.ua> References: <20060210221415.GC33588@ip.net.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Hi,
on the german questions list someone encountered 'ip reassembly time
exceeded' errors on his router running 5.4-RELEASE. Looking at the
ip_id of the packets, it seemed like the same error.
Here is a naive RELENG_5 adaption of Ruslan's patch for RELENG_6 -
sadly the user already started upgrading to FreeBSD6 by the time
I had this patch ready, so it is untested (and I don't exactly know
if one has to fix more than that).
--- ip_dummynet.c Tue Feb 21 01:01:23 2006
+++ ip_dummynet.c Tue Feb 21 01:13:00 2006
@@ -453,7 +453,7 @@
DUMMYNET_UNLOCK();
switch (pkt->dn_dir) {
case DN_TO_IP_OUT:
- (void)ip_output(m, NULL, NULL, pkt->flags, NULL, NULL);
+ (void)ip_output(m, NULL, NULL, IP_FORWARDING, NULL, NULL);
break ;
case DN_TO_IP_IN :
@@ -1128,7 +1128,6 @@
* NULL in ip_input, destination interface in ip_output,
* real_dst in bdg_forward
* rule matching rule, in case of multiple passes
- * flags flags from the caller, only used in ip_output
*
*/
static int
@@ -1212,8 +1211,6 @@
pkt->dn_dir = dir ;
pkt->ifp = fwa->oif;
- if (dir == DN_TO_IP_OUT)
- pkt->flags = fwa->flags;
if (q->head == NULL)
q->head = m;
else
--- ip_dummynet.h Tue Feb 21 01:24:10 2006
+++ ip_dummynet.h Tue Feb 21 01:28:26 2006
@@ -129,7 +129,6 @@
dn_key output_time; /* when the pkt is due for delivery */
struct ifnet *ifp; /* interface, for ip_output */
- int flags ; /* flags, for ip_output (IPv6 ?) */
};
#endif /* _KERNEL */
--- ip_fw.h Tue Feb 21 01:25:14 2006
+++ ip_fw.h Tue Feb 21 01:26:16 2006
@@ -435,8 +435,6 @@
struct ip_fw *rule; /* matching rule */
struct ether_header *eh; /* for bridged packets */
- int flags; /* for dummynet */
-
struct ipfw_flow_id f_id; /* grabbed from IP header */
u_int32_t retval;
struct inpcb *inp;
Regards, Joerg
--
| /"\ ASCII ribbon | GnuPG Key ID | e86d b753 3deb e749 6c3a |
| \ / campaign against | 0xbbcaad24 | 5706 1f7d 6cfd bbca ad24 |
| X HTML in email | Now featuring a brand new GPG-Key! |
| / \ and news | Please update your keyring. |
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (FreeBSD)
iD8DBQFD+mOTH31s/bvKrSQRAjLDAJsGyYM8K60YPher2tBCy1qAXSvpGgCfRgQB
UzEt7oj47q/4rQn2x4p4RkM=
=Xb7c
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060221014914.7f8de7d1>
