.. BFR B/IP Element .. highlight:: xml BACnet/IP ========= BACnet/IP elements work on top of the UDP/IP layer. They process the BACnet Virtual Link Layer header according to the functionality of the component and provide an additional layer of abstraction to upper layers in the stack. BIP --- The ``BIP`` component interprets the BVLL as a simple device connection to a B/IP LAN:: The B/IP packets it receives upstream from the UDP layer, such as Original-Unicast and Original-Broadcast will continue up the stack with the same source and destination address. A Forwarded-NPDU which has been sent by a BBMD on the LAN will have the original source address substituted from the BVLL header. Foreign ------- The ``Foreign`` component interprets the BVLL as a foreign device of a B/IP network:: In addition to the ``client`` and ``server`` attributes, the ``Foreign`` component requires the ``bbmd`` and ``ttl`` attribtues. The ``bbmd`` is the IP address of the BBMD that manages the foreign device registration, and the ``ttl`` is the time to live in seconds. BBMD ---- The BACnet/IP Broadcast Management Device (BBMD) component manages the redistribution of local broadcast traffic and maintains registrations for foreign devices:: The ``foreign`` flag is "y" or "Y" if the BBMD supports foreign device registration. The ``Peer`` child element of the ``BBMD`` is a reference to a peer BBMD. The ``peer_address`` is of the form *X.X.X.X/Y:Z*, where *X.X.X.X* is the IP address in the dot-quad notation, *Y* is the number of bits in the network portion, and *Z* is the port number. The */Y* portion of the address is typically */32* indicating that the broadcast messages to be forwarded are sent to the peer BBMD to be rebroadcast, rather than using a directed broadcast which is typically not allowed. If the *:Z* portion of the address is omitted, the port will default to 47808 (0xBAC0). .. note:: There is no configuration validation, so it is possible to create a BBMD component that has no Broadcast Distribution Table (BDT), or to create one that doesn't have itself as an entry. Samples ------- For these and other samples, the components are described in configuration starting from the bottom of a stack and proceeding up. In the coorisponding diagrams, upstream traffic goes from left to right, the downstream traffic from right to left. BIP to Console ~~~~~~~~~~~~~~ This sample configuration file creates one of each of the ``UDP``, ``BIP``, and ``Console`` components and binds them together:: This is a long line of text. Foreign to Console ~~~~~~~~~~~~~~~~~~ This sample configuration file creates one of each of the ``UDP``, ``Foreign``, and ``Console`` components and binds them together:: This is a long line of text. BBMD to Console ~~~~~~~~~~~~~~~ This sample configuration file creates one of each of the ``UDP``, ``BBMD``, and ``Console`` components and binds them together. The BBMD is configured to have two peers:: This is a long line of text.