/** 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: * * villas signal --PIPE--> ./pipe --UDP--> ./node --UDP--> ./pipe * * 1. Start server: * * $ villas node etc/loopback.conf * * 2. Send random data to server: * * $ villas signal random -r 10 -v 4 | villas pipe etc/loopback.conf node1 * * 3. Receive data from server: * * $ villas pipe etc/loopback.conf node2 * * 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 * @copyright 2014-2022, Institute for Automation of Complex Power Systems, EONERC * @license Apache 2.0 *********************************************************************************/ nodes = { node1 = { type = "socket" layer = "udp" in = { address = "127.0.0.1:12000" # Local ip:port, use '*' for random port } out = { address = "127.0.0.1:12001" netem = { enabled = false delay = 1000000 # In micro seconds! jitter = 300000 distribution = "normal" } } }, node2 = { type = "socket" layer = "udp" in = { address = "127.0.0.1:12001" # Local ip:port, use '*' for random port } out = { address = "127.0.0.1:12002" } }, node3 = { type = "socket" layer = "udp" in = { address = "127.0.0.1:12002" # Local ip:port, use '*' for random port } out = { address = "127.0.0.1:12000" } }, loopback = { type = "socket" layer = "udp" in = { address = "127.0.0.1:12003" # Local ip:port, use '*' for random port } out = { address = "127.0.0.1:12003" } } } paths = ( { in = "node1" # Name of the node we listen to (see above) out = "node2" # And we loop back to the origin hooks = ( { type = "print" } ) } )