diff options
| author | yz147064 <none@none> | 2008-01-23 18:09:15 -0800 |
|---|---|---|
| committer | yz147064 <none@none> | 2008-01-23 18:09:15 -0800 |
| commit | d62bc4badc1c1f1549c961cfb8b420e650e1272b (patch) | |
| tree | 9f466859e9cfb73da13b64261432aba4683f19ad /usr/src/uts/common/sys/dld.h | |
| parent | d38257c4392a9dd690c2f7f2383236c1fc80e509 (diff) | |
| download | illumos-joyent-d62bc4badc1c1f1549c961cfb8b420e650e1272b.tar.gz | |
PSARC/2006/499 Clearview Nemo unification and vanity naming
PSARC/2007/527 Addendum for Clearview Vanity Naming and Nemo Unification
PSARC/2008/002 Clearview UV Updates
6310766 vlan statistics get reset at unplumb time
6320515 dladm commands with "-R" option should not take effect immediately
6433732 Simplify the GLDv3 control path by making its processing asynchronous
6445912 dladm show-link fails to show a specific link in the debug version
6452413 dladm show-link doesn't show VLAN links for GLDv2 drivers
6504433 libwladm's use of wladm_wlresult2status() needs an overhaul
6504507 dladm set-linkprop failure message is unclear
6534289 DR should work with aggregations
6535719 dladm_aggr_port_attr_db_t`lp_devname should be MAXNAMELEN, not MAXNAMELEN + 1
6539634 GLDv3 should DL_ERROR_ACK a DL_UDQOS_REQ with DL_OUTSTATE when the stream is DL_UNATTACHED
6540246 libdladm should not guess zoneid from DLDIOCZIDGET ioctl errno
6544195 dladm show-dev assumes GLDv3 stats.. incompatible with GLDv2
6563295 dladm show-linkprop -P does not work properly for unavailable links
6577618 integrate network vanity naming and nemo unification
6600446 links assigned to a local zone are still aggregatable by global zone
6607572 "boot net - install" can trigger assertion failure in dld_str_attach()
6613956 "svccfg import -" does not work as bfu expects
6637596 invalid assertion in ip_soft_ring_assignment()
6642350 kernel DLPI processing routines are long overdue
6643338 GLDv3 PPA hack VLAN ID checks don't always work
6647203 bfu: smf_delete_manifest() does not work for non-global zones
6649885 DL_IB GLDv3 mactype plugin must fill in its mtr_nativetype
6650395 libuuid should be lint-clean and linted nightly
--HG--
rename : usr/src/cmd/dladm/aggregation.conf => deleted_files/usr/src/cmd/dladm/aggregation.conf
rename : usr/src/cmd/dladm/linkprop.conf => deleted_files/usr/src/cmd/dladm/linkprop.conf
rename : usr/src/lib/libinetcfg/common/inetcfg_nic.c => deleted_files/usr/src/lib/libinetcfg/common/inetcfg_nic.c
rename : usr/src/lib/libinetcfg/common/inetcfg_nic.h => deleted_files/usr/src/lib/libinetcfg/common/inetcfg_nic.h
Diffstat (limited to 'usr/src/uts/common/sys/dld.h')
| -rw-r--r-- | usr/src/uts/common/sys/dld.h | 127 |
1 files changed, 93 insertions, 34 deletions
diff --git a/usr/src/uts/common/sys/dld.h b/usr/src/uts/common/sys/dld.h index 71555d364b..8cc70e52f9 100644 --- a/usr/src/uts/common/sys/dld.h +++ b/usr/src/uts/common/sys/dld.h @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Copyright 2008 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -36,6 +36,8 @@ #include <sys/stream.h> #include <sys/mac.h> #include <sys/dls.h> +#include <sys/conf.h> +#include <sys/sad.h> #include <net/if.h> #ifdef __cplusplus @@ -47,9 +49,6 @@ extern "C" { */ #define DLD_INFO "Data-Link Driver v%I%" -#define DLD_MAX_PPA 999 -#define DLD_MAX_MINOR (DLD_MAX_PPA + 1) - /* * Options: To enable an option set the property name to a non-zero value * in kernel/drv/dld.conf. @@ -93,31 +92,33 @@ extern "C" { */ #define DLDIOC ('D' << 24 | 'L' << 16 | 'D' << 8) -#define DLDIOCATTR (DLDIOC | 0x03) +#define DLDIOC_ATTR (DLDIOC | 0x03) typedef struct dld_ioc_attr { - char dia_name[IFNAMSIZ]; - char dia_dev[MAXNAMELEN]; + datalink_id_t dia_linkid; uint_t dia_max_sdu; - uint16_t dia_vid; } dld_ioc_attr_t; -#define DLDIOCVLAN (DLDIOC | 0x04) - -typedef struct dld_ioc_vlan { - char div_name[IFNAMSIZ]; - uint_t div_count; -} dld_ioc_vlan_t; - -typedef struct dld_vlan_info { - char dvi_name[IFNAMSIZ]; -} dld_vlan_info_t; - -typedef struct dld_hold_vlan { - char dhv_name[IFNAMSIZ]; - zoneid_t dhv_zid; - boolean_t dhv_docheck; -} dld_hold_vlan_t; +#define DLDIOC_VLAN_ATTR (DLDIOC | 0x04) +typedef struct dld_ioc_vlan_attr { + datalink_id_t div_vlanid; + uint16_t div_vid; + datalink_id_t div_linkid; + boolean_t div_force; + boolean_t div_implicit; +} dld_ioc_vlan_attr_t; + +#define DLDIOC_PHYS_ATTR (DLDIOC | 0x05) +typedef struct dld_ioc_phys_attr { + datalink_id_t dip_linkid; + /* + * Whether this physical link supports vanity naming. Note that + * physical links whose media type is not supported by GLDv3 + * can not support vanity naming. + */ + boolean_t dip_novanity; + char dip_dev[MAXLINKNAMELEN]; +} dld_ioc_phys_attr_t; /* * Secure objects ioctls @@ -137,33 +138,90 @@ typedef struct dld_secobj { uint_t so_len; } dld_secobj_t; -#define DLDIOCSECOBJSET (DLDIOC | 0x05) +#define DLDIOC_SECOBJ_SET (DLDIOC | 0x06) typedef struct dld_ioc_secobj_set { dld_secobj_t ss_obj; uint_t ss_flags; } dld_ioc_secobj_set_t; -#define DLDIOCSECOBJGET (DLDIOC | 0x06) +#define DLDIOC_SECOBJ_GET (DLDIOC | 0x07) typedef struct dld_ioc_secobj_get { dld_secobj_t sg_obj; uint_t sg_count; } dld_ioc_secobj_get_t; -#define DLDIOCSECOBJUNSET (DLDIOC | 0x07) +/* + * The following two slots were used outside of ON, so don't reuse them. + * + * #define DLDIOCHOLDVLAN (DLDIOC | 0x08) + * #define DLDIOCRELEVLAN (DLDIOC | 0x09) + */ + +#define DLDIOC_SECOBJ_UNSET (DLDIOC | 0x0a) typedef struct dld_ioc_secobj_unset { char su_name[DLD_SECOBJ_NAME_MAX]; } dld_ioc_secobj_unset_t; +#define DLDIOC_CREATE_VLAN (DLDIOC | 0x0b) +typedef struct dld_ioc_create_vlan { + datalink_id_t dic_vlanid; + datalink_id_t dic_linkid; + uint16_t dic_vid; + boolean_t dic_force; +} dld_ioc_create_vlan_t; + +#define DLDIOC_DELETE_VLAN (DLDIOC | 0x0c) +typedef struct dld_ioc_delete_vlan { + datalink_id_t did_linkid; +} dld_ioc_delete_vlan_t; + +#define DLDIOC_SETAUTOPUSH (DLDIOC | 0x0d) +#define DLDIOC_GETAUTOPUSH (DLDIOC | 0x0e) +#define DLDIOC_CLRAUTOPUSH (DLDIOC | 0x0f) +typedef struct dld_ioc_ap { + datalink_id_t dia_linkid; + uint_t dia_anchor; + uint_t dia_npush; + char dia_aplist[MAXAPUSH][FMNAMESZ+1]; +} dld_ioc_ap_t; + +#define DLDIOC_DOORSERVER (DLDIOC | 0x10) +typedef struct dld_ioc_door { + boolean_t did_start_door; +} dld_ioc_door_t; + +#define DLDIOC_RENAME (DLDIOC | 0x11) +typedef struct dld_ioc_rename { + datalink_id_t dir_linkid1; + datalink_id_t dir_linkid2; + char dir_link[MAXLINKNAMELEN]; +} dld_ioc_rename_t; + /* - * DLDIOCHOLDVLAN/DLDIOCRELEVLAN are added to support a "hold/release" - * operation on a VLAN. A hold will cause a VLAN to be created or the - * reference count will be increased, release will do the reverse. + * DLDIOC_SETZID sets the zoneid of a given link. It could cause a VLAN to be + * implicitly created. Note that we will hold a reference for the given link + * whenever it has a zoneid other than the global zone. */ -#define DLDIOCHOLDVLAN (DLDIOC | 0x08) +#define DLDIOC_SETZID (DLDIOC | 0x12) +typedef struct dld_ioc_setzid { + char dis_link[MAXLINKNAMELEN]; + zoneid_t dis_zid; +} dld_ioc_setzid_t; + +#define DLDIOC_GETZID (DLDIOC | 0x13) +typedef struct dld_ioc_getzid { + datalink_id_t dig_linkid; + zoneid_t dig_zid; +} dld_ioc_getzid_t; -#define DLDIOCRELEVLAN (DLDIOC | 0x09) - -#define DLDIOCZIDGET (DLDIOC | 0x0a) +/* + * data-link autopush configuration. + */ +struct dlautopush { + uint_t dap_anchor; + uint_t dap_npush; + char dap_aplist[MAXAPUSH][FMNAMESZ+1]; +}; #ifdef _KERNEL int dld_getinfo(dev_info_t *, ddi_info_cmd_t, void *, void **); @@ -173,6 +231,7 @@ void dld_wput(queue_t *, mblk_t *); void dld_wsrv(queue_t *); void dld_init_ops(struct dev_ops *, const char *); void dld_fini_ops(struct dev_ops *); +int dld_autopush(dev_t *, struct dlautopush *); #endif #ifdef __cplusplus |
