Print this page
11490 SRS ring polling disabled for VLANs
11491 Want DLS bypass for VLAN traffic
11492 add VLVF bypass to ixgbe core
2869 duplicate packets with vnics over aggrs
11489 DLS stat delete and aggr kstat can deadlock
Portions contributed by: Theo Schlossnagle <jesus@omniti.com>
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Dan McDonald <danmcd@joyent.com>


   5  * Common Development and Distribution License (the "License").
   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 
  22 /*
  23  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  24  * Use is subject to license terms.
  25  * Copyright 2013 Joyent, Inc.  All rights reserved.
  26  */
  27 
  28 /*
  29  * This file contains *private* MAC API definitions. This header file
  30  * should only be included by kernel components which are part of the
  31  * GLDv3 stack (dld, dls, aggr, softmac).
  32  */
  33 
  34 #ifndef _SYS_MAC_CLIENT_PRIV_H
  35 #define _SYS_MAC_CLIENT_PRIV_H
  36 
  37 #include <sys/mac.h>
  38 #include <sys/mac_flow.h>
  39 
  40 #ifdef  __cplusplus
  41 extern "C" {
  42 #endif
  43 
  44 #ifdef  _KERNEL
  45 


 127 extern void mac_hwring_setup(mac_ring_handle_t, mac_resource_handle_t,
 128     mac_ring_handle_t);
 129 extern void mac_hwring_teardown(mac_ring_handle_t);
 130 extern int mac_hwring_disable_intr(mac_ring_handle_t);
 131 extern int mac_hwring_enable_intr(mac_ring_handle_t);
 132 extern int mac_hwring_start(mac_ring_handle_t);
 133 extern void mac_hwring_stop(mac_ring_handle_t);
 134 extern mblk_t *mac_hwring_poll(mac_ring_handle_t, int);
 135 extern mblk_t *mac_hwring_tx(mac_ring_handle_t, mblk_t *);
 136 extern int mac_hwring_getstat(mac_ring_handle_t, uint_t, uint64_t *);
 137 extern mblk_t *mac_hwring_send_priv(mac_client_handle_t,
 138     mac_ring_handle_t, mblk_t *);
 139 extern void mac_hwring_set_default(mac_handle_t, mac_ring_handle_t);
 140 
 141 #define MAC_HWRING_POLL(ring, bytes)                    \
 142         (((ring)->mr_info.mri_poll)                  \
 143         ((ring)->mr_info.mri_driver, (bytes)))
 144 
 145 extern int mac_hwgroup_addmac(mac_group_handle_t, const uint8_t *);
 146 extern int mac_hwgroup_remmac(mac_group_handle_t, const uint8_t *);


 147 


 148 extern void mac_set_upper_mac(mac_client_handle_t, mac_handle_t,
 149     mac_resource_props_t *);
 150 
 151 extern int mac_mark_exclusive(mac_handle_t);
 152 extern void mac_unmark_exclusive(mac_handle_t);
 153 
 154 extern uint_t mac_hwgrp_num(mac_handle_t, int);
 155 extern void mac_get_hwrxgrp_info(mac_handle_t, int, uint_t *, uint_t *,
 156     uint_t *, uint_t *, uint_t *, char *);
 157 extern void mac_get_hwtxgrp_info(mac_handle_t, int, uint_t *, uint_t *,
 158     uint_t *, uint_t *, uint_t *, char *);
 159 
 160 extern uint_t mac_txavail_get(mac_handle_t);
 161 extern uint_t mac_rxavail_get(mac_handle_t);
 162 extern uint_t mac_txrsvd_get(mac_handle_t);
 163 extern uint_t mac_rxrsvd_get(mac_handle_t);
 164 extern uint_t mac_rxhwlnksavail_get(mac_handle_t);
 165 extern uint_t mac_rxhwlnksrsvd_get(mac_handle_t);
 166 extern uint_t mac_txhwlnksavail_get(mac_handle_t);
 167 extern uint_t mac_txhwlnksrsvd_get(mac_handle_t);




   5  * Common Development and Distribution License (the "License").
   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 
  22 /*
  23  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  24  * Use is subject to license terms.
  25  * Copyright 2018 Joyent, Inc.
  26  */
  27 
  28 /*
  29  * This file contains *private* MAC API definitions. This header file
  30  * should only be included by kernel components which are part of the
  31  * GLDv3 stack (dld, dls, aggr, softmac).
  32  */
  33 
  34 #ifndef _SYS_MAC_CLIENT_PRIV_H
  35 #define _SYS_MAC_CLIENT_PRIV_H
  36 
  37 #include <sys/mac.h>
  38 #include <sys/mac_flow.h>
  39 
  40 #ifdef  __cplusplus
  41 extern "C" {
  42 #endif
  43 
  44 #ifdef  _KERNEL
  45 


 127 extern void mac_hwring_setup(mac_ring_handle_t, mac_resource_handle_t,
 128     mac_ring_handle_t);
 129 extern void mac_hwring_teardown(mac_ring_handle_t);
 130 extern int mac_hwring_disable_intr(mac_ring_handle_t);
 131 extern int mac_hwring_enable_intr(mac_ring_handle_t);
 132 extern int mac_hwring_start(mac_ring_handle_t);
 133 extern void mac_hwring_stop(mac_ring_handle_t);
 134 extern mblk_t *mac_hwring_poll(mac_ring_handle_t, int);
 135 extern mblk_t *mac_hwring_tx(mac_ring_handle_t, mblk_t *);
 136 extern int mac_hwring_getstat(mac_ring_handle_t, uint_t, uint64_t *);
 137 extern mblk_t *mac_hwring_send_priv(mac_client_handle_t,
 138     mac_ring_handle_t, mblk_t *);
 139 extern void mac_hwring_set_default(mac_handle_t, mac_ring_handle_t);
 140 
 141 #define MAC_HWRING_POLL(ring, bytes)                    \
 142         (((ring)->mr_info.mri_poll)                  \
 143         ((ring)->mr_info.mri_driver, (bytes)))
 144 
 145 extern int mac_hwgroup_addmac(mac_group_handle_t, const uint8_t *);
 146 extern int mac_hwgroup_remmac(mac_group_handle_t, const uint8_t *);
 147 extern int mac_hwgroup_addvlan(mac_group_handle_t, uint16_t);
 148 extern int mac_hwgroup_remvlan(mac_group_handle_t, uint16_t);
 149 
 150 extern boolean_t mac_has_hw_vlan(mac_handle_t);
 151 
 152 extern void mac_set_upper_mac(mac_client_handle_t, mac_handle_t,
 153     mac_resource_props_t *);
 154 
 155 extern int mac_mark_exclusive(mac_handle_t);
 156 extern void mac_unmark_exclusive(mac_handle_t);
 157 
 158 extern uint_t mac_hwgrp_num(mac_handle_t, int);
 159 extern void mac_get_hwrxgrp_info(mac_handle_t, int, uint_t *, uint_t *,
 160     uint_t *, uint_t *, uint_t *, char *);
 161 extern void mac_get_hwtxgrp_info(mac_handle_t, int, uint_t *, uint_t *,
 162     uint_t *, uint_t *, uint_t *, char *);
 163 
 164 extern uint_t mac_txavail_get(mac_handle_t);
 165 extern uint_t mac_rxavail_get(mac_handle_t);
 166 extern uint_t mac_txrsvd_get(mac_handle_t);
 167 extern uint_t mac_rxrsvd_get(mac_handle_t);
 168 extern uint_t mac_rxhwlnksavail_get(mac_handle_t);
 169 extern uint_t mac_rxhwlnksrsvd_get(mac_handle_t);
 170 extern uint_t mac_txhwlnksavail_get(mac_handle_t);
 171 extern uint_t mac_txhwlnksrsvd_get(mac_handle_t);