ackhandler: detect ECN mangling (#4080)

* ackhandler: detect ECN mangling

Mangling means that a path is re-marking all ECN-marked packets as CE.

* ackhandler: only detect ECN mangling once all testing packets were sent
This commit is contained in:
Marten Seemann
2023-09-12 13:18:33 +07:00
committed by GitHub
parent 2a8dc12a53
commit d52e9f35bc
5 changed files with 53 additions and 7 deletions

View File

@@ -364,6 +364,8 @@ func (e ecnStateTrigger) String() string {
return "ACK contains more ECN counts than ECN-marked packets sent"
case logging.ECNFailedTooFewECNCounts:
return "ACK contains fewer new ECN counts than acknowledged ECN-marked packets"
case logging.ECNFailedManglingDetected:
return "ECN mangling detected"
default:
return "unknown ECN state trigger"
}

View File

@@ -151,6 +151,7 @@ var _ = Describe("Types", func() {
Expect(ecnStateTrigger(logging.ECNFailedLostAllTestingPackets).String()).To(Equal("all ECN testing packets declared lost"))
Expect(ecnStateTrigger(logging.ECNFailedMoreECNCountsThanSent).String()).To(Equal("ACK contains more ECN counts than ECN-marked packets sent"))
Expect(ecnStateTrigger(logging.ECNFailedTooFewECNCounts).String()).To(Equal("ACK contains fewer new ECN counts than acknowledged ECN-marked packets"))
Expect(ecnStateTrigger(logging.ECNFailedManglingDetected).String()).To(Equal("ECN mangling detected"))
Expect(ecnStateTrigger(42).String()).To(Equal("unknown ECN state trigger"))
})
})