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 /* Lock that protects both addr_waitq and auto_asconf_splist */ 35 spinlock_t addr_wq_lock; 36 37 /* Lock that protects the local_addr_list writers */ 38 spinlock_t local_addr_lock; 39 40 /* RFC2960 Section 14. Suggested SCTP Protocol Parameter Values 41 * 42 * The following protocol parameters are RECOMMENDED: 43 * 44 * RTO.Initial - 3 seconds 45 * RTO.Min - 1 second 46 * RTO.Max - 60 seconds 47 * RTO.Alpha - 1/8 (3 when converted to right shifts.) 48 * RTO.Beta - 1/4 (2 when converted to right shifts.) 49 */ 50 unsigned int rto_initial; 51 unsigned int rto_min; 52 unsigned int rto_max; 53 54 /* Note: rto_alpha and rto_beta are really defined as inverse 55 * powers of two to facilitate integer operations. 56 */ 57 int rto_alpha; 58 int rto_beta; 59 60 /* Max.Burst - 4 */ 61 int max_burst; 62 63 /* Whether Cookie Preservative is enabled(1) or not(0) */ 64 int cookie_preserve_enable; 65 66 /* The namespace default hmac alg */ 67 char *sctp_hmac_alg; 68 69 /* Valid.Cookie.Life - 60 seconds */ 70 unsigned int valid_cookie_life; 71 72 /* Delayed SACK timeout 200ms default*/ 73 unsigned int sack_timeout; 74 75 /* HB.interval - 30 seconds */ 76 unsigned int hb_interval; 77 78 /* Association.Max.Retrans - 10 attempts 79 * Path.Max.Retrans - 5 attempts (per destination address) 80 * Max.Init.Retransmits - 8 attempts 81 */ 82 int max_retrans_association; 83 int max_retrans_path; 84 int max_retrans_init; 85 /* Potentially-Failed.Max.Retrans sysctl value 86 * taken from: 87 * http://tools.ietf.org/html/draft-nishida-tsvwg-sctp-failover-05 88 */ 89 int pf_retrans; 90 91 /* 92 * Policy for preforming sctp/socket accounting 93 * 0 - do socket level accounting, all assocs share sk_sndbuf 94 * 1 - do sctp accounting, each asoc may use sk_sndbuf bytes 95 */ 96 int sndbuf_policy; 97 98 /* 99 * Policy for preforming sctp/socket accounting 100 * 0 - do socket level accounting, all assocs share sk_rcvbuf 101 * 1 - do sctp accounting, each asoc may use sk_rcvbuf bytes 102 */ 103 int rcvbuf_policy; 104 105 int default_auto_asconf; 106 107 /* Flag to indicate if addip is enabled. */ 108 int addip_enable; 109 int addip_noauth; 110 111 /* Flag to indicate if PR-SCTP is enabled. */ 112 int prsctp_enable; 113 114 /* Flag to idicate if SCTP-AUTH is enabled */ 115 int auth_enable; 116 117 /* 118 * Policy to control SCTP IPv4 address scoping 119 * 0 - Disable IPv4 address scoping 120 * 1 - Enable IPv4 address scoping 121 * 2 - Selectively allow only IPv4 private addresses 122 * 3 - Selectively allow only IPv4 link local address 123 */ 124 int scope_policy; 125 126 /* Threshold for rwnd update SACKS. Receive buffer shifted this many 127 * bits is an indicator of when to send and window update SACK. 128 */ 129 int rwnd_upd_shift; 130 131 /* Threshold for autoclose timeout, in seconds. */ 132 unsigned long max_autoclose; 133 }; 134 135 #endif /* __NETNS_SCTP_H__ */ 136