Difference between revisions of "Calculating Net/Rom route quality"

From Ohio Packet

(Node A to Node C via Node B)
 
Line 74: Line 74:
 
Given the route qualities of 200 across the board, this would then be
 
Given the route qualities of 200 across the board, this would then be
  
200/256 * 200/256 * 256 = 156 or a route quality of 122 for Node C from Node A.
+
200/256 * 200/256 * 256 = 156 or a route quality of 156 for Node C from Node A.
 
+
  
 
== Node A to Node D via Node B and Node C ==
 
== Node A to Node D via Node B and Node C ==

Latest revision as of 06:45, 17 December 2011

Once you start building packet nodes, you may be faced with the question of how to setup the routing quality between them. This may be your node and then a node of a neighbor, or they may be both your nodes. We aim to give examples of real world routing with both TheNet (X1J4/Plus) as well as G8BPQ.


Why have quality?

The quality setting is intended to allow node operators to govern the amount of nodes they have on their nodes table as well as limiting the number of hops the nodes are permitted to take. Each node operator has their own idea what they want, this is just an example of how to calculate qualities and what it means.

A list of commands

For this example, we will assume there are two single port nodes running on the same frequency. The alias/callsigns are:

NODEA:KB8UVN-1 NODEB:KB8UVN-2

Both sides have locked routes of a quality 200 to one another. You can check the nodes tables on node A with the "n" command.

n
NODEA:KB8UVN-1} Nodes:
NODEB:KB8UVN-2

Next, you can list the nodes routing table with the "r" command (or "nr" with most *NOS systems).

For BPQ, this is

r
NODEA:KB8UVN-1} Routes:
> 1 KB8UVN-2 200 1!

The leading > indicates the route is presently active, followed by the port number, neighbor callsign, quality and destination nodes.

For TheNet, this is

r
NODEA:KB8UVN-1} Routes:
> 0 NODEB:KB8UVN-2 200 1 !

The leading > also indicates the route is presently active, followed by the port (0 = RF, 1 = RS-232/Diode Matrix), neighbor alias:callsign, quality, destination nodes.

Lastly, you can see available routes for a target node with the "n nodename" command.

For BPQ, this is

n nodeb
NODEA:KB8UVN-1} Routes to: NODEB:KB8UVN-2
> 200 6 1 KB8UVN-2

The leading > indicates the route is presently active, followed by the quality, obsolence counter, port number and neighbor callsign.

For TheNet, this is

n nodeb
NODEA:KB8UVN-1} Routes to: NODEB:KB8UVN-2
> 200 5 0 NODEB:KB8UVN-2

The leading > indicates the route is presently active, followed by the quality, obsolence counter, port (0 = RF, 1 = RS-232/Diode Matrix) and lastly neighbor alias:callsign.

Node A to Node B

The route calculation here is straight forward:

RouteQuality Node A-B/256 * 256 = Node Quality

Plugging in the above values, this will be:

200/256 * 256 = 200 or a route quality of 200.


Node A to Node C via Node B

Building on the above example, we will now add Node C into the equation. For simplicity sake, we will assume Node B and Node C both have locked routes of quality 200 to each other.

The route calculation here then becomes

RouteQuality Node A-B/256 * RouteQuality Node B-C/256 * 256

Given the route qualities of 200 across the board, this would then be

200/256 * 200/256 * 256 = 156 or a route quality of 156 for Node C from Node A.

Node A to Node D via Node B and Node C

Lastly, we will assume there is a 4th node on the network called Node D. It is reachable only by Node C, which is only reachable by Node B. Additionally, the route between Node C and Node D is sometimes marginal, so it's quality is set at 128.

The calculation is now

RouteQuality Node A-B/256 * RouteQuality Node B-C/256 * RouteQuality Node C-D/256 * 256

Given the routes between A and B are 200, B and C are 200 and C and D are 128, this would equate to

200/256 * 200/256 * 128/256 * 256 = 78 or a route quality of 78 for Node D from node A.


What to do with Quality

The quality alone can be helpful in determining how reliable a path may be to a given node from one another, but there is also an advantage to governing how many hops a node may take to get from itself to another remote station. There is a parameter which may be set globally (BPQ and TheNet) or on a port basis (BPQ Only).

When set globally, this number is the absolute minimum a node must have to appear on the routing table. In the last example above, Node D would have a quality of 78 on Node A's table. If the node operator of Node A did not want Node D to be listed, they could simply set their MINQUAL to something greater than 78. Keep in mind, that setting this number too high may block reliable routes. If the node operator were to set MINQUAL to 160, this would not allow Node C to display (see calculations above).

When MINQUAL is specified on a port basis (BPQ), it sets a threshold of a given quality to broadcast to a port. This can allow a local nodes list to be large, but only share the higher quality nodes with your neighbor. This may be applicable in a situation where a multiport node may have marginal connections, such as on HF, but also have Net/Rom neighbors on VHF and UHF.

In some cases, it may be desirable to have locked routes to known systems, but not assign a high quality to new/uncoordinated systems. In this instance, you would set a port quality to something lower than the locked route quality, then set the MINQUAL to something at or below the port quality. In this instance, we will assume we have Nodes A and B once again with a locked route of quality 200 to one another. A new node operator shows up and establishes Node X on the same frequency. Only Node A can hear Node X. Both Node A and Node B have a default RF port quality of 128. As soon as Node X broadcasts it's presence, Node A will pick it up and automatically add it to it's routing table with a quality of 128.

For BPQ, this is

For BPQ, this is

r
NODEA:KB8UVN-1} Routes:
> KB8UVN-2 200 1!
XX1XX-1 128 1

You can see the lack of ! after the destination count shows this route is not locked, so it has assumed the default port quality of 128.

For TheNet, this is

r
NODEA:KB8UVN-1} Routes:
> 0 NODEB:KB8UVN-2 200 1 !
0 NODEX:XX1XX-1 128 1

Again, no trailing ! so this is not a locked route and inherits the default port quality.

Now, the node operator of Node A and Node B does not wish to shut out any newcomers to the packet network arena, but they do wish to limit how far the broadcasts of this new/unknown node will go. To achieve this, they have set their global MINQUAL to 128. This means that Node A will add Node X to it's routing table, but when broadcast (to Node B), it's quality will be 128. Revisiting the calculations above, this will be:

RouteQuality Node X-A/256 * RouteQuality Node A-B/256 * 256 = 100

The route will be advertised by Node A, but because the quality is 100 for Node B, it will not show up on Node B's routing table.

Another approach (BPQ only) is to set a port specific MINQUAL. In this instance, the MINQUAL dictates the minimum quality a route can be to be broadcast on a given port. To disable broadcasts of Node X from Node A, the node operator may set their MINQUAL for this port to 130. This will prohibit any neighboring node, regardless of their quality settings, from seeing the existence of Node X.


Closing

These are just a few examples of how a node operator can set Net/Rom routing quality to achieve desired results. If you have questions which are not covered here, please feel free to email us and we will do our best to respond.