Page MenuHomeFreeBSD

D35753.diff
No OneTemporary

D35753.diff

Index: sys/kern/uipc_domain.c
===================================================================
--- sys/kern/uipc_domain.c
+++ sys/kern/uipc_domain.c
@@ -479,6 +479,18 @@
(*pr->pr_ctlinput)(cmd, sa, (void *)0);
}
+int
+pr_milli_to_slowtimo(int ms)
+{
+ return (ms * PR_SLOWHZ / 1000);
+}
+
+int
+pr_milli_to_fasttimo(int ms)
+{
+ return (ms * PR_FASTHZ / 1000);
+}
+
static void
pfslowtimo(void *arg)
{
Index: sys/net/route.h
===================================================================
--- sys/net/route.h
+++ sys/net/route.h
@@ -85,21 +85,15 @@
u_long rmx_recvpipe; /* inbound delay-bandwidth product */
u_long rmx_sendpipe; /* outbound delay-bandwidth product */
u_long rmx_ssthresh; /* outbound gateway buffer limit */
- u_long rmx_rtt; /* estimated round trip time */
- u_long rmx_rttvar; /* estimated rtt variance */
+ u_long rmx_rtt; /* estimated round trip time (microseconds) */
+ u_long rmx_rttvar; /* estimated rtt variance (microseconds) */
u_long rmx_pksent; /* packets sent using this route */
u_long rmx_weight; /* route weight */
u_long rmx_nhidx; /* route nexhop index */
u_long rmx_filler[2]; /* will be used for T/TCP later */
};
-/*
- * rmx_rtt and rmx_rttvar are stored as microseconds;
- * RTTTOPRHZ(rtt) converts to a value suitable for use
- * by a protocol slowtimo counter.
- */
#define RTM_RTTUNIT 1000000 /* units for rtt, rttvar, as units per sec */
-#define RTTTOPRHZ(r) ((r) / (RTM_RTTUNIT / PR_SLOWHZ))
/* lle state is exported in rmx_state rt_metrics field */
#define rmx_state rmx_weight
Index: sys/netinet/igmp.c
===================================================================
--- sys/netinet/igmp.c
+++ sys/netinet/igmp.c
@@ -816,7 +816,7 @@
case IGMP_AWAKENING_MEMBER:
inm->inm_state = IGMP_REPORTING_MEMBER;
inm->inm_timer = IGMP_RANDOM_DELAY(
- IGMP_V1V2_MAX_RI * PR_FASTHZ);
+ pr_milli_to_fasttimo(IGMP_V1V2_MAX_RI * 1000));
V_current_state_timers_running = 1;
break;
case IGMP_LEAVING_MEMBER:
@@ -886,7 +886,7 @@
igmp_set_version(igi, IGMP_VERSION_2);
- timer = igmp->igmp_code * PR_FASTHZ / IGMP_TIMER_SCALE;
+ timer = pr_milli_to_fasttimo(igmp->igmp_code * 1000) / IGMP_TIMER_SCALE;
if (timer == 0)
timer = 1;
@@ -1026,7 +1026,7 @@
(IGMP_EXP(igmpv3->igmp_qqi) + 3);
}
- timer = maxresp * PR_FASTHZ / IGMP_TIMER_SCALE;
+ timer = pr_milli_to_fasttimo(maxresp * 1000) / IGMP_TIMER_SCALE;
if (timer == 0)
timer = 1;
@@ -1740,8 +1740,8 @@
if (igi->igi_version == IGMP_VERSION_3) {
loop = (igi->igi_flags & IGIF_LOOPBACK) ? 1 : 0;
- uri_fasthz = IGMP_RANDOM_DELAY(igi->igi_uri *
- PR_FASTHZ);
+ uri_fasthz = IGMP_RANDOM_DELAY(
+ pr_milli_to_fasttimo(igi->igi_uri * 1000));
mbufq_init(&qrq, IGMP_MAX_G_GS_PACKETS);
mbufq_init(&scq, IGMP_MAX_STATE_CHANGE_PACKETS);
}
@@ -2000,7 +2000,7 @@
* Section 8.12.
*/
old_version_timer = igi->igi_rv * igi->igi_qi + igi->igi_qri;
- old_version_timer *= PR_SLOWHZ;
+ old_version_timer = pr_milli_to_slowtimo(old_version_timer * 1000);
if (version == IGMP_VERSION_1) {
igi->igi_v1_timer = old_version_timer;
@@ -2433,7 +2433,7 @@
IGMP_v1_HOST_MEMBERSHIP_REPORT);
if (error == 0) {
inm->inm_timer = IGMP_RANDOM_DELAY(
- IGMP_V1V2_MAX_RI * PR_FASTHZ);
+ pr_milli_to_fasttimo(IGMP_V1V2_MAX_RI * 1000));
V_current_state_timers_running = 1;
}
break;
@@ -3422,7 +3422,7 @@
*/
if (mbufq_first(&igi->igi_gq) != NULL) {
igi->igi_v3_timer = 1 + IGMP_RANDOM_DELAY(
- IGMP_RESPONSE_BURST_INTERVAL);
+ pr_milli_to_fasttimo(IGMP_RESPONSE_BURST_INTERVAL_MS));
V_interface_timers_running = 1;
}
}
Index: sys/netinet/igmp_var.h
===================================================================
--- sys/netinet/igmp_var.h
+++ sys/netinet/igmp_var.h
@@ -148,7 +148,7 @@
#define IGMP_MAX_STATE_CHANGE_PACKETS 8 /* # of packets per state change */
#define IGMP_MAX_RESPONSE_PACKETS 16 /* # of packets for general query */
#define IGMP_MAX_RESPONSE_BURST 4 /* # of responses to send at once */
-#define IGMP_RESPONSE_BURST_INTERVAL (PR_FASTHZ / 2) /* 500ms */
+#define IGMP_RESPONSE_BURST_INTERVAL_MS 500
/*
* IGMP-specific mbuf flags.
Index: sys/netinet6/in6.c
===================================================================
--- sys/netinet6/in6.c
+++ sys/netinet6/in6.c
@@ -733,7 +733,7 @@
return (NULL);
}
- delay = (delay * PR_FASTHZ) / hz;
+ delay = pr_milli_to_fasttimo(delay * 1000) / hz;
error = in6_joingroup(ifp, mcaddr, NULL, &imm->i6mm_maddr, delay);
if (error) {
Index: sys/netinet6/mld6.c
===================================================================
--- sys/netinet6/mld6.c
+++ sys/netinet6/mld6.c
@@ -670,7 +670,7 @@
KASSERT(mli != NULL, ("%s: no mld_ifsoftc for ifp %p", __func__, ifp));
mld_set_version(mli, MLD_VERSION_1);
- timer = (ntohs(mld->mld_maxdelay) * PR_FASTHZ) / MLD_TIMER_SCALE;
+ timer = (pr_milli_to_fasttimo(ntohs(mld->mld_maxdelay) * 1000)) / MLD_TIMER_SCALE;
if (timer == 0)
timer = 1;
@@ -821,7 +821,7 @@
maxdelay = (MLD_MRC_MANT(maxdelay) | 0x1000) <<
(MLD_MRC_EXP(maxdelay) + 3);
}
- timer = (maxdelay * PR_FASTHZ) / MLD_TIMER_SCALE;
+ timer = (pr_milli_to_fasttimo(maxdelay * 1000)) / MLD_TIMER_SCALE;
if (timer == 0)
timer = 1;
@@ -1380,7 +1380,7 @@
if (mli->mli_version == MLD_VERSION_2) {
uri_fasthz = MLD_RANDOM_DELAY(mli->mli_uri *
- PR_FASTHZ);
+ pr_milli_to_fasttimo(1000));
mbufq_init(&qrq, MLD_MAX_G_GS_PACKETS);
mbufq_init(&scq, MLD_MAX_STATE_CHANGE_PACKETS);
}
@@ -1616,7 +1616,7 @@
* Section 9.12.
*/
old_version_timer = (mli->mli_rv * mli->mli_qi) + mli->mli_qri;
- old_version_timer *= PR_SLOWHZ;
+ old_version_timer *= pr_milli_to_slowtimo(1000);
mli->mli_v1_timer = old_version_timer;
}
@@ -2003,7 +2003,7 @@
* and delay sending the initial MLDv1 report
* by not transitioning to the IDLE state.
*/
- odelay = MLD_RANDOM_DELAY(MLD_V1_MAX_RI * PR_FASTHZ);
+ odelay = MLD_RANDOM_DELAY(pr_milli_to_fasttimo(MLD_V1_MAX_RI * 1000));
if (delay) {
inm->in6m_timer = max(delay, odelay);
V_current_state_timers_running6 = 1;
@@ -3039,7 +3039,7 @@
*/
if (mbufq_first(&mli->mli_gq) != NULL) {
mli->mli_v2_timer = 1 + MLD_RANDOM_DELAY(
- MLD_RESPONSE_BURST_INTERVAL);
+ pr_milli_to_fasttimo(MLD_RESPONSE_BURST_INTERVAL_MS));
V_interface_timers_running6 = 1;
}
}
Index: sys/netinet6/mld6_var.h
===================================================================
--- sys/netinet6/mld6_var.h
+++ sys/netinet6/mld6_var.h
@@ -83,7 +83,7 @@
#define MLD_MAX_STATE_CHANGE_PACKETS 8 /* # of packets per state change */
#define MLD_MAX_RESPONSE_PACKETS 16 /* # of packets for general query */
#define MLD_MAX_RESPONSE_BURST 4 /* # of responses to send at once */
-#define MLD_RESPONSE_BURST_INTERVAL (PR_FASTHZ / 2) /* 500ms */
+#define MLD_RESPONSE_BURST_INTERVAL_MS 500
/*
* MLD-specific mbuf flags.
Index: sys/sys/protosw.h
===================================================================
--- sys/sys/protosw.h
+++ sys/sys/protosw.h
@@ -100,6 +100,9 @@
#define PR_SLOWHZ 2 /* 2 slow timeouts per second */
#define PR_FASTHZ 5 /* 5 fast timeouts per second */
+int pr_milli_to_slowtimo(int ms);
+int pr_milli_to_fasttimo(int ms);
+
/*
* This number should be defined again within each protocol family to avoid
* confusion.

File Metadata

Mime Type
text/plain
Expires
Thu, Aug 6, 8:52 AM (13 h, 13 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
36106592
Default Alt Text
D35753.diff (7 KB)

Event Timeline