42 if(comparer->isValid(qosI, qos)) {
43 neighbours[qosI.getQosId()][dst].insert(port);
44 if (neighbours[qosI.getQosId()][dst].size() == 1) {
45 rt->addFlow(addr, qosI.getQosId(), dst, 1);
57 if(neighbours[qosI.getQosId()].find(dst) != neighbours[qosI.getQosId()].end()){
58 neighbours[qosI.getQosId()][dst].erase(port);
59 if(neighbours[qosI.getQosId()][dst].size() <= 0){
60 rt->removeFlow(addr,qosI.getQosId(), dst);
61 neighbours[qosI.getQosId()].erase(dst);
72 for(
DMRnms::s2AIt eIt = it->entries.begin(); eIt != it->entries.end(); eIt++){
73 std::string dst = eIt->first;
74 std::string nextHop = eIt->second.getIpcAddress().getName();
76 EV <<
"Entry ::: "<< dst <<
" -> " << nextHop <<
" ("<< eIt->second<<
")" <<endl;
79 NTableIt n = neighbours[it->domain].find(nextHop);
80 if(n != neighbours[it->domain].end()){
81 p = *(n->second.begin());
85 fwd->remove(dst, it->domain);
87 fwd->insert(dst, it->domain, p);
100 std::string alg = par(
"alg").stdstringValue();
107 for (
QCubeCItem it = cubes.begin(); it != cubes.end(); ++it) {
108 rt->addDomain(it->getQosId(), getModuleByPath(
"^.^")->par(
"ipcAddress").stringValue(),
DMRnms::LS);
111 for (
QCubeCItem it = cubes.begin(); it != cubes.end(); ++it) {
112 rt->addDomain(it->getQosId(), getModuleByPath(
"^.^")->par(
"ipcAddress").stringValue(),
DMRnms::DV);
const char * MOD_RESALLOC
const char * MOD_POL_ROUTING
const char * MOD_DIFALLOC
const APN & getIpcAddress() const
Getter of IPC Process address which should be unambiguous within DIF.
virtual void onPolicyInit()
const QoSCubeSet & getQoSCubes() const
virtual void routingUpdated()
const char * MOD_RELAYANDMUX
dmUpdateM::iterator dmUpdateMIt
const char * MOD_FLOWALLOC
QoSCubeSet::const_iterator QCubeCItem
const char * MOD_POL_RA_QOSCOMPARER
Class representing QoSCube with all its properties that is primarily used by FA, RMT and RA Specifica...
Register_Class(QoSDomainGenerator)
std::vector< dmNxt > dmUpdateM
const std::string & getName() const
Gets APN string name representation.
virtual void removedFlow(const Address &addr, const QoSCube &qos, RMTPort *port)
const char * MOD_POL_RMT_PDUFWD
Address class holds IPC Process identification.
virtual void insertedFlow(const Address &addr, const QoSCube &qos, RMTPort *port)
NTable::iterator NTableIt