SENF Extensible Network Framework
Home
Overview
Examples
HowTos
Glossary
Ext
NetEmu
PPI
Packets
Scheduler
Socket
Utils
Console
Daemon
Logger
Termlib
Throttling.cc
Go to the documentation of this file.
1
//
2
// Copyright (c) 2020 Fraunhofer Institute for Applied Information Technology (FIT)
3
// Network Research Group (NET)
4
// Schloss Birlinghoven, 53754 Sankt Augustin, GERMANY
5
// Contact: support@wiback.org
6
//
7
// This file is part of the SENF code tree.
8
// It is licensed under the 3-clause BSD License (aka New BSD License).
9
// See LICENSE.txt in the top level directory for details or visit
10
// https://opensource.org/licenses/BSD-3-Clause
11
//
12
13
17
#include "
Throttling.hh
"
18
19
// Custom includes
20
#include "
Connectors.hh
"
21
22
#define prefix_
23
//-/////////////////////////////////////////////////////////////////////////////////////////////////
24
25
//-/////////////////////////////////////////////////////////////////////////////////////////////////
26
// senf::ppi::ThresholdThrottling
27
28
prefix_
void
senf::ppi::ThresholdThrottling::update
(
connector::GenericPassiveInput
& input,
Event
event)
29
{
30
switch
(event) {
31
case
ENQUEUE
:
32
if
(input.
queueSize
() >= high_)
33
input.
throttle
();
34
break
;
35
case
DEQUEUE
:
36
if
(input.
queueSize
() <= low_)
37
input.
unthrottle
();
38
break
;
39
}
40
}
41
42
//-/////////////////////////////////////////////////////////////////////////////////////////////////
43
#undef prefix_
44
45
46
// Local Variables:
47
// mode: c++
48
// fill-column: 100
49
// comment-column: 40
50
// c-file-style: "senf"
51
// indent-tabs-mode: nil
52
// ispell-local-dictionary: "american"
53
// compile-command: "scons -u test"
54
// End:
prefix_
#define prefix_
Definition:
Throttling.cc:22
Connectors.hh
Connectors public header.
senf::ppi::ThrottlingDiscipline::DEQUEUE
Definition:
Throttling.hh:51
senf::ppi::ThresholdThrottling::update
virtual void update(connector::GenericPassiveInput &input, Event event)
Calculate new throttling state.
Definition:
Throttling.cc:28
senf::ppi::ThrottlingDiscipline::Event
Event
Definition:
Throttling.hh:51
senf::ppi::connector::InputConnector::queueSize
size_type queueSize() const
Return number of elements in the queue.
senf::ppi::connector::PassiveConnector::unthrottle
void unthrottle()
Revoke native throttling.
senf::ppi::connector::PassiveConnector::throttle
void throttle()
Set native throttling.
senf::ppi::ThrottlingDiscipline::ENQUEUE
Definition:
Throttling.hh:51
Throttling.hh
Throttling public header.
senf::ppi::connector::GenericPassiveInput
Combination of PassiveConnector and InputConnector.
Definition:
Connectors.hh:478