_,err:=cmdExec("tc qdisc replace dev eth0 root handle 1: netem")
iferr!=nil{
log.Info("Error: ",err)
returnerr
}
_,err=cmdExec("tc qdisc replace dev eth0 handle ffff: ingress")
iferr!=nil{
log.Info("Error: ",err)
returnerr
}
firstTimePass=false
}
returnnil
}
funccmdCreateFilter(ifbNumberstring,ipSrcstring){
//"tc filter add dev eth0 parent ffff: protocol ip prio $ifbNumber u32 match ip src $ipsrc match u32 0 0 action mirred egress redirect dev $ifb$ifbnumber"
str:="tc filter add dev eth0 parent ffff: protocol ip prio "+ifbNumber+" u32 match ip src "+ipSrc+" match u32 0 0 action mirred egress redirect dev ifb"+ifbNumber
//fonction must be a replace... a replace Adds if not there or replace if existing
//"tc filter replace dev eth0 parent ffff: protocol ip prio $ifbNumber u32 match ip src $ipsrc match u32 0 0 action mirred egress redirect dev $ifb$ifbnumber"
//str := "tc filter replace dev eth0 parent ffff: protocol ip prio " + ifbNumber + " handle 800::800 u32 match u32 0 0 action mirred egress redirect dev ifb" + ifbNumber