SlideShare a Scribd company logo
1 of 32
Download to read offline
A RINA light implementation
Vincenzo Maffione
20/02/2017
Introduction (1)
● A Free and Open Source light implementation of RINA for Linux
● Implementation splitted between user-space and kernel-space
● KISS approach → codebase is clean and essential
● Focus:
○ basic functionality - do few things but to them well
○ stability and performance - support deployments with hundreds of nodes
○ minimality - avoid over-engineering
● Main goal: a baseline implementation for future RINA products
● Code and documentation available at https://github.com/vmaffione/rlite
Introduction (2)
● ~ 27 Klocs (not including blanks)
○ kernel-space: ~ 9 Klocs
○ user-space: ~ 18 Klocs
■ including tools and example applications
● Written mostly in C (some parts are C++ for convenience)
○ C: 14 Klocs
○ C++: 7 Klocs
● Network applications can be written in C
● Python bindings available to write network applications in Python
Introduction (3)
● kernel-space is implemented as a set of out-of-tree kernel modules, which run
on the unmodified Linux kernel.
○ Linux Kbuild system is used to build the modules against the running kernel
○ Build time (no parallel make): 3-15 seconds
● user-space is implemented as a set of shared libraries and programs
○ CMake is used to configure and build libraries and executables
○ Build time (no parallel make): 15-60 seconds
Basic features (1)
● Applications:
○ Flow allocation and deallocation, with QoS specification
○ Application registration and unregistration
○ Data transfer
● Stack administration:
○ Creation, deletion and configuration of IPCPs
○ Registration and enrollment among IPCPs
○ Monitoring and inspection
■ inspection of IPCPs in the system
■ inspection of RIBs
■ per-flow statistics
Basic features (2)
● QoS (supported through DTCP):
○ Flow control
○ Retransmission control
○ Maximum allowable gap
○ Simple token-bucket rate-limiting
● Decent performance (detailed performance plots to come)
○ About 9.5 Gbps on a 10 Gbit link without flow control and retransmission
○ About 6 Gbps on a 10 Gbit link with flow control
○ A lot of room for optimizations
● Stability indicators
○ Done 10 days long VM-based experiments with up 35 nodes, two levels of normal DIFs and 50 flows
allocations per second
○ Done experiments with up to 10 levels of DIFs
Architecture overview (1)
rlite-ctl uipcps daemon application
librlite-cdaplibrlite-conf
librlite
/dev/rlite /dev/rlite-io
rlite
shim-eth
shim-loopback
shim-tcp4
normal
user-space
kernel-space
shim-hv
shim-udp4
Architecture overview (2)
● kernel-space
○ Supports control operations
○ Implements datapath
○ Keeps state
● user-space
○ Libraries to abstract interaction with kernel-space functionalities
○ A daemon to implement management part of (many) IPCPs
○ An iproute2-like command-line tool to administer the stack
● Interactions between kernel-space and user-space only happen through character devices →
therefore through file descriptors
Kernel-space architecture (1)
● Supported functionalities:
○ IPCP creation, deletion and configuration (kernel keeps a per-IPCP data structure)
○ Flow (de)allocation (kernel keeps a per-flow data structure)
○ Application (un)registration (kernel keeps a data structure for each registered application)
○ RMT, DTP and DTCP components of the normal IPCP
○ Shim IPCP processes (e.g. interaction with network device drivers)
● State is maintained in kernel-space:
○ user-space can crash or be restarted at any time
○ user-space can recover state from kernel
Kernel-space architecture (2)
● User-space interacts with kernel-space only through two character devices
○ /dev/rlite for control operations
○ /dev/rlite-io for data transfer and synchronization
● Consequently, interactions only happen through file descriptors
● Both are “cloning devices”
○ each open() creates a new independent kernel-space instance
● Both devices support blocking and non-blocking operation
○ Standard poll() and select() widely used with the devices
Kernel-space architecture (3)
● /dev/rlite used for control operations
○ flow (de)allocation
○ Application (un)registration
○ IPCP creation, deletion and configuration
○ Management of PDU forwarding table
○ interactions between user-space and kernel-space parts of IPCPs
○ inspection and monitoring operations on flows and IPCPs
○ ...
Kernel-space architecture (4)
● Control operations follow a request/response paradigm:
○ write() to the control device to submit a request message
○ Response messages (not always present) can be read through read()
● The control device is used to avoid ioctls() and netlink
○ Easier porting to other OSes (e.g. FreeBSD)
● Request and response messages are represented by packed structs and are
serialized/deserialized during the user-space ←→ kernel-space transition
○ support for string (de)serialization
○ support for (apn, api, aen, aei) name (de)serialization
Kernel-space architecture (5)
● /dev/rlite-io for data transfer and synchronization
○ read()
○ write()
○ select(), poll(), epoll()
● Application workflow:
○ Use the control device to allocate a flow (kernel-space object)
○ Bind the flow to a newly-created data transfer file descriptor - this is the only task performed by
means of ioctl()
○ Use the data transfer file descriptor to exchange SDUs and/or wait for events
○ Close file descriptor to deallocate the associated flow
● Special binding mode to exchange management SDUs
Kernel-space architecture (6)
● Usual abstract factory pattern to manage different types of IPCPs
○ normal: implementation of the regular IPCP
○ shim-loopback: supports system-local IPC, with optional queued mode to decouple TX and RX
code-paths, and optional packet drop emulation
○ shim-eth: uses network device drivers to transmit and receive SDUs, sharing the device with
the Linux network stack
○ shim-udp4: tunnels RINA traffic over UDP socket; mostly implemented in user-space, only
data transfer is implemented in kernel-space
○ shim-tcp4: same as shim-udp4, but using a TCP socket; deprecated, since it duplicates
flow-control and congestion control done in higher layers
○ shim-hv: uses VMPI devices to transmit and receive SDUs
Some kernel-space internals
● Reference counters widely used to manage lifetime of objects (e.g. IPCPs,
flows, registered applications, PDUs)
● sk_buff-like approach to avoid copies throughout the datapath
● dynamic allocation of PDU buffers
○ The amount of header space to reserve at allocation time is precomputed by the user-space
daemon, depending on the local IPCP dependency graph
● All PDU queues are limited in size to keep memory usage under control
● Deferred work (workqueues) used only when necessary, to keep latency low
○ Example: driver transmission routine directly executes in the context of an application write()
system call, when possible
Architecture overview
rlite-ctl uipcps daemon application
librlite-cdaplibrlite-conf
librlite
/dev/rlite /dev/rlite-io
rlite
shim-eth
shim-loopback
shim-tcp4
normal
user-space
kernel-space
shim-hv
shim-udp4
user-space libraries
● librlite (written in C)
○ main library, abstracts interactions with the rlite control device (/dev/rlite)
○ provides common utilities and helpers (application names, flow specification, control
messages, ...)
○ provides an API for RINA applications
● Other libraries
○ librlite-conf (C): extends librlite with kernel-space IPCP management functionalities
○ librlite-cdap (C++): CDAP implementation based on Google Protocol Buffer
librlite - Overview
● librlite provides API calls to interact with control device instances
○ Validation, serialization and deserialization of control messages in both directions (user →
kernel, kernel → user)
● It defines a POSIX-like APIs for applications:
○ Reminiscent of the socket API, to ease porting of existing socket applications...
○ … yet with the full power of RINA API (QoS support and complete naming scheme)
○ Easy to learn for grown-up network developers!
○ Documentation available at https://github.com/vmaffione/rlite/blob/master/include/rina/api.h
○ Other resources: https://github.com/IRATI/stack/wiki/Application-API
librlite - Application API
● Main API calls:
○ int rina_open() → fd
■ Opens a control device instance, returning a file descriptor.
○ int rina_flow_alloc(dif_name, local_name, remote_name, flowspec, flags) → fd
■ Issues a flow allocation request and possibly wait for the associated response. Returns a file descriptor to be
used for data transfer.
○ int rina_register(fd, dif_name, appl_name, flags)
■ Register an application into a given DIF.
○ int rina_register(fd, dif_name, appl_name, flags)
■ Unregister an application from a given DIF.
○ int rina_flow_accept(fd, flags) → remote_appl, flowspec
■ Wait and possibly accept an incoming flow request, where the destination application is one of the ones
registered to the control device referred by fd. Returns a file descriptor to be used for data transfer.
librlite-conf
● It is the backend for the rlite-ctl stack administration tool
● Exports the management and inspection functionalities:
○ IPCP creation
○ IPCP deletion
○ IPCP configuration
○ Fetch of current flows (with related statistics)
○ Dump state of a specific flow
○ Synchronization with uipcps daemon, to wait for the user-space part of an IPCP to show up
○ ...
librlite-cdap
● CDAP implementation using Google Protocol Buffer as concrete syntax
● Provides CDAP message constructors, serializers and deserializers
● Provides CDAP connections object to send and receive CDAP messages
● Each CDAP connection wraps a file descriptor
○ In this way CDAP can be used over arbitrary file descriptors
○ Primarily meant to be used with /dev/rlite-io file descriptors
○ No dependencies on other parts of rlite, can be reused as a stand-alone component
Architecture overview
rlite-ctl uipcps daemon application
librlite-cdaplibrlite-conf
librlite
/dev/rlite /dev/rlite-io
rlite
shim-eth
shim-loopback
shim-tcp4
normal
user-space
kernel-space
shim-hv
shim-udp4
Uipcps daemon - Overview
● A multi-threaded single-process daemon that implements management part of some IPCPs
● When an IPCP is created by the kernel, the daemon gets notified, and creates the corresponding
user-space IPCP (uipcp)
● For regular IPCPs, it implements:
○ Flow allocation RIB objects
○ Directory Forwarding Table RIB objects
○ Enrollment RIB objects and enrollment state machines
○ Routing RIB objects
○ Address allocation RIB objects
● For shim-tudp4 IPCPs it implements UDP sockets setup and dynamic UDP port allocation
● For shim-tcp4 IPCPs it implements TCP connection setup and teardown for both client and server
side (connect(), accept(), etc.)
Uipcps daemon - Internals
● A custom event-loop thread for each IPCP
● An additional thread that implements a UNIX socket server to serve requests coming from the
rlite-ctl tool (or other future agents)
● Abstract factory pattern to manage different types of uipcps
● Reference counters used to manage uipcps lifetime
● Subsystems:
○ UNIX socket server, written in C
○ uipcps container for generic uipcp management (creation, deletion, …), written in C
○ shim-udp4 and shim-tcp4 user-space implementation, written in C
○ normal IPCP user-space implementation, written in C++ manly because of CDAP
● C++ code confined inside the uipcp-normal statically linked library.
Uipcps daemon - Subsystems
rlite-ctl
uipcp daemon
librlite-cdap
librlite
application
unix
server
uipcps
container
normal
shim
udp4
Uipcp daemon - Event loop
● A custom event-loop on top of rlite control devices
● The event-loop thread to select() over many file descriptors
○ rlite control devices: when events happen on the control device, event-specific callbacks get
executed
○ Other file descriptors: when an event is ready on one of those, an user-provided callback gets
executed
● Supports timers, that can be used to execute a callback after a certain
amount of time
Uipcp daemon - Advanced features
● The uipcp-containers module keeps track of the IPCPs in the local system
and the flows allocated among them
○ This information is maintained in a graph of local IPCPs
○ A node for each IPCP, an edge for each inter-IPCP flow
○ Graph used for automatic computation of:
■ per-IPCP Maximum SDU size (using the constraints provided by shim DIFs)
■ per-IPCP PCI header space to be reserved at kernel buffer allocation
○ Result of computation is pushed to the kernel for optimized operation
● Optional automatic re-enrollment triggers to create N-1 flows where they are
missing
rlite-ctl
● An ip-route2-like command-line tool to administer and monitor IPCP
processes
● Functionalities:
○ IPCP creation and deletion
○ IPCP configuration
○ Registration of an IPCP to a DIF
○ Enrollment between a local IPCP and a remote IPCP
○ Show list of IPCPs
○ Show RIB of a DIF
○ Show list of flows
○ Dump state of a specific flow
Common functionalities
● Common code is compiled both in user-space and kernel-space, to ease
maintenance:
○ Serialization and deserialization routines of control messages across user/kernel interface
■ Table-based serialization/deserialization, adding a new message is straightforward
○ Helper functions for RINA names - (APN, API, AEN, AEI) tuples.
Available RINA application
● Example applications:
○ rinaperf: multi-threaded client/server capable of parallel flow allocation, implementing basic
connectivity and performance testing: ping, request-response, unidirectional bandwidth
○ rina-echo-async: single-threaded event-loop based client/server tool, capable of concurrent
flow allocation and concurrent flow management
● Real application
○ nginx: RINA port of the popular Nginx server
○ dropbear: RINA port of the Dropbear ssh client/server
○ rina-gw: Event-loop application acting as an application gateway between a RINA network and
an IP network
■ It forwards TCP connections over RINA flows and the other way around
Demo
● RINA/TCP gateway, to make TCP/IP world interact with RINA world
● Minimally patched Nginx Web Server runs over RINA
TCP/IP
NETWORK
Proxy host
Client host 1
Web
browser
rina-gw
Server host 1
patched
nginx
RINA NETWORK
Client host 2
Web
browser
RINA flow
TCP connection
Demo
● RINA/TCP gateway, to make TCP/IP world interact with RINA world
● Minimally patched Nginx Web Server runs over RINA
VM A
patched
nginx
VM B
rina-gw Browser
n.1.DIF (normal)
Shim-eth (e.1.DIF)
TCP

More Related Content

What's hot

RINA Introduction, part I
RINA Introduction, part IRINA Introduction, part I
RINA Introduction, part IICT PRISTINE
 
EU-Taiwan Workshop on 5G Research, PRISTINE introduction
EU-Taiwan Workshop on 5G Research, PRISTINE introductionEU-Taiwan Workshop on 5G Research, PRISTINE introduction
EU-Taiwan Workshop on 5G Research, PRISTINE introductionICT PRISTINE
 
Pristine rina-security-icc-2016
Pristine rina-security-icc-2016Pristine rina-security-icc-2016
Pristine rina-security-icc-2016ICT PRISTINE
 
PRISTINE @ FIA Athens 2014
PRISTINE @ FIA Athens 2014PRISTINE @ FIA Athens 2014
PRISTINE @ FIA Athens 2014ICT PRISTINE
 
Pristine glif 2015
Pristine glif 2015Pristine glif 2015
Pristine glif 2015ICT PRISTINE
 
1. RINA motivation - TF Workshop
1. RINA motivation - TF Workshop1. RINA motivation - TF Workshop
1. RINA motivation - TF WorkshopARCFIRE ICT
 
Rina sdn-2016 mobility
Rina sdn-2016 mobilityRina sdn-2016 mobility
Rina sdn-2016 mobilityARCFIRE ICT
 
RINA motivation, introduction and IRATI goals. IEEE ANTS 2012
RINA motivation, introduction and IRATI goals. IEEE ANTS 2012RINA motivation, introduction and IRATI goals. IEEE ANTS 2012
RINA motivation, introduction and IRATI goals. IEEE ANTS 2012Eleni Trouva
 
Rina p4 rina workshop
Rina p4   rina workshopRina p4   rina workshop
Rina p4 rina workshopEduard Grasa
 
Experimental evaluation of a RINA prototype - GC 2014
Experimental evaluation of a RINA prototype - GC 2014Experimental evaluation of a RINA prototype - GC 2014
Experimental evaluation of a RINA prototype - GC 2014Eleni Trouva
 
Pristine rina-tnc-2016
Pristine rina-tnc-2016Pristine rina-tnc-2016
Pristine rina-tnc-2016ICT PRISTINE
 
RINA overview and ongoing research in EC-funded projects, ISO SC6 WG7
RINA overview and ongoing research in EC-funded projects, ISO SC6 WG7RINA overview and ongoing research in EC-funded projects, ISO SC6 WG7
RINA overview and ongoing research in EC-funded projects, ISO SC6 WG7Eleni Trouva
 
2. RINA overview - TF workshop
2. RINA overview - TF workshop2. RINA overview - TF workshop
2. RINA overview - TF workshopARCFIRE ICT
 
Rina acc-icc16-stein
Rina acc-icc16-steinRina acc-icc16-stein
Rina acc-icc16-steinICT PRISTINE
 
First Contact: Can Switching to RINA save the Internet?
First Contact: Can Switching to RINA save the Internet?First Contact: Can Switching to RINA save the Internet?
First Contact: Can Switching to RINA save the Internet?ARCFIRE ICT
 
The hague rina-workshop-interop-deployment_vincenzo
The hague rina-workshop-interop-deployment_vincenzoThe hague rina-workshop-interop-deployment_vincenzo
The hague rina-workshop-interop-deployment_vincenzoICT PRISTINE
 
RINA as a Clean-Slate Approach to Software Networks
RINA as a Clean-Slate Approach to Software Networks RINA as a Clean-Slate Approach to Software Networks
RINA as a Clean-Slate Approach to Software Networks ICT PRISTINE
 
The hague rina-workshop-congestioncontrol-peyman
The hague rina-workshop-congestioncontrol-peymanThe hague rina-workshop-congestioncontrol-peyman
The hague rina-workshop-congestioncontrol-peymanICT PRISTINE
 
LF_DPDK17_Abstract APIs for DPDK and ODP
LF_DPDK17_Abstract APIs for DPDK and ODPLF_DPDK17_Abstract APIs for DPDK and ODP
LF_DPDK17_Abstract APIs for DPDK and ODPLF_DPDK
 

What's hot (20)

RINA Introduction, part I
RINA Introduction, part IRINA Introduction, part I
RINA Introduction, part I
 
EU-Taiwan Workshop on 5G Research, PRISTINE introduction
EU-Taiwan Workshop on 5G Research, PRISTINE introductionEU-Taiwan Workshop on 5G Research, PRISTINE introduction
EU-Taiwan Workshop on 5G Research, PRISTINE introduction
 
Pristine rina-security-icc-2016
Pristine rina-security-icc-2016Pristine rina-security-icc-2016
Pristine rina-security-icc-2016
 
PRISTINE @ FIA Athens 2014
PRISTINE @ FIA Athens 2014PRISTINE @ FIA Athens 2014
PRISTINE @ FIA Athens 2014
 
Pristine glif 2015
Pristine glif 2015Pristine glif 2015
Pristine glif 2015
 
1. RINA motivation - TF Workshop
1. RINA motivation - TF Workshop1. RINA motivation - TF Workshop
1. RINA motivation - TF Workshop
 
Rina sdn-2016 mobility
Rina sdn-2016 mobilityRina sdn-2016 mobility
Rina sdn-2016 mobility
 
RINA motivation, introduction and IRATI goals. IEEE ANTS 2012
RINA motivation, introduction and IRATI goals. IEEE ANTS 2012RINA motivation, introduction and IRATI goals. IEEE ANTS 2012
RINA motivation, introduction and IRATI goals. IEEE ANTS 2012
 
Rina p4 rina workshop
Rina p4   rina workshopRina p4   rina workshop
Rina p4 rina workshop
 
Experimental evaluation of a RINA prototype - GC 2014
Experimental evaluation of a RINA prototype - GC 2014Experimental evaluation of a RINA prototype - GC 2014
Experimental evaluation of a RINA prototype - GC 2014
 
Pristine rina-tnc-2016
Pristine rina-tnc-2016Pristine rina-tnc-2016
Pristine rina-tnc-2016
 
RINA overview and ongoing research in EC-funded projects, ISO SC6 WG7
RINA overview and ongoing research in EC-funded projects, ISO SC6 WG7RINA overview and ongoing research in EC-funded projects, ISO SC6 WG7
RINA overview and ongoing research in EC-funded projects, ISO SC6 WG7
 
2. RINA overview - TF workshop
2. RINA overview - TF workshop2. RINA overview - TF workshop
2. RINA overview - TF workshop
 
Rina acc-icc16-stein
Rina acc-icc16-steinRina acc-icc16-stein
Rina acc-icc16-stein
 
First Contact: Can Switching to RINA save the Internet?
First Contact: Can Switching to RINA save the Internet?First Contact: Can Switching to RINA save the Internet?
First Contact: Can Switching to RINA save the Internet?
 
The hague rina-workshop-interop-deployment_vincenzo
The hague rina-workshop-interop-deployment_vincenzoThe hague rina-workshop-interop-deployment_vincenzo
The hague rina-workshop-interop-deployment_vincenzo
 
RINA as a Clean-Slate Approach to Software Networks
RINA as a Clean-Slate Approach to Software Networks RINA as a Clean-Slate Approach to Software Networks
RINA as a Clean-Slate Approach to Software Networks
 
The hague rina-workshop-congestioncontrol-peyman
The hague rina-workshop-congestioncontrol-peymanThe hague rina-workshop-congestioncontrol-peyman
The hague rina-workshop-congestioncontrol-peyman
 
Rina sim workshop
Rina sim workshopRina sim workshop
Rina sim workshop
 
LF_DPDK17_Abstract APIs for DPDK and ODP
LF_DPDK17_Abstract APIs for DPDK and ODPLF_DPDK17_Abstract APIs for DPDK and ODP
LF_DPDK17_Abstract APIs for DPDK and ODP
 

Similar to Rlite software-architecture (1)

SF-TAP: Scalable and Flexible Traffic Analysis Platform (USENIX LISA 2015)
SF-TAP: Scalable and Flexible Traffic Analysis Platform (USENIX LISA 2015)SF-TAP: Scalable and Flexible Traffic Analysis Platform (USENIX LISA 2015)
SF-TAP: Scalable and Flexible Traffic Analysis Platform (USENIX LISA 2015)Yuuki Takano
 
HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...
HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...
HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...Linaro
 
Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Kynetics
 
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
BPF  & Cilium - Turning Linux into a Microservices-aware Operating SystemBPF  & Cilium - Turning Linux into a Microservices-aware Operating System
BPF & Cilium - Turning Linux into a Microservices-aware Operating SystemThomas Graf
 
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)Kevin Lynch
 
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Hajime Tazaki
 
Kernel Recipes 2015 - So you want to write a Linux driver framework
Kernel Recipes 2015 - So you want to write a Linux driver frameworkKernel Recipes 2015 - So you want to write a Linux driver framework
Kernel Recipes 2015 - So you want to write a Linux driver frameworkAnne Nicolas
 
BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!Linaro
 
Free the Functions with Fn project!
Free the Functions with Fn project!Free the Functions with Fn project!
Free the Functions with Fn project!J On The Beach
 
Devicemgmt
DevicemgmtDevicemgmt
Devicemgmtxyxz
 
OpenDataPlane Testing in Travis
OpenDataPlane Testing in TravisOpenDataPlane Testing in Travis
OpenDataPlane Testing in TravisDmitry Baryshkov
 
LAS16-TR06: Remoteproc & rpmsg development
LAS16-TR06: Remoteproc & rpmsg developmentLAS16-TR06: Remoteproc & rpmsg development
LAS16-TR06: Remoteproc & rpmsg developmentLinaro
 
Tensorflow internal
Tensorflow internalTensorflow internal
Tensorflow internalHyunghun Cho
 
Bsdtw17: johannes m dieterich: high performance computing and gpu acceleratio...
Bsdtw17: johannes m dieterich: high performance computing and gpu acceleratio...Bsdtw17: johannes m dieterich: high performance computing and gpu acceleratio...
Bsdtw17: johannes m dieterich: high performance computing and gpu acceleratio...Scott Tsai
 
P4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptxP4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptxtampham61268
 
Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Opersys inc.
 
LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205Linaro
 
Kernel Recipes 2014 - NDIV: a low overhead network traffic diverter
Kernel Recipes 2014 - NDIV: a low overhead network traffic diverterKernel Recipes 2014 - NDIV: a low overhead network traffic diverter
Kernel Recipes 2014 - NDIV: a low overhead network traffic diverterAnne Nicolas
 

Similar to Rlite software-architecture (1) (20)

SF-TAP: Scalable and Flexible Traffic Analysis Platform (USENIX LISA 2015)
SF-TAP: Scalable and Flexible Traffic Analysis Platform (USENIX LISA 2015)SF-TAP: Scalable and Flexible Traffic Analysis Platform (USENIX LISA 2015)
SF-TAP: Scalable and Flexible Traffic Analysis Platform (USENIX LISA 2015)
 
HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...
HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...
HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...
 
Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7
 
Linux-Internals-and-Networking
Linux-Internals-and-NetworkingLinux-Internals-and-Networking
Linux-Internals-and-Networking
 
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
BPF  & Cilium - Turning Linux into a Microservices-aware Operating SystemBPF  & Cilium - Turning Linux into a Microservices-aware Operating System
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
 
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
 
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
 
Kernel Recipes 2015 - So you want to write a Linux driver framework
Kernel Recipes 2015 - So you want to write a Linux driver frameworkKernel Recipes 2015 - So you want to write a Linux driver framework
Kernel Recipes 2015 - So you want to write a Linux driver framework
 
BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!
 
Free the Functions with Fn project!
Free the Functions with Fn project!Free the Functions with Fn project!
Free the Functions with Fn project!
 
DPDK In Depth
DPDK In DepthDPDK In Depth
DPDK In Depth
 
Devicemgmt
DevicemgmtDevicemgmt
Devicemgmt
 
OpenDataPlane Testing in Travis
OpenDataPlane Testing in TravisOpenDataPlane Testing in Travis
OpenDataPlane Testing in Travis
 
LAS16-TR06: Remoteproc & rpmsg development
LAS16-TR06: Remoteproc & rpmsg developmentLAS16-TR06: Remoteproc & rpmsg development
LAS16-TR06: Remoteproc & rpmsg development
 
Tensorflow internal
Tensorflow internalTensorflow internal
Tensorflow internal
 
Bsdtw17: johannes m dieterich: high performance computing and gpu acceleratio...
Bsdtw17: johannes m dieterich: high performance computing and gpu acceleratio...Bsdtw17: johannes m dieterich: high performance computing and gpu acceleratio...
Bsdtw17: johannes m dieterich: high performance computing and gpu acceleratio...
 
P4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptxP4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptx
 
Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3
 
LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205
 
Kernel Recipes 2014 - NDIV: a low overhead network traffic diverter
Kernel Recipes 2014 - NDIV: a low overhead network traffic diverterKernel Recipes 2014 - NDIV: a low overhead network traffic diverter
Kernel Recipes 2014 - NDIV: a low overhead network traffic diverter
 

More from ARCFIRE ICT

Error and Flow Control Protocol (EFCP) Design and Implementation: A Data Tran...
Error and Flow Control Protocol (EFCP) Design and Implementation: A Data Tran...Error and Flow Control Protocol (EFCP) Design and Implementation: A Data Tran...
Error and Flow Control Protocol (EFCP) Design and Implementation: A Data Tran...ARCFIRE ICT
 
Large-scale Experimentation with Network Abstraction for Network Configuratio...
Large-scale Experimentation with Network Abstraction for Network Configuratio...Large-scale Experimentation with Network Abstraction for Network Configuratio...
Large-scale Experimentation with Network Abstraction for Network Configuratio...ARCFIRE ICT
 
Design Considerations for RINA Congestion Control over WiFi Links
Design Considerations for RINA Congestion Control over WiFi LinksDesign Considerations for RINA Congestion Control over WiFi Links
Design Considerations for RINA Congestion Control over WiFi LinksARCFIRE ICT
 
One of the Ways How to Make RIB Distributed
One of the Ways How to Make RIB DistributedOne of the Ways How to Make RIB Distributed
One of the Ways How to Make RIB DistributedARCFIRE ICT
 
Unifying WiFi and VLANs with the RINA model
Unifying WiFi and VLANs with the RINA modelUnifying WiFi and VLANs with the RINA model
Unifying WiFi and VLANs with the RINA modelARCFIRE ICT
 
Experimenting with Real Application-specific QoS Guarantees in a Large-scale ...
Experimenting with Real Application-specific QoS Guarantees in a Large-scale ...Experimenting with Real Application-specific QoS Guarantees in a Large-scale ...
Experimenting with Real Application-specific QoS Guarantees in a Large-scale ...ARCFIRE ICT
 
Pristine rina-tnc-2016
Pristine rina-tnc-2016Pristine rina-tnc-2016
Pristine rina-tnc-2016ARCFIRE ICT
 
Distributed mobility management and application discovery
Distributed mobility management and application discoveryDistributed mobility management and application discovery
Distributed mobility management and application discoveryARCFIRE ICT
 
Mobility mangement rina iwcnc
Mobility mangement rina   iwcncMobility mangement rina   iwcnc
Mobility mangement rina iwcncARCFIRE ICT
 
6 security130123
6 security1301236 security130123
6 security130123ARCFIRE ICT
 
5 mngmt idd130115
5 mngmt idd1301155 mngmt idd130115
5 mngmt idd130115ARCFIRE ICT
 
5 mngmt idd130115jd
5 mngmt idd130115jd5 mngmt idd130115jd
5 mngmt idd130115jdARCFIRE ICT
 
4 addressing theory130115
4 addressing theory1301154 addressing theory130115
4 addressing theory130115ARCFIRE ICT
 
3 addressingthe problem130123
3 addressingthe problem1301233 addressingthe problem130123
3 addressingthe problem130123ARCFIRE ICT
 
2 introto rina-e130123
2 introto rina-e1301232 introto rina-e130123
2 introto rina-e130123ARCFIRE ICT
 
1 lost layer130123
1 lost layer1301231 lost layer130123
1 lost layer130123ARCFIRE ICT
 
Rumba CNERT presentation
Rumba CNERT presentationRumba CNERT presentation
Rumba CNERT presentationARCFIRE ICT
 
5. Rumba presentation
5. Rumba presentation5. Rumba presentation
5. Rumba presentationARCFIRE ICT
 
4. Clearwater on rina
4. Clearwater on rina4. Clearwater on rina
4. Clearwater on rinaARCFIRE ICT
 

More from ARCFIRE ICT (20)

Error and Flow Control Protocol (EFCP) Design and Implementation: A Data Tran...
Error and Flow Control Protocol (EFCP) Design and Implementation: A Data Tran...Error and Flow Control Protocol (EFCP) Design and Implementation: A Data Tran...
Error and Flow Control Protocol (EFCP) Design and Implementation: A Data Tran...
 
Large-scale Experimentation with Network Abstraction for Network Configuratio...
Large-scale Experimentation with Network Abstraction for Network Configuratio...Large-scale Experimentation with Network Abstraction for Network Configuratio...
Large-scale Experimentation with Network Abstraction for Network Configuratio...
 
Design Considerations for RINA Congestion Control over WiFi Links
Design Considerations for RINA Congestion Control over WiFi LinksDesign Considerations for RINA Congestion Control over WiFi Links
Design Considerations for RINA Congestion Control over WiFi Links
 
One of the Ways How to Make RIB Distributed
One of the Ways How to Make RIB DistributedOne of the Ways How to Make RIB Distributed
One of the Ways How to Make RIB Distributed
 
Unifying WiFi and VLANs with the RINA model
Unifying WiFi and VLANs with the RINA modelUnifying WiFi and VLANs with the RINA model
Unifying WiFi and VLANs with the RINA model
 
Experimenting with Real Application-specific QoS Guarantees in a Large-scale ...
Experimenting with Real Application-specific QoS Guarantees in a Large-scale ...Experimenting with Real Application-specific QoS Guarantees in a Large-scale ...
Experimenting with Real Application-specific QoS Guarantees in a Large-scale ...
 
Exp3mq
Exp3mqExp3mq
Exp3mq
 
Pristine rina-tnc-2016
Pristine rina-tnc-2016Pristine rina-tnc-2016
Pristine rina-tnc-2016
 
Distributed mobility management and application discovery
Distributed mobility management and application discoveryDistributed mobility management and application discovery
Distributed mobility management and application discovery
 
Mobility mangement rina iwcnc
Mobility mangement rina   iwcncMobility mangement rina   iwcnc
Mobility mangement rina iwcnc
 
6 security130123
6 security1301236 security130123
6 security130123
 
5 mngmt idd130115
5 mngmt idd1301155 mngmt idd130115
5 mngmt idd130115
 
5 mngmt idd130115jd
5 mngmt idd130115jd5 mngmt idd130115jd
5 mngmt idd130115jd
 
4 addressing theory130115
4 addressing theory1301154 addressing theory130115
4 addressing theory130115
 
3 addressingthe problem130123
3 addressingthe problem1301233 addressingthe problem130123
3 addressingthe problem130123
 
2 introto rina-e130123
2 introto rina-e1301232 introto rina-e130123
2 introto rina-e130123
 
1 lost layer130123
1 lost layer1301231 lost layer130123
1 lost layer130123
 
Rumba CNERT presentation
Rumba CNERT presentationRumba CNERT presentation
Rumba CNERT presentation
 
5. Rumba presentation
5. Rumba presentation5. Rumba presentation
5. Rumba presentation
 
4. Clearwater on rina
4. Clearwater on rina4. Clearwater on rina
4. Clearwater on rina
 

Recently uploaded

Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtrahman018755
 
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.soniya singh
 
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...SUHANI PANDEY
 
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls DubaiDubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubaikojalkojal131
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
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)Delhi Call girls
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Standkumarajju5765
 
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 AvailableSeo
 
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...SUHANI PANDEY
 
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 providersDamian Radcliffe
 
(+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 ...Escorts Call Girls
 
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...SUHANI PANDEY
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
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 ServiceDelhi Call girls
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...singhpriety023
 

Recently uploaded (20)

Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
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.
 
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
 
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls DubaiDubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
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)
 
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
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
 
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...
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 
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
 
(+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 ...
 
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
 
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
 
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
 

Rlite software-architecture (1)

  • 1. A RINA light implementation Vincenzo Maffione 20/02/2017
  • 2. Introduction (1) ● A Free and Open Source light implementation of RINA for Linux ● Implementation splitted between user-space and kernel-space ● KISS approach → codebase is clean and essential ● Focus: ○ basic functionality - do few things but to them well ○ stability and performance - support deployments with hundreds of nodes ○ minimality - avoid over-engineering ● Main goal: a baseline implementation for future RINA products ● Code and documentation available at https://github.com/vmaffione/rlite
  • 3. Introduction (2) ● ~ 27 Klocs (not including blanks) ○ kernel-space: ~ 9 Klocs ○ user-space: ~ 18 Klocs ■ including tools and example applications ● Written mostly in C (some parts are C++ for convenience) ○ C: 14 Klocs ○ C++: 7 Klocs ● Network applications can be written in C ● Python bindings available to write network applications in Python
  • 4. Introduction (3) ● kernel-space is implemented as a set of out-of-tree kernel modules, which run on the unmodified Linux kernel. ○ Linux Kbuild system is used to build the modules against the running kernel ○ Build time (no parallel make): 3-15 seconds ● user-space is implemented as a set of shared libraries and programs ○ CMake is used to configure and build libraries and executables ○ Build time (no parallel make): 15-60 seconds
  • 5. Basic features (1) ● Applications: ○ Flow allocation and deallocation, with QoS specification ○ Application registration and unregistration ○ Data transfer ● Stack administration: ○ Creation, deletion and configuration of IPCPs ○ Registration and enrollment among IPCPs ○ Monitoring and inspection ■ inspection of IPCPs in the system ■ inspection of RIBs ■ per-flow statistics
  • 6. Basic features (2) ● QoS (supported through DTCP): ○ Flow control ○ Retransmission control ○ Maximum allowable gap ○ Simple token-bucket rate-limiting ● Decent performance (detailed performance plots to come) ○ About 9.5 Gbps on a 10 Gbit link without flow control and retransmission ○ About 6 Gbps on a 10 Gbit link with flow control ○ A lot of room for optimizations ● Stability indicators ○ Done 10 days long VM-based experiments with up 35 nodes, two levels of normal DIFs and 50 flows allocations per second ○ Done experiments with up to 10 levels of DIFs
  • 7. Architecture overview (1) rlite-ctl uipcps daemon application librlite-cdaplibrlite-conf librlite /dev/rlite /dev/rlite-io rlite shim-eth shim-loopback shim-tcp4 normal user-space kernel-space shim-hv shim-udp4
  • 8. Architecture overview (2) ● kernel-space ○ Supports control operations ○ Implements datapath ○ Keeps state ● user-space ○ Libraries to abstract interaction with kernel-space functionalities ○ A daemon to implement management part of (many) IPCPs ○ An iproute2-like command-line tool to administer the stack ● Interactions between kernel-space and user-space only happen through character devices → therefore through file descriptors
  • 9. Kernel-space architecture (1) ● Supported functionalities: ○ IPCP creation, deletion and configuration (kernel keeps a per-IPCP data structure) ○ Flow (de)allocation (kernel keeps a per-flow data structure) ○ Application (un)registration (kernel keeps a data structure for each registered application) ○ RMT, DTP and DTCP components of the normal IPCP ○ Shim IPCP processes (e.g. interaction with network device drivers) ● State is maintained in kernel-space: ○ user-space can crash or be restarted at any time ○ user-space can recover state from kernel
  • 10. Kernel-space architecture (2) ● User-space interacts with kernel-space only through two character devices ○ /dev/rlite for control operations ○ /dev/rlite-io for data transfer and synchronization ● Consequently, interactions only happen through file descriptors ● Both are “cloning devices” ○ each open() creates a new independent kernel-space instance ● Both devices support blocking and non-blocking operation ○ Standard poll() and select() widely used with the devices
  • 11. Kernel-space architecture (3) ● /dev/rlite used for control operations ○ flow (de)allocation ○ Application (un)registration ○ IPCP creation, deletion and configuration ○ Management of PDU forwarding table ○ interactions between user-space and kernel-space parts of IPCPs ○ inspection and monitoring operations on flows and IPCPs ○ ...
  • 12. Kernel-space architecture (4) ● Control operations follow a request/response paradigm: ○ write() to the control device to submit a request message ○ Response messages (not always present) can be read through read() ● The control device is used to avoid ioctls() and netlink ○ Easier porting to other OSes (e.g. FreeBSD) ● Request and response messages are represented by packed structs and are serialized/deserialized during the user-space ←→ kernel-space transition ○ support for string (de)serialization ○ support for (apn, api, aen, aei) name (de)serialization
  • 13. Kernel-space architecture (5) ● /dev/rlite-io for data transfer and synchronization ○ read() ○ write() ○ select(), poll(), epoll() ● Application workflow: ○ Use the control device to allocate a flow (kernel-space object) ○ Bind the flow to a newly-created data transfer file descriptor - this is the only task performed by means of ioctl() ○ Use the data transfer file descriptor to exchange SDUs and/or wait for events ○ Close file descriptor to deallocate the associated flow ● Special binding mode to exchange management SDUs
  • 14. Kernel-space architecture (6) ● Usual abstract factory pattern to manage different types of IPCPs ○ normal: implementation of the regular IPCP ○ shim-loopback: supports system-local IPC, with optional queued mode to decouple TX and RX code-paths, and optional packet drop emulation ○ shim-eth: uses network device drivers to transmit and receive SDUs, sharing the device with the Linux network stack ○ shim-udp4: tunnels RINA traffic over UDP socket; mostly implemented in user-space, only data transfer is implemented in kernel-space ○ shim-tcp4: same as shim-udp4, but using a TCP socket; deprecated, since it duplicates flow-control and congestion control done in higher layers ○ shim-hv: uses VMPI devices to transmit and receive SDUs
  • 15. Some kernel-space internals ● Reference counters widely used to manage lifetime of objects (e.g. IPCPs, flows, registered applications, PDUs) ● sk_buff-like approach to avoid copies throughout the datapath ● dynamic allocation of PDU buffers ○ The amount of header space to reserve at allocation time is precomputed by the user-space daemon, depending on the local IPCP dependency graph ● All PDU queues are limited in size to keep memory usage under control ● Deferred work (workqueues) used only when necessary, to keep latency low ○ Example: driver transmission routine directly executes in the context of an application write() system call, when possible
  • 16. Architecture overview rlite-ctl uipcps daemon application librlite-cdaplibrlite-conf librlite /dev/rlite /dev/rlite-io rlite shim-eth shim-loopback shim-tcp4 normal user-space kernel-space shim-hv shim-udp4
  • 17. user-space libraries ● librlite (written in C) ○ main library, abstracts interactions with the rlite control device (/dev/rlite) ○ provides common utilities and helpers (application names, flow specification, control messages, ...) ○ provides an API for RINA applications ● Other libraries ○ librlite-conf (C): extends librlite with kernel-space IPCP management functionalities ○ librlite-cdap (C++): CDAP implementation based on Google Protocol Buffer
  • 18. librlite - Overview ● librlite provides API calls to interact with control device instances ○ Validation, serialization and deserialization of control messages in both directions (user → kernel, kernel → user) ● It defines a POSIX-like APIs for applications: ○ Reminiscent of the socket API, to ease porting of existing socket applications... ○ … yet with the full power of RINA API (QoS support and complete naming scheme) ○ Easy to learn for grown-up network developers! ○ Documentation available at https://github.com/vmaffione/rlite/blob/master/include/rina/api.h ○ Other resources: https://github.com/IRATI/stack/wiki/Application-API
  • 19. librlite - Application API ● Main API calls: ○ int rina_open() → fd ■ Opens a control device instance, returning a file descriptor. ○ int rina_flow_alloc(dif_name, local_name, remote_name, flowspec, flags) → fd ■ Issues a flow allocation request and possibly wait for the associated response. Returns a file descriptor to be used for data transfer. ○ int rina_register(fd, dif_name, appl_name, flags) ■ Register an application into a given DIF. ○ int rina_register(fd, dif_name, appl_name, flags) ■ Unregister an application from a given DIF. ○ int rina_flow_accept(fd, flags) → remote_appl, flowspec ■ Wait and possibly accept an incoming flow request, where the destination application is one of the ones registered to the control device referred by fd. Returns a file descriptor to be used for data transfer.
  • 20. librlite-conf ● It is the backend for the rlite-ctl stack administration tool ● Exports the management and inspection functionalities: ○ IPCP creation ○ IPCP deletion ○ IPCP configuration ○ Fetch of current flows (with related statistics) ○ Dump state of a specific flow ○ Synchronization with uipcps daemon, to wait for the user-space part of an IPCP to show up ○ ...
  • 21. librlite-cdap ● CDAP implementation using Google Protocol Buffer as concrete syntax ● Provides CDAP message constructors, serializers and deserializers ● Provides CDAP connections object to send and receive CDAP messages ● Each CDAP connection wraps a file descriptor ○ In this way CDAP can be used over arbitrary file descriptors ○ Primarily meant to be used with /dev/rlite-io file descriptors ○ No dependencies on other parts of rlite, can be reused as a stand-alone component
  • 22. Architecture overview rlite-ctl uipcps daemon application librlite-cdaplibrlite-conf librlite /dev/rlite /dev/rlite-io rlite shim-eth shim-loopback shim-tcp4 normal user-space kernel-space shim-hv shim-udp4
  • 23. Uipcps daemon - Overview ● A multi-threaded single-process daemon that implements management part of some IPCPs ● When an IPCP is created by the kernel, the daemon gets notified, and creates the corresponding user-space IPCP (uipcp) ● For regular IPCPs, it implements: ○ Flow allocation RIB objects ○ Directory Forwarding Table RIB objects ○ Enrollment RIB objects and enrollment state machines ○ Routing RIB objects ○ Address allocation RIB objects ● For shim-tudp4 IPCPs it implements UDP sockets setup and dynamic UDP port allocation ● For shim-tcp4 IPCPs it implements TCP connection setup and teardown for both client and server side (connect(), accept(), etc.)
  • 24. Uipcps daemon - Internals ● A custom event-loop thread for each IPCP ● An additional thread that implements a UNIX socket server to serve requests coming from the rlite-ctl tool (or other future agents) ● Abstract factory pattern to manage different types of uipcps ● Reference counters used to manage uipcps lifetime ● Subsystems: ○ UNIX socket server, written in C ○ uipcps container for generic uipcp management (creation, deletion, …), written in C ○ shim-udp4 and shim-tcp4 user-space implementation, written in C ○ normal IPCP user-space implementation, written in C++ manly because of CDAP ● C++ code confined inside the uipcp-normal statically linked library.
  • 25. Uipcps daemon - Subsystems rlite-ctl uipcp daemon librlite-cdap librlite application unix server uipcps container normal shim udp4
  • 26. Uipcp daemon - Event loop ● A custom event-loop on top of rlite control devices ● The event-loop thread to select() over many file descriptors ○ rlite control devices: when events happen on the control device, event-specific callbacks get executed ○ Other file descriptors: when an event is ready on one of those, an user-provided callback gets executed ● Supports timers, that can be used to execute a callback after a certain amount of time
  • 27. Uipcp daemon - Advanced features ● The uipcp-containers module keeps track of the IPCPs in the local system and the flows allocated among them ○ This information is maintained in a graph of local IPCPs ○ A node for each IPCP, an edge for each inter-IPCP flow ○ Graph used for automatic computation of: ■ per-IPCP Maximum SDU size (using the constraints provided by shim DIFs) ■ per-IPCP PCI header space to be reserved at kernel buffer allocation ○ Result of computation is pushed to the kernel for optimized operation ● Optional automatic re-enrollment triggers to create N-1 flows where they are missing
  • 28. rlite-ctl ● An ip-route2-like command-line tool to administer and monitor IPCP processes ● Functionalities: ○ IPCP creation and deletion ○ IPCP configuration ○ Registration of an IPCP to a DIF ○ Enrollment between a local IPCP and a remote IPCP ○ Show list of IPCPs ○ Show RIB of a DIF ○ Show list of flows ○ Dump state of a specific flow
  • 29. Common functionalities ● Common code is compiled both in user-space and kernel-space, to ease maintenance: ○ Serialization and deserialization routines of control messages across user/kernel interface ■ Table-based serialization/deserialization, adding a new message is straightforward ○ Helper functions for RINA names - (APN, API, AEN, AEI) tuples.
  • 30. Available RINA application ● Example applications: ○ rinaperf: multi-threaded client/server capable of parallel flow allocation, implementing basic connectivity and performance testing: ping, request-response, unidirectional bandwidth ○ rina-echo-async: single-threaded event-loop based client/server tool, capable of concurrent flow allocation and concurrent flow management ● Real application ○ nginx: RINA port of the popular Nginx server ○ dropbear: RINA port of the Dropbear ssh client/server ○ rina-gw: Event-loop application acting as an application gateway between a RINA network and an IP network ■ It forwards TCP connections over RINA flows and the other way around
  • 31. Demo ● RINA/TCP gateway, to make TCP/IP world interact with RINA world ● Minimally patched Nginx Web Server runs over RINA TCP/IP NETWORK Proxy host Client host 1 Web browser rina-gw Server host 1 patched nginx RINA NETWORK Client host 2 Web browser RINA flow TCP connection
  • 32. Demo ● RINA/TCP gateway, to make TCP/IP world interact with RINA world ● Minimally patched Nginx Web Server runs over RINA VM A patched nginx VM B rina-gw Browser n.1.DIF (normal) Shim-eth (e.1.DIF) TCP