Skip to content

Behavior of BBMD device when "Distribute-Broadcast-To-Network" is received from FD #1267

@Singa17

Description

@Singa17

A registered FD device shall send a "Who-is" with "Distribute-Broadcast-To-Network" BVLL to the BBMD device it is registered .
As per spec, The BBMD devices forwards the NPDU to it's BDT and FDT entries as well as local broadcasts to it's own network.

Since BBMD device is a Bacnet device , it also need to respond the who is with I am. however BBMD device is not sending I am for the Distribute-Broadcast-To-Network" is received from FD.

In Code to handle the "Distribute-Broadcast-To-Network", note says it not an NPDU and offset to 0. Test mandate that BBMD shall response with I am.

However , BBMD device send I am for the BVLC_ORIGINAL_BROADCAST_NPDU and BVLC_FORWARDED_NPDU.

        case BVLC_DISTRIBUTE_BROADCAST_TO_NETWORK:
            debug_print_bip("Received Distribute-Broadcast-To-Network", addr);
            /* Upon receipt of a BVLL Distribute-Broadcast-To-Network message
               from a foreign device, the receiving BBMD shall transmit a
               BVLL Forwarded-NPDU message on its local IP subnet using the
               local B/IP broadcast address as the destination address. In
               addition, a Forwarded-NPDU message shall be sent to each entry
               in its BDT as described in the case of the receipt of a
               BVLL Original-Broadcast-NPDU as well as directly to each foreign
               device currently in the BBMD's FDT except the originating
               node. If the BBMD is unable to perform the forwarding function,
               it shall return a BVLC-Result message to the foreign device
               with a result code of X'0060' indicating that the forwarding
               attempt was unsuccessful */
            npdu_len = bbmd_forward_npdu(addr, pdu, pdu_len);
            if (npdu_len > 0) {
                (void)bbmd_fdt_forward_npdu(addr, pdu, pdu_len, false);
                (void)bbmd_bdt_forward_npdu(addr, pdu, pdu_len, false);
            } else {
                result_code = BVLC_RESULT_DISTRIBUTE_BROADCAST_TO_NETWORK_NAK;
                send_result = true;
            }
            /* not an NPDU */
            offset = 0;
            break;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions