OpenNSL API Guide and Reference Manual
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,
78 
79 /***************************************************************************/
89 extern int opennsl_multicast_destroy(
90  int unit,
92 
93 /***************************************************************************/
119  int unit,
120  opennsl_multicast_t group,
122  opennsl_if_t intf,
123  opennsl_if_t *encap_id) LIB_DLL_EXPORTED ;
124 
125 /***************************************************************************/
142  int unit,
143  opennsl_multicast_t group,
145  opennsl_vlan_t vlan,
146  opennsl_if_t *encap_id) LIB_DLL_EXPORTED ;
147 
148 /***************************************************************************/
169  int unit,
170  opennsl_multicast_t group,
172  opennsl_gport_t vlan_port_id,
173  opennsl_if_t *encap_id) LIB_DLL_EXPORTED ;
174 
175 /***************************************************************************/
191  int unit,
192  opennsl_multicast_t group,
193  opennsl_if_t intf,
194  opennsl_if_t *encap_id) LIB_DLL_EXPORTED ;
195 
196 /***************************************************************************/
216  int unit,
217  opennsl_multicast_t group,
219  opennsl_if_t encap_id) LIB_DLL_EXPORTED ;
220 
221 /***************************************************************************/
240  int unit,
241  opennsl_multicast_t group,
243  opennsl_if_t encap_id) LIB_DLL_EXPORTED ;
244 
245 /***************************************************************************/
256  int unit,
258 
259 /***************************************************************************/
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 /***************************************************************************/
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 /***************************************************************************/
341  int unit,
342  opennsl_multicast_t group,
344  opennsl_if_t encap_id) LIB_DLL_EXPORTED ;
345 
346 /***************************************************************************/
362  int unit,
363  opennsl_multicast_t group,
365  opennsl_if_t encap_id) LIB_DLL_EXPORTED ;
366 
367 /***************************************************************************/
379  int unit,
381 
382 /***************************************************************************/
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 /***************************************************************************/
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 /***************************************************************************/
481  int unit,
483 
484 /***************************************************************************/
505  int unit,
506  uint32 type_flag,
507  opennsl_multicast_t *group_min,
509 
510 #endif /* OPENNSL_HIDE_DISPATCHABLE */
511 
513  int unit,
514  opennsl_multicast_t group,
515  uint32 flags,
516  void *user_data);
517 
518 #ifndef OPENNSL_HIDE_DISPATCHABLE
519 
520 /***************************************************************************/
538  int unit,
540  uint32 flags,
541  void *user_data) LIB_DLL_EXPORTED ;
542 
543 #endif /* OPENNSL_HIDE_DISPATCHABLE */
544 
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