Beginning to get my hands dirty in the world of Solaris11.
I've encountered a bump that I cannot seem to overcome with a server NIC interface? So I installed a VM Solaris11 machine at home to play with.
Sun OS Solaris11 5.11 11.0 i86pc i386
My question is - is it enough to modify /kernel/drv/e1000g.conf
to represent "ForceSpeedSuplex=4;" and "AutoNetAdvertised=8;" in order to force a link to connection of 100M Full duplex? [With a reboot also]
Or do I have to invoke ndd commands to 'disable' the entries for adv_10fdx_cap, adv_10hdx_cap etc
Using the e1000g.conf file and rebooting does not seem to invoke the changes however? still showing as 1000Full Duplex?
@fpmurphy Even with a 64 bit kernel, "uname -a" is still reporting i86pc and i386. cat /etc/release is the preferred way to identify a Solaris release.
@ru4n1 It looks like these settings are ignored under VirtualBox, maybe because there is no real physical layer for the speed to be negotiated in the first place. Perhaps are the drivers bypassing that step and use the fastest supported speed.
I think the comparison between my Virtualbox 'sandpit' environment and the actual physical Sol11 T4 server is not equivalent.
I had an e1000g device interface in my sandbox but an igb interface on the physcial server.
I do think that the virtual environment negotiation may not be amendable in the usual manner so I will forego that.
I did manage to get the interface at the required speed/settings though as per below.
root@<servername>:/kernel/drv> dladm show-phys net0
LINK MEDIA STATE SPEED DUPLEX DEVICE
net0 Ethernet up 100 full igb0
I edited the associated conf file for this device as per below and rebooted.
root@omeg6051:/kernel/drv> grep adv_ igb.conf
# adv_autoneg_cap
# adv_1000fdx_cap
# adv_100fdx_cap
# adv_100hdx_cap
# adv_10fdx_cap
# adv_10hdx_cap
# The parameter "adv_autoneg_cap" is used to enable autonegotiation or disable
# If autonegotiation is enabled (the default mode), all the "adv_*_cap"
# For example, if adv_1000fdx_cap is enabled, all other values will be ignored;
# adv_1000fdx_cap will be ignored).
adv_autoneg_cap = 0;
adv_1000fdx_cap = 0;
adv_100fdx_cap = 1;
adv_100hdx_cap = 0;
adv_10fdx_cap = 0;
adv_10hdx_cap = 0;