[tulip-bug] Booting with eth0 unplugged breaks eth1 and eth2

Karl O. Pinc kop@meme.com
Sun, 09 Jul 2000 17:07:25 -0000 (GMT)


I'm using kernel 2.2.16 (non smp from ftp.us.kernel.org) and tulip version
0.92.  I've 3 Netgear FA310TX REV-D2 nic cards and an Intel InBusiness
8 port 10/100 switch. More tech specs follow at bottom.  I'd be happy
to supply more info.

1) After a system boot when the lowest numberd ethernet interface(s)
   are brought up (ifconfig eth0 up -- or -- ifconfig eth0 up ;
   ifconfig eth1 up) without being plugged into the switch all
   interfaces cease to work, by which I mean ping reports a single
   echo (but no timing output) from the ip numbers assigned to _any_
   of the interfaces.  (see following ping output) The problem does
   not exhibit itself (until after the next system reboot) after all
   interfaces have been brought up while plugged into the switch.
   Taking down (ifconfig eth0 down) the interface that's not plugged
   into the switch fixes the problem; the interfaces that are plugged
   in start working.  (They ping, and I can ping to the next gateway.)
   If eth2 is unplugged and brought up at boot, eth0 and eth1 will
   work.  (But the boot script is bringing up eth0, eth1, and eth2 in
   that order.)

Comment: It's not nice that the _entire_ network fails on boot if only
a piece of it is broken.  It'd be nice if unplugged interfaces could
come up for ping.  The next best option would be for unplugged
interfaces to fail to come up with an informative error message.  Of
course, now that I know what the problem is I can work around it.

-------------<problem 1) sample ping output >-----------------------
PING 192.168.1.2 (192.168.1.2) from 192.168.1.2 : 56(84) bytes of data.

--- 192.168.1.2 ping statistics ---
5 packets transmitted, 1 packets received, 80% packet loss
round-trip min/avg/max = 0.2/0.2/0.2 ms
-------------<problem 1) sample ping output >-----------------------


2) Once problem 1 has exhibited itself, after bringing all interfaces
   down, ping _does_ return an echo from _all_ the IP's once assigned
   to the interfaces.  (The routing table is empty too.)  If only the
   interface that's not plugged in is taken down, to make the plugged
   in interfaces ping, the down interface also pings.

Comment: It's disturbing to be able to ping down interfaces.

3) After making 1 occur (eth0 unplugged), and fixing it by bringing
   eth0 down, pluggin it into the switch, and bringing it back up,
   pinging any interface generates traffic on eth1.  I do get ping
   echos in this case and all others described in this section.  When
   booting with all the interfaces plugged in, pinging any interface
   puts traffic on eth0.  In this test, the first ping (to eth0) makes
   all the lights on the switch blink, after that the eth0 light is
   the only one that blinks.  After pinging all interfaces, ifconfig
   reports just 1 RX packet on eth1 and 1 RX on eth2, and no TX
   packets on either. (eth0 is 192.168.1.2, eth1 is 192.168.1.3, and
   eth2 is 192.168.1.4) So, I brought all the interfaces down, and
   reassigned eth1 to 192.168.2.3/24 and eth2 to 192.168.3.4/24, and
   brought everything back up.  Pinging 192.168.2.3 or 192.168.3.4
   still generates traffic on eth0.  Ifconfig reports lots of packets
   on eth0, 3 RX and 9 TX packets on eth1, and 12 RX and 0 TX packets
   on eth2.  Pinging does not increase the packet count on eth1 or 2.
   (The first ping made all the lights blink on the switch again.)
   The routing table and netmasks all look "right" for the separate
   networks.

Comment: All I wanted to do is see if the cards worked, so I used
192.168.1.0/24 addresses on all the cards.  I can see how having all
the cards on the same network could confuse things.  But what's going
on when I assign the cards to different networks?  Is this box going
to work as a router?  As this report is getting too long, I going to
submit it and then find out.

The standard kernel distributed in Redhat 6.2 (kernel version 2.2.14,
tuilp version 0.91g-ppc) also exhibits these problems.  I tested both
warm boots and power cycling with this kernel and got the problem both
times.  2.2.16/0.92 was tested with warm boots.

FYI, I used 192.168.1.0/24 addresses on all interfaces except where
otherwise noted.

Thanks for the work on the drivers.

How can I follow progress/resolution on this?

Karl <kop@meme.com>

Details follow:

AMD K6, 100MHz system bus, Award BIOS 4.51PG

--------------<system log at boot, eth0 unplugged>-----------------
Jul  9 21:49:26 octavia kernel: tulip.c:v0.92 4/17/2000  Written by Donald Becke
r <becker@scyld.com> 
Jul  9 21:49:26 octavia kernel:   http://www.scyld.com/network/tulip.html 
Jul  9 21:49:26 octavia kernel: eth0: Lite-On 82c168 PNIC rev 32 at 0xc2017000, 
00:A0:CC:66:7D:9C, IRQ 12. 
Jul  9 21:49:26 octavia kernel: eth0:  MII transceiver #1 config 3000 status 780
9 advertising 01e1. 
Jul  9 21:49:26 octavia kernel: eth1: Lite-On 82c168 PNIC rev 32 at 0xc2019000, 
00:A0:CC:66:7D:9D, IRQ 10. 
Jul  9 21:49:26 octavia kernel: eth1:  MII transceiver #1 config 3000 status 782
9 advertising 01e1. 
Jul  9 21:49:26 octavia kernel: eth2: Lite-On 82c168 PNIC rev 32 at 0xc201b000, 
00:A0:CC:66:7D:9B, IRQ 11. 
Jul  9 21:49:26 octavia kernel: eth2:  MII transceiver #1 config 3000 status 782
9 advertising 01e1. 
Jul  9 21:49:26 octavia kernel: eth1: Setting full-duplex based on MII #1 link p
artner capability of 45e1. 
Jul  9 21:49:26 octavia kernel: eth2: Setting full-duplex based on MII #1 link p
artner capability of 45e1. 
--------------<system log at boot, eth0 unplugged>-----------------

---------------</proc/interrupts>------------------
           CPU0       
  0:     112424          XT-PIC  timer
  1:       4971          XT-PIC  keyboard
  2:          0          XT-PIC  cascade
  8:          1          XT-PIC  rtc
 10:          6          XT-PIC  eth1
 11:          6          XT-PIC  eth2
 12:         13          XT-PIC  eth0
 13:          0          XT-PIC  fpu
 14:      55984          XT-PIC  ide0
NMI:          0
---------------</proc/interrupts>------------------

--------------</proc/pci>----------------------------------
PCI devices found:
  Bus  0, device   0, function  0:
    Host bridge: Silicon Integrated Systems Unknown device (rev 2).
      Vendor id=1039. Device id=530.
      Medium devsel.  Master Capable.  Latency=32.  
      Non-prefetchable 32 bit memory at 0xe0000000 [0xe0000000].
  Bus  0, device   0, function  1:
    IDE interface: Silicon Integrated Systems 85C5513 (rev 208).
      Fast devsel.  IRQ 14.  Master Capable.  Latency=128.  
      I/O at 0xe400 [0xe401].
      I/O at 0xe000 [0xe001].
      I/O at 0xd800 [0xd801].
      I/O at 0xd400 [0xd401].
      I/O at 0xd000 [0xd001].
  Bus  0, device   1, function  0:
    ISA bridge: Silicon Integrated Systems 85C503 (rev 179).
      Medium devsel.  Master Capable.  No bursts.  
  Bus  0, device   1, function  1:
    Hot Swap Controller: Silicon Integrated Systems ACPI (rev 0).
      Medium devsel.  
  Bus  0, device   2, function  0:
    PCI bridge: Silicon Integrated Systems 5591/5592 AGP (rev 0).
      Fast devsel.  Master Capable.  No bursts.  Min Gnt=8.
  Bus  0, device  10, function  0:
    Ethernet controller: LiteOn LNE100TX (rev 32).
      Medium devsel.  Fast back-to-back capable.  IRQ 12.  Master Capable.  Late
ncy=32.  
      I/O at 0xa800 [0xa801].
      Non-prefetchable 32 bit memory at 0xde800000 [0xde800000].
  Bus  0, device  11, function  0:
    Ethernet controller: LiteOn LNE100TX (rev 32).
      Medium devsel.  Fast back-to-back capable.  IRQ 10.  Master Capable.  Late
ncy=32.  
      I/O at 0xa400 [0xa401].
      Non-prefetchable 32 bit memory at 0xde000000 [0xde000000].
  Bus  0, device  12, function  0:
    Ethernet controller: LiteOn LNE100TX (rev 32).
      Medium devsel.  Fast back-to-back capable.  IRQ 11.  Master Capable.  Late
ncy=32.  
      I/O at 0xa000 [0xa001].
      Non-prefetchable 32 bit memory at 0xdd800000 [0xdd800000].
  Bus  1, device   0, function  0:
    VGA compatible controller: Silicon Integrated Systems Unknown device (rev 16
2).
      Vendor id=1039. Device id=6306.
      Medium devsel.  IRQ 11.  Master Capable.  Latency=64.  Min Gnt=2.
      Prefetchable 32 bit memory at 0xe7800000 [0xe7800008].
      Non-prefetchable 32 bit memory at 0xdf000000 [0xdf000000].
      I/O at 0xb800 [0xb801].
--------------</proc/pci>---------------------------------

----------------</proc/ioports>--------------------------
0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
01f0-01f7 : ide0
02f8-02ff : serial(auto)
03c0-03df : vga+
03f6-03f6 : ide0
03f8-03ff : serial(auto)
d000-d007 : ide0
d008-d00f : ide1
c2017000-c20173ff : eth0
c2019000-c20193ff : eth1
c201b000-c201b3ff : eth2
----------------</proc/ioports>--------------------------

-------------</etc/conf.modules>----------------
alias eth0 tulip
alias eth1 tulip
alias eth2 tulip
alias parport_lowlevel parport_pc
-------------</etc/conf.modules>----------------

------------<lsmod>--------------
Module                  Size  Used by
tulip                  32192   3  (autoclean)
pci-scan                2480   0  (autoclean) [tulip]
------------<lsmod>--------------