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::vector< RMTPort * > ps;
61 for(std::string nextHop : it->second.nh){
64 NTableIt n = neighbours.find(nextHop);
65 if(n != neighbours.end()){
66 if(!n->second.empty()) {
67 p = *(n->second.begin());
75 fwd->addReplace(dst.second, ps);
Register_Class(MSimpleGenerator)
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 insertedFlow(const Address &addr, const QoSCube &qos, RMTPort *port)
std::map< qosPaddr, std::string > entries2Next
const char * MOD_RELAYANDMUX
virtual void onPolicyInit()
virtual void routingUpdated()
NTable::iterator NTableIt
Class representing QoSCube with all its properties that is primarily used by FA, RMT and RA Specifica...
entries2Next::iterator entries2NextIt
std::pair< std::string, std::string > qosPaddr
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.