This second example uses the same topology as described within the first example.
Since 2.1.7.0 firmware, Babel can control the path priorities based on current RSS/MSE values (radio filter). This is very handy in case the link qualities differ and some of the links are barely usable. With such filter, we can configure RipEX2 units to ignore such bad quality links.
A second improvement is the Relay filter which selects which of the obtained rules are being forwarded and which are not – i.e. if the unit is a repeater/forward node, or the end station (terminal). It can also be used to alter routing rule metrics and thus, prioritize or discriminate some of the nodes/units.
Within the following example, we will configure both the Radio and Relay filters.
Keep in mind all Babel parameters and its filters are well explained within the manual.
Configure Radio filters in all your networks utilizing Babel protocol via the Radio channel. Why?Neither Babel nor other dynamic routing protocols can take RSS/MSE values into account. In most of the networks, some links have very good RSS and MSE values running high QAM modulations. Links with (very) bad RSS/MSE values should not be used for routing user traffic in case there are links with higher quality. Without the Radio filter, short Babel management/overhead data may be able to successfully go through such links, but important user traffic might be corrupted resulting in unreliable SCADA operation.
Babel itself has a known mechanism of Hello packets and increasing link metrics based on Hello packets success rate of going through particular links. We enhanced this behaviour (proprietary) so that some of the Hello packets are discarded if received with RSS or MSE values below set thresholds.
Default thresholds are:
RSS
Soft: -110 dBm
Hard: -130 dBm
MSE
Soft: -10 dB
Hard: -5 dB
If the RSS/MSE values of received Hello packet is worse than the “Hard” limit, it is always discarded. In case the RSS/MSE values are better than “Soft” thresholds, they are always accepted.
If the values are between thresholds, Hello packets are discarded randomly with probability increasing linearly between Soft and Hard limits. The probability of a Hello packet being received by the filter is calculated as the product of the probabilities based on RSS and MSE. If at least one of the variables exceeds the Hard limit, the packet is always discarded. The limit setting is either global or individual for each Hello packet source address (radio IP address). The individual setting is only used if there is a translation of the link address to a radio IP address (ARP request/reply for the given IP had to be sent/received so that you don’t see 0.0.0.0 Radio IP within the Statistics menu, but a correct IP for a given Link address). Discarding a Hello packet will cause the Babel protocol metric to be increased and the link to be disadvantaged.
Keep in mind each modulation has its own sensitivity levels. If you combine multiple modulations within the network, individual link thresholds are recommended.
Sensitivity levels (RSS) can be read from the Specification.
MSE recommendations can be read within the application note on RACOM website.
Let’s see one example. In the whole network, we run the QAM modulation π/4-DQPSK, within the 25 kHz channel. The sensitivity level (for BER 10-6) is -111 dBm. Recommended MSE is -14 dB.
Default thresholds could be:
RSS
Soft: -91 dBm (20 dBm Fade margin)
Hard: -111 dBm (sensitivity level from the Specification)
MSE
Soft: -14 dB (i.e. real value at least equal to the recommended -14 dB)
Hard: -10 dB (based on user experience, no precise calculation for this value)
Received Hello packets’ RSS/MSE values and its operation:
RSS = -80 dBm, MSE = -20 dB
Packet is passed to Babel successfully
RSS = -99 dBm, MSE = -15 dB
RSS value is between the Hard and Soft thresholds and = passing the Hello packet probability = 60 %
MSE is over the Soft limit = passing the Hello packet probability = 100 %
Resulting probability is 0.6 * 1 = 60 % (6 out of 10 Hello packets are processed by Babel, 4 our discarded immediately)
RSS = -105 dBm, MSE = -9 dB
MSE is below the Hard threshold = Hello packet is discarded
Let’s imagine we have one unit and it has at least two neighbors (10.10.10.2 and 10.10.10.3 are the neighbors’ Radio IP addresses). For the neighbor ‘2’ the modulation is set to 64QAM, for the neighbor ‘3’ the modulation is ‘256QAM’. We set two individual thresholds, e.g.:
Link to 10.10.10.2
RSS
Soft: -72 dBm
Hard: -92 dBm
MSE
Soft: -27 dB
Hard: -22 dB
Link to 10.10.10.3
RSS
Soft: -68 dBm
Hard: -88 dBm
MSE
Soft: -33 dB
Hard: -28 dB
Further optimization can be discussed with our technical support team via support@racom.eu.
Within the example topology we utilize 25kHz channel and 16DEQAM modulation. We do not set any Individual thresholds, in case you need them, check the information above. Default thresholds in all four units will be set to
RSS
Soft: -78 dBm
Hard: -98 dBm
MSE
Soft: -22 dB
Hard: -17 dB
Save this change in all 4 units.
Check the Babel Status after a while. Based on your conditions, you may see similar output.
Within our example output, signals to 10.10.10.2 and 10.10.10.3 are better than configured thresholds, but signals to 10.10.10.1 are between the soft and hard thresholds, i.e. we only got 10 out of 16 Hello packets correctly and the direct metric is now 256. It is still the lowest metric so the direct radio link is used.
Based on Statistics, MSE values are better than the soft threshold, but signals to 10.10.10.1 are in average -83 dBm which is close to soft threshold, but worse. The minimum measured signal is even -89 dBm. This is the reason why some of the Hello packets are discarded and the metric is higher.
Discarding is based on probability so once you check the Status again, it can be different, e.g.:
Important | |
---|---|
Individual thresholds can be taken into account only if the IP address is known and correct Link address and IP address translation has been done. Check your Statistics. For each remote you only see 0.0.0.0 as the IP address, the default thresholds are used. Once there is any communication with a particular IP address, ARP data are exchanged and the IP address is known afterwards. In case there is regular traffic with all the neighbors (SCADA, …), the IP addresses are always known, but there might be multiple other sites within the radio coverage (visible in Statistics), but with no user traffic resulting in only Link addresses within Statistics and IPs being 0.0.0.0. |
Relay filters can be used for
Setting any unit to be the end station not forwarding any obtained/received routes from its neighbours
Increasing metric for routes being propagated – i.e. to disadvantage paths leading through this unit within the Babel dynamic routing (higher routing rule metric via this unit)
Limiting number of propagated routing rules – i.e. decrease the number of routes within the network
In case the unit is not supposed to propagate any obtained routes further, so it serves as the end-station (terminal, not repeater), you can reject all rules to be propagated/relayed.
Just go to the SETTINGS > Routing > Babel > Relay filter menu and change the policy to “Reject”.
Until this change, e.g. the RipEX_A could have similar Babel routes.
We can see RipEX_D (10.10.10.4) is also used as a gateway for 192.168.3.0/24 (RipEX_C). If we set that Reject policy in RipEX_D, no rule will not be propagated from RipEX_D to other units except its own configured subnets.
You can also increase metric for the routes being propagated, e.g. to disadvantage particular repeater. Let’s set RipEX_C (10.10.10.3) to increase metrics obtained from this repeater by 100.
We can see similar output in neighbouring units, e.g. from RipEX_D.
Routes to 192.168.1.0/24 and 192.168.2.0/24 via 10.10.10.3 have the highest metric. Direct route to its own subnet 192.168.3.0/24 is not disadvantaged this way, as required/configured. If you need to increase the metric of this direct path as well, do it via Static rules tab of Babel menu and increase the “Metric” parameter for the given Destination IP/mask.
Last, but not least, is to limit just some of the propagated routes, not all, via the “Reject” Relay filter policy. Go to the RipEX_D again and change the Policy to “Accept”, but let’s reject propagating 192.168.2.0/24 and 192.168.3.0/24 networks. I.e. the unit will only propagate 192.168.1.0/24 (and of course its own subnet, but this not controlled by the Relay filter).
We know we should receive 192.168.2.0/24 and 192.168.3.0/24, i.e. /24 mask in both cases. We can limit the Mask from/to parameters to suit our scenario. We could also have two individual rules or do it via a single rule using /23 mask.
The default policy is “accept” so the 192.168.1.0/24 network will be propagated.
RipEX_C does not use 10.10.10.4 as a gateway to reach 192.168.2.0/24 and 192.168.3.0/24 networks. Obviously, it uses the gateway to reach 192.168.1.0/24 and 192.168.4.0/24.
Note | |
---|---|
If you configure Babel routing for the fist time in your network, it is suggested to reboot each device after final configuration changes so the dynamic protocol is fully restarted in all units with correct and current configuration. |
Sure, you can combine all the options in every unit within the whole network to suit your requirements.
Further optimization can be discussed with our technical support team via support@racom.eu.