about mapping ip to ethernet, we've considered linking ip to asset directly, but in Ralph2 we had so much troubles because of that. If we link ip to asset, we have to do separate model for DHCPEntry, not linked (or maybe linked?) to any of ethernet or ip - if it will be linked, we have to keep it in valid state (ex. ethernet is pointing to other asset than ip). In our solution everything looks straightforward - one way to set this. About other interfaces - we could create some other inheritance model, like GenericInterface (and IP will link to it), Ethernet could inherit from it and we could create new models for other interfaces (like you said, ex. tunnels etc). For bonding maybe we could create sth similar.