mirror of
https://github.com/openwrt/routing.git
synced 2025-02-23 16:16:15 +00:00
The test builds are now requiring quilt refreshed patches instead of git patches. Otherwise the build check will not even try to build something. Signed-off-by: Sven Eckelmann <sven@narfation.org>
112 lines
4.2 KiB
Diff
112 lines
4.2 KiB
Diff
From: Sven Eckelmann <sven@narfation.org>
|
|
Date: Mon, 10 May 2021 15:05:42 +0200
|
|
Subject: batman-adv: Always send iface index+name in genlmsg
|
|
|
|
The batman-adv netlink messages often contain the interface index and
|
|
interface name in the same message. This makes it easy for the receiver to
|
|
operate on the incoming data when it either needs to print something or
|
|
needs to operate on the interface index.
|
|
|
|
But one of the attributes was missing for:
|
|
|
|
* neighbor table dumps
|
|
* originator table dumps
|
|
* gateway list dumps
|
|
* query of hardif information
|
|
* query of vid information
|
|
|
|
The userspace therefore had to implement special workarounds using
|
|
SIOCGIFNAME or SIOCGIFINDEX depending on what was actually provided.
|
|
Providing both information simplifies the userspace code massively without
|
|
adding a lot of extra overhead in the kernel portion.
|
|
|
|
Signed-off-by: Sven Eckelmann <sven@narfation.org>
|
|
Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/77c7d62618259f22f36427eaa62668e6e1c43090
|
|
|
|
--- a/net/batman-adv/bat_iv_ogm.c
|
|
+++ b/net/batman-adv/bat_iv_ogm.c
|
|
@@ -1849,6 +1849,8 @@ batadv_iv_ogm_orig_dump_subentry(struct
|
|
orig_node->orig) ||
|
|
nla_put(msg, BATADV_ATTR_NEIGH_ADDRESS, ETH_ALEN,
|
|
neigh_node->addr) ||
|
|
+ nla_put_string(msg, BATADV_ATTR_HARD_IFNAME,
|
|
+ neigh_node->if_incoming->net_dev->name) ||
|
|
nla_put_u32(msg, BATADV_ATTR_HARD_IFINDEX,
|
|
neigh_node->if_incoming->net_dev->ifindex) ||
|
|
nla_put_u8(msg, BATADV_ATTR_TQ, tq_avg) ||
|
|
@@ -2078,6 +2080,8 @@ batadv_iv_ogm_neigh_dump_neigh(struct sk
|
|
|
|
if (nla_put(msg, BATADV_ATTR_NEIGH_ADDRESS, ETH_ALEN,
|
|
hardif_neigh->addr) ||
|
|
+ nla_put_string(msg, BATADV_ATTR_HARD_IFNAME,
|
|
+ hardif_neigh->if_incoming->net_dev->name) ||
|
|
nla_put_u32(msg, BATADV_ATTR_HARD_IFINDEX,
|
|
hardif_neigh->if_incoming->net_dev->ifindex) ||
|
|
nla_put_u32(msg, BATADV_ATTR_LAST_SEEN_MSECS,
|
|
@@ -2459,6 +2463,8 @@ static int batadv_iv_gw_dump_entry(struc
|
|
router->addr) ||
|
|
nla_put_string(msg, BATADV_ATTR_HARD_IFNAME,
|
|
router->if_incoming->net_dev->name) ||
|
|
+ nla_put_u32(msg, BATADV_ATTR_HARD_IFINDEX,
|
|
+ router->if_incoming->net_dev->ifindex) ||
|
|
nla_put_u32(msg, BATADV_ATTR_BANDWIDTH_DOWN,
|
|
gw_node->bandwidth_down) ||
|
|
nla_put_u32(msg, BATADV_ATTR_BANDWIDTH_UP,
|
|
--- a/net/batman-adv/bat_v.c
|
|
+++ b/net/batman-adv/bat_v.c
|
|
@@ -145,6 +145,8 @@ batadv_v_neigh_dump_neigh(struct sk_buff
|
|
|
|
if (nla_put(msg, BATADV_ATTR_NEIGH_ADDRESS, ETH_ALEN,
|
|
hardif_neigh->addr) ||
|
|
+ nla_put_string(msg, BATADV_ATTR_HARD_IFNAME,
|
|
+ hardif_neigh->if_incoming->net_dev->name) ||
|
|
nla_put_u32(msg, BATADV_ATTR_HARD_IFINDEX,
|
|
hardif_neigh->if_incoming->net_dev->ifindex) ||
|
|
nla_put_u32(msg, BATADV_ATTR_LAST_SEEN_MSECS,
|
|
@@ -297,6 +299,8 @@ batadv_v_orig_dump_subentry(struct sk_bu
|
|
if (nla_put(msg, BATADV_ATTR_ORIG_ADDRESS, ETH_ALEN, orig_node->orig) ||
|
|
nla_put(msg, BATADV_ATTR_NEIGH_ADDRESS, ETH_ALEN,
|
|
neigh_node->addr) ||
|
|
+ nla_put_string(msg, BATADV_ATTR_HARD_IFNAME,
|
|
+ neigh_node->if_incoming->net_dev->name) ||
|
|
nla_put_u32(msg, BATADV_ATTR_HARD_IFINDEX,
|
|
neigh_node->if_incoming->net_dev->ifindex) ||
|
|
nla_put_u32(msg, BATADV_ATTR_THROUGHPUT, throughput) ||
|
|
@@ -737,6 +741,12 @@ static int batadv_v_gw_dump_entry(struct
|
|
genlmsg_cancel(msg, hdr);
|
|
goto out;
|
|
}
|
|
+
|
|
+ if (nla_put_u32(msg, BATADV_ATTR_HARD_IFINDEX,
|
|
+ router->if_incoming->net_dev->ifindex)) {
|
|
+ genlmsg_cancel(msg, hdr);
|
|
+ goto out;
|
|
+ }
|
|
|
|
if (nla_put_u32(msg, BATADV_ATTR_BANDWIDTH_DOWN,
|
|
gw_node->bandwidth_down)) {
|
|
--- a/net/batman-adv/netlink.c
|
|
+++ b/net/batman-adv/netlink.c
|
|
@@ -813,6 +813,10 @@ static int batadv_netlink_hardif_fill(st
|
|
bat_priv->soft_iface->ifindex))
|
|
goto nla_put_failure;
|
|
|
|
+ if (nla_put_string(msg, BATADV_ATTR_MESH_IFNAME,
|
|
+ bat_priv->soft_iface->name))
|
|
+ goto nla_put_failure;
|
|
+
|
|
if (nla_put_u32(msg, BATADV_ATTR_HARD_IFINDEX,
|
|
net_dev->ifindex) ||
|
|
nla_put_string(msg, BATADV_ATTR_HARD_IFNAME,
|
|
@@ -1044,6 +1048,10 @@ static int batadv_netlink_vlan_fill(stru
|
|
bat_priv->soft_iface->ifindex))
|
|
goto nla_put_failure;
|
|
|
|
+ if (nla_put_string(msg, BATADV_ATTR_MESH_IFNAME,
|
|
+ bat_priv->soft_iface->name))
|
|
+ goto nla_put_failure;
|
|
+
|
|
if (nla_put_u32(msg, BATADV_ATTR_VLANID, vlan->vid & VLAN_VID_MASK))
|
|
goto nla_put_failure;
|
|
|