Branch: refs/heads/master Home: https://github.com/kronosnet/kronosnet Commit: 86c9d3a9188732b3a2c097f8a44ad4e7d3aa2a86 https://github.com/kronosnet/kronosnet/commit/86c9d3a9188732b3a2c097f8a44ad4... Author: Fabio M. Di Nitto fdinitto@redhat.com Date: 2017-12-14 (Thu, 14 Dec 2017)
Changed paths: M libknet/handle.c M libknet/internals.h M libknet/threads_heartbeat.c M libknet/threads_pmtud.c M libknet/threads_rx.c
Log Message: ----------- [PMTUd] fix multiple issues and stability problems
- resolve locking issue with thread_heartbeat that was causing spurious up/down link event. In the event of a PMTUd run taking too long, the heartbeat thread could hang for much longer than ping_timeout. Use backoff_mutex to sync between threads instead of the global lock.
- pause the DATA tx thread when sending any PMTUd related packets. Similar method as knet_send_sync, using the tx_mutex, allows a much more stable communication between nodes without any visible performance hit.
- calculate higher timeouts when using crypto to improve stability
- fix an odd race condition with the kernel where, during a single PMTUd run, the same packet size was marked both BAD and GOOD (via EMSGSIZE) by the kernel. That situation would cause our PMTUd to run away and calculate bad values.
- add a minor usleep between sending PMTUd packets to give time to the kernel to make its own mind about the link PMTU. This is based on average latency.
- since PMTUd can take several seconds before completion, use the "end time" to record the last run vs the start time.
- fix a major issue in sending PMTUd reply where an errno was not being passed down the link layer and would cause the RX thread to block forever.
Signed-off-by: Fabio M. Di Nitto fdinitto@redhat.com
Commit: 0bbf73a1a158569e3d49372baca9964add3e87fb https://github.com/kronosnet/kronosnet/commit/0bbf73a1a158569e3d49372baca996... Author: Fabio M. Di Nitto fdinitto@redhat.com Date: 2017-12-15 (Fri, 15 Dec 2017)
Changed paths: M libknet/handle.c M libknet/internals.h M libknet/threads_heartbeat.c M libknet/threads_pmtud.c M libknet/threads_rx.c
Log Message: ----------- Merge pull request #101 from kronosnet/mtu2
[PMTUd] fix multiple issues and stability problems
Compare: https://github.com/kronosnet/kronosnet/compare/f5ca1782d57f...0bbf73a1a158