>Number:         183462
>Category:       kern
>Synopsis:       IPv6 Multicast Lookup Accounting Fix
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Oct 30 03:10:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Sven-Thorsten Dietrich
>Release:        HEAD / 9.1.0
>Organization:
Vyatta
>Environment:
>Description:
Implementation should only count table lookups when processing packets.
internal table accesses should not be counted in the stats.
>How-To-Repeat:
See patch
>Fix:


Patch attached with submission follows:

Subject: Don't count table lookups from add_mfc.
Signed-off-by: Sven-Thorsten Dietrich <thebigcorporat...@gmail.com>

Index: sys/netinet6/ip6_mroute.c
===================================================================
--- sys/netinet6/ip6_mroute.c   (revision 256126)
+++ sys/netinet6/ip6_mroute.c   (working copy)
@@ -275,7 +275,6 @@
 #define MF6CFIND(o, g, rt) do { \
        struct mf6c *_rt = mf6ctable[MF6CHASH(o,g)]; \
        rt = NULL; \
-       MRT6STAT_INC(mrt6s_mfc_lookups); \
        while (_rt) { \
                if (IN6_ARE_ADDR_EQUAL(&_rt->mf6c_origin.sin6_addr, &(o)) && \
                    IN6_ARE_ADDR_EQUAL(&_rt->mf6c_mcastgrp.sin6_addr, &(g)) && \
@@ -1124,6 +1123,7 @@
        /*
         * Determine forwarding mifs from the forwarding cache table
         */
+       MRT6STAT_INC(mrt6s_mfc_lookups);
        MF6CFIND(ip6->ip6_src, ip6->ip6_dst, rt);
 
        /* Entry exists, so forward if necessary */


>Release-Note:
>Audit-Trail:
>Unformatted:
_______________________________________________
freebsd-bugs@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to