pub const MAX_RECIPIENT_LIST_DESTINATIONS: usize = 32;Expand description
The most destinations a Notification Class Recipient_List holds (#1098).
A site usually routes a class to a few front ends, operator workstations
or gateways, and the AE-CRL-B building block (Annex K.2.25) asks for room
for at least 8, so 32 leaves ample headroom. The bound also keeps the list
small on the wire. A destination naming a device encodes in at most 27
octets, and one naming an address with a MAC of up to 6 octets in at most
35, so a full list of either kind takes at most 1,120 octets and a
ReadProperty of it fits B/IP’s 1476-octet APDU unsegmented. An address
MAC is at most BACnetAddress::MAX_MAC_LEN octets (#1124), so no
destination takes more than 47 octets and no full list more than 1,504.
A write that would leave more destinations fails with RESOURCES /
NO_SPACE_TO_WRITE_PROPERTY, naming the first destination past the cap;
AddListElement reports that as NO_SPACE_TO_ADD_LIST_ELEMENT at the request
element that brought it (Clause 15.1.1.3). add_destination refuses the
same way, without the element.
Routing holds every Notification Class to the same bound, so each event
transition fans out to at most this many notifications per class (#1124).
Only a custom NOTIFICATION_CLASS object can serve a longer list, and the
transition then goes to none of it: see
RecipientLookupOutcome::RecipientListTooLong.