.. BFR MLAN
.. highlight:: xml
MLAN
====
*Masquerade Local Area Network* components provide a service that is a combination of
a :ref:`VLAN` and the Network Address Translation service. The basic feature is to
"mask" the topology of one network from another connected network.
.. warning::This feature and related components are not in the BACnet standard. This
should be considered experimantal.
MLANs can be configured to create a network with any arbitrary MAC address size.
.. _MLAN:
MLAN
----
The MLAN component creates a masquerade network with a collection of nodes::
The ``mlan_label`` uniquely identifies the ``MLAN`` in the configuration.
The relationship between a :ref:`Router` and an MLAN is made via a masquerade adapter.
.. _MAdapter:
MAdapter
~~~~~~~~
The *Masquerade Adapter* is a component that manages the relationship between an MLAN
and how the nodes on that network are to be mapped::
Static address mapping...
Address filtering...
The ``net_number`` is the network number of the connected BACnet network to the router.
This is the unique number in the context of the BACnet intranet of the ``Router`` and
its other attached networks. This is indepedant of the network number of the other
``MAdapter`` components that may be connected to the same ``MLAN``.
The ``mlan_label`` is the label of the "attached" ``MLAN`` component.
The ``Static`` elements are used to define specific mappings from the ``MLAN`` to network
addresses. The ``net_address`` is the BACnet intranet address of the original source
address of a packet coming downstream from the ``Router``, and the ``node_addess`` is
how that should be presented as a local station address on the ``MLAN``.
Addresses that are not staticly associated with specific nodes are given dynamic ``node_address``
values, subject to the ``Accept`` or ``Reject`` rules.
The ``Accept`` element describes an address pattern that is acceptable to map on the
``MLAN``. The form is typically ``n:*`` which will accept all of the addresses on a
specific network. If the ``address_pattern`` is not provided, the ``Accept`` functions
like "accept all (others)".
The ``Reject`` element is the inverse of the ``Accept`` element, it describes an address
pattern that is *not* acceptable to map on the ``MLAN``. The form is typically ``n:*`` which
will reject all of the addresses on a specific network. If the ``address_pattern`` is not
provided, the ``Reject`` functions like "reject all (others)".
The ``Accept`` and ``Reject`` elements are processed in the order they are given.
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.
MLAN Echo
~~~~~~~~~
This sample configuration file creates two virtual networks and two routers. The two
routers are connected to each other via an ``MLAN``::
Create a network with two nodes, this will be network 1:
On the first node, bind a console, and on the second bind a debugger:
Create another network with two nodes, this will be network 2:
On the first node, bind a debugger, and on the second bind a echo:
Create a masquerade LAN:
MORE GOES HERE
Some text goes here.