├── README.md └── docs ├── README.md ├── _config.yml ├── _layouts └── default.html ├── images └── rose-logo-recolored-red-200x60.png ├── rose-contacts.md └── rose-vm.md /README.md: -------------------------------------------------------------------------------- 1 | # ROSE 2 | ROSE - Research on Open SRv6 Ecosystem, from Host Stack and APIs to Cloud Infrastructures 3 | 4 | [Project web page](https://netgroup.github.io/rose/) 5 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | Segment Routing (SR) is a form of source routing. The SR architecture works by including a list of _segments_ in the packet headers. A segment can represent a _topological_ instruction (e.g. a node to be crossed) or a _service_ instruction (e.g. an operation to be executed on the packet). 2 | 3 | The Segment Routing architecture can be implemented using MPLS or IPv6 as data plane. We focus on the IPv6 implementation, called _SRv6_, in which the _segments_ are identified by IPv6 addresses. SRv6 supports advanced services like Traffic Engineering, Service Function Chaining and Virtual Private Networks in IPv6 backbones and datacenters. 4 | 5 | The ROSE project tackles multiple aspects of the SRv6 technology: Data Plane, Control Plane, SRv6 host networking stack, integration with applications, integration with Cloud/Data Center Infrastructures. 6 | 7 | ROSE builds up and maintain a Linux based Open Ecosystem for SRv6, composed of several sub-projects, like SRPerf (performance evaluation of SRv6 implementations), SRv6 SDN (gRPC based API for controlling SRv6 Linux routers), SRv6 uSID implementation in Linux and P4 and several others. [We](#the-team) list our published papers [below](#scientific-papers) and present hereafter our open source _SRv6_ ecosystem, with a bottom up approach. 8 | 9 | If you want to contribute to the ecosystem, provide feedback or **get in touch with us**, see our [contact page](rose-contacts.md). 10 | 11 | [SREXT kernel module](#srext-kernel-module) 12 | 13 | [SRNK SR proxy Native Kernel](#srnk---sr-proxy-native-kernel) 14 | 15 | [pyroute2 extensions to support SRv6](#pyroute2-extensions-to-support-srv6) 16 | 17 | [SRPerf performance evaluation for SRv6 implementations](#srperf---a-performance-evaluation-framework-for-srv6-implementations) 18 | 19 | [SRv6 uSID (micro segment) implementation in Linux](#srv6-usid-micro-segment-implementation-in-linux) 20 | 21 | [SRv6 uSID (micro segment) implementation on P4](#srv6-usid-micro-segment-implementation-on-p4) 22 | 23 | [SRv6 PM - Performance Monitoring](#srv6-pm-srv6-performance-monitoring) 24 | 25 | [HIKe (HybrId Kernel eBPF forwarding)](#hike-hybrid-kernel-ebpf-forwarding) 26 | 27 | [SRv6 SDN](#srv6-sdn) 28 | 29 | [k8s-SRv6 - Extending Kubernetes with SRv6](#k8s-srv6) 30 | 31 | [rose-srv6 ready-to-go Virtual Machine (and Tutorials)](#rose-srv6-vm-and-tutorials) 32 | 33 | [Emulation tools](#emulation-tools) 34 | 35 | [Testbeds IntErconnections with L2 overlays – SRv6 for SFC](#testbeds-interconnections-with-l2-overlays--srv6-for-sfc) 36 | 37 | 38 | ### SREXT kernel module 39 | 40 | [SREXT](https://netgroup.github.io/SRv6-net-prog/) is a kernel module providing the basic Segment Routing functions in addition to more advanced ones. It can be used as a standalone SRv6 implementation or as a complement to the existing SRv6 kernel implementation (kernel 4.10 and later kernels). 41 | 42 | ### SRNK - SR proxy Native Kernel 43 | 44 | [SRNK](https://netgroup.github.io/srnk/) is an SR proxy which acts as relay mechanism in order to support SRv6 unaware VNFs. It is implemented extending the current support for SRv6 in Linux kernels (>= 4.14). 45 | 46 | ### pyroute2 extensions to support SRv6 47 | 48 | [pyroute2](https://github.com/svinota/pyroute2) is a lightweight netlink library written in python. We submitted a patch which adds the support for _SRv6_ basic functionality. 49 | 50 | Changelog: 51 | - Introduce IPRoute support for SRv6 tunnel 52 | - Add encap and inline modes 53 | - Support hmac functionality for SRH 54 | - Initial parsing of human friendly form 55 | - Add seg6_encap_info for RTA_ENCAP mgmt 56 | 57 | The extension is available from 0.5 release. 58 | 59 | ### SRPerf - a Performance Evaluation Framework for SRv6 implementations 60 | 61 | [SRPerf](https://srouting.github.io/SRPerf/) is a performance evaluation framework for software and hardware implementations of SRv6. 62 | 63 | ### SRv6 uSID (micro segment) implementation in Linux 64 | 65 | [This project](https://netgroup.github.io/srv6-usid-linux-kernel/) implements the SRv6 "micro segment" 66 | (uSID for short) solution in Linux. This solution corresponds to the NEXT-C-SID Flavor defined in the Internet Draft [Compressed SRv6 Segment List Encoding in SRH](https://datatracker.ietf.org/doc/draft-filsfilscheng-spring-srv6-srh-compression/). 67 | 68 | The processing of micro segments is performed by the Linux kernel, extending the existing SRv6 implementation. The iproute2 userspace tool has been modified to support the configuration of the SRv6 uSIDs. 69 | 70 | ### SRv6 uSID (micro segment) implementation on P4 71 | 72 | [p4-srv6-usid](https://netgroup.github.io/p4-srv6-usid/) implements the SRv6 "micro segment" 73 | (uSID for short) solution using the P4 language and shows a DEMO. This solution corresponds to the NEXT-C-SID Flavor defined in the Internet Draft [Compressed SRv6 Segment List Encoding in SRH](https://datatracker.ietf.org/doc/draft-filsfilscheng-spring-srv6-srh-compression/). 74 | 75 | The SRv6 uSID solution is an extension to the SRv6 Network Programming model, which 76 | allows expressing SRv6 segments with a very compact and efficient representation. 77 | 78 | ### SRv6-PM (SRv6 Performance monitoring) 79 | 80 | [srv6-pm](https://netgroup.github.io/srv6-pm/) accurate Per-Flow Packet Loss Monitoring in Linux kernel 81 | 82 | ### HIKe (HybrId Kernel eBPF forwarding) 83 | 84 | [HIKe](https://netgroup.github.io/hike/) is a programmable data plane architecture that integrates the 85 | packet forwarding and processing based on the standard Linux kernel networking with the ones based on 86 | custom designed eBPF programs. HIKe does not want to trade the flexibility and generality of Linux kernel 87 | networking with eBPF performances, but wants to take the best of both worlds. In the context of the ROSE 88 | project, we use HIKe to speed up the performance of SRv6 software routers (altough HIKe is not limited to SRv6!). 89 | 90 | ### SRv6 SDN 91 | 92 | [SRv6 SDN](https://netgroup.github.io/srv6-sdn/) a collection of modules implementing different functionalities of a SDN controller for SRv6 93 | 94 | ### k8s-SRv6 95 | 96 | [k8s-SRv6](https://netgroup.github.io/k8s-srv6/) extends Kubernetes to make use of SRv6. We have extended the Calico-VPP Kubernetes networking plugin with a new SRv6 overlay that supports: 97 | - Encapsulation of both IPv4 and IPv6 pods networking 98 | - Traffic Engineering of the overlay tunnels 99 | 100 | ### rose-srv6 VM and tutorials 101 | 102 | The [rose-srv6 VM](rose-vm.md) is a ready-to-go Virtual Machine available for tutorial and development purposes. 103 | The rose-srv6 VM includes an emulated network environment based on Mininet and 104 | relies on the Linux kernel for implementing the SRv6 data plane. In the control plane, the Linux nodes offer 105 | a gRPC southbound API to a controller developed in python. 106 | 107 | [Download and installation instructions](https://github.com/netgroup/rose/blob/master/docs/rose-vm.md). 108 | 109 | 110 | ### Emulation tools 111 | 112 | The emulation tools are a collection of projects meant to support SRv6 experiments both over Mininet and IAAS like testbeds. Hereafter the list of projects composing our emulation tools: 113 | 114 | - [RDCL 3D](https://github.com/superfluidity/RDCL3D) the webgui, it produces a json representation of the topology and allows the deployment and the control of the experiment 115 | - [Dreamer Topology Parser and Validator](https://github.com/netgroup/Dreamer-Topology-Parser) is a library to parse the json representation of the topology 116 | - [SRv6 Properties Generators](https://github.com/netgroup/srv6-properties-generators) is a library for the management of the addressing plan 117 | - [SRv6 Mininet Extensions](https://github.com/netgroup/srv6-mininet-extensions) is a library to create Mininet networks for testing of SRv6 technology 118 | - [SoftFire TIESR Deployer](https://github.com/netgroup/softfire-tiesr-deployer) creates the configuration of virtual networks for testing the SRv6 technology over IAAS like testbeds 119 | - [SoftFire TIESR Scripts](https://github.com/netgroup/softfire-tiesr-scripts) these scripts are run over the VMs, they take into account the configuration files and consequently setup the VM 120 | 121 | ### Testbeds IntErconnections with L2 overlays – SRv6 for SFC 122 | 123 | The work concerns the deployment of arbitrary overlay topologies over multiple testbeds and the Service Function Chaining using SRv6 (IPv6 Segment Routing): “TIE-SR: Testbeds IntErconnections with L2 overlays – SRv6 for SFC” (see slides: ). 124 | 125 | - **softfire-rdcl3d** the webgui, it produces a json representation of the topology it also offers a web URL to receive the notification from openbaton (TODO: Add the links to this repo) 126 | - [Dreamer Topology Parser and Validator](https://github.com/netgroup/Dreamer-Topology-Parser) is a library to parse the json representation of the topology 127 | - [SRv6 Properties Generators](https://github.com/netgroup/srv6-properties-generators) is a library for the management of the addressing plan 128 | - [SoftFire TIESR Deployer](https://github.com/netgroup/softfire-tiesr-deployer) creates the configuration of virtual networks for testing the SRv6 technology over IAAS like testbeds 129 | - [SoftFire TIESR Scripts](https://github.com/netgroup/softfire-tiesr-scripts) these scripts are run over the VMs, they take into account the configuration files and consequently setup the VM 130 | - [SRv6 Controller](https://github.com/netgroup/srv6-controller) is a collection of modules implementing different functionalities of a SDN controller 131 | 132 | 137 | 138 | ### VM images 139 | 140 | See the [rose-srv6 VM](rose-vm.md) 141 | 142 | ### Scientific papers 143 | 144 | - A. Tulumello, A. Mayer, M. Bonola, P. Lungaroni, C. Scarpitta, S. Salsano, A. Abdelsalam, P. Camarillo, D. Dukes, F. Clad, C. Filsfils,
145 | "[Micro SIDs: a solution for Efficient Representation of Segment IDs in SRv6 Networks](https://doi.org/10.1109/TNSM.2022.3205265)",
146 | IEEE Transaction on Network and Service Management, 2022, ([pdf-preprint](http://netgroup.uniroma2.it/Stefano_Salsano/papers/22_tnsm_srv6_micro_sids.pdf)) 147 | 148 | - A. Mayer, P. Loreti, L. Bracciale, P. Lungaroni, S. Salsano, C. Filsfils,
149 | ["Performance Monitoring with H^2: Hybrid Kernel/eBPF data plane for SRv6 based Hybrid SDN"](https://doi.org/10.1016/j.comnet.2020.107705),
150 | Elsevier Computer Networks, Vol. 185, 11 February 2021 ([pdf-preprint](http://netgroup.uniroma2.it/Stefano_Salsano/papers/20-srv6-hybrid-sdn-hike.pdf)) 151 | 152 | - P. Loreti, A. Mayer, P. Lungaroni, F. Lombardo, C. Scarpitta, G. Sidoretti, L. Bracciale, M. Ferrari, S. Salsano, A. Abdelsalam, R. Gandhi, C. Filsfils,
153 | ["SRv6-PM: A Cloud-Native Architecture for Performance Monitoring of SRv6 Networks"](https://doi.org/10.1109/TNSM.2021.3052603),
154 | IEEE Transaction on Network and Service Management, special issue on “Advanced Management of Softwarized Networks”, March 2021 ([pdf-preprint](https://arxiv.org/pdf/2007.08633.pdf)) 155 | 156 | - A. Abdelsalam, P. L. Ventre, C. Scarpitta, A. Mayer, S. Salsano, P. Camarillo, F. Clad, C. Filsfils,
157 | "[SRPerf: a Performance Evaluation Framework for IPv6 Segment Routing](https://doi.org/10.1109/TNSM.2020.3048328)",
158 | IEEE Transaction on Network and Service Management, June 2021 ([pdf-preprint](https://arxiv.org/pdf/2001.06182)) 159 | 160 | - P. L. Ventre, S. Salsano, M. Polverini, A. Cianfrani, A. Abdelsalam, C. Filsfils, P. Camarillo, F. Clad,
161 | "[Segment Routing: a Comprehensive Survey of Research Activities, Standardization Efforts and Implementation Results](https://doi.org/10.1109/COMST.2020.3036826)",
162 | IEEE Communications Surveys & Tutorials, Firstquarter 2021 ([pdf-preprint](https://arxiv.org/pdf/1904.03471)) 163 | 164 | - A. Abdelsalam, A. Tulumello, M. Bonola, S. Salsano, C. Filsfils,
165 | "[Pushing Network Programmability to the Limits with SRv6 uSID and P4](https://doi.org/10.1145/3426744.3431331)",
166 | Demo Paper, 3rd P4 Workshop in Europe, EuroP4'20, 1 December 2020, Virtual Conference. 167 | 168 | - A. Tulumello, A. Mayer, M. Bonola, P. Lungaroni, C. Scarpitta, S. Salsano, A. Abdelsalam, P. Camarillo, D. Dukes, F. Clad, C. Filsfils,
169 | "[Micro SIDs: a solution for Efficient Representation of Segment IDs in SRv6 Networks](https://doi.org/10.23919/CNSM50824.2020.9269075)",
170 | 16th International Conference on Network and Service Management, CNSM 2020 (Acceptance ratio ~19%), 2-6 November 2020, Virtual Conference ([pdf](http://dl.ifip.org/db/conf/cnsm/cnsm2020/1570663490.pdf)). 171 | 172 | - P. Loreti, A. Mayer, P. Lungaroni, S. Salsano, R. Gandhi, C. Filsfils,
173 | "[Implementation of Accurate Per-Flow Packet Loss Monitoring in Segment Routing over IPv6 Networks](10.1109/HPSR48589.2020.9098988)",
174 | IEEE International Conference on High Performance Switching and Routing, HPSR 2020, 11-14 May 2020, Virtual Conference ([pdf-preprint](https://arxiv.org/pdf/2004.11414)). 175 | 176 | - P. L. Ventre, M. M. Tajiki, S. Salsano, C. Filsfils,
177 | "[SDN Architecture and Southbound APIs for IPv6 Segment Routing Enabled Wide Area Networks](https://doi.org/10.1109/TNSM.2018.2876251)",
178 | IEEE Transaction on Network and Service Management, Vol. 15, Issue 4, Dec 2018 ([pdf-preprint](https://arxiv.org/pdf/1810.06008.pdf)) 179 | 180 | - A. Mayer, S. Salsano, P. L. Ventre, A. Abdelsalam, L. Chiaraviglio, C. Filsfils,
181 | "[An Efficient Linux Kernel Implementation of Service Function Chaining for legacy VNFs based on IPv6 Segment Routing](https://arxiv.org/pdf/1901.00936)",
182 | 5th IEEE International Conference on Network Softwarization (NetSoft 2019), 24-28 June 2019, Paris, France 183 | 184 | - A. Mayer, E. Altomare, S. Salsano, F. Lo Presti, C. Filsfils,
185 | "[The Network as a Computer with IPv6 Segment Routing: a Novel Distributed Processing Model for the Internet of Things](https://www.cse.wustl.edu/~cdgill/ngoscps2019/papers/NGOSCPS2019_Mayer_etal.pdf)",
186 | NGOSCPS workshop at the CPS-IoT Week 2019, April 15 2019, Montreal, Canada 187 | 188 | - A. Abdelsalam, S. Salsano, F. Clad, P. Camarillo, C. Filsfils,
189 | "[SR-Snort: IPv6 Segment Routing Aware IDS/IPS](http://netgroup.uniroma2.it/Stefano_Salsano/papers/18-sr-snort-demo.pdf)",
190 | 2018 IEEE Conference on Network Function Virtualization and Software Defined Networks – Demo Track – NFV-SDN’18, Verona, Italy, Nov 27-29, 2018 191 | 192 | - A. Abdelsalam, P. L. Ventre, A. Mayer, S. Salsano, P. Camarillo, F. Clad, C. Filsfils,
193 | "[Performance of IPv6 Segment Routing in Linux Kernel](http://netgroup.uniroma2.it/Stefano_Salsano/papers/18_srv6_perf_sr_sfc_workshop_2018.pdf)",
194 | 1st Workshop on Segment Routing and Service Function Chaining (SR+SFC 2018) at IEEE CNSM 2018, 5 Nov 2018, Rome, Italy 195 | 196 | - A. Abdelsalam, S. Salsano, F. Clad, P. Camarillo, C. Filsfils,
197 | "[SERA: SEgment Routing Aware Firewall for Service Function Chaining scenarios](http://netgroup.uniroma2.it/Stefano_Salsano/papers/18-ifip-sera-firewall-sfc.pdf)",
198 | IFIP Networking 2018 Conference (NETWORKING 2018), Zurich, Switzerland, May 14-16, 2018 199 | 200 | - A. AbdelSalam, F. Clad, C. Filsfils, S. Salsano, G. Siracusano and L. Veltri,
201 | "[Implementation of Virtual Network Function Chaining through Segment Routing in a Linux-based NFV Infrastructure](https://arxiv.org/pdf/1702.05157)",
202 | 3rd IEEE Conference on Network Softwarization (NetSoft 2017), Bologna, Italy, July 2017. 203 | 204 | ### The Team 205 | 206 | - Stefano Salsano 207 | - Ahmed Abdelsalsam 208 | - Andrea Mayer 209 | - Paolo Lungaroni 210 | - Carmine Scarpitta 211 | - Giulio Sidoretti 212 | - Pier Luigi Ventre 213 | - Pierpaolo Loreti 214 | - Francesco Lombardo 215 | - Luca Veltri 216 | - Lorenzo Bracciale 217 | - Mohammad M. Tajiki 218 | 219 | [//]: # "see \cite{idsrarch}\cite{filsfils2015segment}" 220 | [//]: # "# ROSE" 221 | [//]: # "ROSE - Research on Open SRv6 Ecosystem, from Host Stack and APIs to Cloud Infrastructures" 222 | -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-slate -------------------------------------------------------------------------------- /docs/_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | {% seo %} 11 | 12 | 13 | 14 | 15 | 16 |
17 |
18 | {% if site.github.is_project_page %} 19 | View on GitHub 20 | {% endif %} 21 | 22 | {{ site.title | default: site.github.repository_name }} 24 |

{{ site.description | default: site.github.project_tagline }}

25 | 26 | {% if site.show_downloads %} 27 |
28 | Download this project as a .zip file 29 | Download this project as a tar.gz file 30 |
31 | {% endif %} 32 |
33 |
34 | 35 | 36 |
37 |
38 | {{ content }} 39 |
40 |
41 | 42 | 43 | 51 | 52 | {% if site.google_analytics %} 53 | 61 | {% endif %} 62 | 63 | 64 | -------------------------------------------------------------------------------- /docs/images/rose-logo-recolored-red-200x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netgroup/rose/3cb1aea031e5e79911efa0f221d5a8cb59b2343d/docs/images/rose-logo-recolored-red-200x60.png -------------------------------------------------------------------------------- /docs/rose-contacts.md: -------------------------------------------------------------------------------- 1 | # Contacts and how to contribute 2 | 3 | The [ROSE](https://netgroup.github.io/rose/) project [team](#the-team) welcomes your feedbacks and contributions! 4 | 5 | We have a [slack workspace](http://rose-slack.netgroup.uniroma2.it) with separated channels per each sub-project 6 | and a mailing list [rose-srv6@googlegroups.com](mailto:rose-srv6@googlegroups.com). 7 | 8 | The mailing list is available for getting in touch with the team (no subscription is needed to send message to [rose-srv6@googlegroups.com](mailto:rose-srv6@googlegroups.com)). To contact the ROSE project coordinator, send a message to [stefano.salsano@uniroma2.it](mailto:stefano.salsano@uniroma2.it). 9 | 10 | [Click here](https://groups.google.com/forum/#!forum/rose-srv6) to subscribe to the mailing list (google account needed, if you want to subscribe without a google account, just send an email to: [rose-srv6+subscribe@googlegroups.com](mailto:rose-srv6+subscribe@googlegroups.com)) 11 | 12 | **We prefer the slack channels** for help requests and architecture/design discussions related to all sub-projects of ROSE. You are also welcome to **open github issues** for bug reports and feature requests, in this [ROSE repository](https://github.com/netgroup/rose) or in the sub-projects repositories. 13 | 14 | [Click here](http://rose-slack.netgroup.uniroma2.it) to join the slack workspace [rose-srv6.slack.com](http://rose-srv6.slack.com). The workspace includes the following channels: 15 | - #general 16 | - #linux-dataplane 17 | - #srv6-pm 18 | - #helpdesk 19 | - #srv6-p4 20 | - #srv6-control-plane 21 | - ... more channels ... 22 | 23 | ### The Team 24 | 25 | - Stefano Salsano 26 | - Ahmed Abdelsalsam 27 | - Andrea Mayer 28 | - Paolo Lungaroni 29 | - Carmine Scarpitta 30 | - Giulio Sidoretti 31 | - Pier Luigi Ventre 32 | - Pierpaolo Loreti 33 | - Francesco Lombardo 34 | - Mohammad M. Tajiki 35 | 36 | -------------------------------------------------------------------------------- /docs/rose-vm.md: -------------------------------------------------------------------------------- 1 | # Ready-to-go Virtual Machine (rose-srv6) 2 | 3 | The **rose-srv6** ready-to-go Virtual Machine is available for tutorial and development purposes 4 | related to the [ROSE project](https://netgroup.github.io/rose/). 5 | 6 | The rose-srv6 VM includes an emulated network environment based on Mininet and 7 | relies on the Linux kernel for implementing the SRv6 data plane. 8 | 9 | In the control plane, the Linux nodes offer a gRPC southbound API to a controller 10 | developed in python. 11 | 12 | ## SRv6 tutorials based on rose-srv6 VM 13 | 14 | ### ROSE-SRv6 tutorial on Linux - Part 1 15 | 16 | - [Manual creation of SRv6 tunnels in the Linux SRv6 data plane](https://docs.google.com/document/d/18bVMeJ9SHgaFQwcIPgBOWBgP6ayUpyNNFNqRL0MhWgo/){:target="_blank"} 17 | 18 | (used in the HPSR 2020 tutorial: [Segment Routing over IPv6 (SRV6) and the Network Programming Model]( 19 | https://hpsr2020.ieee-hpsr.org/program/tutorials/){:target="_blank"} and in the IEEE NFV-SDN tutorial: [SRv6 and the Network Programming Model Hands-On tutorial](https://nfvsdn2020.ieee-nfvsdn.org/program/tutorials/) ) 20 | 21 | ### ROSE-SRv6 tutorial on Linux - Part 2 22 | 23 | - [ROSE Control Plane : setting up SRv6 tunnels from the SDN controller](https://docs.google.com/document/d/1izO3H8dUt7VoemXtcH-RG4cL127tG9m48edOdFFmktU/){:target="_blank"} 24 | 25 | (used in the IEEE NFV-SDN tutorial: [SRv6 and the Network Programming Model Hands-On tutorial](https://nfvsdn2020.ieee-nfvsdn.org/program/tutorials/) ) 26 | 27 | 28 | ## How to install 29 | 30 | The rose-srv6 VM is currently available for the Virtualbox hypervisor ([download](https://www.virtualbox.org/wiki/Downloads)) and for the VMware hypervisor. 31 | For Virtualbox, we also support Vagrant ([download](https://www.vagrantup.com/downloads.html)) to manage the provisioning of the VM. 32 | 33 | The rose-srv6 VM is used in the IEEE HPSR 2020 tutorial and in the IEEE NFV-SDN 2020, if you want to replicate the experiments during the hands-on part. 34 | We invite you to subscribe to our [slack workspace](http://rose-slack.netgroup.uniroma2.it/) (channel #ieee-nfvsdn-tutorial) 35 | for getting support about the rose-srv6 VM. See also our [contact page](https://netgroup.github.io/rose/rose-contacts.html). 36 | 37 | The **password** for the *rose* user on the rose-srv6 VM is `1234`. To adapt the VM 38 | to your keyboard layout see [below](#change-keyboard-layout). 39 | 40 | ### Virtualbox hypervisor 41 | 42 | #### Option 1. Direct download of .ova image for Virtualbox 43 | 44 | We assume that you have installed the latest version of [Virtualbox](https://www.virtualbox.org/wiki/Downloads) (6.1). 45 | 46 | Download [rose-srv6-v2.7.ova](https://swift.cloud.garr.it/swift/v1/rose/vm/rose-srv6-v2.7.ova) (almost 4 GB). 47 | 48 | 49 | Import *rose-srv6.ova* in Virtualbox (File-> Import Appliance) 50 | 51 | #### Option 2. Deploy using Vagrant 52 | 53 | We assume that you have installed the latest version of [Virtualbox](https://www.virtualbox.org/wiki/Downloads) (6.1) and [Vagrant](https://www.vagrantup.com/downloads.html) (2.2.7). 54 | 55 | ##### Option 2.1 Deploy the VM from the Vagrant Cloud 56 | 57 | ``` 58 | vagrant init rosevm/xubuntu 59 | vagrant up 60 | ``` 61 | 62 | ##### 2.2 Download the .box file from our repository 63 | 64 | Download [rosevm-xubuntu-v2.7.box](https://swift.cloud.garr.it/swift/v1/rose/rosevm-xubuntu-v2.7.box) (almost 4 GB). 65 | 66 | 67 | Create a new directory rose-vm in your PC and move the file *rosevm-xubuntu.box* inside. 68 | 69 | Create a text file called "Vagrantfile" in the rose-vm directory, with this content: 70 | [Vagrantfile](https://github.com/netgroup/rose-vm/raw/master/vagrant-from-box-file/Vagrantfile), then run: 71 | 72 | ``` 73 | cd rose-vm 74 | vagrant up 75 | ``` 76 | 77 | ### VMware hypervisor 78 | 79 | Download [rose-srv6-vmware-v2.7.ova](https://swift.cloud.garr.it/swift/v1/rose/vm/rose-srv6-vmware-v2.7.ova) (almost 4 GB). 80 | 81 | 82 | Import the *rose-srv6-vmware.ova* as described [here](https://docs.vmware.com/en/VMware-Fusion/12/com.vmware.fusion.using.doc/GUID-275EF202-CF74-43BF-A9E9-351488E16030.html){:target="_blank"}. 83 | 84 | ## Advanced tips and tricks 85 | 86 | ### Change keyboard layout 87 | 88 | 1. Open the Settings Manager : Menu -> Settings -> Keyboard. 89 | 1. Switch to the Layout tab. 90 | 1. Uncheck Use system defaults. 91 | 1. Click the Add button and choose the appropriate keymap from the list. 92 | 1. **Remove the previous keymap** 93 | 1. Close the Settings Manager 94 | 95 | ### Rename the VM in option 2.1 96 | 97 | In option 2.1, if you want to change the VM name to rose-srv6, edit the Vagrantfile auto-generated 98 | after the first command, find the following line: 99 | 100 | ``` 101 | config.vm.box = "rosevm/xubuntu" 102 | ``` 103 | add the following three lines immediately afterwards: 104 | 105 | ``` 106 | config.vm.provider "virtualbox" do |v| 107 | v.name = "rose-srv6" 108 | end 109 | ``` 110 | 111 | ### Scripted version of option 2.2 (for Linux) 112 | 113 | ``` 114 | git clone https://https://github.com/netgroup/rose-vm.git 115 | cd rose-vm/vagrant-from-box-file 116 | wget http://swift.cloud.garr.it/swift/v1/rose/vm/rosevm-xubuntu.box 117 | vagrant up 118 | ``` 119 | 120 | ### Using the Virtualbox rose-srv6 VM with VMware hypervisor 121 | 122 | The Virtualbox rose-srv6 VM can also be used on VMware with some adaptation. 123 | For using it with VMware you need to remove Virtualbox guest additions: 124 | 125 | ``` 126 | cd /opt/VBoxGuestAdditions-6.1.6/ 127 | sudo ./uninstall.sh 128 | ``` 129 | 130 | (I've followed [these instructions](https://askubuntu.com/questions/954376/removing-default-virtualbox-guest-additions)). 131 | 132 | ### List of github repositories 133 | 134 | - [https://github.com/netgroup/rose-vm](https://github.com/netgroup/rose-vm) 135 | - [https://github.com/netgroup/rose-vm-build](https://github.com/netgroup/rose-vm-build) 136 | - [https://github.com/netgroup/rose-srv6-tutorial](https://github.com/netgroup/rose-srv6-tutorial) 137 | - [https://github.com/netgroup/rose-dashboard](https://github.com/netgroup/rose-dashboard) 138 | - [https://github.com/netgroup/rose-srv6-control-plane](https://github.com/netgroup/rose-srv6-control-plane) 139 | - [https://github.com/netgroup/rose-srv6-pm-flask](https://github.com/netgroup/rose-srv6-pm-flask) 140 | - [https://github.com/netgroup/rose-srv6-pm-dockerized](https://github.com/netgroup/rose-srv6-pm-dockerized) 141 | 142 | ### Github project board for developers' community 143 | 144 | [rose-srv6 VM project board](https://github.com/orgs/netgroup/projects/2) 145 | 146 | 147 | ## Raw github version of this page (easier for working) 148 | 149 | [https://github.com/netgroup/rose/blob/master/docs/rose-vm.md](https://github.com/netgroup/rose/blob/master/docs/rose-vm.md) 150 | 151 | ## github.io version of this page (nicer to read) 152 | 153 | [https://netgroup.github.io/rose/rose-vm.html](https://netgroup.github.io/rose/rose-vm.html) 154 | 155 | --------------------------------------------------------------------------------