[Bridge] Bridge not working on arm embedded platform

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,
i want to implement the bridging feature on an arm (cpu intel ixp425), 
running busybox+linux kernel 2.6.11.
For this, I have recompiled the kernel to enable bridging and ebtables, and 
I have compiled and installed brctl utility for arm.

Here is my network setup:
[PC_A] eth0 10.0.0.10/24 <http://10.0.0.10/24> ======== eth0 ----+----eth1 
======== [PC_B] eth0 10.10.0.1/24 <http://10.10.0.1/24>
| 
br0 
[ARM] 

Here is how I setup my bridge on the ARM:
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
brctl setfd br0 1
ifconfig eth0 promisc
ifconfig eth1 promisc
ifconfig eth0 0.0.0.0 <http://0.0.0.0>
ifconfig eth1 0.0.0.0 <http://0.0.0.0>
ifconfig eth0 up
ifconfig eth1 up
ifconfig br0 0.0.0.0 <http://0.0.0.0>
ifconfig br0 up
ip route add 0.0.0.0/0 <http://0.0.0.0/0> dev br0


On PC_A, I ping PC_B. It does not work
[pc_a]# ping 10.0.0.10 <http://10.0.0.10>

Then, I verified with tcpdump on the arm platform where the problem could 
be:
[arm]# tcpdump -i br0
listening on br0, link-type EN10MB (Ethernet), capture size 68 bytes
arp who-has 10.10.0.1 <http://10.10.0.1> tell 10.0.0.10 <http://10.0.0.10> 
3 packets captured 
3 packets received by filter 
0 packets dropped by kernel 

[arm]# tcpdump -i eth0
listening on eth0, link-type EN10MB (Ethernet), capture size 68 bytes
arp who-has 10.10.0.1 <http://10.10.0.1> tell 10.0.0.10 <http://10.0.0.10> 
3 packets captured 
3 packets received by filter 
0 packets dropped by kernel 


[arm]# tcpdump -i eth1 
listening on eth1, link-type EN10MB (Ethernet), capture size 68 bytes
0 packets captured 
0 packets received by filter 
0 packets dropped by kernel 

The ICMP packet is not sent because the arp resolution is not completed.
Finally, the problem is: why does the bridge not forward the arp request 
from PC_A (10.0.0.10 <http://10.0.0.10>) to PC_B (10.10.0.1<http://10.10.0.1>
)
This is a broadcast packet, and it should be forwarded on the other 
interface of the bridge.

What I have done to find the problem:

   - I have verified that both eth0 and eth1 on the bridge are well 
   working in promiscuous mode. 
   - I have statically defined an arp entry for PC_A inside PC_B, and an 
   arp entry for PC_B inside PC_A; the result is that the ICMP packet (ping) is 
   well bridged through the two interfaces of the ARM platform. Thus the 
   problem is related to the arp resolution.
    

If someone could help me, it would be great because I am completely locked. 
Replacing the ARM by a standard PC make the things working.

--L.Croisez.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osdl.org/pipermail/bridge/attachments/20050530/262d24f2/attachment.htm

[Index of Archives]     [Netdev]     [AoE Tools]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux