Author: tuexen
Date: Sat Nov 20 21:44:18 2010
New Revision: 215596
URL: http://svn.freebsd.org/changeset/base/215596

Log:
  MFC r215410:
  Add an SCTP socket option to retrieve the number of timeouts
  of an association.

Modified:
  stable/8/sys/netinet/sctp.h
  stable/8/sys/netinet/sctp_uio.h
  stable/8/sys/netinet/sctp_usrreq.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/netinet/sctp.h
==============================================================================
--- stable/8/sys/netinet/sctp.h Sat Nov 20 21:41:07 2010        (r215595)
+++ stable/8/sys/netinet/sctp.h Sat Nov 20 21:44:18 2010        (r215596)
@@ -123,6 +123,7 @@ struct sctp_paramhdr {
 #define SCTP_LOCAL_AUTH_CHUNKS                 0x00000103
 #define SCTP_GET_ASSOC_NUMBER           0x00000104     /* ro */
 #define SCTP_GET_ASSOC_ID_LIST          0x00000105     /* ro */
+#define SCTP_TIMEOUTS                   0x00000106
 
 /*
  * user socket options: BSD implementation specific

Modified: stable/8/sys/netinet/sctp_uio.h
==============================================================================
--- stable/8/sys/netinet/sctp_uio.h     Sat Nov 20 21:41:07 2010        
(r215595)
+++ stable/8/sys/netinet/sctp_uio.h     Sat Nov 20 21:44:18 2010        
(r215596)
@@ -563,6 +563,17 @@ struct sctp_sack_info {
        uint32_t sack_freq;
 };
 
+struct sctp_timeouts {
+       sctp_assoc_t stimo_assoc_id;
+       uint32_t stimo_init;
+       uint32_t stimo_data;
+       uint32_t stimo_sack;
+       uint32_t stimo_shutdown;
+       uint32_t stimo_heartbeat;
+       uint32_t stimo_cookie;
+       uint32_t stimo_shutdownack;
+};
+
 struct sctp_cwnd_args {
        struct sctp_nets *net;  /* network to *//* FIXME: LP64 issue */
        uint32_t cwnd_new_value;/* cwnd in k */

Modified: stable/8/sys/netinet/sctp_usrreq.c
==============================================================================
--- stable/8/sys/netinet/sctp_usrreq.c  Sat Nov 20 21:41:07 2010        
(r215595)
+++ stable/8/sys/netinet/sctp_usrreq.c  Sat Nov 20 21:44:18 2010        
(r215596)
@@ -2441,6 +2441,29 @@ flags_out:
                        *optsize = sizeof(*srto);
                }
                break;
+       case SCTP_TIMEOUTS:
+               {
+                       struct sctp_timeouts *stimo;
+
+                       SCTP_CHECK_AND_CAST(stimo, optval, struct 
sctp_timeouts, *optsize);
+                       SCTP_FIND_STCB(inp, stcb, stimo->stimo_assoc_id);
+
+                       if (stcb) {
+                               stimo->stimo_init = stcb->asoc.timoinit;
+                               stimo->stimo_data = stcb->asoc.timodata;
+                               stimo->stimo_sack = stcb->asoc.timosack;
+                               stimo->stimo_shutdown = stcb->asoc.timoshutdown;
+                               stimo->stimo_heartbeat = 
stcb->asoc.timoheartbeat;
+                               stimo->stimo_cookie = stcb->asoc.timocookie;
+                               stimo->stimo_shutdownack = 
stcb->asoc.timoshutdownack;
+                               SCTP_TCB_UNLOCK(stcb);
+                       } else {
+                               SCTP_LTRACE_ERR_RET(inp, NULL, NULL, 
SCTP_FROM_SCTP_USRREQ, error);
+                               error = EINVAL;
+                       }
+                       *optsize = sizeof(*stimo);
+               }
+               break;
        case SCTP_ASSOCINFO:
                {
                        struct sctp_assocparams *sasoc;
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to