summaryrefslogtreecommitdiffstats
path: root/sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver')
-rw-r--r--sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/0.4.0/README.md144
-rw-r--r--sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/installation/0.4.0/README.md246
-rw-r--r--sdnr/wt/helpserver/provider/src/main/resources/help/mediatorserver/mediator/0.4.0/README.md66
3 files changed, 456 insertions, 0 deletions
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=&lt;config-object&gt; | create new mediator instance | {"code":1,"data":"&lt;string&gt;"}|
+| delete | name=&lt;name&gt; | delete mediator instance | \{"code":1,"data":&lt;string&gt;"} |
+| start | name=&lt;name&gt; | start mediator instance | \{"code":1,"data":"&lt;string&gt;"} |
+| stop | name=&lt;name&gt; | stop mediator instance | \{"code":1,"data":"&lt;string&gt;"} |
+| getconfig | name=&lt;name&gt;(optional) | Get current Config for all instances / named mediator instance | \{"code":1,"data":[&lt;config-objects&gt;]}|
+| getlog | name=&lt;name&gt;(optional) | Get LogEntries for all instances / named mediator instance | \{"code":1,"data":[]} |
+| clearlock | name=&lt;name&gt; | Clear Mediator Lock File | \{"code":1,"data":"&lt;string&gt;"} |
+| getnemodels | - | get all Network Element Template Filenames | \{"code":1,"data":[&lt;string-array&gt;]} |
+| getncports | limit=&lt;limit&gt;(optional) | get next free ports for Netconf Connections | \{"code":1,"data":[&lt;int-array&gt;]} |
+| getsnmpports | limit=&lt;limit&gt;(optional) | get next free ports for SNMP Traps | \{"code":1,"data":[&lt;int-array&gt;]} |
+| 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":[&lt;config-status-objects&gt;]}|
+
+HTTP-Response is always a json-formatted String with 2 Elements:
+
+* code ... 1:success 0:failure
+* data ... if code==0: &lt;string&gt; else &lt;string | object&gt;
+
+
+### 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 | &lt;oid dotted string&gt; | 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 | &lt;conv-method&gt; | Convert the snmp-value to netconf-value and back|
+|default | &lt;any value&gt; | 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
+