From: Sven Eckelmann <sven@narfation.org>
To: b.a.t.m.a.n@lists.open-mesh.org
Subject: [B.A.T.M.A.N.] [PATCH 0/7] alfred: Allow out-of-order TXEND
Date: Sat, 12 Nov 2016 10:24:32 +0100 [thread overview]
Message-ID: <4404358.R7R4S15M79@sven-edge> (raw)
[-- Attachment #1: Type: text/plain, Size: 2051 bytes --]
Hi,
alfred allows to have out-of-order push data packet delivery. But these push
data packets are only accepted when they finish with an TXEND that has as its
seqno the amount of packets alfred received for this transaction. A TXEND
packet which is received before the last push data frame was received would
therefore cause the complete transaction to be canceled on the receiver side.
It was observed on a TP-Link TL-WR841N/ND v8 [1] that after the upgrade to
Gluon 2016.2 many (if not the most) transaction were out of order. The TXEND
was received before the actual push data was submitted. The master server
reacted to this by:
1. TXEND packet received to unknown transaction with seqno != 0
-> TXEND packet was dropped
2. PUSH_DATA packet received with seqno 0 received
-> new transaction was created
3. transaction timeout happened
-> transaction was dropped
This patchset now changes the behavior to automatically create transactions
when TXEND packets are received. The routines to decode TXEND and PUSH_DATA
packets will check if all frames of a transaction were received and commit the
data when the check was successful.
This stabilized the statistics [2] for the previously mentioned node.
Kind regards,
Sven
[1] https://stats.freifunk-vogtland.net/dashboard/db/node?var-node=10feedb73eb2&from=1478782587039&to=1478902771655
[2] https://stats.freifunk-vogtland.net/dashboard/db/node?var-node=10feedb73eb2&from=1478902641027&to=1478938850519
Sven Eckelmann (7):
alfred: Avoid hash search for transaction cleanup
alfred: Move tx finish functionality in extra function
alfred: Remove checks for committed/dropped transaction
alfred: Don't force cleanup of transaction on TXEND
alfred: Use expected packet count to finished transactions
alfred: Allow PUSH_DATA to finish transactions
alfred: Allow TXEND to start new transaction
alfred.h | 11 +++++---
recv.c | 84 +++++++++++++++++++++++++++++++------------------------------
unix_sock.c | 2 +-
3 files changed, 51 insertions(+), 46 deletions(-)
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 801 bytes --]
next reply other threads:[~2016-11-12 9:24 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-12 9:24 Sven Eckelmann [this message]
2016-11-12 9:25 ` [B.A.T.M.A.N.] [PATCH 1/7] alfred: Avoid hash search for transaction cleanup Sven Eckelmann
2016-11-12 9:25 ` [B.A.T.M.A.N.] [PATCH 2/7] alfred: Move tx finish functionality in extra function Sven Eckelmann
2016-11-12 9:25 ` [B.A.T.M.A.N.] [PATCH 3/7] alfred: Remove checks for committed/dropped transaction Sven Eckelmann
2016-11-12 9:25 ` [B.A.T.M.A.N.] [PATCH 4/7] alfred: Don't force cleanup of transaction on TXEND Sven Eckelmann
2016-11-12 9:25 ` [B.A.T.M.A.N.] [PATCH 5/7] alfred: Use expected packet count to finished transactions Sven Eckelmann
2016-11-12 9:25 ` [B.A.T.M.A.N.] [PATCH 6/7] alfred: Allow PUSH_DATA to finish transactions Sven Eckelmann
2016-11-12 9:25 ` [B.A.T.M.A.N.] [PATCH 7/7] alfred: Allow TXEND to start new transaction Sven Eckelmann
2016-11-17 16:06 ` [B.A.T.M.A.N.] [PATCH 0/7] alfred: Allow out-of-order TXEND Simon Wunderlich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4404358.R7R4S15M79@sven-edge \
--to=sven@narfation.org \
--cc=b.a.t.m.a.n@lists.open-mesh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox