12 || (dst.
type == 2 && dst.
a !=
Im.
b)) {
15 <<
"Invalid neighbour "<< dst
25 if(
start ==
nullptr) {
38 && (dst.
type != 2 || dst.
a !=
Im.
b)) {
39 cerr <<
"Invalid neighbour" << endl;
55 for(
int i = 0; i <
torXpod; i++) {
71 for(
auto & e : *table) {
72 const DCAddr & dst = e.first;
74 if(dst ==
Im) {
continue; }
78 if(tn.
d > 1 || (
int)tn.
L.size() != 1) {
81 const linkId & li = **(tn.
L.begin());
89 }
else for(
auto & k : tn.
L) {
90 if(k->dst.type != 2) {
99 if(tn.
d > 2 || (
int)tn.
L.size() !=
torXpod) {
101 }
else for(
auto & k : tn.
L) {
102 if(k->src.type != 0) {
107 }
else if(dst.
b ==
Im.
b) {
110 }
else for(
auto & k : tn.
L) {
111 if(k->dst.type != 2) {
122 if(tn.
d > 1 || (
int)tn.
L.size() != 1) {
125 const linkId & li = **(tn.
L.begin());
131 if(tn.
d > 3 || (
int)tn.
L.size() !=
torXpod) {
133 }
else for(
auto & k : tn.
L) {
134 if(k->src.type != 0) {
142 if((dst.
b ==
Im.
b)) {
146 }
else if(tn.
d > 4 || (
int)tn.
L.size() !=
torXpod) {
Register_Class(SimpleDCGenerator)
void activeNeigh(const DCAddr &dst)
map< linkId, linkInfo > linksKo
map< linkId, linkInfo > myLinks
void insert(set< const linkId * > Ls)
set< DCAddr > getNotOptimalDst(map< DCAddr, tableNode > *table)
void inactiveNeigh(const DCAddr &dst)