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_configpolynomial: 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_configpolynomial: 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.pyLinux/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