# This is an example for a minimal loopback configuration.
#
# All messages will be sent back to the origin using UDP packets.
#
# You can use this configuration in conjunction with the 'send', 'receive' and 'random'
# utilities as shown below (run all three steps in parallel).
#
# 0. Overview:
#
#    ./signal --PIPE--> ./pipe  --UDP--> ./node --UDP--> ./pipe
#
# 1. Start server:
#
#    $ ./node etc/loopback.conf
#
# 2. Send random data to server:
#
#    $ ./signal random -r 10 -v 4 | ./pipe etc/loopback.conf node1
#
# 3. Receive data from server:
#
#    $ ./pipe etc/loopback.conf node2
#
# Author: Steffen Vogel <post@steffenvogel.de>
# SPDX-FileCopyrightText: 2014-2023 Institute for Automation of Complex Power Systems, RWTH Aachen University
# SPDX-License-Identifier: Apache-2.0

logging = {
    level = "debug"
}

nodes = {
    node1 = {
        type = "socket",
        format = {
            type = "gtnet"
            fake = true
        }

        in = {
            address = "134.130.169.31:12002"	# Local ip:port, use '*' for random port
        }
        out = {
            address = "134.130.169.98:12001"
        }

        netem = {
            enabled = false
            delay = 1000000			# In micro seconds!
            jitter = 300000
            distribution = "normal"
        }
    },
    node2 = {
        type = "socket",
        format = {
            type = "gtnet"
            fake = true
        }

        in = {
            address = "134.130.169.31:12004",	# Local ip:port, use '*' for random port
        }
        out = {
            address = "134.130.169.99:12003",
        }
    }
}

paths = (
    {
        in = "node1"					# Name of the node we listen to (see above)
        out = "node1"					# And we loop back to the origin
        hooks = (
            {
                type = "print"
            }
        )
    },
    {
        in = "node2",
        out = "node2",
        hooks = (
            {
                type = "print"
            }
        )
    }
)