Commit | Line | Data |
---|---|---|
4db67e80 EB |
1 | #ifndef __NETNS_SCTP_H__ |
2 | #define __NETNS_SCTP_H__ | |
3 | ||
2ce95503 | 4 | struct sock; |
13d782f6 | 5 | struct proc_dir_entry; |
b01a2407 | 6 | struct sctp_mib; |
ebb7e95d | 7 | struct ctl_table_header; |
2ce95503 | 8 | |
4db67e80 | 9 | struct netns_sctp { |
b01a2407 EB |
10 | DEFINE_SNMP_STAT(struct sctp_mib, sctp_statistics); |
11 | ||
13d782f6 EB |
12 | #ifdef CONFIG_PROC_FS |
13 | struct proc_dir_entry *proc_net_sctp; | |
14 | #endif | |
ebb7e95d EB |
15 | #ifdef CONFIG_SYSCTL |
16 | struct ctl_table_header *sysctl_header; | |
17 | #endif | |
2ce95503 EB |
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 | ||
4db67e80 EB |
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; | |
ebb7e95d | 38 | |
e1fc3b14 EB |
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; | |
4db67e80 EB |
129 | }; |
130 | ||
131 | #endif /* __NETNS_SCTP_H__ */ |