What Initialize-Routing-Table Is
Initialize-Routing-Table is a network-layer message in BACnet, defined in Clause 6.4.7 of ANSI/ASHRAE 135-2024. A management tool uses it to configure a router’s routing table or to read the table’s current contents. It is carried in an NPDU (Network Protocol Data Unit, the network-layer packet) rather than as an application service. Unlike the other network-layer messages, it has a request and a reply: the router answers with Initialize-Routing-Table-Ack, so a tool knows the table was updated or receives the queried contents.
Like the other network-layer messages, it operates below the object and property layer. It manages a router’s port and network mappings, not object data.
How It Works
The message carries a number of port mappings, each pairing a directly connected or dial-up network with a port identifier and optional port information. Sending it with a number of ports equal to zero queries the router: it returns its complete routing table in an Initialize-Routing-Table-Ack without changing anything. Sending it with port mappings updates the table: a mapping replaces or appends the entry for its network, and a mapping with a port identifier of zero purges the entries for that network. The message is sent expecting a reply, and the ack, when it answers a query, uses the same format to convey the table back.
Where You’ll See It
- Router provisioning. A commissioning tool writes the port-to-network mappings into a router so it knows which port reaches which network.
- Table inspection. A tool queries a router with a zero-port request to read back the routing table it is actually using.
- Table maintenance. As networks are added or removed, mappings are updated or purged incrementally rather than rewriting the whole table.
Initialize-Routing-Table Error Codes
Initialize-Routing-Table is a network-layer message, and its acknowledgment is the network-layer confirmation rather than an application-layer error class and code. A request that does not complete is a routing or addressing problem, not a service error. The usual causes:
- No Initialize-Routing-Table-Ack comes back: the target is not a router, does not support remote table configuration, or the message never reached it.
- A malformed or unroutable request may draw a Reject-Message-To-Network instead of an ack.
- A query returns the table the router is actually using; if that differs from what was written, an earlier update did not take effect.
Profiles That Require It
The network-layer messages are the router’s job. Answering Initialize-Routing-Table is part of the router configuration capability NM-RC-B, which is required of the router profile B-RTR. The initiate side is a management or commissioning-tool behavior.
What Chipkin Provides
The CAS BACnet Stack answers Initialize-Routing-Table, returning its routing table on a query and applying updates, with the Initialize-Routing-Table-Ack reply. Talk to us about adding BACnet client or server support to your device.