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);
|