From 907f92283030095b98d008a19843e5174ab152aa Mon Sep 17 00:00:00 2001
From: Steffen Vogel <post@steffenvogel.de>
Date: Thu, 17 Oct 2019 19:16:25 +0100
Subject: [PATCH] move VILLAS-specific config files into subdir

---
 docker-compose.yml                            |   7 +-
 etc/nginx/{villas.conf => default.conf}       |   0
 etc/{ => villas}/controller/config.json       |   0
 etc/{ => villas}/node/demo.conf               |   0
 etc/villas/node/others/acs-inl-polito.conf    | 153 ++++++
 etc/villas/node/others/csu-inl.conf           |  82 ++++
 etc/villas/node/others/inl-web.conf           | 214 +++++++++
 etc/villas/node/others/inl.conf               | 448 ++++++++++++++++++
 etc/villas/node/others/snl-inl.conf           |  95 ++++
 etc/villas/node/others/usc-inl.conf           |  96 ++++
 .../node/websocket-demo-files.conf            |   0
 etc/{ => villas}/node/websocket-demo.conf     |   0
 etc/{ => villas}/node/websocket.conf          |   0
 kubernetes/Makefile                           |   4 +-
 14 files changed, 1095 insertions(+), 4 deletions(-)
 rename etc/nginx/{villas.conf => default.conf} (100%)
 rename etc/{ => villas}/controller/config.json (100%)
 rename etc/{ => villas}/node/demo.conf (100%)
 create mode 100644 etc/villas/node/others/acs-inl-polito.conf
 create mode 100644 etc/villas/node/others/csu-inl.conf
 create mode 100644 etc/villas/node/others/inl-web.conf
 create mode 100644 etc/villas/node/others/inl.conf
 create mode 100644 etc/villas/node/others/snl-inl.conf
 create mode 100644 etc/villas/node/others/usc-inl.conf
 rename etc/{ => villas}/node/websocket-demo-files.conf (100%)
 rename etc/{ => villas}/node/websocket-demo.conf (100%)
 rename etc/{ => villas}/node/websocket.conf (100%)

diff --git a/docker-compose.yml b/docker-compose.yml
index 810da5e..3acd0b7 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -36,7 +36,7 @@ services:
   nginx:
     image: nginx:1.17.4-alpine
     volumes:
-     - ./etc/nginx/villas.conf:/etc/nginx/conf.d/default.conf
+     - ./etc/nginx/:/etc/nginx/conf.d/
     ports:
      - 8080:8080
     depends_on:
@@ -58,7 +58,7 @@ services:
     privileged: true
     command: node /etc/villas/node/demo.conf
     volumes:
-      - ./etc/node:/etc/villas/node
+      - ./etc/villas/node:/etc/villas/node
       - ./data:/data
     ports:
       - "8081:80"
@@ -105,6 +105,9 @@ services:
       context: .
       dockerfile: Dockerfile.controller
     command: villas-ctl -b "amqp://villas:s3c0sim4!@broker/%2F" -c /etc/villas/controller/config.json daemon
+    volumes:
+      - ./etc/villas/controller:/etc/villas/controller
+      - ./data:/data
     depends_on:
       - broker
     restart: always
diff --git a/etc/nginx/villas.conf b/etc/nginx/default.conf
similarity index 100%
rename from etc/nginx/villas.conf
rename to etc/nginx/default.conf
diff --git a/etc/controller/config.json b/etc/villas/controller/config.json
similarity index 100%
rename from etc/controller/config.json
rename to etc/villas/controller/config.json
diff --git a/etc/node/demo.conf b/etc/villas/node/demo.conf
similarity index 100%
rename from etc/node/demo.conf
rename to etc/villas/node/demo.conf
diff --git a/etc/villas/node/others/acs-inl-polito.conf b/etc/villas/node/others/acs-inl-polito.conf
new file mode 100644
index 0000000..a0f6522
--- /dev/null
+++ b/etc/villas/node/others/acs-inl-polito.conf
@@ -0,0 +1,153 @@
+# configuration file for co-simulation setup acs-inl: inl-rtds - inl-villas -- acs-villas - acs-rtds
+#
+# host: acs-villas
+# acs devices: inl-rtds3
+# remote nodes: inl-villas
+#
+
+
+############     nodes    ############
+
+stats = 5.0;
+
+nodes = {
+
+	inl-villas-web-ss2a = {
+		type = "socket";
+		layer = "udp";
+		local  = "*:13002";
+		remote = "141.221.118.94:13002";
+	},
+
+	inl-villas-web-ss2b = {
+		type = "socket";
+		layer = "udp";
+		local  = "*:13022";
+		remote = "141.221.118.94:13022";
+	},
+
+	loopback1 = {
+		type = "loopback";
+		hooks = (
+			{ type = "decimate", ratio = 100 }
+		)
+	},
+
+	loopback2 = {
+		type = "loopback";
+		hooks = (
+			{ type = "decimate", ratio = 100 }
+		)
+	},
+
+	acs-rtds98 = {
+		type = "socket";
+		layer = "udp";
+		format = "gtnet";
+		local  = "134.130.169.32:12001";
+		remote = "134.130.169.98:12001";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	},
+
+	inl-villas = {
+		type = "socket";
+		layer = "udp";
+		local  = "10.10.15.1:12002";
+		remote = "141.221.118.93:12002";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	},
+
+	acs-rtds99 = {
+		type = "socket";
+		layer = "udp";
+		format = "gtnet";
+		local  = "134.130.169.32:12003";
+		remote = "134.130.169.99:12003";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	},
+
+	polito-villas = {
+		type = "socket";
+		layer = "udp";
+		local  = "134.130.169.31:12004";
+		remote = "130.192.95.241:12004";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	}
+};
+
+
+############     paths    ############
+
+paths = (
+	{
+		in  = [
+			"acs-rtds98"
+		],
+		out = [
+			"inl-villas",
+			"loopback1"
+		]
+	},
+	{
+		in  = [
+			"inl-villas"
+		],
+		out = [
+			"acs-rtds98"
+		]
+	},
+	{
+		in  = [
+			"acs-rtds99"
+		],
+		out = [
+			"polito-villas",
+			"loopback1"
+		]
+	},
+	{
+		in  = [
+			"polito-villas"
+		],
+		out = [
+			"acs-rtds99"
+		],
+	},
+
+	{
+		in = [
+			"loopback1"
+		],
+		out = [
+			"inl-villas-web-ss2a"
+		]
+	},
+	{
+		in = [
+			"loopback2"
+		],
+		out = [
+			"inl-villas-web-ss2b"
+		]
+	}
+);
diff --git a/etc/villas/node/others/csu-inl.conf b/etc/villas/node/others/csu-inl.conf
new file mode 100644
index 0000000..6f6b024
--- /dev/null
+++ b/etc/villas/node/others/csu-inl.conf
@@ -0,0 +1,82 @@
+# configuration file
+# host: csu-villas
+# remote nodes: inl-villas
+# Test: rtds - VILLASnode - VILLASnode - opal
+#
+############     nodes    ############
+
+stats = 5.0;
+
+nodes = {
+	inl-villas-web-ss4 = {
+		type = "socket";
+		local = "*:13004";
+		remote = "141.221.118.94:13004";
+	}
+
+	loopback1 = {
+		type = "loopback";
+		hooks = (
+			{ type = "decimate", ratio = 100 }
+		)
+	},
+
+	csu-opal = {
+		type = "socket";
+		layer = "udp";
+		local  = "129.82.106.227:12001";
+		remote = "129.82.106.186:12001";
+		hooks = (
+			{
+			type = "stats",
+			warmup = 3000
+			}
+		)
+	},
+
+	#ss4 (in demo schematic)
+	inl-villas = {
+		type = "socket";
+		layer = "udp";
+		local  = "129.82.106.227:12004";
+		remote = "141.221.118.93:12004";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000
+			}
+		)
+	},
+
+	results = {
+		type = "file",
+		uri = "/home/mfat1985/results/ssB_cosim_inl-csu_%Y%m%d_%H-%M-%S.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+		flush = false,
+		mode = "w+"
+	}
+};
+
+paths = (
+	{
+		in  = [
+			"csu-opal"
+		],
+		out = [
+			"inl-villas",
+			"results",
+			"loopback1"
+		]
+	},
+	{
+		in  = [
+			"inl-villas.data[0-9]"
+		],
+		out = [
+			"csu-opal"
+		],
+	},
+	{
+		in = "loopback1",
+		out = "inl-villas-web-ss4"
+	}
+);
diff --git a/etc/villas/node/others/inl-web.conf b/etc/villas/node/others/inl-web.conf
new file mode 100644
index 0000000..cdda56b
--- /dev/null
+++ b/etc/villas/node/others/inl-web.conf
@@ -0,0 +1,214 @@
+# configuration file for the setup for integration testing: inl-csu-usc-nrel
+# Test with acs-rtds (nrel), acs-opal1 (csu), acs-opal2 (usc)
+#
+# host: inl-villas
+# inl devices: inl-rtds73, inl-rtds74, inl-rtds83, inl-rtds84
+# remote nodes: csu-villas, usc-villas, nrel-rtds, acs-villas
+#
+
+stats = 5.0;
+
+hugepages = 1000;
+
+############     nodes    ############
+
+nodes = {
+
+# Labs
+	acs-villasA = {
+		type = "socket",
+		layer = "udp",
+		local = "*:13002",
+		remote = "10.10.15.1:13002"
+		hooks = ( { type = "stats"} )
+	},
+
+	acs-villasB = {
+		type = "socket",
+		layer = "udp",
+		local = "*:13022",
+		remote = "10.10.15.1:13022"
+		hooks = ( { type = "stats"} )
+	},
+
+	usc-villas = {
+		type = "socket",
+		layer = "udp",
+		local = "*:13077",
+		remote = "129.252.22.104:13078",
+		hooks = ( { type = "stats" } )
+	},
+
+	wsu-villas = {
+		type = "socket",
+		layer = "udp",
+		local = "*:13008",
+		remote = "141.221.118.93:13008"
+		hooks = ( { type = "stats"} )
+	},
+
+	polito-villas = {
+		type = "socket",
+		layer = "udp",
+		local = "*:13003",
+		remote = "141.221.118.93:13001"
+		hooks = ( { type = "stats"} )
+	},
+
+	snl-villas = {
+		type = "socket",
+		layer = "udp",
+		local = "*:13006",
+		remote = "141.221.118.93:13006"
+		hooks = ( { type = "stats"} )
+	},
+
+	csu-villas = {
+		type = "socket",
+		layer = "udp",
+		local = "*:13004",
+		remote = "141.221.118.93:13004"
+		hooks = ( { type = "stats"} )
+	}
+
+	nrel-villas = {
+		type = "socket",
+		layer = "udp",
+		local = "*:13005",
+		remote = "141.221.118.93:13001",
+		hooks = ( { type = "stats"} )
+	}
+
+	inl-rtds73 = {
+		type = "socket",
+		layer = "udp",
+		local = "*:13073",
+		remote = "141.221.118.95:13073",
+		hooks = ( { type = "stats"} )
+	}
+
+	inl-rtds74 = {
+		type = "socket",
+		layer = "udp",
+		local = "*:13074",
+		remote = "141.221.118.95:13074",
+		hooks = ( { type = "stats"} )
+	}
+
+	inl-rtds83 = {
+		type = "socket",
+		layer = "udp",
+		local = "*:13083",
+		remote = "141.221.118.95:13083",
+		hooks = ( { type = "stats"} )
+	}
+
+	inl-rtds84 = {
+		type = "socket",
+		layer = "udp",
+		local = "*:13084",
+		remote = "141.221.118.95:13084",
+		hooks = ( { type = "stats"} )
+	}
+
+
+# WS endpoints
+	nrel-villas_ws   = { type = "websocket" },
+	acs-villasA_ws    = { type = "websocket" },
+	acs-villasB_ws    = { type = "websocket" },
+	csu-villas_ws    = { type = "websocket" },
+	wsu-villas_ws    = { type = "websocket" },
+	usc-villas_ws    = { type = "websocket" }
+	snl-villas_ws    = { type = "websocket" },
+	polito-villas_ws = { type = "websocket" },
+
+	inl-rtds73_ws = { type = "websocket" },
+	inl-rtds74_ws = { type = "websocket" },
+	inl-rtds83_ws = { type = "websocket" },
+	inl-rtds84_ws = { type = "websocket" },
+
+	nrel-villas_file = {
+		type = "file",
+		uri = "/rtsuperlab/nrel-villas_%Y%m%d_%H-%M-%S.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+	},
+	acs-villasA_file = {
+		type = "file",
+		uri = "/rtsuperlab/acs-villasA_%Y%m%d_%H-%M-%S.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+	},
+	acs-villasB_file = {
+		type = "file",
+		uri = "/rtsuperlab/acs-villasB_%Y%m%d_%H-%M-%S.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+	},
+	csu-villas_file = {
+		type = "file",
+		uri = "/rtsuperlab/csu-villas_%Y%m%d_%H-%M-%S.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+	},
+	wsu-villas_file = {
+		type = "file",
+		uri = "/rtsuperlab/wsu-villas_%Y%m%d_%H-%M-%S.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+	},
+	usc-villas_file = {
+		type = "file",
+		uri = "/rtsuperlab/usc-villas_%Y%m%d_%H-%M-%S.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+	},
+	snl-villas_file = {
+		type = "file",
+		uri = "/rtsuperlab/snl-villas_%Y%m%d_%H-%M-%S.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+	},
+	polito-villas_file = {
+		type = "file",
+		uri = "/rtsuperlab/polito-villas_%Y%m%d_%H-%M-%S.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+	},
+
+	inl-rtds73_file = {
+		type = "file",
+		uri = "/rtsuperlab/inl-rtds73_%Y%m%d_%H-%M-%S.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+	},
+	inl-rtds74_file = {
+		type = "file",
+		uri = "/rtsuperlab/inl-rtds74_%Y%m%d_%H-%M-%S.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+	},
+	inl-rtds83_file = {
+		type = "file",
+		uri = "/rtsuperlab/inl-rtds83_%Y%m%d_%H-%M-%S.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+	},
+	inl-rtds84_file = {
+		type = "file",
+		uri = "/rtsuperlab/inl-rtds84_%Y%m%d_%H-%M-%S.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+	},
+
+	sig = {
+		type = "signal",
+
+		signal = "mixed",
+		values = 5,
+		rate = 20,
+		hooks = (
+			{ type = "stats" }
+		)
+	},
+	sig_ws = {
+		type = "websocket"
+	}
+};
+
+############       paths       ############
+
+paths = (
+	# We receive sample data from each lab and send it to the web
+	{ in = "acs-villasA",    out = ["acs-villasA_ws", "acs-villasA_file"] },
+	{ in = "acs-villasB",    out = ["acs-villasB_ws", "acs-villasB_file"] },
+	{ in = "csu-villas",    out = ["csu-villas_ws", "csu-villas_file"] },
+	{ in = "wsu-villas",    out = ["wsu-villas_ws", "wsu-villas_file"] },
+	{ in = "usc-villas",    out = ["usc-villas_ws", "usc-villas_file"] },
+	{ in = "snl-villas",    out = ["snl-villas_ws", "snl-villas_file"] },
+	{ in = "polito-villas", out = ["polito-villas_ws", "polito-villas_file"] },
+	{ in = "nrel-villas",   out = ["nrel-villas_ws", "nrel-villas_file"] },
+
+	{ in = "inl-rtds73",    out = ["inl-rtds73_ws", "inl-rtds73_file"] },
+	{ in = "inl-rtds74",    out = ["inl-rtds74_ws", "inl-rtds74_file"] },
+	{ in = "inl-rtds83",    out = ["inl-rtds83_ws", "inl-rtds83_file"] },
+	{ in = "inl-rtds84",    out = ["inl-rtds84_ws", "inl-rtds84_file"] },
+
+	{ in = "sig", out = "sig_ws" }
+);
diff --git a/etc/villas/node/others/inl.conf b/etc/villas/node/others/inl.conf
new file mode 100644
index 0000000..5d49474
--- /dev/null
+++ b/etc/villas/node/others/inl.conf
@@ -0,0 +1,448 @@
+# configuration file for the setup for integration testing: inl-csu-usc-nrel
+# Test with acs-rtds (nrel), acs-opal1 (csu), acs-opal2 (usc)
+#
+# host: inl-villas
+# inl devices: inl-rtds73, inl-rtds74, inl-rtds83, inl-rtds84
+# remote nodes: csu-villas, usc-villas, nrel-rtds, acs-villas
+#
+
+
+############     nodes    ############
+
+stats = 5.0;
+
+nodes = {
+
+	# ss1-ss2 (inl-rwth)
+	inl-rtds73 = {
+		type = "socket";
+		layer = "udp";
+		format = "gtnet";
+		local  = "*:12073";
+		remote = "141.221.118.73:12073";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	},
+
+	# ss1-ss4 (inl-csu)
+	inl-rtds84 = {
+		type = "socket";
+		layer = "udp";
+		format = "gtnet";
+		local  = "*:12084";
+		remote = "141.221.118.84:12084";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	},
+
+	# ss1-ss5 (inl-nrel)
+	inl-rtds83 = {
+		type = "socket";
+		layer = "udp";
+		format = "gtnet";
+		local  = "*:12083";
+		remote = "141.221.118.83:12083";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	},
+
+	# ss1-ss7 (inl-usc)
+	inl-rtds74 = {
+		type = "socket";
+		layer = "udp";
+		format = "gtnet";
+		local  = "*:12074";
+		remote = "141.221.118.74:12074";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	}
+
+	inl-opal = {
+		type = "socket",
+		layer = "udp",
+		local  = "*:12009";
+		remote = "141.221.118.109:12009";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	}
+
+	# ss2 (in demo schematic)
+	acs-villas = {
+		type = "socket";
+		layer = "udp";
+		local  = "*:12002";
+		remote = "10.10.15.1:12002";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	},
+
+	# ss4 (in demo schematic)
+	csu-villas = {
+		type = "socket";
+		layer = "udp";
+		local  = "*:12004";
+		remote = "129.82.106.227:12004";
+		#remote = "10.10.15.1:12004";  # test with acs-opal
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	},
+
+	# ss5 (in demo schematic)
+	nrel-rtds = {
+		type = "socket";
+		layer = "udp";
+		format = "gtnet";
+		local  = "*:12005";
+		remote = "192.174.56.96:12005";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	},
+
+	# ss6 (in demo schematic)
+	snl-villas = {
+		type = "socket";
+		layer = "udp";
+		local  = "*:12006";
+		remote = "10.1.2.4:12006";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	},
+
+	# ss7 (in demo schematic)
+	#we have to use two nodes and different ports for usc (some weird behavior of VPN/Firewall)
+	inl-to-usc-villas = {
+		type = "socket";
+		layer = "udp";
+		local  = "*:12007";
+		remote = "129.252.22.104:13007";  #TODO: the idea is to use ports > 13000 for inl-web, take care to avoid conflict
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	},
+
+	usc-to-inl-villas = {
+		type = "socket";
+		layer = "udp";
+		local  = "*:12077";
+		remote = "129.252.22.104:13077";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	},
+
+	# ss8 (in demo schematic)
+	wsu-villas = {
+		type = "socket";
+		layer = "udp";
+		local  = "*:12008";
+		remote = "192.168.1.188:12008";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	},
+
+	# Loopbacks for downsampling monitoring data
+	loopback1 = {
+		type = "loopback"
+		hooks = (
+			{
+				type = "decimate",
+				ratio = 50
+			}
+		)
+	},
+
+	loopback2 = {
+		type = "loopback"
+		hooks = (
+			{
+				type = "decimate",
+				ratio = 100
+			}
+		)
+	},
+
+	loopback3 = {
+		type = "loopback"
+		hooks = (
+			{
+				type = "decimate",
+				ratio = 100
+			}
+		)
+	},
+
+	loopback4 = {
+		type = "loopback"
+		hooks = (
+			{
+				type = "decimate",
+				ratio = 100
+			}
+		)
+	},
+
+	loopback5 = {
+		type = "loopback"
+		hooks = (
+			{
+				type = "decimate",
+				ratio = 100
+			}
+		)
+	},
+
+	loopback6 = {
+		type = "loopback"
+		hooks = (
+			{
+				type = "decimate",
+				ratio = 100
+			}
+		)
+	},
+
+	loopback7 = {
+		type = "loopback"
+		hooks = (
+			{
+				type = "decimate",
+				ratio = 100
+			}
+		)
+	},
+
+	# inl-villas-web endpoints for monitoring
+	inl-villas-web-ss5 = {
+		type = "socket",
+		local = "*:13005",
+		remote = "141.221.118.94:13005",
+	}
+
+	inl-villas-web-rtds73 = {
+		type = "socket",
+		local = "*:13073",
+		remote = "141.221.118.94:13073",
+	}
+
+	inl-villas-web-rtds74 = {
+		type = "socket",
+		local = "*:13074",
+		remote = "141.221.118.94:13074",
+	}
+
+	inl-villas-web-rtds83 = {
+		type = "socket",
+		local = "*:13083",
+		remote = "141.221.118.94:13083",
+	}
+
+	inl-villas-web-rtds84 = {
+		type = "socket",
+		local = "*:13084",
+		remote = "141.221.118.94:13084",
+	}
+
+	# Result recording
+	results-ss2_ss9 = {
+		type = "file",
+		uri = "/rtsuperlab/IntegrationTesting/IntegrationTesting_0921/ss1ss2ss9_inl-csu_%Y%m%d_%H-%M-%S.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+	},
+
+	results-ss4_ss8 = {
+		type = "file",
+		uri = "/rtsuperlab/IntegrationTesting/IntegrationTesting_0921/ss1ss4ss8_inl-csu_%Y%m%d_%H-%M-%S.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+	},
+
+	results-ss5 = {
+		type = "file",
+		uri = "/rtsuperlab/IntegrationTesting/IntegrationTesting_0921/ss1ss5_inl-nrel_%Y%m%d_%H-%M-%S.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+	},
+
+	results-ss7_ss6 = {
+		type = "file",
+		uri = "/rtsuperlab/IntegrationTesting/IntegrationTesting_0921/ss1ss7ss6_inl-usc_%Y%m%d_%H-%M-%S.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+	}
+};
+
+
+############     paths    ############
+
+paths = (
+
+	# ss1-ss2 (inl-rwth) co-simulation interface
+	# ss1-ss9 (inl-opal)  co-simulation interface
+	{
+		in  = [
+			"inl-rtds73"
+		],
+		out = [
+			"acs-villas",
+			"inl-opal",
+			"results-ss2_ss9",
+			"loopback1"
+		],
+	},
+	{
+		in  = [
+			"loopback1"
+		],
+		out = [
+			"inl-villas-web-rtds73"
+		]
+	},
+	{
+		in  = [
+			"acs-villas.data[0-19]",
+			"inl-opal.data[0-19]"
+		],
+		out = [
+			"inl-rtds73"
+		],
+	},
+
+	# ss1-ss7 (inl-usc) co-simulation interface
+	# ss1-ss6 (inl-snl) co-simulation interface
+	{
+		in  = [
+			"inl-rtds74"
+		],
+		out = [
+			"inl-to-usc-villas",
+			"snl-villas",
+			"results-ss7_ss6",
+			"loopback5"
+		],
+	},
+	{
+		in  = [
+			"loopback5"
+		],
+		out = [
+			"inl-villas-web-rtds74"
+		]
+	},
+	{
+		in  = [
+			"usc-to-inl-villas.data[0-19]",
+			"snl-villas.data[0-19]"
+		],
+		out = [
+			"inl-rtds74"
+		],
+	},
+
+
+	# ss1-ss5 (inl-nrel) co-simulation interface
+	{
+		in  = [
+			"inl-rtds83"
+		],
+		out = [
+			"nrel-rtds",
+			"results-ss5",
+			"loopback4"
+		]
+	},
+	{
+		in  = [
+			"loopback4"
+		],
+		out = [
+			"inl-villas-web-rtds83"
+		]
+	},
+	{
+		in  = [
+			"nrel-rtds"
+		],
+		out = [
+			"inl-rtds83",
+			"loopback1"
+		],
+	},
+	{
+		in  = [
+			"loopback1"
+		],
+		out = [
+			"inl-villas-web-ss5"
+		]
+	},
+
+	# ss1-ss4 (inl-csu) co-simulation interface
+	# ss1-ss8 (inl-wsu) co-simulation interface
+	{
+		in  = [
+			"inl-rtds84"
+		],
+		out = [
+			"csu-villas",
+			"wsu-villas",
+			"results-ss4_ss8",
+			"loopback3"
+		],
+	},
+	{
+		in  = [
+			"loopback3"
+		],
+		out = [
+			"inl-villas-web-rtds84"
+		]
+	},
+	{
+		in  = [
+			"csu-villas.data[0-19]",
+			"wsu-villas.data[0-19]"
+		],
+		out = [
+			"inl-rtds84"
+		],
+	}
+);
diff --git a/etc/villas/node/others/snl-inl.conf b/etc/villas/node/others/snl-inl.conf
new file mode 100644
index 0000000..215e5a3
--- /dev/null
+++ b/etc/villas/node/others/snl-inl.conf
@@ -0,0 +1,95 @@
+# configuration file for co-simulation setup acs-inl: inl-rtds - inl-villas -- acs-villas - acs-rtds
+#
+# host: snl-villas
+# local devices: snl-opalrt
+# remote nodes: inl-rtds73
+#
+
+
+############     nodes    ############
+
+stats = 5.0;
+
+nodes = {
+	# ss8-ss1 (snl-inl)
+	snl-opal = {
+		type = "socket";
+		layer = "udp";
+		local  = "10.1.2.4:12001";
+		remote = "10.1.2.3:12001"; #opal rt ip and port
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	},
+
+	#ss8 (in demo schematic)
+	inl-villas = {
+		type = "socket";
+		layer = "udp";
+		local  = "10.1.2.4:12006";
+		remote = "141.221.118.93:12006";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000,
+			}
+		)
+	},
+
+	inl-villas-web-ss6 = {
+		type = "socket";
+		layer = "udp";
+		local = "*:13006";
+		remote = "141.221.118.94:13006"
+	}
+
+	results-ss8 = {
+		type = "file",
+		uri = "snl-cosim-inl.csv", # start the file name with ssN (id of subsystem that DRTS in your labsimulates)
+	}
+
+	loopback1 = {
+		type = "loopback",
+		hooks = (
+			{
+				type = "decimate",
+				ratio = 100
+			}
+		)
+	}
+};
+
+
+############     paths    ############
+
+paths = (
+	{
+		in  = [
+			"snl-opal"
+		],
+		out = [
+			"inl-villas",
+			"results-ss8",
+			"loopback1"
+		],
+	},
+	{
+		in = [
+			"loopback1"
+		],
+		out = [
+			"inl-villas-web-ss6"
+		]
+	},
+	{
+		in  = [
+			"inl-villas.data[10-19]"
+		],
+		out = [
+			"snl-opal"
+		]
+	}
+);
diff --git a/etc/villas/node/others/usc-inl.conf b/etc/villas/node/others/usc-inl.conf
new file mode 100644
index 0000000..8dfe1a2
--- /dev/null
+++ b/etc/villas/node/others/usc-inl.conf
@@ -0,0 +1,96 @@
+# configuration file
+# host: usc-villas
+# remote nodes: inl-villas
+# Test: rtds - VILLASnode - VILLASnode - opal
+#
+############     nodes    ############
+
+stats = 5.0;
+
+nodes = {
+	loopback1 = {
+		type = "loopback",
+		hooks = (
+			{
+				type = "decimate",
+				ratio = 100
+			}
+		)
+	},
+
+	usc-to-inl-villas = {
+		type = "socket";
+		layer = "udp";
+		local  = "129.252.22.104:13077";
+		remote = "141.221.118.93:12077";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000
+			}
+		)
+	},
+
+	usc-to-inl-villas-web = {
+		type = "socket";
+		layer = "udp";
+		local  = "129.252.22.104:13078";
+		remote = "141.221.118.94:13077";
+	},
+
+	inl-to-usc-villas = {
+		type = "socket";
+		layer = "udp";
+		local  = "129.252.22.104:13007";
+		remote = "141.221.118.93:12007";
+		hooks = (
+			{
+				type = "stats",
+				warmup = 3000
+			}
+		)
+	},
+
+	opal-usc-villas = {
+		type = "socket";
+		layer = "udp";
+		local  = "129.252.22.104:12001"; # this server, usc-villas
+		remote = "129.252.22.46:12001"; # Opal-RT
+	},
+
+	results = {
+		type="file",
+		uri="ss7ss1_usc-inl_%Y%m%d_%H-%M-%S.csv",
+	}
+};
+
+############     paths    ############
+
+paths = (
+	{
+		in  = [
+			"inl-to-usc-villas.data[0-9]"
+		],
+		out = [
+			"opal-usc-villas"
+		]
+	},
+	{
+		in  = [
+			"opal-usc-villas"
+		],
+		out = [
+			"usc-to-inl-villas",
+			"results",
+			"loopback1"
+		]
+	},
+	{
+		in = [
+			"loopback1"
+		],
+		out = [
+			"usc-to-inl-villas-web"
+		],
+	}
+);
diff --git a/etc/node/websocket-demo-files.conf b/etc/villas/node/websocket-demo-files.conf
similarity index 100%
rename from etc/node/websocket-demo-files.conf
rename to etc/villas/node/websocket-demo-files.conf
diff --git a/etc/node/websocket-demo.conf b/etc/villas/node/websocket-demo.conf
similarity index 100%
rename from etc/node/websocket-demo.conf
rename to etc/villas/node/websocket-demo.conf
diff --git a/etc/node/websocket.conf b/etc/villas/node/websocket.conf
similarity index 100%
rename from etc/node/websocket.conf
rename to etc/villas/node/websocket.conf
diff --git a/kubernetes/Makefile b/kubernetes/Makefile
index 0e1628c..b462807 100644
--- a/kubernetes/Makefile
+++ b/kubernetes/Makefile
@@ -12,8 +12,8 @@ namespace:
 
 config-maps:
 	$(KUBECTL) create configmap nginx-config --from-file=../etc/nginx/ $(APPLY)
-	$(KUBECTL) create configmap node-config --from-file=../etc/node/ $(APPLY)
-	$(KUBECTL) create configmap controller-config --from-file=../etc/controller/ $(APPLY)
+	$(KUBECTL) create configmap node-config --from-file=../etc/villas/node/ $(APPLY)
+	$(KUBECTL) create configmap controller-config --from-file=../etc/villas/controller/ $(APPLY)
 
 secrets:
 
-- 
GitLab