[Bridge] Bridge not working on arm embedded platform

Louis Croisez louis.croisez at gmail.com
Mon May 30 02:38:59 PDT 2005


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> =3D=3D=3D=3D=3D=3D=3D=3D eth=
0 ----+----eth1 =

=3D=3D=3D=3D=3D=3D=3D=3D [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.linux-foundation.org/pipermail/bridge/attachments/2005053=
0/262d24f2/attachment-0002.htm


More information about the Bridge mailing list