mirror of
https://github.com/torvalds/linux.git
synced 2026-11-06 21:58:01 +01:00
batman-adv: Limit number of aggregated packets directly
The currently selected size in BATADV_MAX_AGGREGATION_BYTES (512) is chosen such that the number of possible aggregated packets is lower than 32. This number must be limited so that the type of batadv_forw_packet->direct_link_flags has enough bits to represent each packet (with the size of at least 24 bytes). This requirement is better implemented in code instead of having it inside a comment. Signed-off-by: Sven Eckelmann <sven@narfation.org> Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
This commit is contained in:
parent
9443335502
commit
434becf57b
|
|
@ -446,6 +446,7 @@ batadv_iv_ogm_can_aggregate(const struct batadv_ogm_packet *new_bat_ogm_packet,
|
|||
struct batadv_ogm_packet *batadv_ogm_packet;
|
||||
int aggregated_bytes = forw_packet->packet_len + packet_len;
|
||||
struct batadv_hard_iface *primary_if = NULL;
|
||||
u8 packet_num = forw_packet->num_packets + 1;
|
||||
bool res = false;
|
||||
unsigned long aggregation_end_time;
|
||||
|
||||
|
|
@ -468,6 +469,9 @@ batadv_iv_ogm_can_aggregate(const struct batadv_ogm_packet *new_bat_ogm_packet,
|
|||
if (aggregated_bytes > BATADV_MAX_AGGREGATION_BYTES)
|
||||
return false;
|
||||
|
||||
if (packet_num >= BITS_PER_TYPE(forw_packet->direct_link_flags))
|
||||
return false;
|
||||
|
||||
/* packet is not leaving on the same interface. */
|
||||
if (forw_packet->if_outgoing != if_outgoing)
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -104,9 +104,6 @@
|
|||
*/
|
||||
#define BATADV_TQ_SIMILARITY_THRESHOLD 50
|
||||
|
||||
/* should not be bigger than 512 bytes or change the size of
|
||||
* forw_packet->direct_link_flags
|
||||
*/
|
||||
#define BATADV_MAX_AGGREGATION_BYTES 512
|
||||
#define BATADV_MAX_AGGREGATION_MS 100
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user