in_multi
static void igmp_final_leave(struct in_multi *, struct igmp_ifsoftc *);
static int igmp_handle_state_change(struct in_multi *,
static int igmp_initial_join(struct in_multi *, struct igmp_ifsoftc *);
static int igmp_input_v3_group_query(struct in_multi *,
igmp_input_v3_group_query(struct in_multi *inm, struct igmp_ifsoftc *igi,
static int igmp_v1v2_queue_report(struct in_multi *, const int);
struct in_multi *inm;
static void igmp_v1v2_process_group_timer(struct in_multi *, const int);
static void igmp_v2_update_group(struct in_multi *, const int);
struct in_multi *, const int, const int, const int);
struct in_multi *);
struct in_multi *inm;
struct mbufq *, struct mbufq *, struct in_multi *,
static int igmp_v3_merge_state_changes(struct in_multi *,
static void igmp_v3_suppress_group_record(struct in_multi *);
struct in_multi *inm;
igmp_v1v2_process_group_timer(struct in_multi *inm, const int version)
struct in_multi *inm, const int uri_fasthz)
igmp_v3_suppress_group_record(struct in_multi *inm)
struct in_multi *inm;
igmp_v1v2_queue_report(struct in_multi *inm, const int type)
igmp_change_state(struct in_multi *inm)
igmp_initial_join(struct in_multi *inm, struct igmp_ifsoftc *igi)
igmp_handle_state_change(struct in_multi *inm, struct igmp_ifsoftc *igi)
igmp_final_leave(struct in_multi *inm, struct igmp_ifsoftc *igi)
igmp_v3_enqueue_group_record(struct mbufq *mq, struct in_multi *inm,
igmp_v3_enqueue_filter_change(struct mbufq *mq, struct in_multi *inm)
igmp_v3_merge_state_changes(struct in_multi *inm, struct mbufq *scq)
struct in_multi *inm;
struct in_multi *inm;
struct in_multi *inm;
struct in_multi *inm;
igmp_v2_update_group(struct in_multi *inm, const int timer)
struct in_multi *inm;
int igmp_change_state(struct in_multi *);
struct in_multi *inm;
inm_merge(struct in_multi *inm, /*const*/ struct in_mfilter *imf)
inm_commit(struct in_multi *inm)
inm_reap(struct in_multi *inm)
inm_purge(struct in_multi *inm)
/*const*/ struct in_mfilter *imf, struct in_multi **pinm)
/*const*/ struct in_mfilter *imf, struct in_multi **pinm)
struct in_multi *inm;
in_leavegroup(struct in_multi *inm, /*const*/ struct in_mfilter *imf)
in_leavegroup_locked(struct in_multi *inm, /*const*/ struct in_mfilter *imf)
struct in_multi *inm;
struct in_multi **);
static int inm_get_source(struct in_multi *inm, const in_addr_t haddr,
static int inm_is_ifp_detached(const struct in_multi *);
static int inm_merge(struct in_multi *, /*const*/ struct in_mfilter *);
static void inm_purge(struct in_multi *);
static void inm_reap(struct in_multi *);
static void inm_release(struct in_multi *);
struct in_multi *inm;
struct in_multi *inm;
inm_is_ifp_detached(const struct in_multi *inm)
struct in_multi *inm;
SLIST_CONCAT(&inm_free_list, inmh, in_multi, inm_nrele);
struct in_multi *inm;
inm_disconnect(struct in_multi *inm)
struct in_multi *inm;
inm_release_deferred(struct in_multi *inm)
inm_print(const struct in_multi *inm)
inm_print(const struct in_multi *inm)
struct in_multi *inm, *tinm;
SLIST_CONCAT(&inm_free_tmp, &inm_free_list, in_multi, inm_nrele);
struct in_multi *
struct in_multi *inm;
struct in_multi *
struct in_multi *inm;
struct in_multi *inm;
struct in_multi **pinm)
struct in_multi *inm;
inm = (struct in_multi *)ifma->ifma_protospec;
inm_release(struct in_multi *inm)
inm_clear_recorded(struct in_multi *inm)
inm_record_source(struct in_multi *inm, const in_addr_t naddr)
inm_get_source(struct in_multi *inm, const in_addr_t haddr,
struct in_multi *inm;
struct in_multi *imf_inm; /* associated multicast address */
LIST_ENTRY(in_multi) inm_link; /* to-be-released by in_ifdetach */
SLIST_ENTRY(in_multi) inm_nrele; /* to-be-released by IGMP */
ims_get_mode(const struct in_multi *inm, const struct ip_msource *ims,
void inm_disconnect(struct in_multi *inm);
static __inline struct in_multi *
inm_acquire_locked(struct in_multi *inm)
inm_acquire(struct in_multi *inm)
inm_rele_locked(struct in_multi_head *inmh, struct in_multi *inm)
struct in_multi *inm_lookup_locked(struct ifnet *, const struct in_addr);
struct in_multi *inm_lookup(struct ifnet *, const struct in_addr);
void inm_commit(struct in_multi *);
void inm_clear_recorded(struct in_multi *);
void inm_print(const struct in_multi *);
int inm_record_source(struct in_multi *inm, const in_addr_t);
void inm_release_deferred(struct in_multi *);
/*const*/ struct in_mfilter *, struct in_multi **);
/*const*/ struct in_mfilter *, struct in_multi **);
int in_leavegroup(struct in_multi *, /*const*/ struct in_mfilter *);
int in_leavegroup_locked(struct in_multi *,
struct in_multi;
SLIST_HEAD(in_multi_head, in_multi);
struct in_multi *ii_allhosts; /* 224.0.0.1 membership */