mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-30 20:43:02 +02:00
=== Interface Speed Duplex (Copper)
ifdef::topdoc[:imagesdir: {topdoc}../../test/case/interfaces/speed_duplex_copper]
==== Description
Verify that the interface operates at the expected speed/duplex by
restricting the set of PMD types auto-negotiation may advertise:
1. Single-mode advertise — host and target both advertise exactly
one PMD/duplex combination; the link comes up at that mode.
2. Multi-mode advertise — host advertises a set, target advertises
another set; the link comes up at the highest common.
3. Auto-negotiation off — both peers forced to a fixed speed/duplex,
the escape hatch for link partners that don't speak auto-negotiation.
Disabling autoneg also disables Auto-MDIX, so the ends use opposite
MDI/MDI-X pinouts (host mdix on, DUT mdi). The link bounces and can
take a few seconds to settle, so the forced steps poll for it.
The legacy "auto-negotiation: off + fixed speed + fixed duplex"
configuration was retired together with the obsoletion of eth:speed
in IEEE Std 802.3.2-2025; the standards-correct way to pin a link to
a specific mode is to advertise only that mode. See the augment in
infix-ethernet-interface.yang.
==== Topology
image::topology.svg[Interface Speed Duplex (Copper) topology, align=center, scaledwidth=75%]
==== Sequence
. Set up topology and attach to target DUT
. Enable target interface
. Advertise 10/full only on both peers
. Advertise 10/half only on both peers
. Advertise 100/full only on both peers
. Advertise 100/half only on both peers
. Switch target back to advertising all supported modes
. Host advertises 10/full only
. Host advertises 10/half only
. Host advertises 100/full only
. Host advertises 100/half only
. Host advertises 10/half + 10/full + 100/half
. Host advertises every mode up to 1G
. Both sides forced to 100/full, autoneg off
. Both sides forced to 10/full, autoneg off