On Thursday, May 23, 2013 22:53:02 Martin Hundebøll wrote:
Fragments arriving at their destination are buffered for later merge. Merged packets are passed to the main receive function as had they never been fragmented.
Fragments are forwarded without merging if the MTU of the outgoing interface is smaller than the size of the merged packet.
Signed-off-by: Martin Hundebøll martin@hundeboll.net
v2: update copyright years remove () and uppercase beginnings from kernel doc use hlist_for_entry_safe() in batadv_frag_clear_list() merge batadv_frag_clear_orig() and batadv_frag_check_orig() update some kernel doc with return values remove "inline" from static function in .c file rename lists of fragments to "chain" remove type in kernel doc remove initialization from "curr" and "new" in insert_packet() rename "curr" and "new" to "frag_entry_{curr,new}" rename packet to frag_packet change return description in kernel doc for batadv_frag_merge_packets() fix return value on failure in pskb_expand_head() in merge_packets() add kernel doc for counters in types.h
v3: added blank lines to int batadv_frag_size_limit() added comment to explain linearization of received fragments removed ETH_HLEN in counters for received fragments
v4: remove ETH_HLEN from size check in batadv_frag_skb_fwd() don't third person in kernel doc correct some kernel doc leftovers from namechange to "chains"
Makefile.kbuild | 1 + fragmentation.c | 366 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ fragmentation.h | 47 +++++++ main.c | 4 + main.h | 9 ++ originator.c | 14 ++- packet.h | 27 ++++ routing.c | 59 +++++++++ routing.h | 2 + soft-interface.c | 4 + types.h | 38 ++++++ 11 files changed, 570 insertions(+), 1 deletion(-) create mode 100644 fragmentation.c create mode 100644 fragmentation.h
Applied in revision 9b3eab6.
Thanks, Marek