can't disable autoneg for nge via ndd && looking for nge.conf values

From: Eric Hankins (erhankins@gmail.com)
Date: Fri Aug 25 2006 - 18:10:07 EDT


So...connecting my new cluster of X2100s to a load balancing switch.

The switch only does 100baseT. Given my previous poor experiences with
autonegotiation in a production environment, I'm attempting to lock
the nge0 interface on the machines at 100 full duplex.

My first instinct was to set it in /kernel/drv/nge.conf and be done with it.

Unfortunately, I have been completely unsuccessful in finding any
documentation for nge.conf and have no idea what the values are for
locking speed/duplex. The closest I've come is finding an OpenSolaris
changelog stating that a bug related to setting values via nge.conf
was fixed - google seems to have let me down...

I then attempted to disable autonegotiation and set the speed/duplex I
want via a script located in /etc/rc2.d using ndd. The ndd commands in
the script are as follows:

/usr/sbin/ndd -set /dev/nge0 adv_autoneg_cap 0
/usr/sbin/ndd -set /dev/nge0 adv_1000fdx_cap 0
/usr/sbin/ndd -set /dev/nge0 adv_1000hdx_cap 0
/usr/sbin/ndd -set /dev/nge0 adv_100fdx_cap 1
/usr/sbin/ndd -set /dev/nge0 adv_100hdx_cap 0
/usr/sbin/ndd -set /dev/nge0 adv_10fdx_cap 0
/usr/sbin/ndd -set /dev/nge0 adv_10hdx_cap 0

setting the speed/duplex caps works fine, but the autoneg one at the
top fails with "Permission denied"

This disturbed me, as I'm doing all of this as root. I tried various
shots in the dark, such as downing or unplumbing the interface before
attempting to disable autoneg via ndd, to no avail

I have included output from truss on the ndd command below.

What I really want is to lock nge0 at 100fdx via nge.conf, so if
someone can point me in the right direction on what those settings
look like, I would greatly appreciate it.

If someone could tell me why I'm unable to disable autoneg via ndd,
that would work as well.

I could very well be missing a patch - I am running stock 10 update 2

Thanks!
-eric

# truss ndd -set /dev/nge0 adv_autoneg_cap 0
execve("/usr/sbin/ndd", 0x08047DB4, 0x08047DCC) argc = 5
resolvepath("/usr/lib/ld.so.1", "/lib/ld.so.1", 1023) = 12
resolvepath("/usr/sbin/ndd", "/usr/sbin/ndd", 1023) = 13
sysconfig(_CONFIG_PAGESIZE) = 4096
xstat(2, "/usr/sbin/ndd", 0x08047BA8) = 0
open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT
xstat(2, "/lib/libc.so.1", 0x08047440) = 0
resolvepath("/lib/libc.so.1", "/lib/libc.so.1", 1023) = 14
open("/lib/libc.so.1", O_RDONLY) = 3
mmap(0x00010000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3,
0) = 0xFEFC0000
mmap(0x00010000, 851968, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEEE0000
mmap(0xFEEE0000, 751253, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEEE0000
mmap(0xFEFA8000, 24239, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 753664) = 0xFEFA8000
mmap(0xFEFAE000, 5656, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFEFAE000
munmap(0xFEF98000, 65536) = 0
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEED0000
memcntl(0xFEEE0000, 120300, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3) = 0
munmap(0xFEFC0000, 4096) = 0
mmap(0x00010000, 24576, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEFC0000
getcontext(0x08047940)
getrlimit(RLIMIT_STACK, 0x08047938) = 0
getpid() = 605 [604]
lwp_private(0, 1, 0xFEFC2000) = 0x000001C3
setustack(0xFEFC2060)
sysi86(SI86FPSTART, 0xFEFAECD8, 0x0000133F, 0x00001F80) = 0x00000001
open("/dev/nge0", O_RDWR) = 3
ioctl(3, I_CANPUT, 0x00000000) = 1
ioctl(3, I_STR, 0x08047D50) Err#13 EACCES
brk(0x08072870) = 0
brk(0x08074870) = 0
ioctl(1, TCGETA, 0x080470A4) = 0
fstat64(1, 0x08047010) = 0
operation failed: Permission denied
write(1, " o p e r a t i o n f a".., 36) = 36
_exit(1)
_______________________________________________
sunmanagers mailing list
sunmanagers@sunmanagers.org
http://www.sunmanagers.org/mailman/listinfo/sunmanagers



This archive was generated by hypermail 2.1.7 : Wed Apr 09 2008 - 23:40:40 EDT