iler_ml@fastmail.fm
2006-Feb-07 09:52 UTC
deleting 1 filter deletes all (under same class)
I am creating three u32 filters with different dst addresses. When I delete one of those filters, all three are deleted. Why all 3 filters are deleted even though in ''tc filter del'' command I give exactly all parameters of filters creation. Is this expected behaviour, that all other filters are deleted also ? Thanks Yakov Lerner Here is sample script that reproduces how single ''tc filter del'' command deletes 3 filters: ------------------------------------------------------------- # create qdisc and classes tc qdisc del dev eth0 root handle 1:0 htb tc qdisc add dev eth0 root handle 1:0 htb tc class add dev eth0 parent 1:0 classid 1:1 htb rate 2048kbit tc class add dev eth0 parent 1:0 classid 1:21 htb rate 512kbit tc class add dev eth0 parent 1:0 classid 1:22 htb rate 512kbit tc class add dev eth0 parent 1:0 classid 1:23 htb rate 512kbit # create 3 filters tc filter add dev eth0 parent 1:1 protocol ip prio 1 u32 match ip dst 1.1.1.1/32 flowid 1:21 tc filter add dev eth0 parent 1:1 protocol ip prio 1 u32 match ip dst 2.2.2.2/32 flowid 1:22 tc filter add dev eth0 parent 1:1 protocol ip prio 1 u32 match ip dst 3.3.3.3/32 flowid 1:23 tc filter show dev eth0 parent 1:1 # here, we see 3 filters that we created # del 1 filter tc filter del dev eth0 parent 1:1 protocol ip prio 1 u32 match ip dst 1.1.1.1/32 flowid 1:21 tc filter show dev eth0 parent 1:1 # here, we see all 3 filters deleted ------------------------------------------ -- iler_ml@fastmail.fm -- http://www.fastmail.fm - Email service worth paying for. Try it for free
iler_ml@fastmail.fm said:> I am creating three u32 filters with different dst addresses. > When I delete one of those filters, all three are deleted. Why all 3 > filters are deleted even though in ''tc filter del'' command I give > exactly all parameters of filters creation. Is this expected > behaviour, that all other filters are deleted also ?It took some doing, but I researched a way of handling that. $TC filter add dev $INTIF protocol ip prio 1 parent 1: \ handle 0x$hid u32 match ip dst $ip classid 1:$hid $TC filter del dev $INTIF parent 1: \ protocol ip prio 1 handle 800::$hid u32 I forget _why_ it works that way, but it does. $hid is actually hexadecimal, though for a few systems it''s usually used as if it was an integer. I had been meaning to post the script. Maybe this week...