Original Pre-Health Requriements
Router Requirements
A router is a node which has the routing feature turned on using lnetctl set routing 1
or the equivalent modprobe configuration.
- Track the last time stamp any message was received on a local NI
- if the NI hasn't received any traffic for a period of
router_ping_timeout + MAX(live_router_check_interval, dead_router_check_interval)
then it's marked down- This is done so that other nodes using the gateway can mark the route down, given that
avoid_asym_router_failure
is set to 1.
- This is done so that other nodes using the gateway can mark the route down, given that
- Do not send messages to a peer which is marked down.
- Set the peer status to up when messages are received
- When messages are flowing through the router, query the peer NI a message is destined to every one second to determine if it has come back up again, and if so then set its status to alive.
Gateway Requirements
A gateway in this context is the peer NI created when adding a route on a node. For example: lnetctl route add --net tcp --gateway <gateway-NID>.
Dealing with that peer-NI is somewhat of a special case.
- Mark the gateway peer NI as down when the LND fails to send a message
- Note although the LND notifications happen for all peers peer NIs it is only pertinent on routers or for gateways.
- Mark the gateway peer NI as up when we receive an unsolicited message or when we receive a REPLY for a PING sent from the router checker.
- Mark the route as down if one of the gateway's interfaces, identified by the gateway peer NI, are down, provided the
avoid_asym_router_failure
is set to 1.
...