Skip to main content

MAX_RECIPIENT_LIST_DESTINATIONS

Constant MAX_RECIPIENT_LIST_DESTINATIONS 

Source
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.