[FIX] dummynet breaks IP reassembly
Joerg Pernfuss
elessar at bsdforen.de
Mon Feb 20 16:50:03 PST 2006
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. |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-net/attachments/20060221/3bf9f6ec/signature.bin
More information about the freebsd-net
mailing list