Documentation Home Page HYPERSIM Home Page
Pour la documentation en FRANÇAIS, utilisez l'outil de traduction de votre navigateur Chrome, Edge ou Safari. Voir un exemple.

TCP-UDP | Configuration

Accessing the I/O Interface Configuration

The TCP-UDP communication protocol can be configured in the I/O Interface Configuration tool, accessed from the HYPERSIM ribbon.

For more information on the general use of the I/O Interface Configuration, See also I/O Interface Configuration.

General Configuration

The TCP-UDP I/O interface is configured within a few pages.


The first parameters to be configured are found below:

Use an RT core for asynchronous computationIf set to "true", the driver will reserve a real-time CPU core for its communication system and will be able to handle a bigger amount of data. If set to "false", the communication system will default to core 0.
VerboseIf enabled, additional information will be displayed during the load of the model.
Data frame adjustments

This drop-down offers options for automatic adjustments to the data frame as it is being built.
This is done when a signal is added or removed or when the vector size, byte offset, bit offset or size in bits (including type changes) is modified.

The options are:
- None: no actions are taken
- Ensure no overlap: overlaps will be automatically corrected; this option permits having gaps in the frame
- Ensure contiguous: overlaps will be automatically corrected and any possible gaps will be automatically erased

The correction is done by displacing all signals affected by the changes mentioned above by the correct amount of bits.
Float and Double data types need to be byte-aligned, therefore they are moved to the nearest appropriate location possible.

Enable virtual mode

In virtual mode, the model can be executed even if this I/O interface is not compatible with the hardware configuration of the system.

The connections between the model and the I/O interface will be done during the initialization, but the I/O interface will not do anything.

The virtual mode can be used to troubleshoot problems on a system without having the required hardware, or to prepare a model with different
I/O interfaces even if the final hardware platform is not available.

Stream Configuration

General Stream Configuration

By default, the driver is configured with two streams with a TCP client and a TCP server, both using the internal loopback network on port 23000.

Each TCP-UDP stream device has multiple parameters:

Protocol

Two choices are available:

  • TCP: Stream exchanges data over TCP.
  • UDP: Stream exchanges data over UDP. 
TCP modeTwo choices are available:
  • Server: Stream endpoint acts as a TCP server.
  • Client: Stream endpoint acts as a TCP client. 

Note: Only visible when TCP is selected as protocol.

TCP port

Select the TCP port on which the stream communicates. The default port is 23000.

Note: Only visible when TCP is selected as protocol.

UDP local port

Select the local UDP port on which the endpoint receives data. The default port is 23001.

Note: Only visible when UDP is selected as protocol.

UDP remote port

Select the remote UDP port on which the endpoint sends data. The default port is 23002.

Note: Only visible when UDP is selected as protocol.

NIC name

The desired network interface name. The proper interface name should be selected based on the information given by the Linux command "ifconfig". The name of the Ethernet network is returned.

If the driver is running Windows this field is ignored.

Local IP Address

IP address of the local TCP/UDP endpoint

  • On Linux platforms, the IP aliasing functionality can be used to give each stream a different IP address even though the same network interface will be used. Each stream will have its own IP alias (i.e. eth0:0, eth0:1 ...) and they should appear in the list displayed by the linux command "ifconfig".
  • It is possible to use the keyword ‘auto’ and the IP address of the first network interface of the simulator will be automatically used to handle the communication of this stream.
NIC speed

The desired network interface speed. If the driver is running on Windows this field is ignored.

Several choices are available:

OptionDescription
DefaultDoesn't change the network interface speed
ForceAutoSet auto-negotiation mode
Force10Set the network interface speed to 10mbps
Force100Set the network interface speed to 100mbps
Force1000Set the network interface speed to 1gbps
Force10000Set the network interface speed to 10gbps
Remote IP address

IP address of the remote TCP/UDP endpoint.

Note: Only visible when TCP Server or UDP is selected.

Decimation factorNumber of timesteps between transmission triggers. A value of one triggers transmission at each timestep.
Enable transmission controlAdds a data point that controls whether or not the I/O interface sends data. If disabled, transmission is always enabled.
Enable reception controlAdds a data point that controls whether or not the I/O interface receives data. If disabled, reception is always enabled.
Swap byte orderSwaps the native byte order when transmitting data.
Enable custom byte swapIf Swap byte order is enabled, this field becomes visible. If enabled, byte swap option for custom data type is available.
Use sequential bit ordering for custom data

When enabled, each custom data frame on the stream will have its bits reordered from Most Significant Bit (MSB) to Least Significant Bit (LSB), which in turn reorders the messages in the stream, regardless of the endianness of the machine. Byte within messages are in MSB and messages with the smallest bit offset are serialized first. 

For instance, given that Message 0 and Message 1 have the following characteristics in a stream:

  • Message 0: bit offset of 0, byte offset of 0 and a value of 0x1
  • Message 1: bit offset of 4, byte offset of 0 and a value of 0xA BC DE F0

The MSB serialization will package the messages in the memory block the following way: 

  • Byte #0: 0x1A
  • Byte #1: 0xBC
  • Byte #2: 0xDE
  • Byte #3: 0xF0

Which will result 0x1A BC DE F0, as opposed of serializing traditionally in little endianness, read in a U32 register: 0xF0 DE BC 1A

Use VLAN

When enabled, this creates a VLAN interface based on the NIC name defined previously and the following parameters become visible:

  • VLAN index: Each stream must have a unique index.
  • VLAN address: An IP address dedicated to the VLAN.


Frame Format

A TCP-UDP stream frame builder example is shown below:

For each data point, the following parameters are configurable:

  • Name: A specific name for the data point. This name must be unique within the frame.
  • Type: The data type to use to transmit/receive the data. Custom types allow for bit fields.
  • Vector size: Number of values to transmit/receive.
  • Byte offset: Starting offset of data within frame in bytes.
  • Bit offset: Starting offset of data within byte in bits. May only be configured with custom data types.
  • Size (bits): Number of bits to use to transmit/receive each value. May only be configured with custom data types.
  • Initial value: Initial value for each element.
  • Min: Minimum possible value for data type.
  • Max: Maximum possible value for data type.

OPAL-RT TECHNOLOGIES, Inc. | 1751, rue Richardson, bureau 1060 | Montréal, Québec Canada H3K 1G6 | opal-rt.com | +1 514-935-2323
Follow OPAL-RT: LinkedIn | Facebook | YouTube | X/Twitter