Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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
Upcoming SlideShare
Loading in …5
×

2nd RINASim Webinar

3,671 views

Published on

Webinar introducing RINASim mechanism and policies on February 2017 release.

Published in: Internet
  • Login to see the comments

  • Be the first to like this

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

×