11 #ifndef __GMP_ROUTER_H__
12 #define __GMP_ROUTER_H__
155 uint8_t *source_addr,
168 uint8_t *source_addr,
181 uint8_t *group_addr);
189 boolean querier, uint8_t *querier_addr);
286 #define GMPR_INTF_LIST_SIZE 10
367 uint8_t *source_addr,
373 const uint8_t *source_addr,
374 const uint8_t *group_addr,
boolean exact);
377 const uint8_t *intf_addr);
382 const uint8_t *host_addr);
390 const uint8_t *group_addr,
391 uint32_t pfx_len,
boolean send_query);
394 const uint8_t *group_addr,
395 const uint8_t *source_addr);
397 uint32_t trace_flags);
void(* gmpr_notif_cb)(void *cli_context)
void gmpr_notify_oif_map_change(gmp_proto proto, gmpx_intf_id intf_id)
struct gmpr_intf_host_entry_ gmpr_intf_host_entry
gmp_filter_mode notif_filter_mode
gmp_addr_string host_notif_host_addr
int gmpr_detach_intf(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_host_notification_type host_notif_type
struct gmpr_client_context_ gmpr_client_context
gmpr_client_host_notification_type
gmpx_intf_id host_notif_intf_id
struct gmpr_intf_group_entry_ * gig_next
gmp_addr_string gig_group_addr
gmp_filter_mode gig_filter_mode
void gmpr_return_notification(gmpr_client_notification *notification)
gmp_addr_thread * notif_addr_thread
gmp_addr_thread * gig_sources
gmpr_policy_cb rctx_policy_cb
gmpr_client_notification * gmpr_get_notification(gmp_client_id client_id, gmpr_client_notification *last_notification)
gmp_addr_string notif_group_addr
struct gmpr_client_host_notification_ gmpr_client_host_notification
gmpr_notif_cb rctx_notif_cb
boolean(* gmpr_ssm_check_cb)(void *inst_context, gmpx_intf_id rcv_if, uint8_t *group_addr)
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_notif_cb rctx_host_notif_cb
void gmpr_return_host_notification(gmpr_client_host_notification *host_notif)
gmpr_client_host_notification * gmpr_get_host_notification(gmp_client_id client_id, gmpr_client_host_notification *last_notification)
#define GMPR_INTF_LIST_SIZE
void gmpr_free_intf_list(gmpr_client_intf_list *intf_list)
int gmpr_attach_intf(gmp_instance_id instance_id, gmpx_intf_id intf_id)
void gmpr_destroy_intf_host(gmpr_intf_host_entry *host_list)
gmpr_client_notification_type
gmpr_intf_group_entry * gmpr_get_intf_groups(gmp_instance_id instance_id, gmpx_intf_id intf_id)
gmpx_intf_id gci_intfs[GMPR_INTF_LIST_SIZE]
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)
struct gmpr_intf_group_entry_ gmpr_intf_group_entry
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)
gmpx_intf_id notif_intf_id
void gmpr_refresh_host_state(gmp_client_id client_id)
int gmpr_set_intf_params(gmp_instance_id instance_id, gmpx_intf_id intf_id, gmpr_intf_params *params)
gmp_addr_string notif_source_addr
void gmpr_refresh(gmp_client_id client_id, boolean flush)
void gmpr_update_trace_flags(gmp_instance_id instance_id, uint32_t trace_flags)
gmp_addr_string host_notif_source_addr
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)
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 rctx_delta_notifications
boolean rctx_full_notifications
void gmpr_refresh_intf(gmp_client_id client_id, gmpx_intf_id intf_id, boolean flush)
void(* gmpr_querier_cb)(void *cli_context, gmpx_intf_id intf, boolean querier, uint8_t *querier_addr)
gmpr_intf_group_entry * gmpr_get_host_groups(gmp_instance_id instance_id, gmpx_intf_id intf_id, const uint8_t *host_addr)
gmpr_ssm_check_cb rctx_ssm_check_cb
struct gmpr_intf_host_entry_ * gih_next
int gmpr_disable_host_tracking(gmp_instance_id instance_id, gmpx_intf_id intf_id)
gmp_addr_string gih_host_addr
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)
gmp_addr_string host_notif_group_addr
boolean host_notif_source_present
struct gmpr_client_notification_ gmpr_client_notification
gmp_instance_id gmpr_create_instance(gmp_proto proto, void *inst_context, gmpr_instance_context *context)
struct gmpr_client_intf_list_ gmpr_client_intf_list
void gmpr_chk_grp_limit(gmp_instance_id instance_id, gmpx_intf_id intf_id)
gmpr_client_notification_type notif_type
struct gmpr_instance_context_ gmpr_instance_context
boolean(* gmpr_policy_cb)(void *inst_context, gmpx_intf_id rcv_if, uint8_t *group_addr, uint8_t *source_addr, gmpx_packet_attr attribute)
void gmpr_request_general_queries(gmp_instance_id instance_id, gmpx_intf_id intf_id)
boolean gmpr_is_initialized(void)
void gmpr_force_general_queries(gmp_instance_id instance_id, gmpx_intf_id intf_id)
void gmpr_destroy_intf_group(gmpr_intf_group_entry *group_list)
void gmpr_detach(gmp_client_id client_id)
void gmpr_force_one_general_query(gmp_instance_id instance_id, gmpx_intf_id intf_id)
struct gmpr_client_intf_list_ * gci_next
gmpr_querier_cb rctx_querier_cb
boolean gmpr_notification_last_sg(gmpr_client_notification *notification)
void gmpr_request_one_general_query(gmp_instance_id instance_id, gmpx_intf_id intf_id)
void gmpr_update_intf_state(gmp_instance_id instance_id, gmpx_intf_id intf_id, const uint8_t *intf_addr)
gmpr_oif_map_cb rctx_oif_map_cb