Atmel AVR2070 Network Router User Manual


 
AVR2070
41
8240B-AVR-06/09
A.6 Routing packets
There is a special packet used to create a route for a packet leaving the coordinator
toward any router or end node. Each router node keeps track of the last address it
sent a routing packet to, and will send each later (non-routing) packet from its parent
to the same address (unless the packet is addressed to a child node). This way, the
coordinator can send one routing packet to an end node, followed by many data
packets. Each data packet will travel the route specified by the last routing packet.
For example, suppose the router has to send a data packet to end node E2. The
router simply scans its table of nodes to find out E2's parent, then that node's parent,
and so on, constructing a router frame as shown:
Table A-6-1. Routing packet
C FCF – routing
0x8863
Seq
22
PID
0x1234
R1 SA
0x0003
C SA
0x0000
MAC
0xbb
R2 SA
0x0006
Note that the end node's (E2) short address does not need to be in the routing
packet. As long as the data packets that follow the routing packet end up at R2, then
R2 will read the destination address in the data packet and correctly forward the
packet to E2, since E2 is a child of R2. R1 does not have to actually send an empty
routing packet to R2, since R2 does nothing with it.
Also, note that R1's short address is not in the routing packet. This is because R1 is
the first hop in the chain, and R1's address is in the frame header.
In this example, R2 is the only node whose short address is in the payload. If there
were more than one intermediate jump, then the nodes closest to the coordinator
come first in the payload.
When a node receives a routing packet, it does the following:
1. If there is more than one short address in the packet, then create a new
routing packet to the first SA in the list, and remove the first SA from the list.
2. Store the SA of the second address in the list. Until further notice (by a new
routing packet), forward any data packet addressed to a non-child node sent
downstream to this stored address.
One good feature of this routing implementation is that a routing packet only has to be
sent if the receiving node is more than two hops away from the coordinator. For
networks that occupy a physically small area, routing packets should rarely be seen.
A.6.1 Data packets
Data i
s sent in a data packet. Data from an end node is always relayed to the
coordinator, and downstream packets are routed in the same path as the last routing
packet.
Table A-6-2. Data frame (Coordinator C to Router R1)
C FCF – Data
0x8861
Seq
34
PID
0x1234
R1 SA
0x0003
C SA
0x0000
Final Dest
SA
0x0007
Origin SA
0x0000
Data
payload
When a destination node sees its own short address in the “Dest SA” field, it accepts
the data and of course does not forward the packet.