Okay, thanks for the clarifications.
For a more constructive discussion we are going to need to know what the transport reliability requirements are and what are the failure modes. What could cause an Ethernet frame to be lost in your setting? For example, is the cable routed through a factory floor with welding equipment generating nanosecond disturbances, etc. Is your bandwidth budget tight? Can you please read this and see if the approach is applicable in your case: Idempotent interfaces and deterministic data loss mitigation
Are you suggesting that I have two UAVCAN stacks in the Gateway; downstream one with CAN and upstream one with UDP?
Yes, this is exactly what I am suggesting. This can be implemented trivially using PyUAVCAN. Actually, I am probably going to draft up a simple demo tomorrow or the day after for demonstrational purposes; I expect it’s going to be a hundred lines of Python or so.
do you foresee any complication with a unified DSDL
No.
Node Addressing
There are two obvious solutions: a transparent bridge and a facade. The former is assumed to expose the CAN nodes below the Gateway as if they were on the same logical network with Message Broker. The latter renders Gateway a dedicated node which hides the topology of the underlying network from the Message Broker; e.g., if Board1 publishes a UAVCAN message, the Gateway forwards it over to the Message Broker, and the latter sees it as if the message was published by Gateway itself. Both Bridge- and Facade-based approaches are possible; the former is very low level (requires dealing with the network at the transfer level), the latter is high level (operating on messages and service calls). The optimal approach depends on the requirements of your application.
timing?
There is not enough data to provide a meaningful response. To answer broadly, UAVCAN is simple and a single human can effortlessly place the entire stack into one’s imagination, so at the protocol level the temporal properties are evident. Translating a message from one network into another amounts to receiving frames at one end (e.g., CAN frames) and emitting equivalent frames at the other end (e.g., UDP packets).