{"id":17195950,"url":"https://github.com/jchavanton/disruptor","last_synced_at":"2025-04-13T20:41:15.371Z","repository":{"id":24629550,"uuid":"28038676","full_name":"jchavanton/disruptor","owner":"jchavanton","description":" generating problems on RTP streams : latency, delay, jitter","archived":false,"fork":false,"pushed_at":"2023-05-19T21:38:09.000Z","size":129,"stargazers_count":16,"open_issues_count":0,"forks_count":3,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-02-06T00:43:18.624Z","etag":null,"topics":["c","disruptor","jitter","latency","loss","netfilter","networking","packet","simulator"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jchavanton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-12-15T13:49:46.000Z","updated_at":"2024-11-13T01:09:21.000Z","dependencies_parsed_at":"2024-10-15T01:52:01.274Z","dependency_job_id":"635489ee-49e8-408f-9ef4-67730b1acc15","html_url":"https://github.com/jchavanton/disruptor","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jchavanton%2Fdisruptor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jchavanton%2Fdisruptor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jchavanton%2Fdisruptor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jchavanton%2Fdisruptor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jchavanton","download_url":"https://codeload.github.com/jchavanton/disruptor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240118332,"owners_count":19750470,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","disruptor","jitter","latency","loss","netfilter","networking","packet","simulator"],"created_at":"2024-10-15T01:51:57.097Z","updated_at":"2025-02-24T02:30:58.868Z","avatar_url":"https://github.com/jchavanton.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Disruptor\n Network impairment server (generating problems on RTP streams : latency, delay, jitter)\n \n This tool can be used anywhere with netfilter and iptables.\n This is can be very handy when you need to test how an RTP application behaves when facing problems, using scenarios the same problems can be reproduced many times.\n \n### install\n```\napt-get update\napt-get install build-essential libnetfilter-queue-dev\n./configure\nmake\n```\n\n### configure firewall\nThis script will ouput examples of iptables command to pass traffic to the disruptor using netfilter queues\n```\n./prepare_firewall.sh server.domain.com\n```\nYou may have to edit the script if your interfaces names are not `wlan0` and/or `eth0`\n\n### start the disruptor\n```\n./disruptor -h\n-d daemonize\n-q nfq queue id\n-f scenario file name\n-l log level: 0=error, 1=info, 2=notice, 3=debug\n```\n\n### Examples\n```\n./prepare_firewall.sh webrtc.server.com 10.0.0.243\n# execute the returned iptable commands\nsudo OUTPUT -d 54.13.17.12 -p all -j NFQUEUE --queue-num 10\n# run the disruptor\nsudo ./disruptor -f scenario.xml -l 3\n```\n\n### XML scenario files example ###\n```\n\u003c?xml version=\"1.0\"?\u003e\n\u003cscenario\u003e\n       \u003cperiod duration=\"5\"\u003e\u003caction name=\"loss\" rand=\"10\"/\u003e\u003c/period\u003e\n       \u003cperiod duration=\"5\"\u003e\u003caction name=\"loss\" rand=\"10\"/\u003e\u003c/period\u003e\n\u003c/scenario\u003e\n```\n\n####  action: jitter ####\n```\nburst_max : maximum random size of delayed burst in packets\ninterval_max : maximum random  interval between burst in packets\nburst_size : size of delayed burst in packets\ninterval_size : interval between burst in packets\noutoforder : burst out of order\n```\n\n#### action: loss ####\n```\nrand : percentage of losses to apply on the stream\n```\n\n#### action: burst_loss ####\n```\nrand : random interval in packets between occurrences\nmax : random size of the burst (consecutive packets) loss\n```\n\n#### action: loss_rtcp ####\n```\nrand : percentage loss of RTCP packets\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjchavanton%2Fdisruptor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjchavanton%2Fdisruptor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjchavanton%2Fdisruptor/lists"}