Open
Description
JMRI maintains a cache of all known aliases on the CAN network. The code tries to fill this cache upon startup, and track AMD and AMR frames to have fresh information.
When sending a message, the alias map cache is used to turn a NodeID into a 12-bit alias. In case there is a cache miss, the outgoing message will be useless (alias of zero) or will be dropped to the floor, or we may even see an NPE.
The correct behavior is that if the destination node does not have an alias in the cache, then an AME frame has to be sent out, and if there is no reply with an AMD, then a Verify Node ID global message has to be sent out, expecting a potential alias allocation and a node ID verified response.