ipv4_multicast.c
error_t ethAcceptMacAddr(NetInterface *interface, const MacAddr *macAddr)
Add a unicast/multicast address to the MAC filter table.
Definition: ethernet.c:594
void ipv4RemoveSrcAddr(Ipv4SrcAddrList *list, Ipv4Addr srcAddr)
Remove a source address from a given list.
Definition: ipv4_multicast.c:741
error_t ipv4AddSrcAddr(Ipv4SrcAddrList *list, Ipv4Addr srcAddr)
Append a source address to a given list.
Definition: ipv4_multicast.c:701
int_t ipv4FindSrcAddr(const Ipv4SrcAddrList *list, Ipv4Addr srcAddr)
Search the list of sources for a given IP address.
Definition: ipv4_multicast.c:778
bool_t ipv4CompareSrcAddrLists(const Ipv4SrcAddrList *list1, const Ipv4SrcAddrList *list2)
Compare lists of sources.
Definition: ipv4_multicast.c:814
error_t ipv4AcceptMulticastAddr(NetInterface *interface, Ipv4Addr groupAddr)
Reconfigure the MAC layer to accept multicast traffic.
Definition: ipv4_multicast.c:480
const uint8_t res[]
error_t ethDropMacAddr(NetInterface *interface, const MacAddr *macAddr)
Remove a unicast/multicast address from the MAC filter table.
Definition: ethernet.c:666
IPv4 multicast filtering.
NetInterface * nicGetPhysicalInterface(NetInterface *interface)
Retrieve physical interface.
Definition: nic.c:85
int_t socket(int_t family, int_t type, int_t protocol)
Create a socket that is bound to a specific transport service provider.
Definition: bsd_socket.c:65
IGMP host.
error_t ipv4JoinMulticastGroup(NetInterface *interface, Ipv4Addr groupAddr)
Join the specified host group.
Definition: ipv4_multicast.c:127
error_t ipv4MulticastFilter(NetInterface *interface, Ipv4Addr destAddr, Ipv4Addr srcAddr)
Filter out incoming multicast traffic.
Definition: ipv4_multicast.c:54
void ipv4UpdateMulticastFilter(NetInterface *interface, Ipv4Addr groupAddr)
Update IPv4 multicast filter table.
Definition: ipv4_multicast.c:229
Helper functions for sockets.
void ipv4DeriveInterfaceState(Ipv4FilterEntry *entry, SocketMulticastGroup *group)
Derive the per-interface state from the per-socket state.
Definition: ipv4_multicast.c:379
error_t ipv4LeaveMulticastGroup(NetInterface *interface, Ipv4Addr groupAddr)
Leave the specified host group.
Definition: ipv4_multicast.c:185
void igmpHostStateChangeEvent(IgmpHostContext *context, Ipv4Addr groupAddr, IpFilterMode newFilterMode, const Ipv4SrcAddrList *newFilter)
Process multicast reception state change.
Definition: igmp_host.c:346
void ipv4DropMulticastAddr(NetInterface *interface, Ipv4Addr groupAddr)
Reconfigure the MAC layer to reject multicast traffic.
Definition: ipv4_multicast.c:531
Ipv4FilterEntry * ipv4CreateMulticastFilterEntry(NetInterface *interface, Ipv4Addr multicastAddr)
Create a new multicast filter entry.
Definition: ipv4_multicast.c:614
Ipv4FilterEntry * ipv4FindMulticastFilterEntry(NetInterface *interface, Ipv4Addr multicastAddr)
Search the multicast filter for a given address.
Definition: ipv4_multicast.c:657
IPv4 (Internet Protocol Version 4)
void ipv4DeleteMulticastFilterEntry(Ipv4FilterEntry *entry)
Delete a multicast filter entry.
Definition: ipv4_multicast.c:688
TCP/IP stack core.
error_t ipv4MapMulticastAddrToMac(Ipv4Addr ipAddr, MacAddr *macAddr)
Map an host group address to a MAC-layer multicast address.
Definition: ipv4_multicast.c:563
int_t socketFindMulticastSrcAddr(SocketMulticastGroup *group, const IpAddr *srcAddr)
Search the list of multicast sources for a given IP address.
Definition: socket_misc.c:564
Debugging facilities.