The sunlink test verifies the functionality of the SBus HSI boards. sunlink tests the HDLC and SDLC protocol of SBus HSI boards and PCI bus HSI boards. sunlink downloads the DCP microcode, initializes the selected channel, and configures the selected channel to the protocol being tested.
Next, sunlink opens a datagram socket and tries to modify the socket to accept ioctl communications with the driver, and receive Synchronous mode information from it.
sunlink then opens the ports, linking the upper and lower layers with ioctl calls. After initialization, this test checks for activity before attempting to send or receive data. An error message is returned if activity is detected; otherwise the transmit buffer is filled with random data. Random data is used by default; other patterns may be specified. The data is then transmitted. If the transmission succeeds, sunlink then receives the returned data and verifies that it is identical to what was sent. Finally, statistics about the send and receive are gathered from the socket.
A full sunlink test takes approximately eight minutes per port and makes a brief check of the board ports before the actual test begins. If the port is bad, the test immediately aborts and returns an error message.
This test will not pass unless you install the correct loopback connectors or port to port cables on the ports you are testing. The ports specified for test in the option menu must have loopback connectors attached. See Appendix A for loopback connector part numbers and wiring instructions.
The Configuration field displays the available ports. (See Figure 37-1.)
sunlink Options |
Description |
---|---|
Clock source |
Select either the on-board clock or an external clock for use when using sunlink. To use the external clock option, the transmit, receive, and clock data lines must be physically loopbacked. |
Internal Loopback |
Enables or disables internal loopback tests. Internal Loopback is only needed when the Loopback setting is not port-to-port, and the clock source is on-board. |
Loopback |
Specifies the loopback type: simple single external port loopback, multiple external port loopback, and port-to-port external loopback. |
/opt/SUNWvts/bin/sunlink standard_arguments -o dev=device_name,P=port#, p=data_pattern,I,C=B/E
Table 37-2 sunlink Command Line Syntax
Argument |
Explanation |
---|---|
dev=device_name |
Specifies the device to be tested. |
|
hih0 HDLC and SDLC protocols |
P=ports |
Specifies the port number to be tested. |
p=data_pattern |
Specifies the data_pattern as one of the following: |
|
c: Character (0x55) |
|
i: Incrementing |
|
d: Decrementing |
|
r: Random (default) |
I |
Enables internal loopback for HSI/S (external). |
c=clocksource |
Specifies the clock source value as one of the following: |
|
B: On-board clock source |
|
E: External clock source |
The following is a typical command line syntax for testing an HSI/S Sbus card:
# /opt/SUNWvts/bin/sunlink -o dev=hih0,P=0_to_1+2_to_3
Typing this at the command line tests the internal loopback for port 0.
64-bit tests are located in the sparcv9 subdirectory: /opt/SUNWvts/bin/sparcv9/testname. If a test is not present in this directory, then it may only be available as a 32-bit test. For more information refer to "32-Bit and 64-Bit Tests".
The sunlink test only supports the Functional test mode.
Refer to Appendix A of this manual, and the High Speed Serial Interface hardware manuals for information on loopback connectors.
|
Error Message |
Probable Cause(s) |
Recommended Action |
---|---|---|---|
6000 |
Device name must be provided! |
|
|
6001 |
Invalid port specification |
|
|
6002 |
Invalid port number |
|
|
6003 |
BSC protocol is not implemented for device_name |
|
|
6004 |
ASYNC protocol is not implemented for device_name |
|
|
6005 |
Illegal protocol specified for `device_name' |
|
|
6006 |
Could not open file: file_name |
|
|
6007 |
Could not open file devname device_name |
|
|
6008 |
Could not open file (clonename)file_name |
|
|
6009 |
Can't get sync mode info for device_name |
|
|
6010 |
Can't set sync mode info for device_name |
|
|
6011 |
Couldn't successfully execute `/usr/sunlink/dcp/dcp file_name |
|
|
6012 |
Packet received but none sent! Activity on-line. Quiesce other end before starting |
|
|
6013 |
Transmit failed on `device_name' |
|
|
6014 |
Receive failed on `device_name' |
|
|
6015 |
Data compare error on `device_name', exp = value, actual = value, offset = number |
|
|
6016 |
device_name does not respond |
No loopback plug. |
Check the loopback plug. |
System load is too heavy. |
Reduce the system load. |
||
6017 |
sigalrm: TIMEOUT |
No loopback plug. |
Check the loopback plug. |
System load is too heavy. |
Reduce the system load. |
||
8000 |
Unsupported primitive type value |
|
|
8001 |
text (error_message) |
|
|
8002 |
Response ctl.len too short: value |
|
|
8003 |
DL_INFO_ACK was not M_PCPROTO |
|
|
8004 |
DL_OK_ACK was not M_PCPROTO |
|
|