Operating System - OpenVMS
1832956 Members
2867 Online
110048 Solutions
New Discussion

Re: Carrier failure detection on SGEC Ethernet controller

 
Neil Stead
New Member

Carrier failure detection on SGEC Ethernet controller

I need to write a routine to interrogate the SGEC Ethernet controller on a VAX4000/105 to determine whether the controller is currently detecting the network carrier.

Existing code for an Alpha machine (with a different Ethernet controller) uses the data returned from a $QIO with FUNC=IO$SENSMODE + IO$M_CTRL + IO$M_RD_COUNT.

Trying the same thing with the SGEC controller returns some data, but the format of the datastructure is different (not surprisingly). I can't find where
, but I can't find out whether I can use the same function codes with the SGEC controller, or where the format of the datastructure is documented.

Any help would be much appreciated!

Neil Stead
Reuters.
8 REPLIES 8
Ian Miller.
Honored Contributor

Re: Carrier failure detection on SGEC Ethernet controller

Have you looked in the I/O users ref manual
http://h71000.www7.hp.com/doc/732FINAL/aa-pv6sf-tk/aa-pv6sf-tk.HTMl
____________________
Purely Personal Opinion
Neil Stead
New Member

Re: Carrier failure detection on SGEC Ethernet controller

Yes, but there's no mention of using the IO$M_RD_COUNT function modifier with a LAN driver

(In fact, having Googled for IO$M_RD_COUNT, the only results are associated with TCP/UDP/IP drivers)

However, I know that for an DE450 ethernet controller, it returns a list of parameter IDs and values, in the same way as if you specify just IO$M_SENSEMODE+IO$M_CTRL. These parameters are things like time, rx_block, rx_multi_block, data_overrun_count, etc.

However, I can't find where these parameter IDs are defined - they're not in the I/O users guide.

If I could find where the parameter IDs are defined, then I could look through the returned buffer for the appropriate ID.

Neil.
Antoniov.
Honored Contributor

Re: Carrier failure detection on SGEC Ethernet controller

Hi Neil,
for my experience using $QIO, there are different structure for any type of device not for single device that can leave unchanged some value.
May be your info about VAX ethernet controller are good for alpha controller too, or else you could search documentation about other controller.

Good luck!
Antonio Vigliotti
Antonio Maria Vigliotti
Ian Miller.
Honored Contributor

Re: Carrier failure detection on SGEC Ethernet controller

I think the parameters are the ones listed for SETMODE
http://h71000.www7.hp.com/doc/732FINAL/aa-pv6sf-tk/aa-pv6sf-tk.HTMl
Table 39
____________________
Purely Personal Opinion
Neil Stead
New Member

Re: Carrier failure detection on SGEC Ethernet controller

No, they're not. The ones in Table 39 are the ones that are returned if you DON'T specify IO$M_RD_COUNT. With IO$M_RD_COUNT, you get a different set.

Thanks to all for your efforts. I've just discovered that the buffer returned *is* the same as for the DE450 controller - it was a bug in some 16-year-old Reuters library routines, which meant that only the first 60 bytes of the array were getting returned, and the other 70-odd bytes were garbage.

If I get a moment, I'll post the data structure here.

Neil.
Antoniov.
Honored Contributor

Re: Carrier failure detection on SGEC Ethernet controller


I've just discovered that the buffer returned *is* the same as for the DE450 controller

I'm not amazed, vms use same structure for all devices of class ...

Antonio Vigliotti
Antonio Maria Vigliotti
Neil Stead
New Member

Re: Carrier failure detection on SGEC Ethernet controller

I'd still like to find out where the datastructure is documented, so if anyone has any ideas...

Thanks,

Neil.
Willem Grooters
Honored Contributor

Re: Carrier failure detection on SGEC Ethernet controller

Neil,

a hint: If you know the name of the structure, you may be able to find the layout, or hints to construct one, in some system library. Most likely candidate is STARLET.MLB (macros-32 definitions) or LIBRTL.TLB. DECC$RTLDEF.TLB may hold usable data as well. All these are on SYS$LIBRARY (this list is not intended to be complete....)
It may well be that the header files may give you the offsets, in that case you'll have to contruct the record yourself.

Willem
Willem Grooters
OpenVMS Developer & System Manager