Step-by-Step
Prerequisite
Python: >= 3.11.
Download prooject: Get`latest release <https://github.com/xenanetworks/cable-perf-test-suite/releases>`_.
Install dependencies using pip:
pip install -r requirements.txt # For Windows
pip3 install -r requirements.txt # For Linux/macOS
The required packages are listed in the requirements.txt
file.
Note
tdl-xoa-driver
is developed by Teledyne LeCroy Xena. You can read more about this package in XOA Driver Documentation.
Change Test Configuration
Go to test/
directory, change the test_config.yml
to meet your test setup and requirements.
test_config:
chassis_ip: "10.165.136.60"
username: "CPOM"
password: "xena"
tcp_port: 22606
log_filename: "xena_cpom.log"
csv_report_filename: "xena_cpom_report.csv
rx_output_eq_test_config:
module_list:
- 3
- 6
port_pair_list:
- tx: "3/0"
rx: "6/0"
module_media: "QSFPDD800"
port_speed: "1x800G"
lane: 1
delay_after_reset: 2
prbs_config:
polynomial: "PRBS31"
duration: 2
rx_output_eq_range:
amp_min: 0
amp_max: 3
pre_min: 0
pre_max: 7
post_min: 0
post_max: 7
delay_after_eq_write: 2
tx_input_eq_test_config:
module_list:
- 3
- 6
port_pair_list:
- tx: "3/0"
rx: "6/0"
module_media: "QSFPDD800"
port_speed: "1x800G"
lane: 1
delay_after_reset: 2
prbs_config:
polynomial: "PRBS31"
duration: 2
tx_input_eq_range:
min: 0
max: 12
delay_after_eq_write: 2
chassis_ip
: the IP address of the chassisusername
: the name used to connect to the chassis and reserve portspassword
: the password used to connect to the chassistcp_port
: the port number used to connect to the chassislog_filename
: the log filenamecsv_report_filename
: the CSV report filenamerx_output_eq_test_config
: the test configuration of RX output equalization optimizationmodule_list
: a list of module IDs to testport_pair_list
: a list of port pairstx
: the ID (module/port) of the port that transmits PRBSrx
: the ID (module/port) of the port that measures PRBS BER
module_media
: the module media mode to applyport_speed
: the port speed mode in the format of <port count>x<port speed>lane
: the lane index you want to test, from 1 to 8.delay_after_reset
: waiting time in seconds after port resetprbs_config
polynomial
: the PRBS polynomial to useduration
: PRBS BER measurement duration in seconds
rx_output_eq_range
:amp_min
: the minimum amplitude cursor code valueamp_max
: the maximum amplitude cursor code valuepre_min
: the minimum pre-cursor code valuepre_max
: the maximum pre-cursor code valuepost_min
: the minimum post-cursor code valuepost_max
: the maximum post-cursor code value
delay_after_eq_write
: waiting time in seconds after writing the cursor values
tx_input_eq_test_config
: the test configuration of TX input equalization optimizationmodule_list
: a list of module IDs to testport_pair_list
: a list of port pairstx
: the ID (module/port) of the port that transmits PRBSrx
: the ID (module/port) of the port that measures PRBS BER
module_media
: the module media mode to applyport_speed
: the port speed mode in the format of <port count>x<port speed>lane
: the lane index you want to test, from 1 to 8.delay_after_reset
: waiting time in seconds after port resetprbs_config
polynomial
: the PRBS polynomial to useduration
: PRBS BER measurement duration in seconds
tx_input_eq_range
:min
: the minimum code valuemax
: the maximum code value
delay_after_eq_write
: waiting time in seconds after writing the cursor values
Run the Test
To start the test, run:
Windows:
python test.py
Linux/macOS:
python3 test.py
The test log and results will be saved in a different folder each time you run the test, and will also be printed on the console.

Fig. 1 Test in process

Fig. 2 Test results