This commit is contained in:
geeksville
2020-05-23 17:39:08 -07:00
parent fb3b62f8f0
commit 5bd3e4bcd0
5 changed files with 66 additions and 37 deletions

View File

@@ -10,6 +10,13 @@ class DSRRouter : public ReliableRouter
*/
virtual void sniffReceived(const MeshPacket *p);
/**
* Send a packet on a suitable interface. This routine will
* later free() the packet to pool. This routine is not allowed to stall.
* If the txmit queue is full it might return an error
*/
virtual ErrorCode send(MeshPacket *p);
private:
/**
* Does our node appear in the specified route
@@ -18,8 +25,12 @@ class DSRRouter : public ReliableRouter
/**
* Given a DSR route, use that route to update our DB of possible routes
*
* Note: routes are always listed in the same order - from sender to receipient (i.e. route_replies also use this some order)
*
* @param isRequest is true if we are looking at a route request, else we are looking at a reply
**/
void updateRoutes(const RouteDiscovery &route, bool reverse);
void updateRoutes(const RouteDiscovery &route, bool isRequest);
/**
* send back a route reply (the sender address will be first in the list)
@@ -34,6 +45,8 @@ class DSRRouter : public ReliableRouter
NodeNum getNextHop(NodeNum dest);
/** Not in our route cache, rebroadcast on their behalf (after adding ourselves to the request route)
*
* We will bump down hop_limit in this call.
*/
void resendRouteRequest(const MeshPacket *p);
@@ -45,9 +58,9 @@ class DSRRouter : public ReliableRouter
void addRoute(NodeNum dest, NodeNum forwarder, uint8_t numHops);
/**
* Record that the specified forwarder no longer has a route to the dest
* Record that we no longer have a route to the dest
*/
void removeRoute(NodeNum dest, NodeNum forwarder);
void removeRoute(NodeNum dest);
/**
* Forward the specified packet to the specified node