Raritan PX2/PX3 JSON-RPC API: pdu-json-rpc-api/idl/testrpc.idl Source File

Raritan PX2/PX3 JSON-RPC API

testrpc.idl
1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /*
3 * Copyright 2012 Raritan Inc. All rights reserved.
4 */
5
6 /**
7 * system test interfaces
8 *
9 */
10
11 module test {
12
13 /**
14 * Convenience structure to return test or operation results.
15 * - There is a result code
16 * Typically 0 means OK
17 * 1 means Test Error
18 * 2 means Invalid Parameter
19 * However indivdual test may redefine or extend this definition
20 * - There is a descriptive error string,
21 * which is empty in case test went OK
22 *
23 * This structure is not neccessarily used for all operations
24 * but only for those where it comes in handy
25 */
26 structure Result {
27 int code; ///< Result code
28 string errtext; ///< Descriptive error string
29 };
30
31 /**
32 * Interface to enter and exit special test modes.
33 * Some of the port tests require the unit to be set in
34 * dedicated test modes because special equipment is plugged into the
35 * ports which would confuse ordinary services observing those ports.
36 */
37 interface Control {
38
39 /**
40 * returns actual state of test mode
41 */
42 boolean isTestMode();
43
44 /**
45 * sets the unit in test mode which pulls away services
46 * dealing with feature ports, aux ports, 1wire ports
47 */
48 void setTestMode(in boolean isTestModeOn);
49
50 };
51
52
53 /**
54 * Test routines for full RS232 Serial Interface
55 */
56 interface RS232Serial {
57
58 /**
59 * returns list of valid device files for the test
60 */
61 vector<string> getDeviceFiles();
62
63 /**
64 * loop test with adapter 1
65 * DTR->DSR, RTS->CTS
66 */
67 Result testLoop1(in string devfile);
68
69 /**
70 * loop test with adapter 2
71 * DTR->DCD, RTS->RI
72 */
73 Result testLoop2(in string devfile);
74
75 };
76
77
78 /**
79 * test routines for Raritan Feature Serial interface
80 * (RS232 with some control lines and switched power)
81 * Require TestMode to be ON.
82 */
83 interface FeatSerial {
84
85 constant int OK = 0; ///< No error
86 constant int ERR_NO_TEST_MODE = 1; ///< Not in test mode
87 constant int ERR_INVAL_PORT_NUM = 2; ///< Invalid port number
88 constant int ERR_TEST_FAILED = 3; ///< Test failed
89
90 /**
91 * returns number of ports
92 *
93 * @return 0 if OK
94 * @return 1 if not in test mode
95 */
96 int getNumberOfPorts(out int numPorts);
97
98 /**
99 * Switches Power supplied to the port
100 * Observable with special test adapter
101 * Power->LED
102 *
103 * @return OK if OK
104 * @return ERR_NO_TEST_MODE if not in test mode
105 * @return ERR_INVAL_PORT_NUM if invalid port number
106 */
107 int setPower(in int portNum, in boolean hasPower);
108
109 /**
110 * Performs a loop test with special test adapter
111 * TX->RX
112 *
113 * @return OK if OK
114 * @return ERR_NO_TEST_MODE if not in test mode
115 * @return ERR_INVAL_PORT_NUM if invalid port number
116 * @return ERR_TEST_FAILED if test failed, errstr may be set
117 */
118 int testLoopTxRx(in int portNum, out string errstr);
119
120 /**
121 * Performs a loop test with special test adapter
122 * DTR->DCD
123 *
124 * @return OK if OK
125 * @return ERR_NO_TEST_MODE if not in test mode
126 * @return ERR_INVAL_PORT_NUM if invalid port number
127 * @return ERR_TEST_FAILED if test failed, errstr may be set
128 */
129 int testLoopDtrDcd(in int portNum, out string errstr);
130
131 };
132
133
134 /**
135 * test routines for Raritan Aux Serial interface
136 * (RS485 on pins 3 and 6 of RJ45)
137 * Require TestMode to be ON.
138 */
139 interface AuxSerial {
140
141 constant int OK = 0; ///< No error
142 constant int ERR_NO_TEST_MODE = 1; ///< Not in test mode
143 constant int ERR_INVAL_PORT_NUM = 2; ///< Invalid port number
144 constant int ERR_TEST_FAILED = 3; ///< Test failed
145
146 /**
147 * returns number of ports
148 *
149 * @return 0 if OK
150 * @return 1 if not in test mode
151 */
152 int getNumberOfPorts(out int numPorts);
153
154 /**
155 * Performs a loop test with special test adapter
156 *
157 * @return OK if OK
158 * @return ERR_NO_TEST_MODE if not in test mode
159 * @return ERR_INVAL_PORT_NUM if invalid port number
160 * @return ERR_TEST_FAILED if test failed, errstr may be set
161 */
162 int testLoop(in int portNum, out string errstr);
163 };
164
165
166 /**
167 * test routines for RJ45 Ethernet port
168 * This is low level interface using ethtool
169 * that does not persist any of the settings made
170 * (TODO: this interface may be combined with a 'decent'
171 * network interface. Currently the network interface is
172 * dedicated to special use cases)
173 */
174 interface Ethernet {
175
176 /**
177 * returns a a list of valid network interface devices
178 */
179 vector<string> getDevices();
180
181 /** Ethernet Speed */
182 enumeration Speed {
183 SPD_10, ///< 10 Mbit/s
184 SPD_100, ///< 100 Mbit/s
185 SPD_1000 ///< 1 Gbit/s
186 };
187
188 /** Ethernet Duplex Mode */
189 enumeration Duplex {
190 DPX_HALF, ///< Half Duplex
191 DPX_FULL ///< Full Duplex
192 };
193
194 /**
195 * transiently sets the interface to the desired parameters
196 * @return 0 if OK
197 * @return 1 if invalid param
198 * @return 2 if system error executing operation
199 */
200 int setParameters(in string device, in Speed speed, in Duplex duplex,
201 in boolean isAutoNeg);
202
203 };
204
205 }
test::Result::errtext
string errtext
Descriptive error string.
Definition: testrpc.idl:28
test::Ethernet::Duplex
Duplex
Ethernet Duplex Mode.
Definition: testrpc.idl:189
test::Control
Interface to enter and exit special test modes.
Definition: testrpc.idl:37
test
Test Interfaces.
Definition: TestDisplay.idl:12
test::AuxSerial
test routines for Raritan Aux Serial interface (RS485 on pins 3 and 6 of RJ45) Require TestMode to be...
Definition: testrpc.idl:139
test::Ethernet::DPX_HALF
Half Duplex.
Definition: testrpc.idl:190
test::Ethernet::SPD_10
10 Mbit/s
Definition: testrpc.idl:183
test::Ethernet
test routines for RJ45 Ethernet port This is low level interface using ethtool that does not persist ...
Definition: testrpc.idl:174
test::Result
Convenience structure to return test or operation results.
Definition: testrpc.idl:26
test::FeatSerial
test routines for Raritan Feature Serial interface (RS232 with some control lines and switched power)...
Definition: testrpc.idl:83
test::Result::code
int code
Result code.
Definition: testrpc.idl:27
test::Ethernet::SPD_100
100 Mbit/s
Definition: testrpc.idl:184
test::Ethernet::Speed
Speed
Ethernet Speed.
Definition: testrpc.idl:182
test::RS232Serial
Test routines for full RS232 Serial Interface.
Definition: testrpc.idl:56