OpenNSL API Guide and Reference Manual
Macros | Typedefs | Enumerations | Functions
multicast.h File Reference
#include <opennsl/types.h>
#include <opennsl/multicastX.h>

Go to the source code of this file.

Macros

#define OPENNSL_MULTICAST_EGRESS_GROUP   0x00000008
 
#define OPENNSL_MULTICAST_INGRESS_GROUP   0x00000004
 
#define OPENNSL_MULTICAST_TYPE_L2   0x00010000
 
#define OPENNSL_MULTICAST_TYPE_L3   0x00020000
 
#define OPENNSL_MULTICAST_TYPE_MASK   0xffff0000
 
#define OPENNSL_MULTICAST_TYPE_PORTS_GROUP   0x40000000
 
#define OPENNSL_MULTICAST_TYPE_VLAN   0x00400000
 
#define OPENNSL_MULTICAST_TYPE_VXLAN   0x08000000
 
#define OPENNSL_MULTICAST_WITH_ID   0x00000001
 

Typedefs

typedef enum
opennsl_multicast_control_e 
opennsl_multicast_control_t
 Multicast group controls.
 
typedef int(* opennsl_multicast_group_traverse_cb_t )(int unit, opennsl_multicast_t group, uint32 flags, void *user_data)
 

Enumerations

enum  opennsl_multicast_control_e {
  opennslMulticastControlMtu = 0,
  opennslMulticastVpTrunkResolve = 1,
  opennslMulticastRemapGroup = 2,
  opennslMulticastControlCount = 3
}
 Multicast group controls. More...
 

Functions

int opennsl_multicast_create (int unit, uint32 flags, opennsl_multicast_t *group) LIB_DLL_EXPORTED
 Create a multicast group for packet replication.
 
int opennsl_multicast_destroy (int unit, opennsl_multicast_t group) LIB_DLL_EXPORTED
 Destroy a multicast group.
 
int opennsl_multicast_egress_add (int unit, opennsl_multicast_t group, opennsl_gport_t port, opennsl_if_t encap_id) LIB_DLL_EXPORTED
 Add an encapsulated interface to a multicast group's replication list on a specific port.
 
int opennsl_multicast_egress_delete (int unit, opennsl_multicast_t group, opennsl_gport_t port, opennsl_if_t encap_id) LIB_DLL_EXPORTED
 Delete a port from a multicast group's replication list.
 
int opennsl_multicast_egress_delete_all (int unit, opennsl_multicast_t group) LIB_DLL_EXPORTED
 Delete all replications for the specified multicast index.
 
int opennsl_multicast_egress_get (int unit, opennsl_multicast_t group, int port_max, opennsl_gport_t *port_array, opennsl_if_t *encap_id_array, int *port_count) LIB_DLL_EXPORTED
 Get the set of encapsulated interfaces on specific ports which comprises a multicast group's replication list.
 
int opennsl_multicast_egress_object_encap_get (int unit, opennsl_multicast_t group, opennsl_if_t intf, opennsl_if_t *encap_id) LIB_DLL_EXPORTED
 Get the multicast encapsulation ID for egress_object type replication.
 
int opennsl_multicast_egress_set (int unit, opennsl_multicast_t group, int port_count, opennsl_gport_t *port_array, opennsl_if_t *encap_id_array) LIB_DLL_EXPORTED
 Assign a set of encapsulated interfaces on specific ports as a multicast group's replication list.
 
int opennsl_multicast_group_free_range_get (int unit, uint32 type_flag, opennsl_multicast_t *group_min, opennsl_multicast_t *group_max) LIB_DLL_EXPORTED
 Retrieve the minimum and maximum unallocated multicast groups for a given multicast type.
 
int opennsl_multicast_group_get (int unit, opennsl_multicast_t group, uint32 *flags) LIB_DLL_EXPORTED
 Retrieve the flags associated with a multicast group.
 
int opennsl_multicast_group_is_free (int unit, opennsl_multicast_t group) LIB_DLL_EXPORTED
 Request if the given multicast group is available on the device.
 
int opennsl_multicast_group_traverse (int unit, opennsl_multicast_group_traverse_cb_t trav_fn, uint32 flags, void *user_data) LIB_DLL_EXPORTED
 Iterate over the defined multicast groups of the type specified in 'flags'.
 
int opennsl_multicast_ingress_add (int unit, opennsl_multicast_t group, opennsl_gport_t port, opennsl_if_t encap_id) LIB_DLL_EXPORTED
 Add a port to a Ingress Multicast group's replication list.
 
int opennsl_multicast_ingress_delete (int unit, opennsl_multicast_t group, opennsl_gport_t port, opennsl_if_t encap_id) LIB_DLL_EXPORTED
 Delete a port from Ingress Multicast group's replication list.
 
int opennsl_multicast_ingress_delete_all (int unit, opennsl_multicast_t group) LIB_DLL_EXPORTED
 opennsl_multicast_egress_delete_all.
 
int opennsl_multicast_ingress_get (int unit, opennsl_multicast_t group, int port_max, opennsl_gport_t *port_array, opennsl_if_t *encap_id_array, int *port_count) LIB_DLL_EXPORTED
 opennsl_multicast_ingress_get.
 
int opennsl_multicast_ingress_set (int unit, opennsl_multicast_t group, int port_count, opennsl_gport_t *port_array, opennsl_if_t *encap_id_array) LIB_DLL_EXPORTED
 Add a set of ports to a Ingress multicast group's replication list.
 
int opennsl_multicast_init (int unit) LIB_DLL_EXPORTED
 Initialize the multicast module.
 
int opennsl_multicast_l2_encap_get (int unit, opennsl_multicast_t group, opennsl_gport_t port, opennsl_vlan_t vlan, opennsl_if_t *encap_id) LIB_DLL_EXPORTED
 Get the multicast encapsulation ID for L2 replication.
 
int opennsl_multicast_l3_encap_get (int unit, opennsl_multicast_t group, opennsl_gport_t port, opennsl_if_t intf, opennsl_if_t *encap_id) LIB_DLL_EXPORTED
 Get the multicast encapsulation ID for L3 replication.
 
int opennsl_multicast_vlan_encap_get (int unit, opennsl_multicast_t group, opennsl_gport_t port, opennsl_gport_t vlan_port_id, opennsl_if_t *encap_id) LIB_DLL_EXPORTED
 Get the multicast encapsulation ID for layer 2 logical port replication.