mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #4670 from gyuho/tc
pkg/netutil: add linux netem functions
This commit is contained in:
commit
adbc53e3f7
@ -40,3 +40,27 @@ func RecoverPort(port int) error {
|
|||||||
_, err := exec.Command("/bin/sh", "-c", cmdStr).Output()
|
_, err := exec.Command("/bin/sh", "-c", cmdStr).Output()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetLatency adds latency in millisecond scale with random variations.
|
||||||
|
func SetLatency(ms, rv int) error {
|
||||||
|
if rv > ms {
|
||||||
|
rv = 1
|
||||||
|
}
|
||||||
|
cmdStr := fmt.Sprintf("sudo tc qdisc add dev eth0 root netem delay %dms %dms distribution normal", ms, rv)
|
||||||
|
_, err := exec.Command("/bin/sh", "-c", cmdStr).Output()
|
||||||
|
if err != nil {
|
||||||
|
// the rule has already been added. Overwrite it.
|
||||||
|
cmdStr = fmt.Sprintf("sudo tc qdisc change dev eth0 root netem delay %dms %dms distribution normal", ms, rv)
|
||||||
|
_, err = exec.Command("/bin/sh", "-c", cmdStr).Output()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// RemoveLatency resets latency configurations.
|
||||||
|
func RemoveLatency() error {
|
||||||
|
_, err := exec.Command("/bin/sh", "-c", "sudo tc qdisc del dev eth0 root netem").Output()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
@ -19,3 +19,7 @@ package netutil
|
|||||||
func DropPort(port int) error { return nil }
|
func DropPort(port int) error { return nil }
|
||||||
|
|
||||||
func RecoverPort(port int) error { return nil }
|
func RecoverPort(port int) error { return nil }
|
||||||
|
|
||||||
|
func SetLatency(ms, rv int) error { return nil }
|
||||||
|
|
||||||
|
func RemoveLatency() error { return nil }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user