1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
5 #include <linux/batman_adv.h>
7 #include "conf-parser.h"
10 #define BATADV_GENL_NAME "batadv"
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
,
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
;
27 typedef struct Batadv
{
30 BatadvGatewayModes gateway_mode
;
31 uint32_t gateway_bandwidth_down
;
32 uint32_t gateway_bandwidth_up
;
34 BatadvRoutingAlgorithm routing_algorithm
;
35 usec_t originator_interval
;
37 bool bridge_loop_avoidance
;
38 bool distributed_arp_table
;
42 DEFINE_NETDEV_CAST(BATADV
, BatmanAdvanced
);
43 extern const NetDevVTable batadv_vtable
;
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
);