17db7d9f3SSven Eckelmann /* SPDX-License-Identifier: GPL-2.0 */
2*cfa55c6dSSven Eckelmann /* Copyright (C) B.A.T.M.A.N. contributors:
3c6c8fea2SSven Eckelmann  *
4c6c8fea2SSven Eckelmann  * Marek Lindner
5c6c8fea2SSven Eckelmann  */
6c6c8fea2SSven Eckelmann 
7c6c8fea2SSven Eckelmann #ifndef _NET_BATMAN_ADV_GATEWAY_COMMON_H_
8c6c8fea2SSven Eckelmann #define _NET_BATMAN_ADV_GATEWAY_COMMON_H_
9c6c8fea2SSven Eckelmann 
101e2c2a4fSSven Eckelmann #include "main.h"
111e2c2a4fSSven Eckelmann 
1268a600deSSven Eckelmann #include <linux/netdevice.h>
131e2c2a4fSSven Eckelmann #include <linux/types.h>
141e2c2a4fSSven Eckelmann 
15414254e3SMarek Lindner /**
16414254e3SMarek Lindner  * enum batadv_bandwidth_units - bandwidth unit types
17414254e3SMarek Lindner  */
18414254e3SMarek Lindner enum batadv_bandwidth_units {
198b84cc4fSSven Eckelmann 	/** @BATADV_BW_UNIT_KBIT: unit type kbit */
20414254e3SMarek Lindner 	BATADV_BW_UNIT_KBIT,
218b84cc4fSSven Eckelmann 
228b84cc4fSSven Eckelmann 	/** @BATADV_BW_UNIT_MBIT: unit type mbit */
23414254e3SMarek Lindner 	BATADV_BW_UNIT_MBIT,
24414254e3SMarek Lindner };
25414254e3SMarek Lindner 
2697ea4ba1SSven Eckelmann #define BATADV_GW_MODE_OFF_NAME	"off"
2797ea4ba1SSven Eckelmann #define BATADV_GW_MODE_CLIENT_NAME	"client"
2897ea4ba1SSven Eckelmann #define BATADV_GW_MODE_SERVER_NAME	"server"
29c6c8fea2SSven Eckelmann 
3084d5e5e0SSven Eckelmann ssize_t batadv_gw_bandwidth_set(struct net_device *net_dev, char *buff,
3184d5e5e0SSven Eckelmann 				size_t count);
32414254e3SMarek Lindner void batadv_gw_tvlv_container_update(struct batadv_priv *bat_priv);
33414254e3SMarek Lindner void batadv_gw_init(struct batadv_priv *bat_priv);
34414254e3SMarek Lindner void batadv_gw_free(struct batadv_priv *bat_priv);
350b5ecc68SAntonio Quartulli bool batadv_parse_throughput(struct net_device *net_dev, char *buff,
360b5ecc68SAntonio Quartulli 			     const char *description, u32 *throughput);
37c6c8fea2SSven Eckelmann 
38c6c8fea2SSven Eckelmann #endif /* _NET_BATMAN_ADV_GATEWAY_COMMON_H_ */
39