OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
gmp_router.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  gmpr_instance_context_
 
struct  gmpr_client_context_
 
struct  gmpr_client_notification_
 
struct  gmpr_client_host_notification_
 
struct  gmpr_client_intf_list_
 
struct  gmpr_intf_group_entry_
 
struct  gmpr_intf_host_entry_
 

Macros

#define GMPR_INTF_LIST_SIZE   10 /* Number of interfaces per entry */
 

Typedefs

typedef void(* gmpr_notif_cb )(void *cli_context)
 
typedef boolean(* gmpr_oif_map_cb )(void *inst_context, gmpx_intf_id rcv_if, uint8_t *group_addr, uint8_t *source_addr, gmpx_intf_id *output_if)
 
typedef boolean(* gmpr_policy_cb )(void *inst_context, gmpx_intf_id rcv_if, uint8_t *group_addr, uint8_t *source_addr, gmpx_packet_attr attribute)
 
typedef boolean(* gmpr_ssm_check_cb )(void *inst_context, gmpx_intf_id rcv_if, uint8_t *group_addr)
 
typedef void(* gmpr_querier_cb )(void *cli_context, gmpx_intf_id intf, boolean querier, uint8_t *querier_addr)
 
typedef struct
gmpr_instance_context_ 
gmpr_instance_context
 
typedef struct gmpr_client_context_ gmpr_client_context
 
typedef struct
gmpr_client_notification_ 
gmpr_client_notification
 
typedef struct
gmpr_client_host_notification_ 
gmpr_client_host_notification
 
typedef struct
gmpr_client_intf_list_ 
gmpr_client_intf_list
 
typedef struct
gmpr_intf_group_entry_ 
gmpr_intf_group_entry
 
typedef struct
gmpr_intf_host_entry_ 
gmpr_intf_host_entry
 

Enumerations

enum  gmpr_client_notification_type {
  GMPR_NOTIF_GROUP_DELETE, GMPR_NOTIF_GROUP_ADD_EXCL, GMPR_NOTIF_GROUP_ADD_INCL, GMPR_NOTIF_ALLOW_SOURCE,
  GMPR_NOTIF_BLOCK_SOURCE, GMPR_NOTIF_REFRESH_END, GMPR_NOTIF_GROUP_STATE
}
 
enum  gmpr_client_host_notification_type {
  GMPR_NOTIF_HOST_UNKNOWN, GMPR_NOTIF_HOST_JOIN, GMPR_NOTIF_HOST_LEAVE, GMPR_NOTIF_HOST_TIMEOUT,
  GMPR_NOTIF_HOST_IFDOWN
}
 
enum  gmpr_intf_list_match { INTF_LIST_LOOSE, INTF_LIST_STRICT }
 

Functions

gmp_instance_id gmpr_create_instance (gmp_proto proto, void *inst_context, gmpr_instance_context *context)
 
void gmpr_destroy_instance (gmp_instance_id instance_id)
 
gmp_client_id gmpr_register (gmp_instance_id instance_id, void *cli_context, gmpr_client_context *context)
 
void gmpr_detach (gmp_client_id client_id)
 
void gmpr_refresh (gmp_client_id client_id, boolean flush)
 
void gmpr_refresh_intf (gmp_client_id client_id, gmpx_intf_id intf_id, boolean flush)
 
void gmpr_refresh_host_state (gmp_client_id client_id)
 
int gmpr_attach_intf (gmp_instance_id instance_id, gmpx_intf_id intf_id)
 
int gmpr_detach_intf (gmp_instance_id instance_id, gmpx_intf_id intf_id)
 
int gmpr_set_intf_params (gmp_instance_id instance_id, gmpx_intf_id intf_id, gmpr_intf_params *params)
 
void gmpr_chk_grp_limit (gmp_instance_id instance_id, gmpx_intf_id intf_id)
 
int gmpr_disable_host_tracking (gmp_instance_id instance_id, gmpx_intf_id intf_id)
 
gmpr_client_notificationgmpr_get_notification (gmp_client_id client_id, gmpr_client_notification *last_notification)
 
void gmpr_return_notification (gmpr_client_notification *notification)
 
gmpr_client_host_notificationgmpr_get_host_notification (gmp_client_id client_id, gmpr_client_host_notification *last_notification)
 
void gmpr_return_host_notification (gmpr_client_host_notification *host_notif)
 
boolean gmpr_notification_last_sg (gmpr_client_notification *notification)
 
gmpr_client_intf_listgmpr_get_intf_list (gmp_instance_id instance_id, uint8_t *group_addr, uint8_t *source_addr, gmpr_intf_list_match type)
 
void gmpr_free_intf_list (gmpr_client_intf_list *intf_list)
 
boolean gmpr_is_forwarding_channel (gmp_instance_id instance_id, gmpx_intf_id intf_id, const uint8_t *source_addr, const uint8_t *group_addr, boolean exact)
 
void gmpr_update_intf_state (gmp_instance_id instance_id, gmpx_intf_id intf_id, const uint8_t *intf_addr)
 
gmpr_intf_group_entrygmpr_get_intf_groups (gmp_instance_id instance_id, gmpx_intf_id intf_id)
 
gmpr_intf_group_entrygmpr_get_host_groups (gmp_instance_id instance_id, gmpx_intf_id intf_id, const uint8_t *host_addr)
 
gmpr_intf_host_entrygmpr_get_intf_hosts (gmp_instance_id instance_id, gmpx_intf_id intf_id)
 
void gmpr_destroy_intf_group (gmpr_intf_group_entry *group_list)
 
void gmpr_destroy_intf_host (gmpr_intf_host_entry *host_list)
 
boolean gmpr_is_initialized (void)
 
void gmpr_timeout_group_range (gmp_instance_id instance_id, gmpx_intf_id intf_id, const uint8_t *group_addr, uint32_t pfx_len, boolean send_query)
 
boolean gmpr_sg_is_excluded (gmp_instance_id instance_id, gmpx_intf_id intf_id, const uint8_t *group_addr, const uint8_t *source_addr)
 
void gmpr_update_trace_flags (gmp_instance_id instance_id, uint32_t trace_flags)
 
void gmpr_force_general_queries (gmp_instance_id instance_id, gmpx_intf_id intf_id)
 
void gmpr_request_general_queries (gmp_instance_id instance_id, gmpx_intf_id intf_id)
 
void gmpr_force_one_general_query (gmp_instance_id instance_id, gmpx_intf_id intf_id)
 
void gmpr_request_one_general_query (gmp_instance_id instance_id, gmpx_intf_id intf_id)
 
void gmpr_notify_oif_map_change (gmp_proto proto, gmpx_intf_id intf_id)
 

Macro Definition Documentation

#define GMPR_INTF_LIST_SIZE   10 /* Number of interfaces per entry */

Definition at line 286 of file gmp_router.h.

Typedef Documentation

typedef void(* gmpr_notif_cb)(void *cli_context)

Definition at line 139 of file gmp_router.h.

typedef boolean(* gmpr_oif_map_cb)(void *inst_context, gmpx_intf_id rcv_if, uint8_t *group_addr, uint8_t *source_addr, gmpx_intf_id *output_if)

Definition at line 152 of file gmp_router.h.

typedef boolean(* gmpr_policy_cb)(void *inst_context, gmpx_intf_id rcv_if, uint8_t *group_addr, uint8_t *source_addr, gmpx_packet_attr attribute)

Definition at line 165 of file gmp_router.h.

typedef void(* gmpr_querier_cb)(void *cli_context, gmpx_intf_id intf, boolean querier, uint8_t *querier_addr)

Definition at line 188 of file gmp_router.h.

typedef boolean(* gmpr_ssm_check_cb)(void *inst_context, gmpx_intf_id rcv_if, uint8_t *group_addr)

Definition at line 179 of file gmp_router.h.

Enumeration Type Documentation

Enumerator
GMPR_NOTIF_HOST_UNKNOWN 
GMPR_NOTIF_HOST_JOIN 
GMPR_NOTIF_HOST_LEAVE 
GMPR_NOTIF_HOST_TIMEOUT 
GMPR_NOTIF_HOST_IFDOWN 

Definition at line 261 of file gmp_router.h.

Enumerator
GMPR_NOTIF_GROUP_DELETE 
GMPR_NOTIF_GROUP_ADD_EXCL 
GMPR_NOTIF_GROUP_ADD_INCL 
GMPR_NOTIF_ALLOW_SOURCE 
GMPR_NOTIF_BLOCK_SOURCE 
GMPR_NOTIF_REFRESH_END 
GMPR_NOTIF_GROUP_STATE 

Definition at line 231 of file gmp_router.h.

Enumerator
INTF_LIST_LOOSE 
INTF_LIST_STRICT 

Definition at line 364 of file gmp_router.h.

Function Documentation

int gmpr_attach_intf ( gmp_instance_id  instance_id,
gmpx_intf_id  intf_id 
)
void gmpr_chk_grp_limit ( gmp_instance_id  instance_id,
gmpx_intf_id  intf_id 
)
gmp_instance_id gmpr_create_instance ( gmp_proto  proto,
void *  inst_context,
gmpr_instance_context context 
)
void gmpr_destroy_instance ( gmp_instance_id  instance_id)
void gmpr_destroy_intf_group ( gmpr_intf_group_entry group_list)
void gmpr_destroy_intf_host ( gmpr_intf_host_entry host_list)
void gmpr_detach ( gmp_client_id  client_id)
int gmpr_detach_intf ( gmp_instance_id  instance_id,
gmpx_intf_id  intf_id 
)
int gmpr_disable_host_tracking ( gmp_instance_id  instance_id,
gmpx_intf_id  intf_id 
)
void gmpr_force_general_queries ( gmp_instance_id  instance_id,
gmpx_intf_id  intf_id 
)
void gmpr_force_one_general_query ( gmp_instance_id  instance_id,
gmpx_intf_id  intf_id 
)
void gmpr_free_intf_list ( gmpr_client_intf_list intf_list)
gmpr_intf_group_entry* gmpr_get_host_groups ( gmp_instance_id  instance_id,
gmpx_intf_id  intf_id,
const uint8_t *  host_addr 
)
gmpr_client_host_notification* gmpr_get_host_notification ( gmp_client_id  client_id,
gmpr_client_host_notification last_notification 
)
gmpr_intf_group_entry* gmpr_get_intf_groups ( gmp_instance_id  instance_id,
gmpx_intf_id  intf_id 
)
gmpr_intf_host_entry* gmpr_get_intf_hosts ( gmp_instance_id  instance_id,
gmpx_intf_id  intf_id 
)
gmpr_client_intf_list* gmpr_get_intf_list ( gmp_instance_id  instance_id,
uint8_t *  group_addr,
uint8_t *  source_addr,
gmpr_intf_list_match  type 
)
gmpr_client_notification* gmpr_get_notification ( gmp_client_id  client_id,
gmpr_client_notification last_notification 
)
boolean gmpr_is_forwarding_channel ( gmp_instance_id  instance_id,
gmpx_intf_id  intf_id,
const uint8_t *  source_addr,
const uint8_t *  group_addr,
boolean  exact 
)
boolean gmpr_is_initialized ( void  )
boolean gmpr_notification_last_sg ( gmpr_client_notification notification)
void gmpr_notify_oif_map_change ( gmp_proto  proto,
gmpx_intf_id  intf_id 
)
void gmpr_refresh ( gmp_client_id  client_id,
boolean  flush 
)
void gmpr_refresh_host_state ( gmp_client_id  client_id)
void gmpr_refresh_intf ( gmp_client_id  client_id,
gmpx_intf_id  intf_id,
boolean  flush 
)
gmp_client_id gmpr_register ( gmp_instance_id  instance_id,
void *  cli_context,
gmpr_client_context context 
)
void gmpr_request_general_queries ( gmp_instance_id  instance_id,
gmpx_intf_id  intf_id 
)
void gmpr_request_one_general_query ( gmp_instance_id  instance_id,
gmpx_intf_id  intf_id 
)
void gmpr_return_host_notification ( gmpr_client_host_notification host_notif)
void gmpr_return_notification ( gmpr_client_notification notification)
int gmpr_set_intf_params ( gmp_instance_id  instance_id,
gmpx_intf_id  intf_id,
gmpr_intf_params params 
)
boolean gmpr_sg_is_excluded ( gmp_instance_id  instance_id,
gmpx_intf_id  intf_id,
const uint8_t *  group_addr,
const uint8_t *  source_addr 
)
void gmpr_timeout_group_range ( gmp_instance_id  instance_id,
gmpx_intf_id  intf_id,
const uint8_t *  group_addr,
uint32_t  pfx_len,
boolean  send_query 
)
void gmpr_update_intf_state ( gmp_instance_id  instance_id,
gmpx_intf_id  intf_id,
const uint8_t *  intf_addr 
)
void gmpr_update_trace_flags ( gmp_instance_id  instance_id,
uint32_t  trace_flags 
)