Summary
...
Code Block |
---|
/interface mesh |
HWMP+ is a MikroTik specific layer-2 routing protocol for wireless mesh networks. It is based on Hybrid Wireless Mesh Protocol (HWMP) from IEEE 802.11s draft standard. It can be used instead of (Rapid) Spanning Tree protocols in mesh setups to ensure loop-free optimal routing.
...
Note that the distribution system you use for your network need not to be a Wireless Distribution System (WDS). HWMP+ mesh routing supports not only WDS interfaces , but also Ethernet interfaces inside the mesh. So you can use a simple Ethernet-based distribution system, or you can combine both WDS and Ethernet links!
Note |
---|
...
Prerequisites for this article: you understand what WDS is and why to use it! |
Properties
Mesh
Property | Description |
---|---|
admin-mac (MAC address; Default: 00:00:00:00:00:00) | Administratively assigned MAC address, used when the auto-mac setting is disabled |
arp (disabled | enabled | proxy-arp | reply-only; Default: enabled) | Address Resolution Protocol setting |
auto-mac (boolean; Default: no) | If disabled, then the value from admin-mac will be used as the MAC address of the mesh interface; else address of some port will be used if ports are present |
hwmp-default-hoplimit (integer: 1..255; Default: ) | Maximum hop count for generated routing protocol packets; after |
an HWMP+ packet is forwarded "hoplimit" times, it is dropped | |
hwmp-prep-lifetime (time; Default: 5m) | Lifetime for routes created from received PREP or PREQ messages |
hwmp-preq-destination-only (boolean; Default: yes) | Whether the only destination can respond to HWMP+ PREQ message |
hwmp-preq-reply-and-forward (boolean; Default: yes) | Whether intermediate nodes should forward HWMP+ PREQ message after responding to it. Useful only when hwmp-preq-destination-only is disabled |
hwmp-preq-retries (integer; Default: 2) | How many times to retry a route discovery to a specific MAC address before the address is considered unreachable |
hwmp-preq-waiting-time (time; Default: 4s) | How long to wait for a response to the first PREQ message. Note that for subsequent PREQs the waiting time is increased exponentially |
hwmp-rann-interval (time; Default: 10s) | How often to send out HWMP+ RANN messages |
hwmp-rann-lifetime (time; Default: 1s) | Lifetime for routes created from received RANN messages |
hwmp-rann-propagation-delay (number; Default: 0.5) | How long to wait before propagating a RANN message. Value in seconds |
mesh-portal (boolean; Default: no) | Whether this interface is a portal in the mesh network |
mtu (number; Default: 1500) | Maximum transmission unit size |
name (string; Default: ) | Interface name |
reoptimize-paths (boolean; Default: no) | Whether to send out periodic PREQ messages asking for known MAC addresses. Turning on this setting is useful if the network topology is changing often. Note that if no reply is received to a |
re-optimization PREQ, the existing path is kept anyway (until it timeouts itself) |
Port
Property | Description |
---|---|
active-port-type (read-only: wireless | WDS | ethernet-mesh | ethernet-bridge | ethernet-mixed; Default: ) | port type and state actually used |
hello-interval (time; Default: 10s) | the maximum interval between sending out HWMP+ Hello messages. Used only for Ethernet type ports |
interface (interface name; Default: ) | interface name, which is to be included in a mesh |
mesh (interface name; Default: ) | mesh interface this port belongs to |
path-cost (integer: 0..65535; Default: 10) | path cost to the interface, used by routing protocol to determine the 'best' path |
port-type (WDS | auto | ethernet | wireless; Default: ) | port type to use
|
|
|
|
FDB Status
Property | Description |
---|---|
mac-address (MAC address) | MAC address corresponding for this FDB entry |
seq-number (integer) | sequence number used in routing protocol to avoid loops |
type (integer) | sequence number used in routing protocol to avoid loops |
interface (local | outsider | direct | mesh | neighbor | larval | unknown) | type of this FDB entry
|
mesh (interface name) | the mesh interface this FDB entry belongs to |
on-interface (interface name) | mesh port used for traffic forwarding, kind of a next-hop value |
lifetime (time) | time remaining to live if this entry is not used for traffic forwarding |
age (time) | age of this FDB entry |
metric (integer) | a metric value used by routing protocol to determine the 'best' path |
Example
This example uses static WDS links that are dynamically added as mesh ports when they become active. Two different frequencies are used: one for AP interconnections, and one for client connections to APs, so the AP must have at least two wireless interfaces. Of course, the same frequency for all connections also could be used, but that might not work as good because of potential interference issues.
...
Protocol description
Reactive mode
Router A wants to discover path to C
Router C sends unicast response to A
...
This mode is best suited for mobile networks, and/or when most of the communication happens between intra-mesh nodes.
Proactive mode
The root announces itself by flooding RANN
Internal nodes respond with PREGs
...
Topology change detection
Data flow path
After link disappears, error is propagated upstream
...
Problematic example 1: Ethernet switch inside a mesh
Router A is outside the mesh, all the rest of the routers are inside. For routers B, C, D all interfaces are added as mesh ports.
...
Consider this (invalid) setup example:
Routers A and B are inside the mesh, router C: outside. For routers A and B all interfaces are added as mesh ports.
...