mbox

[v3,0/2] batman-adv: BATMAN_V: OGMv2 packet aggregation

Message ID 20190804185454.975-1-linus.luessing@c0d3.blue (mailing list archive)
Headers

Message

Linus Lüssing Aug. 4, 2019, 6:54 p.m. UTC
  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 v3:

* PATCH 1/2:
  * added missing include for linux/lockdep.h
  * removed inline for batadv_v_ogm_len()
  * adjusted @aggr_len kerneldoc in types.h
* PATCH 2/2:
  * moved skb_aggr declaration in batadv_v_ogm_aggr_send() to own line

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