generic LP mapping mechanism
We need a way for a top level model (a driver) to construct a mapping of how various types of LPs are connected in the system so that model components can look up mappings more generically.
One way to do this would be with a function that would map triplets of "origin LP id, destination LP type, and destination LP instance" to an LP id. For example, you could find the 3rd disk drive connected to a particular LP with lookup(id, DISK, 3).
This could be implemented with a lookup table or a mathematical equation.
Ideally this mapping would be configured by the top level model, which would then provide a function pointer to all of the components so that the individual components are not aware of how the mapping works.