The following commit has been merged in the master branch:
commit 548b0c5de7619ef53bbde5590700693f2f6d2a56
Author: Sven Eckelmann <[email protected]>
Date:   Sun Feb 2 17:04:13 2025 +0100

    batman-adv: Ignore own maximum aggregation size during RX
    
    An OGMv1 and OGMv2 packet receive processing were not only limited by the
    number of bytes in the received packet but also by the nodes maximum
    aggregation packet size limit. But this limit is relevant for TX and not
    for RX. It must not be enforced by batadv_(i)v_ogm_aggr_packet to avoid
    loss of information in case of a different limit for sender and receiver.
    
    This has a minor side effect for B.A.T.M.A.N. IV because the
    batadv_iv_ogm_aggr_packet is also used for the preprocessing for the TX.
    But since the aggregation code itself will not allow more than
    BATADV_MAX_AGGREGATION_BYTES bytes, this check was never triggering (in
    this context) prior of removing it.
    
    Cc: [email protected]
    Fixes: c6c8fea29769 ("net: Add batman-adv meshing protocol")
    Fixes: 9323158ef9f4 ("batman-adv: OGMv2 - implement originators logic")
    Signed-off-by: Sven Eckelmann <[email protected]>
    Signed-off-by: Simon Wunderlich <[email protected]>

diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c
index 07ae5dd1f150b..b12645949ae5a 100644
--- a/net/batman-adv/bat_iv_ogm.c
+++ b/net/batman-adv/bat_iv_ogm.c
@@ -325,8 +325,7 @@ batadv_iv_ogm_aggr_packet(int buff_pos, int packet_len,
        /* check if there is enough space for the optional TVLV */
        next_buff_pos += ntohs(ogm_packet->tvlv_len);
 
-       return (next_buff_pos <= packet_len) &&
-              (next_buff_pos <= BATADV_MAX_AGGREGATION_BYTES);
+       return next_buff_pos <= packet_len;
 }
 
 /* send a batman ogm to a given interface */
diff --git a/net/batman-adv/bat_v_ogm.c b/net/batman-adv/bat_v_ogm.c
index e503ee0d896bd..8f89ffe6020ce 100644
--- a/net/batman-adv/bat_v_ogm.c
+++ b/net/batman-adv/bat_v_ogm.c
@@ -839,8 +839,7 @@ batadv_v_ogm_aggr_packet(int buff_pos, int packet_len,
        /* check if there is enough space for the optional TVLV */
        next_buff_pos += ntohs(ogm2_packet->tvlv_len);
 
-       return (next_buff_pos <= packet_len) &&
-              (next_buff_pos <= BATADV_MAX_AGGREGATION_BYTES);
+       return next_buff_pos <= packet_len;
 }
 
 /**

-- 
LinuxNextTracking

Reply via email to