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