48 lines
1.4 KiB
C
48 lines
1.4 KiB
C
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
|
|
|
#pragma once
|
|
|
|
#include <linux/batman_adv.h>
|
|
|
|
#include "conf-parser.h"
|
|
#include "netdev.h"
|
|
|
|
#define BATADV_GENL_NAME "batadv"
|
|
|
|
typedef enum BatadvGatewayModes {
|
|
BATADV_GATEWAY_MODE_OFF = BATADV_GW_MODE_OFF,
|
|
BATADV_GATEWAY_MODE_CLIENT = BATADV_GW_MODE_CLIENT,
|
|
BATADV_GATEWAY_MODE_SERVER = BATADV_GW_MODE_SERVER,
|
|
_BATADV_GATEWAY_MODE_MAX,
|
|
_BATADV_GATEWAY_MODE_INVALID = -EINVAL,
|
|
} BatadvGatewayModes;
|
|
|
|
typedef enum BatadvRoutingAlgorithm {
|
|
BATADV_ROUTING_ALGORITHM_BATMAN_V,
|
|
BATADV_ROUTING_ALGORITHM_BATMAN_IV,
|
|
_BATADV_ROUTING_ALGORITHM_MAX,
|
|
_BATADV_ROUTING_ALGORITHM_INVALID = -EINVAL,
|
|
} BatadvRoutingAlgorithm;
|
|
|
|
typedef struct Batadv {
|
|
NetDev meta;
|
|
|
|
BatadvGatewayModes gateway_mode;
|
|
uint32_t gateway_bandwidth_down;
|
|
uint32_t gateway_bandwidth_up;
|
|
uint8_t hop_penalty;
|
|
BatadvRoutingAlgorithm routing_algorithm;
|
|
usec_t originator_interval;
|
|
bool aggregation;
|
|
bool bridge_loop_avoidance;
|
|
bool distributed_arp_table;
|
|
bool fragmentation;
|
|
} BatmanAdvanced;
|
|
|
|
DEFINE_NETDEV_CAST(BATADV, BatmanAdvanced);
|
|
extern const NetDevVTable batadv_vtable;
|
|
|
|
CONFIG_PARSER_PROTOTYPE(config_parse_batadv_gateway_mode);
|
|
CONFIG_PARSER_PROTOTYPE(config_parse_batadv_routing_algorithm);
|
|
CONFIG_PARSER_PROTOTYPE(config_parse_badadv_bandwidth);
|