Solaris ethernet ports: e1000g1 and e1000g2 are not working

devicesethernetportsolaris

I can plumb and configure e1000g0 and e1000g3 using ifconfig, but I can't seem to make use of e1000g1 or e1000g2.

When I try ifconfig e1000g1 plumb, I get ifconfig: plumb: e1000g1: Invalid argument.

They are part of a single set of four ethernet ports physically included in the system, but for some reason. They exist in /dev in the same layout as found on another X4100 that works fine. Even pointing to the same places in /devices/pci@0,0/pci1022,7450@1/pci1022,7450@1. However, on this X4100 in question, the items for 1 and 2 do not exist. That is probably where the problem is.

How can I get access to interfaces 1 and 2, and get them to show up in /devices so I can access them?

Here is the output of prtconf -D:

System Configuration:  Sun Microsystems  i86pc
Memory size: 1024 Megabytes
System Peripherals (Software Nodes):

i86pc (driver name: rootnex)
    scsi_vhci, instance #0 (driver name: scsi_vhci)
    isa, instance #0 (driver name: isa)
        i8042, instance #0 (driver name: i8042)
            keyboard, instance #0 (driver name: kb8042)
        asy, instance #0 (driver name: asy)
        motherboard
    pci, instance #0 (driver name: pci)
        pci1022,7450, instance #0 (driver name: pci_pci)
            pci8086,1011, instance #0 (driver name: e1000g)
            pci8086,1011, instance #1 (driver name: e1000g)
            pci8086,1011 (driver name: e1000g)
            pci8086,1011, instance #3 (driver name: e1000g)
        pci1022,7451
        pci1022,7450, instance #1 (driver name: pci_pci)
            pci1000,3060, instance #0 (driver name: mpt)
                sd, instance #2 (driver name: sd)
                sd, instance #4 (driver name: sd)
                sd, instance #5 (driver name: sd)
        pci1022,7451
        pci1022,7460, instance #2 (driver name: pci_pci)
            pci1022,7464, instance #0 (driver name: ohci)
                device, instance #0 (driver name: usb_mid)
                    keyboard, instance #2 (driver name: hid)
                    mouse, instance #3 (driver name: hid)
            pci1022,7464, instance #1 (driver name: ohci)
                storage, instance #0 (driver name: scsa2usb)
                    disk, instance #0 (driver name: sd)
                storage, instance #1 (driver name: scsa2usb)
                    disk, instance #1 (driver name: sd)
            display, instance #0 (driver name: vgatext)
        pci1022,7468
        pci-ide, instance #0 (driver name: pci-ide)
            ide (driver name: ata)
            ide (driver name: ata)
        pci1022,746a
        pci1022,746b
        pci1022,1100
        pci1022,1101, instance #0 (driver name: mc-amd)
        pci1022,1102, instance #1 (driver name: mc-amd)
        pci1022,1103
    pci, instance #1 (driver name: pci)
        pci1022,7450, instance #3 (driver name: pci_pci)
        pci1022,7451
        pci1022,7450, instance #4 (driver name: pci_pci)
        pci1022,7451
    iscsi, instance #0 (driver name: iscsi)
    pseudo, instance #0 (driver name: pseudo)
    options, instance #0 (driver name: options)
    xsvc, instance #0 (driver name: xsvc)
    objmgr, instance #0 (driver name: objmgr)
    used-resources
    cpus
        cpu, instance #0

Additional outputs requested by James (IP, netmask, broadcast, ether masked using the letter x)

# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
e1000g0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet x.x.x.x netmask xxxxxxxx broadcast x.x.x.x
        ether x:xx:xx:xx:xx:xx 
e1000g3: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
        inet x.x.x.x netmask xxxxxxxx broadcast x.x.x.x
        ether x:xx:xx:xx:xx:xx 
# dladm show-dev
e1000g0         link: up        speed: 100   Mbps       duplex: full
# grep e1000g /etc/path_to_inst
"/pci@0,0/pci1022,7450@1/pci8086,1011@1" 0 "e1000g"
"/pci@0,0/pci1022,7450@1/pci8086,1011@1,1" 1 "e1000g"
"/pci@0,0/pci1022,7450@1/pci8086,1011@2" 2 "e1000g"
"/pci@0,0/pci1022,7450@1/pci8086,1011@2,1" 3 "e1000g"
# 

Best Answer

Looks like there is something a little odd going on with your system.

The dladm output is only showing e1000g0. It should show all four interfaces even if they're not plumbed. More worrying is that it isn't showing your e1000g3 interface which is plumbed.

Here's equivalent output from a T5120 (uses e1000g also), with interfaces e1000g0 and e1000g1 plumbed and configured with IP addresses, the other two interfaces are not plumbed and not connected:

# dladm show-dev
e1000g0         link: up        speed: 1000  Mbps       duplex: full
e1000g1         link: up        speed: 1000  Mbps       duplex: full
e1000g2         link: unknown   speed: 0     Mbps       duplex: half
e1000g3         link: unknown   speed: 0     Mbps       duplex: half

# grep e1000g /etc/path_to_inst
"/pci@0/pci@0/pci@1/pci@0/pci@2/network@0" 0 "e1000g"
"/pci@0/pci@0/pci@1/pci@0/pci@2/network@0,1" 1 "e1000g"
"/pci@0/pci@0/pci@1/pci@0/pci@3/network@0" 2 "e1000g"
"/pci@0/pci@0/pci@1/pci@0/pci@3/network@0,1" 3 "e1000g"

# ls -l /devices/pci\@0/pci\@0/pci\@1/pci\@0/pci\@2/
total 4
drwxr-xr-x   2 root     sys          512 Jan 20  2009 network@0
drwxr-xr-x   2 root     sys          512 Jan 20  2009 network@0,1
crw-rw-rw-   1 root     root      83,  2 Mar  4  2011 network@0,1:e1000g1
crw-rw-rw-   1 root     root      83,  1 Mar  4  2011 network@0:e1000g0
# ls -l /devices/pci\@0/pci\@0/pci\@1/pci\@0/pci\@3/
total 4
drwxr-xr-x   2 root     sys          512 Jan 20  2009 network@0
drwxr-xr-x   2 root     sys          512 Jan 20  2009 network@0,1
crw-rw-rw-   1 root     root      83,  4 Mar  4  2011 network@0,1:e1000g3
crw-rw-rw-   1 root     root      83,  3 Mar  4  2011 network@0:e1000g2

I'd recommend as a first course of action that you schedule some downtime for this box and perform a reconfiguration reboot. That is, one of:

# touch /reconfigure
# init 6

OR

# init 0
grub> boot -r

(I can't quite remember how you edit the GRUB options on an X-series box as I don't have any to hand. I think you hit TAB at the GRUB menu and add the -r to the boot arguments.)

Once the box is back up, check dladm show-dev again.