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/mac_impl.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/mac_impl.h')
-rw-r--r-- | usr/src/uts/common/sys/mac_impl.h | 58 |
1 files changed, 42 insertions, 16 deletions
diff --git a/usr/src/uts/common/sys/mac_impl.h b/usr/src/uts/common/sys/mac_impl.h index d8fdcaf8dc..c0acfc5c37 100644 --- a/usr/src/uts/common/sys/mac_impl.h +++ b/usr/src/uts/common/sys/mac_impl.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. */ @@ -35,15 +35,6 @@ extern "C" { #endif -/* - * Statistics maintained internally by the mac module. - */ -enum mac_mod_stat { - MAC_STAT_LINK_STATE, - MAC_STAT_LINK_UP, - MAC_STAT_PROMISC -}; - typedef struct mac_multicst_addr_s mac_multicst_addr_t; struct mac_multicst_addr_s { @@ -52,6 +43,14 @@ struct mac_multicst_addr_s { uint8_t mma_addr[MAXMACADDRLEN]; }; +typedef struct mac_margin_req_s mac_margin_req_t; + +struct mac_margin_req_s { + mac_margin_req_t *mmr_nextp; + uint_t mmr_ref; + uint32_t mmr_margin; +}; + typedef struct mac_notify_fn_s mac_notify_fn_t; struct mac_notify_fn_s { @@ -118,9 +117,11 @@ typedef struct mac_vnic_tx_s { * Each registered MAC is associated with a mac_t structure. */ typedef struct mac_impl_s { + /* + * The following fields are set in mac_register() and will not be + * changed until mac_unregister(). No lock is needed to access them. + */ char mi_name[LIFNAMSIZ]; - const char *mi_drvname; - uint_t mi_instance; void *mi_driver; /* Driver private data */ mac_info_t mi_info; mactype_t *mi_type; @@ -128,10 +129,22 @@ typedef struct mac_impl_s { size_t mi_pdata_size; mac_callbacks_t *mi_callbacks; dev_info_t *mi_dip; + minor_t mi_minor; + dev_t mi_phy_dev; + kstat_t *mi_ksp; + uint_t mi_kstat_count; + mac_txinfo_t mi_txinfo; + mac_txinfo_t mi_txloopinfo; + + krwlock_t mi_gen_lock; + uint32_t mi_oref; uint32_t mi_ref; boolean_t mi_disabled; + boolean_t mi_exclusive; + krwlock_t mi_state_lock; uint_t mi_active; + krwlock_t mi_data_lock; link_state_t mi_linkstate; link_state_t mi_lastlinkstate; @@ -140,25 +153,26 @@ typedef struct mac_impl_s { uint8_t mi_addr[MAXMACADDRLEN]; uint8_t mi_dstaddr[MAXMACADDRLEN]; mac_multicst_addr_t *mi_mmap; + krwlock_t mi_notify_lock; uint32_t mi_notify_bits; kmutex_t mi_notify_bits_lock; kthread_t *mi_notify_thread; mac_notify_fn_t *mi_mnfp; kcondvar_t mi_notify_cv; + krwlock_t mi_rx_lock; mac_rx_fn_t *mi_mrfp; krwlock_t mi_tx_lock; mac_txloop_fn_t *mi_mtfp; + krwlock_t mi_resource_lock; mac_resource_add_t mi_resource_add; void *mi_resource_add_arg; - kstat_t *mi_ksp; - uint_t mi_kstat_count; + kmutex_t mi_activelink_lock; boolean_t mi_activelink; - mac_txinfo_t mi_txinfo; - mac_txinfo_t mi_txloopinfo; + uint32_t mi_rx_ref; /* #threads in mac_rx() */ uint32_t mi_rx_removed; /* #callbacks marked */ /* for removal */ @@ -171,11 +185,23 @@ typedef struct mac_impl_s { mac_txinfo_t mi_vnic_txloopinfo; mac_getcapab_t mi_vnic_getcapab_fn; void *mi_vnic_getcapab_arg; + + boolean_t mi_legacy; + uint32_t mi_unsup_note; + uint32_t mi_margin; + + /* + * List of margin value requests added by mac clients. This list is + * sorted: the first one has the greatest value. + */ + mac_margin_req_t *mi_mmrp; } mac_impl_t; #define mi_getstat mi_callbacks->mc_getstat #define mi_start mi_callbacks->mc_start #define mi_stop mi_callbacks->mc_stop +#define mi_open mi_callbacks->mc_open +#define mi_close mi_callbacks->mc_close #define mi_setpromisc mi_callbacks->mc_setpromisc #define mi_multicst mi_callbacks->mc_multicst #define mi_unicst mi_callbacks->mc_unicst |