<p>The goal of this document is to introduce the architecture of OSTV NMS so that an engineer can understand its purpose, the different components and the reference documents that explain its installation and operation. OSTV NMS is designed to operate 4G/5G networks based on Amarisoft stack. It derives from SlapOS [<ahref="https://slapos.nexedi.com"title="SlapOS">RD</a>], a general purpose framework designed as an overlay for POSIX systems that automates the management of any times of services (VRAN, CDN, etc.) on a distributed infrastructure. This document is not a manual.</p>
<h1>Executive Summary</h1>
<p>The purpose of a Network Management System (NMS) is to automate all aspects of the management of a telecommunication network, from the initial deployment of base stations with eNodeB VRAN software till the management of user subscriptions. A Network Management System (NMS) should thus automate deployment of telecommunication software, provisioning of telecommunication services, provisioning of user accounts, monitoring of telecommunication services, accounting, billing, etc. A Network Management System should be able to detect and - ideally - predict that a telecommunication service is failing or that a user is complaining of service quality. </p>
<p>A Network Management System (NMS) is a fairly large and complex application software.</p>
<p>It is the central tool for a telecommunication operator to automate the enforcement of common service level policies to all services of the telecommunication network. It is the central tool to manage the quality of service provided to users by knowing what happens, where and when before even being told by users.</p>
<h2>OSTV NMS</h2>
<p>The pictures bellow demonstrate OSTV NMS in action.</p>
<pstyle="text-align: center;"><imgalt="Base Station Geographic Heat Map"src="https://slapos.nexedi.com/P-OSTV-NMS.Front.Page.ScreenShot?format="/></p>
<p>The main screen displays a geographical map which shows in green base stations that are running fine, in red those that are down and in orange those that might become down. It differentiates two cases: the base station hardware ("Computer") and the base station services ("Partitions", ex. Amarisoft enb) running on the base station hardware. Whenever a base station is down, the left side of the rectangle become red. Whenever a service running on the base station encounters an exception, the right side of the rectangle becomes red. In both cases, a ticket is generated to notify administrators of the network of the existence of an issue that they should solve.</p>
<pstyle="text-align: center;"><imgalt="List of Base Stations running eNodeB service"src="https://slapos.nexedi.com/P-OSTV-NMS-eNodeB.List?format="/></p>
<p>The main screen can also be displayed as a list of servers, each of them running various services (emb, CDN, etc) that can be filtered or sorted. Each base stations provides display of its monitoring health using the same color conventions as the heat map and direct access to monitoring tool.</p>
<pstyle="text-align: center;"><imgalt="VRAN Service Monitoring"src="https://slapos.nexedi.com/P-OSTV-NMS.Monitor.Chart.List?format="/></p>
<pstyle="text-align: center;"><imgalt="List of Running Process for a VRAN service"src="https://slapos.nexedi.com/P-OSTV-NMS.Monitor.Process.List?format="/></p>
<p>In order to fix an issue, administrators of the network can access logs on the base station through a graphical user interface. This interface displays the usage of resources (memory, CPU, etc.) as well as the state of so-called "promises" that are configured to enforce the network service quality policy. A simple promise defines for example that "LTE network should be available". A more complex promise should be that "LTE network should provide at least 5 Mbps to each SIM card more than 95% of the time". The notion of "promise" is essential to manage service quality and must be configured or adapted for each telecommunication company.</p>
<p>By configuring promises step by step in response to the resolution of incidents managed by issue tracking tickets, a telecommunication company can fulfill the goal of providing the level of service that its users are expecting and to be informed of incidents before anyone tells them.</p>
<h2>NMS = CCMS</h2>
<p>The purpose of a Network Management System (NMS) is very similar to the purpose of Cloud Computing Management System (CCMS). The equivalence table bellow compares the two:</p>
<caption>Network vs. Cloud Computing Management</caption>
<thead>
<tr>
<thscope="row"> </th>
<thscope="col">Network Management System</th>
<thscope="col">Cloud Management System</th>
</tr>
</thead>
<tbody>
<tr>
<thscope="row">Geography</th>
<td>Which base station is located where?</td>
<td>Which server is located where ?</td>
</tr>
<tr>
<thscope="row">Ownership</th>
<td>Which base station belongs to who?</td>
<td>Which server belongs to who?</td>
</tr>
<tr>
<thscope="row">Hardware profile</th>
<td>Which RRH and device driver is available on which base station?</td>
<td>Which disk storage and device driver is available on which server?</td>
</tr>
<tr>
<thscope="row">Software deployment</th>
<td>Which version of which software (enb, epc) is available on which base station?</td>
<td>Which version of which software (qemu, mariadb, apache) is available on which server?</td>
</tr>
<tr>
<thscope="row">Service provisioning</th>
<td>How many enb services are running on each base station and what is their configuration?</td>
<td>How many VMs are running on each server and what is their configuration?</td>
</tr>
<tr>
<thscope="row">Token provisioning</th>
<td>Which SIM cards can access enb service on which base station?</td>
<td>Which X509 certificates are authorized by apache service on which servers? </td>
</tr>
<tr>
<thscope="row">User management</th>
<td>Who can request and configure a new enb service on which base station?</td>
<td>Who can request and configure a new VM on which server?</td>
</tr>
<tr>
<thscope="row">Project management</th>
<td>Which project can request and configure a new enb service on which base station?</td>
<td>Which project can request and configure a new VM on which server?</td>
</tr>
<tr>
<thscope="row">Organisation management</th>
<td>Which company can request and configure a new enb service on which base station?</td>
<td>Which company can request and configure a new VM on which server?</td>
</tr>
<tr>
<thscope="row">Monitoring</th>
<td>Which enb service or base station is down?</td>
<td>Which VM or base station is down?</td>
</tr>
<tr>
<thscope="row">Accounting</th>
<td>How much data has been consumed by which user or token on which enb during one month?</td>
<td>How much CPU has been consumed by which user or token on which VM during one month?</td>
</tr>
<tr>
<thscope="row">Billing</th>
<td>How much should which user or token owe to which organisation?</td>
<td>How much should which user or token owe to which organisation?</td>
</tr>
</tbody>
</table>
<p>This table demonstrates how it is possible to rely on an existing CCMS to build an NMS by replacing typical cloud computing software (qemu, mariadb, apache) with telecommunication software (Amarisoft), and by replacing the notion of server with the notion of base station. This equivalence makes completely sense for the deployment of VRAN on standard PC, as it is the case with Amarisoft stack. It can also make sense with traditional telecommunication hardware as long as a proxy service that can run on a standard PC provides access and remote control of traditional telecommunication equipment.</p>
<p>Moreover, relying on standard PC is also the best approach to deploy the kind of Edge Computing architecture that is increasingly adopted by telecommunication industry. It is becoming more and more frequent to deploy next to each eNodeB various types of network acceleration services: HTTPS CDN, IoT buffering gateway, media conversion service, etc. The reality of a modern telecommunication networks and decentralized cloud computing such as Edge Computing actually requires a solution that can unify both Network Management and Cloud Computing Management.</p>
<p>This is the approach we have chosen with OSTV NMS.</p>
<h2>SlapOS</h2>
<p>OSTV NMS is based on an existing Open Source / Free Software framework: SlapOS. Although the name "SlapOS" sounds like an operating system, it is not an operating system in the same meaning as Linux, Windows, BSD, etc. are operating systems. SlapOS is a general purpose overlay for distributed infrastructures based on POSIX operating system for (Linux, xBSD, etc.) with a strong focus on service management. </p>
<p>In other words, SlapOS provides the kind of service management features that are missing in Unix (but that used to exist in old mainframe operating systems or in Plan9). Those service management features can be leveraged to create a Network Management System that meets all requirements.</p>
<p>SlapOS has been deployed successfully since 2009 in many companies (Airbus, SANEF, Mitsubishi, etc.) and to operate two public clouds: VIFIB and Teralab. VIFIB is one of the inventors of Edge Computing [<ahref="https://www.pcworld.idg.com.au/article/349884/vifib_wants_host_cloud_computing_home/"title="ViFiB wants you to host cloud computing at home">RD</a>]. Teralab has been awarded a "Silver Label" [<ahref="https://www.teralab-datascience.fr/fr/home/The+project/About+us/niveau-europeen-"title="TeraLab reconnue au niveau européen">RD</a>] by Europe's Big Data Value Association (BDVA). It is interesting to notice that Teralab has chosen SlapOS over other solutions (OpenStack, Proxmox, etc.) because it provided at much lower cost more management features, more control on hardware, more resiliency while consuming less resources.</p>
<p>Those characteristics (management, cost, resiliency, control of hardware, low footprint) are even more important in the case of telecommunication networks.</p>
<h1>SlapOS Architecture for VRAN</h1>
<p>SlapOS architecture is very simple. It is based on only two software components that can be installed on any GNU/Linux operating system: SlapOS Master and SlapOS Node. SlapOS Master is used to register each base station and define their target configuration. SlapOS Node is installed on each base station and ensures that its configuration matches the one defined in SlapOS Master. All other network management features derive from this simple architecture. </p>
<h2>SlapOS Master: Registry</h2>
<p>SlapOS Master acts as a registry of the network management system. It keeps track of the:</p>
<ul>
<li>list of base stations with metadata (geographical location, customer, project, network, etc.);</li>
<li>list of software and versions installed on each base station;</li>
<li>list of services running on each base station with configuration parameters;</li>
<li>list of issues open for each service or base station;</li>
<li>list of invoices for each customer;</li>
<li>list of users of SlapOS Master itself.</li>
</ul>
<p>In a traditional NMS setup, SlapOS Master users are the system administrators of the network, with very simple access control rules.</p>
<p>In a less traditional setup, SlapOS Master is used both by both system administrators and customers of the network. Access control rules are defined to limit access of users to services that they requested.</p>
<h2>SlapOS Node: Base Station Conductor</h2>
<p>SlapOS Node acts as the autonomous conductor of the base station which orchestrates the different services running inside the base station based on a target configuration defined in SlapOS Master.</p>
<p>SlapOS Node will thus make sure that:</p>
<ul>
<li>software and versions installed on the base station are the same as those defined on SlapOS Master for the base station;</li>
<li>services running in the base station and their configuration parameters are the same as those defined on SlapOS Master for the base station.</li>
</ul>
<p>SlapOS Node will also inform SlapOS Master of:</p>
<ul>
<li>connection parameters required to connect to services running on the base station;</li>
<li>health or status of running services.</li>
</ul>
<h2>Everything is a service</h2>
<p>The key motto of SlapOS is that "<strong>everything is a service</strong>". Everything in SlapOS is thus achieved by defining and instantiating services. In the case of Network Management System (NMS), essential services are based on the Amarisoft LTE stack and implement Virtual Radio Access Network (VRAN). But other services may also be required: SIM card management service, HTTPS acceleration service, etc.</p>
<p>Here are a few examples of services that are usually deployed on a SlapOS Node to implement a complete VRAN architecture:</p>
<ul>
<li>LTE which includes nme and ims;</li>
<li>standalone LTE nme;</li>
<li>standalone LTE ims,</li>
<li>SIM database;</li>
<li>HTTPS CDN.</li>
</ul>
<p>Services in SlapOS are defined using the buildout [<ahref="http://www.buildout.org"title="Buildout">RD</a>] build language and the Jinja2 [<ahref="http://jinja.pocoo.org/">RD</a>] templating language. By using buildout and Jinja2, services in SlapOS are defined in a way that is <strong>independent of any GNU/Linux distribution</strong>. It is thus possible to deploy SlapOS Node services on virtually any version of Debian, Ubuntu, CentOS, Fedora, Red Hat, SuSE, Arch, Yocto, Gentoo, etc. without any change to the service definition in buildout. It does not matter if the GNU/Linux distribution is based on initd or systemd. It also does not matter whether the distribution is based on RPM, DEB, portage or pacman packages.</p>
<p>Services in SlapOS consists in reality of two different aspects:</p>
<ul>
<li>a buildout file, also called <strong>Software Release</strong>, which defines how to build the software required to run a service;</li>
<li>a service record in SlapOS Master registry, also known as <strong>Software Instance</strong>, which defines all parameters needed to run an instance of a service.</li>
</ul>
<p>An example of Software Release of Amarisoft LTE stack can be found here: https://lab.nexedi.com/nexedi/amarisoft/blob/master/slapos/software/lte/software.cfg [<ahref="https://lab.nexedi.com/nexedi/amarisoft/blob/master/slapos/software/lte/software.cfg"title="Amarisoft Software Release">RD</a>].</p>
<p>An example of Software Release for an HTTPS accelerator can be found here: https://lab.nexedi.com/nexedi/slapos/blob/master/software/apache-frontend/software.cfg [<ahref="https://lab.nexedi.com/nexedi/slapos/blob/master/software/apache-frontend/software.cfg"title="CDN Me">RD</a>].</p>
<p>If we compare the two aspects of a service to an object programming language, Software Release plays the role of a class and Software Instance plays the role of an object instance. Just like with object languages a single class of service (Software Release) can be used to create multiple service instances (Software Instance). A single base station can thus run multiple nme service instances with different parameters. It is even possible to run multiple nme service instances of multiple versions of the Amarisoft NME software on the same base station.</p>
<p>A base station can thus be shared between different projects, different customers or different networks with different service goals. Yet, it is managed in a simple and consistent way by SlapOS Master registry which keeps a shared state of the network.</p>
<h2>SLAP: Polling from Node to Master</h2>
<p>The Simple Language for Accounting and Provisioning (SLAP) communication protocol between SlapOS Node and SlapOS Master is a polling protocol with adaptive polling frequency. It is SlapOS Node which queries SlapOS master to collect its target state. It is SlapOS Node which notifies SlapOS Master to inform about its current state.</p>
<p>All communication is carried over HTTPS with X509 certificates allocated by SlapOS Master. One X509 certificate is allocated for each base station and for each service. Communication between SlapOS Node and SlapOS Master are thus encrypted and authenticated with a high level of detail. Also, by using HTTPS rather than a specific protocol, it is easy to deploy SlapOS Node in corporate networks which restrict most ports and protocols other than HTTP and HTTPS.</p>
<p>An interesting consequence of polling is that SlapOS Node can be deployed behind a NAT or a firewall. This means that an LTE base station could be deployed behind a standard xDSL Internet access with NAT, yet could be completely controlled remotely. It is also possible to deploy an LTE base station on a secure network with virtually no access from outside world, as long as it is allowed for this base station to query SlapOS Master IP address through HTTPS.</p>
<p>SlapOS polling architecture is thus very convenient for all kinds of applications (edge, defense, industrial, etc.) where base stations are used in a private context.</p>
<h2>Base Station Autonomous Operation</h2>
<p>SlapOS Node runs in an autonomous way. It contains all software and algorithms to ensure that its state converges autonomously towards the state defined in SlapOS Master. This autonomous approach goes in the opposite direction of centralized configuration systems such as Puppet, Chef or even Ansible that use a central server to run all algorithms that automate infrastructure. SlapOS Master only defines the desired target state. SlapOS Node runs algorithms that make its current state converge towards the desired state.</p>
<p>As a consequence, SlapOS Master / SlapOS Node architecture is much more scalable than centralized configuration systems. It also means that a SlapOS Node can still operate and benefit from Network Management algorithms whenever network access to SlapOS Master has been cut. It can thus provide the kind of resiliency that is expected in applications such as edge computing, defense, industrial IoT, etc.</p>
<h2>Zero Knowledge</h2>
<p>SlapOS Master only defines the configuration of SlapOS Nodes. It does need to not store:</p>
<ul>
<li>passwords to access SlapOS nodes;</li>
<li>passwords to access services running on SlapOS nodes;</li>
<li>logs of services running to SlapOS nodes.</li>
</ul>
<p>Thanks to polling, SlapOS nodes do not need to run ssh or any remote control software.</p>
<p>It is thus possible with SlapOS architecture to create a "Zero Knowledge" system. Even by attacking SlapOS Master, it is impossible to retrieve information that would help an intrusion into SlapOS nodes.</p>
<h2>Log analysis</h2>
<p>Another principle of SlapOS architecture is that "<strong>everything that can be decentralized should be decentralized</strong>".</p>
<p>Logs of services running on SlapOS Node are thus by default stored on the node rather than uploaded somewhere. This saves network bandwidth and improves scalability .</p>
<p>A utility called "SlapOS Monitor" is provided to access logs and visualize node state. Network administrators can thus get a nice real-time overview of a collection of SlapOS Nodes: memory, CPU, health, etc. just like in a centralized system. It is even possible to visualize logs offline thanks to modern HTML5 offline technology used by SlapOS Monitor.</p>
<h2>IPv6</h2>
<p>SlapOS Node to SlapOS Master communication is based on IPv4 or IPv6. SlapOS Node to SlapOS Node communication is based on <u>IPv6 only</u>. </p>
<p>This choice was made so that it is possible to allocate a different IPv6 address to each service running on a SlapOS Node and to benefit from various improvements that IPv6 provides to TCP/IP networks. We also made this choice because it simplifies the orchestration of services on Edge networks, by removing all the problems posed by NAT in IPv4. It is also much easier and cheaper to purchase an IPv6 AS range than an IPv4 AS range nowadays in most regions of the world. Last, we observe that any major network operator (NTT, Google) have already migrated their administration network to IPv6.</p>
<p>In terms of IPv6 implementation we strongly recommend to deploy re6st [<ahref="https://re6st.nexedi.com/"title="re6st">RD</a>] resilient network on each SlapOS Node and on SlapOS Master. Although this is not a requirement, it is the only way we are aware of today to implement a low latency resilient network based on babel routing protocol (a protocol that is being standardized by IETF as an improved alternative to OSPF).</p>
<p>For a simple trial or proof of concept, using a private IPv6 address range can be enough.</p>
<h1>Requirement Coverage</h1>
<p>We introduce in this chapter some common requirements for a Network Management System and explain how they are covered by OSTV NMS. Each requirement is defined as a paragraph title, followed by an explanation.</p>
<h2>Hardware</h2>
<h3>NMS software should run on any x86 PC</h3>
<p>NMS Node software can run an any x86 PC. The number of cores that is required depend on how many VRAN services are going to be deployed on a base station. A strict minimum of 2 cores is required. The performance of each core depends mainly . <fontcolor="red"> The detailed information at the "NMS SYSTEM REQUIREMENTS" chapter of the learning track. </font></p>
<h3>NMS Node software should not consume more than one CPU core</h3>
<p>NMS Node software can be configured not to use more than a single process at a time so that it does not consume more than one CPU core. <fontcolor="red">This are archived by enabling plugins to manage cgroups.</font></p>
<h2>Architecture</h2>
<h3>Architecture should be simple enough to setup a complete system in less than one day</h3>
<p>A complete OSTV NMS system based on SlapOS can be installed in less than one day. This is possible because the architecture is based on only two components: SlapOS Master and SlapOS Node. In addition, thanks to the concept of "everything is service", all actions on the system are done in the same way, which simplifies a lot the documentation and accelerates the learning curve. <fontcolor="red">The NMS Learning Track contains all detailed informations to setup the complete system.</font></p>
<h3>Architecture should cover both base station operating system and server side management system</h3>
<p>OSTV NMS consists of SlapOS Node software that is deployed on base stations and SlapOS Master software that is deployed on a central server to manage all base stations. <font="red">More informations on Lecture 1, and as well Lecture 4 and Lecture 5.</font></p>
<h2>Functions</h2>
<h3>NMS should provide a geographic view of base stations with their current state (heat map)</h3>
<p>The first page of OSTV NMS displays a geaographic map of base stations with various colors that represent their current operation state and health. <font="red">More informations Lecture 5: Managing a NMS Deployment</font></p>
<h3>NMS should provide a list of open issues with base stations or users</h3>
<p>The first page of OSTV NMS displays a list of open issues. <font="red">More informations Lecture 5: Managing a NMS Deployment</font></p>
<h3>NMS should provide a history of issues with base stations or users</h3>
<p>All present and past issues can be accessed in the "Ticket" module of OSTV NMS. <font="red">More informations Lecture 5: Managing a NMS Deployment</font></p>
<h3>NMS should provide a view to add a new base station</h3>
<p>A base station can be registered by adding a "Server" in the "Server" module of OSTV NMS. <font="red">This is explained on Lecture 4.</font></p>
<h3>NMS should provide a view to deploy VRAN software on a specified base station</h3>
<p>A VRAN service (ex. enb) can be created by adding an "Amarisoft LTE" instance in the "Service" module of OSTV NMS.<font="red">This is explained on Lecture 4.</font></p>
<h3>NMS should provide a view to change VRAN configuration on specified base station</h3>
<p>The "Service" module of OSTV NMS provides a list of all running services. By clicking on one service, it is possible to change its configuration, stop it or destroy it. <font="red">This is explained on Lecture 4.</font></p>
<h3>NMS should provide a view to add a new SIM card</h3>
<p>A SIM card database can created by adding a "SIM Card" instance in the "Service" module of OSTV NMS. </p>
<p>A SIM card can be created by adding a "SIM Card" so-called "slave" instance in the "Service" module of OSTV NMS. </p>
<font="red">This is explained at the end of Lecture 4.</font>
<h3>NMS should provide a detailed view of processes and resources used by specified VRAN service on specified base station</h3>
<p>OSTV NMS Monitoring tool provides a visual representation of all logs and health information that can be gather from the base station. <font="red">This is explained on Lecture 5.</font></p>
<h3>NMS should provide a detailed view of load and availability of specified VRAN service on specified base station</h3>
<p>OSTV NMS Monitoring tool provides a visual representation of all per process load information that can be gather from the base station.</p>
<p>OSTV NMS Monitoring tool provides a visual representation of all per service availability and history that can be gather from the base station.</p>
<font="red">This is explained on Lecture 5 on how to manage the NMS.</font>
<h3>NMS should provide a list of projects</h3>
<p>The "Project" module provides the list of projects to which a base station can be attached. <font="red">This is explained on Lecture 5, on the classification of Computers.</font></p>
<h3>NMS should provide a list of sites</h3>
<p>The "Site" module provides the list of sites to which a base station can be attached.<font="red">This is explained on Lecture 5, on the classification of Computers.</font></p>
<h3>NMS should provide a list of customers</h3>
<p>The "Organisation" module provides the list of customers or organisations to which a base station can be attached. <font="red">This is explained on Lecture 2 and Lecture 3.</font></p>
<h3>NMS should provide a list of users</h3>
<p>The list of users can be seen by the Administrator user on the underlying ERP5 UI, accessing "Person Module". <font="red">This is explained on Lecture 4.</font></p>
<h3>NMS should provide a view to add a new user</h3>
<p>A subscription system is added on Login Form. Registered users credentials can be approved automatically or require administrator approval. <font="red">This is explained on Lecture 2.</font></p>
<h3>NMS should provide a report of base station availability</h3>
<p>Availability can be measured using the list of "Tickets" on a Computer or using a the Monitoring Tool <font="red">This is explained on Lecture 4</font>, however reports can be extendend to become multiple critereas.</p>
<h3>NMS should provide text input of VRAN service configuration parameters</h3>
<p>The "Service" module of OSTV NMS provides a list of all running services. By clicking on one service, it is possible to input the configuration in text format (XML or JSON). <font="red">This is explained on Lecture 4.</font></p>
<h3>NMS should provide output input of VRAN service configuration parameters</h3>
<p>The "Service" module of OSTV NMS provides a list of all running services. By clicking on one service, it is possible to copy the configuration in text format (XML or JSON).<font="red">This is explained on Lecture 4.</font></p>
<h3>NMS should provide a command line interface and API to automate operations</h3>
<p>All actions in OSTV NMS user interface can also be achieved using the "<strong>slapos</strong>" command line. All actions can be triggered using the HATEAOS REST API of SlapOS Master. <font="red">This is explained on Lecture 1, by using python, REST or "slapos console"</font>.</p>
<h3>NMS should provide a notification system for all or selected issues</h3>
<p>All issues on the home page of OSTV NMS can be accessed from RSS feed which can serve for notification. <font="red">This is explained on Lecture 5.</font></p>
<h3>NMS should provide a way to define pro-active maintenance actions </h3>
<p>All issues on the monitoring tool of OSTV NMS can be accessed from RSS feed which can serve for notification. <font="red">This is explained on Lecture 5.</font></p>
<h2>Distribution</h2>
<h3>All dependencies of NMS software should be specified</h3>
<p>All OSTV NMS software is defined using a buildout file which provides explicit dependencies for all libraries until the glibc. <font="red">This is explained on Lecture 1, 2 and 3.</font></p>
<h3>NMS should run on any GNU/Linux distribution</h3>
<p>OSTV NMS software can be installed on any GNU/Linux distribution. <font="red">This is explained on Lecture 1, 2 and 3.</font></p>
<h3>NMS should run a embedded GNU/Linux, read-only system image with secure boot</h3>
<p>A Debian based read-only system image with secure boot is being developed using ELBE technology. SlapOS software and services will be isolated in a dedicated read-write mount point.</p>
<h2>System</h2>
<h3>NMS should provide a procedure for backup</h3>
<p>All data of OSTV NMS is stored in a single file than can be copies by rsync or ssh.</p>
<fontcolor='red'>
<p>The SlapOS Master can be backuped by saving the folder /srv/slapgrid/*/srv/backup, /opt/slapos/proxy.db, /etc/opt/slapos/slapos.cfg</p>
</font>
<h3>NMS should be resilient to disaster and provide automated recovery </h3>
<p>NMS can be deployed using "resilient WebRunner" which provides automated disaster recovery and daily disaster recovery testing.</p>
<fontcolor='red'><p>On the Lecture 6, you learn how to deploy Webrunner IDE, you can use the webrunner to have a resilient deployment for NMS Master.</p></font>
<h3>NMS should be provide fault tolerance</h3>
<p>As an option, NMS can be deployed using MariaDB Galera and NEO database so that it provides complete real time fault-tolerance for all components (except the load-balancer).</p>
<h1>System Requirements</h1>
<p>A SlapOS system requires at least two computers. One computer will host the SlapOS Master (COMP-ROOT). The other computer will run the first node (COMP-0). Additional nodes (COMP-1,2,3...)
will be required to build up the network and create software instances accessible to users.</p>
<h2>Requirements COMP-ROOT</h2>
<p>The COMP-ROOT computer must have public IPv4 or private IPv4 reachable from COMP-0 (and users). For running a network of 80-160 actual computers, it should at least have:</p>
<ul>
<li>4-8 CPU cores (8 vCores) - preferrably i7, XEON, AMD</li>
<li>8-16 GB RAM</li>
<li>200GB SSD harddisk (480GB preferred)</li>
</ul>
<p>The recommended configuation for this computer is Linux Distribution are Debian 8 or Debian 9 as these are distributions tested continuously on a daily basis.</p>
<h2>Requirements COMP-0</h2>
<p>The COMP-0 computer requires a valid SSL wildcard certificate as well as IPv6. At a minimum it should have:</p>
<ul>
<li>2-4 Cores</li>
<li>4-8 GB RAM</li>
<li>60-100 GB SSD harddisk (mostly needed for logs)</li>
</ul>
<p>The recommended configuation for this computer is Linux Distribution are Debian 8 or Debian 9 as these are distributions tested continuously on a daily basis.</p>
<h2>Dependencies</h2>
<p>
SlapOS is self-contained. Dependencies for Debian [<ahref="https://lab.nexedi.com/nexedi/slapos.package/blob/master/obs/slapos/debian/control"title="SlapOS Dependencies - Debian">RD</a>] and RPM [<ahref="https://lab.nexedi.com/nexedi/slapos.package/blob/master/obs/slapos/templates/slapos.spec.in#L62"title="SlapOS Dependencies - RPM">RD</a>] can
be found on Gitlab (SlapOS requires bridge-utils, python, gcc-c++, make, patch, wget and python-xml). When using the single line installer,
Ansible is another dependency but only of the installer itself. In general, SlapOS installer/package/buildout handle dependencies automatically.
</p>
<p>
For a SlapOS node itself, the list of software includes can be found in the slapos buildout config file [<ahref="https://lab.nexedi.com/nexedi/slapos/blob/master/component/slapos/buildout.cfg#L4"title="SlapOS Buildout.cfg - list of software">RD</a>].
</p>
<fontcolor="red"><p> The detailed informations on this topic present on "SlapOS System Requirements - Minimal Requirements to setup a SlapOS network" at Lecture 1.</p></font>
<h1>Further Readings</h1>
<p>We provide in this chapter a commented list of documents that will provide further understand of OSTV NMS design and operation.</p>
<ul>
<li><strong>SlapOS Architecture</strong> [<ahref="https://slapos.nexedi.com/P-OSTV-DesignDocument.Understanding.Slapos.Architecture">RD</a>] contains a brief introduction of SlapOS and key concepts;</li>
<li><strong>SlapOS Production Deployment Overview</strong> [<ahref="https://www.nexedi.com/P-OSTV-DesignDocument.Nms.System.Requirements"title="NMS System Requirements">RD</a>] provides a complete overview of deploying a production-grade SlapOS system such as the one that needs to be deployed for OSTV NMS;</li>
<li><strong>SlapOS Learning Track</strong> [<ahref="https://slapos.nexedi.com/P-OSTV-Tutorial.Nms.Learning.Track"title="NMS Learning Track">RD</a>] contains a sequence of tutorials and howtos describing the necessary steps for setting up a SlapOS-based system;</li>
<!-- this should be built as a book from separate files. The book should
contain the description for the entry slide, all other slides are file whose
header is used as slide header, image as image and text wrapped in 1+ details
tags -->
<!-- replaces
-->
<sectionclass="master">
<h1>Understanding NMS Software Release</h1>
<detailsopen="open">
<p>
This document aims to explain how the Amarisoft LTE software release is
implemented, and the components related to it.
</p>
<p>The entire source source of the Amarisoft LTE Software release contains:</p>
<ul>
<li>Software profile with the list of dependencies to deploy the stack</li>
<li>Binaries of Amarisoft LTE stack (source code is not available - to use Amarisoft LTE software, please purchase the respective license from Amarisoft)</li>
<li>Instance profiles to define types of instantiation you want to deploy</li>
<li>JSON schemas parameter form rendering</li>
<li>Templates of configuration files for amarisoft stack</li>
</ul>
<p>
The entire software release profile is present on:</p><pre><code>$MASTER_URL/raw/master/</code></pre>
</details>
</section>
<sectionclass="master">
<h1>Table of Content</h1>
<ul>
<li>NMS Software Release</li>
</ul>
</section>
<sectionclass="chapter">
<h1>NMS Software Release</h1>
<detailsopen="open">
<p>
This section will introduce the Amarifsoft stack profile, templates and
which allows to use the <ahref="http://git.erp5.org/gitweb/slapos.recipe.template.git/blob/HEAD:/slapos/recipe/template/README.jinja2.txt?js=1">Jinja2</a> templating language to define variables and load values from user input parameters.
In the example, the number of antennas for download and uploade are defined
by the user, or if not provided, a default value is set.
</p>
</details>
<detailsopen="open">
<p>
In this next example, you can notice that among other values the
<code>cell_list</code> parameter can also be defined by the user:</p><pre><code>/* list of cells */
cell_list: [
{% for cell in cell_list %}
{
/* Broadcasted PLMN identities */
plmn_list: [
"00101",
],
dl_earfcn: {{ cell.get("dl_earfcn") }},
n_id_cell: {{ cell.get("n_id_cell") }},
cell_id: {{ "0x%02x" % cell.get("n_id_cell") }},
tac: {{ "0x%04x" % cell.get("n_id_cell") }},
root_sequence_index: 204, /* PRACH root sequence index */
},
{% endfor %}</code></pre>
<p>
Every configuration file that will end up on <i>leteenb</i>, <i>lteemme</i>,
etc can have predefined default values or values provided by the user.
<!-- this should be built as a book from separate files. The book should
contain the description for the entry slide, all other slides are file whose
header is used as slide header, image as image and text wrapped in 1+ details
tags --><!-- replaces:
-->
<sectionclass="master">
<h1>How To Add LTE Service</h1>
<detailsopen="open">
<p>This document will show how to add LTE Services to an existing server. It is required to have:</p>
<ul>
<li>A NMS network setup with a <ahref="slapos-Tutorial.Install.Slapos.Master.Comp.Root">SlapOS Master</a> (<b>COMP-ROOT</b>) and <ahref="slapos-Tutorial.Install.Slapos.Node.Comp.0">first node</a> (<b>COMP-0</b>)</li>
<li>A Amarisoft LTE (or equivalent) software release <ahref="P-OSTV-Tutorial.Install.Slapos.Node.Comp.123">installed on the COMP-123</a> (<b>COMP-123</b>)</li>
<li>A user account on the NMS system</li>
</ul>
<p>Two ways to setup an eNodeB/ePC server using Amarisoft LTE will be shown (<b>note</b>, that using Amarisoft LTE and being able to follow this howto requires to purchase the respective license from Amarisoft):</p>
<h2>Lab Version</h2>
<p>The <code>software-type</code><i>Default</i> will provide a "Lab" version (for experimenting) in which the following four services are deployed on the same computer in a cluster:</p>
<ul>
<li>1 instance of LTE eNB</li>
<li>1 instance of LTE ePC (MME)</li>
<li>1 instance of LTE IMS</li>
<li>1 instance of LTE MBMS</li>
</ul>
<h2>Production Version</h2>
<p>For production services can be deployed individually which allows to create boxes with multiple LTE eNB instances. This howto only covers instantation of:</p>
<ul>
<li>1 instance of LTE ePC (MME)</li>
<li>1 instance of LTE eNB</li>
</ul>
<p>IMS and MBMS are complimentary services, so their deployment is not shown in this document. They can however be deployed similar to a LTE EPC.</p>
</details>
</section>
<sectionclass="master">
<h1>Table of Content</h1>
<ul>
<li>Instantiating LTE - Default</li>
<li>Instantiating LTE - EPC/eNB</li>
</ul>
</section>
<sectionclass="chapter">
<h1>Instantiating LTE - Default</h1>
<detailsopen="open">
<p>The following steps cover setting up the "Lab" Version on the LTE Box with all relevant services instantiated on one instance.</p>
<p>Head to the list of services by clicking on the <i>Services</i> button on the side menu. The list will show all services currently <b>instantiated</b> (not the software currently installed!). To create an instance of an installed software, click the <i>Add</i> button in the subheader.</p>
<p>Select LTE as this is the service we want to instantiate. The differentiation for the specific service will be made in the instantiation parameters.</p>
</details>
</section>
<section>
<h1>Select LTE Service Version</h1>
<imgalt="SlapOS Dashboard - Select Service Version"src="https://www.nexedi.com/slapos-Interface.Select.Service.Lte.Lab.Version?display=&format=png"/>
<detailsopen="open">
<p>As during installation, please choose the latest version.</p>
<p>You will reach the service configuration menu. Give your service a recognizable name (<i>LTE_ALL_IN_ONE</i> in the example), select <code>Software-Type</code><i>Default</i> (denoting LTE Lab), pick the Computer/Box to install the LTE Lab at the end of the form and then fill out the form parameters. If required, you can expand the form to add additional parameters. At time of writing, parameters include:</p>
<ul>
<li><b>Log Options</b>: Log options settings for enb.cfg, mme.cfg, ims.cfg and mbms.cfg (please refer to Amarisoft documentation for details)</li>
<li><b>GTP bind address</b>: IP address of the network interface connected to the core network</li>
<li><b>MME address</b>: Address of MME for S1AP connection</li>
<li><b>UE configuration path (optional)</b>: A path containing the ue_db configuration on the machine. Usefull for simple Tests</li>
<li><b>RF Parameters / Tx_gain</b>: Tx gain (in dB)</li>
<li><b>RF Parameters / Rx gain</b>: Rx gain (in dB)</li>
<li><b>License Key Path</b>: Path to the Amarisoft license files on the filesytem</li>
<li><b>Cell List</b>: Contains one or more cells configuration to be set on enb.cfg configuration</li>
<li><b>Cell List / DL EARFCN</b>: Downlink EARFCN of the cell</li>
<li><b>Cell List / Physical cell ID</b>: Physical cell ID</li>
</ul>
<p>Click <i>Proceed</i> to begin instantiation.</p>
<p>Refresh the list of current services to show the new service and status.</p>
</details>
</section>
<section>
<h1>Monitor Service Connection Parameter</h1>
<imgalt="SlapOS Dashboard - Service LTE Lab Connection Parameters"src="https://www.nexedi.com/slapos-Interface.Service.Lte.Lab.Connection.Parameters?display=&format=png"/>
<detailsopen="open">
<p>If you click on the instantiated service, you can see the connection parameters. By default they are not expanded.</p>
</details>
</section>
<section>
<h1>Expand Service Connection Parameters</h1>
<imgalt="SlapOS Dashboard - Service LTE Lab Connection Parameters Expanded"src="https://www.nexedi.com/slapos-Interface.Service.Lte.Lab.Connection.Parameters.Expanded?display=&format=png"/>
<detailsopen="open">
<p>By clicking on the <i>Parameter Entry</i> buttons, you can expand the drawers to show all subsequent parameters.</p>
</details>
</section>
<section>
<h1>Service LTE Lab Process List</h1>
<imgalt="SlapOS Dashboard - Service LTE Lab Process List"src="https://www.nexedi.com/slapos-Interface.Service.Lte.Lab.Process.List?display=&format=png"/>
<detailsopen="open">
<p>Scroll down on the connection parameter page. Once the service has been fully instantiated you can see all running processes at the bottom of the page in the table <i>Instances</i>.</p>
</details>
</section>
<sectionclass="chapter">
<h1>Instantiating LTE - EPC/ENB</h1>
<detailsopen="open">
<p>The following steps cover setting the EPC/MME and eNB separately.</p>
<p>Head to the list of services by clicking on the <i>Services</i> button on the side menu. The list will show all services currently <b>instantiated</b> (not the software currently installed!). To create an instance of an installed software, click the <i>Add</i> button in the subheader.</p>
<p>The list of available services is the same as the list of installable software releases used earlier when installing the service. Select LTE as this is the service we want to provide (the differentiation will only be made during configuration).</p>
</details>
</section>
<section>
<h1>Select LTE Service Version</h1>
<imgalt="SlapOS Dashboard - Select Service Version"src="https://www.nexedi.com/slapos-Interface.Select.Service.Lte.Epc.Version?display=&format=png"/>
<detailsopen="open">
<p>As during installation, please choose the latest version.</p>
<p><b>Note</b>, that this is an easy case, as there is only a single version installed on one node. More complex networks will likely have multiple versions of a software installed on different nodes.</p>
<p>You will reach the service configuration menu. Give your service a recognizable name (<i>EPC-STANDALONE</i> in the example), select <code>Software-Type</code><i>EPC</i> pick the Computer/Box to install the LTE EPC at the end of the form and then fill out the form parameters.</p>
<p>Click <i>Proceed</i> to begin instantiation.</p>
<p>Refresh the list of current services to show the new service and status.</p>
</details>
</section>
<section>
<h1>Monitor Service Connection Parameter</h1>
<imgalt="SlapOS Dashboard - Service LTE EPC Connection Parameters"src="https://www.nexedi.com/slapos-Interface.Service.Lte.Epc.Connection.Parameters?display=&format=png"/>
<detailsopen="open">
<p>If you click on the instantiated service, you can see the connection parameters.</p>
</details>
</section>
<section>
<h1>Verify Service Instantiated</h1>
<imgalt="SlapOS Dashboard - Service LTE EPC Accessability"src="https://www.nexedi.com/slapos-Interface.Validate.Service.Lte.Epc.Instantiation?display=&format=png"/>
<detailsopen="open">
<p>Once the monitoring status turns green on a page refresh, the EPC has been instantiated successfully. Then we can add the ENB. Click the <i>Add</i> button in the subheader.</p>
<p>The list of available services is the same as the list of installable software releases used earlier when installing the service. Select LTE as this is the service we want to provide (the differentiation will only be made during configuration).</p>
</details>
</section>
<section>
<h1>Select LTE Service Version</h1>
<imgalt="SlapOS Dashboard - Select Service Version"src="https://www.nexedi.com/slapos-Interface.Select.Service.Lte.Enb.Version?display=&format=png"/>
<detailsopen="open">
<p>As during installation, please choose the latest version.</p>
<p><b>Note</b>, that this is an easy case, as there is only a single version installed on one node. More complex networks will likely have multiple versions of a software installed on different nodes.</p>
<p>You will reach the service configuration menu. Give your service a recognizable name (<i>eNB-STANDALONE</i> in the example), select <code>Software-Type</code><i>eNB</i> pick the Computer/Box to install the LTE eNB at the end of the form and then fill out the form parameters. <b>Note</b>, that if you have multiple boxes on your network, you can (supply and) instantiate eNB on any of the available boxes.</p>
<p>Click <i>Proceed</i> to begin instantiation.</p>
<!-- this should be built as a book from separate files. The book should
contain the description for the entry slide, all other slides are file whose
header is used as slide header, image as image and text wrapped in 1+ details
tags -->
<!-- replaces:
-->
<sectionclass="master">
<h1>How To Add User to SimcardDB</h1>
<detailsopen="open">
<p>
This document will guide through the steps of adding a new user to the SimcardDB which will be queried by eNBs in regular intervals for new IDs.
For following this howto, it is required to have:
</p>
<ul>
<li>A NMS network set up with a <ahref="P-OSTV-Tutorial.Install.Slapos.Master.Comp.Root">SlapOS Master</a> (<b>COMP-ROOT</b>) and <ahref="P-OSTV-Tutorial.Install.Slapos.Node.Comp.0">first node</a> (<b>COMP-0</b>) and ready to use.</li>
<li>A SimcardDB software release <ahref="P-OSTV-Tutorial.Install.Slapos.Node.Comp.0">installed on the COMP-0 or any other machine</a> (<b>COMP-123</b>)</li>
<li>A user account on the NMS system</li>
</ul>
</details>
</section>
<sectionclass="master">
<h1>Table of Content</h1>
<ul>
<li>Add User to SimcardDB</li>
</ul>
</section>
<sectionclass="chapter">
<h1>Add Simcard to SimcardDB</h1>
<detailsopen="open">
<p>
The eNB will query the SimcardDB in regular intervals for new simcard ids.
In this section we will add a simcard to the SimcardDB. You could then
investigate when the simcard id becomes available on the eNB and whether it
can be used (both steps are not part of the howto).
Select SimcardDB as this is the service we want to provide.
The differentiation between instantiating a new SimcardDB and adding a Simcard
will be made using the configuration parameter <i>Software-Type</i> in the next steps.
</p>
</details>
</section>
<section>
<h1>Select SimcardId Service Version</h1>
<imgsrc="https://www.nexedi.com/slapos-Interface.Add.Service.Simcard.Id.Select.Version?display=&format=png"alt="SlapOS Dashboard - Select Service Version"/>
<detailsopen="open">
<p>Please choose the latest version.
</p>
</details>
</section>
<section>
<h1>SimcardId Configuration</h1>
<imgsrc="https://www.nexedi.com/slapos-Interface.Add.Service.Simcard.Id.Configuration.Parameter.List?display=&format=png"alt="SlapOS Dashboard - Service Configuration Parameters"/>
<detailsopen="open">
<p>
Select <code>Software Type</code><i>SimCard</i>, choose the computer which supplied the SimcardDB and fill out the
configuration parameters as shown.
</p>
<p>
Click <i>Proceed</i> to continue.
</p>
</details>
</section>
<section>
<h1>SimcardId Instantiation</h1>
<imgsrc="https://www.nexedi.com/slapos-Interface.Add.Service.Simcard.Id.Instantiation?display=&format=png"alt="SlapOS Dashboard - Service Instantiation"/>
<detailsopen="open">
<p>
Refresh the page to see the new instance. Click on it once appears.
<p>The <code>/slapos/software/lte/</code> repository consists of the following files:</p>
<ul>
<li><ahref="$MASTER_URL/blob/master/slapos/software/lte/buildout.hash.cfg"><b>build.hash.cfg</b></a> - list of MD5 sums for templates included in the software profile</li>
<li><ahref="$MASTER_URL/blob/master/slapos/software/lte/instance-default.jinja2.cfg"><b>instance-default.jinja2.cfg</b></a> - template for instantiating "lab" (default) version</li>
<li><ahref="$MASTER_URL/blob/master/slapos/software/lte/instance-enb-input-schema.json"><b>instance-enb-input-schema.json</b></a> - parameter definition for instantiation of "enb"</li>
<li><ahref="$MASTER_URL/blob/master/slapos/software/lte/instance-enb.jinja2.cfg"><b>instance-enb.jinja2.cfg</b></a> - template for instantiating "enb" software instance</li>
<li><ahref="$MASTER_URL/blob/master/slapos/software/lte/instance-epc-input-schema.json"><b>instance-eps-input-schema.json</b></a> - parameter definiton for instantiation of "epc"</li>
<li><ahref="$MASTER_URL/blob/master/slapos/software/lte/instance-ims-input-schema.json"><b>instance-ims-input-schema.json</b></a> - parameter definition for instantiation of "ims"</li>
<li><ahref="$MASTER_URL/blob/master/slapos/software/lte/instance-ims.jinja2.cfg"><b>instance-ims.jinja2.cfg</b></a> - template for instantiating "ims" software instance</li>
<li><ahref="$MASTER_URL/blob/master/slapos/software/lte/instance-license-input-schema.json"><b>instance-license-input-schema.json</b></a> - parameter definition for instantiation of "licence"</li>
<li><ahref="$MASTER_URL/blob/master/slapos/software/lte/instance-license.jinja2.cfg"><b>instance-license.jinja2.cfg</b></a> - template for instantiating "licencse"</li>
<li><ahref="$MASTER_URL/blob/master/slapos/software/lte/instance-lte-input-schema.json"><b>instance-lte-input-schmema.json</b></a> - parameter definition for instantiation of "lte"</li>
<li><ahref="$MASTER_URL/blob/master/slapos/software/lte/instance-mbms-input-schema.json"><b>instance-mbms-input-schema.json</b></a> - parameter definition of "mbms" installation</li>
<li><ahref="$MASTER_URL/blob/master/slapos/software/lte/instance-mbms.jinja2.cfg"><b>instance-mbms.jinja2.cfg</b></a> - template for instantiating "mbms" software instance</li>
<li><ahref="$MASTER_URL/blob/master/slapos/software/lte/instance-mme.jinja2.cfg"><b>instance-mme.jinja2.cfg</b></a> - template for instantiating "mme" software instance</li>
<li><ahref="$MASTER_URL/blob/master/slapos/software/lte/software.cfg.json"><b>software.cfg.json</b></a> - definition of available software types of this software</li>
<li><ahref="$MASTER_URL/blob/master/slapos/software/lte/ue_db.py.in"><b>ue_db.py.in</b></a> - Simcard DB configuration and access</li>
The instance profile will be used to instantiate whichever software-type the
user selected using the parameters the user provided filling out the template-form.
</p>
<p>
In the LTE profile you can see that <code>[parts]</code> being run are <i>dynamic-template-lte-default</i> and
<i>switch-softwaretype</i> aside from the mandatory <code>[instance]</code> and <code>[jinja2-template-base]</code> sections.
The <i>dynamic-template-lte-default</i> provides instantiation instructions for the default "lab" version of LTE, which is also
one of the available software-types the user can choose from. All software types are then listed in the <i>switch-softwaretype</i> section.
</p>
<p>
Each software-type section defines <i>extra content</i>, listing the parameters and values to be exposed to the Jinja2 template:</p><pre><code>[dynamic-template-lte-ims]
< = jinja2-template-base
template = ${template-lte-ims:target}
filename = instance-lte-ims.cfg
extensions = jinja2.ext.do
extra-context =
raw monitor_template ${monitor2-template:rendered}
...</code></pre>
<p>
With the above information it should possible to re-create the LTE software release,
<!-- this should be built as a book from separate files. The book should
contain the description for the entry slide, all other slides are file whose
header is used as slide header, image as image and text wrapped in 1+ details
tags -->
<!-- replaces:
-->
<sectionclass="master">
<h1>How To Update eNB or EPC</h1>
<detailsopen="open">
<p>
This document will show how to modify the parameters on an instantiated
eNB or EPC service. It is required to have:</p>
<ul>
<li>A NMS network setup with a <ahref="P-OSTV-Tutorial.Install.Slapos.Master.Comp.Root">SlapOS Master</a> (<b>COMP-ROOT</b>) and <ahref="P-OSTV-Tutorial.Install.Slapos.Node.Comp.0">first node</a> (<b>COMP-0</b>)</li>
<li>An Amarisoft LTE or equiavalent software release <ahref="P-OSTV-Tutorial.Install.Slapos.Node.Comp.0">installed on a LTE Box</a> (<b>COMP-123</b>)</li>
<li>An existing instance of eNB or EPC</li>
<li>A user account to the NMS system</li>
</ul>
</details>
</section>
<sectionclass="master">
<h1>Table of Content</h1>
<ul>
<li>Updating Instance Parameters</li>
</ul>
</section>
<sectionclass="chapter">
<h1>Updating Instance Parameters</h1>
<detailsopen="open">
<p>
Each software usually provides a number of configuration parameters which can
be set before instantiating a service (creating an instance). After the service
has been instantiated, all parameters are accessible and editable on the service
page of the NMS Dashboard.
</p>
<p>
<b>Note</b>, that updating an instance (for example by <b>changing a parameter</b>),
will only update this specific instance. All other instances of the same service
remain unchanged. In order to update all instances of a service (for example <b>adding
a new parameter</b>), it is required to create a new software release and trigger the
update of all instances to change to this new release.
Click on the <i>Services</i> button on the to see currently instantiated services.
</p>
</details>
</section>
<section>
<h1>Select Service ENB-EDIT</h1>
<imgsrc="https://www.nexedi.com/slapos-Interface.Edit.Service.Enb.Service.List?display=&format=png"alt="SlapOS Interface - Service List"/>
<detailsopen="open">
<p>Select the ENB-EDIT service. As Amarisoft ENBs require a license to run, this info needs to be provided in the <code>License Key Path</code> field for proper instantiation.</p>
<!-- this should be built as a book from separate files. The book should
contain the description for the entry slide, all other slides are file whose
header is used as slide header, image as image and text wrapped in 1+ details
tags --><!-- replaces:
-->
<sectionclass="master">
<h1>Install SlapOS Node (COMP-123) LTE-Box</h1>
<detailsopen="open">
<p>This document explains how to use the NMS Network Management System to install and configure the Amarisoft Stack on a Standard PC (or Server) containing a SDR Radio board in order to provide 4G/5G networks services. This tutorial can be applied to any deployment of Amarisoft stack running on a Linux Distrubution.</p>
<p>For the purpose the tutorial, this standard computer is called <b>LTE-Box</b>(<b>COMP-123</b>), and it is considered in SlapOS network, as a normal computer/server .</p>
<p>To follow the steps outlined in this section, you need to have:</p>
<ul>
<li>access to a SlapOS Master (COMP-ROOT) - <ahref="slapos-Tutorial.Install.Slapos.Master.Comp.Root">installing and accessing a SlapOS Master</a></li>
<li>a slave node (COMP-0) providing necessary software services - see <ahref="slapos-Tutorial.Install.Slapos.Node.Comp.0">installing a SlapOS node (COMP-0)</a></li>
<li>a new Debian server to register as LTE-Box</li>
</ul>
</details>
</section>
<sectionclass="master">
<h1>Table of Content</h1>
<ul>
<li>LTE Box Introduction</li>
<li>LTE Box Installation</li>
<li>Add Amarisoft LTE to Software Catalogue</li>
<li>Supply LTE Software on LTE Box</li>
<li>Scenario 1: Instantiating LTE - Default</li>
<li>Scenario 2: Instantiating LTE - EPC/ENB</li>
<li>Add Simcard to SimcardDB</li>
</ul>
</section>
<sectionclass="chapter">
<h1>LTE Box Introduction</h1>
<detailsopen="open">
<p>This section will introduce the LTE Box and how to request a default eNodeB deployment. It will show the different types of deployment covered in this tutorial as well as rationale for doing so.</p>
</details>
</section>
<section>
<h1>Requesting Default eNodeB Deployment</h1>
<ul>
<li>Lab Version</li>
<li>Production Version</li>
</ul>
<detailsopen="open">
<p>This tutorial will teach how to setup an eNodeB/ePC server with the Amarisoft stack in two different ways.</p>
<h2>Lab Version</h2>
<p>The <code>software-type</code><i>Default</i> will provide a "Lab" version in which the following four services of the Amarisoft stack are deployed on the same computer in a cluster mode (<b>Scenario 1</b>):</p>
<ul>
<li>1 instance of LTE eNB</li>
<li>1 instance of LTE ePC (MME)</li>
<li>1 instance of LTE IMS</li>
<li>1 instance of LTE MBMS</li>
</ul>
<h2>Production Version</h2>
<p>For production we recommend to deploy using individual instances, which will allow to create boxes with multiple LTE eNB instances. This tutorial shows how to deploy the following as separate instances (<b>Scenario 2</b>):</p>
<ul>
<li>1 instance of LTE ePC (MME)</li>
<li>1 instance of LTE eNB</li>
</ul>
</details>
<detailsopen="open">
<p>This tutorial doesn't cover the deploment of standalone IMS and MBMS as they are complementary services. However, the user can deploy them in a similar way as LTE EPC.</p>
<p>The Amarisoft LTE Software Release automates the deployment of Amarisoft Binaries in an orchestrated way. The Software Release contains all components (lteenb, ltemme, lteims and ltembms) provided by amarisoft stack:</p>
<ul>
<li><i>lteenb</i> - eNodeB software is the server accepting connection from UI (user interfaces)</li>
<li><i>ltemme</i> - Mobile Management Entity - the core network which handles orchestration of eNodeBs in case UI switches from one to another</li>
<li><i>lteims</i> - IP Multimedia System is another protocol such as LTE but designed for services over IP. Please read <ahref="http://www.differencebetween.com/difference-between-lte-and-vs-ims-2/">http://www.differencebetween.com/difference-between-lte-and-vs-ims-2/</a></li>
<li><i>ltembmsgw</i> - Multimedia Broadcast Multicast Services (Gateway) is technology which broadcast the same multimedia content into multiple IP addresses at once to save bandwidth.</li>
</ul>
</details>
<detailsopen="open">
<p>Those binaries are started in the foreground, originally on screen. However, it is undesireable to have binaries inside one screen because then it is not easy to control and monitor their resource usage. Thus NMS is using four on-watch services (which will take action if one process is down.)</p>
<p>The configuration file of the Amarisoft Stack is present here:</p>
Is the core network. This binary keep track of UEs and to which eNodeB they are currently connected. It reroutes traffic when UE switches between eNodeBs. MME also serves as a service bus thus all services must register within MME.</li>
<li><i>IMS</i><br/>
Service connected into MME bus. IMS handles circuit-ish services over IP whereas LTE would have failed because it is intended as data-over-IP service. I think that VoLTE is actually using IMS.</li>
<li><i>MBMSGW</i><br/>
MBMS Gateway is a standalone component connected to BMSC (Broadcast Multicast Service Centre), server supporting streaming content from providers, which is another component inside our core network not provided by Amarisoft. MBMS Gateway is connected to MME which then manages MBMS sessions. I think that MBMS itself handles data delivery by posting the data onto MME bus.</li>
</ul>
</details>
</section>
<section>
<h1>License</h1>
<pre>
<code>sudo su
# mkdir /etc/amarisoft
# # Check if you have the licenses
# ls ~/.amarisoft/lte*
# # Copy Licenses into /etc/amarisoft
# cp ~/.amarisoft/* /etc/amarisoft
# chmod ugo+rx /etc/amarisoft
# chmod -R ugo+r /etc/amarisoft</code></pre>
<detailsopen="open">
<p>The Amarisoft Stack requires licenses to work. <b>YOU HAVE TO ENSURE YOU HAVE THE APPROPRIATE LICENSE TO RUN THE AMARISOFT STACK ON YOUR SERVER.</b> In case of doubt, please contact Amarisoft directly for the licenses.</p>
<p>Once you have the license, please place them on the following folder for the purpose of the tutorial:</p>
<pre>
<code>/etc/amarisoft/</code></pre>
.
<p>Also ensure, users can access it:</p>
<pre>
<code># chmod ugo+rx /etc/amarisoft
# chmod -R ugo+r /etc/amarisoft</code></pre>
<p>After this you can proceed with the installation of your Node.</p>
</details>
</section>
<sectionclass="chapter">
<h1>LTE Box Installation</h1>
<detailsopen="open">
<p>The following steps are partially covered in a generic way in <ahref="slapos-Tutorial.Install.Slapos.Node.Comp.0">installing SlapOS node (COMP-0)</a>. The main difference is for all LTE-Box servers, the services provided by COMP-0 (Frontend, IPv6, Registry, SimcardDB) are already available - so setup is somewhat easier.</p>
<p>Start by logging into your SlapOS Master Dashboard with a user with administrative privileges to request a new server token. Click the <i>Services</i> menu on the side menu to open the list of existing services.</p>
<p>Head to the list of services by clicking on the <i>Services</i> button on the side menu. The list will show all services currently <b>instantiated</b> (not the software currently installed!). To create an instance of an installed software, click the <i>Add</i> button in the subheader.</p>
<p>The list of available services is the same as the list of installable software releases used earlier when installing the service. Select Re6st as this is the service we want to provide. The differentiation between Registry and Token will be made via the configuration parameter <b>Software-Type</b>.</p>
</details>
</section>
<section>
<h1>Select Re6st Service Version</h1>
<imgalt="SlapOS Dashboard - Select Service Version"src="https://www.nexedi.com/slapos-Interface.Select.Service.Re6st.Token.Version?display=&format=png"/>
<detailsopen="open">
<p>As during installation, please choose the latest version.</p>
</details>
</section>
<section>
<h1>Re6st Registry Configuration</h1>
<imgalt="SlapOS Dashboard - Re6st Token Service Configuration Parameters"src="https://www.nexedi.com/slapos-Interface.Service.Re6st.Token.Configuration.Parameters?display=&format=png"/>
<detailsopen="open">
<p>Select <i>Software Type</i><code>Re6st Token</code> which will load a form with instance-specific parameters. As mentioned, the token is actually a slave instance of the Registry (and in case of <b>COMP-0</b> a first gateway node).</p>
<p>Every new node will require a token, so give this token a recognizable name (<code>Re6st-LTE-Box-123</code> for example).</p>
<p>Select the <i>Computer</i> on which the Registry of your SlapOS Master was installed at the bottom of the page, then click <i>Proceed</i> to instantiate the service and be forwarded to the list of current services. Refresh the page, it may take a few minute for the node to be instantiated and the token to appear. It is a single use token to connect <b>one</b> other node to the network.</p>
</details>
</section>
<section>
<h1>Instantiate Re6st Token</h1>
<imgalt="SlapOS Dashboard - Service Re6st Token Instantiation"src="https://www.nexedi.com/slapos-Interface.Instantiate.Service.Re6st.Token?display=&format=png"/>
<detailsopen="open">
<p>Click <i>Proceed</i> to instantiate a new token. Refresh the list of instantiated services to make the token appear. Click on it to access the connection parameters.</p>
<p>Locate the token in the Connection Parameters. It might require a few minutes to show up. Refresh the page to see whether the token has been instantiated.</p>
<p>ssh into the terminal of your server, switch to root and verfiy <i>wget</i> is available. Then install re6st as shown above. At some point the script will ask you:</p>
<pre>
<code>What is the Url of the Re6st registry [https://re6stnet.nexedi.com]:
Please insert your re6stnet token [notoken]:</code></pre>
<p>Provide the <i>master-url</i> you noted when setting the port forwarding for the Re6st Registry in <ahref="/slapos-Tutorial.Install.Slapos.Master.Comp.Root">installing the SlapOS Master</a> (it should be <code>http://[your_IPv4_address]:9201</code>) along with the <i>token</i> created in the previous steps and continue. The setup should finish without errors:</p>
<pre>
<code>...
PLAY RECAP *********************************************************************
<p>and log in as a regular user (the zope username/password will not work, you should have created a user account on the SlapOS Dashboard while setting up the SlapOS Master). Click on the <i>Servers</i> link in the side to go to your list of servers.</p>
<p>When using the single line installer, you have to provide a X509 security token to identifiy your node with a SlapOS Master and enable it to manage the node within a network. To get such a token, in the subheader, click <i>Token</i>.</p>
</details>
</section>
<section>
<h1>Association Token</h1>
<imgalt="SlapOS Node Installation - Association Token"src="https://www.nexedi.com/vifib-Interface.Server.Token?display=&format=png"/>
<detailsopen="open">
<p>Click <i>Proceed</i> to request a token. Once it's generated, copy the token for later. <b>Note</b>, that the token can only be used once. If the installation of SlapOS fails for whatever reason and you need to retry, you need to request a new token before. Head back to the terminal.</p>
What is the url to the SlapOS Master API? [https://slap.vifib.com/]:
What is the url to the SlapOS Master Website? [https://slapos.vifib.com/]:
What is this computer name? [noname]:
If you have slapos token if you have? [notoken]:
</code></pre>
<detailsopen="open">
<p>Continue and use the single line installer. You will be asked a set of questions during the installation. As you are connecting to your own master, on the first question, please point to port 5443 of your master's IPv4 adress, so enter <code>https://[your_IPv4_address]:5443</code> and on the second question, please add your SlapOS Master dashboard url. Same as you are using to get the token:</p>
<pre>
<code>https://master.YOUR_DOMAIN
OR
https://[your_IPv4_address]:443/erp5/web_site_module/hostingjs/</code> (If you used this one)</pre>
<p>Choose a name for your computer (like <i>LTE-BOX-1</i> to identity it in your network and finally enter the association token you have received earlier from your SlapOS Master. The installation can be repeated in case something goes wrong or you would like to change some of the entered parameters.</p>
<p>Once the installation has finished without errors, you should see:</p>
<pre>
<code>...
PLAY RECAP *********************************************************************
<p>In case installation fails and you want to start over, you need to <b>request a new token</b> as mentioned above and, depending on whether already created, remove any existing configuration in <code>/etc/opt/slapos/slapos.cfg</code> before restarting.</p>
</details>
<detailsopen="open">
<p>You can verify that SlapOS was installed by trying:</p>
2018-04-21 13:07:29 slapos[13279] INFO Updating Computer
2018-04-21 13:07:30 slapos.format[13279] INFO Partition resources saved to slappart0
2018-04-21 13:07:30 slapos.format[13279] INFO Partition resources saved to slappart1
2018-04-21 13:07:30 slapos.format[13279] INFO Partition resources saved to slappart2
2018-04-21 13:07:30 slapos.format[13279] INFO Partition resources saved to slappart3
2018-04-21 13:07:30 slapos.format[13279] INFO Partition resources saved to slappart4
2018-04-21 13:07:30 slapos.format[13279] INFO Partition resources saved to slappart5
2018-04-21 13:07:30 slapos.format[13279] INFO Partition resources saved to slappart6
2018-04-21 13:07:30 slapos.format[13279] INFO Partition resources saved to slappart7
2018-04-21 13:07:30 slapos.format[13279] INFO Partition resources saved to slappart8
2018-04-21 13:07:30 slapos.format[13279] INFO Partition resources saved to slappart9
2018-04-21 13:07:30 slapos[13279] INFO Posting information to 'https://54.37.31.108:5443/'
2018-04-21 13:07:30 slapos[13279] INFO slapos successfully prepared the computer.</code></pre>
</details>
</section>
<section>
<h1>SlapOS Dashboard - Registered Servers</h1>
<imgalt="SlapOS - Server List"src="https://www.nexedi.com/slapos-Interface.Server.List?display=&format=png"/>
<detailsopen="open">
<p>Head back to your SlapOS Dashboard and verify the list of servers now includes your SlapOS Node which was associated to your network using the token you had created. You may have to refresh the page for the server to show up.</p>
<p><b>Note</b>, the entry has three clickable areas:</p>
<ul>
<li>The line itself (click <i>server name</i> for example) points to the server configuration</li>
<li>Clicking the <i>Computer</i> button will open the monitor - the green color indicates the server is active and contacting the Master.</li>
<li>As this server does not have any computer partitions installed yet, the second button next to <i>Computer</i> is still missing.</li>
</ul>
</details>
</section>
<sectionclass="chapter">
<h1>Add Amarisoft LTE to Software Catalogue</h1>
<detailsopen="open">
<p>As Amarisoft LTE is NOT a standard software included in SlapOS, the software release has to be manually added to the software catalog before being able to supply and instantiate it. <b>Note, this has to be done only once</b>. However the steps are the same for <b>adding and also updating(!)</b> all software releases on SlapOS.</p>
<p>The following steps require a user with administator privileges which should have been created during installation of the SlapOS Master for adding SimcardDB to the catalog.</p>
</details>
</section>
<section>
<h1>Administrator Login to ERP5 Interface</h1>
<imgalt="ERP5 Interface - Login with Administrator Account"src="https://www.nexedi.com/erp5-Interface.Administrator.Login?display=&format=png"/>
<detailsopen="open">
<p>Login to the ERP5 interface underlying the SlapOS Dashboard with the user with administrator privileges. The ERP5 interface can be accessed at <code>[your_IPv4_address]/erp5/</code>.</p>
<p>Warning: Don't login as "zope" user !</p>
<p>The final step is to publish the Software Product. Select <i>Action</i> and <i>Publish</i> to change the workflow change.</p>
</details>
</section>
<section>
<h1>Published Software Product</h1>
<imgalt="ERP5 Interface - Administrator Verify Published Software Product LTE"src="https://www.nexedi.com/erp5-Interface.Verify.Published.Software.Product.Lte?display=&format=png"/>
<detailsopen="open">
<p>Confirm and once you are back on the Software Product page and the state is changed to <i>Published</i>, click on the <i>ERP5</i> breadcrumb to get back to the main homescreen.</p>
<p>Repeat the steps, so once on the software release page, select <i>Action</i> and <i>Add Software Release</i>.</p>
<p><b>Note</b>, that whenever you want to upgrade a software release, you have to create a new software release entry with the difference being the version and <code>software.cfg</code> being pointed to, which can both be set in the next steps.</p>
<p>Head over to the repository you are using to host software releases and locate the <code>software.cfg</code> file which contains the instructions for building your your software. Find the URL of this software release. <b>Note</b>, that you can use different releases, for example:</p>
<p><code>[TAG]</code> can be any value listed on the published releases, found on <ahref="https://lab.node.vifib.com/nexedi/amarisoft/tags">https://lab.node.vifib.com/nexedi/amarisoft/tags</a>. Continue using the latest tagged version which is <i>v0.2</i>. Note down the following url:</p>
<p>Fill the form as shown in the screenshot. Make sure you select <i>HTTP</i> and provide the url to your <code>software.cfg</code>. Also select the software product for which this release is made, define a version and once all fields have been filled out, click the disk icon to save.</p>
<p>The final step is to publish the Software Release <b>Alive</b> (publishing alive, will allow to edit the provided data in case necessary). Select <i>Action</i> and <i>Publish Alive</i> to change the workflow change.</p>
</details>
</section>
<section>
<h1>Published Software Release</h1>
<imgalt="ERP5 Interface - Administrator Published Software Release LTE"src="https://www.nexedi.com/erp5-Interface.Verify.Published.Software.Release.Lte?display=&format=png"/>
<detailsopen="open">
<p>Confirm and once you are back on the Software Release page and the state is changed to <i>Published Alive</i>, click on the <i>ERP5</i> breadcrumb to get back to the main homescreen.</p>
</details>
</section>
<section>
<h1>Software Available in SlapOS Dashboard</h1>
<imgalt="SlapOS Interface - Published Software Release LTE Available"src="https://www.nexedi.com/slapos-Interface.Verify.Published.Software.Release.Lte?display=&format=png"/>
<detailsopen="open">
<p>Head over to the SlapOS Dashboard. If you pick a computer and click Supply, the newly defined software will now be on the list. We can continue and install LTE on this machine.</p>
</details>
</section>
<sectionclass="chapter">
<h1>Supply LTE Software on LTE Box</h1>
<detailsopen="open">
<p>This section will cover the steps for installing LTE on the newly formatted server using the SlapOS Dashboard.</p>
<p>Back in the SlapOS Dashboard go to <i>Servers</i> and select the LTE Box you have created. There is no software currently installed. Click <i>Supply</i> in the subheader.</p>
<p>After clicking <i>Proceed</i> you will be forwarded to the installation status page.</p>
<p>Installation will take some time depending on the software you are installing, so either refresh the current page or check installation status directly by either going to your <i>Servers</i> list and selecting the machine you chose during installation or clicking directly on <i>Computer Reference</i>.</p>
<p>You can see the installed service is now available in the bottom list. The indicator will stay red until the software has finished compiling and installing. Once the installation status bar changes to green on a refresh of the page, the installation has finished.</p>
<p>You can follow the compilation by looking at the <code>slapos-node-software.log</code> using:</p>
<p>Head to the list of services by clicking on the <i>Services</i> button on the side menu. The list will show all services currently <b>instantiated</b> (not the software currently installed!). To create an instance of an installed software, click the <i>Add</i> button in the subheader.</p>
<p>The list of available services is the same as the list of installable software releases used earlier when installing the service. Select LTE as this is the service we want to provide.</p>
</details>
</section>
<section>
<h1>Select LTE Service Version</h1>
<imgalt="SlapOS Dashboard - Select Service Version"src="https://www.nexedi.com/slapos-Interface.Select.Service.Lte.Lab.Version?display=&format=png"/>
<detailsopen="open">
<p>As during installation, please choose the latest version.</p>
<p><b>Note</b>, that this is an easy case, as there is only a single version installed on one node. More complex networks will likely have multiple versions of a software installed on different nodes.</p>
<p>You will reach the service configuration menu. Give your service a recognizable name (<i>LTE_ALL_IN_ONE</i> in the example), select <code>Software-Type</code><i>Default</i> (denoting LTE Lab), pick the Computer/Box to install the LTE Lab at the end of the form and then fill out the form parameters. If required, you can expand the form to add additional parameters. Parameters include:</p>
<ul>
<li><b>Log Options</b>: Log options settings for enb.cfg, mme.cfg, ims.cfg and mbms.cfg (See Amarisoft official documentation for understand the format)</li>
<li><b>GTP bind address</b>: IP address of the network interface connected to the core network</li>
<li><b>MME address</b>: Address of MME for S1AP connection</li>
<li><b>UE configuration path (optional)</b>: A path containing the ue_db configuration on the machine. Usefull for simple Tests</li>
<li><b>RF Parameters / Tx_gain</b>: Tx gain (in dB)</li>
<li><b>RF Parameters / Rx gain</b>: Rx gain (in dB)</li>
<li><b>License Key Path</b>: Path to where the license *.key files are on the filesytem (to be used instead ~/.license or ~/.amarisoft folder</li>
<li><b>Cell List</b>: Contains one or more cells configuration to be set on enb.cfg configuration</li>
<li><b>Cell List / DL EARFCN</b>: Downlink EARFCN of the cell</li>
<li><b>Cell List / Physical cell ID</b>: Physical cell ID</li>
</ul>
<p>Click <i>Proceed</i> to begin instantiation.</p>
<p>This list of parameters are only a subset of the full amarisoft parameters, you can learn how to extend this list on the "Lecture 6".</p>
<p>The LTE Lab will be installed inside a computer partition (see <ahref="./slapos-DesignDocument.Slapos.System.Requirements">SlapOS system requirements</a>)</p>
</details>
</section>
<section>
<h1>Monitor Service Connection Parameter</h1>
<imgalt="SlapOS Dashboard - Service LTE Lab Connection Parameters"src="https://www.nexedi.com/slapos-Interface.Service.Lte.Lab.Connection.Parameters?display=&format=png"/>
<detailsopen="open">
<p>If you click on the instantiated service, you can see the connection parameters. By default they are not expanded.</p>
</details>
</section>
<section>
<h1>Expand Service Connection Parameters</h1>
<imgalt="SlapOS Dashboard - Service LTE Lab Connection Parameters Expanded"src="https://www.nexedi.com/slapos-Interface.Service.Lte.Lab.Connection.Parameters.Expanded?display=&format=png"/>
<detailsopen="open">
<p>By clicking on the <i>Parameter Entry</i> buttons, you can expand the drawers to show all subsequent parameters.</p>
</details>
</section>
<section>
<h1>Service LTE Lab Process List</h1>
<imgalt="SlapOS Dashboard - Service LTE Lab Process List"src="https://www.nexedi.com/slapos-Interface.Service.Lte.Lab.Process.List?display=&format=png"/>
<detailsopen="open">
<p>Scroll down on the connection parameter page. Once the service has been fully instantiated you can see all running processes at the bottom of the page in the table <i>Instances</i>.</p>
</details>
</section>
<sectionclass="chapter">
<h1>Scenario 2: Instantiating LTE - EPC/ENB</h1>
<detailsopen="open">
<p>The following steps cover setting the EPC/MME and ENB separately.</p>
<p>Head to the list of services by clicking on the <i>Services</i> button on the side menu. The list will show all services currently <b>instantiated</b> (not the software currently installed!). To create an instance of an installed software, click the <i>Add</i> button in the subheader.</p>
<p>The list of available services is the same as the list of installable software releases used earlier when installing the service. Select LTE as this is the service we want to provide (the differentiation will only be made during configuration).</p>
</details>
</section>
<section>
<h1>Select LTE Service Version</h1>
<imgalt="SlapOS Dashboard - Select Service Version"src="https://www.nexedi.com/slapos-Interface.Select.Service.Lte.Epc.Version?display=&format=png"/>
<detailsopen="open">
<p>As during installation, please choose the latest version.</p>
<p><b>Note</b>, that this is an easy case, as there is only a single version installed on one node. More complex networks will likely have multiple versions of a software installed on different nodes.</p>
<p>You will reach the service configuration menu. Give your service a recognizable name (<i>EPC-STANDALONE</i> in the example), select <code>Software-Type</code><i>EPC</i> pick the Computer/Box to install the LTE EPC at the end of the form and then fill out the form parameters.</p>
<p>Click <i>Proceed</i> to begin instantiation.</p>
<imgalt="SlapOS Dashboard - Service LTE EPC Connection Parameters"src="https://www.nexedi.com/slapos-Interface.Service.Lte.Epc.Connection.Parameters?display=&format=png"/>
<detailsopen="open">
<p>If you click on the instantiated service, you can see the connection parameters.</p>
</details>
</section>
<section>
<h1>Verify Service Instantiated</h1>
<imgalt="SlapOS Dashboard - Service LTE EPC Accessability"src="https://www.nexedi.com/slapos-Interface.Validate.Service.Lte.Epc.Instantiation?display=&format=png"/>
<detailsopen="open">
<p>Once the monitoring status turns green on a page refresh, the EPC has been instantiated successfully. Then we can add the ENB. Click the <i>Add</i> button in the subheader.</p>
<p>The list of available services is the same as the list of installable software releases used earlier when installing the service. Select LTE as this is the service we want to provide (the differentiation will only be made during configuration).</p>
</details>
</section>
<section>
<h1>Select LTE Service Version</h1>
<imgalt="SlapOS Dashboard - Select Service Version"src="https://www.nexedi.com/slapos-Interface.Select.Service.Lte.Enb.Version?display=&format=png"/>
<detailsopen="open">
<p>As during installation, please choose the latest version.</p>
<p><b>Note</b>, that this is an easy case, as there is only a single version installed on one node. More complex networks will likely have multiple versions of a software installed on different nodes.</p>
<p>You will reach the service configuration menu. Give your service a recognizable name (<i>eNB-STANDALONE</i> in the example), select <code>Software-Type</code><i>eNB</i> pick the Computer/Box to install the LTE eNB at the end of the form and then fill out the form parameters. <b>Note</b>, that if you have multiple boxes on your network, you can (supply and) instantiate eNB on any of the available boxes.</p>
<p>Click <i>Proceed</i> to begin instantiation.</p>
<imgalt="SlapOS Dashboard - Service LTE eNB Connection Parameters"src="https://www.nexedi.com/slapos-Interface.Service.Lte.Epc.Connection.Parameters?display=&format=png"/>
<detailsopen="open">
<p>If you click on the instantiated service, you can see the connection parameters.</p>
</details>
</section>
<section>
<h1>Verify Service Instantiated</h1>
<imgalt="SlapOS Dashboard - Service LTE eNB Accessability"src="https://www.nexedi.com/slapos-Interface.Verify.Service.Lte.Enb.Accessability?display=&format=png"/>
<detailsopen="open">
<p>Once the monitoring status turns green on a page refresh, the eNB has been instantiated successfully.</p>
</details>
</section>
<sectionclass="chapter">
<h1>Add Simcard to SimcardDB</h1>
<detailsopen="open">
<p>Once the EPC and eNB have been setup, the system should be ready to operate. The eNB will query the SimcardDB in regular intervals for new simcard ids. In this section we will add a simcard to the SimcardDB. You could then investigate when the simcard id becomes available on the eNB and whether it can be used (both steps are not part of the tutorial).</p>
<p>Select SimcardDB as this is the service we want to provide. The differentiation between SimcardDB and Simcard will be made on the configuration parameter <i>Software-Type</i></p>
</details>
</section>
<section>
<h1>Select SimcardDB Service Version</h1>
<imgalt="SlapOS Dashboard - Select Service Version"src="https://www.nexedi.com/slapos-Interface.Select.Service.Simcard.Id.Version?display=&format=png"/>
<detailsopen="open">
<p>As during installation, please choose the latest version.</p>
</details>
</section>
<section>
<h1>SimcardDB Configuration</h1>
<imgalt="SlapOS Dashboard - Service Configuration Parameters"src="https://www.nexedi.com/slapos-Interface.Service.Simcard.Id.Configuration.Parameters?display=&format=png"/>
<detailsopen="open">
<p>Select <code>Software Type</code><i>SimCard</i>, choose the computer which supplied the SimcardDB and fill out the configuration parameters as shown.</p>
<p>Click proceed to instantiate the new SimCard. This is the end of the tutorial for setting up an LTE Box.</p>
<!-- this should be built as a book from separate files. The book should
contain the description for the entry slide, all other slides are file whose
header is used as slide header, image as image and text wrapped in 1+ details
tags --><!-- replaces:
-->
<sectionclass="master">
<h1>NMS User Learning Track</h1>
<detailsopen="open">
<p>This learning track is meant for <b>USERS</b> of a <b>Network Management System</b> (NMS) based on SlapOS. After finishing this learning track, you should have a good enough understanding of how to use the NMS to manage a network.</p>
<p>The track is split into lectures introducing a certain component and showing how they are setup and fit into the overall architecture.</p>
</details>
</section>
<sectionclass="master">
<h1>Table of Content</h1>
<ul>
<li>Lecture 0: Introduction</li>
<li>Lecture 1: How to add LTE Service</li>
<li>Lecture 2: How to create a new Software Release</li>
<li>Lecture 3: How to update configuration of eNB or EPC</li>
<li>Lecture 4: How to add User to SimcardDB</li>
</ul>
</section>
<sectionclass="chapter">
<h1>Lecture 0: NMS Introduction</h1>
<detailsopen="open">
<p>This section is a global introduction to NMS and only contains reading materials. It will introduce the NMS and underlying SlapOS sytems and provide answers to key questions. The following documents should be read:</p>
<p>This section will show how to instantiate a new LTE service (eNB or EPC) on a machine. It does NOT cover setting up a machine itself or adding the Amarisoft LTE software release to the software catalog of the SlapOS Master so it can be installed on this machine. These steps are part of the admin learning track and can be found in <ahref="P-OSTV-Tutorial.Install.Slapos.Node.Comp.123">installing COMP-123 LTE Box</a> (<ahref="P-OSTV-Tutorial.Install.Slapos.Node.Comp.123?portal_skin=Slide">presentation</a>). The following document should be read:</p>
<h1>Lecture 2: How to create a new Software Release</h1>
<detailsopen="open">
<p>This section will show how to create a basic software release and explain how the different parts interact. The result of this howto will be a software profile (<code>software.cfg</code>) file. If put on a repository with accessible url, this profile can be used in a NMS network.</p>
<p>This howto does NOT cover how to add a new software product and this release to the NMS software catalogue or how to install this software on a network node. These steps can be found in <ahref="slapos-Tutorial.Install.Slapos.Node.Comp.0">Install SlapOS Node (COMP-0) (</a><ahref="slapos-Tutorial.Install.Slapos.Node.Comp.0?portal_skin=Slide">presentation</a>) and <ahref="P-OSTV-Tutorial.Install.Slapos.Node.Comp.123">installing a network node (COMP-123)</a> (<ahref="P-OSTV-Tutorial.Install.Slapos.Node.Comp.123?portal_skin=Slide">presentation</a>). The following document should be read for this lecture:</p>
<h1>Lecture 3: How to update configuration of eNB or EPC</h1>
<detailsopen="open">
<p>This section will show how to update the configuration of an eNB or EPC instance through the NMS Dashboard. It does NOT cover adding new parameters to eNB or EPC themself, which is shown in the lecture on <ahref="slapos-Tutorial.Extend.Software.Release">extending the software release</a> (<ahref="slapos-Tutorial.Extend.Software.Release?portal_skin=Slide">presentation</a>). The following document should be read for this lecture:</p>
<ul>
<li><ahref="P-OSTV-HowTo.Update.Enb.Or.Epc">OSTV HowTo - Update eNB or EPC</a> (<ahref="P-OSTV-HowTo.Update.Enb.Or.Epc?portal_skin=Slide">presentation</a>)</li>
</ul>
</details>
</section>
<sectionclass="chapter">
<h1>Lecture 4: How to add User to SimcardDB</h1>
<detailsopen="open">
<p>This section will show how to instantiate a new user (SimcardID) on the SimcardDB. The following document should be read:</p>
<ul>
<li><ahref="P-OSTV-HowTo.Add.User.To.Simcard.Db">OSTV HowTo - Add User to SimcardDB</a> (<ahref="P-OSTV-HowTo.Add.User.To.Simcard.Db?portal_skin=Slide">presentation</a>)</li>
<!-- this should be built as a book from separate files. The book should
contain the description for the entry slide, all other slides are file whose
header is used as slide header, image as image and text wrapped in 1+ details
tags --><!-- replaces:
-->
<sectionclass="master">
<h1>NMS Learning Track</h1>
<detailsopen="open">
<p>This learning track contains a sequence of tutorials that will introduce SlapOS and teach the setup and use of a <b>Network Management System</b> (NMS) based on SlapOS <b>for ADMINS</b>. After finishing this learning track, you should have a ready-to-use network and be familiar with providing and extending existing software to users as well as monitoring network status.</p>
<p>The course is split into lectures introducing a certain component and showing how they are setup and fit into the overall architecture. All documents that are part of this learning track are also included in PDF and hmtl format.</p>
<p>If applicable, each lecture also provides links to additional generic SlapOS documentation such as HowTos explaining certain aspects in more detail or outlining how certain prerequisities of a component can be met.</p>
<p><b>Note</b>, that the lectures are meant to be read in the order listed. Reading material and actual tutorials to setup the will be pointed out.</p>
</details>
</section>
<sectionclass="master">
<h1>Table of Content</h1>
<ul>
<li>Lecture 0: NMS Introduction</li>
<li>Lecture 1: SlapOS Introduction and Architecture</li>
<li>Lecture 2: Install and Configure NMS SlapOS Master</li>
<li>Lecture 3: Bootstrap Frontend, IPv6 Network and SimcardDB</li>
<p>This section is a global introduction to NMS and only contains reading materials. It will introduce the NMS and underlying SlapOS sytems and provide answers to key questions. The following documents should be read:</p>
<p>This lecture introduces SlapOS and its architecture and from this derives the requirements for an NMS Network Management System. This lecture also contains reading materials. The following documents are required to be read:</p>
<ul>
<li><ahref="slapos-DesignDocument.Slapos.Introduction">SlapOS Introduction</a> (<ahref="slapos-DesignDocument.Slapos.Introduction?portal_skin=Slide">presentation</a>)- generic introduction to SlapOS</li>
<li><ahref="slapos-DesignDocument.Understanding.Slapos.Architecture">SlapOS Architecture</a> - Overview of the SlapOS architecture and components (<ahref="slapos-DesignDocument.Understanding.Slapos.Architecture?portal_skin=Slide">presentation</a>)</li>
<li><ahref="slapos-DesignDocument.Slapos.System.Requirements">SlapOS System Requirements</a> - Minimal Requirements to setup a NMS network (<ahref="slapos-DesignDocument.Slapos.System.Requirements?portal_skin=Slide">presentation</a>)</li>
</ul>
<p>Once you understand the differences between Master and nodes, can distinguish COMP-ROOT, 0 and 123 in a network, know where software releases are added and what supplying a software on a node and instantiating it on a partition means, you can start with the next lecture of setting up the NMS.</p>
</details>
</section>
<sectionclass="chapter">
<h1>Lecture 2: Install and Configure NMS SlapOS Master</h1>
<detailsopen="open">
<p>This lecture will covers installing and configuring the SlapOS Master (COMP-ROOT). It is the main component of a NMS network but relatively straightforward to setup. Please do the following tutorial to get a SlapOS Master up and running:</p>
<h1>Lecture 3: Bootstrap Frontend, IPv6 Network and SimcardDB</h1>
<detailsopen="open">
<p>This lecture will cover setting up the COMP-0 machine required to provide core services to the COMP-ROOT and other nodes in the network. They include IPv6, a Frontend to streamline browser-based access and the SimcardDB</p>
<p>Setting up COMP-0 is the complicated part as it requires some improvisation for simulating services to properly connect nodes before they are provided by COMP-0. Please do the following tutorials to setup COMP-0:</p>
<p>In case of a missing wildcard SSL certificate you can follow <ahref="slapos-HowTo.Request.And.Setup.A.Wildcard.Ssl.Certificate">how to request a wildcard SSL certificate</a> (<ahref="slapos-HowTo.Request.And.Setup.A.Wildcard.Ssl.Certificate?portal_skin=Slide">presentation</a>). After you have finished this tutorial, you will know how to add software to the network and how to deploy instances. The procedure is the same for any software provided over SlapOS.</p>
</details>
</section>
<section>
<h1>Lecture 4: Deploy eNodeB/EPC Service</h1>
<detailsopen="open">
<p>This lecture will cover installing and deploying a eNodeB/EPC server. It will include setting up a new generic node (COMP-123), using the SlapOS Master to install EPC/eNB on this node and providing instances using several configurations available. Technically this lecture does the same as in the previous steps, only in a different order and with a different software. Please do the following to learn how to setup regular network nodes:</p>
<p>This lecture includes material to show demonstrating how to manage the NMS system once it has been setup, including classifying network nodes, monitoring network performance and handling tickets created from anomalies or failures of deployed instances or computers. The following tutorials should be done to complete this lecture:</p>
<ul>
<li><ahref="slapos-Tutorial.Manage.Slapos.Network">Handling Tickets in a NMS network</a> (<ahref="slapos-Tutorial.Manage.Slapos.Network?portal_skin=Slide">presentation</a>)</li>
<li><ahref="slapos-HowTo.Classify.Node.In.A.Network">Classify Node in a NMS network</a> (<ahref="slapos-HowTo.Classify.Node.In.A.Network?portal_skin=Slide">presentation</a>)</li>
<p>The only thing necessary to be configured on a running NMS network are instantiation parameters. This lecture will teach working with the software profile underlying the software installed in the catalogue. It will introduce Buildout in more detail and show how a software release can be modified using a Webrunner. This lecture is more technical and covers the basics of creating a software release like the one used to create the NMS.</p>
<p>Read the following documents to familiarize yourself with developing in SlapOS:</p>
<li><ahref="P-OSTV-DesignDocument.Understanding.Nms.Software.Release">Understanding the Amarisoft Software Release</a> (<ahref="P-OSTV-DesignDocument.Understanding.Nms.Software.Release?portal_skin=Slide">presentation</a>)</li>
</ul>
<p>Then add the Webrunner to your network, deploy an instance and inside install the helloworld software release. This will then be used as example showing how to modify a software release to add parameters, promises and components.</p>
<ul>
<li><ahref="slapos-HowTo.Add.Software.Release.To.Slapos.Master">Add Webrunner to SlapOS Master software catalogue</a> (<ahref="slapos-HowTo.Add.Software.Release.To.Slapos.Master?portal_skin=Slide">presentation</a>)</li>
<li><ahref="slapos-HowTo.Deploy.Software.On.Webrunner">Deploying the Helloworld Software Release</a> - inside the Webrunner (<ahref="slapos-HowTo.Deploy.Software.On.Webrunner?portal_skin=Slide">presentation</a>)</li>
<li><ahref="slapos-Tutorial.Extend.Software.Release">Extending the Software Release</a> - using the Webrunner (<ahref="slapos-Tutorial.Extend.Software.Release?portal_skin=Slide">presentation</a>)</li>
<p>Once you have accomplished all of the above tutorials, you should be familiar enough with SlapOS to use it to create your own cloud infrastrucre and provide services to users.</p>
-->
<h1>OSTV Tutorials - NMS Learning Track</h1>
<p>This tutorials will teach the setup and use of a Network Management System (NMS) based on SlapOS for ADMINS and Users.</p>
<ul>
<li><ahref="P-OSTV-Tutorial.Nms.Learning.Track.User">User Learning Track</a> - understanding of how to use NMS to manage a network.</li>
<li><ahref="P-OSTV-Tutorial.Nms.Learning.Track">Admin Learning Track</a> - how to setup and use of NMS.</li>
</ul>
<h1>Documentation</h1>
<p>Aside from the above tutorials, a number of additional documentation provides insights into certain topics.</p>