Lines Matching refs:ipst

377 ipcl_init(ip_stack_t *ipst)
386 ipst->ips_ipcl_conn_fanout_size = ipcl_conn_hash_size;
388 ipst->ips_ipcl_conn_fanout_size = tcp_conn_hash_size;
392 ipst->ips_ipcl_conn_fanout_size =
395 if (ipst->ips_ipcl_conn_fanout_size > ipcl_conn_hash_maxsize) {
396 ipst->ips_ipcl_conn_fanout_size =
402 if (sizes[i] >= ipst->ips_ipcl_conn_fanout_size) {
406 if ((ipst->ips_ipcl_conn_fanout_size = sizes[i]) == 0) {
408 ipst->ips_ipcl_conn_fanout_size = sizes[16];
412 ipst->ips_ipcl_bind_fanout_size = ipcl_bind_fanout_size;
413 ipst->ips_ipcl_udp_fanout_size = ipcl_udp_fanout_size;
414 ipst->ips_ipcl_raw_fanout_size = ipcl_raw_fanout_size;
415 ipst->ips_ipcl_iptun_fanout_size = ipcl_iptun_fanout_size;
417 ASSERT(ipst->ips_ipcl_conn_fanout == NULL);
419 ipst->ips_ipcl_conn_fanout = kmem_zalloc(
420 ipst->ips_ipcl_conn_fanout_size * sizeof (connf_t), KM_SLEEP);
422 for (i = 0; i < ipst->ips_ipcl_conn_fanout_size; i++) {
423 mutex_init(&ipst->ips_ipcl_conn_fanout[i].connf_lock, NULL,
427 ipst->ips_ipcl_bind_fanout = kmem_zalloc(
428 ipst->ips_ipcl_bind_fanout_size * sizeof (connf_t), KM_SLEEP);
430 for (i = 0; i < ipst->ips_ipcl_bind_fanout_size; i++) {
431 mutex_init(&ipst->ips_ipcl_bind_fanout[i].connf_lock, NULL,
435 ipst->ips_ipcl_proto_fanout_v4 = kmem_zalloc(IPPROTO_MAX *
438 mutex_init(&ipst->ips_ipcl_proto_fanout_v4[i].connf_lock, NULL,
442 ipst->ips_ipcl_proto_fanout_v6 = kmem_zalloc(IPPROTO_MAX *
445 mutex_init(&ipst->ips_ipcl_proto_fanout_v6[i].connf_lock, NULL,
449 ipst->ips_rts_clients = kmem_zalloc(sizeof (connf_t), KM_SLEEP);
450 mutex_init(&ipst->ips_rts_clients->connf_lock,
453 ipst->ips_ipcl_udp_fanout = kmem_zalloc(
454 ipst->ips_ipcl_udp_fanout_size * sizeof (connf_t), KM_SLEEP);
455 for (i = 0; i < ipst->ips_ipcl_udp_fanout_size; i++) {
456 mutex_init(&ipst->ips_ipcl_udp_fanout[i].connf_lock, NULL,
460 ipst->ips_ipcl_iptun_fanout = kmem_zalloc(
461 ipst->ips_ipcl_iptun_fanout_size * sizeof (connf_t), KM_SLEEP);
462 for (i = 0; i < ipst->ips_ipcl_iptun_fanout_size; i++) {
463 mutex_init(&ipst->ips_ipcl_iptun_fanout[i].connf_lock, NULL,
467 ipst->ips_ipcl_raw_fanout = kmem_zalloc(
468 ipst->ips_ipcl_raw_fanout_size * sizeof (connf_t), KM_SLEEP);
469 for (i = 0; i < ipst->ips_ipcl_raw_fanout_size; i++) {
470 mutex_init(&ipst->ips_ipcl_raw_fanout[i].connf_lock, NULL,
474 ipst->ips_ipcl_globalhash_fanout = kmem_zalloc(
477 mutex_init(&ipst->ips_ipcl_globalhash_fanout[i].connf_lock,
497 ipcl_destroy(ip_stack_t *ipst)
501 for (i = 0; i < ipst->ips_ipcl_conn_fanout_size; i++) {
502 ASSERT(ipst->ips_ipcl_conn_fanout[i].connf_head == NULL);
503 mutex_destroy(&ipst->ips_ipcl_conn_fanout[i].connf_lock);
505 kmem_free(ipst->ips_ipcl_conn_fanout, ipst->ips_ipcl_conn_fanout_size *
507 ipst->ips_ipcl_conn_fanout = NULL;
509 for (i = 0; i < ipst->ips_ipcl_bind_fanout_size; i++) {
510 ASSERT(ipst->ips_ipcl_bind_fanout[i].connf_head == NULL);
511 mutex_destroy(&ipst->ips_ipcl_bind_fanout[i].connf_lock);
513 kmem_free(ipst->ips_ipcl_bind_fanout, ipst->ips_ipcl_bind_fanout_size *
515 ipst->ips_ipcl_bind_fanout = NULL;
518 ASSERT(ipst->ips_ipcl_proto_fanout_v4[i].connf_head == NULL);
519 mutex_destroy(&ipst->ips_ipcl_proto_fanout_v4[i].connf_lock);
521 kmem_free(ipst->ips_ipcl_proto_fanout_v4,
523 ipst->ips_ipcl_proto_fanout_v4 = NULL;
526 ASSERT(ipst->ips_ipcl_proto_fanout_v6[i].connf_head == NULL);
527 mutex_destroy(&ipst->ips_ipcl_proto_fanout_v6[i].connf_lock);
529 kmem_free(ipst->ips_ipcl_proto_fanout_v6,
531 ipst->ips_ipcl_proto_fanout_v6 = NULL;
533 for (i = 0; i < ipst->ips_ipcl_udp_fanout_size; i++) {
534 ASSERT(ipst->ips_ipcl_udp_fanout[i].connf_head == NULL);
535 mutex_destroy(&ipst->ips_ipcl_udp_fanout[i].connf_lock);
537 kmem_free(ipst->ips_ipcl_udp_fanout, ipst->ips_ipcl_udp_fanout_size *
539 ipst->ips_ipcl_udp_fanout = NULL;
541 for (i = 0; i < ipst->ips_ipcl_iptun_fanout_size; i++) {
542 ASSERT(ipst->ips_ipcl_iptun_fanout[i].connf_head == NULL);
543 mutex_destroy(&ipst->ips_ipcl_iptun_fanout[i].connf_lock);
545 kmem_free(ipst->ips_ipcl_iptun_fanout,
546 ipst->ips_ipcl_iptun_fanout_size * sizeof (connf_t));
547 ipst->ips_ipcl_iptun_fanout = NULL;
549 for (i = 0; i < ipst->ips_ipcl_raw_fanout_size; i++) {
550 ASSERT(ipst->ips_ipcl_raw_fanout[i].connf_head == NULL);
551 mutex_destroy(&ipst->ips_ipcl_raw_fanout[i].connf_lock);
553 kmem_free(ipst->ips_ipcl_raw_fanout, ipst->ips_ipcl_raw_fanout_size *
555 ipst->ips_ipcl_raw_fanout = NULL;
558 ASSERT(ipst->ips_ipcl_globalhash_fanout[i].connf_head == NULL);
559 mutex_destroy(&ipst->ips_ipcl_globalhash_fanout[i].connf_lock);
561 kmem_free(ipst->ips_ipcl_globalhash_fanout,
563 ipst->ips_ipcl_globalhash_fanout = NULL;
565 ASSERT(ipst->ips_rts_clients->connf_head == NULL);
566 mutex_destroy(&ipst->ips_rts_clients->connf_lock);
567 kmem_free(ipst->ips_rts_clients, sizeof (connf_t));
568 ipst->ips_rts_clients = NULL;
943 ipcl_iptun_classify_v4(ipaddr_t *src, ipaddr_t *dst, ip_stack_t *ipst)
949 connfp = &ipst->ips_ipcl_iptun_fanout[IPCL_IPTUN_HASH(*dst, *src)];
962 connfp = &ipst->ips_ipcl_iptun_fanout[IPCL_IPTUN_HASH(*dst,
978 ipcl_iptun_classify_v6(in6_addr_t *src, in6_addr_t *dst, ip_stack_t *ipst)
984 connfp = &ipst->ips_ipcl_iptun_fanout[IPCL_IPTUN_HASH_V6(dst, src)];
1009 ip_stack_t *ipst = connp->conn_netstack->netstack_ip;
1011 connfp = &ipst->ips_ipcl_raw_fanout[IPCL_RAW_HASH(ntohs(lport), ipst)];
1048 ipcl_iptun_hash_insert(conn_t *connp, ip_stack_t *ipst)
1055 connfp = &ipst->ips_ipcl_iptun_fanout[IPCL_IPTUN_HASH(laddr, faddr)];
1071 ipcl_iptun_hash_insert_v6(conn_t *connp, ip_stack_t *ipst)
1078 connfp = &ipst->ips_ipcl_iptun_fanout[IPCL_IPTUN_HASH_V6(laddr, faddr)];
1101 check_exempt_conflict_v4(conn_t *connp, ip_stack_t *ipst)
1106 connfp = &ipst->ips_ipcl_proto_fanout_v4[connp->conn_proto];
1133 check_exempt_conflict_v6(conn_t *connp, ip_stack_t *ipst)
1138 connfp = &ipst->ips_ipcl_proto_fanout_v6[connp->conn_proto];
1184 ip_stack_t *ipst = connp->conn_netstack->netstack_ip;
1189 return (ipcl_iptun_hash_insert(connp, ipst));
1194 check_exempt_conflict_v4(connp, ipst))
1199 connfp = &ipst->ips_ipcl_udp_fanout[
1200 IPCL_UDP_HASH(lport, ipst)];
1202 connfp = &ipst->ips_ipcl_proto_fanout_v4[protocol];
1213 ill_set_inputfn_all(ipst);
1219 connfp = &ipst->ips_ipcl_bind_fanout[
1220 IPCL_BIND_HASH(lport, ipst)];
1249 ip_stack_t *ipst = connp->conn_netstack->netstack_ip;
1254 return (ipcl_iptun_hash_insert_v6(connp, ipst));
1260 check_exempt_conflict_v6(connp, ipst))
1265 connfp = &ipst->ips_ipcl_udp_fanout[
1266 IPCL_UDP_HASH(lport, ipst)];
1268 connfp = &ipst->ips_ipcl_proto_fanout_v6[protocol];
1283 connfp = &ipst->ips_ipcl_bind_fanout[
1284 IPCL_BIND_HASH(lport, ipst)];
1337 ip_stack_t *ipst = connp->conn_netstack->netstack_ip;
1342 return (ipcl_iptun_hash_insert(connp, ipst));
1355 connfp = &ipst->ips_ipcl_conn_fanout[
1357 connp->conn_ports, ipst)];
1404 check_exempt_conflict_v4(connp, ipst))
1410 connfp = &ipst->ips_ipcl_udp_fanout[
1411 IPCL_UDP_HASH(lport, ipst)];
1413 connfp = &ipst->ips_ipcl_proto_fanout_v4[protocol];
1435 ip_stack_t *ipst = connp->conn_netstack->netstack_ip;
1441 return (ipcl_iptun_hash_insert_v6(connp, ipst));
1455 connfp = &ipst->ips_ipcl_conn_fanout[
1457 ipst)];
1493 check_exempt_conflict_v6(connp, ipst))
1498 connfp = &ipst->ips_ipcl_udp_fanout[
1499 IPCL_UDP_HASH(lport, ipst)];
1501 connfp = &ipst->ips_ipcl_proto_fanout_v6[protocol];
1529 ip_recv_attr_t *ira, ip_stack_t *ipst)
1547 &ipst->ips_ipcl_conn_fanout[IPCL_CONN_HASH(ipha->ipha_src,
1548 ports, ipst)];
1578 &ipst->ips_ipcl_bind_fanout[IPCL_BIND_HASH(lport, ipst)];
1623 connfp = &ipst->ips_ipcl_udp_fanout[IPCL_UDP_HASH(lport, ipst)];
1661 &ipha->ipha_dst, ipst));
1669 ip_recv_attr_t *ira, ip_stack_t *ipst)
1690 &ipst->ips_ipcl_conn_fanout[IPCL_CONN_HASH_V6(ip6h->ip6_src,
1691 ports, ipst)];
1722 &ipst->ips_ipcl_bind_fanout[IPCL_BIND_HASH(lport, ipst)];
1759 connfp = &ipst->ips_ipcl_udp_fanout[IPCL_UDP_HASH(lport, ipst)];
1796 &ip6h->ip6_dst, ipst));
1806 ipcl_classify(mblk_t *mp, ip_recv_attr_t *ira, ip_stack_t *ipst)
1810 ira->ira_ip_hdr_length, ira, ipst));
1813 ira->ira_ip_hdr_length, ira, ipst));
1822 ipha_t *ipha, ip6_t *ip6h, ip_recv_attr_t *ira, ip_stack_t *ipst)
1840 connfp = &ipst->ips_ipcl_raw_fanout[IPCL_RAW_HASH(ntohs(lport), ipst)];
1891 connfp = &ipst->ips_ipcl_raw_fanout[IPCL_RAW_HASH(0, ipst)];
2261 ip_stack_t *ipst = connp->conn_netstack->netstack_ip;
2267 ipst->ips_conn_g_index++;
2268 index = ipst->ips_conn_g_index & (CONN_G_HASH_SIZE - 1);
2277 connfp = &ipst->ips_ipcl_globalhash_fanout[index];
2335 ipcl_walk(pfv_t func, void *arg, ip_stack_t *ipst)
2342 mutex_enter(&ipst->ips_ipcl_globalhash_fanout[i].connf_lock);
2344 connp = ipst->ips_ipcl_globalhash_fanout[i].connf_head;
2356 &ipst->ips_ipcl_globalhash_fanout[i].connf_lock);
2361 &ipst->ips_ipcl_globalhash_fanout[i].connf_lock);
2365 mutex_exit(&ipst->ips_ipcl_globalhash_fanout[i].connf_lock);
2379 ip_stack_t *ipst)
2399 connfp = &ipst->ips_ipcl_conn_fanout[IPCL_CONN_HASH(ipha->ipha_dst,
2400 ports, ipst)];
2429 ip_stack_t *ipst)
2452 connfp = &ipst->ips_ipcl_conn_fanout[IPCL_CONN_HASH_V6(ip6h->ip6_dst,
2453 ports, ipst)];
2482 ip_stack_t *ipst)
2493 connfp = &ipst->ips_ipcl_conn_fanout[IPCL_CONN_HASH(ipha->ipha_dst,
2494 ports, ipst)];
2521 uint_t ifindex, ip_stack_t *ipst)
2533 connfp = &ipst->ips_ipcl_conn_fanout[IPCL_CONN_HASH_V6(ip6h->ip6_dst,
2534 ports, ipst)];
2562 ip_stack_t *ipst)
2577 bind_connfp = &ipst->ips_ipcl_bind_fanout[IPCL_BIND_HASH(lport, ipst)];
2600 zoneid_t zoneid, ip_stack_t *ipst)
2615 bind_connfp = &ipst->ips_ipcl_bind_fanout[IPCL_BIND_HASH(lport, ipst)];