OpenNSL API Guide and Reference Manual
Welcome
OpenNSL Documentation
API Reference
Files
File List
Globals
include
opennsl
multicast.h
Go to the documentation of this file.
1
4
/*****************************************************************************
5
*
6
* (C) Copyright Broadcom Corporation 2013-2016
7
*
8
* Licensed under the Apache License, Version 2.0 (the "License");
9
* you may not use this file except in compliance with the License.
10
*
11
* You may obtain a copy of the License at
12
* http://www.apache.org/licenses/LICENSE-2.0
13
*
14
* Unless required by applicable law or agreed to in writing, software
15
* distributed under the License is distributed on an "AS IS" BASIS,
16
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
* See the License for the specific language governing permissions and
18
* limitations under the License.
19
*
20
***************************************************************************/
24
#ifndef __OPENNSL_MULTICAST_H__
25
#define __OPENNSL_MULTICAST_H__
26
27
#include <
opennsl/types.h
>
28
29
#define OPENNSL_MULTICAST_WITH_ID 0x00000001
30
#define OPENNSL_MULTICAST_TYPE_L2 0x00010000
31
#define OPENNSL_MULTICAST_TYPE_L3 0x00020000
32
#define OPENNSL_MULTICAST_TYPE_VLAN 0x00400000
33
#define OPENNSL_MULTICAST_TYPE_VXLAN 0x08000000
34
#define OPENNSL_MULTICAST_TYPE_PORTS_GROUP 0x40000000
35
#define OPENNSL_MULTICAST_TYPE_MASK 0xffff0000
36
#define OPENNSL_MULTICAST_INGRESS_GROUP 0x00000004
37
#define OPENNSL_MULTICAST_EGRESS_GROUP 0x00000008
38
#ifndef OPENNSL_HIDE_DISPATCHABLE
39
40
/***************************************************************************/
50
extern
int
opennsl_multicast_init
(
51
int
unit)
LIB_DLL_EXPORTED
;
52
53
/***************************************************************************/
74
extern
int
opennsl_multicast_create
(
75
int
unit,
76
uint32
flags,
77
opennsl_multicast_t
*group)
LIB_DLL_EXPORTED
;
78
79
/***************************************************************************/
89
extern
int
opennsl_multicast_destroy
(
90
int
unit,
91
opennsl_multicast_t
group)
LIB_DLL_EXPORTED
;
92
93
/***************************************************************************/
118
extern
int
opennsl_multicast_l3_encap_get
(
119
int
unit,
120
opennsl_multicast_t
group,
121
opennsl_gport_t
port
,
122
opennsl_if_t
intf,
123
opennsl_if_t
*encap_id)
LIB_DLL_EXPORTED
;
124
125
/***************************************************************************/
141
extern
int
opennsl_multicast_l2_encap_get
(
142
int
unit,
143
opennsl_multicast_t
group,
144
opennsl_gport_t
port
,
145
opennsl_vlan_t
vlan,
146
opennsl_if_t
*encap_id)
LIB_DLL_EXPORTED
;
147
148
/***************************************************************************/
168
extern
int
opennsl_multicast_vlan_encap_get
(
169
int
unit,
170
opennsl_multicast_t
group,
171
opennsl_gport_t
port
,
172
opennsl_gport_t
vlan_port_id,
173
opennsl_if_t
*encap_id)
LIB_DLL_EXPORTED
;
174
175
/***************************************************************************/
190
extern
int
opennsl_multicast_egress_object_encap_get
(
191
int
unit,
192
opennsl_multicast_t
group,
193
opennsl_if_t
intf,
194
opennsl_if_t
*encap_id)
LIB_DLL_EXPORTED
;
195
196
/***************************************************************************/
215
extern
int
opennsl_multicast_egress_add
(
216
int
unit,
217
opennsl_multicast_t
group,
218
opennsl_gport_t
port
,
219
opennsl_if_t
encap_id)
LIB_DLL_EXPORTED
;
220
221
/***************************************************************************/
239
extern
int
opennsl_multicast_egress_delete
(
240
int
unit,
241
opennsl_multicast_t
group,
242
opennsl_gport_t
port
,
243
opennsl_if_t
encap_id)
LIB_DLL_EXPORTED
;
244
245
/***************************************************************************/
255
extern
int
opennsl_multicast_egress_delete_all
(
256
int
unit,
257
opennsl_multicast_t
group)
LIB_DLL_EXPORTED
;
258
259
/***************************************************************************/
285
extern
int
opennsl_multicast_egress_set
(
286
int
unit,
287
opennsl_multicast_t
group,
288
int
port_count,
289
opennsl_gport_t
*port_array,
290
opennsl_if_t
*encap_id_array)
LIB_DLL_EXPORTED
;
291
292
/***************************************************************************/
317
extern
int
opennsl_multicast_egress_get
(
318
int
unit,
319
opennsl_multicast_t
group,
320
int
port_max,
321
opennsl_gport_t
*port_array,
322
opennsl_if_t
*encap_id_array,
323
int
*port_count)
LIB_DLL_EXPORTED
;
324
325
/***************************************************************************/
340
extern
int
opennsl_multicast_ingress_add
(
341
int
unit,
342
opennsl_multicast_t
group,
343
opennsl_gport_t
port
,
344
opennsl_if_t
encap_id)
LIB_DLL_EXPORTED
;
345
346
/***************************************************************************/
361
extern
int
opennsl_multicast_ingress_delete
(
362
int
unit,
363
opennsl_multicast_t
group,
364
opennsl_gport_t
port
,
365
opennsl_if_t
encap_id)
LIB_DLL_EXPORTED
;
366
367
/***************************************************************************/
378
extern
int
opennsl_multicast_ingress_delete_all
(
379
int
unit,
380
opennsl_multicast_t
group)
LIB_DLL_EXPORTED
;
381
382
/***************************************************************************/
399
extern
int
opennsl_multicast_ingress_set
(
400
int
unit,
401
opennsl_multicast_t
group,
402
int
port_count,
403
opennsl_gport_t
*port_array,
404
opennsl_if_t
*encap_id_array)
LIB_DLL_EXPORTED
;
405
406
/***************************************************************************/
426
extern
int
opennsl_multicast_ingress_get
(
427
int
unit,
428
opennsl_multicast_t
group,
429
int
port_max,
430
opennsl_gport_t
*port_array,
431
opennsl_if_t
*encap_id_array,
432
int
*port_count)
LIB_DLL_EXPORTED
;
433
434
/***************************************************************************/
456
extern
int
opennsl_multicast_group_get
(
457
int
unit,
458
opennsl_multicast_t
group,
459
uint32
*flags)
LIB_DLL_EXPORTED
;
460
461
/***************************************************************************/
480
extern
int
opennsl_multicast_group_is_free
(
481
int
unit,
482
opennsl_multicast_t
group)
LIB_DLL_EXPORTED
;
483
484
/***************************************************************************/
504
extern
int
opennsl_multicast_group_free_range_get
(
505
int
unit,
506
uint32
type_flag,
507
opennsl_multicast_t
*group_min,
508
opennsl_multicast_t
*group_max)
LIB_DLL_EXPORTED
;
509
510
#endif
/* OPENNSL_HIDE_DISPATCHABLE */
511
512
typedef
int (*
opennsl_multicast_group_traverse_cb_t
)(
513
int
unit,
514
opennsl_multicast_t
group,
515
uint32
flags,
516
void
*user_data);
517
518
#ifndef OPENNSL_HIDE_DISPATCHABLE
519
520
/***************************************************************************/
537
extern
int
opennsl_multicast_group_traverse
(
538
int
unit,
539
opennsl_multicast_group_traverse_cb_t
trav_fn,
540
uint32
flags,
541
void
*user_data)
LIB_DLL_EXPORTED
;
542
543
#endif
/* OPENNSL_HIDE_DISPATCHABLE */
544
546
typedef
enum
opennsl_multicast_control_e
{
547
opennslMulticastControlMtu
= 0,
548
opennslMulticastVpTrunkResolve
= 1,
550
opennslMulticastRemapGroup
= 2,
551
opennslMulticastControlCount
= 3
552
}
opennsl_multicast_control_t
;
553
/* __doxy_func_body_end__ */
554
555
#ifndef OPENNSL_HIDE_DISPATCHABLE
556
557
#endif
/* OPENNSL_HIDE_DISPATCHABLE */
558
559
#include <
opennsl/multicastX.h
>
560
#endif
/* __OPENNSL_MULTICAST_H__ */
561
© 2016-17 by Broadcom Limited. All rights reserved.