Lines Matching refs:net
84 static int __net_init sctp_proc_init(struct net *net) in sctp_proc_init() argument
87 net->sctp.proc_net_sctp = proc_net_mkdir(net, "sctp", net->proc_net); in sctp_proc_init()
88 if (!net->sctp.proc_net_sctp) in sctp_proc_init()
90 if (sctp_snmp_proc_init(net)) in sctp_proc_init()
92 if (sctp_eps_proc_init(net)) in sctp_proc_init()
94 if (sctp_assocs_proc_init(net)) in sctp_proc_init()
96 if (sctp_remaddr_proc_init(net)) in sctp_proc_init()
102 sctp_assocs_proc_exit(net); in sctp_proc_init()
104 sctp_eps_proc_exit(net); in sctp_proc_init()
106 sctp_snmp_proc_exit(net); in sctp_proc_init()
108 remove_proc_entry("sctp", net->proc_net); in sctp_proc_init()
109 net->sctp.proc_net_sctp = NULL; in sctp_proc_init()
120 static void sctp_proc_exit(struct net *net) in sctp_proc_exit() argument
123 sctp_snmp_proc_exit(net); in sctp_proc_exit()
124 sctp_eps_proc_exit(net); in sctp_proc_exit()
125 sctp_assocs_proc_exit(net); in sctp_proc_exit()
126 sctp_remaddr_proc_exit(net); in sctp_proc_exit()
128 remove_proc_entry("sctp", net->proc_net); in sctp_proc_exit()
129 net->sctp.proc_net_sctp = NULL; in sctp_proc_exit()
168 static void sctp_get_local_addr_list(struct net *net) in sctp_get_local_addr_list() argument
175 for_each_netdev_rcu(net, dev) { in sctp_get_local_addr_list()
178 af->copy_addrlist(&net->sctp.local_addr_list, dev); in sctp_get_local_addr_list()
185 static void sctp_free_local_addr_list(struct net *net) in sctp_free_local_addr_list() argument
190 list_for_each_safe(pos, temp, &net->sctp.local_addr_list) { in sctp_free_local_addr_list()
198 int sctp_copy_local_addr_list(struct net *net, struct sctp_bind_addr *bp, in sctp_copy_local_addr_list() argument
205 list_for_each_entry_rcu(addr, &net->sctp.local_addr_list, list) { in sctp_copy_local_addr_list()
208 if (sctp_in_scope(net, &addr->a, scope)) { in sctp_copy_local_addr_list()
364 struct net *net = sock_net(&sp->inet.sk); in sctp_v4_available() local
365 int ret = inet_addr_type(net, addr->v4.sin_addr.s_addr); in sctp_v4_available()
371 !net->ipv4.sysctl_ip_nonlocal_bind) in sctp_v4_available()
620 struct net *net = (struct net *)arg; in sctp_addr_wq_timeout_handler() local
624 spin_lock_bh(&net->sctp.addr_wq_lock); in sctp_addr_wq_timeout_handler()
626 list_for_each_entry_safe(addrw, temp, &net->sctp.addr_waitq, list) { in sctp_addr_wq_timeout_handler()
628 "entry:%p\n", __func__, &net->sctp.addr_waitq, &addrw->a.sa, in sctp_addr_wq_timeout_handler()
642 if (ipv6_chk_addr(net, in6, NULL, 0) == 0 && in sctp_addr_wq_timeout_handler()
652 mod_timer(&net->sctp.addr_wq_timer, timeo_val); in sctp_addr_wq_timeout_handler()
657 list_for_each_entry(sp, &net->sctp.auto_asconf_splist, auto_asconf_list) { in sctp_addr_wq_timeout_handler()
675 spin_unlock_bh(&net->sctp.addr_wq_lock); in sctp_addr_wq_timeout_handler()
678 static void sctp_free_addr_wq(struct net *net) in sctp_free_addr_wq() argument
683 spin_lock_bh(&net->sctp.addr_wq_lock); in sctp_free_addr_wq()
684 del_timer(&net->sctp.addr_wq_timer); in sctp_free_addr_wq()
685 list_for_each_entry_safe(addrw, temp, &net->sctp.addr_waitq, list) { in sctp_free_addr_wq()
689 spin_unlock_bh(&net->sctp.addr_wq_lock); in sctp_free_addr_wq()
695 static struct sctp_sockaddr_entry *sctp_addr_wq_lookup(struct net *net, in sctp_addr_wq_lookup() argument
700 list_for_each_entry(addrw, &net->sctp.addr_waitq, list) { in sctp_addr_wq_lookup()
716 void sctp_addr_wq_mgmt(struct net *net, struct sctp_sockaddr_entry *addr, int cmd) in sctp_addr_wq_mgmt() argument
727 spin_lock_bh(&net->sctp.addr_wq_lock); in sctp_addr_wq_mgmt()
729 addrw = sctp_addr_wq_lookup(net, addr); in sctp_addr_wq_mgmt()
734 &net->sctp.addr_waitq); in sctp_addr_wq_mgmt()
739 spin_unlock_bh(&net->sctp.addr_wq_lock); in sctp_addr_wq_mgmt()
746 spin_unlock_bh(&net->sctp.addr_wq_lock); in sctp_addr_wq_mgmt()
750 list_add_tail(&addrw->list, &net->sctp.addr_waitq); in sctp_addr_wq_mgmt()
753 __func__, addrw->state, &addrw->a.sa, &net->sctp.addr_waitq); in sctp_addr_wq_mgmt()
755 if (!timer_pending(&net->sctp.addr_wq_timer)) { in sctp_addr_wq_mgmt()
758 mod_timer(&net->sctp.addr_wq_timer, timeo_val); in sctp_addr_wq_mgmt()
760 spin_unlock_bh(&net->sctp.addr_wq_lock); in sctp_addr_wq_mgmt()
775 struct net *net = dev_net(ifa->ifa_dev->dev); in sctp_inetaddr_event() local
786 spin_lock_bh(&net->sctp.local_addr_lock); in sctp_inetaddr_event()
787 list_add_tail_rcu(&addr->list, &net->sctp.local_addr_list); in sctp_inetaddr_event()
788 sctp_addr_wq_mgmt(net, addr, SCTP_ADDR_NEW); in sctp_inetaddr_event()
789 spin_unlock_bh(&net->sctp.local_addr_lock); in sctp_inetaddr_event()
793 spin_lock_bh(&net->sctp.local_addr_lock); in sctp_inetaddr_event()
795 &net->sctp.local_addr_list, list) { in sctp_inetaddr_event()
799 sctp_addr_wq_mgmt(net, addr, SCTP_ADDR_DEL); in sctp_inetaddr_event()
806 spin_unlock_bh(&net->sctp.local_addr_lock); in sctp_inetaddr_event()
819 static int sctp_ctl_sock_init(struct net *net) in sctp_ctl_sock_init() argument
827 err = inet_ctl_sock_create(&net->sctp.ctl_sock, family, in sctp_ctl_sock_init()
828 SOCK_SEQPACKET, IPPROTO_SCTP, net); in sctp_ctl_sock_init()
832 err = inet_ctl_sock_create(&net->sctp.ctl_sock, AF_INET, in sctp_ctl_sock_init()
834 net); in sctp_ctl_sock_init()
1126 static inline int init_sctp_mibs(struct net *net) in init_sctp_mibs() argument
1128 net->sctp.sctp_statistics = alloc_percpu(struct sctp_mib); in init_sctp_mibs()
1129 if (!net->sctp.sctp_statistics) in init_sctp_mibs()
1134 static inline void cleanup_sctp_mibs(struct net *net) in cleanup_sctp_mibs() argument
1136 free_percpu(net->sctp.sctp_statistics); in cleanup_sctp_mibs()
1191 static int __net_init sctp_defaults_init(struct net *net) in sctp_defaults_init() argument
1200 net->sctp.rto_initial = SCTP_RTO_INITIAL; in sctp_defaults_init()
1202 net->sctp.rto_min = SCTP_RTO_MIN; in sctp_defaults_init()
1204 net->sctp.rto_max = SCTP_RTO_MAX; in sctp_defaults_init()
1206 net->sctp.rto_alpha = SCTP_RTO_ALPHA; in sctp_defaults_init()
1208 net->sctp.rto_beta = SCTP_RTO_BETA; in sctp_defaults_init()
1211 net->sctp.valid_cookie_life = SCTP_DEFAULT_COOKIE_LIFE; in sctp_defaults_init()
1214 net->sctp.cookie_preserve_enable = 1; in sctp_defaults_init()
1218 net->sctp.sctp_hmac_alg = "md5"; in sctp_defaults_init()
1220 net->sctp.sctp_hmac_alg = "sha1"; in sctp_defaults_init()
1222 net->sctp.sctp_hmac_alg = NULL; in sctp_defaults_init()
1226 net->sctp.max_burst = SCTP_DEFAULT_MAX_BURST; in sctp_defaults_init()
1232 net->sctp.max_retrans_association = 10; in sctp_defaults_init()
1233 net->sctp.max_retrans_path = 5; in sctp_defaults_init()
1234 net->sctp.max_retrans_init = 8; in sctp_defaults_init()
1237 net->sctp.sndbuf_policy = 0; in sctp_defaults_init()
1240 net->sctp.rcvbuf_policy = 0; in sctp_defaults_init()
1243 net->sctp.hb_interval = SCTP_DEFAULT_TIMEOUT_HEARTBEAT; in sctp_defaults_init()
1246 net->sctp.sack_timeout = SCTP_DEFAULT_TIMEOUT_SACK; in sctp_defaults_init()
1249 net->sctp.addip_enable = 0; in sctp_defaults_init()
1250 net->sctp.addip_noauth = 0; in sctp_defaults_init()
1251 net->sctp.default_auto_asconf = 0; in sctp_defaults_init()
1254 net->sctp.prsctp_enable = 1; in sctp_defaults_init()
1257 net->sctp.auth_enable = 0; in sctp_defaults_init()
1260 net->sctp.scope_policy = SCTP_SCOPE_POLICY_ENABLE; in sctp_defaults_init()
1263 net->sctp.rwnd_upd_shift = SCTP_DEFAULT_RWND_SHIFT; in sctp_defaults_init()
1266 net->sctp.max_autoclose = INT_MAX / HZ; in sctp_defaults_init()
1268 status = sctp_sysctl_net_register(net); in sctp_defaults_init()
1273 status = init_sctp_mibs(net); in sctp_defaults_init()
1278 status = sctp_proc_init(net); in sctp_defaults_init()
1282 sctp_dbg_objcnt_init(net); in sctp_defaults_init()
1285 INIT_LIST_HEAD(&net->sctp.local_addr_list); in sctp_defaults_init()
1286 spin_lock_init(&net->sctp.local_addr_lock); in sctp_defaults_init()
1287 sctp_get_local_addr_list(net); in sctp_defaults_init()
1290 INIT_LIST_HEAD(&net->sctp.addr_waitq); in sctp_defaults_init()
1291 INIT_LIST_HEAD(&net->sctp.auto_asconf_splist); in sctp_defaults_init()
1292 spin_lock_init(&net->sctp.addr_wq_lock); in sctp_defaults_init()
1293 net->sctp.addr_wq_timer.expires = 0; in sctp_defaults_init()
1294 setup_timer(&net->sctp.addr_wq_timer, sctp_addr_wq_timeout_handler, in sctp_defaults_init()
1295 (unsigned long)net); in sctp_defaults_init()
1300 cleanup_sctp_mibs(net); in sctp_defaults_init()
1302 sctp_sysctl_net_unregister(net); in sctp_defaults_init()
1307 static void __net_exit sctp_defaults_exit(struct net *net) in sctp_defaults_exit() argument
1310 sctp_free_addr_wq(net); in sctp_defaults_exit()
1311 sctp_free_local_addr_list(net); in sctp_defaults_exit()
1313 sctp_dbg_objcnt_exit(net); in sctp_defaults_exit()
1315 sctp_proc_exit(net); in sctp_defaults_exit()
1316 cleanup_sctp_mibs(net); in sctp_defaults_exit()
1317 sctp_sysctl_net_unregister(net); in sctp_defaults_exit()
1325 static int __net_init sctp_ctrlsock_init(struct net *net) in sctp_ctrlsock_init() argument
1330 status = sctp_ctl_sock_init(net); in sctp_ctrlsock_init()
1337 static void __net_init sctp_ctrlsock_exit(struct net *net) in sctp_ctrlsock_exit() argument
1340 inet_ctl_sock_destroy(net->sctp.ctl_sock); in sctp_ctrlsock_exit()