Re: [PATCH v2] sctp: Implement quick failover draft from tsvwg
From: Joe Perches <joe@perches.com>
Date: 2012-07-18 20:31:00
Also in:
linux-sctp
On Wed, 2012-07-18 at 14:01 -0400, Neil Horman wrote:
I've seen several attempts recently made to do quick failover of sctp transports by reducing various retransmit timers and counters. While its possible to implement a faster failover on multihomed sctp associations, its not particularly robust, in that it can lead to unneeded retransmits, as well as false connection failures due to intermittent latency on a network.
trivia:
quoted hunk ↗ jump to hunk
diff --git a/net/sctp/associola.c b/net/sctp/associola.c
quoted hunk ↗ jump to hunk
@@ -871,6 +885,10 @@ void sctp_assoc_control_transport(struct sctp_association *asoc, spc_state = SCTP_ADDR_UNREACHABLE; break; + case SCTP_TRANSPORT_PF: + transport->state = SCTP_PF; + ulp_notify = false; + break;
nicer to add a newline here
quoted hunk ↗ jump to hunk
default: return; }@@ -878,12 +896,15 @@ void sctp_assoc_control_transport(struct sctp_association *asoc,
[]
+ if (ulp_notify) {
+ memset(&addr, 0, sizeof(struct sockaddr_storage));
+ memcpy(&addr, &transport->ipaddr,
+ transport->af_specific->sockaddr_len);Perhaps it's better to do the memcpy then the memset of the space left instead. memcpy(&addr, &transport->ipaddr, transport->af_specific->sockaddr_len); memset((char *)&addr) + transport->af_specific->sockaddr_len, 0, sizeof(struct sockaddr_storage) - transport->af_specific->sockaddr_len);