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. |
signature.asc
Description: PGP signature