filter simple packet drops by not counting the first 4 packets arriving out of order
This commit is contained in:
parent
1e6929c93b
commit
f91780c602
@ -99,12 +99,17 @@ void FlowOnly::onAck(std::vector<SeqIDType> seqs) {
|
|||||||
if (first_it != _in_flight.cend() && it != first_it) {
|
if (first_it != _in_flight.cend() && it != first_it) {
|
||||||
// not next expected seq -> skip detected
|
// not next expected seq -> skip detected
|
||||||
|
|
||||||
//std::cout << "CONGESTION out of order\n";
|
std::cout << "NGC_FT1 Flow: pkg out of order\n";
|
||||||
|
_consecutive_events++;
|
||||||
|
it->ignore = true; // only handle once
|
||||||
|
if (_consecutive_events > 4) { // TODO: magic number
|
||||||
|
std::cout << "CONGESTION! NGC_FT1 flow: pkg out of order\n";
|
||||||
onCongestion();
|
onCongestion();
|
||||||
it->ignore = true; // only throw once
|
}
|
||||||
} else {
|
} else {
|
||||||
// only mesure delay, if not a congestion
|
// only mesure delay, if not a congestion
|
||||||
addRTT(now - it->timestamp);
|
addRTT(now - it->timestamp);
|
||||||
|
_consecutive_events = 0;
|
||||||
}
|
}
|
||||||
} else { // TOOD: if ! ignore too
|
} else { // TOOD: if ! ignore too
|
||||||
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
@ -42,6 +42,8 @@ struct FlowOnly : public CCAI {
|
|||||||
std::vector<FlyingBunch> _in_flight;
|
std::vector<FlyingBunch> _in_flight;
|
||||||
int64_t _in_flight_bytes {0};
|
int64_t _in_flight_bytes {0};
|
||||||
|
|
||||||
|
int32_t _consecutive_events {0};
|
||||||
|
|
||||||
clock::time_point _time_start_offset;
|
clock::time_point _time_start_offset;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user