From e1de0a1edadaa9d67f677c0aa3a582c9bcc34b9c Mon Sep 17 00:00:00 2001
From: rrs <rrs@FreeBSD.org>
Date: Sat, 8 Sep 2007 17:48:46 +0000
Subject: - send call has a reference to uio->uio_resid in   the recent send
 code, but uio may be NULL on sendfile   calls. Change to use sndlen variable.
 - EMSGSIZE is not being returned in non-blocking mode   and needs a small
 tweak to look if the msg would   ever fit when returning EWOULDBLOCK. -
 FWD-TSN has a bug in stream processing which could   cause a panic. This is a
 follow on to the codenomicon   fix. - PDAPI level 1 and 2 do not work unless
 the reader   gets his returned buffer full. Fix so we can break   out when at
 level 1 or 2. - Fix fast-handoff features to copy across properly on  
 accepted sockets - Fix sctp_peeloff() system call when no true system call  
 exists to screen arguments for errors. In cases where a   real system call
 exists the system call itself does this. - Fix raddr leak in recent add-ip
 code change for bundled   asconfs (even when non-bundled asconfs are
 received) - Make sure ipi_addr lock is held when walking global addr   list.
 Need to change this lock type to a rwlock(). - Add don't wake flag on both
 input and output when the   socket is closing. - When deleting an address
 verify the interface is correct   before allowing the delete to process. This
 protects panda   and unnumbered. - Clean up old sysctl stuff and get rid of
 the old Open/Net   BSD structures. - Add a function to watch the ranges in
 the sysctl sets. - When appending in the reassembly queue, validate that  
 the assoc has not gone to about to be freed. If so   (in the middle) abort
 out. Note this especially effects   MAC I think due to the lock/unlock they
 do (or with   LOCK testing in place). - Netstat patch to get rid of warnings.
 - Make sure that no data gets queued to inactive/unconfirmed   destinations.
 This especially effect CMT but also makes a   impact on regular SCTP as well.
 - During init collision when we detect seq number out   of sync we need to
 treat it like Case C and discard   the cookie (no invarient needed here). -
 Atomic access to the random store. - When we declare a vtag good, we need to
 shove it   into the time wait hash to prevent further use. When   the tag is
 put into the assoc hash, we need to remove it   from the twait hash (where it
 will surely be). This prevents   duplicate tag assignments. - Move decr-ref
 count to better protect sysctl out of   data. - ltrace error corrections in
 sctp6_usrreq.c - Add hook for interface up/down to be sent to us. - Make
 sysctl() exported structures independent of processor   architecture. - Fix
 route and src addr cache clearing for delete address case. - Make sure
 address marked SCTP_DEL_IP_ADDRESS is never selected   as src addr. - in icmp
 handling fixed so we actually look at the icmp codes   to figure out what to
 do. - Modified mobility code.   Reception of DELETE IP ADDRESS for a primary
 destination and   SET PRIMARY for a new primary destination is used for  
 retransmission trigger to the new primary destination.   Also, in this case,
 destination of chunks in send_queue are   changed to the new primary
 destination. - Fix so that we disallow sending by mbuf to ever have EEOR  
 mode set upon it.

Approved by:	re@freebsd.org (B Mah)
---
 sys/netinet/sctp_structs.h | 3 +++
 1 file changed, 3 insertions(+)

(limited to 'sys/netinet/sctp_structs.h')

diff --git a/sys/netinet/sctp_structs.h b/sys/netinet/sctp_structs.h
index 217f5a0..09e08f0 100644
--- a/sys/netinet/sctp_structs.h
+++ b/sys/netinet/sctp_structs.h
@@ -584,12 +584,15 @@ struct sctp_association {
 	struct sctp_timer shut_guard_timer;	/* shutdown guard */
 	struct sctp_timer autoclose_timer;	/* automatic close timer */
 	struct sctp_timer delayed_event_timer;	/* timer for delayed events */
+	struct sctp_timer delete_prim_timer;	/* deleting primary dst */
 
 	/* list of restricted local addresses */
 	struct sctpladdr sctp_restricted_addrs;
 
 	/* last local address pending deletion (waiting for an address add) */
 	struct sctp_ifa *asconf_addr_del_pending;
+	/* Deleted primary destination (used to stop timer) */
+	struct sctp_nets *deleted_primary;
 
 	struct sctpnetlisthead nets;	/* remote address list */
 
-- 
cgit v1.1