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(a)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