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

improving documentation

This commit is contained in:
Steffen Vogel 2015-09-19 18:48:00 +02:00
parent 03b8874525
commit 006440567a
11 changed files with 51 additions and 29 deletions

View file

@ -771,7 +771,7 @@ INPUT = server/ \
clients/ml507_ppc440_udp/pcores/ \
clients/ml507_ppc440_udp/s2ss/ \
clients/ml507_gtfpga_pcie/code/ \
clients/opal_udp/models/AsyncIP_sl/s2ss/
clients/opal_udp/models/send_receive/src/
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses

View file

@ -9,8 +9,9 @@ Every server needs clients which act as sinks / sources for simulation data. In
Take a look at the `clients/` directory for them:
- RTDS UDP Network Card ?
- RTDS via GTFPGA
- OPAL
- Labview
- Simulink
- RTDS via GTFPGA and UDP
- RTDS via GTFPGA and PCIexpress
- OPAL via Asynchronous Process and UDP
- OPAL via Asynchronous Process and Shared memory
- Labview (*planned*)
- Simulink (*planned*)

View file

@ -3,14 +3,18 @@
## Operating System and Kernel
For minimum latency several kernel and driver settings can be optimized.
A [RT-preemp patched Linux](https://rt.wiki.kernel.org/index.php/Main_Page) kernel is recommended.
A [RT-preempt patched Linux](https://rt.wiki.kernel.org/index.php/Main_Page) kernel is recommended.
Precompiled kernels for Fedora can be found here: http://ccrma.stanford.edu/planetccrma/software/
- Map NIC IRQs => see setting `affinity`
- Map Tasks => see setting `affinity`
- Kernel command line: isolcpus=[cpu_number]
- Nice Task => see setting `priority`
- Increase priority of server task (nice(2)) => see setting `priority`
- Increase socket priority
- Configure NIC interrupt coalescence with `ethtool`:
$ ethtool -C|--coalesce devname [adaptive-rx on|off] [adaptive-tx on|off] ...
@ -27,8 +31,6 @@ This are some proposals for the selection of appropriate server hardware:
- Server-grade CPU: Intel Xeon
- A multi-core systems allows parallization of send/receive paths.
- Server-grade network cards: Intel PRO/1000
- These allow offloading of UDP checksumming to the hardware
\example server/etc/loopback.conf
\example server/etc/example.conf

View file

@ -7,8 +7,10 @@
* @copyright 2014-2015, Institute for Automation of Complex Power Systems, EONERC
* This file is part of S2SS. All Rights Reserved. Proprietary and confidential.
* Unauthorized copying of this file, via any medium is strictly prohibited.
*
*/
/**
* @addtogroup file File-IO node type
* @ingroup node
* @{
*********************************************************************************/

View file

@ -10,8 +10,10 @@
* @copyright 2014-2015, Institute for Automation of Complex Power Systems, EONERC
* This file is part of S2SS. All Rights Reserved. Proprietary and confidential.
* Unauthorized copying of this file, via any medium is strictly prohibited.
*
*/
/**
* @addtogroup gtfpga RTDS - PCIexpress Fiber interface node type
* @ingroup node
* @{
*********************************************************************************/

View file

@ -11,8 +11,10 @@
* @copyright 2014-2015, Institute for Automation of Complex Power Systems, EONERC
* This file is part of S2SS. All Rights Reserved. Proprietary and confidential.
* Unauthorized copying of this file, via any medium is strictly prohibited.
*
*/
/**
* @addtogroup hooks User-defined hook functions
* @ingroup path
* @{
*********************************************************************************/
@ -32,6 +34,7 @@ __attribute__((constructor)) void __register_ ## fnc () { \
/* Forward declarations */
struct path;
/** This is a list of hooks which can be used in the configuration file. */
extern struct list hooks;
/** Callback type of hook function
@ -42,6 +45,7 @@ extern struct list hooks;
*/
typedef int (*hook_cb_t)(struct path *p);
/** The type of a hook defines when a hook will be exectuted. */
enum hook_type {
HOOK_PATH_START, /**< Called whenever a path is started; before threads are created. */
HOOK_PATH_STOP, /**< Called whenever a path is stopped; after threads are destoyed. */
@ -56,7 +60,7 @@ enum hook_type {
HOOK_MAX
};
/** Descriptor for user defined hooks. See hook_list[]. */
/** Descriptor for user defined hooks. See hooks[]. */
struct hook {
/** The unique name of this hook. This must be the first member! */
const char *name;
@ -65,13 +69,13 @@ struct hook {
enum hook_type type;
};
struct hook * hook_lookup(const char *name);
/* The following prototypes are example hooks */
/** Example hook: Print the message.
* @example
/** The following prototypes are example hooks
*
* @addtogroup hooks_examples Examples for hook functions
* @{
*/
/** Example hook: Print the message. */
int hook_print(struct path *p);
/** Example hook: Drop messages. */
@ -100,4 +104,4 @@ int hook_restart(struct path *p);
/** Core hook: check if sequence number is correct. Otherwise message will be dropped */
int hook_drop(struct path *p);
#endif /** _HOOKS_H_ @} */
#endif /** _HOOKS_H_ @} @} */

View file

@ -11,6 +11,9 @@
* @copyright 2014-2015, Institute for Automation of Complex Power Systems, EONERC
* This file is part of S2SS. All Rights Reserved. Proprietary and confidential.
* Unauthorized copying of this file, via any medium is strictly prohibited.
*
* @addtogroup node Node
* @{
*********************************************************************************/
#ifndef _NODE_H_
@ -224,4 +227,4 @@ struct node * node_create();
*/
void node_destroy(struct node *n);
#endif /* _NODE_H_ */
#endif /** _NODE_H_ @} */

View file

@ -7,8 +7,10 @@
* @copyright 2014-2015, Institute for Automation of Complex Power Systems, EONERC
* This file is part of S2SS. All Rights Reserved. Proprietary and confidential.
* Unauthorized copying of this file, via any medium is strictly prohibited.
*
* @addtogroup opal OPAL-RT Asyc Process node type
*/
/**
* @ingroup node
* @addtogroup opal OPAL-RT Async Process node type
* @{
**********************************************************************************/

View file

@ -4,7 +4,12 @@
* @author Steffen Vogel <stvogel@eonerc.rwth-aachen.de>
* @copyright 2014-2015, Institute for Automation of Complex Power Systems, EONERC
* This file is part of S2SS. All Rights Reserved. Proprietary and confidential.
* Unauthorized copying of this file, via any medium is strictly prohibited.
* Unauthorized copying of this file, via any medium is strictly prohibited.
*/
/** A path connects one input node to multiple output nodes (1-to-n).
*
* @addtogroup path Path
* @{
*********************************************************************************/
#ifndef _PATH_H_
@ -147,4 +152,4 @@ int path_print(struct path *p, char *buf, int len);
*/
int path_run_hook(struct path *p, enum hook_type t);
#endif /* _PATH_H_ */
#endif /** _PATH_H_ @} */

View file

@ -7,8 +7,10 @@
* @copyright 2014-2015, Institute for Automation of Complex Power Systems, EONERC
* This file is part of S2SS. All Rights Reserved. Proprietary and confidential.
* Unauthorized copying of this file, via any medium is strictly prohibited.
*
*/
/**
* @addtogroup socket BSD Socket Node Type
* @ingroup node
* @{
*********************************************************************************/

View file

@ -23,7 +23,6 @@
/* Some hooks can be configured by constants in te file "config.h" */
/** This is a static list of available hooks. */
struct list hooks;
REGISTER_HOOK("print", 99, hook_print, HOOK_MSG)