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 */ 30 struct list_head local_addr_list; 31 struct list_head addr_waitq; 32 struct timer_list addr_wq_timer; 33 struct list_head auto_asconf_splist; 34 spinlock_t addr_wq_lock; 35 36 /* Lock that protects the local_addr_list writers */ 37 spinlock_t local_addr_lock; 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) */ 63 int cookie_preserve_enable; 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 */ 78 int max_retrans_association; 79 int max_retrans_path; 80 int max_retrans_init; 81 /* Potentially-Failed.Max.Retrans sysctl value 82 * taken from: 83 * http://tools.ietf.org/html/draft-nishida-tsvwg-sctp-failover-05 84 */ 85 int pf_retrans; 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 */ 92 int sndbuf_policy; 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 */ 99 int rcvbuf_policy; 100 101 int default_auto_asconf; 102 103 /* Flag to indicate if addip is enabled. */ 104 int addip_enable; 105 int addip_noauth; 106 107 /* Flag to indicate if PR-SCTP is enabled. */ 108 int prsctp_enable; 109 110 /* Flag to idicate if SCTP-AUTH is enabled */ 111 int auth_enable; 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 */ 120 int scope_policy; 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 */ 125 int rwnd_upd_shift; 126 127 /* Threshold for autoclose timeout, in seconds. */ 128 unsigned long max_autoclose; 129 }; 130 131 #endif /* __NETNS_SCTP_H__ */ 132