SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
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
Agenda
1) Introduction
2) Mechanism and Policy framework
3) Demonstrations
 Flow Allocator
 EFCP
4) Conclusion
@ictpristine Webinar, 27th February 2017 2
@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
 OMNeT++ 5.1 technical candidate compatibility
 Code refactoring
@ictpristine Webinar, 27th February 2017 4
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
Reporting Issues
 Report on
https://github.com/kvetak/RINA/issues
 Resolution rate will improve…hopefully 
@ictpristine Webinar, 27th February 2017 6
@ictpristine Webinar, 27th February 2017 7
2) Mechanism and Policy
Design notes
A long road from idea/spec towards FSM
Coding conventions
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
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
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
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
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
RINASim Parts
 Core
 folder /src
 static librinasimcore.a
library linked to…
 Policies
 folder /policies
 dynamic librinasim.dll
library
@ictpristine Webinar, 27th February 2017 13
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
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
bool run()
method
@ictpristine Webinar, 27th February 2017 16
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 February 2017 18
@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_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
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
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
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
RINASim
● Thank you!
Good morning / Good night 
@ictpristine Webinar, 27th February 2017 29

Mais conteúdo relacionado

Semelhante a 2nd RINASim Webinar

Migrating from VBA to .NET Desktop Add-Ins
Migrating from VBA to .NET Desktop Add-Ins Migrating from VBA to .NET Desktop Add-Ins
Migrating from VBA to .NET Desktop Add-Ins
lbross
 
Spark Pipelines in the Cloud with Alluxio with Gene Pang
Spark Pipelines in the Cloud with Alluxio with Gene PangSpark Pipelines in the Cloud with Alluxio with Gene Pang
Spark Pipelines in the Cloud with Alluxio with Gene Pang
Spark Summit
 
[TestWarez 2017] Automated Testing for Common Errors and Difference Recogniti...
[TestWarez 2017] Automated Testing for Common Errors and Difference Recogniti...[TestWarez 2017] Automated Testing for Common Errors and Difference Recogniti...
[TestWarez 2017] Automated Testing for Common Errors and Difference Recogniti...
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 

Semelhante a 2nd RINASim Webinar (20)

Apricot2017 Request tracing in distributed environment
Apricot2017 Request tracing in distributed environmentApricot2017 Request tracing in distributed environment
Apricot2017 Request tracing in distributed environment
 
Logging/Request Tracing in Distributed Environment
Logging/Request Tracing in Distributed EnvironmentLogging/Request Tracing in Distributed Environment
Logging/Request Tracing in Distributed Environment
 
Summit 2017 cyber delivery v4 long version
Summit 2017 cyber delivery v4 long versionSummit 2017 cyber delivery v4 long version
Summit 2017 cyber delivery v4 long version
 
React HOCs, Context and Observables
React HOCs, Context and ObservablesReact HOCs, Context and Observables
React HOCs, Context and Observables
 
HNSciCloud update @ the World LHC Computing Grid deployment board
HNSciCloud update @ the World LHC Computing Grid deployment board  HNSciCloud update @ the World LHC Computing Grid deployment board
HNSciCloud update @ the World LHC Computing Grid deployment board
 
Parallel computing diu pi cluster by Prof. Dr. Syed Akhter Hossain & Md Sami
Parallel computing  diu pi cluster by Prof. Dr. Syed Akhter Hossain & Md SamiParallel computing  diu pi cluster by Prof. Dr. Syed Akhter Hossain & Md Sami
Parallel computing diu pi cluster by Prof. Dr. Syed Akhter Hossain & Md Sami
 
CNNIC update
CNNIC updateCNNIC update
CNNIC update
 
Intro to JavaScript
Intro to JavaScriptIntro to JavaScript
Intro to JavaScript
 
Better Hackathon 2020 - Fraunhofer IAIS - Semantic geo-clustering with SANSA
Better Hackathon 2020 - Fraunhofer IAIS - Semantic geo-clustering with SANSABetter Hackathon 2020 - Fraunhofer IAIS - Semantic geo-clustering with SANSA
Better Hackathon 2020 - Fraunhofer IAIS - Semantic geo-clustering with SANSA
 
Whowas: History of resources at APNIC
Whowas: History of resources at APNICWhowas: History of resources at APNIC
Whowas: History of resources at APNIC
 
Data Preservation Service Area
Data Preservation Service AreaData Preservation Service Area
Data Preservation Service Area
 
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)
 
Migrating from VBA to .NET Desktop Add-Ins
Migrating from VBA to .NET Desktop Add-Ins Migrating from VBA to .NET Desktop Add-Ins
Migrating from VBA to .NET Desktop Add-Ins
 
Process Flow Tech
Process Flow TechProcess Flow Tech
Process Flow Tech
 
Combinação de logs, métricas e rastreamentos para observabilidade unificada
Combinação de logs, métricas e rastreamentos para observabilidade unificadaCombinação de logs, métricas e rastreamentos para observabilidade unificada
Combinação de logs, métricas e rastreamentos para observabilidade unificada
 
CPaaS.io Y1 Review Meeting - Use Cases
CPaaS.io Y1 Review Meeting - Use CasesCPaaS.io Y1 Review Meeting - Use Cases
CPaaS.io Y1 Review Meeting - Use Cases
 
Spark Pipelines in the Cloud with Alluxio with Gene Pang
Spark Pipelines in the Cloud with Alluxio with Gene PangSpark Pipelines in the Cloud with Alluxio with Gene Pang
Spark Pipelines in the Cloud with Alluxio with Gene Pang
 
Vue and Firebase Experiences
Vue and Firebase ExperiencesVue and Firebase Experiences
Vue and Firebase Experiences
 
[TestWarez 2017] Automated Testing for Common Errors and Difference Recogniti...
[TestWarez 2017] Automated Testing for Common Errors and Difference Recogniti...[TestWarez 2017] Automated Testing for Common Errors and Difference Recogniti...
[TestWarez 2017] Automated Testing for Common Errors and Difference Recogniti...
 
YouTube Trending Video Dashboard
YouTube Trending Video DashboardYouTube Trending Video Dashboard
YouTube Trending Video Dashboard
 

Último

Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 

Último (20)

Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
 
Call Girls Sangvi Call Me 7737669865 Budget Friendly No Advance BookingCall G...
Call Girls Sangvi Call Me 7737669865 Budget Friendly No Advance BookingCall G...Call Girls Sangvi Call Me 7737669865 Budget Friendly No Advance BookingCall G...
Call Girls Sangvi Call Me 7737669865 Budget Friendly No Advance BookingCall G...
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
 
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
 
Enjoy Night⚡Call Girls Samalka Delhi >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Samalka Delhi >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Samalka Delhi >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Samalka Delhi >༒8448380779 Escort Service
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort ServiceBusty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
 
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
VVIP Pune Call Girls Mohammadwadi WhatSapp Number 8005736733 With Elite Staff...
VVIP Pune Call Girls Mohammadwadi WhatSapp Number 8005736733 With Elite Staff...VVIP Pune Call Girls Mohammadwadi WhatSapp Number 8005736733 With Elite Staff...
VVIP Pune Call Girls Mohammadwadi WhatSapp Number 8005736733 With Elite Staff...
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
 
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
 
Wagholi & High Class Call Girls Pune Neha 8005736733 | 100% Gennuine High Cla...
Wagholi & High Class Call Girls Pune Neha 8005736733 | 100% Gennuine High Cla...Wagholi & High Class Call Girls Pune Neha 8005736733 | 100% Gennuine High Cla...
Wagholi & High Class Call Girls Pune Neha 8005736733 | 100% Gennuine High Cla...
 
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
 
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
 

2nd RINASim Webinar

  • 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. Agenda 1) Introduction 2) Mechanism and Policy framework 3) Demonstrations  Flow Allocator  EFCP 4) Conclusion @ictpristine Webinar, 27th February 2017 2
  • 3. @ictpristine Webinar, 27th February 2017 3 1) Introduction Current state
  • 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. 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. Reporting Issues  Report on https://github.com/kvetak/RINA/issues  Resolution rate will improve…hopefully  @ictpristine Webinar, 27th February 2017 6
  • 7. @ictpristine Webinar, 27th February 2017 7 2) Mechanism and Policy Design notes A long road from idea/spec towards FSM Coding conventions
  • 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. 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. 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. 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. 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. 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. 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. 1) NED Module Interface @ictpristine Webinar, 27th February 2017 15
  • 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. 3) Policy Implementation NED file header file C++ file @ictpristine Webinar, 27th February 2017 17
  • 18. 4) Policy Binding  Default value somewhere in parent NED file  Override in omnetpp.ini @ictpristine Webinar, 27th February 2017 18
  • 19. @ictpristine Webinar, 27th February 2017 19 3) Demonstrations FA EFCP
  • 20. Flow Object @ictpristine Webinar, 27th February 2017 20
  • 22. EFCP: Congestion Demo  @ictpristine Webinar, 27th February 2017 22  /examples/Webinars/EFCPPolicyTest
  • 23. EFCP: Congestion Demo  @ictpristine Webinar, 27th February 2017 23
  • 24. @ictpristine Webinar, 27th February 2017 24 4) Conclusion Final remarks Open call
  • 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. 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. 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. 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. RINASim ● Thank you! Good morning / Good night  @ictpristine Webinar, 27th February 2017 29