-
-
Save digilist/d4b8ecd92b9af7aa0492 to your computer and use it in GitHub Desktop.
#!/bin/bash | |
interface=lo | |
ip=10.0.0.1 | |
delay=100ms | |
tc qdisc add dev $interface root handle 1: prio | |
tc filter add dev $interface parent 1:0 protocol ip prio 1 u32 match ip dst $ip flowid 2:1 | |
tc qdisc add dev $interface parent 1:1 handle 2: netem delay $delay |
thanks @deepanshu-yadav I'll go through the Python file. A quick qstn, do I need to change parentid/flow id? I see following error
Error: Exclusivity flag on, cannot modify.
when I tried following code
delay.sh
tc qdisc add dev $interface root handle 1: prio
tc filter add dev $interface parent 1:0 protocol ip prio 1 u32 match ip dst $ip1 flowid 2:1
tc qdisc add dev $interface parent 1:1 handle 2: netem delay $delay1
tc filter add dev $interface parent 1:0 protocol ip prio 1 u32 match ip dst $ip2 flowid 2:1
tc qdisc add dev $interface parent 1:1 handle 2: netem delay $delay2
You need to divide your traffic into three parts packets for ip1 , packets for ip2 and packets for ip2.
This is possible please go through all the links I have given in the code (start).
There is a lot to learn and your problem is not a simple copy paste from stack overflow .
It seems all solutions are qdisc-prio-based, but qdisc-prio has a limit of 16 priorities, so one can't use it for 17 or more routes
This will somehow affects my SSH connect to the remote server where those command runs while successfully delaying certain IP flow. Don't know how to fix it. TAT
I made a python wrapper for this https://github.com/fledge-iot/fledge/blob/3a92d1786fc58dec499f335b79106840d0c7c8bb/tests/system/python/packages/network_impairment.py#L110
call it two times giving suitable IPs for each of the servers. Hope that helps