IP Address Assignment
Last updated
Last updated
Distributed mutual exclusion algorithm to check the uniqueness of the address.
Assigning an address to a new node requires an agreement from all the known nodes in the network.
Each node has a global address allocation table maintaining currently-in-use addresses.
Node (requester) broadcasts a NEIGH_REQ message to one-hop neighbors.
Each neighbor answers back to the requester (NEIGH_REP).
The Requester node selects one of its neighbors as its agent, which performs address allocation on behalf of the requester.
It then sends a REQUESTER_REQ to the agent to request an address.
The agent picks a currently unused address from its table and floods an ADDR_REQ to obtain an agreement from all other configured nodes in the network.
Each node in the network sends an ADDR_REP reply back to the agent.
If the agent receives a reply from all the other nodes, it assigns the address to the requester by sending ADDR_ALLOC.
Ad-hoc communication network over raw-LoRa.
Multi-gateway (Border Routers) Nodes that connect Mesh-internal data with the Cloud.
Each Node uses LBS - Listen Before Talk.
Security on multiple levels.
Any LoRa device (Lopy4/Fipy) can have any of the Pymesh Node Roles: Leader, Router, Child, or Border Router.
Declare the Border Router network address prefix, for example, 2001:dead:beef:cafe::/64.
The network address prefix is then sent to the Leader.
All the nodes will be assigned a random IPv6 unicast address with this network prefix (for example 2001:dead:beef:cafe:1234:5678:9ABC:DEF0).
If a node sends data to an IPv6 that is external (prefix from non-existent networks in Pymesh), then the UDP datagram will be routed to the Border Router.
This UDP packet will have as a source the random IPv6 from the BR network address.
The Border Router will receive the external UDP datagrams with an appended header, which contains:
MAGIC byte: 0xBB.
IPv6 destination as a byte array (16 bytes).
bytearray([source, encoding, errors]).
Returns the byte array of the bytes array passed in.
port destination as 2 bytes (1-65535 values).
The IPv6 destination is important because it means that the Border Router can route (forward) the UDP datagram content to the correct interface (Wifi/BLE/cellular).
AODV pros and cons.
Low overhead.
Slow discovery and recovery.
OLSR pros and cons.
Medium overhead.
Fast discovery and recovery.
MPRs automation.
LAR pros and cons.
Medium overhead.
How to discover the location of the destination?
Batman's pros and cons.
Medium-high overhead
Fast discovery and recovery.