batctl: Add support for hop_penalty settings command

The batman-adv scripts are still using sysfs for setting the hop_penalty.
Since the sysfs is deprecated, the batctl interface should be used to make
it independent of implementation details (sysfs vs. netlink).

Signed-off-by: Sven Eckelmann <sven@narfation.org>
This commit is contained in:
Sven Eckelmann 2019-02-22 22:31:44 +01:00
parent 7d973599ef
commit 278e98cb86
2 changed files with 62 additions and 1 deletions

View File

@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=batctl
PKG_VERSION:=2019.0
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_HASH:=997721096ff396644e8d697ea7651e9d38243faf317bcea2661d4139ff58b531
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@ -101,6 +101,7 @@ config-n := \
fragmentation \
gateways \
gw_mode \
hop_penalty \
interface \
isolation_mark \
log \
@ -130,6 +131,7 @@ config-settings := \
distributed_arp_table \
fragmentation \
gw_mode \
hop_penalty \
interface \
isolation_mark \
loglevel \

View File

@ -0,0 +1,59 @@
From: Sven Eckelmann <sven@narfation.org>
Date: Fri, 22 Feb 2019 22:19:59 +0100
Subject: batctl: Add hop_penalty command
Signed-off-by: Sven Eckelmann <sven@narfation.org>
diff --git a/Makefile b/Makefile
index 4d8b7095a1e307f0dde7660a718e4ad9c6b11102..55105cc754f546891ba2fcaf57dc8b3ac4c22f71 100755
--- a/Makefile
+++ b/Makefile
@@ -63,6 +63,7 @@ $(eval $(call add_command,event,y))
$(eval $(call add_command,fragmentation,y))
$(eval $(call add_command,gateways,y))
$(eval $(call add_command,gw_mode,y))
+$(eval $(call add_command,hop_penalty,y))
$(eval $(call add_command,interface,y))
$(eval $(call add_command,isolation_mark,y))
$(eval $(call add_command,log,y))
diff --git a/hop_penalty.c b/hop_penalty.c
new file mode 100644
index 0000000000000000000000000000000000000000..6e6a06a661e2ffbb76793116fb214396523bbd8d
--- /dev/null
+++ b/hop_penalty.c
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Copyright (C) 2009-2019 B.A.T.M.A.N. contributors:
+ *
+ * Marek Lindner <mareklindner@neomailbox.ch>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA
+ *
+ * License-Filename: LICENSES/preferred/GPL-2.0
+ */
+
+#include <stddef.h>
+
+#include "main.h"
+#include "sys.h"
+
+static struct settings_data batctl_settings_hop_penalty = {
+ .sysfs_name = "hop_penalty",
+ .params = NULL,
+};
+
+COMMAND_NAMED(SUBCOMMAND, hop_penalty, "hp", handle_sys_setting,
+ COMMAND_FLAG_MESH_IFACE, &batctl_settings_hop_penalty,
+ "[penalty] \tdisplay or modify hop_penalty setting");