comments in-line. Giorgos Keramidas ([EMAIL PROTECTED]) wrote: > > This looks rather strange. ip_fastforward() should pass an mtu of 1500 > but somehow the negative strange value gets passed. It would be > interesting to see the value of ``mtu'' in frame 13 too, if you still > have this crash dump stored somewhere.
included right below - i have a few other questions while i'm looking @ these - the value of hlen (looks from the code that it should be ip->ip_hl << 2 (5*4=20 right?) not some large -value - plus the value of hlen is sortof close to crazy mtu value - ip->ip_len = 10240 ??? not sure why this would be either - i think mtu should have a value of 1500 here - both the ifp struct and ro struct have values of 1500, but even if it did have a value of 1500 - since ip->ip_len = 10240 - it's still going to drop through to else of line 542 (ie. ip->ip_len <= mtu) which leaves either can't frag/drop or frag (where we are i think) - unless I'm missing something (kgdb) f 13 #13 0xc06933c1 in ip_fastforward (m=0xc12e6c00) at /usr/src/sys/netinet/ip_fastfwd.c:572 warning: Source file is more recent than executable. 572 if (ip_fragment(ip, &m, mtu, ifp->if_hwassist, (kgdb) i loc ip = (struct ip *) 0xc12f700e m0 = (struct mbuf *) 0xc12f700e ro = {ro_rt = 0xc11f8420, ro_dst = {sa_len = 16 '\020', sa_family = 2 '\002', sa_data = "\000\000�\002\005\000\000\000\000\000\000\000"}} dst = (struct sockaddr_in *) 0xc76bfc3c ia = (struct in_ifaddr *) 0x0 ifa = (struct ifaddr *) 0x0 ifp = (struct ifnet *) 0xc0f91800 odest = {s_addr = 84060352} dest = {s_addr = 84060352} sum = 0 ip_len = 0 error = 84060352 hlen = -1057417216 mtu = 0 __func__ = "ip_fastforward" (kgdb) p *ip $1 = {ip_hl = 5, ip_v = 4, ip_tos = 0 '\0', ip_len = 10240, ip_id = 61249, ip_off = 0, ip_ttl = 63 '?', ip_p = 17 '\021', ip_sum = 31921, ip_src = {s_addr = 67479744}, ip_dst = {s_addr = 84060352}} (kgdb) > > You are not running a kernel with optimization and/or architecture- > dependent optimization flags, right? > ntiko - i have added CPU_GEODE/CPU_SOEKRIS to my config - but same crash on the generic config as well..this is a soekris net4801 box (w/ geode proc - i586). generic 'make buildkernel KERNCONF=D1-0722' command line (ie no other make/compiler options). mbsd05# diff /root/kernels/D1-0722 /root/kernels/GENERIC 21,22d20 < makeoptions DEBUG=-g < 24c22 < #cpu I486_CPU --- > cpu I486_CPU 26,27c24,25 < #cpu I686_CPU < ident D1-0722 --- > cpu I686_CPU > ident GENERIC 31,48d28 < < options KDB < options DDB < options INVARIANTS < options INVARIANT_SUPPORT < < options CPU_SOEKRIS < options CPU_GEODE < < options HZ=1000 < options DEVICE_POLLING < < options IPFIREWALL < options IPFIREWALL_VERBOSE < options IPFIREWALL_VERBOSE_LIMIT < options IPFIREWALL_DEFAULT_TO_ACCEPT < options DUMMYNET < options IPDIVERT mbsd05# _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"