Skip to content

Support Gilbert-Elliott packet-loss model#1550

Merged
cBournhonesque merged 1 commit into
cBournhonesque:mainfrom
nick-e:gilbert-elliott-model
Jul 8, 2026
Merged

Support Gilbert-Elliott packet-loss model#1550
cBournhonesque merged 1 commit into
cBournhonesque:mainfrom
nick-e:gilbert-elliott-model

Conversation

@nick-e

@nick-e nick-e commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Closes #1546.

Replace LinkConditioner's per-packet drop rate with a two-state Gilbert-Elliott Markov model so simulated packet loss occurs in correlated bursts, matching real packet-loss behavior.

Give LinkConditioner a good/bad state. A good state denotes the link is healthy and not dropping packets. A bad state denotes the link is dropping a lot of packets. It also opens up the possibility of adding an extra latency to packets during a bad state.

Add builder methods to LinkConditionerConfig to configure the packet loss model.

@nick-e

nick-e commented Jul 2, 2026

Copy link
Copy Markdown
Contributor Author

To address the convo in the previous PR:

I didn't change the values for good_condition(), average_condition(), and poor_condition() because I don't know what settings to pick yet. I'm working on capturing real network traffic of connections within a city and across USA's coasts in order to create realistic configs. I need #1549 for that.

@nick-e nick-e marked this pull request as draft July 3, 2026 15:31
@nick-e nick-e force-pushed the gilbert-elliott-model branch 4 times, most recently from b821422 to af1ecdb Compare July 5, 2026 22:26
@nick-e

nick-e commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

To address the convo in the previous PR:

I didn't change the values for good_condition(), average_condition(), and poor_condition() because I don't know what settings to pick yet. I'm working on capturing real network traffic of connections within a city and across USA's coasts in order to create realistic configs. I need #1549 for that.

I've added some LinkConditionerConfig presets in #1562 (that PR contains the fit() function used to create the presets).

@nick-e nick-e marked this pull request as ready for review July 6, 2026 00:39
@nick-e nick-e marked this pull request as draft July 6, 2026 00:39
@nick-e nick-e force-pushed the gilbert-elliott-model branch 5 times, most recently from e85e083 to ca534eb Compare July 6, 2026 01:03
Closes cBournhonesque#1546.

Replace LinkConditioner's per-packet drop rate with a two-state
Gilbert-Elliott Markov model so simulated packet loss occurs in
correlated bursts, matching real packet-loss behavior.

Give `LinkConditioner` a good/bad state. A good state denotes the link
is healthy and not dropping packets. A bad state denotes the link is
dropping a lot of packets. It also opens up the possibility of adding an
extra latency to packets during a bad state.

Add builder methods to `LinkConditionerConfig` to configure the packet
loss model.
@nick-e nick-e force-pushed the gilbert-elliott-model branch from ca534eb to 3499bd7 Compare July 7, 2026 22:53
@nick-e nick-e marked this pull request as ready for review July 8, 2026 02:47
@cBournhonesque

Copy link
Copy Markdown
Owner

Thanks, looks great

@cBournhonesque cBournhonesque merged commit 0f1838a into cBournhonesque:main Jul 8, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support Gilbert-Elliot model for packet loss simulation

2 participants