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 ======== eth0 ----+----eth1  ========  [PC_B] eth0 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
ifconfig eth1 0.0.0.0
ifconfig eth0 up
ifconfig eth1 up
ifconfig br0 0.0.0.0
ifconfig br0 up
ip route add 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

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 tell 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 tell 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) to PC_B (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:

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.