Commit Graph

414 Commits

Author SHA1 Message Date
Waheed Ejaz 2f57fd7590 feat(pubsub): add support for transportSettings of dataSetReader 2020-04-09 08:08:12 +02:00
wenshan1 7bf6a6c590 fix(plugin): Don't store pointer to SecurityPolicy in *_PolicyContext
The pointer to the SecurityPolicy is not stable.
See #3539.
2020-04-07 20:07:48 +02:00
Selva Suba Jenifer Joseph 5d051fdbf9 feat(PubSub) XDP functionality with ETH over UADP
- New transport settings added for XDP functionality
 - Moved both XDP config and xdpsocket to plugins
 - Default values for defines in plugin

Change-Id: Ibd7760c9abab45c6f37ae324fec6dabc853cf797
2020-04-07 17:04:18 +02:00
Julius Pfrommer be65f1202c refactor(plugin): Shorten overlong lines in plugins/ua_pubsub_udp.c 2020-03-31 22:33:03 +02:00
Julius Pfrommer 1b404328a0 fix(pubsub): Allow publishing on a unicast address
Only create a warning.  Fixes #3530.
2020-03-31 22:33:03 +02:00
MartinaFelberFEM 6608c28ebf fix(plugin): udp - join multicast group to configured interface (#3505)
If the PubSub connection configuration defines a specific network
interface (optional parameter), we want to set this interface not only
for outgoing, but for incoming traffic too.
2020-03-26 13:07:16 +01:00
Bin Lan 682a841be5 add the security policy Basic128Rsa15 support with OpenSSL. 2020-03-23 19:54:10 +01:00
Bin Lan 9114e66ef0 add the security policy basic256 support. 2020-03-23 19:54:10 +01:00
Bin Lan 19b3dc0945 add build/test for security policy source code using openssl in Linux. 2020-03-18 10:36:45 +01:00
Suriya Narayanan Parthasarathi Vimala 6c0c79c2bd fix(PubSub): Typo error - transportSettings and mreq in setsockopt
Change-Id: I0a15011345269f897dfd5072e5d787abe256e0c6
2020-03-16 21:17:27 +01:00
Julius Pfrommer 1b259b75ee refactor(core): Add UA_NUMERICRANGE to parse ranges 2020-03-12 11:29:21 +01:00
Bin Lan f71912485e add security policy Basic256Sha256 and PKI support with OpenSSL provider. 2020-03-12 07:43:27 +01:00
Suriya Narayanan Parthasarathi Vimala babb254171 refactor(PubSub): Added ETF socket configuration in PubSub connection
- ETF socket structure added in connection config
 - Used the same on socket configuration while opening socket

Change-Id: I2d21cdd2bc1c9769299aa63b49c1da892b59080d
2020-03-06 14:06:21 +01:00
Suriya Narayanan Parthasarathi Vimala 06b1ddb8f5 refactor(PubSub): Design modification considering ETF transport settings
- New transport file created ua_pubsub_ethernet.c
 - Modification are removed in ethernet and udp .c files
 - New transport settings added for ETF functionality

Change-Id: Id11b1a06f67a8f96cd8713415f6b8472fae0b532
2020-03-06 14:06:21 +01:00
Suriya Narayanan Parthasarathi Vimala 7955eb503a refactor(PubSub): Thread based custom manager implementation
- Thread creation has been integrated with addRepeatedCallback
 - Introduction of RT Fixed offsets
 - Change from Datetime nodes to UInt64 nodes(for RT)

Change-Id: I361a1027dfe633e9b36d25bb74dad6d3a5774e01
2020-03-06 14:06:21 +01:00
Keerthivasan Alagarsamy Senthilkumaran b2be9df28d feat(PubSub): Multithread PubSub TSN application
- Application design change to run Publisher
   and Subscriber in same core(core 2)
 - User application runs in core 3
 - Three thread application design
   (Publisher, Subscriber, User application)
 - TODO:Implement spin locks for threads

Change-Id: I7c4a9bc685c9395d058b4cce71cb1ea9ffef61a8
2020-03-06 14:06:21 +01:00
Vidhya Duraisamy 77594938a3 feat(PubSub):Time triggered multithreaded application with ETF
- Run time triggered PubSub application using ETF at a publishing interval
   of 250 microseconds with qbv offset of 25us
 - Integrate time triggered functionality and publish
   OPCUA PubSub packets at calculated transmission time
 - Handle PubSub application for UDP and Ethernet over UADP
 - Implement Publisher and Subscriber as threads and handle
   in same core
 - Integrate target variable implementation in Subscriber thread
 - TODO: Write unit test cases to ensure no memory leaks are possible

Change-Id: I50982a32e126de82f4adb5e07b1ec626c0527f26
2020-03-06 14:06:21 +01:00
Julius Pfrommer 4d2eebca1c refactor(client): Clean up async connect 2020-02-29 13:09:46 +01:00
Julius Pfrommer 92def62e80 fix(client): Make a method non-inline that is not defined in a header 2020-02-29 09:54:17 +01:00
Julius Pfrommer 9d40e656c5 fix(plugin): Don't abort server/client config when a SecurityPolicy cannot init
This allows a SecurityPolicy to return "BadNotSupported" and the
endpoint will not be created.
2020-02-28 20:03:59 +01:00
Jonas Green 632d490d6d Added copyright notices for HMS Industrial Networks contributions (#3458) 2020-02-25 14:40:07 +01:00
Jonas Green 63d65e0ebf feat(server): Extended the access control plugin with check for browsing nodes
The PermissionType (Part 3) defines 17 permissions. Currently the
access control plugin can control all but 2 of them. Those are browse
and ReceiveEvents. This change adds check for browse permission of
nodes.
2020-02-21 18:27:21 +01:00
Jonas Green 83b5905418 feat(plugin): Added possibility to configure max TCP connections limit
In for example LWIP the number of TCP connection resources must be
configured at compile time. On a device with several protocols that
relies on TCP they must share this common pool of TCP resources. To
avoid one protocol allocating all TCP resources they must limit
themselfs in the number of TCP connections they allocate.
2020-02-21 12:27:26 +01:00
Julius Pfrommer 88b588748e refactor(server): Avoid duplicate SecureChannel lookups 2020-02-02 20:05:04 +01:00
Julius Pfrommer e93f8ebb69 feat(core): Differentiate local and remote MaxMessageSize / MaxChunkCount 2020-01-25 19:33:26 +01:00
Julius Pfrommer 6a3cc6c8d0 refactor(core): Remove certificate verification from SecurityPolicy in favor of global plugin 2020-01-25 19:33:26 +01:00
Julius Pfrommer 412fd83b5d feat(plugin): Accept all certificates if the pki plugin is unconfigured
* But *do warn*
2020-01-25 19:33:26 +01:00
Julius Pfrommer 7f138de1c4 fix(plugin): Remove trailing newline from mbedtls error message 2020-01-25 19:33:26 +01:00
Julius Pfrommer 6a1c300e82 feat(plugin): More logging in ua_pki_default.c 2020-01-18 21:15:08 +01:00
Julius Pfrommer a25bb75393 refactor(core): Move ConnectionConfig into SecureChannel 2020-01-18 21:15:08 +01:00
Stefan Profanter b0506d3f7c fix(server): Do not overwrite logger in default server config
The user may want to set his own logger even before any output is generated.
2020-01-17 09:58:32 +01:00
Julius Pfrommer 91f6a20c63 Merge branch '1.0' 2019-12-16 21:09:21 +01:00
Mark Giraud 81003a3419 Fix: #3263 Padding is now calculated with the local key size during decryption. 2019-12-11 22:04:24 +01:00
Bin Lan 142c1ac881 Enable pub/sub support over Ethernet in VxWorks7. 2019-12-07 10:43:55 +01:00
Wolfgang Braun de6f14f952 Do not overwrite the UA_Client logger when using UA_ClientConfig_setDefault 2019-11-21 11:57:40 +01:00
Stefan Profanter 60ea3d6f5d feat(core): Allow setting custom ip address list if platform does not support getifaddr
This is the case e.g. on an ESP32 chip
2019-11-20 09:23:38 +01:00
Stefan Profanter a9dbfff1c0 fix(mbedtls): Initialize variables to mute maybe-uninitialized warning 2019-11-18 12:55:41 +01:00
Stefan Profanter a6db9c0a91 feat(mbedtls): Use mbedtls_hardware_poll fallback if MBEDTLS_NO_PLATFORM_ENTROPY defined 2019-11-18 12:55:41 +01:00
Julius Pfrommer 67d3c2c955 fix(plugin): Fix an edge case memleak during policy startup 2019-11-18 10:25:41 +01:00
Julius Pfrommer 7a6d70b93d fix(plugin): Warn only if the *final* certificate verification allows any 2019-11-13 23:19:28 +01:00
Julius Pfrommer 8d04afb076 fix(plugin): Always instantiate a nodestore if not set in the default config
Fixes #3265
2019-11-13 23:19:28 +01:00
Julius Pfrommer 3dce9f5ed5 refactor(server): Simplify the async operations intenally
The server config is simplified a bit. A single timeout is used for the
request. No changes to the public API otherwise.

Full integration tests for the async operations.
2019-11-10 16:50:18 +01:00
Andranik Simonyan f8747cb0ae feat(server): support for readModified, readProcessed, readAtTime requests in UA_HistoryDatabase added (without default implementation) 2019-10-30 20:32:38 +01:00
Julius Pfrommer 679317c7c6 fix(server): Fix a warning in plugins/ua_pki_default.c 2019-10-30 14:07:57 +01:00
Julius Pfrommer 47df955bb9 refactor(plugin): Replace CAS in nodestore with read/write barriers
The current use-case for concurrent access to the nodestore only covers
interrupts where the Publisher wants to read. For full read/write
concurrency the RCU nodestore has to be recovered.

This commit simplifies the nodestore by removing the CAS operations.
Read/write barriers are used to ensure that an interrupt cannot find
 dangling pointers to entries that are currently freed.
2019-10-24 07:30:59 +02:00
Julius Pfrommer d2253641b4 refactor(plugin): Nodestore: Reduce the cache pressure from the hash
Put the hashes in the slot-array. This saves an expensive lookup from
main memory for the nodes that are seldomly visited.
2019-10-24 07:30:59 +02:00
Julius Pfrommer a24420ade1 fix(plugin): Enable amalgamation with the plugin Nodestore
The server only allows one thread to access the nodestore internally.
2019-10-21 17:09:53 +02:00
Julius Pfrommer 16c29b89cf refactor(plugin): Simplify ua_nodestore_hashmap.c 2019-10-21 17:09:53 +02:00
Julius Pfrommer c96e05c80e refactor(plugin): HashMap NodeStore: Return earliest candidate in findFreeSlot 2019-10-21 17:09:53 +02:00
Julius Pfrommer 8d3ec1b6bf refactor(plugin): HashMap Nodestore: Improve readability of findOccupiedSlot 2019-10-21 17:09:53 +02:00