NetBurner 3.1
multicast.h
Go to the documentation of this file.
1 /*NB_REVISION*/
2 
3 /*NB_COPYRIGHT*/
4 
15 #ifndef _NB_MULTICAST_H
16 #define _NB_MULTICAST_H
17 // NB Definitions
18 #include <predef.h>
19 
20 // NB Libs
21 #include <nbrtos.h>
22 #include <nettypes.h>
23 
24 // This Module provides code for joining multicast groups, using the IGMP protocol per RFC1112 and RFC 2236
25 
44 void RegisterMulticastFifo4(IPADDR4 group, uint16_t dest_port, OS_FIFO *pfifo, int interface = 0);
45 
57 void UnregisterMulticastFifo4(IPADDR4 group, uint16_t destination_port, int interface = 0);
58 
59 #ifdef IPV6
60 
78 void RegisterMulticastFifo6(IPADDR group, uint16_t dest_port, OS_FIFO *pfifo, int interface = 0);
79 inline void RegisterMulticastFifo(IPADDR group, uint16_t dest_port, OS_FIFO *pfifo, int interface = 0)
80 {
81  RegisterMulticastFifo6(group, dest_port, pfifo, interface);
82 }
83 
95 void UnregisterMulticastFifo6(IPADDR6 group, uint16_t destination_port, int interface = 0);
96 inline void UnregisterMulticastFifo(IPADDR group, uint16_t destination_port, int interface = 0)
97 {
98  UnregisterMulticastFifo6(group, destination_port, interface);
99 }
100 
101 OS_FIFO *ListeningForGroup(const IPADDR6 &group);
102 #else
103 inline void RegisterMulticastFifo(IPADDR group, uint16_t dest_port, OS_FIFO *pfifo, int interface = 0)
104 {
105  RegisterMulticastFifo4(group, dest_port, pfifo, interface);
106 }
107 
108 inline void UnregisterMulticastFifo(IPADDR group, uint16_t destination_port, int interface = 0)
109 {
110  UnregisterMulticastFifo4(group, destination_port, interface);
111 }
112 #endif
113 
114 #endif // _NB_MULTICAST_H
NetBurner Real-Time Operating System API.
void RegisterMulticastFifo4(IPADDR4 group, uint16_t dest_port, OS_FIFO *pfifo, int interface=0)
Register to join a Multicast group.
Definition: multicast.cpp:335
A FIFO is used to pass structures from one task to another. Note: Structures to be passed must have a...
Definition: nbrtos.h:736
Used to hold and manipulate IPv4 and IPv6 addresses in dual stack mode.
Definition: ipv6_addr.h:28
void RegisterMulticastFifo6(IPADDR group, uint16_t dest_port, OS_FIFO *pfifo, int interface=0)
Register to join a Multicast group.
Definition: ipv6_multicast.cpp:47
void UnregisterMulticastFifo4(IPADDR4 group, uint16_t destination_port, int interface=0)
Unregister from a Multicast group.
Definition: multicast.cpp:380
void UnregisterMulticastFifo6(IPADDR6 group, uint16_t destination_port, int interface=0)
Unregister from a Multicast group.
Definition: ipv6_multicast.cpp:84