svn commit: r332212 - stable/11/sys/netinet
Michael Tuexen
tuexen at FreeBSD.org
Sat Apr 7 19:44:42 UTC 2018
Author: tuexen
Date: Sat Apr 7 19:44:41 2018
New Revision: 332212
URL: https://svnweb.freebsd.org/changeset/base/332212
Log:
MFC r324615:
Code cleanup, not functional change.
This avoids taking a pointer of a packed structure which allows simpler
compilation of the userland stack.
Modified:
stable/11/sys/netinet/sctp_constants.h
stable/11/sys/netinet/sctp_indata.c
stable/11/sys/netinet/sctp_input.c
stable/11/sys/netinet/sctp_output.c
stable/11/sys/netinet/sctputil.c
stable/11/sys/netinet/sctputil.h
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/sys/netinet/sctp_constants.h
==============================================================================
--- stable/11/sys/netinet/sctp_constants.h Sat Apr 7 19:42:53 2018 (r332211)
+++ stable/11/sys/netinet/sctp_constants.h Sat Apr 7 19:44:41 2018 (r332212)
@@ -97,10 +97,6 @@ __FBSDID("$FreeBSD$");
*/
#define SCTP_DEFAULT_VRF_SIZE 4
-/* constants for rto calc */
-#define sctp_align_safe_nocopy 0
-#define sctp_align_unsafe_makecopy 1
-
/* JRS - Values defined for the HTCP algorithm */
#define ALPHA_BASE (1<<7) /* 1.0 with shift << 7 */
#define BETA_MIN (1<<6) /* 0.5 with shift << 7 */
Modified: stable/11/sys/netinet/sctp_indata.c
==============================================================================
--- stable/11/sys/netinet/sctp_indata.c Sat Apr 7 19:42:53 2018 (r332211)
+++ stable/11/sys/netinet/sctp_indata.c Sat Apr 7 19:44:41 2018 (r332212)
@@ -3058,7 +3058,6 @@ sctp_process_segment_range(struct sctp_tcb *stcb, stru
&stcb->asoc,
tp1->whoTo,
&tp1->sent_rcv_time,
- sctp_align_safe_nocopy,
SCTP_RTT_FROM_DATA);
*rto_ok = 0;
}
@@ -4030,7 +4029,6 @@ sctp_express_handle_sack(struct sctp_tcb *stcb, uint32
sctp_calculate_rto(stcb,
asoc, tp1->whoTo,
&tp1->sent_rcv_time,
- sctp_align_safe_nocopy,
SCTP_RTT_FROM_DATA);
rto_ok = 0;
}
@@ -4636,7 +4634,6 @@ hopeless_peer:
sctp_calculate_rto(stcb,
asoc, tp1->whoTo,
&tp1->sent_rcv_time,
- sctp_align_safe_nocopy,
SCTP_RTT_FROM_DATA);
rto_ok = 0;
}
Modified: stable/11/sys/netinet/sctp_input.c
==============================================================================
--- stable/11/sys/netinet/sctp_input.c Sat Apr 7 19:42:53 2018 (r332211)
+++ stable/11/sys/netinet/sctp_input.c Sat Apr 7 19:44:41 2018 (r332212)
@@ -519,7 +519,7 @@ sctp_process_init_ack(struct mbuf *m, int iphlen, int
asoc->primary_destination, SCTP_FROM_SCTP_INPUT + SCTP_LOC_3);
/* calculate the RTO */
- net->RTO = sctp_calculate_rto(stcb, asoc, net, &asoc->time_entered, sctp_align_safe_nocopy,
+ net->RTO = sctp_calculate_rto(stcb, asoc, net, &asoc->time_entered,
SCTP_RTT_FROM_NON_DATA);
retval = sctp_send_cookie_echo(m, offset, stcb, net);
if (retval < 0) {
@@ -641,7 +641,7 @@ sctp_handle_heartbeat_ack(struct sctp_heartbeat_chunk
tv.tv_sec = cp->heartbeat.hb_info.time_value_1;
tv.tv_usec = cp->heartbeat.hb_info.time_value_2;
/* Now lets do a RTO with this */
- r_net->RTO = sctp_calculate_rto(stcb, &stcb->asoc, r_net, &tv, sctp_align_safe_nocopy,
+ r_net->RTO = sctp_calculate_rto(stcb, &stcb->asoc, r_net, &tv,
SCTP_RTT_FROM_NON_DATA);
if (!(r_net->dest_state & SCTP_ADDR_REACHABLE)) {
r_net->dest_state |= SCTP_ADDR_REACHABLE;
@@ -1489,6 +1489,7 @@ sctp_process_cookie_existing(struct mbuf *m, int iphle
struct sctp_init_ack_chunk *initack_cp, initack_buf;
struct sctp_nets *net;
struct mbuf *op_err;
+ struct timeval old;
int init_offset, initack_offset, i;
int retval;
int spec_flag = 0;
@@ -1650,10 +1651,11 @@ sctp_process_cookie_existing(struct mbuf *m, int iphle
* since we did not send a HB make sure we don't
* double things
*/
+ old.tv_sec = cookie->time_entered.tv_sec;
+ old.tv_usec = cookie->time_entered.tv_usec;
net->hb_responded = 1;
net->RTO = sctp_calculate_rto(stcb, asoc, net,
- &cookie->time_entered,
- sctp_align_unsafe_makecopy,
+ &old,
SCTP_RTT_FROM_NON_DATA);
if (stcb->asoc.sctp_autoclose_ticks &&
@@ -2370,10 +2372,13 @@ sctp_process_cookie_new(struct mbuf *m, int iphlen, in
}
(void)SCTP_GETTIME_TIMEVAL(&stcb->asoc.time_entered);
if ((netp != NULL) && (*netp != NULL)) {
+ struct timeval old;
+
/* calculate the RTT and set the encaps port */
+ old.tv_sec = cookie->time_entered.tv_sec;
+ old.tv_usec = cookie->time_entered.tv_usec;
(*netp)->RTO = sctp_calculate_rto(stcb, asoc, *netp,
- &cookie->time_entered, sctp_align_unsafe_makecopy,
- SCTP_RTT_FROM_NON_DATA);
+ &old, SCTP_RTT_FROM_NON_DATA);
}
/* respond with a COOKIE-ACK */
sctp_send_cookie_ack(stcb);
@@ -2939,7 +2944,7 @@ sctp_handle_cookie_ack(struct sctp_cookie_ack_chunk *c
SCTP_STAT_INCR_GAUGE32(sctps_currestab);
if (asoc->overall_error_count == 0) {
net->RTO = sctp_calculate_rto(stcb, asoc, net,
- &asoc->time_entered, sctp_align_safe_nocopy,
+ &asoc->time_entered,
SCTP_RTT_FROM_NON_DATA);
}
(void)SCTP_GETTIME_TIMEVAL(&asoc->time_entered);
Modified: stable/11/sys/netinet/sctp_output.c
==============================================================================
--- stable/11/sys/netinet/sctp_output.c Sat Apr 7 19:42:53 2018 (r332211)
+++ stable/11/sys/netinet/sctp_output.c Sat Apr 7 19:44:41 2018 (r332212)
@@ -5501,6 +5501,7 @@ sctp_send_initiate_ack(struct sctp_inpcb *inp, struct
struct sctp_paramhdr *ph;
union sctp_sockstore *over_addr;
struct sctp_scoping scp;
+ struct timeval now;
#ifdef INET
struct sockaddr_in *dst4 = (struct sockaddr_in *)dst;
struct sockaddr_in *src4 = (struct sockaddr_in *)src;
@@ -5601,7 +5602,9 @@ do_a_abort:
memset(&stc, 0, sizeof(struct sctp_state_cookie));
/* the time I built cookie */
- (void)SCTP_GETTIME_TIMEVAL(&stc.time_entered);
+ (void)SCTP_GETTIME_TIMEVAL(&now);
+ stc.time_entered.tv_sec = now.tv_sec;
+ stc.time_entered.tv_usec = now.tv_usec;
/* populate any tie tags */
if (asoc != NULL) {
Modified: stable/11/sys/netinet/sctputil.c
==============================================================================
--- stable/11/sys/netinet/sctputil.c Sat Apr 7 19:42:53 2018 (r332211)
+++ stable/11/sys/netinet/sctputil.c Sat Apr 7 19:44:41 2018 (r332212)
@@ -2422,8 +2422,8 @@ uint32_t
sctp_calculate_rto(struct sctp_tcb *stcb,
struct sctp_association *asoc,
struct sctp_nets *net,
- struct timeval *told,
- int safe, int rtt_from_sack)
+ struct timeval *old,
+ int rtt_from_sack)
{
/*-
* given an association and the starting time of the current RTT
@@ -2432,19 +2432,8 @@ sctp_calculate_rto(struct sctp_tcb *stcb,
int32_t rtt; /* RTT in ms */
uint32_t new_rto;
int first_measure = 0;
- struct timeval now, then, *old;
+ struct timeval now;
- /* Copy it out for sparc64 */
- if (safe == sctp_align_unsafe_makecopy) {
- old = &then;
- memcpy(&then, told, sizeof(struct timeval));
- } else if (safe == sctp_align_safe_nocopy) {
- old = told;
- } else {
- /* error */
- SCTP_PRINTF("Huh, bad rto calc call\n");
- return (0);
- }
/************************/
/* 1. calculate new RTT */
/************************/
Modified: stable/11/sys/netinet/sctputil.h
==============================================================================
--- stable/11/sys/netinet/sctputil.h Sat Apr 7 19:42:53 2018 (r332211)
+++ stable/11/sys/netinet/sctputil.h Sat Apr 7 19:44:41 2018 (r332212)
@@ -135,7 +135,7 @@ void
uint32_t
sctp_calculate_rto(struct sctp_tcb *, struct sctp_association *,
- struct sctp_nets *, struct timeval *, int, int);
+ struct sctp_nets *, struct timeval *, int);
uint32_t sctp_calculate_len(struct mbuf *);
More information about the svn-src-stable
mailing list