Modeling Guide

Stdin/out Port Muxer

The stdmuxer maps multiple input ports to stdin of a process and multiplexes the output of stdout to multiple output ports. The base type of all ports is stream.

Muxer Protocol

The communication between the SAP Vora Pipeline Engine and the forked process requires a small protocol for multiplexing over stdin and stdout:
|1byte|8byte                                          |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+------...
|port | size of data (uint64 big endian)              | data
+-----+-----+-----+-----+-----+-----+-----+-----+-----+------...

port is the ID of an in or out port. The port IDs are assigned dynamically to all bound ports and passed into the process via environment variables with the prefixes VFLOW_MUX_INPORT_ and VFLOW_MUX_OUTPORT_. The suffix is the port name in upper case. For example, if you have an in port named myPort, the variable name is VFLOW_MUX_INPORT_MYPORT. If the variable of a port is not available in the process, it was not bound. Port IDs are only unique for a certain port direction; that is, 0 can be the ID of both in and out ports.

Configuration Parameters

Parameter

Type

Description

CmdLine

string

The command line of the process to be forked.

Default: ""

Env

string

Additional environment variables to be provided to the process.

Default: "[]"

InheritEnv

string

If set to true, the forked process inherits the environment.

Default: "false"

TraceStderr

string

If set to true, the standard error of the forked process is traced to the parent process with severity ERROR.

Default: "false"

Input

None

Output

None