From 10bbd6a2c2303aac5541cfb89be1a5a867e3d55b Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 30 Sep 2016 20:01:34 -0400 Subject: [PATCH 1/7] remove unsupported Doxygen option to avoid warnings --- Doxyfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Doxyfile b/Doxyfile index 277c11c0d..b3faaeb55 100644 --- a/Doxyfile +++ b/Doxyfile @@ -1003,7 +1003,7 @@ VERBATIM_HEADERS = YES # compiled with the --with-libclang option. # The default value is: NO. -CLANG_ASSISTED_PARSING = NO +#CLANG_ASSISTED_PARSING = NO # If clang assisted parsing is enabled you can provide the compiler with command # line options that you would normally use when invoking the compiler. Note that @@ -1011,7 +1011,7 @@ CLANG_ASSISTED_PARSING = NO # specified with INPUT and INCLUDE_PATH. # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. -CLANG_OPTIONS = +#CLANG_OPTIONS = #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index From 7cb3b8b6dfc0fe17d8e223f77f52a6d2a11b01cd Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Sat, 1 Oct 2016 05:54:02 -0400 Subject: [PATCH 2/7] added some drafts for project logos --- doc/pictures/villas_fpga.png | Bin 0 -> 3453 bytes doc/pictures/villas_fpga.svg | 108 +++++++++++++++++++++++++++++++++++ doc/pictures/villas_node.png | Bin 0 -> 4369 bytes doc/pictures/villas_node.svg | 107 ++++++++++++++++++++++++++++++++++ 4 files changed, 215 insertions(+) create mode 100644 doc/pictures/villas_fpga.png create mode 100644 doc/pictures/villas_fpga.svg create mode 100644 doc/pictures/villas_node.png create mode 100644 doc/pictures/villas_node.svg diff --git a/doc/pictures/villas_fpga.png b/doc/pictures/villas_fpga.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5ca5f0d117793f379655dada9af281410ce59d GIT binary patch literal 3453 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 YApd)m5@faWe`gh7Zi0Z<8+qRQAL4(8DgXcg literal 0 HcmV?d00001 diff --git a/doc/pictures/villas_fpga.svg b/doc/pictures/villas_fpga.svg new file mode 100644 index 000000000..3e318b38b --- /dev/null +++ b/doc/pictures/villas_fpga.svg @@ -0,0 +1,108 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/doc/pictures/villas_node.png b/doc/pictures/villas_node.png new file mode 100644 index 0000000000000000000000000000000000000000..0b6314262d08fa3ca05c14472111725ede960527 GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/doc/pictures/villas_node.svg b/doc/pictures/villas_node.svg new file mode 100644 index 000000000..1acfe1d32 --- /dev/null +++ b/doc/pictures/villas_node.svg @@ -0,0 +1,107 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + From cab252a5cca5c40aa0c964a03c3ae0a5400462b2 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Sat, 1 Oct 2016 12:16:15 +0200 Subject: [PATCH 3/7] use markdown for build status and added coverage --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fd6d16289..1faecce2e 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ -# VILLASnode -build status +# VILLASnode [![build status](https://git.rwth-aachen.de/acs/VILLASnode/badges/develop/build.svg)](https://git.rwth-aachen.de/acs/VILLASnode/commits/develop) [![coverage report](https://git.rwth-aachen.de/acs/VILLASnode/badges/develop/coverage.svg)](https://git.rwth-aachen.de/acs/VILLASnode/commits/develop) + This is VILLASnode, a gateway for processing and forwardning simulation data between real-time simulators. + ## Documentation The documentation for this software is available at [doc/Mainpage](doc/Mainpage.md). From 7c2709f8d7d73726adb6c2becc45b9e11a40667f Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Sat, 1 Oct 2016 06:19:00 -0400 Subject: [PATCH 4/7] add Markdown files from project root to doxygen output --- doc/Contributing.md | 1 + doc/License.md | 1 + doc/Readme.md | 1 + 3 files changed, 3 insertions(+) create mode 120000 doc/Contributing.md create mode 120000 doc/License.md create mode 120000 doc/Readme.md diff --git a/doc/Contributing.md b/doc/Contributing.md new file mode 120000 index 000000000..44fcc6343 --- /dev/null +++ b/doc/Contributing.md @@ -0,0 +1 @@ +../CONTRIBUTING.md \ No newline at end of file diff --git a/doc/License.md b/doc/License.md new file mode 120000 index 000000000..0c9476f2b --- /dev/null +++ b/doc/License.md @@ -0,0 +1 @@ +../COPYING.md \ No newline at end of file diff --git a/doc/Readme.md b/doc/Readme.md new file mode 120000 index 000000000..32d46ee88 --- /dev/null +++ b/doc/Readme.md @@ -0,0 +1 @@ +../README.md \ No newline at end of file From e25e02a325736738981658bcdc722c0a54190d72 Mon Sep 17 00:00:00 2001 From: Umar Farooq Date: Mon, 10 Oct 2016 23:05:29 +0200 Subject: [PATCH 5/7] Add new test cases for gtnet and villas header testing for socket node type --- etc/gtnet_test1.conf | 62 ++++++++++++++++++++++++++++++++++++++++++++ etc/gtnet_test2.conf | 62 ++++++++++++++++++++++++++++++++++++++++++++ etc/gtnet_test3.conf | 62 ++++++++++++++++++++++++++++++++++++++++++++ etc/gtnet_test4.conf | 62 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 248 insertions(+) create mode 100644 etc/gtnet_test1.conf create mode 100644 etc/gtnet_test2.conf create mode 100644 etc/gtnet_test3.conf create mode 100644 etc/gtnet_test4.conf diff --git a/etc/gtnet_test1.conf b/etc/gtnet_test1.conf new file mode 100644 index 000000000..3e5d147b3 --- /dev/null +++ b/etc/gtnet_test1.conf @@ -0,0 +1,62 @@ +# 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 = "192.168.88.128:12002", # Local ip:port, use '*' for random port + remote = "192.168.88.129:12001", + 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 = "*:12004", # Local ip:port, use '*' for random port + remote = "192.168.88.129:12005", + 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 = "node1", # And we loop back to the origin + hook = ["print"] + } +); diff --git a/etc/gtnet_test2.conf b/etc/gtnet_test2.conf new file mode 100644 index 000000000..1c40c3dd4 --- /dev/null +++ b/etc/gtnet_test2.conf @@ -0,0 +1,62 @@ +# 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 = "192.168.88.128:12002", # Local ip:port, use '*' for random port + remote = "192.168.88.129:12001", + 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 = "192.168.88.128:12004", # Local ip:port, use '*' for random port + remote = "192.168.88.129:12001", + 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 = ["print"] + } +); diff --git a/etc/gtnet_test3.conf b/etc/gtnet_test3.conf new file mode 100644 index 000000000..9470160ec --- /dev/null +++ b/etc/gtnet_test3.conf @@ -0,0 +1,62 @@ +# 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 = "192.168.88.128:12002", # Local ip:port, use '*' for random port + remote = "192.168.88.129:12001", + header = "gtnet-skt", # '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 = "192.168.88.128:12004", # Local ip:port, use '*' for random port + remote = "192.168.88.129:12001", + header = "gtnet-skt", # '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 = ["print"] + } +); diff --git a/etc/gtnet_test4.conf b/etc/gtnet_test4.conf new file mode 100644 index 000000000..b80cbd41d --- /dev/null +++ b/etc/gtnet_test4.conf @@ -0,0 +1,62 @@ +# 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 = "192.168.88.128:12002", # Local ip:port, use '*' for random port + remote = "192.168.88.129:12001", + header = "gtnet-skt", # '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 = "192.168.88.128:12004", # Local ip:port, use '*' for random port + remote = "192.168.88.129:12001", + header = "gtnet-skt", # '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 = "node1", # And we loop back to the origin + hook = ["print"] + } +); From 59af01cc332e5c34303e778ee9d7ae4c9f109321 Mon Sep 17 00:00:00 2001 From: Umar Farooq Date: Mon, 10 Oct 2016 23:07:41 +0200 Subject: [PATCH 6/7] Fix bug where smp->capacity value is not initialized --- lib/path.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/path.c b/lib/path.c index c032e41fa..1e6d26bb9 100644 --- a/lib/path.c +++ b/lib/path.c @@ -111,7 +111,7 @@ static void * path_run(void *arg) debug(DBG_PATH | 5, "Current pool status for path %s: used=%zu avail=%zu", path_name(p), p->pool.stack.size, p->pool.stack.avail); /* Fill smps[] free sample blocks from the pool */ - ready += pool_get_many(&p->pool, (void **) smps, cnt - ready); + ready += sample_get_many(&p->pool, smps, cnt - ready); if (ready != cnt) warn("Pool underrun for path %s", path_name(p)); From deba07340773e0b7ef7d83843ea3cb6f1d8920da Mon Sep 17 00:00:00 2001 From: Umar Farooq Date: Mon, 10 Oct 2016 23:09:09 +0200 Subject: [PATCH 7/7] =?UTF-8?q?Small=20improvement=20to=20avoid=20lib/kern?= =?UTF-8?q?el/kernel.c:195:3:=20error:=20ignoring=20return=20value=20of=20?= =?UTF-8?q?=E2=80=98fscanf=E2=80=99,=20declared=20with=20attribute=20warn?= =?UTF-8?q?=5Funused=5Fresult=20[-Werror=3Dunused-result]=20error=20on=20U?= =?UTF-8?q?buntu...not=20a=20hard=20requirement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/kernel/kernel.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/kernel/kernel.c b/lib/kernel/kernel.c index 8474faf5a..6548dbf49 100644 --- a/lib/kernel/kernel.c +++ b/lib/kernel/kernel.c @@ -184,6 +184,7 @@ int kernel_irq_setaffinity(unsigned irq, uintmax_t new, uintmax_t *old) { char fn[64]; FILE *f; + int ret = 0; snprintf(fn, sizeof(fn), "/proc/irq/%u/smp_affinity", irq); @@ -192,10 +193,10 @@ int kernel_irq_setaffinity(unsigned irq, uintmax_t new, uintmax_t *old) return -1; /* IRQ does not exist */ if (old) - fscanf(f, "%jx", old); + ret = fscanf(f, "%jx", old); fprintf(f, "%jx", new); fclose(f); - return 0; + return ret; }