
http://lartc.org/howto/lartc.adv-filter.hashing.html
我有一个简单的问题 – 每次我想修改哈希表中的东西(比如将IP分配给不同的flowID),我需要删除整个过滤器表并再次按过滤器添加它. (我实际上不是手工完成,我有一个很好的程序,它为我做…但仍然…)有一个问题 – 我有这样的方式分配大约10k过滤器并删除和重新填充整个filtertable可以变得非常冗长,这对于流量整形来说并不是很好.我的程序可以轻松地设法只删除需要删除的规则(从而将整个问题减少到几个命令和毫秒),但我根本不知道只删除一个哈希规则的命令.
我的过滤器显示:
filter parent 1: protocol ip pref 1 u32 filter parent 1: protocol ip pref 1 u32 fh 2: ht divisor 256 filter parent 1: protocol ip pref 1 u32 fh 2:a:800 order 2048 key ht 2 bkt a flowID 1:101 match 0a0a0a0a/ffffffff at 16filter parent 1: protocol ip pref 1 u32 fh 2:c:800 order 2048 key ht 2 bkt c flowID 1:102 match 0a0a0a0c/ffffffff at 16filter parent 1: protocol ip pref 1 u32 fh 800: ht divisor 1 filter parent 1: protocol ip pref 1 u32 fh 800::800 order 2048 key ht 800 bkt 0 link 2: match 00000000/00000000 at 16 hash mask 000000ff at 16
希望:’tc filter del …’命令只删除一个特定的过滤器(例如0a0a0a0a IP匹配(IP地址10.10.10.10)).删除一些小的子组也会很好 – 例如我仍然可以很快地重建一个桶(bkt a).
我的尝试:我尝试使用prio对所有过滤器进行编号,但没有任何帮助 – 它们只是在下面创建了一些不可用(但可删除)的东西,但是被删除之后仍然存在被删除的过滤器.
有任何想法吗?
编辑 – 我正在添加一个简化的tl; dr描述问题:
>我在一些interfce上创建了哈希过滤器,就像在这个http://lartc.org/howto/lartc.adv-filter.hashing.html中一样
>我想找到一个从表中删除一条规则(例如1.2.1.123)的命令,其余部分保持不变并正常工作.
添加过滤器:
tc filter add dev eth1 parent 1: handle ::100 prio 1 protocol ip u32 match ip dst 10.10.10.10/32 flowID 1:100
删除过滤器:
tc filter del dev eth1 parent 1: handle 800::100 prio 1 protocol ip u32
只需为您需要的每个过滤器更改数字“100”
总结以上是内存溢出为你收集整理的linux – TC哈希过滤器 – 单一规则删除全部内容,希望文章能够帮你解决linux – TC哈希过滤器 – 单一规则删除所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)