Versions in this module Expand all Collapse all v1 v1.0.0 Apr 4, 2024 Changes in this version + type MembershipItem struct + Group netip.Addr + Sources []netip.Addr v0 v0.0.1 Mar 21, 2024 Changes in this version + const ALTOUT + const ALTOUTSTR + const GRATUITOUS + const IGMPHosts + const IGMPHostsQuad + const IGMPv2SizeCst + const IGMPv3BaseSizeCst + const IN + const INSTR + const OUT + const OUTSTR + const OutOrAltKey + const QUERY + const QueryHost + const TTL + type Config struct + AltOutIntName string + ChannelSize int + DebugLevel int + Gratuitous time.Duration + HackPayloadFilename string + InIntName string + MembershipReportsFromNetwork bool + MembershipReportsToNetwork bool + OutIntName string + ProxyInToOut bool + ProxyOutToIn bool + QueryNotify bool + QueryTime time.Duration + SocketReadDeadLine time.Duration + Testing TestingOptions + UnicastDst string + UnicastMembershipReports bool + UnicastProxyInToOut bool + func (c Config) String() string + type IGMP struct + Checksum uint16 + GroupAddress net.IP + GroupRecords []IGMPv3GroupRecord + IntervalTime time.Duration + MaxResponseTime time.Duration + NumberOfGroupRecords uint16 + NumberOfSources uint16 + RobustnessValue uint8 + SourceAddresses []net.IP + SupressRouterProcessing bool + Type layers.IGMPType + Version uint8 + func (i *IGMP) LayerContents() []byte + func (i *IGMP) LayerPayload() []byte + func (i *IGMP) LayerType() gopacket.LayerType + func (igmp *IGMP) SerializeTo(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error + func (igmp *IGMP) SerializeToIGMPv2(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error + func (igmp *IGMP) SerializeToIGMPv3(b gopacket.SerializeBuffer, opts gopacket.SerializeOptions) error + type IGMPReporter struct + AltOutExists bool + ContMsg map[side]*ipv4.ControlMessage + IntName map[side]string + IntOutName *sync.Map + Interfaces []side + MembershipReportFromNetworkCh chan []membershipItem + MembershipReportToNetworkCh chan []membershipItem + NetAddr map[side]netip.Addr + NetIF map[side]*net.Interface + NetIFIndex map[int]side + NetIP map[side]net.IP + OutInterfaceSelectorCh chan side + OutsideInterfaces map[side]bool + QueryNotifyCh chan struct{} + TimerDuration map[ttlType]time.Duration + WG *sync.WaitGroup + func NewIGMPReporter(conf Config) *IGMPReporter + func (r IGMPReporter) Run(ctx context.Context) + func (r IGMPReporter) RunSelfQuery() + type IGMPv3GroupRecord struct + AuxData uint32 + AuxDataLen uint8 + MulticastAddress net.IP + NumberOfSources uint16 + SourceAddresses []net.IP + Type IGMPv3GroupRecordType + type IGMPv3GroupRecordType uint8 + const IGMPAllow + const IGMPBlock + const IGMPIsEx + const IGMPIsIn + const IGMPToEx + const IGMPToIn + func (i IGMPv3GroupRecordType) String() string + type TestingOptions struct + ConnectQueryToReport bool + MembershipReportsReader bool + MulticastLoopback bool