Packet loss on ce interface.

Hi,

I am using the ce interface on my Solaris 9 server and there is significant packet loss when transmitting large packets. Does anyone have a fix for this?

----10.1.0.0 PING Statistics----
51 packets transmitted, 42 packets received, 17% packet loss
round-trip (ms) min/avg/max = 91/91/98

Thanks,

Sparcman:confused:

have you patched the machine with some newer patch cluster? i remember some problems with ce interfaces which are fixed by patches... also check the cabel and the switch port settings... if this is a new problem and not something that was always there, a hardware problem might be more likely.

1 Like

Hi DukeNuke2,

I've installed the 9_Recommended patch cluster and the problem still persists. This has been a problem for a few months. I will check out the Oracle website to see if there is anything there regarding a patch.

Thanks,

Sparcman

Check your duplex setting :

$netstat -k ce5| egrep 'link_speed|link_status|link_duplex'
lp_cap_asmpause 0 lp_cap_pause 0 link_T4 0 link_speed 100 
link_duplex 2 link_asmpause 0 link_pause 0 link_up 1 mac_mtu 1522 

The output has the following meaning:
link_up - 0 down, 1 up
link_speed - speed in Mbit/s
link_duplex - 1 half duplex, 2 full duplex, 0 down

Following will set interface to 100-FD, Forced config. Enable autoneg if you wish to use it.
You have to make relevant changed on switch side also

ndd �set /dev/ce instance 0
ndd �set /dev/ce adv_100T4_cap 0
ndd �set /dev/ce adv_1000fdx_cap 0
ndd �set /dev/ce adv_1000hdx_cap
ndd �set /dev/ce adv_100fdx_cap 1
ndd �set /dev/ce adv_100hdx_cap 0
ndd �set /dev/ce adv_10fdx_cap 0
ndd �set /dev/ce adv_10hdx_cap 0
ndd �set /dev/ce adv_autoneg_cap 0 

Beware that forced configurations like the one suggested are a very common root cause of networking issues and are only advised if you are sure there won't be a mismatch risk with the other connected end. Resetting to the default, i.e. auto-negotiation, is almost always a safe bet. Unless you are using old routers/switches with bogus firmwares, there should be no need to force the speed or the duplex mode.

Hi,

Thanks for all your replies.

The settings of the interface are below. These settings are forced. When I use auto-neg the speed of the interface drops to 10 half duplex even though it should auto-neg to 1000 full, so I can't use auto-neg. We don't know why this happens either.

lp_cap_asmpause 0 lp_cap_pause 0 link_T4 0 link_speed 1000
link_duplex 2 link_asmpause 0 link_pause 0 link_up 1 mac_mtu 1522

I've been told a patch may help?

Thanks,

Sparcman

have you checked the cable and the switch and another nic (if you have one in your machine)?

The autonegotiation is probably failing because of the same hardware problem that's causing your packet loss.

It's broke.

Effectively saying, "WORK!!! **** YOU!!!" with forced configuration settings isn't going to change that.

1 Like

+1 !

Will try that. Thanks.

I have seen this problem when interface choose a lower duplex setting. Generally i use this simple trick.

  1. enable auto neg with all options enabled
  2. disable all capabilities except adv_1000fdx_cap.

This will make interface run auto-neg but it will not negotiate anything below 1000Full.
I have more than 10 machines running like this. no issue since past 9 months :).
Just make sure to add a start up script to make these changes available after reboot. or if you are comfortable you can edit /etc/system file.

Hope it helps.

1 Like

Hi mtomar,

Thanks for your post. Here are my settings for the ce4 interface which are set in an init script. How do I enable all auto-neg options? I would usually just set the ndd -set /dev/ce adv_1000fdx_cap 1 to 0 and the autoneg to 1?

ndd -set /dev/ce instance 4
ndd -set /dev/ce adv_1000fdx_cap 1
ndd -set /dev/ce adv_1000hdx_cap 0
ndd -set /dev/ce adv_100fdx_cap 0
ndd -set /dev/ce adv_100hdx_cap 0
ndd -set /dev/ce adv_10fdx_cap 0
ndd -set /dev/ce adv_10hdx_cap 0
ndd -set /dev/ce adv_autoneg_cap 0

Thanks,

Sparcman

ndd -set /dev/ce adv_autoneg_cap 1

Enables auto neg.