[Cialug] ARP troubles
Nathan C. Smith
nathan.smith at ipmvs.com
Mon Feb 8 07:53:00 CST 2010
O
----- Original Message -----
From: cialug-bounces at cialug.org <cialug-bounces at cialug.org>
To: Central Iowa Linux Users Group <cialug at cialug.org>
Sent: Sat Feb 06 11:57:07 2010
Subject: [Cialug] ARP troubles
I'm trying to implement IP/UDP on a Philips/NXP LPC2106 (40 MHz
ARM7TDMI) with a CS8900A 10mbit controller. I'm using arping(8) on a
gentoo box to generate ARP requests to the 2106. I have a RS232 link
back to the machine so I can dump packets the 2106 receives and sends.
So far I can receive ARP requests and it all seems to parse correctly
and all the MAC's and IPs look correct.
My problem is is that when I send a ARP announcement or ARP response
(and presumably any frame) they are not received by any other machine
on my network. I use a TRENDWare 10/100/1000 8-port unmanaged switch
(TEG-S80TXE) and the activity light blinks when it should but the
frames are clearly not being sent to the other machines. tcpdump
doesn't see anything either (how can it though if the switch doesn't
broadcast?).
The CRC is generated by the CS8900A so I don't have to worry about
that. The Tx flag in the CS8900A indicates the Tx was successful.
I must be missing something.
From the linux box (192.168.0.5 @ 00:E0:4C:F8:2A:21). 192.168.0.10 @
01:02:03:04:05:06 are made-up and hard-coded (presumably will do DHCP
later).
# arping -c 1 192.168.0.10
ARPING 192.168.0.10 from 192.168.0.5 eth0
Sent 1 probes (1 broadcast(s))
Received 0 response(s)
Dump information from the 2106 via RS232. The "Length" is the length
field in the ethernet frame and the "Data Length" is the actual
payload length calculated from what the CS8900A tells me is in the
ethernet frame. The "Data" is 32-bit chucks of the ethernet payload
dumped as hex.
What you see is the following:
1) Ethernet frame dump
2) Parsed ARP packet dump
3) Response ethernet frame dump
4) Response ethernet ARP packet dump
----------------------------------------------------------------------------------------------
Destination MAC: FF:FF:FF:FF:FF:FF
Source MAC: 00:E0:4C:F8:2A:21
Length: 0806
Data Length: 0000001C
Data:
00080100
01000406
F84CE000
A8C0212A
FFFF0500
FFFFFFFF
0A00A8C0
Got ARP frame
Data Length: 0000001C
Hardware Type: 0001
Protocol Type: 0800
Hardware Length: 0006
Protocol Length: 0004
Operation: Request
Sender Hardware Address: 00:E0:4C:F8:2A:21
Sender Protocol Address: 192.168.000.005
Target Hardware Address: FF:FF:FF:FF:FF:FF
Target Protocol Address: 192.168.000.010
Sending response
Destination MAC: 00:E0:4C:F8:2A:21
Source MAC: 01:02:03:04:05:06
Length: 00000806
Data Length: 0000001C
Data:
00080100
02000406
04030201
A8C00605
E0000A00
212AF84C
0500A8C0
Hardware Type: 00000001
Protocol Type: 00000800
Hardware Length: 00000006
Protocol Length: 00000004
Operation: Response
Sender Hardware Address: 01:02:03:04:05:06
Sender Protocol Address: 192.168.000.010
Target Hardware Address: 00:E0:4C:F8:2A:21
Target Protocol Address: 192.168.000.005
----------------------------------------------------------------------------------------------
All of that looks fine to me. Send an ARP announcement is basically
the same but with THA=00:00:00:00:00:00 and SPA=TPA=192.168.0.10.
This is kind of a hail mary. Is there something I'm missing to get
the switch to play correctly? Thanks if you have any ideas!
Colin
_______________________________________________
Cialug mailing list
Cialug at cialug.org
http://cialug.org/mailman/listinfo/cialug
More information about the Cialug
mailing list