Commit Graph

1319 Commits

Author SHA1 Message Date
Florian Pose 21b0b13703 Merge branch 'kbuild_out_of_tree' into 'devel-1.6'
support out-of-tree build

See merge request etherlab.org/ethercat!79
2024-01-31 14:52:23 +00:00
Florian Pose 6c6b68c00b Merge branch 'stable-1.5' into soe-handler 2024-01-18 10:40:06 +01:00
Florian Pose 5c6e19981b Incremented ioctl version magic to 33. 2024-01-18 10:37:27 +01:00
Bjarne von Horn dc13d7c511 Add lockdep assertion for EoE xmit callback 2024-01-15 11:43:59 +01:00
Bjarne von Horn eb44f82a91 Reuse netif_tx_lock for EoE TX synchronization
ndo_start_xmit callback is protected by __netif_tx_lock by the network stack,
so we no not need our own locks.
2024-01-15 11:20:25 +01:00
Bjarne von Horn a54fac3090 Make locking of ext_datagram_queue more selective 2024-01-15 11:20:25 +01:00
Bjarne von Horn 13e1e469e1 Use RT Mutex instead of semaphore for RT ioctl locking. 2024-01-15 11:20:25 +01:00
Bjarne von Horn 7a7f9a041e Fix -Wcomment. 2024-01-15 11:20:25 +01:00
Bjarne von Horn c3826c7758 Remove EtherCAT copyright notice. 2024-01-15 11:20:25 +01:00
Bjarne von Horn 543dc87d88 Remove 2.6 conditionals in master 2024-01-15 11:20:25 +01:00
Bjarne von Horn 267ae77ea2 add 0 terminator in ioctl 2023-11-23 18:21:02 +01:00
Florian Pose 97ee76462b Introduced feature flag WaitBeforeSAFEOPms. 2023-11-23 14:38:29 +01:00
Florian Pose f46b4ba654 Fixed wrong state assignment for IDN config. 2023-11-23 14:27:01 +01:00
Bjarne von Horn 3eda5173c6 Use fixed-size setip request 2023-09-20 12:46:52 +02:00
Bjarne von Horn 01c72a8865 EoE for Set IP in master 2023-09-20 12:30:24 +02:00
Florian Pose 7b2084e270 Fixed endianess of EoE parameters. 2023-09-15 13:41:01 +02:00
Florian Pose 4d47f0b328 Implemented EoE Set IP parameter request via command-line tool. 2023-09-15 13:40:57 +02:00
Florian Pose 0e25f6d80f Removed obsolete mailbox type name and clarified documentation. 2023-09-13 10:02:31 +02:00
Florian Pose 5a255fce3d Removed obsolete FoE type name. 2023-09-13 10:02:31 +02:00
Florian Pose 41bc600cef Removed obsolete SoE type name. 2023-09-13 10:02:31 +02:00
Florian Pose d1df6520ba Cleaned up EoE frame type definitions. 2023-09-13 10:02:31 +02:00
Florian Pose 60ebe661a6 EoE frame types. 2023-09-13 10:02:31 +02:00
Bjarne von Horn 758b4adc99 reserve extra headroom in tx buffer for genet 2023-09-11 21:31:57 +02:00
Bjarne von Horn d967426204 add missing EXTRA_DIST 2023-09-11 11:43:39 +02:00
Bjarne von Horn 73e6ea9ce6 support out-of-tree build
by replacing `src` variable in Kbuild files.
2023-09-11 11:43:39 +02:00
Bjarne von Horn d08e41f913 Add page ref to device drivers page.
It's now always in doxygen-output/html/devicedrivers.html
2023-09-06 10:19:49 +02:00
Florian Pose d35c5a41cc Always define EoE handler count. 2023-07-19 15:56:09 +02:00
Nicola Fontana 5d8c8990de Fix class_create on kernel 6.4
Commit 1aaba11da9aa7d7d6b52a74d45b31cac118295a1 in kernel code removed
`module *` argument from `class_create`.
2023-07-05 12:13:32 +02:00
Andreas Stewering-Bone 04f202a39c Merge branch 'fix_vm_set_flag' into 'stable-1.5'
Fix setting flag in vm_area_struct for Kernel 6.3

See merge request etherlab.org/ethercat!67
2023-06-01 05:53:32 +00:00
Bjarne von Horn 27db882dab Fix setting flag in vm_area_struct for Kernel 6.3
The error was:
```
[  150s]   gcc -Wp,-MMD,/home/abuild/rpmbuild/BUILD/build-default/devices/ccat/.netdev.o.d -nostdinc -I/usr/src/linux-6.3.1-1/arch/x86/include -I./arch/x86/include/generated -I/usr/src/linux-6.3.1-1/include -I./include -I/usr/src/linux-6.3.1-1/arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I/usr/src/linux-6.3.1-1/include/uapi -I./include/generated/uapi -include /usr/src/linux-6.3.1-1/include/linux/compiler-version.h -include /usr/src/linux-6.3.1-1/include/linux/kconfig.h -include /usr/src/linux-6.3.1-1/include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=/usr/src/linux-6.3.1-1/= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -funsigned-char -std=gnu11 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mindirect-branch-cs-prefix -mfunction-return=thunk-extern -fno-jump-tables -mharden-sls=all -fpatchable-function-entry=16,16 -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 -fno-allow-store-data-races -Wframe-larger-than=2048 -fstack-protector-strong -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-dangling-pointer -fno-stack-clash-protection -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -falign-functions=16 -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wcast-function-type -Wno-stringop-truncation -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -Wno-array-bounds -Wno-alloc-size-larger-than -Wimplicit-fallthrough=5 -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -g -gdwarf-5  -DMODULE  -DKBUILD_BASENAME='"netdev"' -DKBUILD_MODNAME='"ec_ccat"' -D__KBUILD_MODNAME=kmod_ec_ccat -c -o /home/abuild/rpmbuild/BUILD/build-default/devices/ccat/netdev.o /home/abuild/rpmbuild/BUILD/build-default/devices/ccat/netdev.c   ; ./tools/objtool/objtool --hacks=jump_label --hacks=noinstr --hacks=skylake --orc --retpoline --rethunk --sls --static-call --uaccess --prefix=16   --module /home/abuild/rpmbuild/BUILD/build-default/devices/ccat/netdev.o
[  151s] /home/abuild/rpmbuild/BUILD/build-default/master/cdev.c: In function 'eccdev_mmap':
[  151s] /home/abuild/rpmbuild/BUILD/build-default/master/cdev.c:246:19: error: assignment of read-only member 'vm_flags'
[  151s]   246 |     vma->vm_flags |= VM_DONTDUMP; /* Pages will not be swapped out */
[  151s]       |                   ^~
[  151s] make[3]: *** [/usr/src/linux-6.3.1-1/scripts/Makefile.build:253: /home/abuild/rpmbuild/BUILD/build-default/master/cdev.o] Error 1
```
2023-05-09 14:28:11 +02:00
Bjarne von Horn b97af7523a igb for 5.15 2023-05-02 12:17:37 +00:00
Florian Pose 47cf84f406 Merge branch 'allow-empty-sdos' into 'stable-1.5'
Allow zero-sized SDO responses

See merge request etherlab.org/ethercat!61
2023-05-02 08:43:17 +00:00
Florian Pose 1726abf0c3 Allow zero-sized SDO responses 2023-05-02 08:43:16 +00:00
Florian Pose c022ddbcf2 Merge branch 'stable-1.5' into 'stable-1.5'
fix version compatibility of alloc_netdev when debug if is enabled

See merge request etherlab.org/ethercat!62
2023-03-14 15:59:31 +00:00
Florian Pose bdab9570f2 Implemented SoE requests in user-space library. 2023-03-14 16:48:48 +01:00
Florian Pose 56c4556173 New SoE request API; implemented API in kernel. 2023-03-14 16:12:45 +01:00
Florian Pose eac4e340eb Init missing fields. 2023-03-14 16:07:29 +01:00
Florian Pose c1fb080b55 Removed Id keywords. 2023-03-14 16:05:15 +01:00
Florian Pose 57adee4c7b Changed email and postal address. 2023-01-09 09:59:08 +01:00
raim.delgado 7bdaca925c fix version compatibility of alloc_netdev when debug if is enabled 2022-11-29 09:59:02 +09:00
Florian Pose 9aa5935d08 Merge branch 'fix_eoe_usermode_lock' into 'stable-1.5'
ioctl.c: FIX: must take io_sem around ecrt_master_send/ecrt_master_receive

See merge request etherlab.org/ethercat!36
2022-09-05 09:11:37 +00:00
Florian Pose 26e5b9f553 Minor: Fixed indent. 2022-05-17 14:10:51 +02:00
Bjarne von Horn d301cbb992 Fix setting mac_address
eoe->dev->dev_addr is read_only in 5.17.0
using eth_hw_addr_set instead
2022-05-17 12:17:28 +02:00
Florian Pose 49135bfaff Centrally defined mailbox types. 2022-03-04 10:00:47 +01:00
till straumann f4e3a92352 master/ioctl.c: FIX -- more points where io_sem must be locked
Experienced corruption of master->datagram_queue because ecrt_domain_queue()
(when called from ioctl) does not hold the io_sem!
2021-11-04 13:50:55 +01:00
till straumann 5437ec4ef1 ioctl.c: FIX: must take io_sem around ecrt_master_send/ecrt_master_receive 2021-10-14 10:20:52 +02:00
Matthias Schoepfer e6d842cc8f master: added 'run_on_cpu' module parameter to bind kthreads to a cpu
When you use isolcpus to isolate a cpu for the realtime task, as well
as assiging all relevant interrupts to this cpu, it makes sense to
also bind the EtherCAT-OP / EtherCAT-IDLE task to this cpu to reduce
the cache misses and avoid data migration between cores. Therefore
a parameter 'run_on_cpu' is added, that takes the cpu number (same as
in isolcpus, not a smp_affinity mask). If unset, will bind to any cpu
and will be migratable.

The reason to put this into the kernel module is, that the thread is
created during runtime, i.e. when the userspace program is starting
the ethercat master. It would be rather hacky, to find the pid of the
EtherCAT-xx thread and migrate it at this point.

Signed-off-by: Matthias Schoepfer <m.schoepfer@rethinkrobotics.com>
2021-09-27 14:56:01 +02:00
Florian Pose eba73fc292 Strictly using KERN_CONT for continued printk() calls to avoid newlines. 2021-09-01 11:00:49 +02:00
Florian Pose 09d1096623 Avoided warning about unreasonable use of strncpy(). 2021-08-25 12:00:01 +02:00
Florian Pose 4e11a50670 Define set_normal_priority() inside #ifdef EC_EOE. Fixes #12. 2021-08-25 09:47:26 +02:00
Florian Pose a750e08884 Merge branch 'feature-flags' into 'stable-1.5'
Feature Flags / AssignToPdi

See merge request etherlab.org/ethercat!30
2021-08-24 10:15:10 +00:00
Florian Pose 9ec0eb6295 Merge remote-tracking branch 'gitlab/stable-1.5' into stable-1.5 2021-08-10 14:49:56 +02:00
Florian Pose e3d9056cbc Added export for ecrt_slave_config_reg_pdo_entry_pos(). Fixes #11. 2021-08-10 14:48:07 +02:00
Florian Pose 441b7e470e First feature flag: AssignToPdi. 2021-07-23 16:16:18 +02:00
Florian Pose 443a7ad3e3 Find flag method with const char * parameter; added method to header. 2021-07-23 16:15:05 +02:00
Florian Pose a178c9e452 Added feature flags to API. 2021-07-23 15:53:11 +02:00
Florian Pose cd0d17d6a5 Also changed license of gloabl headers to LGPL.
Moved definition of EC_SDO_INJECTION_TIMEOUT to master.c.
2021-07-23 13:33:54 +02:00
Florian Pose edd473c36b Corrected license text of master/ioctl.h, because it is included in the userspace library. 2021-07-22 16:38:53 +02:00
Nicola Fontana 82399a9239 Revive 'make distcheck' 2021-06-22 14:43:07 +00:00
Florian Pose 94f2fa860f Retry responding slaves datagram; more robust to timeouts. 2021-06-01 16:53:06 +02:00
Nicola Fontana 60dd78485c Do not include AC_CONFIG_FILES in BUILT_SOURCES
BUILT_SOURCES is used to trigger early generation of files in the `make`
process to workaround dependency problems:

    https://www.gnu.org/software/automake/manual/html_node/Sources.html

AC_CONFIG_FILES are generated by `configure`, so they are already
present in the file system even before `make` is called. Furthermore,
AC_CONFIG_FILES already properly handle dist and clean targets, so no
need to add them to EXTRA_DIST or DISTCLEANFILES:

    https://www.gnu.org/software/automake/manual/html_node/Requirements.html
2021-05-22 08:25:26 +02:00
Florian Pose b87076135e Use Git for version detection and tools. 2021-03-17 14:51:35 +01:00
Nicola Fontana 2600c89390 Fix sched_setscheduler undefined on kernel 5.9
sched_setscheduler is no more exported:
    https://lkml.org/lkml/2020/4/22/1071
2021-03-05 15:16:15 +01:00
Florian Pose 7fd991bec7 Improved debugging and behavior on sick SII contents. 2020-09-03 12:53:53 +02:00
Florian Pose 21d0fb5176 Fixed missing include for struct sched_param. 2020-04-03 12:09:39 +02:00
Florian Pose af90fa6a94 New page fault return type vm_fault_t since 4.17. 2020-04-03 12:00:24 +02:00
Florian Pose 2570ab3345 Fixed infinite waiting for SoE write response. 2020-01-24 14:36:43 +01:00
Florian Pose 0a14b16aef Using vmalloc() for FoE memory allocation. 2020-01-24 11:09:48 +01:00
Florian Pose f03f15a6fc Added ecrt_master_sync_reference_clock_to() method. 2018-11-26 17:41:27 +01:00
Florian Pose 083bd419b8 Renamed app_start_time to dc_ref_time; output via command-line tool. 2018-11-26 17:17:18 +01:00
Florian Pose 0257660396 Fixed working counter calculation when process data of the same slave are
split into separate datagrams.
2018-11-12 15:02:49 +01:00
Florian Pose 538c3d7c04 Improved buffer overflow messages. 2017-12-13 15:39:13 +01:00
Florian Pose a694e3055f Support scheduler parameters in kernels >= 4.11. 2017-12-06 10:09:50 +01:00
Florian Pose 39919cd96a Fixed statistics filter initialisation. 2017-10-12 13:22:06 +02:00
Florian Pose 06ab4c34a8 Doc. 2017-10-12 13:09:52 +02:00
Philipp Weyer e709444450 Fixed vm_fault. 2017-09-04 17:24:46 +02:00
Florian Pose cf8227a71b Adapted vm_operations_struct for kernels >= 4.11 2017-09-04 17:12:59 +02:00
Florian Pose 545d4e548c Use SYNC0 + SYNC1 cycle times for cyclic start time generation. 2016-09-16 12:35:09 +02:00
Florian Pose c7f2a93cc5 merge 2016-09-16 11:56:53 +02:00
Florian Pose 8f599d1eb8 Always clear PDO mapping in ecrt_slave_config_pdos(). 2016-09-16 11:56:10 +02:00
Florian Pose a5cfa32f4b Fixed fragmented SoE write request. 2016-05-13 17:43:00 +02:00
Florian Pose 8812d5bf73 Always clear PDO assignment of configured sync managers. 2016-01-22 10:11:58 +01:00
Florian Pose 00156fb424 New alloc_netdev() API since kernel 3.17. 2015-05-07 15:53:42 +02:00
Florian Pose b6930dfa9b Fixed possible NULL pointer dereference; thanks to Matthieu Bec. 2014-05-05 13:49:45 +02:00
Florian Pose b0e45dbd6c Output datagram stats only if EC_RT_SYSLOG. 2013-12-04 19:53:59 +01:00
Florian Pose e385a9bb62 Added configure switch --disable-rt-syslog. 2013-10-21 19:27:50 +02:00
Florian Pose 605739d78a Introduced FORCE_OUTPUT_CORRUPTED. 2013-05-21 13:18:24 +02:00
Florian Pose b0eace9ef1 Implemented emergency register requests to analyze a broken bus. 2013-05-13 20:21:19 +02:00
Florian Pose a0e44766ec Fixed FoE timeout calculation bug. 2013-02-14 11:17:33 +01:00
Florian Pose b8d541fd33 Improved FoE debug messages. 2013-02-14 11:15:25 +01:00
Florian Pose a4ecaf8b88 Some more doxygen documentation. 2013-02-12 17:15:09 +01:00
Florian Pose f6f5460485 Updated Doxygen documentation. 2013-02-12 15:46:43 +01:00
Florian Pose aa6740a96e Removed unused prototype. 2013-02-12 15:30:34 +01:00
Florian Pose 46c8a4c830 Replaced VM_RESERVED for kernel 3.7. 2013-02-12 10:32:37 +01:00
Florian Pose 796dbdd705 Debug message. 2013-02-06 17:52:07 +01:00
Florian Pose 9537c567f8 Introduced --enable-sii-assign. 2013-02-06 17:25:08 +01:00
Florian Pose ebf9c296f3 Added ecrt_slave_config_reg_so_entry_pos() to register non-unique entries. 2013-02-05 16:45:34 +01:00
Florian Pose 23c725a79c Exported ecrt_domain_size() for userspace. 2013-02-05 15:24:45 +01:00
Florian Pose 0af9fa3036 FoE datagram / fsm->datagram bugfix, thanks to R. Roesch. 2013-02-05 14:58:00 +01:00
Florian Pose 994cb9a15d Fixed FoE data opcode, thanks to R. Roesch. 2013-02-05 14:10:46 +01:00
Florian Pose 032acb3d85 Avoided io_sem locking from userspace/rtdm library. 2013-01-10 17:36:41 +01:00
Florian Pose 236f4e4c96 Made datagram const. 2012-12-07 19:51:55 +01:00
Florian Pose 8a6eadb16b Fixed some warnings on 64 bit systems. 2012-12-06 18:43:56 +01:00
Florian Pose 465cfd37e3 Removed unused variable. 2012-12-06 18:13:02 +01:00
Florian Pose 623c91c545 Fixed io_sem usage in queue_external_datagrams(). 2012-12-06 18:11:11 +01:00
Florian Pose a57e0f98cf Removed unnecessary semaphore uses for emergency requests. 2012-12-06 17:54:23 +01:00
Florian Pose 55679c0526 Added vmalloc() include fix for ARM architecture, thanks to Andrea Scian. 2012-12-06 15:53:21 +01:00
Florian Pose c0adb9cbfd Do not use slaves's SoE state machine for configuration. 2012-12-06 14:06:10 +01:00
Florian Pose a043fea98e Added function attribute definition. 2012-12-06 14:04:40 +01:00
Florian Pose c1fdfbe289 Fixed some ioctl() permissions. 2012-12-06 11:24:04 +01:00
Florian Pose 43202f7e32 Send sync datagrams only if reference clock is found. 2012-12-05 15:54:49 +01:00
Florian Pose 4750f20558 Minor DC debugging. 2012-12-05 14:55:32 +01:00
Florian Pose 5a40362ee4 Fixed some ioctl() return values. 2012-12-05 13:30:08 +01:00
Florian Pose 86b332cafc Fixed ecrt_domain_process() broken in 71d38ff288b3. 2012-12-05 11:32:45 +01:00
Florian Pose 65df8b3a17 Minor change. 2012-12-05 10:22:43 +01:00
Florian Pose 5f73e9c046 Using common waitqueue for requests. 2012-12-04 16:05:23 +01:00
Florian Pose 72b60d1c07 Removed unnecessary ec_master_soe_request_t type. 2012-12-04 14:49:23 +01:00
Florian Pose 1b945a670c Removed unnecessary ec_master_foe_request_t; fixed FoE access. 2012-12-04 14:26:30 +01:00
Florian Pose e466f69c37 Improved preprocessor macro usage reg. redundancy. 2012-12-04 14:24:01 +01:00
Florian Pose b5373b36d4 Removed unnecessary loop when dequeuing register requests. 2012-12-04 14:09:49 +01:00
Florian Pose de0ce09db9 Removed unnecessary ec_master_sdo_request_t. 2012-12-04 13:28:38 +01:00
Florian Pose 6863b34ff1 Minor: Renamed slave_sdo_requests. 2012-12-04 12:59:15 +01:00
Florian Pose 0456ad0de8 Invalidate processing register requests when clearing configuration. 2012-12-04 12:23:43 +01:00
Florian Pose 1322a3b6a8 Removed unused method. 2012-12-04 12:22:38 +01:00
Florian Pose cf327f63c8 Mark processing SDO request as invalid if config is cleared. 2012-12-04 12:09:42 +01:00
Florian Pose e59b790583 Reset master state machine when going to orphaned phase. 2012-12-04 11:57:55 +01:00
Florian Pose 879a17fa56 Minor changes. 2012-12-04 11:54:13 +01:00
Florian Pose d28370edd5 merge 2012-11-30 20:25:18 +01:00
Florian Pose 3cb0b12899 Added configure option for redundancy (--with-devices). 2012-11-30 20:15:31 +01:00
Florian Pose 7b0b85b506 Improved device member initialisation. 2012-11-30 12:11:28 +01:00
Florian Pose b5ede6f0f2 Removed unused field. 2012-11-30 12:09:12 +01:00
Florian Pose 7b435e5e84 Changed the datatypes of the shift times in ecrt_slave_config_dc()
to int32_t to correctly display negative shift times.
2012-11-29 10:15:40 +01:00
Florian Pose 075ac4aee8 Adjusted DC clock discipline parameters. 2012-11-20 14:53:36 +01:00
Florian Pose becf05dbd6 Added interface to select the reference clock and to sync to it.
Added rtai_rtdm_dc example, thanks to Graeme Foot.
2012-11-20 14:35:53 +01:00
Florian Pose 4773e88bf6 Added interface to read/write register contents; re-worked register requests. 2012-11-14 22:12:57 +01:00
Florian Pose 139168474d Immediately restart slave FSM on several failed requests. 2012-11-14 22:08:32 +01:00
Florian Pose 88b99dcd07 Removed state-dependent skip messages. 2012-11-14 22:00:11 +01:00
Florian Pose c79e2cfe98 Output slave FSM datagram statistics. 2012-11-14 21:59:34 +01:00
Florian Pose cd415846d5 Added API for querying CoE emergency requests. 2012-11-06 14:23:44 +01:00
Florian Pose 77d12c25ca Show complete access flag in config view. 2012-10-09 09:52:50 +02:00
Florian Pose ef68a4bff1 Added ecrt_sdo_request_index() method to change index and subindex. 2012-10-04 10:07:52 +02:00
Florian Pose 9faaa83212 Re-worked and seamlessly integrated RTDM interface. 2012-09-20 15:28:25 +02:00
Florian Pose b0b7e6fde4 Removed trailing spaces. 2012-09-06 20:22:24 +02:00
Florian Pose 1c8790c483 Merged redundancy branch to stable-1.5. 2012-09-06 18:28:57 +02:00
Florian Pose 66293cbefa Malformed hg keywords. 2012-09-04 14:18:20 +02:00
Florian Pose 83e097bade Fixed AL status code lookup. 2012-08-06 14:18:05 +02:00
Florian Pose dbc993a98b Added missing linux/modules.h include. 2012-07-23 16:10:45 +02:00
Florian Pose d2c2e3a5a9 Removed whitespace. 2012-07-09 10:05:32 +02:00
Florian Pose 6c9e725c29 Added ecrt_master_link_state() to retrieve information about a redundant link. 2012-05-31 11:03:58 +02:00
Florian Pose dee3c96444 Minor: Braces. 2012-05-31 09:50:29 +02:00