4 * The contents of this file are subject to the terms of the
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 * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 */
25
26 #ifndef _SYS_AGGR_IMPL_H
27 #define _SYS_AGGR_IMPL_H
28
29 #include <sys/types.h>
30 #include <sys/cred.h>
31 #include <sys/mac_ether.h>
32 #include <sys/mac_provider.h>
33 #include <sys/mac_client.h>
34 #include <sys/mac_client_priv.h>
35 #include <sys/aggr_lacp.h>
36
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40
41 #ifdef _KERNEL
42
43 #define AGGR_MINOR_CTL 1 /* control interface minor */
290 const uchar_t *, aggr_lacp_mode_t, aggr_lacp_timer_t);
291 extern void aggr_grp_multicst_port(aggr_port_t *, boolean_t);
292 extern uint_t aggr_grp_count(void);
293
294 extern void aggr_port_init(void);
295 extern void aggr_port_fini(void);
296 extern int aggr_port_create(aggr_grp_t *, const datalink_id_t, boolean_t,
297 aggr_port_t **);
298 extern void aggr_port_delete(aggr_port_t *);
299 extern void aggr_port_free(aggr_port_t *);
300 extern int aggr_port_start(aggr_port_t *);
301 extern void aggr_port_stop(aggr_port_t *);
302 extern int aggr_port_promisc(aggr_port_t *, boolean_t);
303 extern int aggr_port_unicst(aggr_port_t *);
304 extern int aggr_port_multicst(void *, boolean_t, const uint8_t *);
305 extern uint64_t aggr_port_stat(aggr_port_t *, uint_t);
306 extern boolean_t aggr_port_notify_link(aggr_grp_t *, aggr_port_t *);
307 extern void aggr_port_init_callbacks(aggr_port_t *);
308
309 extern void aggr_recv_cb(void *, mac_resource_handle_t, mblk_t *, boolean_t);
310
311 extern void aggr_tx_ring_update(void *, uintptr_t);
312 extern void aggr_tx_notify_thread(void *);
313 extern void aggr_send_port_enable(aggr_port_t *);
314 extern void aggr_send_port_disable(aggr_port_t *);
315 extern void aggr_send_update_policy(aggr_grp_t *, uint32_t);
316
317 extern void aggr_lacp_init(void);
318 extern void aggr_lacp_fini(void);
319 extern void aggr_lacp_init_port(aggr_port_t *);
320 extern void aggr_lacp_init_grp(aggr_grp_t *);
321 extern void aggr_lacp_set_mode(aggr_grp_t *, aggr_lacp_mode_t,
322 aggr_lacp_timer_t);
323 extern void aggr_lacp_update_mode(aggr_grp_t *, aggr_lacp_mode_t);
324 extern void aggr_lacp_update_timer(aggr_grp_t *, aggr_lacp_timer_t);
325 extern void aggr_lacp_rx_enqueue(aggr_port_t *, mblk_t *);
326 extern void aggr_lacp_port_attached(aggr_port_t *);
327 extern void aggr_lacp_port_detached(aggr_port_t *);
328 extern void aggr_port_lacp_set_mode(aggr_grp_t *, aggr_port_t *);
329
|
4 * The contents of this file are subject to the terms of the
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 * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 * Copyright 2012 OmniTI Computer Consulting, Inc All rights reserved.
25 */
26
27 #ifndef _SYS_AGGR_IMPL_H
28 #define _SYS_AGGR_IMPL_H
29
30 #include <sys/types.h>
31 #include <sys/cred.h>
32 #include <sys/mac_ether.h>
33 #include <sys/mac_provider.h>
34 #include <sys/mac_client.h>
35 #include <sys/mac_client_priv.h>
36 #include <sys/aggr_lacp.h>
37
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41
42 #ifdef _KERNEL
43
44 #define AGGR_MINOR_CTL 1 /* control interface minor */
291 const uchar_t *, aggr_lacp_mode_t, aggr_lacp_timer_t);
292 extern void aggr_grp_multicst_port(aggr_port_t *, boolean_t);
293 extern uint_t aggr_grp_count(void);
294
295 extern void aggr_port_init(void);
296 extern void aggr_port_fini(void);
297 extern int aggr_port_create(aggr_grp_t *, const datalink_id_t, boolean_t,
298 aggr_port_t **);
299 extern void aggr_port_delete(aggr_port_t *);
300 extern void aggr_port_free(aggr_port_t *);
301 extern int aggr_port_start(aggr_port_t *);
302 extern void aggr_port_stop(aggr_port_t *);
303 extern int aggr_port_promisc(aggr_port_t *, boolean_t);
304 extern int aggr_port_unicst(aggr_port_t *);
305 extern int aggr_port_multicst(void *, boolean_t, const uint8_t *);
306 extern uint64_t aggr_port_stat(aggr_port_t *, uint_t);
307 extern boolean_t aggr_port_notify_link(aggr_grp_t *, aggr_port_t *);
308 extern void aggr_port_init_callbacks(aggr_port_t *);
309
310 extern void aggr_recv_cb(void *, mac_resource_handle_t, mblk_t *, boolean_t);
311 extern void aggr_recv_promisc_cb(void *, mac_resource_handle_t, mblk_t *,
312 boolean_t);
313
314 extern void aggr_tx_ring_update(void *, uintptr_t);
315 extern void aggr_tx_notify_thread(void *);
316 extern void aggr_send_port_enable(aggr_port_t *);
317 extern void aggr_send_port_disable(aggr_port_t *);
318 extern void aggr_send_update_policy(aggr_grp_t *, uint32_t);
319
320 extern void aggr_lacp_init(void);
321 extern void aggr_lacp_fini(void);
322 extern void aggr_lacp_init_port(aggr_port_t *);
323 extern void aggr_lacp_init_grp(aggr_grp_t *);
324 extern void aggr_lacp_set_mode(aggr_grp_t *, aggr_lacp_mode_t,
325 aggr_lacp_timer_t);
326 extern void aggr_lacp_update_mode(aggr_grp_t *, aggr_lacp_mode_t);
327 extern void aggr_lacp_update_timer(aggr_grp_t *, aggr_lacp_timer_t);
328 extern void aggr_lacp_rx_enqueue(aggr_port_t *, mblk_t *);
329 extern void aggr_lacp_port_attached(aggr_port_t *);
330 extern void aggr_lacp_port_detached(aggr_port_t *);
331 extern void aggr_port_lacp_set_mode(aggr_grp_t *, aggr_port_t *);
332
|