• V1.0.9 03d609cc1f

    etwen released this 2026-08-26 15:35:48 +08:00 | 28 commits to main since this release

    New features

    100G uplink PRBS test

    • New port_prbs_monitor.sh drives a PRBS test on both 100G uplinks: it clears low-power mode, arms the pattern, then polls phy diag <phy> prbs get in the background until stopped. A poll counts as PASS only when the output says PRBS OK!; prbsstat Ber is captured alongside every poll for the record.

    • stop runs prbsstat STOp and prbs clear on each port before rendering the report, so the test does not leave PRBS armed behind it.

    • report gives the tally the bench actually wants:

      PORT           POLLS    PASS     FAIL     RESULT
      Ethernet513    42       42       0        PASS
      Ethernet514    42       40       2        FAIL
      
    • One port at a time is a first-class mode. start a or start b runs a single uplink, which is how you separate a genuine port fault from the DUT not coping with two PRBS streams at once. A port that was not run reports SKIP, not FAIL.

    • Every command and its full output — setup, each poll, teardown — goes to that port's raw log.

    ⚠️ The script ships in this build and can be run by hand, but the calls in Script A, B and C are commented out: PRBS is still under bring-up on this platform.

    USB target detection

    • usb_target.sh reports an inserted USB device's node, mount point or by-id path. It excludes whatever disk backs / and /host — this platform can boot from a USB DOM, which also reports as USB — refuses to guess when several USB disks are present, and when mounting, verifies the result is writable rather than trusting that mount succeeded.
    • Script B builds the USB stress command from the detected node instead of a hard-coded /dev/sda1.

    🐛 Bug fixes

    The job logs were being written to a path nobody collected

    • Stress output, the monitors' logs and the USB archive disagreed about where the job directory lives. Everything now uses /host/hw-eval/jobs/, so what Script B writes is what Script C copies out.

    Script C copied to a USB that was never mounted

    • The archive step assumed /mnt/usb was ready. Script C now finds the device and mounts it first, so a run's logs leave the DUT instead of being written into an empty mount point.

    show interfaces status right after starting PRBS reads as a failure

    • With PRBS armed the link is out of normal operation and reports DOWN. port_prbs_monitor.sh deliberately does not print the port status at start — it appears in the report instead, after prbs clear, labelled as the recovered state.

    📦 Downloads

    File Contents
    Script_ABC_Blanton_V1.0.9.zip The full Tera Term working directory, including Blanton_Script/ to copy onto the DUT

    After copying to the DUT:

    chmod +x ~/Blanton_Script/*.sh      # see below
    grep -rlU $'\r' ~/Blanton_Script    # expect no output
    

    mgmt_ping_monitor.sh and port_prbs_monitor.sh launch their workers through bash, so those two run without the execute bit. bmc_monitor.sh and usb_target.sh still need it, and neither git (mode 100644) nor a Windows/USB copy carries it. Without the chmod, start fails with Permission denied and the later cat finds nothing: the section ends up empty and nothing reports an error.

    ⚠️ Before you run

    • Declare the switch population. SWB_UNIT0 / SWB_UNIT1 in config.ttl say which switch units this DUT has; traffic and the readiness gate both follow them.
    • Set FAN_SPEED. It is applied at the start of every run.
    • Management connectivity is in use, not preserved. Both management NICs are up and pinging — drive the run from the serial console.
    • PRBS is not wired into the macros yet. Run port_prbs_monitor.sh by hand if you want it; uncommenting the calls in A/B/C is not supported in this build.
    • Two settings persist to config_db.json and survive a reboot: LLDP is left disabled and the 100G uplinks are left configured. Restore them before the DUT moves on.

    🔗 Links

    Full changelog: V1.0.8...V1.0.9

    Downloads