diff options
author | dh155122 <none@none> | 2007-01-19 16:59:38 -0800 |
---|---|---|
committer | dh155122 <none@none> | 2007-01-19 16:59:38 -0800 |
commit | f4b3ec61df05330d25f55a36b975b4d7519fdeb1 (patch) | |
tree | 395c234b901886c84a82603a767e031fca136e09 /usr/src/uts/common/sys/hook_impl.h | |
parent | 2e59fc6dac28cd69376c21d6b90a5624160ba94c (diff) | |
download | illumos-gate-f4b3ec61df05330d25f55a36b975b4d7519fdeb1.tar.gz |
PSARC 2006/366 IP Instances
6289221 RFE: Need virtualized ip-stack for each local zone
6512601 panic in ipsec_in_tag - allocation failure
6514637 error message from dhcpagent: add_pkt_opt: option type 60 is missing required value
6364643 RFE: allow persistent setting of interface flags per zone
6307539 RFE: Invalid network address causes zone boot failure
5041214 Allow IPMP configuration with zones
5005887 RFE: zoneadmd should support plumbing an interface via DHCP
4991139 RFE: zones should provide a mechanism to configure a defaultrouter for a zone
6218378 zoneadmd doesn't set the netmask for non-loopback addresses hosted on lo0
4963280 zones: need to virtualize the IPv6 default address selection mechanism
4963285 zones: need support of stateless address autoconfiguration for IPv6
5048068 zones don't boot if one of its interfaces has failed
5057154 RFE: ability to change interface status from within a zone
4963287 zones should support the plumbing of the first (and only) logical interface
4978517 TCP privileged port space should be partitioned per zone
5023347 zones don't work well with network routes other than default
4963372 investigate whether global zone can act as a router for local zones
6378364 RFE: Allow each zone to have its own virtual IPFilter
Diffstat (limited to 'usr/src/uts/common/sys/hook_impl.h')
-rw-r--r-- | usr/src/uts/common/sys/hook_impl.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/usr/src/uts/common/sys/hook_impl.h b/usr/src/uts/common/sys/hook_impl.h index d8e169b2ae..08112e4144 100644 --- a/usr/src/uts/common/sys/hook_impl.h +++ b/usr/src/uts/common/sys/hook_impl.h @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -34,6 +34,7 @@ #include <sys/hook.h> #include <sys/condvar_impl.h> +#include <sys/netstack.h> #ifdef __cplusplus extern "C" { @@ -106,6 +107,7 @@ typedef struct hook_family_int { SLIST_ENTRY(hook_family_int) hfi_entry; hook_event_int_head_t hfi_head; hook_family_t hfi_family; + void *hfi_ptr; } hook_family_int_t; /* @@ -115,19 +117,29 @@ SLIST_HEAD(hook_family_int_head, hook_family_int); typedef struct hook_family_int_head hook_family_int_head_t; /* + * hook stack instances + */ +struct hook_stack { + cvwaitlock_t hks_familylock; /* global lock */ + hook_family_int_head_t hks_familylist; /* family list head */ + netstack_t *hk_netstack; +}; +typedef struct hook_stack hook_stack_t; + +/* * Names of hooks families currently defined by Solaris */ #define Hn_ARP "arp" #define Hn_IPV4 "inet" #define Hn_IPV6 "inet6" -extern hook_family_int_t *hook_family_add(hook_family_t *); +extern hook_family_int_t *hook_family_add(hook_family_t *, hook_stack_t *); extern int hook_family_remove(hook_family_int_t *); extern hook_event_int_t *hook_event_add(hook_family_int_t *, hook_event_t *); extern int hook_event_remove(hook_family_int_t *, hook_event_t *); extern int hook_register(hook_family_int_t *, char *, hook_t *); extern int hook_unregister(hook_family_int_t *, char *, hook_t *); -extern int hook_run(hook_event_token_t, hook_data_t); +extern int hook_run(hook_event_token_t, hook_data_t, netstack_t *); #ifdef __cplusplus } |