]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/network/netdev/batadv.h
sd-ipv4acd: fix assertion triggered when an ARP received in STARTED state
[thirdparty/systemd.git] / src / network / netdev / batadv.h
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2
3 #pragma once
4
5 #include <linux/batman_adv.h>
6
7 #include "conf-parser.h"
8 #include "netdev.h"
9
10 #define BATADV_GENL_NAME "batadv"
11
12 typedef enum BatadvGatewayModes {
13 BATADV_GATEWAY_MODE_OFF = BATADV_GW_MODE_OFF,
14 BATADV_GATEWAY_MODE_CLIENT = BATADV_GW_MODE_CLIENT,
15 BATADV_GATEWAY_MODE_SERVER = BATADV_GW_MODE_SERVER,
16 _BATADV_GATEWAY_MODE_MAX,
17 _BATADV_GATEWAY_MODE_INVALID = -EINVAL,
18 } BatadvGatewayModes;
19
20 typedef enum BatadvRoutingAlgorithm {
21 BATADV_ROUTING_ALGORITHM_BATMAN_V,
22 BATADV_ROUTING_ALGORITHM_BATMAN_IV,
23 _BATADV_ROUTING_ALGORITHM_MAX,
24 _BATADV_ROUTING_ALGORITHM_INVALID = -EINVAL,
25 } BatadvRoutingAlgorithm;
26
27 typedef struct Batadv {
28 NetDev meta;
29
30 BatadvGatewayModes gateway_mode;
31 uint32_t gateway_bandwidth_down;
32 uint32_t gateway_bandwidth_up;
33 uint8_t hop_penalty;
34 BatadvRoutingAlgorithm routing_algorithm;
35 usec_t originator_interval;
36 bool aggregation;
37 bool bridge_loop_avoidance;
38 bool distributed_arp_table;
39 bool fragmentation;
40 } BatmanAdvanced;
41
42 DEFINE_NETDEV_CAST(BATADV, BatmanAdvanced);
43 extern const NetDevVTable batadv_vtable;
44
45 CONFIG_PARSER_PROTOTYPE(config_parse_batadv_gateway_mode);
46 CONFIG_PARSER_PROTOTYPE(config_parse_batadv_routing_algorithm);
47 CONFIG_PARSER_PROTOTYPE(config_parse_badadv_bandwidth);