NvSIPL Multi-cast Sample Application Architecture#

The following diagram shows the architecture of the NvSIPL_Multicast application.

image1

image2

The sample application has three layers: Transport, DriveOS Server, and Presentation. Each layer plays a distinct role in the overall system.

  • Transport Layer

Transport layer handles all NvStreams (for example, NvSciStream/NvSciBuf/SvSciSync/NvSciIpc) transactions. It transfers NvSciBuf objects between modules in the business layer. There are two types of clients: producer clients and consumer clients.

Producer clients deliver NvSciBuf objects to the downstream module, while consumer clients receive NvSciBuf objects from the upstream module.

Users typically do not need to modify the client code directly; it encapsulates the low-level communication details.

  • DriveOS Server Layer

The DriveOS server layer contains various modules. Each module encapsulates a specific business logic, which is usually implemented in a hardware engine. Its primary responsibility is to process the NvSciBuf object received from the transport layer.

After processing, the module releases the NvSciBuf object back to the transport layer for further handling.

  • Presentation Layer

The channel resides in the presentation layer. It determines which modules are designed in the pipeline and how they are interconnected.

Channels define the overall system behavior, including data flow and processing order.

Modules can contain multiple clients, allowing flexibility in handling different data sources. Clients are dynamically created based on the module connections, enabling adaptable configurations. This flexibility allows connections between modules and channels without requiring code modifications. To adjust the system behavior, users can modify the configuration table or command-line arguments to describe a new pipeline.

In summary, this layered architecture promotes modularity, scalability, and ease of configuration while maintaining separation of concerns.

Multicast Control Flow#

image3

image4image5

image6

image7

State Machine#

image8