MAC driver issue

Martin, Tim tim.martin at viasat.com
Thu Sep 7 04:11:14 EST 2006


> 
> >     I have no doubt it is with the driver.  I am somewhat 
> fortunate in 
> > this instance that I have a nearly identical setup - this 
> is an FPGA 
> > based system
> >     I can swap the FPGA firmware, get an almost identical 
> kernel with 
> > a slightly different NIC, and everything works - same 
> cables, same IP's,
> >     Same switch, The only things different are the NIC and 
> its driver. 
> > Even the Linux kernels are identical - except the NIC driver.
> >    
> >     BUT so is the data received and passed on to the kernel 
> (outside 
> > random differences in the padding of the ARP packet)

Why is the ARP packet padding random?  I would think it would be fixed,
since the ARP packet itself is a fixed length (for IPv4<->Ethernet ARPs)
and the minimum Ethernet frame is 64 bytes...


> >     One works the other doesn't.
> > 
> 
> Well ethernet device drivers contain multiple arp supporting 
> methods, e.g. header_cache, header_cache_update, 
> hard_header_parse, etc etc.
> Generally driver writers don't need to concern themselves 
> about these as they are assigned to generic handlers by 
> ether_setup().  However, your problematic driver may do 
> something different.
> 
> Given this problem appears to be driver specific rather than 
> PPC specific your best bet is to try and contact the author.  
> BTW, I don't think you've said which driver you are using, a 
> key piece of info....
> 

Might I suggest putting static ARP entries in the kernel (use the "arp"
command from a prompt) and some other packet traffic - UDP perhaps.  See
if the problem is specifically with the way your network driver handles
ARP packets, or if it's a more fundamental problem of how the driver
hands any type of Ethernet packet off to the upper kernel stack layers.



More information about the Linuxppc-embedded mailing list