RINASim
October 2016
Documentation of framework for OMNeT++
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
UpstreamNotifier.cc
Go to the documentation of this file.
1
//
2
// The MIT License (MIT)
3
//
4
// Copyright (c) 2014-2016 Brno University of Technology, PRISTINE project
5
//
6
// Permission is hereby granted, free of charge, to any person obtaining a copy
7
// of this software and associated documentation files (the "Software"), to deal
8
// in the Software without restriction, including without limitation the rights
9
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
// copies of the Software, and to permit persons to whom the Software is
11
// furnished to do so, subject to the following conditions:
12
//
13
// The above copyright notice and this permission notice shall be included in
14
// all copies or substantial portions of the Software.
15
//
16
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
// THE SOFTWARE.
23
24
#include <
UpstreamNotifier.h
>
25
26
Define_Module
(
UpstreamNotifier
);
27
28
void
UpstreamNotifier::onPolicyInit
()
29
{
30
31
}
32
33
bool
UpstreamNotifier::run
(
RMTQueue
* queue)
34
{
35
// simple version:
36
// Send out the notification when an output (N-1)-port is overflowing.
37
38
if
(queue->
getLength
() >= queue->
getMaxLength
())
39
{
40
if
(queue->
getType
() ==
RMTQueue::OUTPUT
)
41
{
// (N-1)-port output queues are filling up => stop accepting more PDUs
42
notifySenderOfCongestion
(queue->
getLastPDU
());
43
}
44
}
45
46
return
false
;
47
}
48
RMTQueue::getType
queueType getType() const
Definition:
RMTQueue.cc:241
UpstreamNotifier::onPolicyInit
virtual void onPolicyInit()
Definition:
UpstreamNotifier.cc:28
RMTQueue::getMaxLength
int getMaxLength() const
Definition:
RMTQueue.cc:215
RMTQueue::getLength
int getLength() const
Definition:
RMTQueue.cc:210
RMTQueue::getLastPDU
const cPacket * getLastPDU() const
Definition:
RMTQueue.cc:276
RMTQueue::OUTPUT
Definition:
RMTQueue.h:48
UpstreamNotifier
Definition:
UpstreamNotifier.h:29
Define_Module
Define_Module(UpstreamNotifier)
UpstreamNotifier.h
UpstreamNotifier::run
virtual bool run(RMTQueue *queue)
Definition:
UpstreamNotifier.cc:33
RMTMaxQBase::notifySenderOfCongestion
void notifySenderOfCongestion(const cPacket *pdu)
Definition:
RMTMaxQBase.cc:61
RMTQueue
Definition:
RMTQueue.h:34
policies
DIF
RMT
MaxQueue
UpstreamNotifier
UpstreamNotifier.cc
Generated on Tue Oct 25 2016 21:08:53 for RINASim by
1.8.10