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