37 neighbours[dst].insert(port);
38 if(neighbours[dst].size() == 1){
39 rt->insertFlow(addr, dst,
"", 1);
45 neighbours[dst].erase(port);
46 if(neighbours[dst].size() <= 0){
47 rt->removeFlow(addr, dst,
"");
48 neighbours.erase(dst);
57 for(
entries2NextIt it = changes.begin(); it!= changes.end(); it++){
59 std::string nextHop =
"";
60 if(!it->second.nh.empty()){
61 nextHop = *(it->second.nh.begin());
65 NTableIt n = neighbours.find(nextHop);
66 if(n != neighbours.end()){
67 if(!n->second.empty()) {
68 p = *(n->second.begin());
73 fwd->remove(dst.second);
75 fwd->insert(dst.second, p);
virtual void insertedFlow(const Address &addr, const QoSCube &qos, RMTPort *port)
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 routingUpdated()
virtual void removedFlow(const Address &addr, const QoSCube &qos, RMTPort *port)
std::map< qosPaddr, std::string > entries2Next
const char * MOD_RELAYANDMUX
NTable::iterator NTableIt
Class representing QoSCube with all its properties that is primarily used by FA, RMT and RA Specifica...
Register_Class(SimpleGenerator)
entries2Next::iterator entries2NextIt
virtual void onPolicyInit()
std::pair< std::string, std::string > qosPaddr
const std::string & getName() const
Gets APN string name representation.
const char * MOD_POL_RMT_PDUFWD
Address class holds IPC Process identification.