桥接mac学习老化时间

桥接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

通过将“/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 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位机器上,一切都会很好