MCU Communication Coordinator Daemon
This is the MCU communication coordinator (MCC) daemon sample application.
Functionalities
These are the functionalities of the MCU communication coordinator daemon process (MCC daemon):- Relays the messages and responses among IST Client, DRIVE Update, and Common IF clients on NVIDIA DRIVE Orin™ SoC and MCU.
- Communicates with clients on NVIDIA DRIVE Orin™ SoC using NvSciIpc.
- Communicates with the MCU side using UDP socket communication.
Design Aspects
Implementation on NVIDIA DRIVE Orin™ SoC
IST Client, DRIVE Update, and Common IF clients can send a message to the MCC daemon over their respective NvSciIpc channels, and the daemon relays the message over the corresponding UDP socket. For DRIVE Update and Common IF client messages, it waits for a response from the UDP socket. Upon receipt of the response, the daemon writes it to the corresponding NvSciIpc channel.
Another thread of the MCC daemon is dedicated to waiting for messages on UDP socket for any communication from IST Manager on MCU. Once received, it writes the message to NvSciIpc channel corresponding to IST Client.
In case of timeout or errors, fixed number of retries are done.
The following are the configuration parameters:- UDP socket parameters taken from the tacp.cfg file:
AURIX_IP_ADDRESS=10.42.0.146
AURIX_SERVER_PORT=5000
AURIX_BOOTCHAIN_PORT=5001
CLIENT_IP_ADDRESS=10.42.0.28
- Default timeout:
1
second - Default number of retries during init time:
120
- Default number of retries during the runtime:
5
- Note that clients should wait for more than
5 * 1
seconds to assume request might have failed. For example,7
retries with1
second timeout.
- Note that clients should wait for more than
- NvSciIpc channels:
- For IST:
nvmcc_ist_ipc_0, nvmcc_ist_ipc_1
- For DU:
nvmcc_du_ipc_0, nvmcc_du_ipc_1
- For Common IF:
nvmcc_cif_ipc_0, nvmcc_cif_ipc_1
- As a convention: The daemon should open
<nvsciipc_ep_name>_0
endpoint and clients should open corresponding<nvsciipc_ep_name>_1
endpoint.
- For IST:
Linux-Specific Settings
Ensure that NvSciIpc and socket (tacp) services are marked as dependency before launching the MCC daemon.
Source Path
<PDK>/samples/mcc_daemon