On Monday, 26 December 2022 21:42:37 CET Linus Lüssing wrote:
Remove all zero MAC address entries (00:00:00:00:00:00) from a multicast packet's tracker TVLV before transmitting it and update all headers accordingly. This way, instead of keeping the multicast packet at a constant size throughout its journey through the mesh, it will become more lightweight, smaller with every interested receiver on the way and on each splitting intersection. Which can save some valuable bandwidth.
Signed-off-by: Linus Lüssing linus.luessing@c0d3.blue
net/batman-adv/multicast_forw.c | 212 ++++++++++++++++++++++++++++++++ 1 file changed, 212 insertions(+)
ecsv/pu: checkpatch ./net/batman-adv/multicast_forw.c -----------------------------------------------------
CHECK: Macro argument reuse 'num_dests' - possible side-effects? #35: FILE: ./net/batman-adv/multicast_forw.c:35: +#define batadv_mcast_forw_tracker_for_each_dest(dest, num_dests) \ + for (; num_dests; num_dests--, (dest) += ETH_ALEN)
CHECK: Macro argument reuse 'num_dests' - possible side-effects? #38: FILE: ./net/batman-adv/multicast_forw.c:38: +#define batadv_mcast_forw_tracker_for_each_dest_rev(dest, num_dests) \ + for (; num_dests; num_dests--, (dest) -= ETH_ALEN)
total: 0 errors, 0 warnings, 2 checks, 997 lines checked
ecsv/pu: headers ----------------
diff --git a/net/batman-adv/multicast.h b/net/batman-adv/multicast.h index 0f0d79c8..4393c3a2 100644 --- a/net/batman-adv/multicast.h +++ b/net/batman-adv/multicast.h @@ -11,6 +11,7 @@
#include <linux/netlink.h> #include <linux/skbuff.h> +#include <linux/types.h>
/** * enum batadv_forw_mode - the way a packet should be forwarded as
ecsv/pu: kerneldoc ./net/batman-adv/multicast_forw.c ----------------------------------------------------
./net/batman-adv/multicast_forw.c:86: warning: Function parameter or member 'bat_priv' not described in 'batadv_mcast_forw_push_dest' ./net/batman-adv/multicast_forw.c:401: warning: Function parameter or member 'bat_priv' not described in 'batadv_mcast_forw_push_tvlvs' ./net/batman-adv/multicast_forw.c:553: warning: Function parameter or member 'num_dests_remove' not described in 'batadv_mcast_forw_shrink_align_offset' ./net/batman-adv/multicast_forw.c:553: warning: Excess function parameter 'num_dests_reduce' description in 'batadv_mcast_forw_shrink_align_offset' ./net/batman-adv/multicast_forw.c:657: warning: Function parameter or member 'num_dests_reduce' not described in 'batadv_mcast_forw_shrink_update_headers' ./net/batman-adv/multicast_forw.c:657: warning: Excess function parameter 'num_dest_reduce' description in 'batadv_mcast_forw_shrink_update_headers'
+static int batadv_mcast_forw_shrink_align_offset(unsigned int num_dests_old,
unsigned int num_dests_remove)
+{
- int ret = sizeof(((struct batadv_tvlv_mcast_tracker *)0)->align);
sizeof_field from linux/stddef.h. Available there since v4.16. So you need to have a compat code commit which introduces it for older kernels.
Kind regards, Sven