Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
sctp.h
Go to the documentation of this file.
1 #ifndef __NETNS_SCTP_H__
2 #define __NETNS_SCTP_H__
3 
4 struct sock;
5 struct proc_dir_entry;
6 struct sctp_mib;
7 struct ctl_table_header;
8 
9 struct netns_sctp {
10  DEFINE_SNMP_STAT(struct sctp_mib, sctp_statistics);
11 
12 #ifdef CONFIG_PROC_FS
13  struct proc_dir_entry *proc_net_sctp;
14 #endif
15 #ifdef CONFIG_SYSCTL
16  struct ctl_table_header *sysctl_header;
17 #endif
18  /* This is the global socket data structure used for responding to
19  * the Out-of-the-blue (OOTB) packets. A control sock will be created
20  * for this socket at the initialization time.
21  */
22  struct sock *ctl_sock;
23 
24  /* This is the global local address list.
25  * We actively maintain this complete list of addresses on
26  * the system by catching address add/delete events.
27  *
28  * It is a list of sctp_sockaddr_entry.
29  */
35 
36  /* Lock that protects the local_addr_list writers */
38 
39  /* RFC2960 Section 14. Suggested SCTP Protocol Parameter Values
40  *
41  * The following protocol parameters are RECOMMENDED:
42  *
43  * RTO.Initial - 3 seconds
44  * RTO.Min - 1 second
45  * RTO.Max - 60 seconds
46  * RTO.Alpha - 1/8 (3 when converted to right shifts.)
47  * RTO.Beta - 1/4 (2 when converted to right shifts.)
48  */
49  unsigned int rto_initial;
50  unsigned int rto_min;
51  unsigned int rto_max;
52 
53  /* Note: rto_alpha and rto_beta are really defined as inverse
54  * powers of two to facilitate integer operations.
55  */
56  int rto_alpha;
57  int rto_beta;
58 
59  /* Max.Burst - 4 */
60  int max_burst;
61 
62  /* Whether Cookie Preservative is enabled(1) or not(0) */
64 
65  /* Valid.Cookie.Life - 60 seconds */
66  unsigned int valid_cookie_life;
67 
68  /* Delayed SACK timeout 200ms default*/
69  unsigned int sack_timeout;
70 
71  /* HB.interval - 30 seconds */
72  unsigned int hb_interval;
73 
74  /* Association.Max.Retrans - 10 attempts
75  * Path.Max.Retrans - 5 attempts (per destination address)
76  * Max.Init.Retransmits - 8 attempts
77  */
81  /* Potentially-Failed.Max.Retrans sysctl value
82  * taken from:
83  * http://tools.ietf.org/html/draft-nishida-tsvwg-sctp-failover-05
84  */
86 
87  /*
88  * Policy for preforming sctp/socket accounting
89  * 0 - do socket level accounting, all assocs share sk_sndbuf
90  * 1 - do sctp accounting, each asoc may use sk_sndbuf bytes
91  */
93 
94  /*
95  * Policy for preforming sctp/socket accounting
96  * 0 - do socket level accounting, all assocs share sk_rcvbuf
97  * 1 - do sctp accounting, each asoc may use sk_rcvbuf bytes
98  */
100 
102 
103  /* Flag to indicate if addip is enabled. */
106 
107  /* Flag to indicate if PR-SCTP is enabled. */
109 
110  /* Flag to idicate if SCTP-AUTH is enabled */
112 
113  /*
114  * Policy to control SCTP IPv4 address scoping
115  * 0 - Disable IPv4 address scoping
116  * 1 - Enable IPv4 address scoping
117  * 2 - Selectively allow only IPv4 private addresses
118  * 3 - Selectively allow only IPv4 link local address
119  */
121 
122  /* Threshold for rwnd update SACKS. Receive buffer shifted this many
123  * bits is an indicator of when to send and window update SACK.
124  */
126 
127  /* Threshold for autoclose timeout, in seconds. */
128  unsigned long max_autoclose;
129 };
130 
131 #endif /* __NETNS_SCTP_H__ */