Stephen Hemminger
2007-Apr-18 12:36 UTC
[Bridge] Bridge not working on arm embedded platform
On Mon, 30 May 2005 11:38:59 +0200 Louis Croisez <louis.croisez@gmail.com> wrote:> 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]What is IP address of bridge? (br0) or do you not want the ARM box to be IP accessible?> > Here is how I setup my bridge on the ARM: > brctl addbr br0 > brctl addif br0 eth0 > brctl addif br0 eth1 > brctl setfd br0 1why set forwarding delay so low, please don't> ifconfig eth0 promiscDon't do this you don't need to, unless something is broken in driver.> ifconfig eth1 promisc > ifconfig eth0 0.0.0.0 <http://0.0.0.0>What is http:// stuff? some filter got it? expect: ifconfig eth0 0.0.0.0 to bring up without IP address> ifconfig eth1 0.0.0.0 <http://0.0.0.0> > ifconfig eth0 upunneeded device is already up.> ifconfig eth1 up > ifconfig br0 0.0.0.0 <http://0.0.0.0>You forgot to assign IP address to bridge, expect: ifconfig br0> ifconfig br0 upLikewise unneeded.> ip route add 0.0.0.0/0 <http://0.0.0.0/0> dev br0In addition to configuration issues, I would also suspect the ARM ethernet driver. Possible issues: 1) Does each ethernet device have a valid unique ethernet address? (ifconfig -a) 2) Does promiscuous work correctly? Can you snoop the net correctly with tcpdump without the bridge and without forcing eth into promiscuous mode.
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 eth0 ----+----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/20050530/262d24f2/attachment-0001.htm