Module Name:    src
Committed By:   maxv
Date:           Wed Feb  7 12:04:50 UTC 2018

Modified Files:
        src/sys/netinet: ip_mroute.c

Log Message:
Style and remove unused macros. More to come.


To generate a diff of this commit:
cvs rdiff -u -r1.149 -r1.150 src/sys/netinet/ip_mroute.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/netinet/ip_mroute.c
diff -u src/sys/netinet/ip_mroute.c:1.149 src/sys/netinet/ip_mroute.c:1.150
--- src/sys/netinet/ip_mroute.c:1.149	Wed Feb  7 11:42:57 2018
+++ src/sys/netinet/ip_mroute.c	Wed Feb  7 12:04:50 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip_mroute.c,v 1.149 2018/02/07 11:42:57 maxv Exp $	*/
+/*	$NetBSD: ip_mroute.c,v 1.150 2018/02/07 12:04:50 maxv Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -93,7 +93,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip_mroute.c,v 1.149 2018/02/07 11:42:57 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip_mroute.c,v 1.150 2018/02/07 12:04:50 maxv Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -156,9 +156,6 @@ __KERNEL_RCSID(0, "$NetBSD: ip_mroute.c,
 struct socket  *ip_mrouter  = NULL;
 int		ip_mrtproto = IGMP_DVMRP;    /* for netstat only */
 
-#define NO_RTE_FOUND 	0x1
-#define RTE_FOUND	0x2
-
 #define	MFCHASH(a, g)							\
 	((((a).s_addr >> 20) ^ ((a).s_addr >> 10) ^ (a).s_addr ^	\
 	  ((g).s_addr >> 20) ^ ((g).s_addr >> 10) ^ (g).s_addr) & mfchash)
@@ -168,7 +165,7 @@ u_long	mfchash;
 u_char		nexpire[MFCTBLSIZ];
 struct vif	viftable[MAXVIFS];
 struct mrtstat	mrtstat;
-u_int		mrtdebug = 0;	  /* debug level 	*/
+u_int		mrtdebug = 0;	/* debug level */
 #define		DEBUG_MFC	0x02
 #define		DEBUG_FORWARD	0x04
 #define		DEBUG_EXPIRE	0x08
@@ -177,7 +174,7 @@ u_int		mrtdebug = 0;	  /* debug level 	*
 
 #define		VIFI_INVALID	((vifi_t) -1)
 
-u_int       	tbfdebug = 0;     /* tbf debug level 	*/
+u_int tbfdebug = 0;	/* tbf debug level */
 
 /* vif attachment using sys/netinet/ip_encap.c */
 static void vif_input(struct mbuf *, int, int, void *);
@@ -245,28 +242,16 @@ static void expire_bw_meter_process(void
 
 #ifdef PIM
 static int pim_register_send(struct ip *, struct vif *,
-		struct mbuf *, struct mfc *);
+    struct mbuf *, struct mfc *);
 static int pim_register_send_rp(struct ip *, struct vif *,
-		struct mbuf *, struct mfc *);
+    struct mbuf *, struct mfc *);
 static int pim_register_send_upcall(struct ip *, struct vif *,
-		struct mbuf *, struct mfc *);
+    struct mbuf *, struct mfc *);
 static struct mbuf *pim_register_prepare(struct ip *, struct mbuf *);
 #endif
 
-/*
- * 'Interfaces' associated with decapsulator (so we can tell
- * packets that went through it from ones that get reflected
- * by a broken gateway).  These interfaces are never linked into
- * the system ifnet list & no routes point to them.  I.e., packets
- * can't be sent this way.  They only exist as a placeholder for
- * multicast source verification.
- */
-#if 0
-struct ifnet multicast_decap_if[MAXVIFS];
-#endif
-
 #define	ENCAP_TTL	64
-#define	ENCAP_PROTO	IPPROTO_IPIP	/* 4 */
+#define	ENCAP_PROTO	IPPROTO_IPIP
 
 /* prototype IP hdr for encapsulated packets */
 struct ip multicast_encap_iphdr = {
@@ -307,10 +292,9 @@ struct pimstat pimstat;
  * data packet:
  *
  * struct pim_encap_hdr {
- *    struct ip ip;
- *    struct pim_encap_pimhdr  pim;
+ *     struct ip ip;
+ *     struct pim_encap_pimhdr  pim;
  * }
- *
  */
 
 struct pim_encap_pimhdr {
@@ -385,7 +369,7 @@ mfc_find(struct in_addr *o, struct in_ad
 			break;
 	}
 
-	return (rt);
+	return rt;
 }
 
 /*
@@ -485,7 +469,7 @@ ip_mrouter_set(struct socket *so, struct
 			break;
 		}
 	}
-	return (error);
+	return error;
 }
 
 /*
@@ -519,7 +503,7 @@ ip_mrouter_get(struct socket *so, struct
 			break;
 		}
 	}
-	return (error);
+	return error;
 }
 
 /*
@@ -545,7 +529,7 @@ mrt_ioctl(struct socket *so, u_long cmd,
 			break;
 		}
 
-	return (error);
+	return error;
 }
 
 /*
@@ -562,14 +546,14 @@ get_sg_cnt(struct sioc_sg_req *req)
 	if (rt == NULL) {
 		splx(s);
 		req->pktcnt = req->bytecnt = req->wrong_if = 0xffffffff;
-		return (EADDRNOTAVAIL);
+		return EADDRNOTAVAIL;
 	}
 	req->pktcnt = rt->mfc_pkt_cnt;
 	req->bytecnt = rt->mfc_byte_cnt;
 	req->wrong_if = rt->mfc_wrong_if;
 	splx(s);
 
-	return (0);
+	return 0;
 }
 
 /*
@@ -581,14 +565,14 @@ get_vif_cnt(struct sioc_vif_req *req)
 	vifi_t vifi = req->vifi;
 
 	if (vifi >= numvifs)
-		return (EINVAL);
+		return EINVAL;
 
 	req->icount = viftable[vifi].v_pkt_in;
 	req->ocount = viftable[vifi].v_pkt_out;
 	req->ibytes = viftable[vifi].v_bytes_in;
 	req->obytes = viftable[vifi].v_bytes_out;
 
-	return (0);
+	return 0;
 }
 
 /*
@@ -604,13 +588,13 @@ ip_mrouter_init(struct socket *so, int v
 
 	if (so->so_type != SOCK_RAW ||
 	    so->so_proto->pr_protocol != IPPROTO_IGMP)
-		return (EOPNOTSUPP);
+		return EOPNOTSUPP;
 
 	if (v != 1)
-		return (EINVAL);
+		return EINVAL;
 
 	if (ip_mrouter != NULL)
-		return (EADDRINUSE);
+		return EADDRINUSE;
 
 	ip_mrouter = so;
 
@@ -634,7 +618,7 @@ ip_mrouter_init(struct socket *so, int v
 	if (mrtdebug)
 		log(LOG_DEBUG, "ip_mrouter_init\n");
 
-	return (0);
+	return 0;
 }
 
 /*
@@ -1850,7 +1834,7 @@ vif_encapcheck(struct mbuf *m, int off, 
 	 * The outer source must match the vif's remote peer address.
 	 * For a multicast router with several tunnels, this is the
 	 * only check that will fail on packets in other tunnels,
-	 * assuming the local address is the same.	   
+	 * assuming the local address is the same.
 	 */
 	if (!in_hosteq(vifp->v_rmt_addr, ip.ip_src))
 		return 0;
@@ -2132,18 +2116,18 @@ priority(struct vif *vifp, struct ip *ip
 static uint32_t
 compute_bw_meter_flags(struct bw_upcall *req)
 {
-    uint32_t flags = 0;
+	uint32_t flags = 0;
 
-    if (req->bu_flags & BW_UPCALL_UNIT_PACKETS)
-	flags |= BW_METER_UNIT_PACKETS;
-    if (req->bu_flags & BW_UPCALL_UNIT_BYTES)
-	flags |= BW_METER_UNIT_BYTES;
-    if (req->bu_flags & BW_UPCALL_GEQ)
-	flags |= BW_METER_GEQ;
-    if (req->bu_flags & BW_UPCALL_LEQ)
-	flags |= BW_METER_LEQ;
+	if (req->bu_flags & BW_UPCALL_UNIT_PACKETS)
+		flags |= BW_METER_UNIT_PACKETS;
+	if (req->bu_flags & BW_UPCALL_UNIT_BYTES)
+		flags |= BW_METER_UNIT_BYTES;
+	if (req->bu_flags & BW_UPCALL_GEQ)
+		flags |= BW_METER_GEQ;
+	if (req->bu_flags & BW_UPCALL_LEQ)
+		flags |= BW_METER_LEQ;
 
-    return flags;
+	return flags;
 }
 
 /*
@@ -2152,91 +2136,91 @@ compute_bw_meter_flags(struct bw_upcall 
 static int
 add_bw_upcall(struct bw_upcall *req)
 {
-    int s;
-    struct mfc *mfc;
-    struct timeval delta = { BW_UPCALL_THRESHOLD_INTERVAL_MIN_SEC,
+	int s;
+	struct mfc *mfc;
+	struct timeval delta = { BW_UPCALL_THRESHOLD_INTERVAL_MIN_SEC,
 		BW_UPCALL_THRESHOLD_INTERVAL_MIN_USEC };
-    struct timeval now;
-    struct bw_meter *x;
-    uint32_t flags;
-
-    if (!(mrt_api_config & MRT_MFC_BW_UPCALL))
-	return EOPNOTSUPP;
-
-    /* Test if the flags are valid */
-    if (!(req->bu_flags & (BW_UPCALL_UNIT_PACKETS | BW_UPCALL_UNIT_BYTES)))
-	return EINVAL;
-    if (!(req->bu_flags & (BW_UPCALL_GEQ | BW_UPCALL_LEQ)))
-	return EINVAL;
-    if ((req->bu_flags & (BW_UPCALL_GEQ | BW_UPCALL_LEQ))
+	struct timeval now;
+	struct bw_meter *x;
+	uint32_t flags;
+
+	if (!(mrt_api_config & MRT_MFC_BW_UPCALL))
+		return EOPNOTSUPP;
+
+	/* Test if the flags are valid */
+	if (!(req->bu_flags & (BW_UPCALL_UNIT_PACKETS | BW_UPCALL_UNIT_BYTES)))
+		return EINVAL;
+	if (!(req->bu_flags & (BW_UPCALL_GEQ | BW_UPCALL_LEQ)))
+		return EINVAL;
+	if ((req->bu_flags & (BW_UPCALL_GEQ | BW_UPCALL_LEQ))
 	    == (BW_UPCALL_GEQ | BW_UPCALL_LEQ))
-	return EINVAL;
+		return EINVAL;
 
-    /* Test if the threshold time interval is valid */
-    if (BW_TIMEVALCMP(&req->bu_threshold.b_time, &delta, <))
-	return EINVAL;
+	/* Test if the threshold time interval is valid */
+	if (BW_TIMEVALCMP(&req->bu_threshold.b_time, &delta, <))
+		return EINVAL;
 
-    flags = compute_bw_meter_flags(req);
+	flags = compute_bw_meter_flags(req);
 
-    /*
-     * Find if we have already same bw_meter entry
-     */
-    s = splsoftnet();
-    mfc = mfc_find(&req->bu_src, &req->bu_dst);
-    if (mfc == NULL) {
-	splx(s);
-	return EADDRNOTAVAIL;
-    }
-    for (x = mfc->mfc_bw_meter; x != NULL; x = x->bm_mfc_next) {
-	if ((BW_TIMEVALCMP(&x->bm_threshold.b_time,
-			   &req->bu_threshold.b_time, ==)) &&
-	    (x->bm_threshold.b_packets == req->bu_threshold.b_packets) &&
-	    (x->bm_threshold.b_bytes == req->bu_threshold.b_bytes) &&
-	    (x->bm_flags & BW_METER_USER_FLAGS) == flags)  {
-	    splx(s);
-	    return 0;		/* XXX Already installed */
+	/*
+	 * Find if we have already same bw_meter entry
+	 */
+	s = splsoftnet();
+	mfc = mfc_find(&req->bu_src, &req->bu_dst);
+	if (mfc == NULL) {
+		splx(s);
+		return EADDRNOTAVAIL;
+	}
+	for (x = mfc->mfc_bw_meter; x != NULL; x = x->bm_mfc_next) {
+		if ((BW_TIMEVALCMP(&x->bm_threshold.b_time,
+		    &req->bu_threshold.b_time, ==)) &&
+		    (x->bm_threshold.b_packets == req->bu_threshold.b_packets) &&
+		    (x->bm_threshold.b_bytes == req->bu_threshold.b_bytes) &&
+		    (x->bm_flags & BW_METER_USER_FLAGS) == flags)  {
+			splx(s);
+			return 0;		/* XXX Already installed */
+		}
 	}
-    }
-
-    /* Allocate the new bw_meter entry */
-    x = kmem_intr_alloc(sizeof(*x), KM_NOSLEEP);
-    if (x == NULL) {
-	splx(s);
-	return ENOBUFS;
-    }
 
-    /* Set the new bw_meter entry */
-    x->bm_threshold.b_time = req->bu_threshold.b_time;
-    microtime(&now);
-    x->bm_start_time = now;
-    x->bm_threshold.b_packets = req->bu_threshold.b_packets;
-    x->bm_threshold.b_bytes = req->bu_threshold.b_bytes;
-    x->bm_measured.b_packets = 0;
-    x->bm_measured.b_bytes = 0;
-    x->bm_flags = flags;
-    x->bm_time_next = NULL;
-    x->bm_time_hash = BW_METER_BUCKETS;
+	/* Allocate the new bw_meter entry */
+	x = kmem_intr_alloc(sizeof(*x), KM_NOSLEEP);
+	if (x == NULL) {
+		splx(s);
+		return ENOBUFS;
+	}
 
-    /* Add the new bw_meter entry to the front of entries for this MFC */
-    x->bm_mfc = mfc;
-    x->bm_mfc_next = mfc->mfc_bw_meter;
-    mfc->mfc_bw_meter = x;
-    schedule_bw_meter(x, &now);
-    splx(s);
+	/* Set the new bw_meter entry */
+	x->bm_threshold.b_time = req->bu_threshold.b_time;
+	microtime(&now);
+	x->bm_start_time = now;
+	x->bm_threshold.b_packets = req->bu_threshold.b_packets;
+	x->bm_threshold.b_bytes = req->bu_threshold.b_bytes;
+	x->bm_measured.b_packets = 0;
+	x->bm_measured.b_bytes = 0;
+	x->bm_flags = flags;
+	x->bm_time_next = NULL;
+	x->bm_time_hash = BW_METER_BUCKETS;
+
+	/* Add the new bw_meter entry to the front of entries for this MFC */
+	x->bm_mfc = mfc;
+	x->bm_mfc_next = mfc->mfc_bw_meter;
+	mfc->mfc_bw_meter = x;
+	schedule_bw_meter(x, &now);
+	splx(s);
 
-    return 0;
+	return 0;
 }
 
 static void
 free_bw_list(struct bw_meter *list)
 {
-    while (list != NULL) {
-	struct bw_meter *x = list;
+	while (list != NULL) {
+		struct bw_meter *x = list;
 
-	list = list->bm_mfc_next;
-	unschedule_bw_meter(x);
-	kmem_intr_free(x, sizeof(*x));
-    }
+		list = list->bm_mfc_next;
+		unschedule_bw_meter(x);
+		kmem_intr_free(x, sizeof(*x));
+	}
 }
 
 /*
@@ -2245,63 +2229,63 @@ free_bw_list(struct bw_meter *list)
 static int
 del_bw_upcall(struct bw_upcall *req)
 {
-    int s;
-    struct mfc *mfc;
-    struct bw_meter *x;
+	int s;
+	struct mfc *mfc;
+	struct bw_meter *x;
 
-    if (!(mrt_api_config & MRT_MFC_BW_UPCALL))
-	return EOPNOTSUPP;
+	if (!(mrt_api_config & MRT_MFC_BW_UPCALL))
+		return EOPNOTSUPP;
 
-    s = splsoftnet();
-    /* Find the corresponding MFC entry */
-    mfc = mfc_find(&req->bu_src, &req->bu_dst);
-    if (mfc == NULL) {
-	splx(s);
-	return EADDRNOTAVAIL;
-    } else if (req->bu_flags & BW_UPCALL_DELETE_ALL) {
-	/*
-	 * Delete all bw_meter entries for this mfc
-	 */
-	struct bw_meter *list;
-
-	list = mfc->mfc_bw_meter;
-	mfc->mfc_bw_meter = NULL;
-	free_bw_list(list);
-	splx(s);
-	return 0;
-    } else {			/* Delete a single bw_meter entry */
-	struct bw_meter *prev;
-	uint32_t flags = 0;
-
-	flags = compute_bw_meter_flags(req);
+	s = splsoftnet();
+	/* Find the corresponding MFC entry */
+	mfc = mfc_find(&req->bu_src, &req->bu_dst);
+	if (mfc == NULL) {
+		splx(s);
+		return EADDRNOTAVAIL;
+	} else if (req->bu_flags & BW_UPCALL_DELETE_ALL) {
+		/*
+		 * Delete all bw_meter entries for this mfc
+		 */
+		struct bw_meter *list;
 
-	/* Find the bw_meter entry to delete */
-	for (prev = NULL, x = mfc->mfc_bw_meter; x != NULL;
-	     prev = x, x = x->bm_mfc_next) {
-	    if ((BW_TIMEVALCMP(&x->bm_threshold.b_time,
-			       &req->bu_threshold.b_time, ==)) &&
-		(x->bm_threshold.b_packets == req->bu_threshold.b_packets) &&
-		(x->bm_threshold.b_bytes == req->bu_threshold.b_bytes) &&
-		(x->bm_flags & BW_METER_USER_FLAGS) == flags)
-		break;
-	}
-	if (x != NULL) { /* Delete entry from the list for this MFC */
-	    if (prev != NULL)
-		prev->bm_mfc_next = x->bm_mfc_next;	/* remove from middle*/
-	    else
-		x->bm_mfc->mfc_bw_meter = x->bm_mfc_next;/* new head of list */
+		list = mfc->mfc_bw_meter;
+		mfc->mfc_bw_meter = NULL;
+		free_bw_list(list);
+		splx(s);
+		return 0;
+	} else {			/* Delete a single bw_meter entry */
+		struct bw_meter *prev;
+		uint32_t flags = 0;
+
+		flags = compute_bw_meter_flags(req);
+
+		/* Find the bw_meter entry to delete */
+		for (prev = NULL, x = mfc->mfc_bw_meter; x != NULL;
+		     prev = x, x = x->bm_mfc_next) {
+			if ((BW_TIMEVALCMP(&x->bm_threshold.b_time,
+			    &req->bu_threshold.b_time, ==)) &&
+			    (x->bm_threshold.b_packets == req->bu_threshold.b_packets) &&
+			    (x->bm_threshold.b_bytes == req->bu_threshold.b_bytes) &&
+			    (x->bm_flags & BW_METER_USER_FLAGS) == flags)
+				break;
+		}
+		if (x != NULL) { /* Delete entry from the list for this MFC */
+			if (prev != NULL)
+				prev->bm_mfc_next = x->bm_mfc_next;	/* remove from middle*/
+			else
+				x->bm_mfc->mfc_bw_meter = x->bm_mfc_next;/* new head of list */
 
-	    unschedule_bw_meter(x);
-	    splx(s);
-	    /* Free the bw_meter entry */
-	    kmem_intr_free(x, sizeof(*x));
-	    return 0;
-	} else {
-	    splx(s);
-	    return EINVAL;
+			unschedule_bw_meter(x);
+			splx(s);
+			/* Free the bw_meter entry */
+			kmem_intr_free(x, sizeof(*x));
+			return 0;
+		} else {
+			splx(s);
+			return EINVAL;
+		}
 	}
-    }
-    /* NOTREACHED */
+	/* NOTREACHED */
 }
 
 /*
@@ -2310,88 +2294,88 @@ del_bw_upcall(struct bw_upcall *req)
 static void
 bw_meter_receive_packet(struct bw_meter *x, int plen, struct timeval *nowp)
 {
-    struct timeval delta;
+	struct timeval delta;
 
-    delta = *nowp;
-    BW_TIMEVALDECR(&delta, &x->bm_start_time);
+	delta = *nowp;
+	BW_TIMEVALDECR(&delta, &x->bm_start_time);
 
-    if (x->bm_flags & BW_METER_GEQ) {
-	/*
-	 * Processing for ">=" type of bw_meter entry
-	 */
-	if (BW_TIMEVALCMP(&delta, &x->bm_threshold.b_time, >)) {
-	    /* Reset the bw_meter entry */
-	    x->bm_start_time = *nowp;
-	    x->bm_measured.b_packets = 0;
-	    x->bm_measured.b_bytes = 0;
-	    x->bm_flags &= ~BW_METER_UPCALL_DELIVERED;
-	}
+	if (x->bm_flags & BW_METER_GEQ) {
+		/*
+		 * Processing for ">=" type of bw_meter entry
+		 */
+		if (BW_TIMEVALCMP(&delta, &x->bm_threshold.b_time, >)) {
+			/* Reset the bw_meter entry */
+			x->bm_start_time = *nowp;
+			x->bm_measured.b_packets = 0;
+			x->bm_measured.b_bytes = 0;
+			x->bm_flags &= ~BW_METER_UPCALL_DELIVERED;
+		}
 
-	/* Record that a packet is received */
-	x->bm_measured.b_packets++;
-	x->bm_measured.b_bytes += plen;
+		/* Record that a packet is received */
+		x->bm_measured.b_packets++;
+		x->bm_measured.b_bytes += plen;
 
-	/*
-	 * Test if we should deliver an upcall
-	 */
-	if (!(x->bm_flags & BW_METER_UPCALL_DELIVERED)) {
-	    if (((x->bm_flags & BW_METER_UNIT_PACKETS) &&
-		 (x->bm_measured.b_packets >= x->bm_threshold.b_packets)) ||
-		((x->bm_flags & BW_METER_UNIT_BYTES) &&
-		 (x->bm_measured.b_bytes >= x->bm_threshold.b_bytes))) {
-		/* Prepare an upcall for delivery */
-		bw_meter_prepare_upcall(x, nowp);
-		x->bm_flags |= BW_METER_UPCALL_DELIVERED;
-	    }
-	}
-    } else if (x->bm_flags & BW_METER_LEQ) {
-	/*
-	 * Processing for "<=" type of bw_meter entry
-	 */
-	if (BW_TIMEVALCMP(&delta, &x->bm_threshold.b_time, >)) {
-	    /*
-	     * We are behind time with the multicast forwarding table
-	     * scanning for "<=" type of bw_meter entries, so test now
-	     * if we should deliver an upcall.
-	     */
-	    if (((x->bm_flags & BW_METER_UNIT_PACKETS) &&
-		 (x->bm_measured.b_packets <= x->bm_threshold.b_packets)) ||
-		((x->bm_flags & BW_METER_UNIT_BYTES) &&
-		 (x->bm_measured.b_bytes <= x->bm_threshold.b_bytes))) {
-		/* Prepare an upcall for delivery */
-		bw_meter_prepare_upcall(x, nowp);
-	    }
-	    /* Reschedule the bw_meter entry */
-	    unschedule_bw_meter(x);
-	    schedule_bw_meter(x, nowp);
-	}
+		/*
+		 * Test if we should deliver an upcall
+		 */
+		if (!(x->bm_flags & BW_METER_UPCALL_DELIVERED)) {
+			if (((x->bm_flags & BW_METER_UNIT_PACKETS) &&
+				 (x->bm_measured.b_packets >= x->bm_threshold.b_packets)) ||
+				((x->bm_flags & BW_METER_UNIT_BYTES) &&
+				 (x->bm_measured.b_bytes >= x->bm_threshold.b_bytes))) {
+				/* Prepare an upcall for delivery */
+				bw_meter_prepare_upcall(x, nowp);
+				x->bm_flags |= BW_METER_UPCALL_DELIVERED;
+			}
+		}
+	} else if (x->bm_flags & BW_METER_LEQ) {
+		/*
+		 * Processing for "<=" type of bw_meter entry
+		 */
+		if (BW_TIMEVALCMP(&delta, &x->bm_threshold.b_time, >)) {
+			/*
+			 * We are behind time with the multicast forwarding table
+			 * scanning for "<=" type of bw_meter entries, so test now
+			 * if we should deliver an upcall.
+			 */
+			if (((x->bm_flags & BW_METER_UNIT_PACKETS) &&
+				 (x->bm_measured.b_packets <= x->bm_threshold.b_packets)) ||
+				((x->bm_flags & BW_METER_UNIT_BYTES) &&
+				 (x->bm_measured.b_bytes <= x->bm_threshold.b_bytes))) {
+				/* Prepare an upcall for delivery */
+				bw_meter_prepare_upcall(x, nowp);
+			}
+			/* Reschedule the bw_meter entry */
+			unschedule_bw_meter(x);
+			schedule_bw_meter(x, nowp);
+		}
 
-	/* Record that a packet is received */
-	x->bm_measured.b_packets++;
-	x->bm_measured.b_bytes += plen;
+		/* Record that a packet is received */
+		x->bm_measured.b_packets++;
+		x->bm_measured.b_bytes += plen;
 
-	/*
-	 * Test if we should restart the measuring interval
-	 */
-	if ((x->bm_flags & BW_METER_UNIT_PACKETS &&
-	     x->bm_measured.b_packets <= x->bm_threshold.b_packets) ||
-	    (x->bm_flags & BW_METER_UNIT_BYTES &&
-	     x->bm_measured.b_bytes <= x->bm_threshold.b_bytes)) {
-	    /* Don't restart the measuring interval */
-	} else {
-	    /* Do restart the measuring interval */
-	    /*
-	     * XXX: note that we don't unschedule and schedule, because this
-	     * might be too much overhead per packet. Instead, when we process
-	     * all entries for a given timer hash bin, we check whether it is
-	     * really a timeout. If not, we reschedule at that time.
-	     */
-	    x->bm_start_time = *nowp;
-	    x->bm_measured.b_packets = 0;
-	    x->bm_measured.b_bytes = 0;
-	    x->bm_flags &= ~BW_METER_UPCALL_DELIVERED;
+		/*
+		 * Test if we should restart the measuring interval
+		 */
+		if ((x->bm_flags & BW_METER_UNIT_PACKETS &&
+		     x->bm_measured.b_packets <= x->bm_threshold.b_packets) ||
+		    (x->bm_flags & BW_METER_UNIT_BYTES &&
+		     x->bm_measured.b_bytes <= x->bm_threshold.b_bytes)) {
+			/* Don't restart the measuring interval */
+		} else {
+			/* Do restart the measuring interval */
+			/*
+			 * XXX: note that we don't unschedule and schedule, because this
+			 * might be too much overhead per packet. Instead, when we process
+			 * all entries for a given timer hash bin, we check whether it is
+			 * really a timeout. If not, we reschedule at that time.
+			 */
+			x->bm_start_time = *nowp;
+			x->bm_measured.b_packets = 0;
+			x->bm_measured.b_bytes = 0;
+			x->bm_flags &= ~BW_METER_UPCALL_DELIVERED;
+		}
 	}
-    }
 }
 
 /*
@@ -2400,42 +2384,42 @@ bw_meter_receive_packet(struct bw_meter 
 static void
 bw_meter_prepare_upcall(struct bw_meter *x, struct timeval *nowp)
 {
-    struct timeval delta;
-    struct bw_upcall *u;
-
-    /*
-     * Compute the measured time interval
-     */
-    delta = *nowp;
-    BW_TIMEVALDECR(&delta, &x->bm_start_time);
+	struct timeval delta;
+	struct bw_upcall *u;
 
-    /*
-     * If there are too many pending upcalls, deliver them now
-     */
-    if (bw_upcalls_n >= BW_UPCALLS_MAX)
-	bw_upcalls_send();
+	/*
+	 * Compute the measured time interval
+	 */
+	delta = *nowp;
+	BW_TIMEVALDECR(&delta, &x->bm_start_time);
 
-    /*
-     * Set the bw_upcall entry
-     */
-    u = &bw_upcalls[bw_upcalls_n++];
-    u->bu_src = x->bm_mfc->mfc_origin;
-    u->bu_dst = x->bm_mfc->mfc_mcastgrp;
-    u->bu_threshold.b_time = x->bm_threshold.b_time;
-    u->bu_threshold.b_packets = x->bm_threshold.b_packets;
-    u->bu_threshold.b_bytes = x->bm_threshold.b_bytes;
-    u->bu_measured.b_time = delta;
-    u->bu_measured.b_packets = x->bm_measured.b_packets;
-    u->bu_measured.b_bytes = x->bm_measured.b_bytes;
-    u->bu_flags = 0;
-    if (x->bm_flags & BW_METER_UNIT_PACKETS)
-	u->bu_flags |= BW_UPCALL_UNIT_PACKETS;
-    if (x->bm_flags & BW_METER_UNIT_BYTES)
-	u->bu_flags |= BW_UPCALL_UNIT_BYTES;
-    if (x->bm_flags & BW_METER_GEQ)
-	u->bu_flags |= BW_UPCALL_GEQ;
-    if (x->bm_flags & BW_METER_LEQ)
-	u->bu_flags |= BW_UPCALL_LEQ;
+	/*
+	 * If there are too many pending upcalls, deliver them now
+	 */
+	if (bw_upcalls_n >= BW_UPCALLS_MAX)
+		bw_upcalls_send();
+
+	/*
+	 * Set the bw_upcall entry
+	 */
+	u = &bw_upcalls[bw_upcalls_n++];
+	u->bu_src = x->bm_mfc->mfc_origin;
+	u->bu_dst = x->bm_mfc->mfc_mcastgrp;
+	u->bu_threshold.b_time = x->bm_threshold.b_time;
+	u->bu_threshold.b_packets = x->bm_threshold.b_packets;
+	u->bu_threshold.b_bytes = x->bm_threshold.b_bytes;
+	u->bu_measured.b_time = delta;
+	u->bu_measured.b_packets = x->bm_measured.b_packets;
+	u->bu_measured.b_bytes = x->bm_measured.b_bytes;
+	u->bu_flags = 0;
+	if (x->bm_flags & BW_METER_UNIT_PACKETS)
+		u->bu_flags |= BW_UPCALL_UNIT_PACKETS;
+	if (x->bm_flags & BW_METER_UNIT_BYTES)
+		u->bu_flags |= BW_UPCALL_UNIT_BYTES;
+	if (x->bm_flags & BW_METER_GEQ)
+		u->bu_flags |= BW_UPCALL_GEQ;
+	if (x->bm_flags & BW_METER_LEQ)
+		u->bu_flags |= BW_UPCALL_LEQ;
 }
 
 /*
@@ -2446,7 +2430,7 @@ bw_upcalls_send(void)
 {
     struct mbuf *m;
     int len = bw_upcalls_n * sizeof(bw_upcalls[0]);
-    struct sockaddr_in k_igmpsrc = { 
+    struct sockaddr_in k_igmpsrc = {
 	    .sin_len = sizeof(k_igmpsrc),
 	    .sin_family = AF_INET,
     };

Reply via email to