This command executes the LAN exerciser.
By default this image is loaded from SYS$SHARE. However, it can
be redirected with the following logical:
$ define xx$sda [dir-spec]xx$sda.exe
Format:
SDA> xx command
1 – EXAMINE
This command displays information about LAN structures (mainly VCRPs).
It is an extension of the SDA> FORMAT command.
Format:
SDA> xx examine address
1.1 – Parameters
Address
Address to examine (64 or 32 bit format and symbols)
1.2 – Qualifiers
None.
1.3 – Examples
SDA> xx examine 81667D40
XX$SDA: EXAMINE FFFFFFFF.81667D40 size = 9664 type = 78 subtype = 0
FFFFFFFF.81667D48: VCRP$W_SIZE 25C0
FFFFFFFF.81667D94: VCRP$L_BOFF 00000000
FFFFFFFF.81667D98: VCRP$L_BCNT 00000000
FFFFFFFF.81667F28: VCRP$A_LAN_802XMT/CT 0000
FFFFFFFF.81667F2A: VCRP$A_LAN_802XMT/CT 00
FFFFFFFF.81667F2A: VCRP$A_LAN_802XMT/DS 00
FFFFFFFF.81667F2C: VCRP$A_LAN_T_RESP 00000000
FFFFFFFF.81667E04: VCRP$A_LAN_R_HEADER 00000000
FFFFFFFF.81667E0C: VCRP$L_FUNCTION 00000005 RECEIVE
FFFFFFFF.81667F20: VCRP$Q_LAN_T_DEST 00000000 00-00-00-00-00-00
FFFFFFFF.81667D84: VCRP$A_DEALLOC_RTN 00000000
FFFFFFFF.81667D90: VCRP$L_BUFFER_ADDRES 81667FC0
-- buffer data starting at [vcrp + vcrp$l_boff] --
FFFFFFFF.81667D40: DA: 80-57-66-81-20-A4
FFFFFFFF.81667D46: SA: 49-86-C0-25-4E-00
FFFFFFFF.81667D4C: PTY: 00-00
2 – HELP
This command displays help data for the XX SDA extension.
Format:
SDA> xx help
3 – LOAD
This command loads XXDRIVER on the system. After loading XXDRIVER, a test
can be started.
Format:
SDA> xx load
3.1 – Parameters
None.
3.2 – Qualifiers
None.
4 – SHOW
Displays XX device and test information.
Format:
SDA> XX SHOW
4.1 – Parameters
None.
4.2 – Qualifiers
None.
4.3 – Examples
SDA> xx show XX$SDA: Device Information XXA0: UCB = 81D31B80 %SDA-W-NOREAD, unable to access location 00000000.00000000 VCIB address 81D31E00 Test IRP 00000000 VCIB id 00000000 Test VCRP 81D31EC0 Port state DISABLED Portlock 81D71380 This sections displays information about the Active cpus 00000000 TEST IP STOPPED operating state of XXA0: device. The port state fork pending 00000000 Fork Block 81D32140 field is the state of the VCI user, disabled in rcv fork pending 00000000 RCV Fork block 81D32170 this case. TEST IP, is the status of the test. <> 00000000 VCRP queue 81D321B0 xmt outstanding is the number of unfinished VCRPs free vcrps 00000000 VCRP rcv queue 81D321C0 held by the NIC. If XXDRIVER found a failure, it buffer offset 0000024E header size 0000000E would be displayed in the failure status and xmt outstanding 00000000 xmt rate 000927C4 RA (return address on XXDRIVER). Loop outstanding number of forks 000AFF81 Physical address Undefined is the number of request waiting for response from MIN test size 00000042 Start time 00000000 the remote target device. Unavailable user buffer is Failure status 00000000 failure RA 00000000 the number of request the LAN layer was no able to loop outstanding 00000000 Unavail user buffe 00000000 deliver to XXDRIVER. XX$SDA: Test Command Information: command address 81D31CE0 Test device EWB Target Address 00-60-CF-21-4A-EA User 00000560 function 00200000 function is LOOP This sections summarizes the command received by duration 00000000 count 000927C0 XXDRIVER. See help on command START DEVICE for align 00000000 chain 00000000 explanation of the fields compare 00000000 flow 00000000 pipeline 00000020 rate 00000000 loopline 000003E8 <> 00000000 size 1 00000021 size 2 00000021 stop on error 00000000 stop on lost 00000000 XX$SDA: Test status Information: decimal packets sent 600004 packets received 600004 bytes sent 19800132 bytes received 27600184 This section summarizes the status of errors sent 0 errors received 0 test and it is used to obtain the compare-errors 0 errors-lost 0 results show in the next section sequence-errors 0 start time 00A53EB5.5EB79452 Soft tick 9765 <> 00000000 current-time 00000000.00000000 stop time 00A53EB5.67828DC1 Kernel ticks 00000000.000016E1 spin ticks 00000000.00000000 Idle ticks 00000000.00005F25 start rscc 0005882A.5C836651 Stop rscc 0005882D.CBDB6BB5 xmt rscc 00000006.93F741EC XX$SDA: Test results Information: CPS = 1000000000 duration 14.75 duration rscc 14.75 This section displays the results of Ker/intr/other tim 38.770 % Spin Time 0.000 % test. Idle time 161.230 % <> packets sent/sec 40.67 Kilo packets received/s 40.67 Kilo bytes sent/sec 1.31 Mega bytes received/sec 1.83 Mega time/IO [usec] 24.5881 LAN time/IO [usec] 1.4715
5 – START
This command sends a START TEST signal to XXA0.
Format:
SDA> XX START DEVICE device-name
5.1 – DEVICE
This command sends a START TEST signal to XXA0.
Look under qualifiers for a full description of the test parameters.
Format:
SDA> XX START DEVICE device-name
5.1.1 – Parameters
device-name
Specifies a device to be used for the test.
5.1.2 – Qualifiers
/LOOP=(test_parameters)
Starts a LOOP test, transmitting packets as specified in the
test_parameters and expecting the target to loop the packets back
to the sender.
/RECEIVE=(test_parameters)
Starts a RECEIVE test. The RECEIVE test receives LAN request
from a remote XX sender. If the sender sends LOOP request,
the request will be transmitted back to the sender.
/TRANSMIT=(test_parameters)
Starts a TRANSMIT test. The TRANSMIT test sends LAN request
as specified in the test_parameters but it does not wait for
the target to respond to the request.
test_parameters
The test parameters are a list of comma separated keywords.
vci - The test will use the LAN VCIB interface
qio - The test will use the LAN QIO interface
Note: These two parameters are exclusive, the tester
has to choose one or the other.
alignment = integer-value (default is zero)
This is the number extra of bytes to add before the
beginning of the user data. It is used to change the
byte alignment of the address of the user buffer (payload).
This parameter is only meaningful for LOOP and TRANSMIT
test, and should not affect the receiver.
Note that default zero, will cause alignment faults!
Alignment faults can be avoided by setting this parameter
to 2.
amc
noamc - all multicast mode (default is no amc)
Sets the LAN device in all multicast mode allowing
to receive ALL multicast requests. Tis parameter is only
valid for QIO/RECEIVE test.
chaining = integer-value (default is zero, no segmentation)
Segment a request into smaller sections. Each segment is
sent switching buffer address between Virtual Address and
PTE. This parameter is only meaningful for LOOP and TRANSMIT
test, and should not affect the receiver.
compare
nocompare (default is no compare)
Do data integrity check on the user buffer. This parameter is
only meaningful for RECEIVE and LOOP tests.
count = integer-value (default is zero, do not stop on counter)
Number of packets to process before stopping the test.
duration = integer-value (default is zero, do not stop on time)
Number of seconds to run before stopping the test.
echo = echo-keyword
This parameter is only valid when used with QIO parameter and
for RECEIVE test only. It displays the information about the
a receive packet. The echo-keyword are:
full - displays the entire content of the receive packet
header - displays only the header information
none - displays no information
partial - displays partial information
filter_pty = protocol-type
filter_sap = sap-type
filter_pid = pid-type
filter_address = MAC=address
This parameter is only valid when used with QIO parameter and
for RECEIVE test only. It displays the information about the
a receive packet filtering-in according to the values specified
in the parameters
flow_control - reserved
loopback_mode - Sets the NIC in loopback mode
noloopback_mode - Default is no loopback
Sets the NIC in loop back mode so transmit can
be send without the need of connecting cables.
No all NICs/driver support loopback mode and
not all PDU sizes are supported in loopback mode.
multicast_address = list-of-mac-multicast-addresses
This parameter setup a list of multicast address
to listen for. It is only valid with QIO/RECEIVE test.
pid - IEEE 802.E PID value if sending 802.E, QIO only.
pipeline = integer-value (default is 1)
This is the number of simultaneous transmits a LOOP or TRANSMIT
test can do. By bumping up the pipeline more data will be
transmitted but at the risk of data loss in switch
and/or in the receiver system. On a TRANSMIT test and
depending on the NIC used, maximum data transfer will be
achieved with a pipeline around 32-64. Also, a VCRP is
allocated per count on the pipeline, therefore a large number
for this parameter will translate in higher pool usage while
the test is running.
loopline = integer-value (default is 1)
This is the number of outstanding transmits a LOOP
test can stand while waiting for a respond from the
receiver. By bumping up the loopline more data will be
transmitted but at the risk of data lost in switch (mostly)
and/or in the receiver system. A typical ES45 system with
gigabit NIC and a typical switch will stand a pipeline of
several thousands before losing packets in the switch.
To understand packet loss by the target system/NIC use
a point to point connection.
promiscuous_mode
nopromiscuous_mode (default is no promiscuous)
This parameter is only valid when used with QIO parameter and
for RECEIVE test only. It sets the NIC in promiscuous mode
allowing to receive ALL packets the adapter is able to receive.
pty = pty-value (defaults is 60-05 VMS-DIAG )
This parameter sets the user protocol for the test as
defined by the IEEE ethertype Field Registration Authority.
Values from 60-00 to 60-09 were originally assigned to
Digital Equipment Corporation and are still used by
VSI OpenVMS [60-01,60-02 MOP, 60-03 DECNET-IV, 60-04 LAT,
60-05 VMS-DIAG, 60-07 SCA]
rate = integer-value (default is 0, send as fast as possible)
This parameter sets the maximum number of packets to send
in a single second. It is only valid for TRANSMIT and
LOOP tests.
sap - IEEE 802.E PID value if sending 802, QIO only
size = (size-list)
This a comma separated list of integer-value data sizes to
send. It is only valid for TRANSMIT and LOOP tests.
stop_error
nostop_error - (default is no stopping)
Stop the test if an error is encountered.
stop_lostpacket
nostop_lostpacket - (default is no stopping)
Stop the test if packets get lost.
target_address = (mac-address-list)
This is a list of target MAC address for the LOOP and
TRANSMIT tests. QIO accepts up to 4 targets, while
VCI supports only one.
wait (default)
nowait
Requires waiting for the test to finish before
entering another command. The nowait parameter
allows entering new commands while the test is
running.
fastxmt (default)
nofastxmt
On fastxmt mode and right after the NIC has finished a
request, subsequent LOOP and TRANSMIT request
will be done by calling the transmision routine rather
than forking to it. This runs the risk of CPUSPINWAIT
crashes.
fastrcv (default)
nofastrcv
On fastrcv mode , receive request are processed on-line
and without giving up the CPU. On non fastrcv mode,
request are queued then processed by forking later on.
Fast rcv mode runs the risk of CPUSPINWAIT
crashes.
5.1.3 – Examples
(1) Start a TRANSMIT/VCI test on EWB:
SDA> xx start device ewb/transmit=(vci,target=00-60-CF-21-4A-EA,count=100000,pipe=32)
XX$SDA: Starting test on EWB
XX$SDA: Starting test TRANSMIT on EWB
Alignment 0 Chaining 0 Compare 0
Count 100000 Duration 0 Flow 0
User/PTY 00000560 Pipeline 32 Rate 0
Size 1 33 Size 2 33 Stop on er 0
Stop on lo 0 Wait 0 Fast xmt 0
Fast recei 0 loopline 1 <> 0
Targets 00-60-CF-21-4A-EA 00-00-00-00-00-00 00-00-00-00-00-00 00-00-00-00-00-00
(2) Start a RECEIVE/VCI on EWB returning control to DCL:
SDA> xx start dev ewb/rec=(vci,nowait)
XX$SDA: loaded
XXA0 GENERIC_SCSI UCB: 818F1B40
Device status: 00000010 online
Characteristics: 0C040000 avl,idv,odv
00000000
SUD Status 00000000
Owner UIC [000001,000004] Operation count 0 ORB address 8197CE40
PID 00000000 Error count 0 DDB address 8197CC40
Class/Type C8/05 Reference count 0 DDT address 8124C1A0
Def. buf. size 512 BOFF 00000000 SUD address 8197CD40
DEVDEPEND 00000000 Byte count 00000000 CRB address 8197CCC0
DEVDEPND2 00000000 SVAPTE 00000000 I/O wait queue 818F1BF8
DEVDEPND3 8197C940 DEVSTS 00000000
FLCK index 3A
DLCK address 810C2600
*** I/O request queue is empty ***
XX$SDA: Starting test on EWB
XX$SDA: Starting test RECEIVE. on EWB
Alignment 0 Chaining 0 Compare 0
Count 0 Duration 0 Flow 0
User/PTY 00000560 Pipeline 1 Rate 0
Size 1 33 Size 2 33 Stop on er 0
Stop on lo 0 Wait 0 fast xmt 0
Fast recei 0 loopline 1 <> 0
Targets 00-00-00-00-00-00 00-00-00-00-00-00 00-00-00-00-00-00 00-00-00-00-00-00
SDA> xx show
3.- Starts a LOOP/VCI on EWB returning control to DCL
SDA> xx start dev ewb/loop=(vci,target=00-60-CF-21-4A-EA,count=1000,pipe=64,loopline=600000,nowait)
XX$SDA: Starting test on EWB
XX$SDA: Starting test LOOP. on EWB
Alignment 0 Chaining 0 Compare 0
Count 1000 Duration 0 Flow 0
User/PTY 00000560 Pipeline 64 Rate 0
Size 1 33 Size 2 33 Stop on er 0
Stop on lo 0 Wait 0 fast xmt 0
Fast recei 0 loopline 600000 <> 0
Targets 00-60-CF-21-4A-EA 00-00-00-00-00-00 00-00-00-00-00-00 00-00-00-00-00-00
SDA>
XX$SDA: Device Information XXA0: UCB = 81CB13C0
%SDA-W-NOREAD, unable to access location 00000000.00000000
VCIB address 81CB1640 Test IRP 00000000
VCIB id 00000000 Test VCRP 81CB1700
Port state DISABLED Portlock 81D300C0
Active cpus 00000000 TEST IP STOPPED
fork pending 00000000 Fork Block 81CB1980
rcv fork pending 00000000 RCV Fork block 81CB19B0
<> 00000000 VCRP queue 81CB19F0
free vcrps 00000000 VCRP rcv queue 81CB1A00
buffer offset 0000024E header size 0000000E
xmt outstanding 00000000 xmt rate 000003EE
number of forks 001451CD Physical address Undefined
MIN test size 00000042 Start time 00000000
Failure status 00000000 failure RA 00000000
loop outstanding 00000000 Unavail user buffe 00000000
XX$SDA: Test Command Information:
command address 81CB1520 Test device EWB
Target Address 00-60-CF-21-4A-EA User 00000560
function 00200000 function is LOOP
duration 00000000 count 000003E8
align 00000000 chain 00000000
compare 00000000 flow 00000000
pipeline 00000040 rate 00000000
loopline 000927C0 <> 00000000
size 1 00000021 size 2 00000021
stop on error 00000000 stop on lost 00000000
XX$SDA: Test status Information: decimal
packets sent 1006 packets received 1006
bytes sent 33198 bytes received 46276
errors sent 0 errors received 0
compare-errors 0 errors-lost 0
sequence-errors 0 start time 00A54037.45D273C5
Soft tick 9765 <> 00000000
current-time 00000000.00000000 stop time 00A54037.45D784AF
Kernel ticks 00000000.0000000D spin ticks 00000000.00000000
Idle ticks 00000000.00000037 start rscc 00061EDA.A557F2FE
Stop rscc 00061EDA.A759F1A6 xmt rscc 00000000.16710C15
XX$SDA: Test results Information: CPS = 1000000000
duration 0.03 duration rscc 0.03
Ker/intr/other tim 38.235 % Spin Time 0.000 %
Idle time 161.765 % <>
packets sent/sec 29.86 Kilo packets received/s 29.86 Kilo
bytes sent/sec 962.44 Kilo bytes received/sec 1.34 Mega
time/IO [usec] 33.4843 LAN time/IO [usec] 5.8478
SDA>
3.- Easy unicast loop task list
a.- first login into a node
b.- $ mc lancp show config ! to show a list of NICs
c.- pick an adapter from the list
VLAN26> mc lancp show config
LAN Configuration:
Device Parent Medium/User Version Link Speed Duplex Auto BufSize MAC Address Type Description
------ ------ ----------- ------- ---- ----- ------ ---- ------- ---------------- ------------ -----------
EWB0 Ethernet X-61 Up 1000 Full Yes 1500 00-60-CF-21-4A-EA UTP DEGPA-TA
d.- start up the receiver
SDA> xx start dev ewb/receive=(vci,nowait)
SDA> xx show ! and
search for the address in the line
Physical address 00-60-CF-21-4A-EA
e.- login into another node to initiate the transmitter on a given device
SDA> xx start dev ewc/loop=(vci,target=00-60-CF-21-4A-EA,count=100)
If the receiver does not receive, there is most likely a connectivity issue.
4.- easy unicast with QIO
Follow the same steps as the example above, but for
the receiver enter a multicast address such as AB-00-00-05-00-00
as follows
receiver command:
SDA> xx start dev ewb/rec=(qio,multicast=AB-00-00-05-00-00,echo=header)
Note that if the receiver is receiving before you started a sender
then the multicast address is in use by another application.
sender command
SDA> xx start dev ewc/trans=(qio,target=AB-00-00-05-00-00,count=1,size=100)
or more safely
SDA> xx start dev ewc/trans=(qio,target=AB-00-00-05-00-00,count=0,size=100,rate=2)
6 – STOP
This command sends a STOP signal to XXA0 to stop all tests, which includes stopping
the VCI user associated with any test. It has the same effect as CONTROL-C or CONTROL-Y.
Format:
SDA> xx stop
6.1 – Parameters
None.
6.2 – Qualifiers
None.
7 – Multicast
This is a list of multicast addresses, with the Ethernet protocol type
most commonly associated with them.
FF-FF-FF-FF-FF-FF any This is the broadcast address
AB-00-00-01-00-00 6001 Maintenance Operation Protocol (MOP)
Dump/Load Assistance
AB-00-00-02-00-00 6002 Maintenance Operation Protocol (MOP)
Remote Console
AB-00-00-03-00-00 6003 DECNET Phase IV end node Hello packets
AB-00-00-04-00-00 6003 DECNET Phase IV Router Hello packets
AB-00-00-05-00-00 ???? Reserved to VSI
through
AB-00-03-FF-FF-FF
AB-00-03-00-00-00 6004 Local Area Transport (LAT) - old
AB-00-04-00-xx-xx ???? Reserved for customer private use
AB-00-04-01-xx-yy 6007 Local Area VMSCluster groups
System Communication Architecture (SCA)
8 – Ethertypes
This is a list of ethernet protocol types:
Protocol Type Description
------------- -----------
0000-05DC IEEE802.3 Length Field
08-00 Internet IP (IPv4)
08-06 ARP
60-01 MOP Dump/Load
60-02 MOP Remote Console
60-03 DECNET Phase IV Route
60-04 LAT
60-05 Diagnostic Protocol
60-06 Reserved for customer protocol
60-07 LAVC, SCA
65-58 Trans Ether Bridging
65-59 Raw Frame Relay
80-35 Reverse ARP
80-38 LANBridge
80-3D Ethernet Encryption
80-3F LAN Traffic Monitor
90-00 Loopback
90-01 3Com(Bridge) XNS Sys Mgmt
90-02 3Com(Bridge) TCP-IP Sys
90-03 3Com(Bridge) loop detect