Lines Matching refs:ipst

379 ipcl_init(ip_stack_t *ipst)  in ipcl_init()  argument
388 ipst->ips_ipcl_conn_fanout_size = ipcl_conn_hash_size; in ipcl_init()
390 ipst->ips_ipcl_conn_fanout_size = tcp_conn_hash_size; in ipcl_init()
394 ipst->ips_ipcl_conn_fanout_size = in ipcl_init()
397 if (ipst->ips_ipcl_conn_fanout_size > ipcl_conn_hash_maxsize) { in ipcl_init()
398 ipst->ips_ipcl_conn_fanout_size = in ipcl_init()
404 if (sizes[i] >= ipst->ips_ipcl_conn_fanout_size) { in ipcl_init()
408 if ((ipst->ips_ipcl_conn_fanout_size = sizes[i]) == 0) { in ipcl_init()
410 ipst->ips_ipcl_conn_fanout_size = sizes[16]; in ipcl_init()
414 ipst->ips_ipcl_bind_fanout_size = ipcl_bind_fanout_size; in ipcl_init()
415 ipst->ips_ipcl_udp_fanout_size = ipcl_udp_fanout_size; in ipcl_init()
416 ipst->ips_ipcl_raw_fanout_size = ipcl_raw_fanout_size; in ipcl_init()
417 ipst->ips_ipcl_iptun_fanout_size = ipcl_iptun_fanout_size; in ipcl_init()
419 ASSERT(ipst->ips_ipcl_conn_fanout == NULL); in ipcl_init()
421 ipst->ips_ipcl_conn_fanout = kmem_zalloc( in ipcl_init()
422 ipst->ips_ipcl_conn_fanout_size * sizeof (connf_t), KM_SLEEP); in ipcl_init()
424 for (i = 0; i < ipst->ips_ipcl_conn_fanout_size; i++) { in ipcl_init()
425 mutex_init(&ipst->ips_ipcl_conn_fanout[i].connf_lock, NULL, in ipcl_init()
429 ipst->ips_ipcl_bind_fanout = kmem_zalloc( in ipcl_init()
430 ipst->ips_ipcl_bind_fanout_size * sizeof (connf_t), KM_SLEEP); in ipcl_init()
432 for (i = 0; i < ipst->ips_ipcl_bind_fanout_size; i++) { in ipcl_init()
433 mutex_init(&ipst->ips_ipcl_bind_fanout[i].connf_lock, NULL, in ipcl_init()
437 ipst->ips_ipcl_proto_fanout_v4 = kmem_zalloc(IPPROTO_MAX * in ipcl_init()
440 mutex_init(&ipst->ips_ipcl_proto_fanout_v4[i].connf_lock, NULL, in ipcl_init()
444 ipst->ips_ipcl_proto_fanout_v6 = kmem_zalloc(IPPROTO_MAX * in ipcl_init()
447 mutex_init(&ipst->ips_ipcl_proto_fanout_v6[i].connf_lock, NULL, in ipcl_init()
451 ipst->ips_rts_clients = kmem_zalloc(sizeof (connf_t), KM_SLEEP); in ipcl_init()
452 mutex_init(&ipst->ips_rts_clients->connf_lock, in ipcl_init()
455 ipst->ips_ipcl_udp_fanout = kmem_zalloc( in ipcl_init()
456 ipst->ips_ipcl_udp_fanout_size * sizeof (connf_t), KM_SLEEP); in ipcl_init()
457 for (i = 0; i < ipst->ips_ipcl_udp_fanout_size; i++) { in ipcl_init()
458 mutex_init(&ipst->ips_ipcl_udp_fanout[i].connf_lock, NULL, in ipcl_init()
462 ipst->ips_ipcl_iptun_fanout = kmem_zalloc( in ipcl_init()
463 ipst->ips_ipcl_iptun_fanout_size * sizeof (connf_t), KM_SLEEP); in ipcl_init()
464 for (i = 0; i < ipst->ips_ipcl_iptun_fanout_size; i++) { in ipcl_init()
465 mutex_init(&ipst->ips_ipcl_iptun_fanout[i].connf_lock, NULL, in ipcl_init()
469 ipst->ips_ipcl_raw_fanout = kmem_zalloc( in ipcl_init()
470 ipst->ips_ipcl_raw_fanout_size * sizeof (connf_t), KM_SLEEP); in ipcl_init()
471 for (i = 0; i < ipst->ips_ipcl_raw_fanout_size; i++) { in ipcl_init()
472 mutex_init(&ipst->ips_ipcl_raw_fanout[i].connf_lock, NULL, in ipcl_init()
476 ipst->ips_ipcl_globalhash_fanout = kmem_zalloc( in ipcl_init()
479 mutex_init(&ipst->ips_ipcl_globalhash_fanout[i].connf_lock, in ipcl_init()
499 ipcl_destroy(ip_stack_t *ipst) in ipcl_destroy() argument
503 for (i = 0; i < ipst->ips_ipcl_conn_fanout_size; i++) { in ipcl_destroy()
504 ASSERT(ipst->ips_ipcl_conn_fanout[i].connf_head == NULL); in ipcl_destroy()
505 mutex_destroy(&ipst->ips_ipcl_conn_fanout[i].connf_lock); in ipcl_destroy()
507 kmem_free(ipst->ips_ipcl_conn_fanout, ipst->ips_ipcl_conn_fanout_size * in ipcl_destroy()
509 ipst->ips_ipcl_conn_fanout = NULL; in ipcl_destroy()
511 for (i = 0; i < ipst->ips_ipcl_bind_fanout_size; i++) { in ipcl_destroy()
512 ASSERT(ipst->ips_ipcl_bind_fanout[i].connf_head == NULL); in ipcl_destroy()
513 mutex_destroy(&ipst->ips_ipcl_bind_fanout[i].connf_lock); in ipcl_destroy()
515 kmem_free(ipst->ips_ipcl_bind_fanout, ipst->ips_ipcl_bind_fanout_size * in ipcl_destroy()
517 ipst->ips_ipcl_bind_fanout = NULL; in ipcl_destroy()
520 ASSERT(ipst->ips_ipcl_proto_fanout_v4[i].connf_head == NULL); in ipcl_destroy()
521 mutex_destroy(&ipst->ips_ipcl_proto_fanout_v4[i].connf_lock); in ipcl_destroy()
523 kmem_free(ipst->ips_ipcl_proto_fanout_v4, in ipcl_destroy()
525 ipst->ips_ipcl_proto_fanout_v4 = NULL; in ipcl_destroy()
528 ASSERT(ipst->ips_ipcl_proto_fanout_v6[i].connf_head == NULL); in ipcl_destroy()
529 mutex_destroy(&ipst->ips_ipcl_proto_fanout_v6[i].connf_lock); in ipcl_destroy()
531 kmem_free(ipst->ips_ipcl_proto_fanout_v6, in ipcl_destroy()
533 ipst->ips_ipcl_proto_fanout_v6 = NULL; in ipcl_destroy()
535 for (i = 0; i < ipst->ips_ipcl_udp_fanout_size; i++) { in ipcl_destroy()
536 ASSERT(ipst->ips_ipcl_udp_fanout[i].connf_head == NULL); in ipcl_destroy()
537 mutex_destroy(&ipst->ips_ipcl_udp_fanout[i].connf_lock); in ipcl_destroy()
539 kmem_free(ipst->ips_ipcl_udp_fanout, ipst->ips_ipcl_udp_fanout_size * in ipcl_destroy()
541 ipst->ips_ipcl_udp_fanout = NULL; in ipcl_destroy()
543 for (i = 0; i < ipst->ips_ipcl_iptun_fanout_size; i++) { in ipcl_destroy()
544 ASSERT(ipst->ips_ipcl_iptun_fanout[i].connf_head == NULL); in ipcl_destroy()
545 mutex_destroy(&ipst->ips_ipcl_iptun_fanout[i].connf_lock); in ipcl_destroy()
547 kmem_free(ipst->ips_ipcl_iptun_fanout, in ipcl_destroy()
548 ipst->ips_ipcl_iptun_fanout_size * sizeof (connf_t)); in ipcl_destroy()
549 ipst->ips_ipcl_iptun_fanout = NULL; in ipcl_destroy()
551 for (i = 0; i < ipst->ips_ipcl_raw_fanout_size; i++) { in ipcl_destroy()
552 ASSERT(ipst->ips_ipcl_raw_fanout[i].connf_head == NULL); in ipcl_destroy()
553 mutex_destroy(&ipst->ips_ipcl_raw_fanout[i].connf_lock); in ipcl_destroy()
555 kmem_free(ipst->ips_ipcl_raw_fanout, ipst->ips_ipcl_raw_fanout_size * in ipcl_destroy()
557 ipst->ips_ipcl_raw_fanout = NULL; in ipcl_destroy()
560 ASSERT(ipst->ips_ipcl_globalhash_fanout[i].connf_head == NULL); in ipcl_destroy()
561 mutex_destroy(&ipst->ips_ipcl_globalhash_fanout[i].connf_lock); in ipcl_destroy()
563 kmem_free(ipst->ips_ipcl_globalhash_fanout, in ipcl_destroy()
565 ipst->ips_ipcl_globalhash_fanout = NULL; in ipcl_destroy()
567 ASSERT(ipst->ips_rts_clients->connf_head == NULL); in ipcl_destroy()
568 mutex_destroy(&ipst->ips_rts_clients->connf_lock); in ipcl_destroy()
569 kmem_free(ipst->ips_rts_clients, sizeof (connf_t)); in ipcl_destroy()
570 ipst->ips_rts_clients = NULL; in ipcl_destroy()
946 ipcl_iptun_classify_v4(ipaddr_t *src, ipaddr_t *dst, ip_stack_t *ipst) in ipcl_iptun_classify_v4() argument
952 connfp = &ipst->ips_ipcl_iptun_fanout[IPCL_IPTUN_HASH(*dst, *src)]; in ipcl_iptun_classify_v4()
965 connfp = &ipst->ips_ipcl_iptun_fanout[IPCL_IPTUN_HASH(*dst, in ipcl_iptun_classify_v4()
981 ipcl_iptun_classify_v6(in6_addr_t *src, in6_addr_t *dst, ip_stack_t *ipst) in ipcl_iptun_classify_v6() argument
987 connfp = &ipst->ips_ipcl_iptun_fanout[IPCL_IPTUN_HASH_V6(dst, src)]; in ipcl_iptun_classify_v6()
1012 ip_stack_t *ipst = connp->conn_netstack->netstack_ip; in ipcl_sctp_hash_insert() local
1014 connfp = &ipst->ips_ipcl_raw_fanout[IPCL_RAW_HASH(ntohs(lport), ipst)]; in ipcl_sctp_hash_insert()
1051 ipcl_iptun_hash_insert(conn_t *connp, ip_stack_t *ipst) in ipcl_iptun_hash_insert() argument
1058 connfp = &ipst->ips_ipcl_iptun_fanout[IPCL_IPTUN_HASH(laddr, faddr)]; in ipcl_iptun_hash_insert()
1074 ipcl_iptun_hash_insert_v6(conn_t *connp, ip_stack_t *ipst) in ipcl_iptun_hash_insert_v6() argument
1081 connfp = &ipst->ips_ipcl_iptun_fanout[IPCL_IPTUN_HASH_V6(laddr, faddr)]; in ipcl_iptun_hash_insert_v6()
1104 check_exempt_conflict_v4(conn_t *connp, ip_stack_t *ipst) in check_exempt_conflict_v4() argument
1109 connfp = &ipst->ips_ipcl_proto_fanout_v4[connp->conn_proto]; in check_exempt_conflict_v4()
1136 check_exempt_conflict_v6(conn_t *connp, ip_stack_t *ipst) in check_exempt_conflict_v6() argument
1141 connfp = &ipst->ips_ipcl_proto_fanout_v6[connp->conn_proto]; in check_exempt_conflict_v6()
1187 ip_stack_t *ipst = connp->conn_netstack->netstack_ip; in ipcl_bind_insert_v4() local
1192 return (ipcl_iptun_hash_insert(connp, ipst)); in ipcl_bind_insert_v4()
1197 check_exempt_conflict_v4(connp, ipst)) in ipcl_bind_insert_v4()
1202 connfp = &ipst->ips_ipcl_udp_fanout[ in ipcl_bind_insert_v4()
1203 IPCL_UDP_HASH(lport, ipst)]; in ipcl_bind_insert_v4()
1205 connfp = &ipst->ips_ipcl_proto_fanout_v4[protocol]; in ipcl_bind_insert_v4()
1216 ill_set_inputfn_all(ipst); in ipcl_bind_insert_v4()
1222 connfp = &ipst->ips_ipcl_bind_fanout[ in ipcl_bind_insert_v4()
1223 IPCL_BIND_HASH(lport, ipst)]; in ipcl_bind_insert_v4()
1252 ip_stack_t *ipst = connp->conn_netstack->netstack_ip; in ipcl_bind_insert_v6() local
1257 return (ipcl_iptun_hash_insert_v6(connp, ipst)); in ipcl_bind_insert_v6()
1263 check_exempt_conflict_v6(connp, ipst)) in ipcl_bind_insert_v6()
1268 connfp = &ipst->ips_ipcl_udp_fanout[ in ipcl_bind_insert_v6()
1269 IPCL_UDP_HASH(lport, ipst)]; in ipcl_bind_insert_v6()
1271 connfp = &ipst->ips_ipcl_proto_fanout_v6[protocol]; in ipcl_bind_insert_v6()
1286 connfp = &ipst->ips_ipcl_bind_fanout[ in ipcl_bind_insert_v6()
1287 IPCL_BIND_HASH(lport, ipst)]; in ipcl_bind_insert_v6()
1340 ip_stack_t *ipst = connp->conn_netstack->netstack_ip; in ipcl_conn_insert_v4() local
1345 return (ipcl_iptun_hash_insert(connp, ipst)); in ipcl_conn_insert_v4()
1358 connfp = &ipst->ips_ipcl_conn_fanout[ in ipcl_conn_insert_v4()
1360 connp->conn_ports, ipst)]; in ipcl_conn_insert_v4()
1407 check_exempt_conflict_v4(connp, ipst)) in ipcl_conn_insert_v4()
1413 connfp = &ipst->ips_ipcl_udp_fanout[ in ipcl_conn_insert_v4()
1414 IPCL_UDP_HASH(lport, ipst)]; in ipcl_conn_insert_v4()
1416 connfp = &ipst->ips_ipcl_proto_fanout_v4[protocol]; in ipcl_conn_insert_v4()
1438 ip_stack_t *ipst = connp->conn_netstack->netstack_ip; in ipcl_conn_insert_v6() local
1444 return (ipcl_iptun_hash_insert_v6(connp, ipst)); in ipcl_conn_insert_v6()
1458 connfp = &ipst->ips_ipcl_conn_fanout[ in ipcl_conn_insert_v6()
1460 ipst)]; in ipcl_conn_insert_v6()
1496 check_exempt_conflict_v6(connp, ipst)) in ipcl_conn_insert_v6()
1501 connfp = &ipst->ips_ipcl_udp_fanout[ in ipcl_conn_insert_v6()
1502 IPCL_UDP_HASH(lport, ipst)]; in ipcl_conn_insert_v6()
1504 connfp = &ipst->ips_ipcl_proto_fanout_v6[protocol]; in ipcl_conn_insert_v6()
1532 ip_recv_attr_t *ira, ip_stack_t *ipst) in ipcl_classify_v4() argument
1550 &ipst->ips_ipcl_conn_fanout[IPCL_CONN_HASH(ipha->ipha_src, in ipcl_classify_v4()
1551 ports, ipst)]; in ipcl_classify_v4()
1581 &ipst->ips_ipcl_bind_fanout[IPCL_BIND_HASH(lport, ipst)]; in ipcl_classify_v4()
1626 connfp = &ipst->ips_ipcl_udp_fanout[IPCL_UDP_HASH(lport, ipst)]; in ipcl_classify_v4()
1664 &ipha->ipha_dst, ipst)); in ipcl_classify_v4()
1672 ip_recv_attr_t *ira, ip_stack_t *ipst) in ipcl_classify_v6() argument
1693 &ipst->ips_ipcl_conn_fanout[IPCL_CONN_HASH_V6(ip6h->ip6_src, in ipcl_classify_v6()
1694 ports, ipst)]; in ipcl_classify_v6()
1725 &ipst->ips_ipcl_bind_fanout[IPCL_BIND_HASH(lport, ipst)]; in ipcl_classify_v6()
1762 connfp = &ipst->ips_ipcl_udp_fanout[IPCL_UDP_HASH(lport, ipst)]; in ipcl_classify_v6()
1799 &ip6h->ip6_dst, ipst)); in ipcl_classify_v6()
1809 ipcl_classify(mblk_t *mp, ip_recv_attr_t *ira, ip_stack_t *ipst) in ipcl_classify() argument
1813 ira->ira_ip_hdr_length, ira, ipst)); in ipcl_classify()
1816 ira->ira_ip_hdr_length, ira, ipst)); in ipcl_classify()
1825 ipha_t *ipha, ip6_t *ip6h, ip_recv_attr_t *ira, ip_stack_t *ipst) in ipcl_classify_raw() argument
1843 connfp = &ipst->ips_ipcl_raw_fanout[IPCL_RAW_HASH(ntohs(lport), ipst)]; in ipcl_classify_raw()
1894 connfp = &ipst->ips_ipcl_raw_fanout[IPCL_RAW_HASH(0, ipst)]; in ipcl_classify_raw()
2264 ip_stack_t *ipst = connp->conn_netstack->netstack_ip; in ipcl_globalhash_insert() local
2270 ipst->ips_conn_g_index++; in ipcl_globalhash_insert()
2271 index = ipst->ips_conn_g_index & (CONN_G_HASH_SIZE - 1); in ipcl_globalhash_insert()
2280 connfp = &ipst->ips_ipcl_globalhash_fanout[index]; in ipcl_globalhash_insert()
2338 ipcl_walk(pfv_t func, void *arg, ip_stack_t *ipst) in ipcl_walk() argument
2345 mutex_enter(&ipst->ips_ipcl_globalhash_fanout[i].connf_lock); in ipcl_walk()
2347 connp = ipst->ips_ipcl_globalhash_fanout[i].connf_head; in ipcl_walk()
2359 &ipst->ips_ipcl_globalhash_fanout[i].connf_lock); in ipcl_walk()
2364 &ipst->ips_ipcl_globalhash_fanout[i].connf_lock); in ipcl_walk()
2368 mutex_exit(&ipst->ips_ipcl_globalhash_fanout[i].connf_lock); in ipcl_walk()
2382 ip_stack_t *ipst) in ipcl_conn_tcp_lookup_reversed_ipv4() argument
2402 connfp = &ipst->ips_ipcl_conn_fanout[IPCL_CONN_HASH(ipha->ipha_dst, in ipcl_conn_tcp_lookup_reversed_ipv4()
2403 ports, ipst)]; in ipcl_conn_tcp_lookup_reversed_ipv4()
2432 ip_stack_t *ipst) in ipcl_conn_tcp_lookup_reversed_ipv6() argument
2455 connfp = &ipst->ips_ipcl_conn_fanout[IPCL_CONN_HASH_V6(ip6h->ip6_dst, in ipcl_conn_tcp_lookup_reversed_ipv6()
2456 ports, ipst)]; in ipcl_conn_tcp_lookup_reversed_ipv6()
2485 ip_stack_t *ipst) in ipcl_tcp_lookup_reversed_ipv4() argument
2496 connfp = &ipst->ips_ipcl_conn_fanout[IPCL_CONN_HASH(ipha->ipha_dst, in ipcl_tcp_lookup_reversed_ipv4()
2497 ports, ipst)]; in ipcl_tcp_lookup_reversed_ipv4()
2524 uint_t ifindex, ip_stack_t *ipst) in ipcl_tcp_lookup_reversed_ipv6() argument
2536 connfp = &ipst->ips_ipcl_conn_fanout[IPCL_CONN_HASH_V6(ip6h->ip6_dst, in ipcl_tcp_lookup_reversed_ipv6()
2537 ports, ipst)]; in ipcl_tcp_lookup_reversed_ipv6()
2565 ip_stack_t *ipst) in ipcl_lookup_listener_v4() argument
2580 bind_connfp = &ipst->ips_ipcl_bind_fanout[IPCL_BIND_HASH(lport, ipst)]; in ipcl_lookup_listener_v4()
2603 zoneid_t zoneid, ip_stack_t *ipst) in ipcl_lookup_listener_v6() argument
2618 bind_connfp = &ipst->ips_ipcl_bind_fanout[IPCL_BIND_HASH(lport, ipst)]; in ipcl_lookup_listener_v6()