|
|
Mld6igmpGroupRecord (Mld6igmpVif& mld6igmp_vif, const IPvX& group)
| Mld6igmpGroupRecord |
Constructor for a given vif and group address.
Parameters:
mld6igmp_vif | the interface this entry belongs to. |
group | the multicast group address. |
~Mld6igmpGroupRecord ()
| ~Mld6igmpGroupRecord |
Mld6igmpVif& mld6igmp_vif ()
| mld6igmp_vif |
[const]
Get the vif this entry belongs to.
Returns: a reference to the vif this entry belongs to.
const IPvX& group ()
| group |
[const]
Get the multicast group address.
Returns: the multicast group address.
EventLoop& eventloop ()
| eventloop |
Get the corresponding event loop.
Returns: the corresponding event loop.
bool is_include_mode ()
| is_include_mode |
[const]
Test whether the filter mode is INCLUDE.
Returns: true if the filter mode is INCLUDE.
bool is_exclude_mode ()
| is_exclude_mode |
[const]
Test whether the filter mode is EXCLUDE.
Returns: true if the filter mode is EXCLUDE.
void set_include_mode ()
| set_include_mode |
Set the filter mode to INCLUDE.
void set_exclude_mode ()
| set_exclude_mode |
Set the filter mode to EXCLUDE.
bool is_unused ()
| is_unused |
[const]
Test whether the entry is unused.
Returns: true if the entry is unused, otherwise false.
Mld6igmpSourceRecord* find_do_forward_source (const IPvX& source)
| find_do_forward_source |
Find a source that should be forwarded.
Parameters:
source | the source address. |
Returns: the corresponding source record (Mld6igmpSourceRecord) if found, otherwise NULL.
Mld6igmpSourceRecord* find_dont_forward_source (const IPvX& source)
| find_dont_forward_source |
Find a source that should not be forwarded.
Parameters:
source | the source address. |
Returns: the corresponding source record (Mld6igmpSourceRecord) if found, otherwise NULL.
const Mld6igmpSourceSet& do_forward_sources ()
| do_forward_sources |
[const]
Get a reference to the set of sources to forward.
Returns: a reference to the set of sources to forward.
const Mld6igmpSourceSet& dont_forward_sources ()
| dont_forward_sources |
[const]
Get a reference to the set of sources not to forward.
Returns: a reference to the set of sources not to forward.
void process_mode_is_include (const set<IPvX>& sources,
const IPvX& last_reported_host)
| process_mode_is_include |
Process MODE_IS_INCLUDE report.
Parameters:
sources | the source addresses. |
last_reported_host | the address of the host that last reported as member. |
void process_mode_is_exclude (const set<IPvX>& sources,
const IPvX& last_reported_host)
| process_mode_is_exclude |
Process MODE_IS_EXCLUDE report.
Parameters:
sources | the source addresses. |
last_reported_host | the address of the host that last reported as member. |
void process_change_to_include_mode (const set<IPvX>& sources,
const IPvX& last_reported_host)
| process_change_to_include_mode |
Process CHANGE_TO_INCLUDE_MODE report.
Parameters:
sources | the source addresses. |
last_reported_host | the address of the host that last reported as member. |
void process_change_to_exclude_mode (const set<IPvX>& sources,
const IPvX& last_reported_host)
| process_change_to_exclude_mode |
Process CHANGE_TO_EXCLUDE_MODE report.
Parameters:
sources | the source addresses. |
last_reported_host | the address of the host that last reported as member. |
void process_allow_new_sources (const set<IPvX>& sources,
const IPvX& last_reported_host)
| process_allow_new_sources |
Process ALLOW_NEW_SOURCES report.
Parameters:
sources | the source addresses. |
last_reported_host | the address of the host that last reported as member. |
void process_block_old_sources (const set<IPvX>& sources,
const IPvX& last_reported_host)
| process_block_old_sources |
Process BLOCK_OLD_SOURCES report.
Parameters:
sources | the source addresses. |
last_reported_host | the address of the host that last reported as member. |
void lower_group_timer (const TimeVal& timeval)
| lower_group_timer |
Lower the group timer.
Parameters:
timeval | the timeout interval the timer should be lowered to. |
void lower_source_timer (const set<IPvX>& sources, const TimeVal& timeval)
| lower_source_timer |
Lower the source timer for a set of sources.
Parameters:
sources | the source addresses. |
timeval | the timeout interval the timer should be lowered to. |
void source_expired (Mld6igmpSourceRecord* source_record)
| source_expired |
Take the appropriate actions for a source that has expired.
Parameters:
source_record | the source record that has expired. |
uint32_t timeout_sec ()
| timeout_sec |
[const]
Get the number of seconds until the group timer expires.
Returns: the number of seconds until the group timer expires.
const IPvX& last_reported_host ()
| last_reported_host |
[const]
Get the address of the host that last reported as member.
Returns: the address of the host that last reported as member.
XorpTimer& group_timer ()
| group_timer |
Get a refererence to the group timer.
Returns: a reference to the group timer.
void schedule_periodic_group_query (const set<IPvX>& sources)
| schedule_periodic_group_query |
Schedule periodic Group-Specific and Group-and-Source-Specific Query retransmission.
If the sources list is empty, we schedule Group-Specific Query, otherwise we schedule Group-and-Source-Specific Query.
Parameters:
sources | the source addresses. |
void received_older_membership_report (int message_version)
| received_older_membership_report |
Record that an older Membership report message has been received.
Parameters:
message_version | the corresponding protocol version of the received message. |
bool is_igmpv1_mode ()
| is_igmpv1_mode |
[const]
Test if the group is running in IGMPv1 mode.
Returns: true if the group is running in IGMPv1 mode, otherwise false.
bool is_igmpv2_mode ()
| is_igmpv2_mode |
[const]
Test if the group is running in IGMPv2 mode.
Returns: true if the group is running in IGMPv2 mode, otherwise false.
bool is_igmpv3_mode ()
| is_igmpv3_mode |
[const]
Test if the group is running in IGMPv3 mode.
Returns: true if the group is running in IGMPv3 mode, otherwise false.
bool is_mldv1_mode ()
| is_mldv1_mode |
[const]
Test if the group is running in MLDv1 mode.
Returns: true if the group is running in MLDv1 mode, otherwise false.
bool is_mldv2_mode ()
| is_mldv2_mode |
[const]
Test if the group is running in MLDv2 mode.
Returns: true if the group is running in MLDv2 mode, otherwise false.
int family ()
| family |
[const]
Get the address family.
Returns: the address family.