Gary, We had some communication regarding an issue I raised some time back. The issue was resolved then. But you asked for a patch(that I was using) to dump the ARP table on FreeBSD stack. I'm sending this now. I understand that we have sysctl hooks in current code to dump the routing/arp table, but in case one is new to stack, this primitive ARP table dump utility will prove useful. Have a look. Can these be integrated to ecos FreeBSD stack? Package - packages/net/bsd_tcpip/current regards, Alok -----Original Message----- From: Gary Thomas [mailto:gary@mlbassoc.com] Sent: Tuesday, July 31, 2007 11:36 PM To: Alok Singh Cc: ecos-discuss@ecos.sourceware.org Subject: Re: [ECOS] FW: [ECOS] ECOS: Free BSD - Default gateway entry , duplicate ARP//llinfo entries - -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Alok Singh wrote: > I ported it to FreeBSD( just copied actually ) from OpenBSD for > debugging purposes. If you send a patch, I'll try it; I don't have time to mess with porting old code... > -----Original Message----- > From: Gary Thomas [mailto:gary@mlbassoc.com] > Sent: Tuesday, July 31, 2007 11:25 PM > To: Alok Singh > Cc: ecos-discuss@ecos.sourceware.org > Subject: Re: [ECOS] FW: [ECOS] ECOS: Free BSD - Default gateway entry , > duplicate ARP//llinfo entries - > > Alok Singh wrote: >> Gary, >> Is it possible for you to send me a dump of arp table (using >> db_show_arptab() or through some other means) before pinging to >> 204.133.123.27, and after pinging to >> 204.133.123.27 please!! > > That function is only in the old (OpenBSD) stack. > [gthomas@hermes packages]$ find net -name "*.c" | xargs grep show_arp > net/tcpip/current/src/sys/netinet/if_ether.c: * Use this from ddb: > "call db_show_arptab" > net/tcpip/current/src/sys/netinet/if_ether.c:db_show_arptab() > > Aren't you using the FreeBSD stack (the default and indeed, the only > supported BSD stack)? > >> regards, >> Alok > >> -----Original Message----- >> From: ecos-discuss-owner@ecos.sourceware.org >> [mailto:ecos-discuss-owner@ecos.sourceware.org] On Behalf Of Gary > Thomas >> Sent: Tuesday, July 31, 2007 8:38 PM >> To: Alok Singh >> Cc: ecos-discuss@ecos.sourceware.org >> Subject: Re: [ECOS] FW: [ECOS] ECOS: Free BSD - Default gateway entry > , >> duplicate ARP//llinfo entries - > >> Alok Singh wrote: >>> Laurie, >>> When I ping to box IP (10.240.3.156), I see that the src mac address >> in >>> the echo reply from the box has the correct mac address. Also I'm > able >>> to access the DUT via all means(HTTP, telnet). The problem comes only >>> when the routing table search results in default route(10.240.3.1). > I >>> see duplicate arp entries in the routing table below. The one that to >>> which default rtentry points to (gwroute=0x805f8c40) has mac address >> as >>> 0 for 10.240.3.1. And at the same time, we have another mac entry for >>> 10.240.3.1 that has mac correctly installed(rtentry=0x805f89c0). This >> is >>> creating problem. >>> I don't deny that it might be happening because of some wrong >>> configuration from my side. >>> Can somebody give me a dump of the ECOS Free BSD routing table of a >>> working box by using command "show_network_tables" please!! > >> Here's the output from the standard ping test, modified to show >> the network tables. I also forced the second host to be one that >> required going to a different network (via the gateway). It all >> seems to work just fine for me. Note: the network tables look >> pretty much as yours do. > >> Start PING test >> [eth_drv_ioctl] Warning: Driver can't set multi-cast mode >> [eth_drv_ioctl] Warning: Driver can't set multi-cast mode >> BOOTP[eth0] op: REQUEST >> htype: Ethernet >> hlen: 6 >> hops: 0 >> xid: 0x5ad53233 >> secs: 0 >> flags: 0x8000 >> hw_addr: 00:08:e5:11:32:33 >> client IP: 0.0.0.0 >> my IP: 192.168.1.239 >> server IP: 192.168.1.101 >> gateway IP: 0.0.0.0 >> options: >> DHCP message: 3 REQUEST >> DHCP server id: 192.168.1.101 >> DHCP time 51: 3600 >> DHCP time 58: 1800 >> DHCP time 59: 3150 >> subnet mask: 255.255.255.0 >> gateway: 192.168.1.101 >> domain server: 192.168.1.101, 204.133.123.27, 206.168.216.4 >> domain name: chez-thomas.org >> IP broadcast: 192.168.1.255 >> DHCP option: 37/55.9: 54 51 58 59 1 3 6 15 28 >> DHCP option: 39/57.2: 576 >> DHCP requested ip: 192.168.1.239 >> [eth_drv_ioctl] Warning: Driver can't set multi-cast mode >> [eth_drv_ioctl] Warning: Driver can't set multi-cast mode >> [eth_drv_ioctl] Warning: Driver can't set multi-cast mode >> Routing tables >> Destination Gateway Mask Flags Interface >> 0.0.0.0 192.168.1.101 0.0.0.0 UG eth0 >> 127.0.0.0 127.0.0.1 255.0.0.0 UG lo0 >> 127.0.0.1 127.0.0.1 UH lo0 >> 192.168.1.0 192.168.1.0 255.255.255.0 U eth0 >> Interface statistics >> eth0 IP: 192.168.1.239, Broadcast: 192.168.1.255, Netmask: >> 255.255.255.0 >> UP BROADCAST RUNNING MULTICAST MTU: 1500, Metric: 0 >> Rx - Packets: 0, Bytes: 0, Tx - Packets: 0, Bytes: 0 >> lo0 IP: 127.0.0.1, Broadcast: 127.0.0.1, Netmask: 255.0.0.0 >> UP LOOPBACK RUNNING MULTICAST MTU: 16384, Metric: 0 >> Rx - Packets: 0, Bytes: 0, Tx - Packets: 0, Bytes: 0 >> PING server 192.168.1.101 from 192.168.1.239 >> 64 bytes from 192.168.1.101: icmp_seq=0, time=0ms >> 310 bytes from 192.168.1.101: icmp_seq=1, time=0ms >> 556 bytes from 192.168.1.101: icmp_seq=2, time=0ms >> 802 bytes from 192.168.1.101: icmp_seq=3, time=10ms >> 1048 bytes from 192.168.1.101: icmp_seq=4, time=0ms >> 1294 bytes from 192.168.1.101: icmp_seq=5, time=0ms >> 1540 bytes from 192.168.1.101: icmp_seq=6, time=0ms >> 1786 bytes from 192.168.1.101: icmp_seq=7, time=0ms >> 2032 bytes from 192.168.1.101: icmp_seq=8, time=0ms >> 2278 bytes from 192.168.1.101: icmp_seq=9, time=0ms >> 2524 bytes from 192.168.1.101: icmp_seq=10, time=0ms >> 2770 bytes from 192.168.1.101: icmp_seq=11, time=10ms >> 3016 bytes from 192.168.1.101: icmp_seq=12, time=0ms >> 3262 bytes from 192.168.1.101: icmp_seq=13, time=10ms >> 3508 bytes from 192.168.1.101: icmp_seq=14, time=0ms >> 3754 bytes from 192.168.1.101: icmp_seq=15, time=0ms >> Sent 16 packets, received 16 OK, 0 bad >> PING server 204.133.123.27 from 192.168.1.239 >> 64 bytes from 204.133.123.27: icmp_seq=0, time=0ms >> 310 bytes from 204.133.123.27: icmp_seq=1, time=0ms >> 556 bytes from 204.133.123.27: icmp_seq=2, time=0ms >> 802 bytes from 204.133.123.27: icmp_seq=3, time=0ms >> 1048 bytes from 204.133.123.27: icmp_seq=4, time=0ms >> 1294 bytes from 204.133.123.27: icmp_seq=5, time=0ms >> 1540 bytes from 204.133.123.27: icmp_seq=6, time=0ms >> 1786 bytes from 204.133.123.27: icmp_seq=7, time=0ms >> 2032 bytes from 204.133.123.27: icmp_seq=8, time=0ms >> 2278 bytes from 204.133.123.27: icmp_seq=9, time=0ms >> 2524 bytes from 204.133.123.27: icmp_seq=10, time=0ms >> 2770 bytes from 204.133.123.27: icmp_seq=11, time=0ms >> 3016 bytes from 204.133.123.27: icmp_seq=12, time=0ms >> 3262 bytes from 204.133.123.27: icmp_seq=13, time=0ms >> 3508 bytes from 204.133.123.27: icmp_seq=14, time=10ms >> 3754 bytes from 204.133.123.27: icmp_seq=15, time=0ms >> Sent 16 packets, received 16 OK, 0 bad >> PASS: >> EXIT: > >>> regards, >>> Alok >>> -----Original Message----- >>> From: ecos-discuss-owner@ecos.sourceware.org >>> [mailto:ecos-discuss-owner@ecos.sourceware.org] On Behalf Of Laurie >>> Gellatly >>> Sent: Tuesday, July 31, 2007 3:24 AM >>> To: ecos-discuss@ecos.sourceware.org >>> Subject: RE: [ECOS] FW: [ECOS] ECOS: Free BSD - Default gateway entry >> , >>> duplicate ARP//llinfo entries - >>> Alok, >>> I'm concerned at this: >>> Destination Gateway Mask Flags Interface >>> .. >>> 10.240.3.0 10.240.3.0 255.255.255.0 U eth0 >>> .. >>> To me that says that the gateway is 10.240.3.0 but with a >>> subnet of 255.255.255.0 that address is the network address and NOT >>> a valid host address. In my books, either the address or the mask >>> must be wrong. >>> I'd also be worried if you have a 0 MAC address as well. >>> They'd be the areas I'd look at. >>> ...Laurie:{) >>> -----Original Message----- >>> From: ecos-discuss-owner@ecos.sourceware.org >>> [mailto:ecos-discuss-owner@ecos.sourceware.org]On Behalf Of Alok > Singh >>> Sent: Monday, 30 July 2007 9:31 PM >>> To: ecos-discuss@ecos.sourceware.org >>> Subject: [ECOS] FW: [ECOS] ECOS: Free BSD - Default gateway entry , >>> duplicate ARP//llinfo entries - > >>> Hi, >>> Any comments/hints/clues from routing experts out there!! >>> regards, >>> Alok >>> -----Original Message----- >>> From: ecos-discuss-owner@ecos.sourceware.org >>> [mailto:ecos-discuss-owner@ecos.sourceware.org] On Behalf Of Alok >> Singh >>> Sent: Sunday, July 29, 2007 7:20 AM >>> To: ecos-discuss@ecos.sourceware.org >>> Subject: [ECOS] ECOS: Free BSD - Default gateway entry , duplicate >>> ARP//llinfo entries - >>> Hi, >>> I'm using latest cvs code. This is the same issue I mentioned > earlier, >>> where I'm not able to access the box from a different subnet. I >> debugged >>> the issue further, and I see two llinfo entries corresponding to the >>> default gateway. One is created as soon as the default routing entry >> is >>> configured. This has mac address as "0". Default gateway points to >>> this entry. When I ping from other network, then arp of gateway is >>> resolved. And this creates another entry in the routing table. But >>> default gateway routing entry is still pointing to the old one that >> ahs >>> mac address as 0. Hence for every ping, I see an ARP request going > out >>> of the box. My GW is 10.240.3.1. I'm providing the ROUTE TREE dump >>> below. Please have a look. Look for key field in the the dump to see >> the >>> duplication. I've verified that for IP addresses other than G/W, only >>> one ARP entry is present( 10.240.3.136). MY box IP address >>> is:10.240.3.156. I've enabled the debugs in icmp_input, and I can see >>> that the imcp echo reply is being sent out to IP in different subnet- > >>> icmp_input from 10.240.10.236 to 10.240.3.156, len 40 >>> icmp_input, type 8 code 0 >>> icmp_send dst 10.240.10.236 src 10.240.3.156 >>> ********************************************* >>> Route tree for AF_INET >>> rtentry=0x805f8d10 flags=0x10003 refcnt=0 use=7 expire=0 >>> key=[16,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0] >>> mask=[] >>> gw=[16,2,0,0,10,240,3,1,128,60,139,80,128,33,93,72] >>> ifp=0x805612d4 (dtl) ifa=0x805f8f30 >>> ifa_addr=[16,2,0,0,10,240,3,156,0,0,0,0,0,0,0,0] >>> ifa_dsta=[16,2,0,0,10,240,3,255,0,0,0,0,0,0,0,0] >>> ifa_mask=[7,0,0,0,255,255,255] >>> flags=0x101, refcnt=5, metric=0 >>> genmask=[NULL] gwroute=0x805f8c40 llinfo=0x00000000 >>> ------------ >>> rtentry=0x805f8e90 flags=0x101 refcnt=3 use=0 expire=30 >>> key=[16,2,0,0,10,240,3,0,0,0,0,0,0,0,0,0] >>> mask=[7,255,255,255,255,255,255] > > gw=[54,18,0,1,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] >>> ifp=0x805612d4 (dtl) ifa=0x805f8f30 >>> ifa_addr=[16,2,0,0,10,240,3,156,0,0,0,0,0,0,0,0] >>> ifa_dsta=[16,2,0,0,10,240,3,255,0,0,0,0,0,0,0,0] >>> ifa_mask=[7,0,0,0,255,255,255]= >>> flags=0x101, refcnt=5, metric=0 >>> genmask=[NULL] gwroute=0x00000000 llinfo=0x00000000 >>> -------------- >>> rtentry=0x805f89c0 flags=0x20405 refcnt=0 use=0 expire=4029 >>> key=[16,2,0,0,10,240,3,1,0,0,0,0,0,0,0,0] >>> mask=[NULL] > > gw=[54,18,0,1,6,0,6,0,0,15,181,52,144,196,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] >>> ifp=0x805612d4 (dtl) ifa=0x805f8f30 >>> ifa_addr=[16,2,0,0,10,240,3,156,0,0,0,0,0,0,0,0] >>> ifa_dsta=[16,2,0,0,10,240,3,255,0,0,0,0,0,0,0,0] >>> ifa_mask=[7,0,0,0,255,255,255] >>> flags=0x101, refcnt=5, metric=0 >>> genmask=[NULL] gwroute=0x00000000 llinfo=0x805f8940 >>> la_rt=0x805f89c0 la_hold=0x00000000, la_asked=0x0 >>> ---------------------- >>> rtentry=0x805f8c40 flags=0x2040d refcnt=1 use=0 expire=2999 >>> key=[16,2,0,0,10,240,3,1,128,60,139,80,128,33,93,72] >>> mask=[NULL] > > gw=[54,18,0,1,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, >>> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] >>> ifp=0x805612d4 (dtl) ifa=0x805f8f30 >>> ifa_addr=[16,2,0,0,10,240,3,156,0,0,0,0,0,0,0,0] >>> ifa_dsta=[16,2,0,0,10,240,3,255,0,0,0,0,0,0,0,0] >>> ifa_mask=[7,0,0,0,255,255,255] >>> flags=0x101, refcnt=5, metric=0 >>> genmask=[NULL] gwroute=0x00000000 llinfo=0x805f8ba0 >>> la_rt=0x805f8c40 la_hold=0x80605e80, la_asked=0x0 >>> ------------ >>> rtentry=0x805f8ae0 flags=0x20405 refcnt=0 use=5 expire=1233 >>> key=[16,2,0,0,10,240,3,136,0,0,0,0,0,0,0,0] >>> mask=[NULL] > > gw=[54,18,0,1,6,0,6,0,0,20,42,44,68,86,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 >>> ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] >>> ifp=0x805612d4 (dtl) ifa=0x805f8f30 >>> ifa_addr=[16,2,0,0,10,240,3,156,0,0,0,0,0,0,0,0] >>> ifa_dsta=[16,2,0,0,10,240,3,255,0,0,0,0,0,0,0,0] >>> ifa_mask=[7,0,0,0,255,255,255] >>> flags=0x101, refcnt=5, metric=0 >>> genmask=[NULL] gwroute=0x00000000 llinfo=0x805f8a60 >>> la_rt=0x805f8ae0 la_hold=0x00000000, la_asked=0x0 > > >>> I'm getting the address/GW from DHCP server. My routing table after >>> configuring the IP address and GW is provided below. >>> Routing tables >>> Destination Gateway Mask Flags Interface >>> 0.0.0.0 10.240.3.1 0.0.0.0 UG eth0 >>> 10.240.3.0 10.240.3.0 255.255.255.0 U eth0 >>> 127.0.0.0 127.0.0.1 255.0.0.0 UG lo0 >>> 127.0.0.1 127.0.0.1 UH lo0 >>> Interface statistics >>> Eth0 IP: 10.240.3.156, Broadcast: 10.240.3.255, Netmask: >>> 255.255.255.0 >>> UP BROADCAST RUNNING MULTICAST MTU: 1500, Metric: 0 >>> Rx - Packets: 100, Bytes: 19483, Tx - Packets: 12, Bytes: 720 >>> lo0 IP: 127.0.0.1, Broadcast: 127.0.0.1, Netmask: 255.0.0.0 >>> UP LOOPBACK RUNNING MULTICAST MTU: 16384, Metric: 0 >>> Rx - Packets: 0, Bytes: 0, Tx - Packets: 0, Bytes: > > > >>> regards, >>> Alok > > > > - -- - ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world - ------------------------------------------------------------ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org iD8DBQFGr3oSmaKbSsQGV8ARAhknAJ9wITlqbtyPaYUnff0UQtgbkCWLagCgkHFA afkNYjs3mTgkNEmHyFvFyHs= =bTQb -----END PGP SIGNATURE-----