Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/net Reset the expire time of a cache on receiving a fram...



details:   https://anonhg.NetBSD.org/src/rev/be41e0fe7300
branches:  trunk
changeset: 335275:be41e0fe7300
user:      ozaki-r <ozaki-r%NetBSD.org@localhost>
date:      Thu Jan 01 08:43:26 2015 +0000

description:
Reset the expire time of a cache on receiving a frame for the cache

The expire time of a cache in a bridge MAC address table was never reset
once it is initialized regardless of traffic for the cache. The behavior
isn't supposed and active caches are unnecessarily expired and removed.

PR kern/49507

diffstat:

 sys/net/if_bridge.c |  7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diffs (28 lines):

diff -r 2321956fe609 -r be41e0fe7300 sys/net/if_bridge.c
--- a/sys/net/if_bridge.c       Thu Jan 01 08:11:45 2015 +0000
+++ b/sys/net/if_bridge.c       Thu Jan 01 08:43:26 2015 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: if_bridge.c,v 1.95 2014/12/31 17:36:24 ozaki-r Exp $   */
+/*     $NetBSD: if_bridge.c,v 1.96 2015/01/01 08:43:26 ozaki-r Exp $   */
 
 /*
  * Copyright 2001 Wasabi Systems, Inc.
@@ -80,7 +80,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_bridge.c,v 1.95 2014/12/31 17:36:24 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_bridge.c,v 1.96 2015/01/01 08:43:26 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_bridge_ipf.h"
@@ -2029,6 +2029,9 @@
                        brt->brt_expire = 0;
                else
                        brt->brt_expire = time_uptime + sc->sc_brttimeout;
+       } else {
+               if ((brt->brt_flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC)
+                       brt->brt_expire = time_uptime + sc->sc_brttimeout;
        }
 
 out:



Home | Main Index | Thread Index | Old Index