[03/10] batman-adv: add generic netlink query API to replace debugfs files
Commit Message
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
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(-)
@@ -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>
@@ -191,6 +191,7 @@ enum batadv_uev_type {
#include "types.h"
struct batadv_ogm_packet;
+struct netlink_callback;
struct seq_file;
struct sk_buff;
@@ -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,
@@ -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);