桥接mac学习老化时间
通过将“/sys/class/net/br0/bridge/aging_time”修改为最大值来设置老化时间桥接mac学习老化时间,c,linux-kernel,C,Linux Kernel,通过将“/sys/class/net/br0/bridge/aging_time”修改为最大值来设置老化时间 # brctl showstp br0 br0 bridge id 8000.001018000000 designated root 8000.001018000000 .... ageing time 4294314.45 .... 但是,学习过的表格同时也会过时 检查代码,我在br_fdb.c中看到一些溢出 static inline int
# brctl showstp br0
br0
bridge id 8000.001018000000
designated root 8000.001018000000
....
ageing time 4294314.45
....
但是,学习过的表格同时也会过时
检查代码,我在br_fdb.c中看到一些溢出
static inline int has_expired(const struct net_bridge *br,
const struct net_bridge_fdb_entry *fdb)
{
return !fdb->is_static &&
(time_before_eq(fdb->updated + hold_time(br), jiffies));
}
fdb->updated+hold\u time(br)
将溢出,则读入的表将被视为超时
这是虫子吗 我想是的。但不应该是一个错误,只是一个不合适的地方 如果希望非静态FDB项永不过期,但此溢出似乎会导致has_expired()返回TRUE 在32位机器上,通常jiffies会每50天包装一次。这也会引起一些麻烦。但我想有时候有些功能没有经过那么长时间的测试 在32位机器上,将_eq()之前的time_替换为_eq64()之前的time_,并使一些变量定义从“unsigned long”到“u64”应该有效。当然,在64位机器上,一切都会很好