Noise ripped out after the bench verdict (tightly-wrapped unshielded cables move victim SNR only 0.2-0.3 dB, recorded in measurement.md dead ends): noise.go deleted with the noiser, phase clock and panel lane; configureNoise/checkPrivFlag gone so the X710 pair is untouched; console noise column, NOISE links rows and lane colors removed; driverPair rehomed to system.go, carrierUp to phy.go; history anchors to run start (frame-rate sampling and draw-clock roll kept — they fix display latency for every lane); goals/hardware/state/nics docs updated; verified on hardware (20.00G, zero errors, ECD 41m, SNR +7.6)

This commit is contained in:
flamingcow
2026-08-17 21:37:18 -07:00
parent be2bf56fa7
commit 66ff49f9d2
13 changed files with 60 additions and 382 deletions
+7 -33
View File
@@ -69,7 +69,6 @@ var intervalCols = []colSpec{
{group: "NOW", title: "link", width: 7, right: true},
{group: "NOW", title: "internal", width: 8, right: true},
{group: "NOW", title: "corrected", width: 9, right: true},
{group: "NOW", title: "noise", width: 7, right: true},
{group: "OVERALL", title: "elapsed", width: 9, right: true},
{group: "OVERALL", title: "packets", width: 9, right: true},
{group: "OVERALL", title: "bytes", width: 9, right: true},
@@ -82,9 +81,8 @@ var intervalCols = []colSpec{
}
// The same figures the panel draws, in the same order: the last second as
// rates and error flags with the noise cable riding at the end of them, then
// everything since the reset.
func totalRow(elapsed time.Duration, v view, target float64, phy phyDisplay, nv noiseView) []string {
// rates and error flags, then everything since the reset.
func totalRow(elapsed time.Duration, v view, target float64, phy phyDisplay) []string {
return []string{
rateCell(v.rxGbps*1e9, target*1e9),
scaleSI(v.rxPPS),
@@ -94,7 +92,6 @@ func totalRow(elapsed time.Duration, v view, target float64, phy phyDisplay, nv
flagCell(v.window.link),
flagCell(v.window.internal),
correctedFlag(phy.recent),
noiseCell(nv),
scaleTime(elapsed),
scaleCount(v.rxFrames),
scaleCount(v.rxBytes),
@@ -202,14 +199,7 @@ func run(aName, bName string) (err error) {
if err != nil {
return err
}
noise, err := newNoiser()
if err != nil {
return err
}
defer noise.close()
a.tag, b.tag = "TEST A", "TEST B"
noise.eps[0].tag, noise.eps[1].tag = "NOISE A", "NOISE B"
ifnames := []string{a.name, b.name}
ethertypes := make([]uint16, numStreams)
@@ -224,7 +214,6 @@ func run(aName, bName string) (err error) {
checks := configureSystem(ifnames, ethertypes)
checks = append(checks, moduleChecks(modules, [2]string{a.name, b.name})...)
checks = append(checks, configureNoise(noise.names())...)
if err := reportChecks("SETTINGS", checks); err != nil {
return err
}
@@ -261,13 +250,9 @@ func run(aName, bName string) (err error) {
}()
var linkRows [][]string
for i, e := range []endpoint{a, b, noise.eps[0], noise.eps[1]} {
mod := ""
if i < len(moduleIDs) {
mod = moduleIDs[i]
}
for i, e := range []endpoint{a, b} {
linkRows = append(linkRows, []string{
paint(e.tag, cCyan), e.name, e.macString(), fmt.Sprintf("%d", e.mtu), mod,
paint(e.tag, cCyan), e.name, e.macString(), fmt.Sprintf("%d", e.mtu), moduleIDs[i],
})
}
fmt.Println(renderBox("LINKS",
@@ -295,14 +280,6 @@ func run(aName, bName string) (err error) {
defer holdPanic()
samp.run(&done, startTx)
}()
// Not gated on startTx: the cycle and the connected verdict are wanted the
// moment the panel is, and nothing it does touches the measurement.
wg.Add(1)
go func() {
defer wg.Done()
defer holdPanic()
noise.run(&done)
}()
for _, m := range modules {
wg.Add(1)
go func() {
@@ -359,9 +336,7 @@ func run(aName, bName string) (err error) {
}
start := time.Now()
// Anchored to the same clock as the noise cycle, so slot boundaries and
// phase transitions coincide.
hist := newHistory(rateEpochStart)
hist := newHistory(start)
// A reset resets at the press, then re-measures; the measure's failures
// are suppressed at their sources while it runs, so there is nothing to
// hide or revert afterwards.
@@ -405,7 +380,7 @@ func run(aName, bName string) (err error) {
phy, measuring := phyView(diag, modules)
hist.sample(now, v, phy, measuring, target)
if err := disp.render(v, now.Sub(start), phy, measuring,
noise.view(), hist.view(now), target); err != nil {
hist.view(now), target); err != nil {
return err
}
case now := <-tick.C:
@@ -420,8 +395,7 @@ func run(aName, bName string) (err error) {
fmt.Println(stats.rule(n))
}
}
for _, line := range stats.emit(totalRow(elapsed, v, target, phy,
noise.view())) {
for _, line := range stats.emit(totalRow(elapsed, v, target, phy)) {
fmt.Println(line)
}
}