SUMMARY: HME link_status

From: Earl R Cooke (
Date: Tue Jul 25 2000 - 11:21:29 CDT

Thanks for all your responses, I got the system working last night using a
new connection/ethernet line. This is what the "link_status" was
indicating, that the interface had no link / connection to the switch
(sounds obvious, I know).

Strange thing is, this problem was caused by ndd commands against the
primary interface. When we couldn't find anything wrong with the
system/interface initially, we confirmed the connection/line was still
good. Hours later, changing the connection/line again, fixed the

I'm not sure what really happened at this point. Again, thanks for all
the responses. (below)

Earl Cooke


There are three potential parameters that I know of to the /dev/hme device
(there may be more, but these are what I am familiar with):
     0=half duplex
     1=full duplex
From what you are sending it looks like the interface is not up. 'ifconfig
<interface> up' should bring you back online, if not, check to see that
the interface was properly plummed to begin with. Since I don't know where
your scripting this its hard to give you an exact answer as where to look.
However, I would wonder why you need a script for this when you can set
the options for speed and duplex in the /etc/system file with your other
tuneable parameters.
Syntax does exist for this and is only a few lines which will work at each
boot requiring no other modification or scripting.

A word of note though; don't forget to check the speed and duplex settings
on the switch itself. Even though a connection can be established you will
see FCS errors and piss poor throughput if these are not the same on both
the switch and the system.


Steve Widup


You can't, well, that is you can't modify the link status
itself. Maybe you have an auto negotiation problem. Disable auto
negotiation and force your hme to 10/half, 10/full, 100/half, or
100/full (one at a time) and see if this gets your link up. Do this by
setting all other speed capabilities to '0'.

Over here, some ciscos take up to two minutes to detect the correct
link speed, so be patient.


Technische Universitšt Darmstadt
Datenbanken  & Verteilte Systeme   +49.6151.16 -6232 (Tel) / -6229 (Fax)
C h r i s t i a n        H a u l         See Personal Homepage for PGP-Key



you can try the following to reconfigure the hme port:

ifconfig hme0 netmask up

change to match your own i.p address.

The command you are using with the link status 0 means the port is down and according to you it's down, you're saying you can not get a network connection and that is what that 0 means.

Once your connection is up and running if you run that command again yo will see the link up with a number 1.

Trying to help,

Vinnie German Nomura Securities International, Inc.


If you already have resolved the problem, please disregard this message.

It's easier to work with you together on the phone. What's the name of the workstation? Can we log in and check with you together?



how is it not working? does it show up in ifconfig at all? does it just not want to talk out the port? does ifconfig say that it's up?

> The only thing I can find "wrong" are the results of "ndd -get /dev/hme > link_status", this returns "0". > I do have a good link to the switch. > > Question : why is the status "0", and how can I change it?

in ndd terms, a "0" usually means "off". i'm not sure how it got set that way to begin with, but i'm pretty sure that you can turn it on again by:

ndd -set /dev/hme instance 0 ndd -set /dev/hme link_status 1

the first command says to send all following "ndd" commands to /dev/hme0. if you're trying to tweak /dev/hme1 , set the instance to "1" instead of "0".

hope this helps-- darlene

--- _/_ _ /_ _ _ / _/_ _ "First there was nothing. Then it (/(// ((-/)(- ( /)()()/)/(//)()//) exploded." -- Unknown (on the Big Bang)



The "ndd -get /dev/hme link_status" is simply telling you the interface has a 10Mbs connection. It works like this, if it returns 0, then there is a 10Mbs connection. If it returns 1, then there is a 100Mbs connection. I'm not sure where your problem may lie, but here is a good explanation of the proper use of ndd commands which comes straight from

hme Troubleshooting

To examine or set a specific hme interface (hme#), specify it as follows: ndd -set /dev/hme instance #

To examine parameter values, use a ndd -get command. In particular, link_speed reveals whether the interface is operating on 10Mbs or 100Mbs mode (settings of 0 and 1, repectively), and link_mode reveals whether it is running at half or full duplex (0 and 1, respectively).

ndd -get /dev/hme link_speed ndd -get /dev/hme link_mode

To perform a hard set of the link_speed and link_mode parameters for hme#, several other parameters must be set with the ndd -set command. In these parameter names, 10 or 100 refers to link_speed, fdx or hdx refers to link_mode, and autoneg refers to autonegotiation capability. The setting corresponding to the desired mode should be set to "1" and all other parameters should be set to "0." (adv_autoneg_cap=1 is the default.) For example, to set hme# to 100/full duplex:

ndd -set /dev/hme instance # ndd -set /dev/hme adv_100T4_cap 0 ndd -set /dev/hme adv_100fdx_cap 1 ndd -set /dev/hme adv_100hdx_cap 0 ndd -set /dev/hme adv_10fdx_cap 0 ndd -set /dev/hme adv_10hdx_cap 0 ndd -set /dev/hme adv_autoneg_cap 0

ndd -set commands can be used in the /etc/rc2.d/S69inet initialization script to set the interface mode during boot rather than allowing autonegotiation. This can be useful if one of the interfaces is connected to an older switch that is not autonegotiating the line speed or mode correctly.

The line speed and mode can also be set for all hme interfaces on the system by setting the following in the /etc/system file and rebooting. (Note: The following are Sun's official recommendations. It may not be necessary to set every parameter to either 0 or 1, but it is easiest to get support when following instructions to the letter.):

100 Mb, full duplex:

set hme:hme_adv_autoneg_cap=0 set hme:hme_adv_100fdx_cap=1100 Mb, half duplex:

set hme:hme_adv_autoneg_cap=0 set hme:hme_adv_100fdx_cap=0 set hme:hme_adv_100hdx_cap=110 Mb, full duplex:

set hme:hme_adv_autoneg_cap=0 set hme:hme_adv_100fdx_cap=0 set hme:hme_adv_100hdx_cap=0 set hme:hme_adv_10fdx_cap=1 set hme:hme_adv_10hdx_cap=010 Mb, half duplex:

set hme:hme_adv_autoneg_cap=0 set hme:hme_adv_100fdx_cap=0 set hme:hme_adv_100hdx_cap=0 set hme:hme_adv_10fdx_cap=0 set hme:hme_adv_10hdx_cap=1Hardware Testing

One elementary test for the ethernet hardware is to invoke the watch-net-all command from the ok> PROM monitor prompt. This performs some simple diagnostics and listens on the ethernet port. Since this is at a much lower level than the driver level, it can be used to distinguish between hardware and software problems.

Debug Mode

The hme, qfe and be ethernet drivers can be switched into debug mode. This can be done in the /etc/system file by adding a line like: set hme:hmedebug=1 Alternatively, this can be done on a live system using adb: adb -kw /dev/ksyms /dev/mem hmedebug/D (to display current value) hmedebug/W 1 (be careful to use uppercase "W")

Debug mode permits the driver to display messages to the console. Some of the messages are informational, others are error messages. When examining the messages, remember that you are seeing one system's view of the network, and that this bias needs to be taken into account.

Hope this helps,


Earl R Cooke 07/24/2000 07:18 PM

To: cc:

Subject: HME link_status

Hello admins, I've got an Sun U2 @ Sol 7, with an embedded HME ethernet interface. I've apparently disabled the hme interface while creating/editing/testing a script to force the speed of hme interface. The script uses ndd commands to modify interface parameters. After partially running (crashed out) the unfinished script, the interface stoped working.

I've rebooted, cycled power, ifconfig'd, re-ran correct ndd commands, still won't talk on the wire. OBP commands "test-net", and "watch net" both pass, and even show traffic, but the box just won't talk.

The only thing I can find "wrong" are the results of "ndd -get /dev/hme link_status", this returns "0". I do have a good link to the switch.

Question : why is the status "0", and how can I change it?


Earl Cooke

S U BEFORE POSTING please READ the FAQ located at N . and the list POLICY statement located at M A To submit questions/summaries to this list send your email message to: N A To unsubscribe from this list please send an email message to: G E and in the BODY type: R unsubscribe sun-managers S Or . unsubscribe sun-managers original@subscription.address L To view an archive of this list please visit: I S T

This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:14:12 CDT