1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/node/ synced 2025-03-09 00:00:00 +01:00
Commit graph

413 commits

Author SHA1 Message Date
Dennis Potter
0819207c55 Fixed bug which improved latency about 33%.
An ugly workaround was removed in 3c33696265 and 159cefb14d. Besides making the code a little cleaner, it was expected that this would improve latency. However, it did not.

Cause for this was a bug that disabled inline messages for all messages. This is fixed in this commit. Now, the anticipated latency improvement can be seen. Compared to 159cefb14d, the latency for samples with 16 values or less is up to 33% better.

Furthermore, the check for signaling is fixed and some typos are fixed.
2018-11-02 12:46:12 +01:00
40521cf5dd socket: enable raw socket only on linux and if libnl3-route was found (closes #210) 2018-10-31 10:38:43 +01:00
Dennis Potter
159cefb14d Added periodic signalling which is necessary in implementation without additional buffer 2018-10-21 12:35:21 +02:00
Dennis Potter
3c33696265 Removed signaling for inline messages. Fixes #206
This should decrease the time that is spent in the write-function a little bit and made an extra buffer obsolete.
2018-10-20 17:05:52 +02:00
e0a02c74f5 loopback: add option for queue sync mode 2018-10-17 16:12:16 +02:00
Dennis Potter
1328f190ad Removed obsolete BUSY/EVENT flag from Infiniband node 2018-10-14 01:54:54 +02:00
Dennis Potter
ed3a27fefd Fixed wrong meta data correction and added macros for sample size 2018-10-11 14:18:30 +02:00
badca85662 wip 2018-10-04 03:00:14 +02:00
Manuel Pitz
c837b4bebc uldaq: add sample configuratioen for ul201
uldaq: fix missing samples by not using the uldaq counter. this may create race iussues
2018-09-26 23:28:53 +02:00
Manuel Pitz
7a12497804 update start index 2018-09-25 21:46:42 +02:00
0ba65c3ae1 uldaq: make use of events to signal availability of new data 2018-09-25 20:27:01 +02:00
c9a9359c24 uldaq: removed obsolete variables 2018-09-25 12:57:07 +02:00
f383bc767f uldaq: rename some fields in struct uldaq 2018-09-25 09:55:38 +02:00
Manuel Pitz
a87a89d96c nodetype:uldaq started integration for example 2018-09-25 09:39:15 +02:00
Manuel Pitz
ef68037087 nodetype:uldaq started integration for example 2018-09-24 22:43:44 +02:00
d21e80e543 uldaq: added struct uldaq and started working on intializaiton 2018-09-24 22:28:51 +02:00
Manuel Pitz
4703aaebc5 nodetype:uldaq started integration for example 2018-09-24 21:30:57 +02:00
d35971c26c refactor: update copyright years 2018-08-20 18:40:03 +02:00
0e52475c81 signal_generator: adapt to new signal code and separate node-type configuration into in/out sections 2018-08-20 18:28:13 +02:00
df94f7fb91 socket: adapt to new signal code and separate node-type configuration into in/out sections 2018-08-20 18:26:14 +02:00
b9982d41ef zeromq: adapt to new signal code and separate node-type configuration into in/out sections 2018-08-20 18:25:42 +02:00
7738244136 nanomsg: adapt to new signal code and separate node-type configuration into in/out sections 2018-08-20 18:25:25 +02:00
bf08e75296 iec61850: adapt to new signal code and separate node-type configuration into in/out sections 2018-08-20 18:22:59 +02:00
b533cee9ad refactor: fix whitespaces 2018-08-13 00:00:09 +02:00
170c86dca4 refactor:
- WEBSOCKET_DEFAULT_SAMPLELEN -> WEBSOCKET_DEFAULT_SAMPLE_LENGTH
- WEBSOCKET_DEFAULT_QUEUELEN -> WEBSOCKET_DEFAULT_QUEUE_LENGTH
2018-08-12 23:59:15 +02:00
32de7761fe refactor:
- DEFAULT_SAMPLELEN -> DEFAULT_SAMPLE_LENGTH
- DEFAULT_QUEUELEN -> DEFAULT_QUEUE_LENGTH
2018-08-12 23:59:15 +02:00
9a7f2afd0d do not include libwebsockets.h in header files as it breaks compliation together with complex.h 2018-08-12 23:59:15 +02:00
Dennis Potter
0c1e92bced Added separate buffer for input and output section 2018-08-06 23:48:13 +02:00
Dennis Potter
69c8f0adaa Added flag to enable/disable warning about missed steps 2018-08-04 17:27:06 +02:00
Dennis Potter
117913287d Added configurable setvbuf to output of file node 2018-08-04 15:20:21 +02:00
Dennis Potter
027555c34d Added flag in config to enable/disable connection fallback. Closes #188 2018-08-02 10:41:37 +02:00
Dennis Potter
aefe40dc35 Removed IMM mode. Replaced hard coded integers by constants 2018-08-01 18:26:42 +02:00
Dennis Potter
c9871bfebb UDP improvements
This is related to 45ddebf5d1. I forgot to
add it to the commit.
2018-07-25 18:53:11 +02:00
Dennis Potter
2c3ddfd0c2 Merge branch 'ib-rearrange-qp' into develop
Closes #152. As described in #182, we will not rearrange the Queue Pairs
for connected mode. As soon as we test many-to-one connections for the
unrealiable connection, we will look again at this issue.
2018-07-21 12:14:25 +02:00
Dennis Potter
8704683bf2 Replaced send WC stack by queue 2018-07-21 12:07:43 +02:00
Dennis Potter
3acc3df7c4 ib_read() now works for UDP
Node is now able to send data in RDMA_PS_UDP mode. Right now it creates
a new rdma_cm_id for every connection request. We could/should do this
differently
2018-07-19 20:33:41 +02:00
Dennis Potter
e34cceedfa Added UD struct and added more comments 2018-07-19 18:31:47 +02:00
7936b0f626 Merge branch 'cmake-include' into develop 2018-07-16 20:20:05 +02:00
7c555ccb9c node: fix node_{read,write}() interface for comedi and iec61850_sv 2018-07-16 20:16:59 +02:00
60f55ec178 improve naming of struct node_type function pointers (closes #150) 2018-07-16 11:00:15 +02:00
Dennis Potter
d9080fa1db Cleaned up some obsolete code. Closes #176 2018-07-16 10:54:15 +02:00
Dennis Potter
6444a9e337 Split configuration in an in and out part 2018-07-15 13:51:18 +02:00
Dennis Potter
1d6ee5aec8 Node can determine if data should be send inline
The user can set the maximum size of the inline data and the node checks
if a sample can be send inline. This commit doesn't contain a info
message to the user about what the final max inline size will be. (The
HCA will probably change the value set by the user.)
2018-07-13 13:50:30 +02:00
Dennis Potter
b1b778f542 Added buffer to ib_write()
Now, ib_write() reads every cycle cnt values from the Completion Queue.
If it is not able to return them to the framework immediately, it
temporarily saves them on a stack.

ib_write() checks every cycle if the stack is non-empty and if it is
possible to return values from the stack to the framework.
2018-07-13 12:21:59 +02:00
Dennis Potter
72e627b327 Fixes #166, all node interfaces are modified
The functions now look like this

int node_read(struct node *n, struct sample *smps[], unsigned cnt, unsigned *release);
int node_write(struct node *n, struct sample *smps[], unsigned cnt, unsigned *release);

This commit enables nodes to control how many samples will
be released by the framework through *release
2018-07-11 18:14:29 +02:00
Dennis Potter
746fd2f694 Refactored ib_write in the same way as ib_read (described in #153). Merged separate completion queue polls to ib_write. Closes #167 2018-07-08 15:00:47 +02:00
Dennis Potter
6150a36411 Changed all node_write() functions 2018-07-07 17:48:07 +02:00
Dennis Potter
4663f55e4b Changed all node_read() functions to support a *cnt instead of cnt 2018-07-07 17:07:45 +02:00
Dennis Potter
06e7434d6c Solved some state problems. This commit also solves #154, which was caused by a non-terminated thread. (This thread will be removed in a later commit anyway 2018-07-07 15:34:07 +02:00
Dennis Potter
836adee4d6 Node is able to clean everything up and reconnect. Node can abort if it is in STARTED and in CONNECTED state 2018-07-07 14:36:23 +02:00