[03/10] batman-adv: add generic netlink query API to replace debugfs files

Message ID 10673163.SjRvAOM3uS@sven-edge (mailing list archive)
State Not Applicable, archived
Headers

Commit Message

Sven Eckelmann April 29, 2016, 7:15 p.m. UTC
  On Thursday 28 April 2016 22:37:21 Andrew Lunn wrote:
> From: Matthias Schiffer <mschiffer@universe-factory.net>
> 
> debugfs is currently severely broken virtually everywhere in the kernel
> where files are dynamically added and removed (see
> http://lkml.iu.edu/hypermail/linux/kernel/1506.1/02196.html for some
> details). In addition to that, debugfs is not namespace-aware.
> 
> Also, the debugfs interface will try to fix the whole list of originators/
> TT entries into a single buffer. The situation has improved in recent
> kernels,as the seq_file infrastructure will fall back to vmalloc now when
> kmalloc fails. Still, converting all information to text and potentially
> retrying multiple times until the buffer is big enough is very inefficient.
> 
> This commit adds generic infrastructur for the netlink interface to
> batman-adv and implements the following command:
> 
> * BATADV_CMD_GET_ROUTING_ALGOS: will return the list of supported routing
>   algorithms
> * BATADV_CMD_GET_MESH_INFO: will return basic information about a
>   batman-adv softif (name, index and MAC address for both the softif and
>   the primary hardif; routing algorithm; batman-adv version)
> * BATADV_CMD_GET_HARDIFS: will return the list of hardifs (including
>   index, name and MAC address) of all hardifs for a given softif
> 
> Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
> ---
>  Makefile                        |   1 +
>  include/uapi/linux/batman_adv.h |  49 ++++++++
>  net/batman-adv/Makefile         |   1 +
>  net/batman-adv/main.c           |  48 ++++++++
>  net/batman-adv/main.h           |   1 +
>  net/batman-adv/netlink.c        | 251
> ++++++++++++++++++++++++++++++++++++++++ net/batman-adv/netlink.h        | 
> 36 ++++++
>  7 files changed, 387 insertions(+)
>  create mode 100644 include/uapi/linux/batman_adv.h
>  create mode 100644 net/batman-adv/netlink.c
>  create mode 100644 net/batman-adv/netlink.h

You can find the missing includes in the attached patch

Kind regards,
	Sven
  

Patch

From: Sven Eckelmann <sven@narfation.org>
Date: Fri, 29 Apr 2016 20:43:27 +0200
Subject: [PATCH] missing includes 3
---
 net/batman-adv/main.c    |  3 +++
 net/batman-adv/main.h    |  1 +
 net/batman-adv/netlink.c | 13 +++++++++++--
 net/batman-adv/netlink.h |  5 +++++
 4 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c
index 05fc597..7b5f585 100644
--- a/net/batman-adv/main.c
+++ b/net/batman-adv/main.c
@@ -35,6 +35,7 @@ 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/netdevice.h>
+#include <linux/netlink.h>
 #include <linux/pkt_sched.h>
 #include <linux/rculist.h>
 #include <linux/rcupdate.h>
@@ -46,6 +47,8 @@ 
 #include <linux/string.h>
 #include <linux/workqueue.h>
 #include <net/dsfield.h>
+#include <net/genetlink.h>
+#include <net/netlink.h>
 #include <net/rtnetlink.h>
 #include <uapi/linux/batman_adv.h>
 
diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h
index eddbb59..3b770df 100644
--- a/net/batman-adv/main.h
+++ b/net/batman-adv/main.h
@@ -191,6 +191,7 @@  enum batadv_uev_type {
 #include "types.h"
 
 struct batadv_ogm_packet;
+struct netlink_callback;
 struct seq_file;
 struct sk_buff;
 
diff --git a/net/batman-adv/netlink.c b/net/batman-adv/netlink.c
index 6682f78..e302de3 100644
--- a/net/batman-adv/netlink.c
+++ b/net/batman-adv/netlink.c
@@ -18,14 +18,23 @@ 
 #include "main.h"
 #include "netlink.h"
 
+#include <linux/errno.h>
+#include <linux/fs.h>
+#include <linux/if_ether.h>
+#include <linux/init.h>
 #include <linux/netdevice.h>
+#include <linux/netlink.h>
+#include <linux/printk.h>
+#include <linux/rculist.h>
+#include <linux/rcupdate.h>
+#include <linux/skbuff.h>
+#include <linux/stddef.h>
+#include <linux/types.h>
 #include <net/sock.h>
 #include <uapi/linux/batman_adv.h>
 
 #include "hard-interface.h"
-#include "originator.h"
 #include "soft-interface.h"
-#include "translation-table.h"
 
 struct genl_family batadv_netlink_family = {
 	.id = GENL_ID_GENERATE,
diff --git a/net/batman-adv/netlink.h b/net/batman-adv/netlink.h
index 31022d4..ae0eeb9 100644
--- a/net/batman-adv/netlink.h
+++ b/net/batman-adv/netlink.h
@@ -18,7 +18,12 @@ 
 #ifndef _NET_BATMAN_ADV_NETLINK_H_
 #define _NET_BATMAN_ADV_NETLINK_H_
 
+#include <linux/compiler.h>
+#include <linux/genetlink.h>
 #include <net/genetlink.h>
+#include <net/netlink.h>
+
+struct nlmsghdr;
 
 void batadv_netlink_register(void);
 void batadv_netlink_unregister(void);