Skip to content
/ simulnet Public

A net implementation that enables simulations

Notifications You must be signed in to change notification settings

pion/simulnet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Pion simulnet

A net implementation that enables simulations

Pion Sourcegraph Widget Slack Widget
GitHub Workflow Status Go Reference Coverage Status Go Report Card License: MIT


simulnet aims to make testing how your software and hardware perform in adverse network conditions easier. Originally used to test Google Congestion Control, but designed to be generally useful.

For Go users a net implementation is provided. For non-Go users it can be used via TUN/TAP. Your application can listen on the TUN/TAP interface and doesn't need to be modified. simulnet then provides two set of APIs to influence the network.

The first is a imperative API to influence the state of the network allowing you to set things like.

  • Packets Per Second
  • Bytes Per Second
  • Overuse Behavior
  • Packet Loss
  • Delay

The second is a declarative API where you provide a list of rules.

  • Modify Bytes Per Second to be between 800 and 1500 every 30 seconds
  • Set Packet Loss to 5% for 2 seconds every 5 minutes

simulnet will announce when modifications are made to the network. Then you can easily understand what network condition in particular caused your software to fail/have problems.

Using

Contributing

Check out the contributing wiki to join the group of amazing people making this project possible:

License

MIT License - see LICENSE for full text

About

A net implementation that enables simulations

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published