c - Bridge mac learning ageing time -
"/ sys / class / net / br0 / bridge / ageing_time" को अधिकतम मान में बदलकर बुढ़ापे का समय निर्धारित करें।
# brctl showstp br0 br0 पुल आईडी 8000.001018000000 नामित रूट 8000.001018000000 .... उम्र बढ़ने का समय 4294314.45 ....
लेकिन सीखा तालिका बासी होगी एक ही समय में।
कोड की जांच करें, मैंने br_fdb.c में कुछ अतिप्रवाह देखा है
स्थिर इनलाइन ईएफ़ एक्सचेंज (const struct net_bridge * br, const struct net_bridge_fdb_entry * fdb ) {वापसी! Fdb- & gt; is_static & amp; amp; (Time_before_eq (fdb- & gt; अपडेट किया गया + hold_time (br), jiffies)); }
fdb-> अपडेट किया गया + hold_time (br)
अतिप्रवाह हो जाएगा, फिर सीखा तालिका को टाइम-आउट के रूप में माना जाएगा।
यह एक बग है?
मुझे ऐसा लगता है लेकिन एक बग नहीं होना चाहिए, केवल एक अनुपयुक्त स्थान।
यदि आप चाहते हैं कि आपके गैर-स्थिर एफडीबी प्रविष्टि की समय सीमा समाप्त न हो, लेकिन ऐसा लगता है कि इस अतिप्रवाह का कारण होगा-
32-बिट मशीन पर, आम तौर पर हर 50 दिन के आसपास जिंग होता है। इससे भी कुछ परेशानी का कारण होगा लेकिन मुझे लगता है कि कभी-कभी कुछ विशेषताओं का परीक्षण नहीं किया जा सकता है।
32-बिट मशीन पर, time_before_eq () को time_before_eq64 () के साथ बदलें, और कुछ अजीब परिभाषा "अहस्ताक्षरित लंबे" से "u64" करने के लिए करें । बेशक, 64-बिट मशीन पर, हर चीज ठीक हो जाएगी।
Comments
Post a Comment