How does Intel PROSet attempt to calculate the length of a cable, and why does it work on some adaptors and not others? [duplicate]

Device Manager (Network adapters / Intel(R) Ethernet Connection I219-V / Properties / Link speed / Diagnostics) estimates the length of ethernet cable between my PC and the router as 31 meters. How does it calculate this?

Cable Length: Displays the approximate length of the cable between the adapter and its link partner. If the reported cable length is different from the actual cable length, this could indicate a break in the cable. Accuracy can vary by up to 9 meters. The cable length will only be displayed when the adapter is connected to a network operating at 1000 Mbps.

enter image description here

enter image description here


Solution 1:

I have found some clues in the manual AN-1508 DP83849 Cable Diagnostics (Rev. A) - Texas Instruments. The device itself probably is not relevant to your setup, but the information in the documents seems useful.

The DP83849 provides a method of computing cable length based on electrical characteristics of the 100Mb Link. This essentially provides an equivalent cable length rather than a measurement of the physical cable length.

100MB cable length is a linear function of the Analog (AEQ) and Digital (DEQ) equalization coefficient values in the linked state.

if (AEQ == 0) Length = (A1 × DEQ) + B1
if (AEQ == 1) Length = (A2 × DEQ) + B2
and so on ...

The algorithm for computing the electrical cable length is depicted above. The constants {A1, A2, ... } & {B1, B2, ... } are determined by statistical study of various typical case cables. The computation is completely handled in hardware.

Another section of the manual throws more light on the measurement method:

TDR Cable Diagnostics

The PHYTER Dual implements a Time Domain Reflectometry (TDR) method of cable length measurement and evaluation which can be used to evaluate a connected twisted pair cable. The TDR implementation involves sending a pulse out on either the Transmit or Receive conductor pair and observing the results on either pair.

The TDR cable diagnostics works best in certain conditions. For example, an unterminated or open cable provides a good reflection for measuring cable length, while a cable with an ideal termination at an unpowered partner may provide no reflection at all. The TDR cable diagnostics only works for twisted pair (copper) connections and is not supported over Fiber connections.

The final conclusion is that a pulse is sent on the Transmit or Receive conductor pair and the results are observed. They are then searched in a table derived using empirical tests and further improved by the firmware. The result is not physically accurate, being only a statistical derivation.