Hi,
This small patchset implements the transmission side for the OGMv2 packet aggregation in BATMAN_V. The receiver part was already implemented and seems to work nicely.
The first patch implements the necessary queueing mechanism, utilizing skb queues.
The second patch then implements the actual OGMv2 packet aggregation for the queued packets.
Opportunities for later improvements (left out on purpose, to keep this patchset simple):
* Reset queue timer on full queue / if flushing in batadv_v_ogm_queue_on_if(): -> to avoid sending small aggregates in the worker afterwards * Remove BATADV_MAX_AGGREGATION_BYTES (512 bytes) limitation: -> not needed for BATMAN_V, would break compatibility though... (* Increase BATADV_MAX_AGGREGATION_MS (100ms): -> BATMAN_V has less averaging, therefore could use slower OGM intervals and therefore slightly larger aggregtion time window)
Regards, Linus
Ref./obsolete: Previous, generic aggregation patchset: https://patchwork.open-mesh.org/patch/17013/
==
Changelog v2:
* PATCH 1/2: * added lockdep_assert_held() * fixed aggr_len kerneldoc in types.h * fixed alignment in batadv_v_ogm_queue_left() * added missing includes in bat_v_ogm.{c,h} * fixed @hard_iface kerneldoc for batadv_v_ogm_aggr_list_free() * removed unused bat_priv in batadv_v_ogm_aggr_work() * PATCH 2/2: * unchanged