[ECOS] RE : [ECOS] Duplicate ARP table entries

Jeff Duncan Jeffd@Magtek.com
Thu Nov 11 17:13:00 GMT 2004


Thanks Hao - that did fix the problem.  I'm guessing that the actual bug is located elsewhere but this does stop it from causing the problem I was seeing.

Jeff

-------------

Try this patch. It's can fix ARP problem in my paltform.

Hao

--- ../ecos/packages/net/bsd_tcpip/current/src/sys/netinet/if_ether.c	2004-05-25 21:10:06.000000000 +0800
+++ ../ecos/packages/net/bsd_tcpip/current/src/sys/netinet/if_ether.c	2004-11-03 10:35:01.310746096 +0800
@@ -393,13 +393,9 @@
 		ETHER_MAP_IP_MULTICAST(&SIN(dst)->sin_addr, desten);
 		return(1);
 	}
-	if (rt)
-		la = (struct llinfo_arp *)rt->rt_llinfo;
-	if (la == 0) {
-		la = arplookup(SIN(dst)->sin_addr.s_addr, 1, 0);
-		if (la)
-			rt = la->la_rt;
-	}
+	la = arplookup(SIN(dst)->sin_addr.s_addr, 1, 0);
+	if (la)
+		rt = la->la_rt;
 	if (la == 0 || rt == 0) {
 		log(LOG_DEBUG, "arpresolve: can't allocate llinfo for %s%s%s\n",
 			inet_ntoa(SIN(dst)->sin_addr), la ? "la" : "",


-----Original Message-----
From: Jeff Duncan 
Sent: Tuesday, November 09, 2004 5:54 PM
To: 'Gary Thomas'; 'Arnaud Chataignier'
Cc: 'ecos-discuss@sources.redhat.com'
Subject: RE: [ECOS] RE : [ECOS] Duplicate ARP table entries


More info -

All my ip info is static right now and I'm using the build_bootp function.  If I set the gateway ip to the same value as the host ip then there are no problems.

If I set the gateway to a different IP on the same subnet or if I set the gateway to 0.0.0.0 so that no gateway shows in the routing table then I get into the situation I described earlier.

Jeff


-----Original Message-----
From: Jeff Duncan 
Sent: Tuesday, November 09, 2004 12:46 PM
To: 'Gary Thomas'; Arnaud Chataignier
Cc: ecos-discuss@sources.redhat.com
Subject: RE: [ECOS] RE : [ECOS] Duplicate ARP table entries


Actually we see this problem on units with a non-Ethernet version of Redboot as well as units where we pull the MAC from the same location (no fconfig involved with our modified ethernet driver.)

Also the problem can occur after it's been working just fine and then sits idle for 20+ minutes.  The ARP entries time out after 20 minutes so it seems related to ARPs being generated from the device and the host such that I end up with 2 duplicate entries in the table - one that gets updated by ARP responses and the other that gets used by ether_output.

Jeff
 

-----Original Message-----
From: Gary Thomas [mailto:gary@mlbassoc.com] 
Sent: Tuesday, November 09, 2004 11:09 AM
To: Arnaud Chataignier
Cc: Jeff Duncan; ecos-discuss@sources.redhat.com
Subject: Re: [ECOS] RE : [ECOS] Duplicate ARP table entries


On Tue, 2004-11-09 at 10:14, Arnaud Chataignier wrote:
> I confirm the bug. I see it also frequently, but unfortunately I 
> hadn't had time to dig into the problem yet.
> 
> What I do as a temporary patch for the moment is to set the ARP entry 
> manually on host side, so that it doesn't generate an ARP request. May 
> be it can help you for a while...
> 
> But for sure this bug needs to be fixed for a use in a real product. I 
> woudl appreciate receiving the patch if you find the solution before I 
> do.

This can happen if your eCos application uses a different ESA (ethernet hardware address) than what RedBoot does.  I have seen this - it happens when the 'fconfig' data isn't set up quite correctly.

> 
> Regards,
> Arnaud.
> 
> -----Message d'origine-----
> De : ecos-discuss-owner@ecos.sourceware.org
> [mailto:ecos-discuss-owner@ecos.sourceware.org] De la part de Jeff 
> Duncan Envoyé : mardi 9 novembre 2004 17:49 À : 
> ecos-discuss@sources.redhat.com Objet : [ECOS] Duplicate ARP table 
> entries
> 
> 
> I'm looking for some insight into a problems I am seeing.  Using the 
> latest eCos with FreeBSD stack on an Arm9 connecting directly to a PC, 
> I sometimes get into a situation where communication (such as ping) 
> fails. Looking into it further I have found that there seem to be 
> duplicate entries in the Arp table.  The ethernet output resolves to 
> one entry that has expired triggering an Arp send.  When the Arp 
> response is received, a different Arp table entry is updated with the 
> new Arp timeout.  So what I end up with is a ping request from the 
> host, a response being generated from ICMP, and a new Arp request 
> coming out of the device.
> 
> Sometimes I can fix the problem by clearing the route table and 
> initializing the connection again.
> 
> Any ideas?
> 
> Thanks,
> Jeff
> 
> --
> Before posting, please read the FAQ:
> http://ecos.sourceware.org/fom/ecos
> and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
-- 
Gary Thomas <gary@mlbassoc.com>
MLB Associates


--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list