libnos_datagram implements the interface for connecting to a Citadel device and transferring datagrams. This is wrapped by the C++
libnos library which further supports the transport API.
Citadel will be running Nugget. In order to synchronize access to the driver, HALs should proxy all communication via the
citadeld daemon which will be the only service with driver access.
Synchronizing with this service, rather than in the driver, allows for easier debugging and fixing should the need arise.
CitadeldProxyClient will implement
NuggetClient to handle proxying communication via
citadeld without requiring change to the HALs.