Skip to content

TEST-PTP-CLOCKCONFIG-001: Verify IOCTL_AVB_GET_CLOCK_CONFIG Returns Complete Configuration #324

Description

@zarfld

Requirement

Derived from #149 (REQ-F-PTP-001) acceptance criterion §4:

Get Clock Configuration (IOCTL_AVB_GET_CLOCK_CONFIG):

  • Return clock capabilities (resolution, range, supported features)
  • Return current clock configuration (base frequency, adjustment)

Test Objective

Verify that IOCTL_AVB_GET_CLOCK_CONFIG returns a fully populated AVB_CLOCK_CONFIG
structure with valid, non-zero values for all mandatory fields. This ensures the driver
exposes the PHC capabilities that gPTP stacks need to configure themselves.

Test Cases

TC-CLOCKCFG-001a: All mandatory fields populated

Preconditions: Driver loaded, handle open.

Steps:

  1. Call DeviceIoControl(IOCTL_AVB_GET_CLOCK_CONFIG, ...) into AVB_CLOCK_CONFIG cfg
  2. Assert status == 0 (NDIS_STATUS_SUCCESS)
  3. Assert cfg.systim != 0 (PHC running)
  4. Assert cfg.timinca != 0 (clock increment configured)
  5. Assert cfg.clock_rate_mhz != 0 (base clock rate known)

Acceptance Criterion: All 3 fields non-zero, status == 0


TC-CLOCKCFG-001b: SYSTIM increments between two calls

Steps:

  1. Call GET_CLOCK_CONFIGcfg1
  2. Sleep 10 ms
  3. Call GET_CLOCK_CONFIGcfg2
  4. Assert cfg2.systim > cfg1.systim

Acceptance Criterion: cfg2.systim > cfg1.systim (clock is running)


TC-CLOCKCFG-001c: clock_rate_mhz is a known valid value

The Intel I210/I219/I226 family uses: 125 MHz, 156 MHz, 200 MHz, or 250 MHz.

Steps:

  1. Call GET_CLOCK_CONFIG
  2. Assert clock_rate_mhz ∈ {125, 156, 200, 250}

Acceptance Criterion: clock_rate_mhz is one of the known Intel PHC clock rates

Expected Status: ⚠️ May fail for I219 (clock topology differs) — treat as WARNING if I219 detected.


TC-CLOCKCFG-001d: TIMINCA matches adapter type (sanity check)

Steps:

  1. Read cfg.timinca
  2. If (timinca >> 24) == 2 && (timinca & 0xFFFFFF) > 0 → I219 detected; verify (timinca & 0xFFFFFF) == 16000000 (hardware nominal)
  3. Else → verify (timinca >> 24) ∈ {1..63} (reasonable increment_ns range for I210/I226)

Acceptance Criterion: TIMINCA encodes a recognisable adapter configuration

Acceptance Criteria Summary

  • GET_CLOCK_CONFIG returns status == 0
  • systim non-zero and incrementing between calls
  • timinca non-zero with recognisable encoding
  • clock_rate_mhz non-zero (ideally 125, 156, 200, or 250)

Implementation

  • New test file: tests/integration/ptp/ptp_ioctl_latency_test.c (same binary as TEST-PTP-IOCTL-LAT-001)

Traceability

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions