netlink_print_neighbors() now prints the correct header to match what batman-advanced currently outputs.
The examples in the README.rst are updated too.
Signed-off-by: Noah Peterson noahbpeterson1997@gmail.com --- README.rst | 6 +++--- neighbors.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.rst b/README.rst index 3495fba..5eda1d3 100644 --- a/README.rst +++ b/README.rst @@ -376,9 +376,9 @@ Usage::
Example::
- IF Neighbor last-seen - enp0s1 16:7b:3c:c2:bf:b8 4.612s - enp0s1 ae:1b:bf:52:25:58 0.740s + Neighbor last-seen speed IF + 16:7b:3c:c2:bf:b8 4.612s ( 1000.0) [ enp0s1] + ae:1b:bf:52:25:58 0.740s ( 1000.0) [ enp0s1]
batctl originators diff --git a/neighbors.c b/neighbors.c index 3102b0e..9dcdb81 100644 --- a/neighbors.c +++ b/neighbors.c @@ -121,7 +121,7 @@ static int netlink_print_neighbors(struct state *state, char *orig_iface, { return netlink_print_common(state, orig_iface, read_opts, orig_timeout, watch_interval, - "IF Neighbor last-seen\n", + " Neighbor last-seen speed IF\n", BATADV_CMD_GET_NEIGHBORS, neighbors_callback); }
On Sunday, 8 September 2024 19:44:28 CEST noahbpeterson1997@gmail.com wrote:
netlink_print_neighbors() now prints the correct header to match what batman-advanced currently outputs.
This is wrong, this is not what it outputs for the default B.A.T.M.A.N. IV:
$ batctl n [B.A.T.M.A.N. adv 2024.0-openwrt-2, MainIF/MAC: primary0/ae:1b:bf:52:25:5b (bat0/52:54:00:ec:00:01 BATMAN_IV)] IF Neighbor last-seen vxlan 16:7b:3c:c2:bf:bc 2.880s mesh-vpn 02:12:7b:00:04:01 0.830s
[...]
Example::
- IF Neighbor last-seen
enp0s1 16:7b:3c:c2:bf:b8 4.612s
enp0s1 ae:1b:bf:52:25:58 0.740s
Neighbor last-seen speed IF
- 16:7b:3c:c2:bf:b8 4.612s ( 1000.0) [ enp0s1]
- ae:1b:bf:52:25:58 0.740s ( 1000.0) [ enp0s1]
batctl originators diff --git a/neighbors.c b/neighbors.c index 3102b0e..9dcdb81 100644 --- a/neighbors.c +++ b/neighbors.c @@ -121,7 +121,7 @@ static int netlink_print_neighbors(struct state *state, char *orig_iface, { return netlink_print_common(state, orig_iface, read_opts, orig_timeout, watch_interval,
"IF Neighbor last-seen\n",
" Neighbor last-seen speed IF\n", BATADV_CMD_GET_NEIGHBORS, neighbors_callback);
}
Kind regards, Sven
This is wrong, this is not what it outputs for the default B.A.T.M.A.N. IV:
Oops. I believe I now have this issue corrected. I copied the routing algorithm checking code from the netlink_print_gateways() function in gateways.c and change the header accordingly. Let me know if I should revert the change in README.rst. --- README.rst | 6 +++--- neighbors.c | 22 +++++++++++++++++++++- 2 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/README.rst b/README.rst index 3495fba..5eda1d3 100644 --- a/README.rst +++ b/README.rst @@ -376,9 +376,9 @@ Usage::
Example::
- IF Neighbor last-seen - enp0s1 16:7b:3c:c2:bf:b8 4.612s - enp0s1 ae:1b:bf:52:25:58 0.740s + Neighbor last-seen speed IF + 16:7b:3c:c2:bf:b8 4.612s ( 1000.0) [ enp0s1] + ae:1b:bf:52:25:58 0.740s ( 1000.0) [ enp0s1]
batctl originators diff --git a/neighbors.c b/neighbors.c index 3102b0e..f34952b 100644 --- a/neighbors.c +++ b/neighbors.c @@ -6,6 +6,7 @@ * License-Filename: LICENSES/preferred/GPL-2.0 */
+#include <errno.h> #include <net/if.h> #include <netinet/if_ether.h> #include <netlink/netlink.h> @@ -119,9 +120,28 @@ static int netlink_print_neighbors(struct state *state, char *orig_iface, int read_opts, float orig_timeout, float watch_interval) { + char *header = NULL; + char *info_header; + + /* only parse routing algorithm name */ + last_err = -EINVAL; + info_header = netlink_get_info(state, BATADV_CMD_GET_ORIGINATORS, NULL); + free(info_header); + + if (strlen(algo_name_buf) == 0) + return last_err; + + if (!strcmp("BATMAN_IV", algo_name_buf)) + header = "IF Neighbor last-seen\n"; + if (!strcmp("BATMAN_V", algo_name_buf)) + header = " Neighbor last-seen speed IF\n"; + + if (!header) + return -EINVAL; + return netlink_print_common(state, orig_iface, read_opts, orig_timeout, watch_interval, - "IF Neighbor last-seen\n", + header, BATADV_CMD_GET_NEIGHBORS, neighbors_callback); }
On Sunday, 8 September 2024 21:47:27 CEST noahbpeterson1997@gmail.com wrote:
This is wrong, this is not what it outputs for the default B.A.T.M.A.N. IV:
Oops. I believe I now have this issue corrected. I copied the routing algorithm checking code from the netlink_print_gateways() function in gateways.c and change the header accordingly. Let me know if I should revert the change in README.rst.
Doesn't apply:
patching file README.rst patching file neighbors.c Hunk #2 FAILED at 120. 1 out of 2 hunks FAILED -- saving rejects to file neighbors.c.rej
And you need to resubmit it as proper patch in a separate thread with "[PATCH v2]" (instead of "[PATCH]") at the start of the Subject.
Let me know if I should revert the change in README.rst.
Yes, please revert it. And I don't want to read stuff like "The examples in the README.rst are updated too." - which is a rather obvious information.
And regarding "netlink_print_neighbors() now prints the correct header to match what batman-advanced currently outputs." The first part is trivial (but incorrect) and the last part doesn't make any sense. Please describe instead what the problem was and what the idea behind the fix is. And potential other information which might be helpful to understand the context for future persons stumbling over your change.
Kind regards, Sven
b.a.t.m.a.n@lists.open-mesh.org