Lines Matching refs:ipst

253 ip_net_init(ip_stack_t *ipst, netstack_t *ns)
260 ipst->ips_ipv4_net_data = net_protocol_register(id, &ipv4info);
261 ASSERT(ipst->ips_ipv4_net_data != NULL);
263 ipst->ips_ipv6_net_data = net_protocol_register(id, &ipv6info);
264 ASSERT(ipst->ips_ipv6_net_data != NULL);
266 ipst->ips_arp_net_data = net_protocol_register(id, &arp_netinfo);
267 ASSERT(ipst->ips_ipv6_net_data != NULL);
275 ip_net_destroy(ip_stack_t *ipst)
277 if (ipst->ips_ipv4_net_data != NULL) {
278 if (net_protocol_unregister(ipst->ips_ipv4_net_data) == 0)
279 ipst->ips_ipv4_net_data = NULL;
282 if (ipst->ips_ipv6_net_data != NULL) {
283 if (net_protocol_unregister(ipst->ips_ipv6_net_data) == 0)
284 ipst->ips_ipv6_net_data = NULL;
287 if (ipst->ips_arp_net_data != NULL) {
288 if (net_protocol_unregister(ipst->ips_arp_net_data) == 0)
289 ipst->ips_arp_net_data = NULL;
297 ipv4_hook_init(ip_stack_t *ipst)
299 HOOK_FAMILY_INIT(&ipst->ips_ipv4root, Hn_IPV4);
300 if (net_family_register(ipst->ips_ipv4_net_data, &ipst->ips_ipv4root)
306 HOOK_EVENT_INIT(&ipst->ips_ip4_physical_in_event, NH_PHYSICAL_IN);
307 ipst->ips_ipv4firewall_physical_in = net_event_register(
308 ipst->ips_ipv4_net_data, &ipst->ips_ip4_physical_in_event);
309 if (ipst->ips_ipv4firewall_physical_in == NULL) {
314 HOOK_EVENT_INIT(&ipst->ips_ip4_physical_out_event, NH_PHYSICAL_OUT);
315 ipst->ips_ipv4firewall_physical_out = net_event_register(
316 ipst->ips_ipv4_net_data, &ipst->ips_ip4_physical_out_event);
317 if (ipst->ips_ipv4firewall_physical_out == NULL) {
322 HOOK_EVENT_INIT(&ipst->ips_ip4_forwarding_event, NH_FORWARDING);
323 ipst->ips_ipv4firewall_forwarding = net_event_register(
324 ipst->ips_ipv4_net_data, &ipst->ips_ip4_forwarding_event);
325 if (ipst->ips_ipv4firewall_forwarding == NULL) {
330 HOOK_EVENT_INIT(&ipst->ips_ip4_loopback_in_event, NH_LOOPBACK_IN);
331 ipst->ips_ipv4firewall_loopback_in = net_event_register(
332 ipst->ips_ipv4_net_data, &ipst->ips_ip4_loopback_in_event);
333 if (ipst->ips_ipv4firewall_loopback_in == NULL) {
338 HOOK_EVENT_INIT(&ipst->ips_ip4_loopback_out_event, NH_LOOPBACK_OUT);
339 ipst->ips_ipv4firewall_loopback_out = net_event_register(
340 ipst->ips_ipv4_net_data, &ipst->ips_ip4_loopback_out_event);
341 if (ipst->ips_ipv4firewall_loopback_out == NULL) {
346 HOOK_EVENT_INIT(&ipst->ips_ip4_nic_events, NH_NIC_EVENTS);
347 ipst->ips_ip4_nic_events.he_flags = HOOK_RDONLY;
348 ipst->ips_ipv4nicevents = net_event_register(
349 ipst->ips_ipv4_net_data, &ipst->ips_ip4_nic_events);
350 if (ipst->ips_ipv4nicevents == NULL) {
355 HOOK_EVENT_INIT(&ipst->ips_ip4_observe, NH_OBSERVE);
356 ipst->ips_ip4_observe.he_flags = HOOK_RDONLY;
357 ipst->ips_ipv4observing = net_event_register(
358 ipst->ips_ipv4_net_data, &ipst->ips_ip4_observe);
359 if (ipst->ips_ipv4observing == NULL) {
367 ipv4_hook_shutdown(ip_stack_t *ipst)
369 if (ipst->ips_ipv4firewall_forwarding != NULL) {
370 (void) net_event_shutdown(ipst->ips_ipv4_net_data,
371 &ipst->ips_ip4_forwarding_event);
374 if (ipst->ips_ipv4firewall_physical_in != NULL) {
375 (void) net_event_shutdown(ipst->ips_ipv4_net_data,
376 &ipst->ips_ip4_physical_in_event);
379 if (ipst->ips_ipv4firewall_physical_out != NULL) {
380 (void) net_event_shutdown(ipst->ips_ipv4_net_data,
381 &ipst->ips_ip4_physical_out_event);
384 if (ipst->ips_ipv4firewall_loopback_in != NULL) {
385 (void) net_event_shutdown(ipst->ips_ipv4_net_data,
386 &ipst->ips_ip4_loopback_in_event);
389 if (ipst->ips_ipv4firewall_loopback_out != NULL) {
390 (void) net_event_shutdown(ipst->ips_ipv4_net_data,
391 &ipst->ips_ip4_loopback_out_event);
394 if (ipst->ips_ipv4nicevents != NULL) {
395 (void) net_event_shutdown(ipst->ips_ipv4_net_data,
396 &ipst->ips_ip4_nic_events);
399 if (ipst->ips_ipv4observing != NULL) {
400 (void) net_event_shutdown(ipst->ips_ipv4_net_data,
401 &ipst->ips_ip4_observe);
404 (void) net_family_shutdown(ipst->ips_ipv4_net_data,
405 &ipst->ips_ipv4root);
409 ipv4_hook_destroy(ip_stack_t *ipst)
411 if (ipst->ips_ipv4firewall_forwarding != NULL) {
412 if (net_event_unregister(ipst->ips_ipv4_net_data,
413 &ipst->ips_ip4_forwarding_event) == 0)
414 ipst->ips_ipv4firewall_forwarding = NULL;
417 if (ipst->ips_ipv4firewall_physical_in != NULL) {
418 if (net_event_unregister(ipst->ips_ipv4_net_data,
419 &ipst->ips_ip4_physical_in_event) == 0)
420 ipst->ips_ipv4firewall_physical_in = NULL;
423 if (ipst->ips_ipv4firewall_physical_out != NULL) {
424 if (net_event_unregister(ipst->ips_ipv4_net_data,
425 &ipst->ips_ip4_physical_out_event) == 0)
426 ipst->ips_ipv4firewall_physical_out = NULL;
429 if (ipst->ips_ipv4firewall_loopback_in != NULL) {
430 if (net_event_unregister(ipst->ips_ipv4_net_data,
431 &ipst->ips_ip4_loopback_in_event) == 0)
432 ipst->ips_ipv4firewall_loopback_in = NULL;
435 if (ipst->ips_ipv4firewall_loopback_out != NULL) {
436 if (net_event_unregister(ipst->ips_ipv4_net_data,
437 &ipst->ips_ip4_loopback_out_event) == 0)
438 ipst->ips_ipv4firewall_loopback_out = NULL;
441 if (ipst->ips_ipv4nicevents != NULL) {
442 if (net_event_unregister(ipst->ips_ipv4_net_data,
443 &ipst->ips_ip4_nic_events) == 0)
444 ipst->ips_ipv4nicevents = NULL;
447 if (ipst->ips_ipv4observing != NULL) {
448 if (net_event_unregister(ipst->ips_ipv4_net_data,
449 &ipst->ips_ip4_observe) == 0)
450 ipst->ips_ipv4observing = NULL;
453 (void) net_family_unregister(ipst->ips_ipv4_net_data,
454 &ipst->ips_ipv4root);
461 ipv6_hook_init(ip_stack_t *ipst)
464 HOOK_FAMILY_INIT(&ipst->ips_ipv6root, Hn_IPV6);
465 if (net_family_register(ipst->ips_ipv6_net_data, &ipst->ips_ipv6root)
471 HOOK_EVENT_INIT(&ipst->ips_ip6_physical_in_event, NH_PHYSICAL_IN);
472 ipst->ips_ipv6firewall_physical_in = net_event_register(
473 ipst->ips_ipv6_net_data, &ipst->ips_ip6_physical_in_event);
474 if (ipst->ips_ipv6firewall_physical_in == NULL) {
479 HOOK_EVENT_INIT(&ipst->ips_ip6_physical_out_event, NH_PHYSICAL_OUT);
480 ipst->ips_ipv6firewall_physical_out = net_event_register(
481 ipst->ips_ipv6_net_data, &ipst->ips_ip6_physical_out_event);
482 if (ipst->ips_ipv6firewall_physical_out == NULL) {
487 HOOK_EVENT_INIT(&ipst->ips_ip6_forwarding_event, NH_FORWARDING);
488 ipst->ips_ipv6firewall_forwarding = net_event_register(
489 ipst->ips_ipv6_net_data, &ipst->ips_ip6_forwarding_event);
490 if (ipst->ips_ipv6firewall_forwarding == NULL) {
495 HOOK_EVENT_INIT(&ipst->ips_ip6_loopback_in_event, NH_LOOPBACK_IN);
496 ipst->ips_ipv6firewall_loopback_in = net_event_register(
497 ipst->ips_ipv6_net_data, &ipst->ips_ip6_loopback_in_event);
498 if (ipst->ips_ipv6firewall_loopback_in == NULL) {
503 HOOK_EVENT_INIT(&ipst->ips_ip6_loopback_out_event, NH_LOOPBACK_OUT);
504 ipst->ips_ipv6firewall_loopback_out = net_event_register(
505 ipst->ips_ipv6_net_data, &ipst->ips_ip6_loopback_out_event);
506 if (ipst->ips_ipv6firewall_loopback_out == NULL) {
511 HOOK_EVENT_INIT(&ipst->ips_ip6_nic_events, NH_NIC_EVENTS);
512 ipst->ips_ip6_nic_events.he_flags = HOOK_RDONLY;
513 ipst->ips_ipv6nicevents = net_event_register(
514 ipst->ips_ipv6_net_data, &ipst->ips_ip6_nic_events);
515 if (ipst->ips_ipv6nicevents == NULL) {
520 HOOK_EVENT_INIT(&ipst->ips_ip6_observe, NH_OBSERVE);
521 ipst->ips_ip6_observe.he_flags = HOOK_RDONLY;
522 ipst->ips_ipv6observing = net_event_register(
523 ipst->ips_ipv6_net_data, &ipst->ips_ip6_observe);
524 if (ipst->ips_ipv6observing == NULL) {
531 ipv6_hook_shutdown(ip_stack_t *ipst)
533 if (ipst->ips_ipv6firewall_forwarding != NULL) {
534 (void) net_event_shutdown(ipst->ips_ipv6_net_data,
535 &ipst->ips_ip6_forwarding_event);
538 if (ipst->ips_ipv6firewall_physical_in != NULL) {
539 (void) net_event_shutdown(ipst->ips_ipv6_net_data,
540 &ipst->ips_ip6_physical_in_event);
543 if (ipst->ips_ipv6firewall_physical_out != NULL) {
544 (void) net_event_shutdown(ipst->ips_ipv6_net_data,
545 &ipst->ips_ip6_physical_out_event);
548 if (ipst->ips_ipv6firewall_loopback_in != NULL) {
549 (void) net_event_shutdown(ipst->ips_ipv6_net_data,
550 &ipst->ips_ip6_loopback_in_event);
553 if (ipst->ips_ipv6firewall_loopback_out != NULL) {
554 (void) net_event_shutdown(ipst->ips_ipv6_net_data,
555 &ipst->ips_ip6_loopback_out_event);
558 if (ipst->ips_ipv6nicevents != NULL) {
559 (void) net_event_shutdown(ipst->ips_ipv6_net_data,
560 &ipst->ips_ip6_nic_events);
563 if (ipst->ips_ipv6observing != NULL) {
564 (void) net_event_shutdown(ipst->ips_ipv6_net_data,
565 &ipst->ips_ip6_observe);
568 (void) net_family_shutdown(ipst->ips_ipv6_net_data,
569 &ipst->ips_ipv6root);
573 ipv6_hook_destroy(ip_stack_t *ipst)
575 if (ipst->ips_ipv6firewall_forwarding != NULL) {
576 if (net_event_unregister(ipst->ips_ipv6_net_data,
577 &ipst->ips_ip6_forwarding_event) == 0)
578 ipst->ips_ipv6firewall_forwarding = NULL;
581 if (ipst->ips_ipv6firewall_physical_in != NULL) {
582 if (net_event_unregister(ipst->ips_ipv6_net_data,
583 &ipst->ips_ip6_physical_in_event) == 0)
584 ipst->ips_ipv6firewall_physical_in = NULL;
587 if (ipst->ips_ipv6firewall_physical_out != NULL) {
588 if (net_event_unregister(ipst->ips_ipv6_net_data,
589 &ipst->ips_ip6_physical_out_event) == 0)
590 ipst->ips_ipv6firewall_physical_out = NULL;
593 if (ipst->ips_ipv6firewall_loopback_in != NULL) {
594 if (net_event_unregister(ipst->ips_ipv6_net_data,
595 &ipst->ips_ip6_loopback_in_event) == 0)
596 ipst->ips_ipv6firewall_loopback_in = NULL;
599 if (ipst->ips_ipv6firewall_loopback_out != NULL) {
600 if (net_event_unregister(ipst->ips_ipv6_net_data,
601 &ipst->ips_ip6_loopback_out_event) == 0)
602 ipst->ips_ipv6firewall_loopback_out = NULL;
605 if (ipst->ips_ipv6nicevents != NULL) {
606 if (net_event_unregister(ipst->ips_ipv6_net_data,
607 &ipst->ips_ip6_nic_events) == 0)
608 ipst->ips_ipv6nicevents = NULL;
611 if (ipst->ips_ipv6observing != NULL) {
612 if (net_event_unregister(ipst->ips_ipv6_net_data,
613 &ipst->ips_ip6_observe) == 0)
614 ipst->ips_ipv6observing = NULL;
617 (void) net_family_unregister(ipst->ips_ipv6_net_data,
618 &ipst->ips_ipv6root);
649 char *buffer, const size_t buflen, boolean_t isv6, ip_stack_t *ipst)
655 ill = ill_lookup_on_ifindex((uint_t)phy_ifdata, isv6, ipst);
696 ip_stack_t *ipst)
705 isv6, ipst);
716 ipst)) == NULL) {
797 ip_phylookup_impl(const char *name, boolean_t isv6, ip_stack_t *ipst)
802 ill = ill_lookup_on_name((char *)name, B_FALSE, isv6, NULL, ipst);
847 ip_stack_t *ipst)
854 ill = ill_lookup_on_ifindex(phy_ifdata, isv6, ipst);
936 ip_stack_t *ipst)
989 ipst->ips_netstack->netstack_stackid))) {
1008 inject->inj_ptr = ipst;
1065 ip_stack_t *ipst)
1076 zoneid = netstackid_to_zoneid(ipst->ips_netstack->netstack_stackid);
1080 zoneid, NULL, MATCH_IRE_DSTONLY, IRR_ALLOCATE, 0, ipst,
1084 zoneid, NULL, MATCH_IRE_DSTONLY, IRR_ALLOCATE, 0, ipst,
1258 struct sockaddr *storage, ip_stack_t *ipst)
1273 (uint_t)ipifid, B_FALSE, ipst)) == NULL)
1289 (uint_t)ipifid, B_TRUE, ipst)) == NULL)
1373 ip_stack_t *ipst, zoneid_t *zoneid)
1378 UNMAP_IPIF_ID((uint_t)ifdata), (family == AF_INET6), ipst);
1381 *zoneid = IP_REAL_ZONEID(ipif->ipif_zoneid, ipst);
1414 ip_stack_t *ipst, uint64_t *flags)
1420 ill = ill_lookup_on_ifindex(phy_ifdata, (family == AF_INET6), ipst);
1426 UNMAP_IPIF_ID((uint_t)ifdata), (family == AF_INET6), ipst);
1481 ip_stack_t *ipst = (ip_stack_t *)inject->inj_ptr;
1490 inject->inj_isv6, ipst);
1506 ixas.ixa_ipst = ipst;
1528 ip_stack_t *ipst;
1535 ipst = ns->netstack_ip;
1536 if (ipst == NULL)
1539 hr = (info->hnei_event.hne_protocol == ipst->ips_ipv6_net_data) ?
1540 ipst->ips_ipv6nicevents : ipst->ips_ipv4nicevents;
1555 arp_hook_init(ip_stack_t *ipst)
1557 HOOK_FAMILY_INIT(&ipst->ips_arproot, Hn_ARP);
1558 if (net_family_register(ipst->ips_arp_net_data, &ipst->ips_arproot)
1564 HOOK_EVENT_INIT(&ipst->ips_arp_physical_in_event, NH_PHYSICAL_IN);
1565 ipst->ips_arp_physical_in = net_event_register(ipst->ips_arp_net_data,
1566 &ipst->ips_arp_physical_in_event);
1567 if (ipst->ips_arp_physical_in == NULL) {
1572 HOOK_EVENT_INIT(&ipst->ips_arp_physical_out_event, NH_PHYSICAL_OUT);
1573 ipst->ips_arp_physical_out = net_event_register(ipst->ips_arp_net_data,
1574 &ipst->ips_arp_physical_out_event);
1575 if (ipst->ips_arp_physical_out == NULL) {
1580 HOOK_EVENT_INIT(&ipst->ips_arp_nic_events, NH_NIC_EVENTS);
1581 ipst->ips_arpnicevents = net_event_register(ipst->ips_arp_net_data,
1582 &ipst->ips_arp_nic_events);
1583 if (ipst->ips_arpnicevents == NULL) {
1590 arp_hook_destroy(ip_stack_t *ipst)
1592 if (ipst->ips_arpnicevents != NULL) {
1593 if (net_event_unregister(ipst->ips_arp_net_data,
1594 &ipst->ips_arp_nic_events) == 0)
1595 ipst->ips_arpnicevents = NULL;
1598 if (ipst->ips_arp_physical_out != NULL) {
1599 if (net_event_unregister(ipst->ips_arp_net_data,
1600 &ipst->ips_arp_physical_out_event) == 0)
1601 ipst->ips_arp_physical_out = NULL;
1604 if (ipst->ips_arp_physical_in != NULL) {
1605 if (net_event_unregister(ipst->ips_arp_net_data,
1606 &ipst->ips_arp_physical_in_event) == 0)
1607 ipst->ips_arp_physical_in = NULL;
1610 (void) net_family_unregister(ipst->ips_arp_net_data,
1611 &ipst->ips_arproot);
1615 arp_hook_shutdown(ip_stack_t *ipst)
1617 if (ipst->ips_arp_physical_in != NULL) {
1618 (void) net_event_shutdown(ipst->ips_arp_net_data,
1619 &ipst->ips_arp_physical_in_event);
1621 if (ipst->ips_arp_physical_out != NULL) {
1622 (void) net_event_shutdown(ipst->ips_arp_net_data,
1623 &ipst->ips_arp_physical_out_event);
1625 if (ipst->ips_arpnicevents != NULL) {
1626 (void) net_event_shutdown(ipst->ips_arp_net_data,
1627 &ipst->ips_arp_nic_events);