|
SatCat5
|
Statically-allocated wrapper for ip::IgmpServer.
Definition at line 145 of file igmp_server.h.
#include <igmp_server.h>
Public Member Functions | |
| ServerStatic (satcat5::eth::SwitchCore *sw, satcat5::ip::Dispatch *iface) | |
| Link this plugin to the network switch or router. | |
| void | flush () |
| Flush all existing routes and reset status. | |
| void | force_version (u8 version) |
| Force a specific IGMP version for compatibility or testing. More... | |
| SATCAT5_PMASK_TYPE | get_mask (const satcat5::ip::Addr &addr) const |
| Get the port-mask for a given multicast IP address. | |
| bool | is_querier () const |
| Are we the current querier? | |
| void | query (satcat5::eth::PluginPacket &pkt) override |
| Packet-processing callback from PluginCore. | |
| void | set_mdly (u8 fast, u8 slow) |
| Set the max-delay parameter for outgoing queries. More... | |
| u8 | version () const |
| Current IGMP version for this network. | |
Protected Member Functions | |
| void | timer_event () override |
| Child class MUST override this method. | |
| satcat5::igmp::Group * | find_or_create (const satcat5::ip::Addr &group) |
| satcat5::igmp::Group * | find_match (const satcat5::ip::Addr &group) const |
| void | rcvd_igmp (satcat5::eth::PluginPacket &pkt) |
| void | rcvd_mcast (satcat5::eth::PluginPacket &pkt) |
| void | send_query (satcat5::igmp::Group *group, bool first) |
| void | timer_once (unsigned msec) |
| Configure a one-time notification after X milliseconds. | |
| void | timer_every (unsigned msec) |
| Configure a repeating notification every X milliseconds. | |
| void | timer_stop () |
| Stop all future notifications. | |
| unsigned | timer_interval () const |
| Accessor for recurring timer interval, if one is set. | |
| unsigned | timer_remaining () const |
| Accessor for time to next event, if one is set. | |
Static Protected Member Functions | |
| static unsigned | count_timer () |
| Count all objects of this type, including idle timers. | |
Protected Attributes | |
| satcat5::igmp::Group | m_buff [SIZE] |
| satcat5::ip::Dispatch *const | m_iface |
| satcat5::igmp::Group *const | m_groups |
| const u16 | m_gcount |
| u8 | m_status |
| u8 | m_mdly_fast |
| u8 | m_mdly_slow |
| u8 | m_vmin |
| u8 | m_vmax |
| u32 | m_query_timer |
| u32 | m_window_timer |
| satcat5::eth::SwitchCore *const | m_switch |
| Pointer to the associated SwitchCore object. | |
Private Attributes | |
| satcat5::eth::PluginCore * | m_next |
| unsigned | m_trem |
| unsigned | m_tnext |
|
inlineinherited |
Force a specific IGMP version for compatibility or testing.
Per RFC2236 Section 4, this must be configured manually.
Definition at line 102 of file igmp_server.h.
|
inlineinherited |
Set the max-delay parameter for outgoing queries.
"Fast" parameter is for single-group queries (default 20 = 2.0 seconds). "Slow" is for general queries (default 100 = 10.0 seconds). These use the quasi-floating-point format of IGMPv3.
Definition at line 118 of file igmp_server.h.