2015-05-07 10:38:05 +02:00
|
|
|
# Example configuration file for the S2SS server
|
|
|
|
#
|
|
|
|
# This example includes all valid configuration options for the server.
|
|
|
|
# Please note, that using all options at the same time does not really
|
|
|
|
# makes sense. The purpose of this example is to serve as a reference.
|
|
|
|
#
|
|
|
|
# The syntax of this file is similar to JSON.
|
|
|
|
# A detailed description of the format can be found here:
|
|
|
|
# http://www.hyperrealm.com/libconfig/libconfig_manual.html#Configuration-Files
|
|
|
|
#
|
|
|
|
# Author: Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
|
|
|
|
# Copyright: 2015, Institute for Automation of Complex Power Systems, EONERC
|
|
|
|
##
|
2014-06-05 09:34:32 +00:00
|
|
|
|
2015-05-07 10:38:05 +02:00
|
|
|
############ Global Options ############
|
|
|
|
|
|
|
|
affinity = 0x02; # Mask of cores the server should run on
|
|
|
|
# This also maps the NIC interrupts to those cores!
|
|
|
|
|
|
|
|
priority = 50; # Priority for the server tasks.
|
|
|
|
# Usually the server is using a real-time FIFO
|
|
|
|
# scheduling algorithm
|
|
|
|
|
|
|
|
debug = 5; # The level of verbosity for debug messages
|
|
|
|
# Higher number => increased verbosity
|
|
|
|
|
|
|
|
stats = 3; # The interval in seconds to print path statistics.
|
|
|
|
# A value of 0 disables the statistics.
|
|
|
|
|
|
|
|
|
|
|
|
############ Dictionary of nodes ############
|
2014-06-05 09:34:32 +00:00
|
|
|
|
2014-06-05 09:34:59 +00:00
|
|
|
nodes = {
|
2015-05-07 10:38:05 +02:00
|
|
|
udp_node = { # The dictionary is indexed by the name of the node.
|
|
|
|
type = "udp", # Type can be one of:
|
|
|
|
# udp Send / recv UDP packets
|
|
|
|
# tcp Send / recv TCP packets
|
|
|
|
# ip Send / recv IP packets
|
|
|
|
# ieee802.3 Send / recv raw Ethernet frames
|
|
|
|
# opal Read / write via libOpalAsyncApi
|
|
|
|
# gtfpga Read / write to memory mapped PCIe card
|
|
|
|
|
|
|
|
local = "127.0.0.1:12001", # This node only received messages on this IP:Port pair
|
|
|
|
remote = "127.0.0.1:12000" # This node sents outgoing messages to this IP:Port pair
|
|
|
|
|
|
|
|
combine = 30 # Receive and sent 30 samples per message (multiplexing).
|
2014-06-05 09:34:59 +00:00
|
|
|
},
|
2015-05-07 10:38:05 +02:00
|
|
|
tcp_node = {
|
|
|
|
type = "tcp", # See above.
|
|
|
|
local = "*:12002", # It's possible to use an '*' for both the port and address
|
|
|
|
# in UDP / TCP and IP modes.
|
|
|
|
# This will choose a random port.
|
|
|
|
# And listen on all available interfaces.
|
|
|
|
remote = "127.0.0.1:12003", # Currently IPv6 is not supported!
|
|
|
|
|
|
|
|
netem = { # Network emulation settings
|
|
|
|
# Those settings can be specified for each node invidually!
|
|
|
|
|
|
|
|
delay = 100000, # Additional latency in microseconds
|
|
|
|
jitter = 30000, # Jitter in uS
|
|
|
|
distribution = "normal", # Distribution of delay: uniform, normal, pareto, paretonormal
|
|
|
|
loss = 10 # Packet loss in percent
|
|
|
|
duplicate = 10, # Duplication in percent
|
|
|
|
corrupt = 10 # Corruption in percent
|
2014-06-25 01:53:48 +00:00
|
|
|
}
|
2015-05-07 10:38:05 +02:00
|
|
|
},
|
|
|
|
opal_node = { # The server can be started as an Asynchronous process
|
|
|
|
type = "opal", # from within an OPAL-RT model.
|
|
|
|
send_id = 1, # It's possible to have multiple send / recv Icons per model
|
|
|
|
recv_id = 1, # Specify the ID here.
|
|
|
|
reply = true
|
|
|
|
},
|
|
|
|
file_node = {
|
|
|
|
type = "file",
|
|
|
|
mode = "w+",
|
|
|
|
in = "./" # These options specify the path prefix where the the files are stored
|
|
|
|
out = ""
|
|
|
|
},
|
|
|
|
gtfpga_node = {
|
|
|
|
|
2014-06-05 09:34:32 +00:00
|
|
|
}
|
2014-06-05 09:34:59 +00:00
|
|
|
};
|
2014-06-05 09:34:32 +00:00
|
|
|
|
2015-05-07 10:38:05 +02:00
|
|
|
|
|
|
|
############ List of paths ############
|
|
|
|
|
2014-06-05 09:34:32 +00:00
|
|
|
paths = (
|
|
|
|
{
|
2015-05-07 10:38:05 +02:00
|
|
|
enabled = true, # Enable this path (default: true)
|
|
|
|
reverse = true, # Setup a path in the reverse direction as well (default: false)
|
|
|
|
|
|
|
|
in = "acs", # Name of the node we receive messages from (see node dictionary)
|
|
|
|
out = "sintef", # Name of the node we send messages to.
|
|
|
|
|
|
|
|
rate = 100, # Send message over this path with a fixed (constant) rate (default: 0).
|
|
|
|
# Setting this value to 0 will disable this feature.
|
|
|
|
|
|
|
|
hook = "print", # Register custom hook funktion (see src/hooks.c)
|
|
|
|
|
|
|
|
poolsize = 30 # The amount of samples which are kept in a circular buffer.
|
|
|
|
# This number must be larger than the 'combine' settings of all
|
|
|
|
# associated input and output nodes!
|
|
|
|
},
|
|
|
|
{
|
|
|
|
enabled = false,
|
|
|
|
reverse = false,
|
|
|
|
|
|
|
|
in = "opal_node", # There's only a single source node allowed!
|
|
|
|
out = ["udp_node", "tcp_node"], # Multiple destination nodes are supported too.
|
|
|
|
|
|
|
|
hook = [ "print", "decimate" ] # Same is true for hooks.
|
|
|
|
# Multipe hook functions are executed in the order they are specified here.
|
2014-06-05 09:34:32 +00:00
|
|
|
}
|
|
|
|
);
|