diff options
Diffstat (limited to 'usr/src/uts/common/sys')
-rw-r--r-- | usr/src/uts/common/sys/dlpi.h | 18 | ||||
-rw-r--r-- | usr/src/uts/common/sys/fs/sdev_impl.h | 4 | ||||
-rw-r--r-- | usr/src/uts/common/sys/hook_event.h | 4 | ||||
-rw-r--r-- | usr/src/uts/common/sys/neti.h | 6 | ||||
-rw-r--r-- | usr/src/uts/common/sys/netstack.h | 5 | ||||
-rw-r--r-- | usr/src/uts/common/sys/sysmacros.h | 3 |
6 files changed, 33 insertions, 7 deletions
diff --git a/usr/src/uts/common/sys/dlpi.h b/usr/src/uts/common/sys/dlpi.h index 355280f920..3af7b7bca7 100644 --- a/usr/src/uts/common/sys/dlpi.h +++ b/usr/src/uts/common/sys/dlpi.h @@ -35,11 +35,8 @@ #ifndef _SYS_DLPI_H #define _SYS_DLPI_H -#pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.2 */ - #include <sys/types.h> #include <sys/stream.h> - #ifdef __cplusplus extern "C" { #endif @@ -51,10 +48,21 @@ extern "C" { #define DLIOCRAW (DLIOC|1) /* M_DATA "raw" mode */ #define DLIOCNATIVE (DLIOC|2) /* Native traffic mode */ #define DLIOCMARGININFO (DLIOC|3) /* margin size info */ +#define DLIOCIPNETINFO (DLIOC|4) /* ipnet header */ #define DLIOCHDRINFO (DLIOC|10) /* IP fast-path */ - #define DL_IOC_HDR_INFO DLIOCHDRINFO +#define DL_IPNETINFO_VERSION 0x1 + +typedef struct dl_ipnetinfo { + uint8_t dli_version; /* DL_IPNETINFO_* version */ + uint8_t dli_ipver; /* packet IP header version */ + uint16_t dli_len; /* length of dl_ipnetinfo_t */ + uint32_t dli_pad; /* alignment pad */ + uint64_t dli_srczone; /* packet source zone ID (if any) */ + uint64_t dli_dstzone; /* packet dest zone ID (if any) */ +} dl_ipnetinfo_t; + /* * DLPI revision definition history */ @@ -264,7 +272,7 @@ extern "C" { #define DL_IPV6 0x80000002ul /* IPv6 Tunnel Link */ #define SUNW_DL_VNI 0x80000003ul /* Virtual network interface */ #define DL_WIFI 0x80000004ul /* IEEE 802.11 */ - +#define DL_IPNET 0x80000005ul /* ipnet(7D) link */ /* * DLPI provider service supported. * These must be allowed to be bitwise-OR for dl_service_mode in diff --git a/usr/src/uts/common/sys/fs/sdev_impl.h b/usr/src/uts/common/sys/fs/sdev_impl.h index 7bf24fb96a..10ac3b60b6 100644 --- a/usr/src/uts/common/sys/fs/sdev_impl.h +++ b/usr/src/uts/common/sys/fs/sdev_impl.h @@ -271,6 +271,7 @@ typedef enum { #define SDEV_VTOR_INVALID -1 #define SDEV_VTOR_SKIP 0 #define SDEV_VTOR_VALID 1 +#define SDEV_VTOR_STALE 2 /* convenient macros */ #define SDEV_IS_GLOBAL(dv) \ @@ -626,6 +627,7 @@ extern int prof_lookup(); extern void prof_filldir(struct sdev_node *); extern int devpts_validate(struct sdev_node *dv); extern int devnet_validate(struct sdev_node *dv); +extern int devipnet_validate(struct sdev_node *dv); extern int devvt_validate(struct sdev_node *dv); extern void *sdev_get_vtor(struct sdev_node *dv); @@ -657,11 +659,13 @@ extern kmem_cache_t *sdev_node_cache; extern struct vnodeops *sdev_vnodeops; extern struct vnodeops *devpts_vnodeops; extern struct vnodeops *devnet_vnodeops; +extern struct vnodeops *devipnet_vnodeops; extern struct vnodeops *devvt_vnodeops; extern struct sdev_data *sdev_origins; /* mount info for global /dev instance */ extern const fs_operation_def_t sdev_vnodeops_tbl[]; extern const fs_operation_def_t devpts_vnodeops_tbl[]; extern const fs_operation_def_t devnet_vnodeops_tbl[]; +extern const fs_operation_def_t devipnet_vnodeops_tbl[]; extern const fs_operation_def_t devvt_vnodeops_tbl[]; extern const fs_operation_def_t devsys_vnodeops_tbl[]; extern const fs_operation_def_t devpseudo_vnodeops_tbl[]; diff --git a/usr/src/uts/common/sys/hook_event.h b/usr/src/uts/common/sys/hook_event.h index df99a67956..f9f29c845b 100644 --- a/usr/src/uts/common/sys/hook_event.h +++ b/usr/src/uts/common/sys/hook_event.h @@ -74,7 +74,9 @@ typedef enum nic_event { NE_UNPLUMB, NE_UP, NE_DOWN, - NE_ADDRESS_CHANGE + NE_ADDRESS_CHANGE, + NE_LIF_UP, + NE_LIF_DOWN } nic_event_t; typedef void *nic_event_data_t; diff --git a/usr/src/uts/common/sys/neti.h b/usr/src/uts/common/sys/neti.h index db4a74dd3d..33276bf3c0 100644 --- a/usr/src/uts/common/sys/neti.h +++ b/usr/src/uts/common/sys/neti.h @@ -127,6 +127,10 @@ struct net_protocol_s { int (*netp_getpmtuenabled)(net_handle_t); int (*netp_getlifaddr)(net_handle_t, phy_if_t, lif_if_t, size_t, net_ifaddr_t [], void *); + int (*neti_getlifzone)(net_handle_t, phy_if_t, lif_if_t, + zoneid_t *); + int (*neti_getlifflags)(net_handle_t, phy_if_t, lif_if_t, + uint64_t *); phy_if_t (*netp_phygetnext)(net_handle_t, phy_if_t); phy_if_t (*netp_phylookup)(net_handle_t, const char *); lif_if_t (*netp_lifgetnext)(net_handle_t, phy_if_t, lif_if_t); @@ -274,6 +278,8 @@ extern int net_getmtu(net_handle_t, phy_if_t, lif_if_t); extern int net_getpmtuenabled(net_handle_t); extern int net_getlifaddr(net_handle_t, phy_if_t, lif_if_t, int, net_ifaddr_t [], void *); +extern zoneid_t net_getlifzone(net_handle_t, phy_if_t, lif_if_t, zoneid_t *); +extern int net_getlifflags(net_handle_t, phy_if_t, lif_if_t, uint64_t *); extern phy_if_t net_phygetnext(net_handle_t, phy_if_t); extern phy_if_t net_phylookup(net_handle_t, const char *); extern lif_if_t net_lifgetnext(net_handle_t, phy_if_t, lif_if_t); diff --git a/usr/src/uts/common/sys/netstack.h b/usr/src/uts/common/sys/netstack.h index 55acab834c..e44efab458 100644 --- a/usr/src/uts/common/sys/netstack.h +++ b/usr/src/uts/common/sys/netstack.h @@ -78,7 +78,8 @@ typedef id_t netstackid_t; #define NS_IPSECAH 13 #define NS_IPSECESP 14 #define NS_TUN 15 -#define NS_MAX (NS_TUN+1) +#define NS_IPNET 16 +#define NS_MAX (NS_IPNET+1) /* * State maintained for each module which tracks the state of @@ -151,6 +152,7 @@ struct netstack { struct ipsecah_stack *nu_ipsecah; struct ipsecesp_stack *nu_ipsecesp; struct tun_stack *nu_tun; + struct ipnet_stack *nu_ipnet; } nu_s; } netstack_u; #define netstack_modules netstack_u.nu_modules @@ -170,6 +172,7 @@ struct netstack { #define netstack_ipsecah netstack_u.nu_s.nu_ipsecah #define netstack_ipsecesp netstack_u.nu_s.nu_ipsecesp #define netstack_tun netstack_u.nu_s.nu_tun +#define netstack_ipnet netstack_u.nu_s.nu_ipnet nm_state_t netstack_m_state[NS_MAX]; /* module state */ diff --git a/usr/src/uts/common/sys/sysmacros.h b/usr/src/uts/common/sys/sysmacros.h index 9695982dcc..89a672db2f 100644 --- a/usr/src/uts/common/sys/sysmacros.h +++ b/usr/src/uts/common/sys/sysmacros.h @@ -57,6 +57,9 @@ extern "C" { #ifndef ABS #define ABS(a) ((a) < 0 ? -(a) : (a)) #endif +#ifndef SIGNOF +#define SIGNOF(a) ((a) < 0 ? -1 : (a) > 0) +#endif #ifdef _KERNEL |