calculate multicast addresses from universe numbers
This commit is contained in:
parent
b8e6dcdcef
commit
9c10bd7124
|
@ -117,4 +117,37 @@ using ipAddress = ACN::SDT::UDP::ipAddress;
|
||||||
/// > through labelling, manufacturer documentation, or other means, which IP
|
/// > through labelling, manufacturer documentation, or other means, which IP
|
||||||
/// > transports they support.
|
/// > transports they support.
|
||||||
using ip_addr_spec = ACN::SDT::ip_addr_spec;
|
using ip_addr_spec = ACN::SDT::ip_addr_spec;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief \cite sACN 9.3.1 Allocation of IPv4 Multicast Addresses
|
||||||
|
*
|
||||||
|
* > Multicast addresses are from the IPv4 Local Scope and will be managed by
|
||||||
|
* > routers in conformance with RFC 2365 \cite ASIPM.
|
||||||
|
*/
|
||||||
|
static inline ipAddress IPv4MulticastAddress(universe_number universe) {
|
||||||
|
ipAddress addr;
|
||||||
|
addr.type = ACN::SDT::SDT_ADDR_IPV4;
|
||||||
|
addr.address.ipv4.bytes[3] = 239;
|
||||||
|
addr.address.ipv4.bytes[2] = 255;
|
||||||
|
addr.address.ipv4.bytes[1] = universe >> 8;
|
||||||
|
addr.address.ipv4.bytes[0] = universe & 0xff;
|
||||||
|
return addr;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief \cite sACN 9.3.2 Allocation of IPv6 Multicast Addresses
|
||||||
|
* @param universe
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
static inline ipAddress IPv6MulticastAddress(universe_number universe) {
|
||||||
|
ipAddress addr;
|
||||||
|
addr.type = ACN::SDT::SDT_ADDR_IPV6;
|
||||||
|
addr.address.ipv6.group[3] = 131;
|
||||||
|
addr.address.ipv6.group[1] = universe >> 8;
|
||||||
|
addr.address.ipv6.group[0] = universe & 0xff;
|
||||||
|
return addr;
|
||||||
|
}
|
||||||
|
|
||||||
} // SACN
|
} // SACN
|
||||||
|
|
Loading…
Reference in New Issue