Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
RINASim
● MECHANISMS AND POLICIES
● Vladimír Veselý and Marcel Marek
Brno University of Technology, Czech Republic
veselyv...
Agenda
1) Introduction
2) Mechanism and Policy framework
3) Demonstrations
 Flow Allocator
 EFCP
4) Conclusion
@ictprist...
@ictpristine Webinar, 27th February 2017 3
1) Introduction
Current state
Status Quo
 February 2017 release
 GitHub repository
https://github.com/kvetak/RINA/releases/tag/February2017
 CDAP API...
Virtual Machine
 Out-of-the box virtual machine
 OMNeT++ 5.0 with the newest RINASim
 Download from
http://nes.fit.vutb...
Reporting Issues
 Report on
https://github.com/kvetak/RINA/issues
 Resolution rate will improve…hopefully 
@ictpristine...
@ictpristine Webinar, 27th February 2017 7
2) Mechanism and Policy
Design notes
A long road from idea/spec towards FSM
Cod...
Difference
 Mechanism
 Fixed
 Cannot be changed
 E.g., error checking on
data-link layer
 Policy
 Flexible
 Can be ...
Explicit vs. Implicit Policies
 RINA specs cover explicit policies
 data processing (e.g., how is PDU handled by
EFCP an...
Defining Policy
 Policy is (a set of) algorithm(s)
 Properties
 Deterministic
 Closed control (beaware of recursion)
...
FA
@ictpristine Webinar, 27th February 2017 11
Allocate Request
M_CREATE(flow)
Deallocate Request
NewFlowRequestPolicy
Nul...
FAI
@ictpristine Webinar, 27th February 2017 12
Allocate Request
Degenerate Data Transfer
M_CREATE_R(flow)
AllocateRetryPo...
RINASim Parts
 Core
 folder /src
 static librinasimcore.a
library linked to…
 Policies
 folder /policies
 dynamic li...
Usual Design
1) NED module interface
2) Base class
 optionally with implicit policy action
3) Policy implementation
 inh...
1) NED Module Interface
@ictpristine Webinar, 27th February 2017 15
2) Base class
 Optionally may
contain default
policy action
 Not an C++
abstract class in
that case
 Every policy has
b...
3) Policy Implementation
NED file
header file C++ file
@ictpristine Webinar, 27th February 2017 17
4) Policy Binding
 Default value somewhere in parent NED file
 Override in omnetpp.ini
@ictpristine Webinar, 27th Februa...
@ictpristine Webinar, 27th February 2017 19
3) Demonstrations
FA
EFCP
Flow Object
@ictpristine Webinar, 27th February 2017 20
FA: Demo
 /examples/Webinars/FAPolicyTest
@ictpristine Webinar, 27th February 2017 21
EFCP: Congestion Demo 
@ictpristine Webinar, 27th February 2017 22
 /examples/Webinars/EFCPPolicyTest
EFCP: Congestion Demo 
@ictpristine Webinar, 27th February 2017 23
@ictpristine Webinar, 27th February 2017 24
4) Conclusion
Final remarks
Open call
Need Help?
 Check the official webpage
 Visit https://rinasim.omnetpp.org
 Skype group chat
 skype:?chat&blob=-bdq6qH_...
Team
 RINASim is a joint work of following people
 Vladimír Veselý (@kvetak)
 Marcel Marek (@screw)
 Kamil Jeřábek (@k...
Problems for Today and Tomorrow
1) Add more source code
comments
2) Improve Doxygen
documentation
3) Create real data-link...
Topics for Other Webinars
 What did we not covered?
 Results gathering and analysis
 Are you interested about work of o...
RINASim
● Thank you!
Good morning / Good night 
@ictpristine Webinar, 27th February 2017 29
Nächste SlideShare
Wird geladen in …5
×

2nd RINASim Webinar

Webinar introducing RINASim mechanism and policies on February 2017 release.

  • Loggen Sie sich ein, um Kommentare anzuzeigen.

  • Gehören Sie zu den Ersten, denen das gefällt!

2nd RINASim Webinar

  1. 1. RINASim ● MECHANISMS AND POLICIES ● Vladimír Veselý and Marcel Marek Brno University of Technology, Czech Republic veselyv@fit.vutbr.cz University of Oslo, Norway marcelma@ifi.uio.no @ictpristine Webinar, 27th February 2017 1
  2. 2. Agenda 1) Introduction 2) Mechanism and Policy framework 3) Demonstrations  Flow Allocator  EFCP 4) Conclusion @ictpristine Webinar, 27th February 2017 2
  3. 3. @ictpristine Webinar, 27th February 2017 3 1) Introduction Current state
  4. 4. Status Quo  February 2017 release  GitHub repository https://github.com/kvetak/RINA/releases/tag/February2017  CDAP API  OMNeT++ 5.1 technical candidate compatibility  Code refactoring @ictpristine Webinar, 27th February 2017 4
  5. 5. Virtual Machine  Out-of-the box virtual machine  OMNeT++ 5.0 with the newest RINASim  Download from http://nes.fit.vutbr.cz/ivesely/vm/RINASim.zip  OVA appliance of MintLinux created on VMWare Workstation  …should work also on VirtualBox and Qemu  Custom highlighter of code syntax @ictpristine Webinar, 27th February 2017 5
  6. 6. Reporting Issues  Report on https://github.com/kvetak/RINA/issues  Resolution rate will improve…hopefully  @ictpristine Webinar, 27th February 2017 6
  7. 7. @ictpristine Webinar, 27th February 2017 7 2) Mechanism and Policy Design notes A long road from idea/spec towards FSM Coding conventions
  8. 8. Difference  Mechanism  Fixed  Cannot be changed  E.g., error checking on data-link layer  Policy  Flexible  Can be negotiated  E.g., CRC-32, CRC- 64, Vitrebi @ictpristine Webinar, 27th February 2017 8
  9. 9. Explicit vs. Implicit Policies  RINA specs cover explicit policies  data processing (e.g., how is PDU handled by EFCP and RMT)  control processing (e.g., flow allocation and deallocation procedures)  Implicit policies  do not have strict placeholder  variable inputs and outputs  E.g., routing or secured enrollment @ictpristine Webinar, 27th February 2017 9
  10. 10. Defining Policy  Policy is (a set of) algorithm(s)  Properties  Deterministic  Closed control (beaware of recursion)  Finite (avoid state explosion)  Known inputs and outputs  Description  Formal: finite-state machines  Implementation: C++ class @ictpristine Webinar, 27th February 2017 10
  11. 11. FA @ictpristine Webinar, 27th February 2017 11 Allocate Request M_CREATE(flow) Deallocate Request NewFlowRequestPolicy Null Is malformed? Create FAI true / send negative allocate response false FAI successfully created / pass allocate request to FAI Map QoS to RA s Qos-cubes Has resources to honor QoS? Has access rights? true true policy succeeded / return positive result policy failed / return negative result false false Is dst AP local? Create FAI hopCount == 0 FAI successfully created / pass allocate request to FAI false / hopCount-- true false / forward M_CREATE(flow) true / send negative M_CREATE_R(flow) / pass deallocate request to FAI policy invoked
  12. 12. FAI @ictpristine Webinar, 27th February 2017 12 Allocate Request Degenerate Data Transfer M_CREATE_R(flow) AllocateRetryPolicy AllocateNotifyPolicy Instantiated Is dst AP local? Is policy acceptable? Create EFCPI Create bindings false / invoke NewFlowRequestPolicy true / pass allocate request to dst AP false / invoke AllocateNotifyPolicy true bindings successfully created / send M_CREATE(flow) && invoke AllocateNotifyPolicy EFCPI successfully created Is response positive? Establish IPC between local APs Create bindings false / invoke AllocateNotifyPolicy bindings successfully created / invoke AllocateNotifyPolicy establishment successful Is response positive? Create bindings true false / invoke AllocateRetryPolicy bindings successfully created / invoke AllocateNotifyPolicy Flow Allocation Failed Flow Allocated receive allocate response from dst AP Is policy acceptable? false / invoke AllocateNotifyPolicy true true / invoke NewFlowRequestPolicy receive M_CREATE_R(flow) numOfCreReq <= MaxCreReqRetries false / invoke AllocateNotifyPolicy true / send M_CREATE(flow) policy invoked / numOfCreReq++ timer expired / invoke AllocateRetryPolicy policy evaluation requested receive allocate request waitingforM_CREATE_R(flow) waitingforM_CREATE_R(flow) allocation succeeded allocation failed false true / send positive allocate response policy invoked Is positive allocate response criteria met? false / send negative allocate response allocationfailed allocationsucceeded policy evaluation requested policy evaluation requested policy evaluation requested policy evaluation requested M_CREATE(flow) Allocation Response Instantiated Is policy acceptable? receive M_CREATE(flow) / invoke NewFlowRequestPolicy false / send negative M_CREATE_R(flow) Is response positive? Create EFCPI Create bindings bindings successfully created / send positive M_CREATE_R(flow) EFCPI successfully created Flow Allocated receive allocate response true true / pass allocation request false / send negative M_CREATE_R(flow) allocationsucceeded waitingforallocateresponse allocationfailed Deallocate Submit M_DELETE(flow) M_DELETE_R(flow) SeqRollOverPolicy receive deallocate submit Delete bindings bindings successfully deleted / send M_DELETE(flow) / send deallocate deliver Delete bindings bindings successfully deleted / send M_DELETE_R(flow) receive M_DELETE_R(flow) || timer expired Deinstantiated Flow Deallocated after 2×MPL / deinstantiate FAI Create EFCPI bindings successfully changed sequence numbers threshold reached Change bindings EFCPI successfully created Flow Allocated
  13. 13. RINASim Parts  Core  folder /src  static librinasimcore.a library linked to…  Policies  folder /policies  dynamic librinasim.dll library @ictpristine Webinar, 27th February 2017 13
  14. 14. Usual Design 1) NED module interface 2) Base class  optionally with implicit policy action 3) Policy implementation  inheriting all necessary things from base 4) Policy binding  with scenario setup in omnetpp.ini file @ictpristine Webinar, 27th February 2017 14
  15. 15. 1) NED Module Interface @ictpristine Webinar, 27th February 2017 15
  16. 16. 2) Base class  Optionally may contain default policy action  Not an C++ abstract class in that case  Every policy has bool run() method @ictpristine Webinar, 27th February 2017 16
  17. 17. 3) Policy Implementation NED file header file C++ file @ictpristine Webinar, 27th February 2017 17
  18. 18. 4) Policy Binding  Default value somewhere in parent NED file  Override in omnetpp.ini @ictpristine Webinar, 27th February 2017 18
  19. 19. @ictpristine Webinar, 27th February 2017 19 3) Demonstrations FA EFCP
  20. 20. Flow Object @ictpristine Webinar, 27th February 2017 20
  21. 21. FA: Demo  /examples/Webinars/FAPolicyTest @ictpristine Webinar, 27th February 2017 21
  22. 22. EFCP: Congestion Demo  @ictpristine Webinar, 27th February 2017 22  /examples/Webinars/EFCPPolicyTest
  23. 23. EFCP: Congestion Demo  @ictpristine Webinar, 27th February 2017 23
  24. 24. @ictpristine Webinar, 27th February 2017 24 4) Conclusion Final remarks Open call
  25. 25. Need Help?  Check the official webpage  Visit https://rinasim.omnetpp.org  Skype group chat  skype:?chat&blob=-bdq6qH_uDXIlbRk_4_XwqZyplfXPl4IzCq4P- S0BrsttjgPR8CNJKV9-Yyn1TYopaYZD2g3bIC_Yv0C  https://join.skype.com/B9Tt5aTPd0nC  Sign to mailing-list rinasim@fit.vutbr.cz  Use http://www.fit.vutbr.cz/mailman/listinfo/rinasim @ictpristine Webinar, 27th February 2017 25
  26. 26. Team  RINASim is a joint work of following people  Vladimír Veselý (@kvetak)  Marcel Marek (@screw)  Kamil Jeřábek (@kjerabek)  Tomáš Hykel (@thykel)  Sergio Leon Gaixas (@gaixas1)  Peyman Teymoori (@peyman-t)  Ehsan Elahi (@ehsanzahoor)  Kewin Rausch (@kewinrausch)  Fatma Hrizi (@fatmahrizi)  Kleber Leal (@kaleal)  Green marked individual are usually willing to deal with your RINASim troubles @ictpristine Webinar, 27th February 2017 26
  27. 27. Problems for Today and Tomorrow 1) Add more source code comments 2) Improve Doxygen documentation 3) Create real data-link layer simulation modules 4) Extend RIB functionality @ictpristine Webinar, 27th February 2017 27
  28. 28. Topics for Other Webinars  What did we not covered?  Results gathering and analysis  Are you interested about work of others?  Suggest your topic… @ictpristine Webinar, 27th February 2017 28
  29. 29. RINASim ● Thank you! Good morning / Good night  @ictpristine Webinar, 27th February 2017 29

×