|
a/src/DIF/RMT/RelayAndMux.ned |
|
b/src/DIF/RMT/RelayAndMux.ned |
|
... |
|
... |
16 |
//
|
16 |
//
|
17 |
|
17 |
|
18 |
import rina.policies.DIF.RMT.Scheduler.IntRMTSchedulingPolicy;
|
18 |
import rina.policies.DIF.RMT.Scheduler.IntRMTSchedulingPolicy;
|
19 |
import rina.policies.DIF.RMT.Monitor.IntRMTQMonitorPolicy;
|
19 |
import rina.policies.DIF.RMT.Monitor.IntRMTQMonitorPolicy;
|
20 |
import rina.policies.DIF.RMT.MaxQueue.IntRMTMaxQPolicy;
|
20 |
import rina.policies.DIF.RMT.MaxQueue.IntRMTMaxQPolicy;
|
|
|
21 |
import rina.policies.DIF.RMT.PDUForwarding.IntPDUForwarding;
|
21 |
|
22 |
|
22 |
package rina.DIF.RMT;
|
23 |
package rina.DIF.RMT;
|
23 |
|
24 |
|
24 |
module RelayAndMux
|
25 |
module RelayAndMux
|
25 |
{
|
26 |
{
|
26 |
parameters:
|
27 |
parameters:
|
27 |
@display("i=block/classifier;bgb=645,230");
|
28 |
@display("i=block/classifier;bgb=700,230");
|
28 |
|
29 |
|
29 |
string schedPolicyName = default("LongestQFirst");
|
30 |
string schedPolicyName = default("LongestQFirst");
|
30 |
string qMonitorPolicyName = default("SimpleMonitor");
|
31 |
string qMonitorPolicyName = default("SimpleMonitor");
|
31 |
string maxQPolicyName = default("TailDrop");
|
32 |
string maxQPolicyName = default("TailDrop");
|
|
|
33 |
string ForwardingPolicyName = default("SimpleTable");
|
32 |
|
34 |
|
33 |
int defaultMaxQLength = default(20);
|
35 |
int defaultMaxQLength = default(20);
|
34 |
int defaultThreshQLength = default(10);
|
36 |
int defaultThreshQLength = default(10);
|
35 |
|
37 |
|
36 |
string queueColorBusy = default("#80FF80");
|
38 |
// PDU tracefile generation.
|
37 |
string queueColorWarn = default("#FF8000");
|
39 |
// format: event time node ipcp pduType pduSize flags flow DIF srcAddr dstAddr seq id
|
38 |
string queueColorFull = default("#800000");
|
40 |
//
|
|
|
41 |
// event: r (receive) / s (send) / + (enqueue) / - (dequeue) / d (drop)
|
|
|
42 |
// time: event timestamp in seconds
|
|
|
43 |
// node: node name
|
|
|
44 |
// ipcp: IPC process name
|
|
|
45 |
// pduType: PDU type
|
|
|
46 |
// pduSize: PDU size in bits
|
|
|
47 |
// flags: PDU flags
|
|
|
48 |
// flow: flow-id (srcCEP + dstCEP + qosID)
|
|
|
49 |
// DIF: DIF name
|
|
|
50 |
// srcAddr: source address
|
|
|
51 |
// dstAddr: destination address
|
|
|
52 |
// seq: PDU sequence number
|
|
|
53 |
// id: packet ID (unambiguous in scope of whole simulation)
|
|
|
54 |
bool pduTracing = default(false);
|
39 |
|
55 |
|
40 |
gates:
|
56 |
gates:
|
41 |
inout ribdIo;
|
57 |
inout ribdIo;
|
42 |
|
58 |
|
43 |
submodules:
|
59 |
submodules:
|
44 |
rmt: RMT {
|
60 |
rmt: RMT {
|
45 |
@display("p=55,55");
|
61 |
@display("p=55,55");
|
46 |
}
|
62 |
}
|
47 |
schedulingPolicy: <schedPolicyName> like IntRMTSchedulingPolicy {
|
63 |
schedulingPolicy: <schedPolicyName> like IntRMTSchedulingPolicy {
|
48 |
@display("p=200,55;is=s");
|
64 |
@display("p=175,55;is=s");
|
49 |
}
|
65 |
}
|
50 |
queueMonitorPolicy: <qMonitorPolicyName> like IntRMTQMonitorPolicy {
|
66 |
queueMonitorPolicy: <qMonitorPolicyName> like IntRMTQMonitorPolicy {
|
51 |
@display("p=310,55;is=s");
|
67 |
@display("p=295,55;is=s");
|
52 |
}
|
68 |
}
|
53 |
maxQueuePolicy: <maxQPolicyName> like IntRMTMaxQPolicy {
|
69 |
maxQueuePolicy: <maxQPolicyName> like IntRMTMaxQPolicy {
|
54 |
@display("p=420,55;is=s");
|
70 |
@display("p=415,55;is=s");
|
55 |
}
|
71 |
}
|
56 |
rmtModuleAllocator: RMTModuleAllocator {
|
72 |
pduForwardingPolicy: <ForwardingPolicyName> like IntPDUForwarding {
|
57 |
@display("p=575,55");
|
73 |
@display("p=535,55;is=s");
|
|
|
74 |
}
|
|
|
75 |
allocator: RMTModuleAllocator {
|
|
|
76 |
@display("p=655,55;i=block/cogwheel");
|
58 |
}
|
77 |
}
|
59 |
connections allowunconnected:
|
78 |
connections allowunconnected:
|
60 |
ribdIo <--> rmt.ribdIo;
|
79 |
ribdIo <--> rmt.ribdIo;
|
61 |
}
|
80 |
}
|