mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-10-12 21:45:41 +03:00
docs(spec): define the gemodel acceptance target
The F section asked for "gemodel loss within +/-5% of target" without saying what the target is, and the A.1 table gave ranges only. Spell out the semantics the kernel implements (and that the veth calibration confirmed): p is the good-to-bad transition, r the bad-to-good transition, 1-h the loss chance inside the bad state (the good state loses nothing), mean loss p/(p+r)*(1-h) per direction. The functional bullet now names that target and how to measure it (per-direction counters, round-trip reads 1-(1-L)^2, pre-warm ARP when 1-h=100). No wire-format or grammar change.
This commit is contained in:
parent
1db9f171ca
commit
c1d0e6ee21
@ -115,6 +115,14 @@ tc netem set <if>
|
||||
|
||||
Max token count for the command table rises accordingly (recommend 32).
|
||||
|
||||
`loss gemodel` semantics (mirrors the kernel, verified against a veth link
|
||||
with per-direction qdisc counters): `p` is the good→bad state transition
|
||||
probability (PGAP), `r` the bad→good transition (PGBP), and `1-h` the loss
|
||||
probability **inside the bad state** (the good state loses nothing). The
|
||||
steady-state mean loss is `p/(p+r) * (1-h)` per direction — e.g.
|
||||
`loss gemodel 10 30 100` drops 25 % of the offered packets in each
|
||||
direction, `loss gemodel 5 45 100` drops 10 %.
|
||||
|
||||
### A.2 Netlink encoding notes
|
||||
|
||||
* Correlation: loss/dup/reorder use their existing nested structs with the
|
||||
@ -317,7 +325,11 @@ treatment; an incompatible mode revision renames its token
|
||||
* **Unit**: per keyword → expected netlink attrs (assert message bytes);
|
||||
every 204 table row; `bpf_drop` compile-fail path; capabilities string.
|
||||
* **Functional** (root, veth pair + netns + nsenter ping):
|
||||
delay+reorder observable (mdev), gemodel loss within ±5% of target,
|
||||
delay+reorder observable (mdev), gemodel loss within ±5% of
|
||||
`p/(p+r) * (1-h)` measured **per direction** — a round-trip ping figure
|
||||
reads `1-(1-L)²` instead, and with `1-h=100` the ARP cache must be
|
||||
pre-warmed or the neighbour-resolution blackhole during a long burst
|
||||
inflates the observed loss,
|
||||
rate within ±10% (measured byte throughput), nth_drop **exact** pattern
|
||||
(ICMP seq survives 1,2,…,N-1, Nth dropped), quota/window/flow with
|
||||
crafted senders, `tc reset` idempotent on a clean interface, P5 surface
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user