|
a/README.md |
|
b/README.md |
1 |
RINA Simulator
|
1 |
RINA Simulator
|
2 |
====
|
2 |
====
|
3 |
|
3 |
|
4 |
###Version progress
|
4 |
###Version progress
|
5 |
|
5 |
|
|
|
6 |
* May/June 2015 - Enrollment, (N-1)-data/management separation, MIT relicensing,
|
|
|
7 |
EFCPv4+ updates, separation of QoSCubes and QoS requirements,
|
|
|
8 |
change of QoSCube-id datatype, source code split between
|
|
|
9 |
policies and src, PDU headers for (N)-management frames,
|
|
|
10 |
multiple AEs within single AP communication
|
6 |
* April 2015 - Routing policies prototypes, traceback packet file, CDAP redesign
|
11 |
* April 2015 - Routing policies prototypes, traceback packet file, CDAP redesign
|
7 |
* March 2015 - Slowdown/Pushupnotif congestion control, basic statistics,
|
12 |
* March 2015 - Slowdown/Pushupnotif congestion control, basic statistics,
|
8 |
flow lifecycle, AEStream/ExtendedPing
|
13 |
flow lifecycle, AEStream/ExtendedPing
|
9 |
* February 2015 - After-Ghent release with FA policies
|
14 |
* February 2015 - After-Ghent release with FA policies
|
10 |
* January 2015 - Ghent meeting with EFCP, RMT, RA, PDUFTG and policies
|
15 |
* January 2015 - Ghent meeting with EFCP, RMT, RA, PDUFTG and policies
|
11 |
* November 2014 - Brussels RV1 with AllNodes examples
|
16 |
* November 2014 - Brussels RV1 with AllNodes examples
|
12 |
* October 2014 - Madrid F2F meeting with working SimpleRelay and TwoCSs scenarios
|
17 |
* October 2014 - Madrid F2F meeting with working SimpleRelay and TwoCSs scenarios
|
13 |
|
18 |
|
|
|
19 |
###Links
|
|
|
20 |
* [OpenSourceProject Git with archived RINASim releases](https://opensourceprojects.eu/p/pristine/rinasimulator/rinasim/ci/b323f721944033c9f31924c02e2b67ba9c92c712/tree/)
|
|
|
21 |
* [Out-of-the-box Virtual Machine with RINASim](http://nes.fit.vutbr.cz/ivesely/vm/RINASim.zip)
|
|
|
22 |
* [PRISTINE webpage](http://ict-pristine.eu/)
|
|
|
23 |
* [Developer's mailing-list](https://www.fit.vutbr.cz/mailman/listinfo/rinasim)
|
|
|
24 |
|
14 |
###Directory structure
|
25 |
###Directory structure
|
15 |
|
26 |
|
16 |
/examples ... scenarios testing RINA stack
|
27 |
/examples ... scenarios testing RINA stack
|
17 |
/AllNodes ... communication across all types of devices
|
28 |
/Basics ... simple testing scenarios
|
18 |
/BigRandNet ... big network for testing distance-vector routing
|
29 |
/Congestion ... congestion control
|
19 |
/ExtendedPingTwoCs ... CACE module testing scenario distance-vector routing
|
30 |
/Demos ... use-cases for tutorials and demo sessions
|
20 |
/FatTreeTopology ... DC-like environment for testing distance-vector routing
|
31 |
/Routing ... routing in topologies
|
21 |
/SimpleRelay ... two CSs exchanging data through an interior router
|
32 |
|
22 |
/SimpleRelayCongestion ... same scenario as above demonstrating congestion control
|
|
|
23 |
/SingleCS ... single computing system with two applications
|
|
|
24 |
/SmallNetwork ... communication across a small network
|
|
|
25 |
/SmallNetworkRouting ... same as above for testing distance-vector routing
|
|
|
26 |
/SmallRandNetwork ... small randomly generated network
|
|
|
27 |
/TwoCSs ... two directly connected CSs
|
|
|
28 |
/TwoCSsSimple ... two directly connected CSs with only one IPC
|
|
|
29 |
/TwoCSsWithDelay ... delayed channel testing scenario
|
|
|
30 |
/src ... source codes' folder
|
33 |
/src ... source codes' folder
|
31 |
/Common ... shared basic classes
|
34 |
/Common ... shared basic classes
|
32 |
/CS ... computing system simulation nodes
|
35 |
/CS ... computing system simulation nodes
|
33 |
/DAF ... DAF components
|
36 |
/DAF ... DAF components
|
34 |
/DIF ... DIF components
|
37 |
/DIF ... DIF component
|
|
|
38 |
|
35 |
/policies ... all programable RINA policies
|
39 |
/policies ... all programable RINA policies
|
36 |
/DAF ... policies related to DAF components
|
|
|
37 |
/DIF ... policies related to DIF components
|
|
|
38 |
|
40 |
|
39 |
|
41 |
###Policies
|
|
|
42 |
/DAF ... DAF policies
|
|
|
43 |
/DIF ... DIF policies
|
|
|
44 |
/FA ... policies related to FA modules
|
|
|
45 |
/AllocateRetry ... what happen when M_CREATE is resend by Flow Allocator
|
|
|
46 |
/LimitedRetries ... when retransmit treshold is met, allocation is
|
|
|
47 |
discontinued
|
|
|
48 |
/MultilevelQoS ...
|
|
|
49 |
/NewFlowRequest ... when new flow is being allocated, how are its
|
|
|
50 |
requirements mapped to RA QoSCubes
|
|
|
51 |
/ScoreComparer ... QoSCube with best score wins
|
|
|
52 |
/MinComparer ... QoSCube with minimal feasibility wins
|
|
|
53 |
/RA ... policies related to RA modules
|
|
|
54 |
/AddressComparator ... policy used for determining whether a PDU address
|
|
|
55 |
matches the IPCP's address
|
|
|
56 |
/ExactMatch ... exact matching
|
|
|
57 |
/PrefixMatch ... matching based on address prefix
|
|
|
58 |
/PDUFG ... PDU Forwarding Generator providing data used by the
|
|
|
59 |
PDU Forwarding policy
|
|
|
60 |
/BiDomainGenerator ...
|
|
|
61 |
/LatGenerator ...
|
|
|
62 |
/MSimpleGenerator ...
|
|
|
63 |
/QoSDomainGenerator ...
|
|
|
64 |
/SimpleGenerator ...
|
|
|
65 |
/SingleDomainGenerator ...
|
|
|
66 |
/StaticGenerator ... load forwarding information from XML configuration
|
|
|
67 |
/QueueAlloc ... (N-1)-port queue allocation strategy
|
|
|
68 |
/QueuePerNCU
|
|
|
69 |
/QueuePerNFlow ... one queue per (N)-flow
|
|
|
70 |
/QueuePerNQoS ... one queue per (N)-QoS cube
|
|
|
71 |
/SingleQueue ... one queue for all
|
|
|
72 |
/QueueIDGen ... companion policy to QueueAlloc; returns queue ID
|
|
|
73 |
for given PDU or Flow object
|
|
|
74 |
/IDPerNCU ... used with QueueAlloc::QueuePerNCU
|
|
|
75 |
/IDPerNFlow ... used with QueueAlloc::QueuePerNFlow
|
|
|
76 |
/IDPerNQoS ... used with QueueAlloc::QueuePerNQoS
|
|
|
77 |
/SingleID ... used with QueueAlloc::SingleQueue
|
|
|
78 |
/RMT ... policies related to RMT modules
|
|
|
79 |
/MaxQueue ... policy invoked when a queue size grows over its
|
|
|
80 |
threshold
|
|
|
81 |
/DumbMaxQ ...
|
|
|
82 |
/ECNMarker ... if queue size >= threshold, apply ECN marking on
|
|
|
83 |
new PDUs; if size >= max, drop
|
|
|
84 |
/PortMaxQ ...
|
|
|
85 |
/ReadRateReducer ... if queue size >= allowed maximum, stop receiving data
|
|
|
86 |
from input ports
|
|
|
87 |
/REDDropper ... used with Monitor::REDMonitor; Random Early Detection
|
|
|
88 |
implementation
|
|
|
89 |
/TailDrop ... if queue size >= allowed maximum, drop new PDUs
|
|
|
90 |
/UpstreamNotifier ... if queue size >= allowed maximum, send a notification
|
|
|
91 |
to the PDU sender
|
|
|
92 |
/Monitor ... state-keeping policy invoked on various queue events
|
|
|
93 |
/BEMonitor ...
|
|
|
94 |
/DLMonitor ...
|
|
|
95 |
/eDLMonitor ...
|
|
|
96 |
/REDMonitor ... used with MaxQueue::REDDropper; Random Early Detection
|
|
|
97 |
implementation
|
|
|
98 |
/DummyMonitor ... noop
|
|
|
99 |
/SmartMonitor
|
|
|
100 |
/PDUForwarding ... policy used to decide where to forward a PDU
|
|
|
101 |
/DomainTable
|
|
|
102 |
/MiniTable ... a table with {dstAddr -> port} mappings
|
|
|
103 |
/MultiMiniTable
|
|
|
104 |
/QoSTable
|
|
|
105 |
/SimpleTable ... a table with {(dstAddr, QoS) -> port} mappings
|
|
|
106 |
/Scheduler ... policy deciding which (N-1)-port queue should be
|
|
|
107 |
processed next
|
|
|
108 |
/DumbSch
|
|
|
109 |
/LongestQFirst ... pick the queue which contains the most PDUs
|
|
|
110 |
/Routing ... routing policies
|
|
|
111 |
/DomainRouting ...
|
|
|
112 |
/DV ...
|
|
|
113 |
/LS ...
|
|
|
114 |
/DummyRouting ... noop
|
|
|
115 |
/SimpleRouting
|
|
|
116 |
/SimpleDV ... a simple distance vector-like protocol
|
|
|
117 |
/SimpleLS ... a simple link-state-like protocol
|
|
|
118 |
|
|
|
119 |
|
|
|
120 |
|
|
|
121 |
|