diff options
Diffstat (limited to 'sdnr/wt/helpserver/provider/src/main/resources')
19 files changed, 910 insertions, 0 deletions
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/sdnr/wt/helpserver/provider/src/main/resources/OSGI-INF/blueprint/blueprint.xml new file mode 100644 index 000000000..8c614c4af --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/OSGI-INF/blueprint/blueprint.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ============LICENSE_START======================================================================== + ONAP : ccsdk feature sdnr wt + ================================================================================================= + Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + ================================================================================================= + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + in compliance with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software distributed under the License + is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + or implied. See the License for the specific language governing permissions and limitations under + the License. + ============LICENSE_END========================================================================== +--> +<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xmlns:jaxrs="http://cxf.apache.org/blueprint/jaxrs"> + + <bean id="helpServlet" + class="org.onap.ccsdk.features.sdnr.wt.helpserver.HelpServlet"> + </bean> + + <service interface="javax.servlet.http.HttpServlet" ref="helpServlet"> + <service-properties> + <entry key="alias" value="/help" /> + </service-properties> + </service> +</blueprint> diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/0.4.0/README.md new file mode 100644 index 000000000..c03217d14 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/0.4.0/README.md @@ -0,0 +1,144 @@ +# MediatorServer + +## Description +The mediator server is the physical device on which multiple instances of the [mediators](mediator/) are running. Additionally a small webserver provides an API to control and create the mediators via HTTP-API. These mediators are translating the requests and responses between the SDN-Controller(netconf) and the device(snmp). Because of the restricted snmp protocol (port 162 only) we have to implement a prerouting automatism that forwards the alarms sent by the devices to another local port so that each mediator only gets the alarms of its device. + + + +## Config-File + +``` +/etc/mediatorserver.conf +``` + +``` +#global config file for mediatorserver + +#Home Directory +home=/opt/snmp + +#HOST IP +host=192.168.178.89 +port=7071 + +#Port range for Netconf +ncrangemin=4000 +ncrangemax=6000 + +#Port Range for SNMP +snmprangemin=10000 +snmprangemax=12000 + +#PortRange for JMX +jmxrangemin=6001 +jmxrangemax=7000 + +#Log (ERROR | WARN | DEBUG | INFO | TRACE ) +loglevel=DEBUG +logfile=/var/log/mediatorserver.log + +#===================================== +#global MediatorConfig + +#set LogLevel (ERROR | WARN | DEBUG | INFO | TRACE ) +MediatorLogLevel=DEBUG + +#set ping timeout in milliseconds +MediatorDevicePingTimeout=2000 + +#set latency for snmp requests +MediatorSnmpLatency=2000 + +#set java memory for mediator instance +MediatorMemory="-Xmx256m -Xms128m" +``` + +## HTTP-API + +``` +http://<host>:<port>/api/?task=<task> +``` + +| Task | additional Parameters | Description | Response (Success) | +| ---- | --------------------- | ----------- | ------------------ | +| create | config=<config-object> | create new mediator instance | {"code":1,"data":"<string>"}| +| delete | name=<name> | delete mediator instance | \{"code":1,"data":<string>"} | +| start | name=<name> | start mediator instance | \{"code":1,"data":"<string>"} | +| stop | name=<name> | stop mediator instance | \{"code":1,"data":"<string>"} | +| getconfig | name=<name>(optional) | Get current Config for all instances / named mediator instance | \{"code":1,"data":[<config-objects>]}| +| getlog | name=<name>(optional) | Get LogEntries for all instances / named mediator instance | \{"code":1,"data":[]} | +| clearlock | name=<name> | Clear Mediator Lock File | \{"code":1,"data":"<string>"} | +| getnemodels | - | get all Network Element Template Filenames | \{"code":1,"data":[<string-array>]} | +| getncports | limit=<limit>(optional) | get next free ports for Netconf Connections | \{"code":1,"data":[<int-array>]} | +| getsnmpports | limit=<limit>(optional) | get next free ports for SNMP Traps | \{"code":1,"data":[<int-array>]} | +| version | - | get version info of server and mediator | \{"code":1,"data":\{"server":"0.1.0","mediator":"0.1.1"\}\}| +| repair | - | try to fix corrupted configs | \{"code":1,"data":[<config-status-objects>]}| + +HTTP-Response is always a json-formatted String with 2 Elements: + +* code ... 1:success 0:failure +* data ... if code==0: <string> else <string | object> + + +### JSON-Objects + +Config-Object +``` +{ + Name:<String>, + DeviceType:<enum>, + DeviceIp:<String>, + DevicePort: <int>, + TrapsPort:<Int>, + NeModel:<XML Filename>, + NcPort:<int>, + ODLConfig:[ + { + Server:<String>, + Port:<int>, + User:<String>, + Password:<String> + } + ], + PID:<int>, + IsLocked:<boolean>, + AutoRun:<boolean>, + FwActive:<boolean>, + IsNetconfConnected:<boolean>, + IsNeConnected:<boolean> +} +``` + +Log-Object +``` +{ + ts:"<Timestamp>", + lvl:"<LogLevel>", + src:"<Source>", + msg:"<Message" +} +``` + + +## Usage + +All functionality which is not automated can be executed by the control script +``` +bin/control.sh +``` + +| parameter | description | +| ------------- | ------------------------------------------------ | +|checkout | get latest code from git repo | +|cpsrc | copy binary files from source | +|cpxml | copy xml files from source | +|build | build sources | +|make | build sources and install bins and ressources | +|start | start server | +|stop | stop server | +|stopall | stop all mediators, then the server | +|startmed [med] | start mediator with name [med] | +|stopmed [med] | stop mediator with name [med] | +|status | print status | +|repair | repair config files if corrupted | + diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/installation/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/installation/0.4.0/README.md new file mode 100644 index 000000000..6fdcbaec0 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/installation/0.4.0/README.md @@ -0,0 +1,246 @@ +# MediatorServer + +## Manual Installation + +### Install prerequisites + +``` +sudo apt-get install jq curl +``` +Installing Java + +for production +``` +sudo apt-get install openjdk-8-jre + +``` + +for development +``` +sudo apt-get install openjdk-8-jdk +sudo apt-get install git maven + +``` + +### Create user +``` +useradd mediators +``` + +### Choose a home directory for all mediatorserver files +``` +mkdir /opt/snmp + +``` + +### Create folder infrastructure +``` +cd /opt/snmp +mkdir bin +mkdir mediators +mkdir nemodel +mkdir yang +mkdir source (only for dev-env) + +``` + +### Copy files to folders +``` +bin/control.sh +bin/clean_all.sh +bin/debug.sh +bin/mediatorserver.sh +bin/Netconf2SNMPMediator.sh +bin/Netconf2SNMPMediator.jar +bin/init_script.sh +bin/firewall_status.sh +bin/unlock_all.sh +bin/firewall.sh +bin/MediatorServer.jar +bin/stop_all.sh +bin/start_all.sh +``` + +``` +nemodel/DragonWave-HCP.xml +nemodel/ActionTEC_ECB6200.xml +nemodel/ActionTEC_ECB6000.xml +nemodel/DVM_MWCore12_BasicAir.xml +nemodel/DragonWave-HQ.xml +nemodel/DragonWave-HQdev.xml +nemodel/CommScope.xml +``` + +``` +yang/yangNeModel +yang/yangNeModel/G_874_1_model-Imported_Information_Object_Classes-Q_822@2016-08-11.yang +yang/yangNeModel/MicrowaveModel-ObjectClasses-PureEthernetStructure@2016-09-02.yang +yang/yangNeModel/yuma-proc@2012-10-10.yang +yang/yangNeModel/nc-notifications@2008-07-14.yang +yang/yangNeModel/CoreModel-CoreFoundationModule-TypeDefinitions@2016-07-01.yang +yang/yangNeModel/ietf-inet-types@2010-09-24.yang +yang/yangNeModel/onf-ptp-dataset@2017-05-08.yang +yang/yangNeModel/yuma-system@2014-11-27.yang +yang/yangNeModel/onf-ethernet-conditional-packages@2017-04-02.yang +yang/yangNeModel/MicrowaveModel-ObjectClasses-SuperClasses@2016-08-09.yang +yang/yangNeModel/ietf-ptp-dataset@2017-02-08.yang +yang/yangNeModel/MicrowaveModel-ObjectClasses-TdmContainer@2016-09-02.yang +yang/yangNeModel/ietf-netconf-acm@2012-02-22.yang +yang/yangNeModel/MicrowaveModel-Notifications@2016-08-09.yang +yang/yangNeModel/MicrowaveModel-ObjectClasses-HybridMwStructure@2016-09-02.yang +yang/yangNeModel/microwave-model@2017-03-24.yang +yang/yangNeModel/MicrowaveModel-ObjectClasses-AirInterfaceDiversity@2016-09-02.yang +yang/yangNeModel/G_874_1_model-Type_Definitions@2016-07-10.yang +yang/yangNeModel/CoreModel-CoreFoundationModule-StateModel@2016-08-09.yang +yang/yangNeModel/G_874_1_model-Imported_Information_Object_Classes-X_739@2016-07-10.yang +yang/yangNeModel/ietf-system@2014-08-06.yang +yang/yangNeModel/G_874_1_model-Imported_Information_Object_Classes-X_721@2016-07-10.yang +yang/yangNeModel/MicrowaveModel-ObjectClasses-AirInterface@2016-09-01.yang +yang/yangNeModel/onf-core-model-conditional-packages@2017-04-02.yang +yang/yangNeModel/MicrowaveModel-NetworkElement-CurrentProblemList@2016-11-20.yang +yang/yangNeModel/core-model@2017-03-20.yang +yang/yangNeModel/g.874.1-model@2017-03-20.yang +yang/yangNeModel/ietf-yang-library@2016-04-09.yang +yang/yangNeModel/yuma-time-filter@2011-08-13.yang +yang/yangNeModel/yuma-mysession@2010-05-10.yang +yang/yangNeModel/G_874_1_model-Imported_Data_Types@2016-07-10.yang +yang/yangNeModel/yuma-ncx@2012-01-13.yang +yang/yangNeModel/ietf-yang-types@2013-07-15.yang +yang/yangNeModel/MicrowaveModel-ObjectClasses-EthernetContainer@2016-09-02.yang +yang/yangNeModel/notifications@2008-07-14.yang +yang/yangNeModel/ietf-netconf-monitoring@2010-10-04.yang +yang/yangNeModel/CoreModel-CoreFoundationModule-SuperClassesAndCommonPackages@2016-07-10.yang +yang/yangNeModel/ietf-restconf@2013-10-19.yang +yang/yangNeModel/yuma-app-common@2012-08-16.yang +yang/yangNeModel/yuma-types@2012-06-01.yang +yang/yangNeModel/CoreModel-CoreNetworkModule-ObjectClasses@2016-08-11.yang +yang/yangNeModel/MicrowaveModel-TypeDefinitions@2016-09-02.yang +yang/yangNeModel/ietf-netconf-with-defaults@2011-06-01.yang +yang/yangNeModel/ietf-netconf@2011-06-01.yang +yang/yangNeModel/ietf-netconf-partial-lock@2009-10-19.yang +yang/yangNeModel/G_874_1_model-Object_Classes@2016-07-10.yang +yang/yangNeModel/ietf-inet-types@2013-07-15.yang +yang/yangNeModel/CoreModel-CoreNetworkModule-TypeDefinitions@2016-07-10.yang +yang/yangNeModel/yuma-arp@2012-01-13.yang +yang/yangNeModel/iana-crypt-hash@2014-04-04.yang +yang/notification +yang/notification/readme.md +yang/notification/notifications@2008-07-14.yang +``` + +and change all rights to the extra created user +``` +sudo chown -R mediators:mediators /opt/snmp +``` + +### Create mediatorserver config file + +``` +sudo nano /etc/mediatorserver.conf +``` +example: +``` +#Home Directory +home=/opt/snmp + +#HOST IP +host=192.168.178.89 +port=7070 + +#Port range for Netconf +ncrangemin=4000 +ncrangemax=6000 + +#Port Range for SNMP +snmprangemin=10000 +snmprangemax=12000 + +#PortRange for JMX +jmxrangemin=6001 +jmxrangemax=7000 + +#Log (ERROR | WARN | DEBUG | INFO | TRACE ) +loglevel=WARN +logfile=/var/log/mediatorserver.log + +#===================================== +#global MediatorConfig + +#set LogLevel (ERROR | WARN | DEBUG | INFO | TRACE ) +MediatorLogLevel=DEBUG + +#set ping timeout in milliseconds +MediatorDevicePingTimeout=2000 + +#set latency for snmp requests +MediatorSnmpLatency=2000 + +#set java memory for mediator instance +MediatorMemory="-Xmx256m -Xms128m" + +#==================================== +``` + + +### Create mediatorserver systemd daemon + +``` +sudo nano /etc/systemd/system/mediatorserver.service +``` + +``` +[Unit] +Description=mediatorserver +After=network.target + +[Service] +WorkingDirectory=/opt/snmp/ +SyslogIdentifier=MediatorServer +ExecStart=/opt/snmp/bin/mediatorserver.sh +User=mediators +Type=oneshot + +[Install] +WantedBy=multi-user.target + +``` + +### Initial create mediator server logfile with correct file permissions +``` +sudo touch /var/log/mediatorserver.log +sudo chown mediators:mediators /var/log/mediatorserver.log +``` + +### Activate mediatorserver systemd daemon +``` +systemctl enable mediatorserver.service +systemctl daemon-reload +``` + +Now you can start and stop the service as you like +``` +sudo service mediatorserver [start | stop] +``` + +### Install cron jobs +``` +sudo crontab -e +``` +``` +*/2 * * * * /bin/bash /opt/snmp/bin/firewall.sh >> /var/log/firewall.log +*/2 * * * * /bin/bash /opt/snmp/bin/clean_all.sh > /dev/null 2>&1 +``` + +### Test Accessibility of the HTTP-API with console +``` +curl http://localhost:7070/api/?task=version +``` +or directly in your browser +``` +http://<mediator-server-ip>:7070/api/?task=version +``` +should respond with something like this: +``` +{"code":1,"data":{"server":"0.1.0","mediator":"0.1.1"}} +``` + diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/mediator/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/mediator/0.4.0/README.md new file mode 100644 index 000000000..9fa43a436 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/mediator/0.4.0/README.md @@ -0,0 +1,66 @@ +# Mediator + +## Description + + +The mediator is a piece of software to translate get and set requests between the SDN-Controller and the device. In our case we translate from netconf to snmp and back. Additionally the mediator is listening for snmp traps to push them forward to the SDN-Controller. + +## Usage + +Standalone: +``` +./Netconf2SNMPMediator.sh [--cli] ../test.config ../yang/yangNeModel +``` +[MediatorServer](../../mediatorserver/): +``` +./mediators/<name>/start.sh +``` + +## Config-File +``` +{ + "Name":"<mediatorname-in-odl>", + "DeviceType":<int-of-enum of device type>, + "DeviceIP":"<remote Ip Address>", + "TrapPort":<trap port>, + "NeXMLFile":"<rel-path-to-xml-ne-filename>", + "NcPort":<netconf-port>, + "ODLConfig":[{"Server":"<odl-server-ip>","Port":<odl-http-port>,"User":"<odl-username>","Password":"<odl-password>"}], + "IsNCConnected":false +} +``` + +## XML Ne File + +The xml network element file is the central element of the mediator. It contains all information about the interfaces, their capabilities and everything else of information which get requested through netconf. To connect specific netconf values to device specific snmp values we use the xml attributes of the node element. + +Attributes: + +|Name | Value | Description | +| ----| ---- | ---------- | +|oid | <oid dotted string> | Attribute with SNMP mapping for given oid. For NETCONF-get, request content from Device| +|access | read-only / read-write | decides if only snmp-get or get and set-requests are allowed| +|conversion | <conv-method> | Convert the snmp-value to netconf-value and back| +|default | <any value> | the default netconf value if there is no response from the device | +|validator | regex | to validate the netconf value to avoid protocol errors | + + +Conversion methods: + +Hint: All conversations shown here are the snmp-to-netconf value conversations. Some of these are working in both directions, some not. + + +| Conversion | bi-directional | Description | Example | +| ---------- |: -------------- :| ----------- | ------- | +|int-to-boolean | yes | Convert 1-true and not 1-false between boolean and int| 1=\>true, 0=\>false | +|int-to-boolean-dd,dd,dd-true | no | Convert listed numbers to true | | +|int-to-boolean-dd,dd,dd-false | no | Convert listed numbers to false| | +|if-dd,dd,dd-term1-term2 | no | if value listed, result is *term1*, if not *term2*| | +|map-dd1,dd2,dd3-term1-term2 | yes | Bidirectional map dd1 to term1, dd2 to term2 and soon | | +|divide-dd1 | yes | Divide value by dd1| divide-10: 99 =\> 9.9 =\> 10| +|dividen-dd1 | yes | Divide value by (-1*dd1)| dividen-10: 99 =\> -9.9 =\> -10| +|internal | yes | use inernally hardcoded conversion method | qpsk =\> 4, 16qam =\> 16 | + + +## Alarms + diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/meta.json b/sdnr/wt/helpserver/provider/src/main/resources/help/meta.json new file mode 100644 index 000000000..b23e8d9d0 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/meta.json @@ -0,0 +1,222 @@ +{ + "sdnr": { + "nodes": { + "connect": { + "versions": { + "0.4.0": { + "date": "2018-02-24", + "path": "sdnr/connect/0.4.0/README.md", + "label": "Connect" + }, + "current": { + "date": "2018-02-24", + "path": "sdnr/connect/0.4.0/README.md", + "label": "Connect" + } + }, + "label": "Connect" + }, + "pnfFault": { + "versions": { + "0.4.0": { + "date": "2018-02-24", + "path": "sdnr/pnfFault/0.4.0/README.md", + "label": "pnf Fault" + }, + "current": { + "date": "2018-02-24", + "path": "sdnr/pnfFault/0.4.0/README.md", + "label": "pnf Fault" + } + }, + "label": "pnf Fault" + }, + "pnfMaintenance": { + "versions": { + "0.4.0": { + "date": "2018-09-13", + "path": "sdnr/pnfMaintenance/0.4.0/README.md", + "label": "pnf Maintenance" + }, + "current": { + "date": "2018-09-13", + "path": "sdnr/pnfMaintenance/0.4.0/README.md", + "label": "pnf Maintenance" + } + }, + "label": "pnf Maintenance" + }, + "pnfConfig": { + "versions": { + "0.4.0": { + "date": "2018-02-24", + "path": "sdnr/pnfConfig/0.4.0/README.md", + "label": "pnf Config" + }, + "current": { + "date": "2018-02-24", + "path": "sdnr/pnfConfig/0.4.0/README.md", + "label": "pnf Config" + } + }, + "label": "pnf Config" + }, + "pnfPerformance": { + "versions": { + "0.4.0": { + "date": "2018-02-24", + "path": "sdnr/pnfPerformance/0.4.0/README.md", + "label": "pnf Performance" + }, + "current": { + "date": "2018-02-24", + "path": "sdnr/pnfPerformance/0.4.0/README.md", + "label": "pnf Performance" + } + }, + "label": "pnf Performance" + }, + "pnfInventory": { + "versions": { + "0.4.0": { + "date": "2018-02-24", + "path": "sdnr/pnfInventory/0.4.0/README.md", + "label": "pnf Inventory" + }, + "current": { + "date": "2018-02-24", + "path": "sdnr/pnfInventory/0.4.0/README.md", + "label": "pnf Inventory" + } + }, + "label": "pnf Inventory" + }, + "pnfMediator": { + "versions": { + "0.4.0": { + "date": "2018-02-24", + "path": "sdnr/pnfMediator/0.4.0/README.md", + "label": "pnf Mediator" + }, + "current": { + "date": "2018-02-24", + "path": "sdnr/pnfMediator/0.4.0/README.md", + "label": "pnf Mediator" + } + }, + "label": "pnf Mediator" + }, + "mwtnTest": { + "versions": { + "0.4.0": { + "date": "2018-02-24", + "path": "sdnr/mwtnTest/0.4.0/README.md", + "label": "LTE RAN Test" + }, + "current": { + "date": "2018-02-24", + "path": "sdnr/mwtnTest/0.4.0/README.md", + "label": "LTE RAN Test" + } + }, + "label": "LTE RAN Test" + }, + "mwtnLog": { + "versions": { + "0.4.0": { + "date": "2018-02-24", + "path": "sdnr/mwtnLog/0.4.0/README.md", + "label": "Logs" + }, + "current": { + "date": "2018-02-24", + "path": "sdnr/mwtnLog/0.4.0/README.md", + "label": "Logs" + } + }, + "label": "Logs" + } + }, + "versions": { + "0.4.0": { + "date": "2018-02-24", + "path": "sdnr/0.4.0/README.md", + "label": "SDN-R" + }, + "current": { + "date": "2018-02-24", + "path": "sdnr/0.4.0/README.md", + "label": "SDN-R" + } + }, + "label": "SDN-R" + }, + "mediatorserver":{ + "nodes":{ + "installation":{ + "versions":{ + "0.4.0":{"date":"","path":"mediatorserver/installation/0.4.0/README.md","label":""}, + "current":{"date":"","path":"mediatorserver/installation/0.4.0/README.md","label":""} + }, + "label":"Installation" + }, + "mediator":{ + "versions":{ + "0.4.0":{"date":"","path":"mediatorserver/mediator/0.4.0/README.md","label":""}, + "current":{"date":"","path":"mediatorserver/mediator/0.4.0/README.md","label":""} + }, + "label":"Mediator" + } + }, + "versions":{ + "0.4.0":{"date":"","path":"mediatorserver/0.4.0/README.md","label":""}, + "current":{"date":"","path":"mediatorserver/0.4.0/README.md","label":""} + }, + "label":"MediatorServer" + }, + "faq": { + "versions": { + "0.4.0": { + "date": "2018-02-24", + "path": "sdnr/0.4.0/faq.md", + "label": "FAQ" + }, + "current": { + "date": "2018-02-24", + "path": "sdnr/0.4.0/faq.md", + "label": "FAQ" + } + }, + "label": "FAQ" + }, + "abbreviations": { + "versions": { + "0.4.0": { + "date": "2018-02-24", + "path": "sdnr/0.4.0/abbreviations.md", + "label": "Abbreviations" + }, + "current": { + "date": "2018-02-24", + "path": "sdnr/0.4.0/abbreviations.md", + "label": "Abbreviations" + } + }, + "label": "Abbreviations" + }, + "about": { + "versions": { + "0.4.0": { + "date": "2018-02-24", + "path": "sdnr/0.4.0/about.md", + "label": "About" + }, + "current": { + "date": "2018-02-24", + "path": "sdnr/0.4.0/about.md", + "label": "About" + } + }, + "label": "About" + } +} diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/ONAP-SDN-R.png b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/ONAP-SDN-R.png Binary files differnew file mode 100644 index 000000000..cc7bd8a2a --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/ONAP-SDN-R.png diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/README.md new file mode 100644 index 000000000..c0871102b --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/README.md @@ -0,0 +1,7 @@ +# SDN controller for 'Radio' (SDN-R) + +SDN-R adds features and functionality to the OpenDaylight-based ONAP controller 'SDN-C'. It is built on the Common Controller Framework to control and manage wireless resources. Wireless resources are virtual network functions (e.g. vBBU, vEPC) or physical network functions (e.g. microwave and millimeter wave radios, eNodeB, RRH, DAS equipment). + +SDN-R is integrated into ONAP. Therefore it is interfacing with PNFs and VNFs and with other ONAP components, such as A&AI, DCAE and SO. + +![SDN-R in ONAP](./ONAP-SDN-R.png "SDN-R in ONAP")
\ No newline at end of file diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/abbreviations.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/abbreviations.md new file mode 100644 index 000000000..3704796b4 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/abbreviations.md @@ -0,0 +1,15 @@ +# Abbreviations + +| **Abbreviation** | **Description** | +| ---------------: | ---------------- | +| A&AI | [Active and Available Inventory](https://wiki.onap.org/display/DW/Active+and+Available+Inventory+Project) | +| AAA | [Authentication, Authorization and Accounting](https://en.wikipedia.org/wiki/AAA_(computer_security)) | +| DCAE | [Data Collection Analytics & Events](https://wiki.onap.org/pages/viewpage.action?pageId=6592895) | +| GUI | [Graphical User Interface](https://en.wikipedia.org/wiki/Graphical_user_interface) | +| MSO | [Master Service Orchestrator](https://wiki.onap.org/pages/viewpage.action?pageId=1015834) | +| ONAP | [Open Network Automation Platform](https://wiki.onap.org/pages/viewpage.action?pageId=1015843) | +| SDN | [Software-defined networking](https://en.wikipedia.org/wiki/Software-defined_networking) | +| SDN-C | [SDN-Controller](https://wiki.onap.org/display/DW/SDN+Controller+Development+Guide) | +| SDN-R | [SDN-Radio](https://wiki.onap.org/display/DW/SDN-R) | +| UI | [User Interface](https://en.wikipedia.org/wiki/User_interface) | +| UX | [User Experience](https://en.wikipedia.org/wiki/User_experience) | diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/about.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/about.md new file mode 100644 index 000000000..856d69aa5 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/about.md @@ -0,0 +1 @@ +Version: @buildtime@
\ No newline at end of file diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/faq.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/faq.md new file mode 100644 index 000000000..d81574640 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/0.4.0/faq.md @@ -0,0 +1,52 @@ +# Frequently asked questions + +- - - + +## Which browser should I use to operate Opendaylight SDN-R User interface? + +An actual version of [Google Chromium](https://www.chromium.org/getting-involved/download-chromium "Download Chromium") or +[Google Chrome](https://www.google.de/search?q=chrome+download&oq=chrome+download&aqs=chrome..69i57j0l5.2718j0j4&sourceid=chrome&ie=UTF-8 "Download Chrome") is recommended. + +- - - + + +## How to enable detailed logs in karaf for SDN-R applications + +If you like to see more details in karaf logs for the NetConf communication between ODL and NetConf servers (mediators/devices) please invoke the following commands in the karaf console. + +``` +# Logging settings (on) +log:set DEBUG org.opendaylight.mwtn +log:set TRACE org.opendaylight.netconf +log:set TRACE com.highstreet.technologies.odl.app +``` + +Please note, setting the debug level to 'TRACE' may impact the performance on the controller. In production environment make sure to set back the debug level to 'INFO' as soon possible. + + +``` +# Logging settings (off) +log:set INFO org.opendaylight.mwtn +log:set INFO org.opendaylight.netconf +log:set INFO com.highstreet.technologies.odl.app +``` + +- - - + +## Which commands should be used to analyse karaf logs? + +``` +cd $ODL_KARAF_HOME/data/log +rm *.txt +grep -anr --include=*.log* "| ERROR |" . | grep 2018 >> 01-error.txt +grep -anr --include=*.log* "RemoteDevice{" . | grep 2018 >> 02-devices.txt +grep -anr --include=*.log* "RemoteDevice{" . | grep "Unable to build schema context, unsatisfied imports" | grep 2018 >> 03-schema-issue.txt +grep -anr --include=*.log* "Matched request:" . | grep 2018 >> 04-matched-request.txt +grep -anr --include=*.log* "network-element" . | grep 2018 >> 05-network-element.txt +grep -anr --include=*.log* "urn:onf:params:xml:ns:yang:core-model" . | grep 2018 >> 06-core-module.txt +grep -anr --include=*.log* "PerformanceManagerTask" . | grep 2018 >> 07-pm-tick.txt +grep -anr --include=*.log* "Unable to read NE data for mountpoint" . | grep 2018 >> 08-unable-to-read.txt +grep -anr --include=*.log* "LKCYFL79Q01M01MSS801" . | grep 2018 >> 09-LKCYFL79Q01M01MSS801.txt +``` + +- - - diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/connect/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/connect/0.4.0/README.md new file mode 100644 index 000000000..12e4dbe63 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/connect/0.4.0/README.md @@ -0,0 +1,30 @@ +# Connect + +The 'Connect' application on OpenDaylight provides up-to-date connectivity information about the wireless devices in the network. It automatically displays new network elements and their connection status. Despite the network elements usually automatically mount themselves, an additional small window allows manually mounting devices/mediators. For better understanding alarms and status, a connection status log lists all the connection status changes of OpenDaylight mount points. + +## Views + +The graphical user interfaces is divided in four sections. + +### Required Network Elements + +Required Network Elements are physical network functions, which are planned or expected in the network. This means the identifier, IP addresses and its required configuration is well-known and available in a planning database or in ONAP A&AI. + +### Unknown Network Elements + +Most of the physical network function support an automatic registration procedure to the SDN controller. It may happen, that devices are connected to the SDN Controller but not available in planning data. + +It might be a normal occurrence for very cheap devices, where an entire planning process to too expensive. But is may also happen that the identifier used in planning process differ from the identifier currently configured in the device. + +### Mount NetConf Server + +The view offer manually configuration of a device. The SDN controller will then start connecting the NetConf server. + +### Connection Status Log + +The log lists the connections status changes between SDN Controller and NetConf servers (devices). + + +## Video + +https://youtu.be/QhchzRV2tac
\ No newline at end of file diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/mwtnLog/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/mwtnLog/0.4.0/README.md new file mode 100644 index 000000000..0096ce831 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/mwtnLog/0.4.0/README.md @@ -0,0 +1,3 @@ +# Log + +The application displays (UX) application logs. SDN-R offer a common log server, so that PNFs or other ONAP/ECOMP components could log there data in a common way.
\ No newline at end of file diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/mwtnTest/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/mwtnTest/0.4.0/README.md new file mode 100644 index 000000000..6bd3609c2 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/mwtnTest/0.4.0/README.md @@ -0,0 +1,3 @@ +# Test + +The view offers in a generic way data fetched from ONF-TR-532 devices for test and debug purposes.
\ No newline at end of file diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfConfig/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfConfig/0.4.0/README.md new file mode 100644 index 000000000..d398a8e70 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfConfig/0.4.0/README.md @@ -0,0 +1,15 @@ +# Configuration + +The application shows the actual values of all attributes of the ONF-TR-532 for a selected physical network function (PNF). Each view of a functional element is divide into capabilities, configuration, status, current problem, current performance and history performance information according to TR-532. + +A separate window is available for modifying the configuration. All changes made are sent to the device in a single NetConf bulk request. The operator is notified about successfully configuring the device. + +## Implementation + +The applications are implemented as OpenDaylight-DLUX web application using the RestConf northbound interface of the SDN controller. The key frameworks are: Maven, Angular.js, Bootstrap and UI-Grid. + +Connections status information are updated automatically due to a web socket for notifications from OpenDaylight to the browser. + +## Video + +https://youtu.be/QhchzRV2tac
\ No newline at end of file diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfFault/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfFault/0.4.0/README.md new file mode 100644 index 000000000..bfe1774d0 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfFault/0.4.0/README.md @@ -0,0 +1,33 @@ +# Fault Management + +To operate a network, it is important to get an overview about the currently raised alarms. The application offers basic fault management of devices supporting ONF-TR-532. The alarms are classified according to the severity level (warning, minor, major, critical). + +## Views + +The graphical user interface is separated in three views. + +### Current Alarms + +It list all current active faults in the network. In addition is also list alarms send by the SDN controller itself, which detects connections losses to the NetConf server (connectionLossOAM) or which detects connection loss to a devices via a mediator to a device (connectionLossNeOAM). + +### Alarm Notifications + +As long as the view is open, it lists all alarm notification reached by the SDN Controller. Please note that refreshing the view will start the collection again. Previous alarm notification can be viewed in the alarm log. + +### Alarm Log + +Next to the current active alarms an alarm log list all alarm notifications of the past. + +## Implementation + +The application has two parts. While the server is listening for NetConf notifications to store them in the data base the client retrieves the information from the data base and displays them in a grid view. + +The server synchronizes with the current alarm lists of the devices and calculates based on raise and clear notifications the current alarm status of the network. The current alarms are stored in a data base. In addition all Problem Notifications received by the SDN controller are stored. There is no logic implemented on the client. + +An alarm status bar on top of each graphical user interface informs the operator about the health status of the network. + +The OpenDaylight DLUX web application uses web sockets for updating the graphical user interface in case of Problem Notification (devices) and Connection Status Notifications (ODL). + +## Video + +https://youtu.be/vONKAtFZ8wc
\ No newline at end of file diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfInventory/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfInventory/0.4.0/README.md new file mode 100644 index 000000000..436280855 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfInventory/0.4.0/README.md @@ -0,0 +1,9 @@ +# Inventory + +The application offers basic inventory management of devices supporting ONF-TR-512. + +After selection of a currently connected physical network function, the inventory data - basically serial-numbers and part-numbers are displaced accroding to the containment of the equipment. + +## Video + +[ONAP / ONF proof of concept](https://cloud-highstreet-technologies.com/nextcloud/index.php/s/m4wFfqkQ1qK3hHe "ONAP / ONF proof of concept") diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfMaintenance/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfMaintenance/0.4.0/README.md new file mode 100644 index 000000000..6f5ab5420 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfMaintenance/0.4.0/README.md @@ -0,0 +1,10 @@ +# Maintenance Mode + +The 'Maintenance' application on the OpenDaylight provides the information of the Network Elements which are set for Maintenance, currently or in the future. + +When a Network Element is mounted with the maintenance mode it automatically shows on this application with the Information like when maintenance will be started or ended. + +Maintenance Mode field in this application shows if the Network Element is in maintenance mode currently or not. +If it is True it means the Network Element is currently undergoing maintenance, If false it means maintenance might have been set for future or maintenance is already completed. + +Users have access to disable the Maintenance mode or change the maintenance start and end dates at any point of time by clicking on the Manage checkbox available.
\ No newline at end of file diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfMediator/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfMediator/0.4.0/README.md new file mode 100644 index 000000000..246e77b70 --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfMediator/0.4.0/README.md @@ -0,0 +1,3 @@ +# Mediator + +Some device vendors (Altiostar, CommScope, Dragonwave-X) uses the [generic mediator framework](https://github.com/Melacon/NetConf2SNMP). Such mediator offers an API to create, delete, start and stop mediator instances.
\ No newline at end of file diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfPerformance/0.4.0/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfPerformance/0.4.0/README.md new file mode 100644 index 000000000..a1d39186a --- /dev/null +++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfPerformance/0.4.0/README.md @@ -0,0 +1,19 @@ +# Performance Monitoring + +Performance Monitoring values measured by the devices are necessary to analyze and optimize the network. Therefore the application automatically retrieves all historical performance values from the devices and stores them in a data base. The client part just retrieves the values from the database and displays them in graphical and/or grid views. + +## Current performance values + +After selection of a connected PNF supporting ONF-TR-532 and an physical interface, the application collects the current performance values directly from the device and displays then in table views. + +## Performance history values + +After selection of a connected PNF supporting ONF-TR-532 and an physical interface, the application collects the received and centralized stored performance values for this interface and displays then in table views. + +## Performance link values + +After selection of two air-interface creating an air-interface-link, the application collects the received and centralized stored performance values for this link and displays the data in diagrams and table views. + +## Video + +https://youtu.be/fgwbKFt9cos
\ No newline at end of file |