a software development kit to exploit rina...
TRANSCRIPT
An SDK to exploit RINA programmability
A Software Development Kit to exploit RINA programmability
Eduard Grasa (presenter), Vincenzo Maffione, Francesco Salvestrini, Leonardo Bergesio, Miquel Tarzan
FP7 PRISTINE ICC 2016, Kuala Lumpur, May 24th 2016
WHATISRINA?1
2
RINA highlights
• Network architecture resulting from a fundamental theory of computer networking
• Networking is InterProcess Communication (IPC) and only IPC. Unifies networking and distributed computing: the network is a distributed application that provides IPC
• There is a single type of layer with programmable functions, that repeats as many times as needed by the network designers
• All layers provide the same service: communication (flows) between two or more application instances, with certain characteristics (delay, loss, in-order-delivery, etc)
• There are only 3 types of systems: hosts, interior and border routers. No middleboxes (firewalls, NATs, etc) are needed
• Deploy it over, under and next to current networking technologies
1
2
3
4
5
6
3
From the “TCP/IP” protocol suite …
• Functional layers organized for modularity, each layer provides a different service to each other – As the RM is applied to the real world, it proofs to be
incomplete. As a consequence, new layers are patched into the reference model as needed (layers 2.5, VLANs, VPNs, virtual network overlays, tunnels, MAC-in-MAC, etc.)
(Theory) (Prac.ce)
4
… to the RINA architecture Single type of layer, consistent API, programmable policies
Host
Borderrouter InteriorRouter
DIF
DIF DIF
Borderrouter
DIFDIF
DIF(DistributedIPCFacility)
Host
AppA
AppB
ConsistentAPIthrough
layers
IPCAPI
DataTransfer DataTransferControl LayerManagement
SDUDelimiNng
DataTransfer
RelayingandMulNplexing
SDUProtecNon
RetransmissionControl
FlowControl
RIBDaemon
RIB
CDAPParser/Generator
CACEP
Enrollment
FlowAllocaNon
ResourceAllocaNon
RouNng
AuthenNcaNon
StateVectorStateVectorStateVector
DataTransferDataTransfer
RetransmissionControl
RetransmissionControl
FlowControlFlowControl
IncreasingNmescale(funcNonsperformedlessoUen)andcomplexity
NamespaceManagement
SecurityManagement
5
Deployment Clean-slate concepts but incremental deployment
Large-scale RINA Experimentation on FIRE+ 6
• IPv6 brings very small improvements to IPv4, but requires a clean slate deployment (not compatible to IPv4)
• RINA can be deployed incrementally where it has the right incentives, and interoperate with current technologies (IP, Ethernet, MPLS, etc.) – Over IP (just like any overlay such as VXLAN, NVGRE, GTP-U, etc.) – Below IP (just like any underlay such as MPLS or MAC-in-MAC) – Next to IP (gateways/protocol translation such as IPv6)
IP Network
RINA Provider
RINA Network
Sockets ApplicationsRINA supported Applications
IP or Ethernet or MPLS, etc
RECURSION,VIRTUALIZATIONANDPROGRAMMABILITY2
7
Recursion instead of virtualization (I)
• RINA recursive layering structure cleans up and generalizes the current protocol stack.
• Example 1: PBB-VPLS (Virtual Private LAN Service) – Uses MAC-in-MAC encapsulation to isolate provider’s core from
customers addresses and VLANs
8
Recursion instead of virtualization (I)
• RINA recursive layering structure cleans up and generalizes the current protocol stack.
• Example 1: PBB-VPLS (Virtual Private LAN Service) – Uses MAC-in-MAC encapsulation to isolate provider’s core from
customers addresses and VLANs
9
PtPDIF PtPDIF PtPDIF PtPDIF
PtPDIFPtPDIFPtPDIFPtPDIF PtPDIF PtPDIF PtPDIF
Recursion instead of virtualization (I)
• RINA recursive layering structure cleans up and generalizes the current protocol stack.
• Example 1: PBB-VPLS (Virtual Private LAN Service) – Uses MAC-in-MAC encapsulation to isolate provider’s core from
customers addresses and VLANs
10
MetroDIF MetroDIF
PtPDIF PtPDIF PtPDIF PtPDIF
PtPDIFPtPDIFPtPDIFPtPDIF PtPDIF PtPDIF PtPDIF
Recursion instead of virtualization (I)
• RINA recursive layering structure cleans up and generalizes the current protocol stack.
• Example 1: PBB-VPLS (Virtual Private LAN Service) – Uses MAC-in-MAC encapsulation to isolate provider’s core from
customers addresses and VLANs
11
MetroDIF MetroDIFCoreDIF
PtPDIF PtPDIF PtPDIF PtPDIF
PtPDIFPtPDIFPtPDIFPtPDIF PtPDIF PtPDIF PtPDIF
Recursion instead of virtualization (I)
• RINA recursive layering structure cleans up and generalizes the current protocol stack.
• Example 1: PBB-VPLS (Virtual Private LAN Service) – Uses MAC-in-MAC encapsulation to isolate provider’s core from
customers addresses and VLANs
12
ProviderVPNServiceDIF
MetroDIF MetroDIFCoreDIF
PtPDIF PtPDIF PtPDIF PtPDIF
PtPDIFPtPDIFPtPDIFPtPDIF PtPDIF PtPDIF PtPDIF
Recursion instead of virtualization (I)
• RINA recursive layering structure cleans up and generalizes the current protocol stack.
• Example 1: PBB-VPLS (Virtual Private LAN Service) – Uses MAC-in-MAC encapsulation to isolate provider’s core from
customers addresses and VLANs
13
GreenCustomerVPNDIF
ProviderVPNServiceDIF
MetroDIF MetroDIFCoreDIF
PtPDIF PtPDIF PtPDIF PtPDIF
PtPDIFPtPDIFPtPDIFPtPDIF PtPDIF PtPDIF PtPDIF
Recursion instead of virtualization (II)
• Example 2: LTE (Long Term Evolution) – Uses PDCP, GTP to transport user’s IP payload, and also relies on
internal IP network.
14
IP(e.g.Internet)
TCPorUDP
PDCP GTP-U
Protocol conversion
GTP-U
RLC
MAC
L1
UDP
IP(LTEtransport)
MAC MAC. . .
L1 . . . L1
UDP
IP(LTEtransport)
MAC MAC. . .
L1 . . . L1UE
eNodeB S-GW P-GW
EPS bearer EPS bearer
LTE-Uu
S1-U S5/S8
MAC
L1
SGi
Recursion instead of virtualization (II)
• Example 2: LTE (Long Term Evolution) – Uses PDCP, GTP to transport user’s IP payload, and also relies on
internal IP network.
15
IP(e.g.Internet)
TCPorUDP
PDCP GTP-U
Protocol conversion
GTP-U
RLC
MAC
L1
UDP
IP(LTEtransport)
MAC MAC. . .
L1 . . . L1
UDP
IP(LTEtransport)
MAC MAC. . .
L1 . . . L1UE
eNodeB S-GW P-GW
EPS bearer EPS bearer
LTE-Uu
S1-U S5/S8
MAC
L1
SGi
PtPDIF PtPDIF PtPDIF PtPDIF
PtPDIF
Recursion instead of virtualization (II)
• Example 2: LTE (Long Term Evolution) – Uses PDCP, GTP to transport user’s IP payload, and also relies on
internal IP network.
16
IP(e.g.Internet)
TCPorUDP
PDCP GTP-U
Protocol conversion
GTP-U
RLC
MAC
L1
UDP
IP(LTEtransport)
MAC MAC. . .
L1 . . . L1
UDP
IP(LTEtransport)
MAC MAC. . .
L1 . . . L1UE
eNodeB S-GW P-GW
EPS bearer EPS bearer
LTE-Uu
S1-U S5/S8
MAC
L1
SGi
MobileOperatorTransportDIF
MobileOperatorTransportDIF
PtPDIF PtPDIF PtPDIF PtPDIF
PtPDIF
Recursion instead of virtualization (II)
• Example 2: LTE (Long Term Evolution) – Uses PDCP, GTP to transport user’s IP payload, and also relies on
internal IP network.
17
IP(e.g.Internet)
TCPorUDP
PDCP GTP-U
Protocol conversion
GTP-U
RLC
MAC
L1
UDP
IP(LTEtransport)
MAC MAC. . .
L1 . . . L1
UDP
IP(LTEtransport)
MAC MAC. . .
L1 . . . L1UE
eNodeB S-GW P-GW
EPS bearer EPS bearer
LTE-Uu
S1-U S5/S8
MAC
L1
SGi
Mul>-accessradioDIF
MobileOperatorTransportDIF
MobileOperatorTransportDIF
PtPDIF PtPDIF PtPDIF PtPDIF
PtPDIF
Recursion instead of virtualization (II)
• Example 2: LTE (Long Term Evolution) – Uses PDCP, GTP to transport user’s IP payload, and also relies on
internal IP network.
18
IP(e.g.Internet)
TCPorUDP
PDCP GTP-U
Protocol conversion
GTP-U
RLC
MAC
L1
UDP
IP(LTEtransport)
MAC MAC. . .
L1 . . . L1
UDP
IP(LTEtransport)
MAC MAC. . .
L1 . . . L1UE
eNodeB S-GW P-GW
EPS bearer EPS bearer
LTE-Uu
S1-U S5/S8
MAC
L1
SGi
MobileAccessNetworkTopLevelDIF
Mul>-accessradioDIF
MobileOperatorTransportDIF
MobileOperatorTransportDIF
PtPDIF PtPDIF PtPDIF PtPDIF
PtPDIF
Recursion instead of virtualization (II)
• Example 2: LTE (Long Term Evolution) – Uses PDCP, GTP to transport user’s IP payload, and also relies on
internal IP network.
19
IP(e.g.Internet)
TCPorUDP
PDCP GTP-U
Protocol conversion
GTP-U
RLC
MAC
L1
UDP
IP(LTEtransport)
MAC MAC. . .
L1 . . . L1
UDP
IP(LTEtransport)
MAC MAC. . .
L1 . . . L1UE
eNodeB S-GW P-GW
EPS bearer EPS bearer
LTE-Uu
S1-U S5/S8
MAC
L1
SGi
PublicInternetDIF
MobileAccessNetworkTopLevelDIF
Mul>-accessradioDIF
MobileOperatorTransportDIF
MobileOperatorTransportDIF
PtPDIF PtPDIF PtPDIF PtPDIF
PtPDIF
Recursion instead of virtualization (III)
• Example 3: Data Center Network with NVO3 – Network Virtualization Over Layer 3, uses overlay virtual networks on
top of the DCN’s fabric layer 3 to support multi-tenancy
• Recursion provides a cleaner, simpler solution than virtualization – Repeat the same building block, with the same interface. 20
ToR ToRFabric Spine Fabric
Server ServerIPv4orIPv6(Fabriclayer)
UDPVM VM
Ethernet Ethernet Ethernet Ethernet
VXLAN802.1Q802.3 802.1Q
IPv4orIPv6(tenantoverlay)
TCPorUDPorSCTP,…(transportlayer)
802.3
Protocolconversion,Localbridging
Recursion instead of virtualization (III)
• Example 3: Data Center Network with NVO3 – Network Virtualization Over Layer 3, uses overlay virtual networks on
top of the DCN’s fabric layer 3 to support multi-tenancy
• Recursion provides a cleaner, simpler solution than virtualization – Repeat the same building block, with the same interface. 21
ToR ToRFabric Spine Fabric
Server ServerIPv4orIPv6(Fabriclayer)
UDPVM VM
Ethernet Ethernet Ethernet Ethernet
VXLAN802.1Q802.3 802.1Q
IPv4orIPv6(tenantoverlay)
TCPorUDPorSCTP,…(transportlayer)
802.3
Protocolconversion,Localbridging PtPDIF PtPDIF PtPDIF PtPDIF
PtPDIF PtPDIFPtPDIFPtPDIF
Recursion instead of virtualization (III)
• Example 3: Data Center Network with NVO3 – Network Virtualization Over Layer 3, uses overlay virtual networks on
top of the DCN’s fabric layer 3 to support multi-tenancy
• Recursion provides a cleaner, simpler solution than virtualization – Repeat the same building block, with the same interface. 22
ToR ToRFabric Spine Fabric
Server ServerIPv4orIPv6(Fabriclayer)
UDPVM VM
Ethernet Ethernet Ethernet Ethernet
VXLAN802.1Q802.3 802.1Q
IPv4orIPv6(tenantoverlay)
TCPorUDPorSCTP,…(transportlayer)
802.3
Protocolconversion,Localbridging PtPDIF PtPDIF PtPDIF PtPDIF
PtPDIF PtPDIFPtPDIFPtPDIF
DCFabricDIF
Recursion instead of virtualization (III)
• Example 3: Data Center Network with NVO3 – Network Virtualization Over Layer 3, uses overlay virtual networks on
top of the DCN’s fabric layer 3 to support multi-tenancy
• Recursion provides a cleaner, simpler solution than virtualization – Repeat the same building block, with the same interface. 23
ToR ToRFabric Spine Fabric
Server ServerIPv4orIPv6(Fabriclayer)
UDPVM VM
Ethernet Ethernet Ethernet Ethernet
VXLAN802.1Q802.3 802.1Q
IPv4orIPv6(tenantoverlay)
TCPorUDPorSCTP,…(transportlayer)
802.3
Protocolconversion,Localbridging PtPDIF PtPDIF PtPDIF PtPDIF
PtPDIF PtPDIFPtPDIFPtPDIF
DCFabricDIF
TenantDIF
Network Programmability
• Centralized control of data forwarding – GSMPv3 (label switches:
ATM, MPLS, optical), OpenFlow (Ethernet, IP, evolving)
• APIs for controlling network services & network devices – ONF SDN architecture,
IEEE P1520 (P1520 distinguished between virtual devices and hardware)
24
ONF‘s SDN architecture
Separation of mechanism from policy
25
IPCAPI
DataTransfer DataTransferControl LayerManagement
SDUDelimiNng
DataTransfer
RelayingandMulNplexing
SDUProtecNon
RetransmissionControl
FlowControl
RIBDaemon
RIB
CDAPParser/Generator
CACEP
Enrollment
FlowAllocaNon
ResourceAllocaNon
RouNng
AuthenNcaNon
StateVectorStateVectorStateVector
DataTransferDataTransfer
RetransmissionControl
RetransmissionControl
FlowControlFlowControl
NamespaceManagement
SecurityManagement
• All layers have the same mechanisms and 2 protocols (EFCP for data transfer, CDAP for layer management), programmable via policies. – All data transfer and layer management functions are programmable!
• Don’t specify/implement protocols, only policies – Re-use common layer structure, re-use policies across layers
• This approach greatly simplifies the network structure, minimizing the management overhead and the cost of supporting new requirements, new physical media or new applications
DESIGNANDIMPLEMENTATIONOFANSDKFORIRATI3
26
IRATI design: decisions and tradeoffs
27
Decision Pros Cons
Linux/OSvsotherOpera.ngsystems
Adop%on,Community,Stability,Documenta%on,Support
Monolithickernel(RINA/IPCModelmaybebe@ersuitedtomicro-kernels)
User/kernelsplitvsuser-spaceonly
IPCasafundamentalOSservice,accessdevicedrivers,hardware
offload,IPoverRINA,performance
Morecompleximplementa%onand
debugging
C/C++vsJava,Python,…
Na%veimplementa%onPortability,Skillstomaster
language(users)
MulNpleuser-spacedaemonsvssingleone
Reliability,Isola%onbetweenIPCPsandIPCManager
Communica%onoverhead,morecompleximpl.
SoU-irqs/taskletsvs.workqueues(kernel)
Minimizelatencyandcontextswitchesofdatagoingthroughthe
“stack”
Morecomplexkernellockinganddebugging
Overview of IRATI and its SDK
NormalIPCProcess(LayerManagement)
Userspace
IRATIRINAimplementaNon
KernelKernelIPCManager
NormalIPCProcess(DataTransfer/Control)
ShimIPCPover802.1Q
IPCPDaemon(LayerMgmt)
IPCManagerDaemon
NormalIPCP(DataTransfer)
SHIMIPCP
App
zoomin
zoomin
zoomin
NormalIPCP(Datatransfer)
ErrorandFlowControlProtocol
RelayingandMul%plexingTask
SDUProtec%on
SDKsupport
RTT
policy
Txctrl
policy
ECN
policy
...
SDKsupport
Forw
ar
policy
Sche
du
policy
MaxQ
policy
Mon
it
policy
SDKsupport
TTL
policy
CRC
policy
Encryp
policy
NormalIPCP(LayerMgmt)
RIB&RIBDaemon
librina
Resourcealloca%on
Flowalloca%on
Enrollment
NamespaceManagement
SecurityManagement
Rou%ng
SDKsupport
Auth.
policy
Acc.ctrl
policy
Coord
policy
SDKsupport
Add
ress
assign
Directory
replica
Add
ress
valid
at
SDKsupportNewflowpolicy
SDKsupport
PFTgen
policy
Pushba
kno
Nfy
Enroll.sequence
SDKsupport
RouNngpolicyIPCManager
librina
ManagementAgent
IPCMlogic
NetworkManager(NMSDAF)
SDKsupportRIB&RIBDaemon
ShimIPCP
ShimIPCP
RINA Plugins Infrastructure (RPI) Kernel RPI (kRPI)
29
PolicySetlifecycle PolicySetclasses• Different policy-set class per component, since each component has different policies.
● “OO”approach
● All policy set classes derivefrombaseclass
● All components derive frombaseclass
● PluginsareLoadableKernelModules(LKM)
● Theypublishasetofpolicysets,becomesavailabletotheRINAstack.
● Factories,namedaXereachpolicyset,provideopera.ons tocreate/delete instancesofpolicysetclasses
RINA Plugins Infrastructure (RPI) User-space RPI uRPI)
30
● SameconceptsaskRPI(factories,lifecycle,policyclasses),differentimpl
● PluginsaresharedobjectsdynamicallyloadedbytheIPCPDaemon,loadedthroughthelibdllibrary
SDK Usage: Experimentation with IRATI Data transfer policies: RMT and EFCP
31
• Programmed data transfer policies to manage congestion in a distributed cloud environment.
• Two touch points: i) ECN-marking policies for the RMT; ii) flow control policies that react to ECN-marked PDUs in EFCP
“TCPTahoe”(EFCP)+RED(RMT)
DECBinaryfeedback(EFCPandRMT)
ONGOINGRINAINITIATIVES4
32
Research, open source, standards • Current research projects
– FP7 PRISTINE (2014-2016) http://ict-pristine-eu – H2020 ARCFIRE (2016-2017) http://ict-arcfire.eu – Norwegian project OCARINA(2016-2021) – BU RINA team http://csr.bu.edu/rina
• Open source implementations – IRATI (Linux OS, C/C++, kernel components, policy framework, RINA
over X) http://github.com/irati/stack – RINASim (RINA simulator, OMNeT++) – ProtoRINA (Java, RINA over UDP, quick prototyping)
• Key RINA standardization activities – Pouzin Society (experimental specs) http://pouzinsociety.org – ISO SC6 WG7 (2 new projects: Future Network – Architectures, Future
Network- Protocols) – ETSI Next Generation Protocols ISG
1
2
3
4
1
2
3
1
2
3
33