RTE RBC 2oo2 Reference Application
0.1.0 build 0006685
SIL 4 2oo2 Dual-Site Fault-Tolerant ERTMS Radio Block Centre Reference Architecture
Toggle main menu visibility
Loading...
Searching...
No Matches
ab_gp_config.h
Go to the documentation of this file.
1
8
9
#ifndef AB_GP_CONFIG_H
10
#define AB_GP_CONFIG_H
11
12
#include <stdbool.h>
13
#include <stdint.h>
14
15
#include "rte/oal/netlink/rte_netlink.h"
16
#include "rte/utils/types/rte_types.h"
17
#include "
../../common/site_config.h
"
18
19
#define AB_GP_CONFIG_MAX_CHANNELS 16U
20
#define AB_GP_CONFIG_NAME_MAX_LEN 32U
21
#define AB_GP_CONFIG_HOST_MAX_LEN 64U
22
23
typedef
struct
ab_gp_config_channel_s
24
{
25
uint32_t
id
;
26
char
name
[
AB_GP_CONFIG_NAME_MAX_LEN
];
27
rte_netlink_role_t
role
;
28
char
host
[
AB_GP_CONFIG_HOST_MAX_LEN
];
29
uint16_t
port
;
30
uint32_t
message_size
;
31
uint32_t
connect_timeout_ms
;
32
bool
is_configured
;
33
}
ab_gp_config_channel_t
;
34
35
typedef
struct
ab_gp_config_timers_s
36
{
37
uint32_t
cycle_period_ms
;
38
uint32_t
watchdog_timeout_ms
;
39
uint32_t
checkpoint_max_delay_ms
;
40
uint32_t
checkpoint_relaxed_max_delay_ms
;
41
uint32_t
checkpoint_relax_duration_ms
;
42
uint32_t
checkpoint_reenable_grace_ms
;
43
uint32_t
dual_transfer_timeout_ms
;
44
uint32_t
channel_down_reboot_ms
;
45
uint32_t
link_timeout_ms
;
46
uint32_t
connect_timeout_ms
;
47
uint32_t
reconnect_attempt_timeout_ms
;
48
uint32_t
neg_ack_timeout_ms
;
49
}
ab_gp_config_timers_t
;
50
51
typedef
struct
ab_gp_config_s
52
{
53
rte_example_site_t
site
;
54
bool
is_role_a
;
55
ab_gp_config_timers_t
timers
;
56
ab_gp_config_channel_t
channels
[
AB_GP_CONFIG_MAX_CHANNELS
];
57
uint8_t
channel_count
;
58
}
ab_gp_config_t
;
59
63
rte_status_t
ab_gp_config_init_defaults
(
rte_example_site_t
site,
bool
is_role_a,
ab_gp_config_t
*out_cfg);
64
71
rte_status_t
ab_gp_config_load_file
(
const
char
*filepath,
ab_gp_config_t
*out_cfg);
72
80
rte_status_t
ab_gp_config_find_channel
(
const
ab_gp_config_t
*cfg,
const
char
*channel_name,
81
rte_netlink_config_t *out_netlink_cfg);
82
90
rte_status_t
ab_gp_config_find_channel_by_id
(
const
ab_gp_config_t
*cfg, uint32_t channel_id,
91
rte_netlink_config_t *out_netlink_cfg);
92
93
#endif
/* AB_GP_CONFIG_H */
94
ab_gp_config_find_channel_by_id
rte_status_t ab_gp_config_find_channel_by_id(const ab_gp_config_t *cfg, uint32_t channel_id, rte_netlink_config_t *out_netlink_cfg)
Resolves netlink configuration for a channel by numeric ID from the parsed config.
Definition
ab_gp_config.c:345
ab_gp_config_load_file
rte_status_t ab_gp_config_load_file(const char *filepath, ab_gp_config_t *out_cfg)
Parses an INI-style configuration file into the static ab_gp_config_t structure.
Definition
ab_gp_config.c:228
ab_gp_config_init_defaults
rte_status_t ab_gp_config_init_defaults(rte_example_site_t site, bool is_role_a, ab_gp_config_t *out_cfg)
Initializes default configuration in memory based on site and role.
Definition
ab_gp_config.c:79
ab_gp_config_find_channel
rte_status_t ab_gp_config_find_channel(const ab_gp_config_t *cfg, const char *channel_name, rte_netlink_config_t *out_netlink_cfg)
Resolves netlink configuration for a named channel from the parsed config.
Definition
ab_gp_config.c:316
AB_GP_CONFIG_MAX_CHANNELS
#define AB_GP_CONFIG_MAX_CHANNELS
Definition
ab_gp_config.h:19
AB_GP_CONFIG_HOST_MAX_LEN
#define AB_GP_CONFIG_HOST_MAX_LEN
Definition
ab_gp_config.h:21
AB_GP_CONFIG_NAME_MAX_LEN
#define AB_GP_CONFIG_NAME_MAX_LEN
Definition
ab_gp_config.h:20
site_config.h
West/East site identity and the per-site config derived from it (ports, container host lookup) - see ...
rte_example_site_t
rte_example_site_t
Definition
site_config.h:20
ab_gp_config_channel_t
Definition
ab_gp_config.h:24
ab_gp_config_channel_t::message_size
uint32_t message_size
Definition
ab_gp_config.h:30
ab_gp_config_channel_t::host
char host[AB_GP_CONFIG_HOST_MAX_LEN]
Definition
ab_gp_config.h:28
ab_gp_config_channel_t::role
rte_netlink_role_t role
Definition
ab_gp_config.h:27
ab_gp_config_channel_t::is_configured
bool is_configured
Definition
ab_gp_config.h:32
ab_gp_config_channel_t::id
uint32_t id
Definition
ab_gp_config.h:25
ab_gp_config_channel_t::connect_timeout_ms
uint32_t connect_timeout_ms
Definition
ab_gp_config.h:31
ab_gp_config_channel_t::port
uint16_t port
Definition
ab_gp_config.h:29
ab_gp_config_channel_t::name
char name[AB_GP_CONFIG_NAME_MAX_LEN]
Definition
ab_gp_config.h:26
ab_gp_config_t
Definition
ab_gp_config.h:52
ab_gp_config_t::channel_count
uint8_t channel_count
Definition
ab_gp_config.h:57
ab_gp_config_t::channels
ab_gp_config_channel_t channels[AB_GP_CONFIG_MAX_CHANNELS]
Definition
ab_gp_config.h:56
ab_gp_config_t::timers
ab_gp_config_timers_t timers
Definition
ab_gp_config.h:55
ab_gp_config_t::site
rte_example_site_t site
Definition
ab_gp_config.h:53
ab_gp_config_t::is_role_a
bool is_role_a
Definition
ab_gp_config.h:54
ab_gp_config_timers_t
Definition
ab_gp_config.h:36
ab_gp_config_timers_t::checkpoint_relaxed_max_delay_ms
uint32_t checkpoint_relaxed_max_delay_ms
Definition
ab_gp_config.h:40
ab_gp_config_timers_t::dual_transfer_timeout_ms
uint32_t dual_transfer_timeout_ms
Definition
ab_gp_config.h:43
ab_gp_config_timers_t::link_timeout_ms
uint32_t link_timeout_ms
Definition
ab_gp_config.h:45
ab_gp_config_timers_t::checkpoint_max_delay_ms
uint32_t checkpoint_max_delay_ms
Definition
ab_gp_config.h:39
ab_gp_config_timers_t::cycle_period_ms
uint32_t cycle_period_ms
Definition
ab_gp_config.h:37
ab_gp_config_timers_t::channel_down_reboot_ms
uint32_t channel_down_reboot_ms
Definition
ab_gp_config.h:44
ab_gp_config_timers_t::checkpoint_relax_duration_ms
uint32_t checkpoint_relax_duration_ms
Definition
ab_gp_config.h:41
ab_gp_config_timers_t::neg_ack_timeout_ms
uint32_t neg_ack_timeout_ms
Definition
ab_gp_config.h:48
ab_gp_config_timers_t::reconnect_attempt_timeout_ms
uint32_t reconnect_attempt_timeout_ms
Definition
ab_gp_config.h:47
ab_gp_config_timers_t::checkpoint_reenable_grace_ms
uint32_t checkpoint_reenable_grace_ms
Definition
ab_gp_config.h:42
ab_gp_config_timers_t::connect_timeout_ms
uint32_t connect_timeout_ms
Definition
ab_gp_config.h:46
ab_gp_config_timers_t::watchdog_timeout_ms
uint32_t watchdog_timeout_ms
Definition
ab_gp_config.h:38
src
application
AB
GP
com
ab_gp_config.h
Generated by
1.18.0