Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
network LargeNetwork
{
parameters:
@signal[flood](type="long");
@statistic[flood](title="number_of_messages"; source="flood"; record= vector,last);
@signal[packet_size](type="long");
@statistic[throughput](title="total_number_of_packets"; source="packet_size"; record=vector,last);
@signal[hop_count](type="long");
@statistic[latency](title="latency"; source="hop_count"; record= vector,last);
@signal[number_replies](type="long");
@statistic[successRate](title="total_number_of_replies"; source="number_replies"; record=vector,last);
@display("bgb=583,467");
// parameters:
int cse_in; //
int ae_in; //
int ae_adn; //
int cse_asn; //
int ae_asn;
int mn_cse;
// int mnt_cse;
int adn;
int mn_ae;
//
int ae_in_count = cse_in * ae_in;
int ae_adn_count = cse_in * ae_adn;
int cse_asn_count = cse_asn * cse_in;
int ae_asn_count = cse_asn_count * ae_asn;
int mn_cse_count = cse_in * mn_cse;
int mn_ae_count = mn_cse_count * mn_ae;
int adn_count = mn_cse_count * adn;
types:
channel Channel extends ned.DelayChannel
{
delay = 100ms;
}
submodules:
CSE_in[cse_in]: CSE;
AE_in[ae_in_count]: AE;
AE_adn[ae_adn_count]: AE;
CSE_asn[cse_asn_count]: CSE;
AE_asn[ae_asn_count]: AE;
AE_ad[adn_count]: AE;
CSE_mn[mn_cse_count]: CSE;
AE_mn[mn_ae_count]: AE;
connections allowunconnected:
// Top level connections
for i=0..(int(cse_in/2)-1), for j=int(cse_in/2)..(cse_in-1) {
CSE_in[i].sibling++ <--> Channel <--> CSE_in[j].sibling++;
}
// AE-IN
for i=0..(cse_in-1), for j = 0..(ae_in-1) {
CSE_in[i].ae++ <--> Channel <--> AE_in[ae_in*i + j].cse++;
}
//AE-ADN to CSE-IN
for i=0..(cse_in-1), for j = 0..(ae_adn-1) {
CSE_in[i].ae++ <--> Channel <--> AE_adn[ae_adn*i + j].cse++;
}
// CSE-ASN to CSE_IN
for i=0..(cse_in-1), for j = 0..(cse_asn-1) {
CSE_in[i].customer++ <--> Channel <--> CSE_asn[cse_asn*i + j].provider++;
}
//AE-ASN to CSE-ASN
for i=0..(cse_asn_count-1), for j = 0..(ae_asn-1) {
CSE_asn[i].ae++ <--> Channel <--> AE_asn[ae_asn*i + j].cse++;
}
//CSE-MN to CSE-IN
for i=0..(cse_in-1), for j = 0..(mn_cse-1) {
CSE_in[i].customer++ <--> Channel <--> CSE_mn[mn_cse*i + j].provider++;
}
//CSE-MN to ADN
for i=0..(mn_cse_count-1), for j = 0..(adn-1) {
CSE_mn[i].ae++ <--> Channel <--> AE_ad[adn*i + j].cse++;
}
//CSE-MN to AE-MN
for i=0..(mn_cse_count-1), for j = 0..(mn_ae-1) {
CSE_mn[i].ae++ <--> Channel <--> AE_mn[mn_ae*i + j].cse++;
}
}