This is a minor cosmetic nit to emphasise the distinction between the
initial MTU discovery phase, and the post-initial phase (i.e. maxmtu
checking).
Furthermore, this is an improvement with regard to the DRY (Don't
Repeat Yourself) principle, as the maximum mtuprobes value is only
written once.
#define MAX_SEQNO 1073741824
static void try_fix_mtu(node_t *n) {
#define MAX_SEQNO 1073741824
static void try_fix_mtu(node_t *n) {
return;
if(n->mtuprobes == 30 || n->minmtu >= n->maxmtu) {
return;
if(n->mtuprobes == 30 || n->minmtu >= n->maxmtu) {
n->maxmtu = n->minmtu;
n->mtu = n->minmtu;
logger(DEBUG_TRAFFIC, LOG_INFO, "Fixing MTU of %s (%s) to %d after %d probes", n->name, n->hostname, n->mtu, n->mtuprobes);
n->maxmtu = n->minmtu;
n->mtu = n->minmtu;
logger(DEBUG_TRAFFIC, LOG_INFO, "Fixing MTU of %s (%s) to %d after %d probes", n->name, n->hostname, n->mtu, n->mtuprobes);
}
/* mtuprobes == 0..29: initial discovery, send bursts with 1 second interval, mtuprobes++
}
/* mtuprobes == 0..29: initial discovery, send bursts with 1 second interval, mtuprobes++
- mtuprobes == 30: fix MTU, and go to 31
- mtuprobes == 31: send one >maxmtu probe every pingtimeout */
+ mtuprobes == 30: fix MTU, and go to -1
+ mtuprobes == -1: send one >maxmtu probe every pingtimeout */
struct timeval now;
gettimeofday(&now, NULL);
struct timeval elapsed;
timersub(&now, &n->probe_sent_time, &elapsed);
struct timeval now;
gettimeofday(&now, NULL);
struct timeval elapsed;
timersub(&now, &n->probe_sent_time, &elapsed);
- if(n->mtuprobes < 31) {
+ if(n->mtuprobes >= 0) {
if(n->mtuprobes != 0 && elapsed.tv_sec < 1)
return;
} else {
if(n->mtuprobes != 0 && elapsed.tv_sec < 1)
return;
} else {
try_fix_mtu(n);
int timeout;
try_fix_mtu(n);
int timeout;
- if(n->mtuprobes == 31) {
/* After the initial discovery, we only send one >maxmtu probe
to detect PMTU increases. */
if(n->maxmtu + 8 < MTU)
/* After the initial discovery, we only send one >maxmtu probe
to detect PMTU increases. */
if(n->maxmtu + 8 < MTU)