]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
4db67e80 EB |
2 | #ifndef __NETNS_SCTP_H__ |
3 | #define __NETNS_SCTP_H__ | |
4 | ||
2ce95503 | 5 | struct sock; |
13d782f6 | 6 | struct proc_dir_entry; |
b01a2407 | 7 | struct sctp_mib; |
ebb7e95d | 8 | struct ctl_table_header; |
2ce95503 | 9 | |
4db67e80 | 10 | struct netns_sctp { |
b01a2407 EB |
11 | DEFINE_SNMP_STAT(struct sctp_mib, sctp_statistics); |
12 | ||
13d782f6 EB |
13 | #ifdef CONFIG_PROC_FS |
14 | struct proc_dir_entry *proc_net_sctp; | |
15 | #endif | |
ebb7e95d EB |
16 | #ifdef CONFIG_SYSCTL |
17 | struct ctl_table_header *sysctl_header; | |
18 | #endif | |
2ce95503 EB |
19 | /* This is the global socket data structure used for responding to |
20 | * the Out-of-the-blue (OOTB) packets. A control sock will be created | |
21 | * for this socket at the initialization time. | |
22 | */ | |
23 | struct sock *ctl_sock; | |
24 | ||
4db67e80 EB |
25 | /* This is the global local address list. |
26 | * We actively maintain this complete list of addresses on | |
27 | * the system by catching address add/delete events. | |
28 | * | |
29 | * It is a list of sctp_sockaddr_entry. | |
30 | */ | |
31 | struct list_head local_addr_list; | |
32 | struct list_head addr_waitq; | |
33 | struct timer_list addr_wq_timer; | |
34 | struct list_head auto_asconf_splist; | |
2d45a02d | 35 | /* Lock that protects both addr_waitq and auto_asconf_splist */ |
4db67e80 EB |
36 | spinlock_t addr_wq_lock; |
37 | ||
38 | /* Lock that protects the local_addr_list writers */ | |
39 | spinlock_t local_addr_lock; | |
ebb7e95d | 40 | |
e1fc3b14 EB |
41 | /* RFC2960 Section 14. Suggested SCTP Protocol Parameter Values |
42 | * | |
43 | * The following protocol parameters are RECOMMENDED: | |
44 | * | |
45 | * RTO.Initial - 3 seconds | |
46 | * RTO.Min - 1 second | |
47 | * RTO.Max - 60 seconds | |
48 | * RTO.Alpha - 1/8 (3 when converted to right shifts.) | |
49 | * RTO.Beta - 1/4 (2 when converted to right shifts.) | |
50 | */ | |
51 | unsigned int rto_initial; | |
52 | unsigned int rto_min; | |
53 | unsigned int rto_max; | |
54 | ||
55 | /* Note: rto_alpha and rto_beta are really defined as inverse | |
56 | * powers of two to facilitate integer operations. | |
57 | */ | |
58 | int rto_alpha; | |
59 | int rto_beta; | |
60 | ||
61 | /* Max.Burst - 4 */ | |
62 | int max_burst; | |
63 | ||
64 | /* Whether Cookie Preservative is enabled(1) or not(0) */ | |
65 | int cookie_preserve_enable; | |
66 | ||
3c68198e NH |
67 | /* The namespace default hmac alg */ |
68 | char *sctp_hmac_alg; | |
69 | ||
e1fc3b14 EB |
70 | /* Valid.Cookie.Life - 60 seconds */ |
71 | unsigned int valid_cookie_life; | |
72 | ||
73 | /* Delayed SACK timeout 200ms default*/ | |
74 | unsigned int sack_timeout; | |
75 | ||
76 | /* HB.interval - 30 seconds */ | |
77 | unsigned int hb_interval; | |
78 | ||
79 | /* Association.Max.Retrans - 10 attempts | |
80 | * Path.Max.Retrans - 5 attempts (per destination address) | |
81 | * Max.Init.Retransmits - 8 attempts | |
82 | */ | |
83 | int max_retrans_association; | |
84 | int max_retrans_path; | |
85 | int max_retrans_init; | |
86 | /* Potentially-Failed.Max.Retrans sysctl value | |
87 | * taken from: | |
88 | * http://tools.ietf.org/html/draft-nishida-tsvwg-sctp-failover-05 | |
89 | */ | |
90 | int pf_retrans; | |
91 | ||
566178f8 ZY |
92 | /* |
93 | * Disable Potentially-Failed feature, the feature is enabled by default | |
94 | * pf_enable - 0 : disable pf | |
95 | * - >0 : enable pf | |
96 | */ | |
97 | int pf_enable; | |
98 | ||
e1fc3b14 EB |
99 | /* |
100 | * Policy for preforming sctp/socket accounting | |
101 | * 0 - do socket level accounting, all assocs share sk_sndbuf | |
102 | * 1 - do sctp accounting, each asoc may use sk_sndbuf bytes | |
103 | */ | |
104 | int sndbuf_policy; | |
105 | ||
106 | /* | |
107 | * Policy for preforming sctp/socket accounting | |
108 | * 0 - do socket level accounting, all assocs share sk_rcvbuf | |
109 | * 1 - do sctp accounting, each asoc may use sk_rcvbuf bytes | |
110 | */ | |
111 | int rcvbuf_policy; | |
112 | ||
113 | int default_auto_asconf; | |
114 | ||
115 | /* Flag to indicate if addip is enabled. */ | |
116 | int addip_enable; | |
117 | int addip_noauth; | |
118 | ||
119 | /* Flag to indicate if PR-SCTP is enabled. */ | |
120 | int prsctp_enable; | |
121 | ||
c28445c3 XL |
122 | /* Flag to indicate if PR-CONFIG is enabled. */ |
123 | int reconf_enable; | |
124 | ||
e1fc3b14 EB |
125 | /* Flag to idicate if SCTP-AUTH is enabled */ |
126 | int auth_enable; | |
127 | ||
128 | /* | |
129 | * Policy to control SCTP IPv4 address scoping | |
130 | * 0 - Disable IPv4 address scoping | |
131 | * 1 - Enable IPv4 address scoping | |
132 | * 2 - Selectively allow only IPv4 private addresses | |
133 | * 3 - Selectively allow only IPv4 link local address | |
134 | */ | |
135 | int scope_policy; | |
136 | ||
137 | /* Threshold for rwnd update SACKS. Receive buffer shifted this many | |
138 | * bits is an indicator of when to send and window update SACK. | |
139 | */ | |
140 | int rwnd_upd_shift; | |
141 | ||
142 | /* Threshold for autoclose timeout, in seconds. */ | |
143 | unsigned long max_autoclose; | |
4db67e80 EB |
144 | }; |
145 | ||
146 | #endif /* __NETNS_SCTP_H__ */ |