# 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 # Copyright: 2016, Institute for Automation of Complex Power Systems, EONERC ## stats = 1; debug = 10; nodes = { node1 = { type = "socket", layer = "udp", local = "*:12000", # Local ip:port, use '*' for random port remote = "127.0.0.1:12001", combine = 5, header = "villas", # 'gtnet-skt' or 'villas'. If not provided, 'villas' header will be used vectorize = 1, # Number of samples to fetch per iteration from the socket netem = { enabled = false, delay = 1000000, # In micro seconds! jitter = 300000, distribution = "normal" } }, node2 = { type = "socket", layer = "udp", local = "*:12001", # Local ip:port, use '*' for random port remote = "127.0.0.1:12002", header = "villas", # 'gtnet-skt' or 'villas'. If not provided, 'villas' header will be used vectorize = 1 # Number of samples to fetch per iteration from the socket } }; paths = ( { in = "node1", # Name of the node we listen to (see above) out = "node2", # And we loop back to the origin hook = ["decimate:2", "print"] } );