commit ef4901c1fd1fa57d120b7066cbbf3a7f919f029a Author: Alexander Couzens Date: Tue Oct 12 17:24:57 2021 +0200 initial diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ab21ec5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +cache/ +data/ diff --git a/Pipfile b/Pipfile new file mode 100644 index 0000000..e44056c --- /dev/null +++ b/Pipfile @@ -0,0 +1,18 @@ +[[source]] +url = "https://pypi.python.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +flask = "*" +eventlet = "==0.30.0" +flask-kvsession = "*" +flask-caching = "*" + +[dev-packages] + +[requires] +python_version = "3.9" + +[packages.gunicorn] +extras = [ "eventlet",] diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 0000000..a809d73 --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,224 @@ +{ + "_meta": { + "hash": { + "sha256": "5ce87c57866033b7e0c426501f92344a953847e9b0835420d884b4d9485cd04d" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.9" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.python.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "click": { + "hashes": [ + "sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3", + "sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b" + ], + "version": "==8.0.3" + }, + "dnspython": { + "hashes": [ + "sha256:36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01", + "sha256:f69c21288a962f4da86e56c4905b49d11aba7938d3d740e80d9e366ee4f1632d" + ], + "version": "==1.16.0" + }, + "eventlet": { + "hashes": [ + "sha256:19d6f3aa9525221ba60d0ec31b570508021af7ad5497fb77f77501fe9a7c34d3", + "sha256:b33f31ae8d87eb2838dcb8467449211852374ee6dea97113c158fc84d9acff9b" + ], + "index": "pypi", + "version": "==0.30.0" + }, + "flask": { + "hashes": [ + "sha256:7b2fb8e934ddd50731893bdcdb00fc8c0315916f9fcd50d22c7cc1a95ab634e2", + "sha256:cb90f62f1d8e4dc4621f52106613488b5ba826b2e1e10a33eac92f723093ab6a" + ], + "index": "pypi", + "version": "==2.0.2" + }, + "flask-caching": { + "hashes": [ + "sha256:bcda8acbc7508e31e50f63e9b1ab83185b446f6b6318bd9dd1d45626fba2e903", + "sha256:cf19b722fcebc2ba03e4ae7c55b532ed53f0cbf683ce36fafe5e881789a01c00" + ], + "index": "pypi", + "version": "==1.10.1" + }, + "flask-kvsession": { + "hashes": [ + "sha256:9c0ee93fae089c45baeda0a3fd3ae32a96ee81c34996017749f8b3fd06df936c" + ], + "index": "pypi", + "version": "==0.6.2" + }, + "greenlet": { + "hashes": [ + "sha256:00e44c8afdbe5467e4f7b5851be223be68adb4272f44696ee71fe46b7036a711", + "sha256:013d61294b6cd8fe3242932c1c5e36e5d1db2c8afb58606c5a67efce62c1f5fd", + "sha256:049fe7579230e44daef03a259faa24511d10ebfa44f69411d99e6a184fe68073", + "sha256:14d4f3cd4e8b524ae9b8aa567858beed70c392fdec26dbdb0a8a418392e71708", + "sha256:166eac03e48784a6a6e0e5f041cfebb1ab400b394db188c48b3a84737f505b67", + "sha256:17ff94e7a83aa8671a25bf5b59326ec26da379ace2ebc4411d690d80a7fbcf23", + "sha256:1e12bdc622676ce47ae9abbf455c189e442afdde8818d9da983085df6312e7a1", + "sha256:21915eb821a6b3d9d8eefdaf57d6c345b970ad722f856cd71739493ce003ad08", + "sha256:288c6a76705dc54fba69fbcb59904ae4ad768b4c768839b8ca5fdadec6dd8cfd", + "sha256:32ca72bbc673adbcfecb935bb3fb1b74e663d10a4b241aaa2f5a75fe1d1f90aa", + "sha256:356b3576ad078c89a6107caa9c50cc14e98e3a6c4874a37c3e0273e4baf33de8", + "sha256:40b951f601af999a8bf2ce8c71e8aaa4e8c6f78ff8afae7b808aae2dc50d4c40", + "sha256:572e1787d1460da79590bf44304abbc0a2da944ea64ec549188fa84d89bba7ab", + "sha256:58df5c2a0e293bf665a51f8a100d3e9956febfbf1d9aaf8c0677cf70218910c6", + "sha256:64e6175c2e53195278d7388c454e0b30997573f3f4bd63697f88d855f7a6a1fc", + "sha256:7227b47e73dedaa513cdebb98469705ef0d66eb5a1250144468e9c3097d6b59b", + "sha256:7418b6bfc7fe3331541b84bb2141c9baf1ec7132a7ecd9f375912eca810e714e", + "sha256:7cbd7574ce8e138bda9df4efc6bf2ab8572c9aff640d8ecfece1b006b68da963", + "sha256:7ff61ff178250f9bb3cd89752df0f1dd0e27316a8bd1465351652b1b4a4cdfd3", + "sha256:833e1551925ed51e6b44c800e71e77dacd7e49181fdc9ac9a0bf3714d515785d", + "sha256:8639cadfda96737427330a094476d4c7a56ac03de7265622fcf4cfe57c8ae18d", + "sha256:8c790abda465726cfb8bb08bd4ca9a5d0a7bd77c7ac1ca1b839ad823b948ea28", + "sha256:8d2f1fb53a421b410751887eb4ff21386d119ef9cde3797bf5e7ed49fb51a3b3", + "sha256:903bbd302a2378f984aef528f76d4c9b1748f318fe1294961c072bdc7f2ffa3e", + "sha256:93f81b134a165cc17123626ab8da2e30c0455441d4ab5576eed73a64c025b25c", + "sha256:95e69877983ea39b7303570fa6760f81a3eec23d0e3ab2021b7144b94d06202d", + "sha256:9633b3034d3d901f0a46b7939f8c4d64427dfba6bbc5a36b1a67364cf148a1b0", + "sha256:97e5306482182170ade15c4b0d8386ded995a07d7cc2ca8f27958d34d6736497", + "sha256:9f3cba480d3deb69f6ee2c1825060177a22c7826431458c697df88e6aeb3caee", + "sha256:aa5b467f15e78b82257319aebc78dd2915e4c1436c3c0d1ad6f53e47ba6e2713", + "sha256:abb7a75ed8b968f3061327c433a0fbd17b729947b400747c334a9c29a9af6c58", + "sha256:aec52725173bd3a7b56fe91bc56eccb26fbdff1386ef123abb63c84c5b43b63a", + "sha256:b11548073a2213d950c3f671aa88e6f83cda6e2fb97a8b6317b1b5b33d850e06", + "sha256:b1692f7d6bc45e3200844be0dba153612103db241691088626a33ff1f24a0d88", + "sha256:b92e29e58bef6d9cfd340c72b04d74c4b4e9f70c9fa7c78b674d1fec18896dc4", + "sha256:be5f425ff1f5f4b3c1e33ad64ab994eed12fc284a6ea71c5243fd564502ecbe5", + "sha256:dd0b1e9e891f69e7675ba5c92e28b90eaa045f6ab134ffe70b52e948aa175b3c", + "sha256:e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a", + "sha256:e6a36bb9474218c7a5b27ae476035497a6990e21d04c279884eb10d9b290f1b1", + "sha256:e859fcb4cbe93504ea18008d1df98dee4f7766db66c435e4882ab35cf70cac43", + "sha256:eb6ea6da4c787111adf40f697b4e58732ee0942b5d3bd8f435277643329ba627", + "sha256:ec8c433b3ab0419100bd45b47c9c8551248a5aee30ca5e9d399a0b57ac04651b", + "sha256:eff9d20417ff9dcb0d25e2defc2574d10b491bf2e693b4e491914738b7908168", + "sha256:f0214eb2a23b85528310dad848ad2ac58e735612929c8072f6093f3585fd342d", + "sha256:f276df9830dba7a333544bd41070e8175762a7ac20350786b322b714b0e654f5", + "sha256:f3acda1924472472ddd60c29e5b9db0cec629fbe3c5c5accb74d6d6d14773478", + "sha256:f70a9e237bb792c7cc7e44c531fd48f5897961701cdaa06cf22fc14965c496cf", + "sha256:f9d29ca8a77117315101425ec7ec2a47a22ccf59f5593378fc4077ac5b754fce", + "sha256:fa877ca7f6b48054f847b61d6fa7bed5cebb663ebc55e018fda12db09dcc664c", + "sha256:fdcec0b8399108577ec290f55551d926d9a1fa6cad45882093a7a07ac5ec147b" + ], + "version": "==1.1.2" + }, + "gunicorn": { + "hashes": [ + "sha256:9dcc4547dbb1cb284accfb15ab5667a0e5d1881cc443e0677b4882a4067a807e", + "sha256:e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8" + ], + "index": "pypi", + "version": "==20.1.0" + }, + "itsdangerous": { + "hashes": [ + "sha256:5174094b9637652bdb841a3029700391451bd092ba3db90600dea710ba28e97c", + "sha256:9e724d68fc22902a1435351f84c3fb8623f303fffcc566a4cb952df8c572cff0" + ], + "version": "==2.0.1" + }, + "jinja2": { + "hashes": [ + "sha256:827a0e32839ab1600d4eb1c4c33ec5a8edfbc5cb42dafa13b81f182f97784b45", + "sha256:8569982d3f0889eed11dd620c706d39b60c36d6d25843961f33f77fb6bc6b20c" + ], + "version": "==3.0.2" + }, + "markupsafe": { + "hashes": [ + "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298", + "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64", + "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b", + "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567", + "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff", + "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724", + "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74", + "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646", + "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35", + "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6", + "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6", + "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad", + "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26", + "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38", + "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac", + "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7", + "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6", + "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75", + "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f", + "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135", + "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8", + "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a", + "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a", + "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9", + "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864", + "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914", + "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18", + "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8", + "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2", + "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d", + "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b", + "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b", + "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f", + "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb", + "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833", + "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28", + "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415", + "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902", + "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d", + "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9", + "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d", + "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145", + "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066", + "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c", + "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1", + "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f", + "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53", + "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134", + "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85", + "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5", + "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94", + "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509", + "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51", + "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872" + ], + "version": "==2.0.1" + }, + "simplekv": { + "hashes": [ + "sha256:8953a36cb3741ea821c9de1962b5313bf6fe1b927f6ced2a55266eb8ce2cd0f6", + "sha256:af91a50af41a286a8b7b93292b21dd1af37f38e9513fea0eb4fa75ce778c1683", + "sha256:fcee8d972d092de0dc83732084e389c9b95839503537ef85c1a2eeb07182f2f5" + ], + "version": "==0.14.1" + }, + "six": { + "hashes": [ + "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", + "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + ], + "version": "==1.16.0" + }, + "werkzeug": { + "hashes": [ + "sha256:63d3dc1cf60e7b7e35e97fa9861f7397283b75d765afcaefd993d6046899de8f", + "sha256:aa2bb6fc8dee8d6c504c0ac1e7f5f7dc5810a9903e793b6f715a9f015bdadb9a" + ], + "version": "==2.0.2" + } + }, + "develop": {} +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..524448f --- /dev/null +++ b/README.md @@ -0,0 +1,61 @@ +# femto-acs for femtocells + +This is a *hack* to get ip.access nano3g femtocells configured without using a huge tr069/ACS server like (geniacs, ...). +This simplified version only reacts on *Inform* and tries to set values from the configuration file without checking the state of the femto cell. +It further does not create or delete objects if they don't exist. Neither does it check if the values in the ini file are valid. E.g. by getting both values and type from the device itself. + +## Installation + +### debian + +Ensure python3 with pipenv is installed + +`apt-get install python3 pipenv` + +```sh +pipenv install +``` + +## Configuration + +### config/flask.cfg + +Please change the `SECRET_KEY` by generating your own. The `SECRET_KEY` is used to sign cookies. + +### config/femtocells.ini + +The main configuration file for the femtocells. The *Common* section is used as default values which can be overriden by a specific +femtocell configuration. +To override values for a specific femtocell create a section with the serialnumber including leading zeros as shown for femtocell *0000123456*. + +**IMPORTANT** ensure the **Device.ManagementServer.URL=http://10.0.11.184:7547/acs|xsd:string** matches this server including the /acs. + +After changing values in the femtocells.ini the femto cell can be either rebooted or wait until the femto cell is informing us again (see periodic inform / tr069). + +## Running + +From within the repository call: +``` +pipenv install +pipenv shell +gunicorn -k eventlet --keep-alive 600 --bind 0.0.0.0:7547 app:app +``` + +gunicorn is used to allow keep-alive connections. + +## Troubleshooting + +### femto cell stops reacting on ACS data + +Ensure the xml files contain an extra newline (ascii 0xa) on the end of the request. + +## Bugs / Limitations + +* It doesn't use any external database (mysql) or cache system (redis) to reduce the amount of external dependencies and simplify the setup. + +## Thanks + +Thanks to: + +* [Thomas Steen 'tykling' Rasmussen](https://github.com/tykling/) +* [pentonet for their genieacs setup](https://github.com/Pentonet/pentonet-genieacs-package) diff --git a/app.py b/app.py new file mode 100644 index 0000000..0b9cdbc --- /dev/null +++ b/app.py @@ -0,0 +1,161 @@ +#!/usr/bin/env python3 +# Author: Alexander Couzens +# (C) 2021 by sysmocom - s.f.m.c. GmbH + +import configparser +import logging +from xml.etree.ElementTree import fromstring + +from flask import Flask, make_response, render_template, request, session +from flask_caching import Cache +from flask_kvsession import KVSessionExtension +from simplekv.fs import FilesystemStore + +from xmlutils import * + +LOG = logging.getLogger("acs_emu") +STORE = FilesystemStore('./data') + +app = Flask("acs_emu") +KVSessionExtension(STORE, app) + +app.config.from_pyfile('./config/flask.py') +cache = Cache() +cache.init_app(app=app, config={"CACHE_TYPE": 'FileSystemCache', "CACHE_DIR": "./cache"}) +cache.clear() + +def send_configuration(serial, push): + """ write to the 'database' if this serial needs a configuration """ + cache.set(serial, push) + +def need_configuration(serial): + """ does this device needs a new configuration? """ + need = cache.get(serial) + if need is None: + cache.set(serial, True) + return True + return need + +def generate_config(params=None, serial=None, config_file='./config/femtocells.ini'): + """ return a params dict for setparams from the config file """ + if params is None: + params = {} + + config = configparser.ConfigParser() + config.optionxform=str + config.read(config_file) + + def read_config_to_params(section): + for key in config[section]: + try: + val, xmltype = config[section][key].split('|') + params[key] = {'value': val, 'xmltype': xmltype} + except: + LOG.error("Failed to parse %s key %s with value %s", section, key, config[section][key]) + + read_config_to_params('Common') + + if serial and serial in config: + read_config_to_params(serial) + return params + +@app.route('/', methods=['GET', 'POST']) +def root(): + return 'This is a femto-acs/tr069 server' + +def inform(tree, node): + """ handle a device Inform request """ + cwmpid = get_cwmp_id(tree) + serial = get_cwmp_inform_serial(node) + events = get_cwmp_inform_events(node) + + session['serial'] = serial + if '0 BOOTSTRAP' in events or '1 BOOT' in events: + send_configuration(serial, True) + LOG.error("Device %s booted", serial) + + LOG.error("Device %s informed us. cwmpipd %s. Events %s", serial, cwmpid, ", ".join(events)) + response = make_response(render_template('inform.jinja.xml', cwmpid=cwmpid)) + response.headers['Content-Type'] = 'text/xml; charset="utf-8"' + response.headers['SOAPServer'] = 'femto-acs/1.1.1' + response.headers['Server'] = 'femto-acs/1.1.1' + return response + +def send_setparams(): + """ request a setparams """ + # e.g. params are {name: "arfcn", xmltype: "xsd:int", value: "23"} + serial = session['serial'] + + params = {} + params = generate_config(params, serial) + + # keep track if we already sent out a response + LOG.error("Device %s sending configuration", serial) + send_configuration(serial, True) + response = make_response(render_template('setparams.jinja.xml', + cwmpid=23, params=params, length_params=len(params))) + response.headers['Content-Type'] = 'text/xml' + return response + +def setparams_response(tree, node): + """ handle the setparams response """ + serial = session['serial'] + status = get_cwmp_setresponse_status(node) + if status is not None: + if status == '0': + LOG.error("Device %s applied configuration changes without reboot", serial) + elif status == '1': + LOG.error("Device %s applied configuration changes but require a reboot", serial) + else: + LOG.error("Device %s returned unknown status value (%s)", serial) + send_configuration(serial, False) + response = make_response() + response.headers['Content-Type'] = 'text/xml' + return response + +@app.route('/acs', methods=['GET', 'POST']) +def acs(): + """ main tr069/acs entry point """ + if request.method == 'GET': + return 'This is a femoto-acs/tr069 server' + + if request.method != 'POST': + return 'There is nothing to show' + + # POST requests + if request.content_type != 'text/xml': + return 'Wrong content type' + + # when the client doesn't send us any data, it's ready for our request + if not request.content_length: + if 'serial' not in session: + LOG.error("Received an empty request from an unknown device. Can not generate configuration!") + return make_response() + if need_configuration(session['serial']): + return send_setparams() + + LOG.error("Device %s already configured", session['serial']) + return make_response() + + # some request content data + try: + tree = fromstring(request.data) + except: + return 'Could not parse the request as XML' + + method = get_cwmp_method(tree) + if not method: + return 'Failed to get the cwmp method' + + method, node = method + + if method == "Inform": + return inform(tree, node) + + if method == "SetParameterValuesResponse": + return setparams_response(tree, node) + + return 'This is a femto-acs/tr069 server' + +if __name__ == '__main__': + app.run() diff --git a/cache/.empty b/cache/.empty new file mode 100644 index 0000000..e69de29 diff --git a/config/femtocells.ini b/config/femtocells.ini new file mode 100644 index 0000000..c300b1e --- /dev/null +++ b/config/femtocells.ini @@ -0,0 +1,67 @@ +[0000123456] +Device.Services.FAPService.e.AccessMgmt.UMTS.HNBName=000295-0000123456@ipaccess.com|xsd:string +Device.Services.FAPService.1.CellConfig.UMTS.CN.PLMNID=00101|xsd:string +Device.Services.FAPService.1.CellConfig.UMTS.CN.LACRAC=64000:210|xsd:string +Device.Services.FAPService.1.CellConfig.UMTS.CN.SAC=210|xsd:unsignedInt +Device.Services.FAPService.1.CellConfig.UMTS.CN.SAI_LAC=64000|xsd:unsignedInt +Device.Services.FAPService.1.CellConfig.UMTS.RAN.CellID=210|xsd:unsignedInt +Device.Services.FAPService.1.CellConfig.UMTS.RAN.RNCID=210|xsd:unsignedInt +Device.Services.FAPService.1.CellConfig.UMTS.RAN.RF.MaxFAPTxPowerExpanded=50|xsd:string +Device.Services.FAPService.1.CellConfig.UMTS.RAN.RF.MaxULTxPower=24|xsd:string +Device.Services.FAPService.1.CellConfig.UMTS.RAN.RF.PrimaryScramblingCode=13|xsd:string +Device.Services.FAPService.1.CellConfig.UMTS.RAN.RF.UARFCNDL=1007|xsd:string +Device.Services.FAPService.1.FAPControl.UMTS.AdminState=true|xsd:boolean +Device.Services.FAPService.1.FAPControl.UMTS.Gateway.FAPGWServer1=10.70.0.2|xsd:string +Device.Services.FAPService.1.REM.X_000295_RFParamsCandidateList=1007-13|xsd:string + +[Common] +Device.Services.FAPService.1.CellConfig.UMTS.RAN.RNCID=0|xsd:unsignedInt +Device.ManagementServer.URL=http://10.0.11.184:7547/acs|xsd:string +Device.Services.FAPService.1.FAPControl.UMTS.Gateway.FAPGWServer1=10.70.0.2|xsd:string +Device.Time.NTPServer1=0.ipaccess.pool.ntp.org|xsd:string +Device.Time.NTPServer2=1.ipaccess.pool.ntp.org|xsd:string +Device.Time.NTPServer3=2.ipaccess.pool.ntp.org|xsd:string +Device.Time.NTPServer4=3.ipaccess.pool.ntp.org|xsd:string +Device.IPsec.Enable=false|xsd:boolean +Device.ManagementServer.PeriodicInformEnable=true|xsd:boolean +Device.ManagementServer.PeriodicInformInterval=60|xsd:unsignedInt +Device.Services.FAPService.1.AccessMgmt.UMTS.AccessMode=Open Access|xsd:string +Device.Services.FAPService.1.AccessMgmt.UMTS.NonCSGUEAccessDecision=Local|xsd:string +Device.Services.FAPService.1.AccessMgmt.UMTS.X_000295_AccessDecisionMode=Legacy Mode|xsd:string +Device.Services.FAPService.1.AccessMgmt.UMTS.X_000295_DefaultUERejectCause=Roaming not allowed in this location area|xsd:string +Device.Services.FAPService.1.AccessMgmt.UMTS.X_000295_DefaultUERejectMethod=AUTO|xsd:string +Device.Services.FAPService.1.CellConfig.UMTS.CN.CSDomain.IMSIAttachDetachEnable=true|xsd:boolean +Device.Services.FAPService.1.CellConfig.UMTS.CN.PSDomain.NetworkModeOperationCombined=true|xsd:boolean +Device.Services.FAPService.1.CellConfig.UMTS.CN.X_000295_IuUpInitNoDataSupported=true|xsd:boolean +Device.Services.FAPService.1.CellConfig.UMTS.RAN.CellRestriction.CellBarred=false|xsd:boolean +Device.Services.FAPService.1.CellConfig.UMTS.RAN.CellRestriction.CellReservedForOperatorUse=false|xsd:boolean +Device.Services.FAPService.1.CellConfig.UMTS.RAN.CellRestriction.IntraFreqCellReselectionIndicator=true|xsd:boolean +Device.Services.FAPService.1.CellConfig.UMTS.RAN.RF.PCPICHPower=10.0|xsd:string +Device.Services.FAPService.1.CellConfig.UMTS.RAN.X_000295_CellBroadcastDefaultMessage=|xsd:string +Device.Services.FAPService.1.CellConfig.UMTS.RAN.X_000295_CellBroadcastEnable=false|xsd:boolean +Device.Services.FAPService.1.CellConfig.UMTS.RAN.X_000295_CellBroadcastMode=CB_MODE_DEFAULT_MESSAGE|xsd:string +Device.Services.FAPService.1.CellConfig.UMTS.RAN.X_000295_HandoverEnabled=true|xsd:boolean +Device.Services.FAPService.1.CellConfig.UMTS.RAN.X_000295_IntraFrequencyHandoutEnabled=true|xsd:boolean +Device.Services.FAPService.1.CellConfig.UMTS.RAN.X_000295_PSHandoverEnabled=true|xsd:boolean +Device.Services.FAPService.1.CellConfig.UMTS.RAN.X_000295_PSInactivityTimeout=30|xsd:unsignedInt +Device.Services.FAPService.1.CellConfig.UMTS.RAN.X_000295_DataOnFACHEnable=true|xsd:boolean +Device.Services.FAPService.1.CellConfig.UMTS.RAN.X_000295_FdEnabled=false|xsd:boolean +Device.Services.FAPService.1.REM.UMTS.WCDMA.ScanOnBoot=false|xsd:boolean +Device.Services.FAPService.1.REM.UMTS.WCDMA.ScanPeriodically=false|xsd:boolean +Device.Services.FAPService.1.REM.UMTS.WCDMA.ScanTimeout=0|xsd:unsignedInt +Device.Services.FAPService.1.REM.X_000295_CellParameterSelectionMethod=CONFIGURED|xsd:string +Device.Services.FAPService.1.REM.X_000295_NeighbourListPopulation=0|xsd:unsignedInt +Device.Services.FAPService.1.REM.X_000295_ScanBands=|xsd:string +Device.Time.LocalTimeZone=GMT|xsd:string +Device.Time.X_000295_NTPFrequencyDisciplineEnabled=false|xsd:boolean +Device.Services.FAPService.1.REM.X_000295_ExternalPaGain=0|xsd:int +Device.Services.FAPService.1.CellConfig.UMTS.RAN.CellSelection.HCSPrio=0|xsd:unsignedInt +Device.Services.FAPService.1.CellConfig.UMTS.RAN.CellSelection.QHCS=0|xsd:unsignedInt +Device.Services.FAPService.1.CellConfig.UMTS.RAN.CellSelection.SHCSRAT=-105|xsd:int +Device.Services.FAPService.1.CellConfig.UMTS.RAN.CellSelection.SIntersearch=8|xsd:int +Device.Services.FAPService.1.CellConfig.UMTS.RAN.CellSelection.SIntrasearch=10|xsd:int +Device.Services.FAPService.1.CellConfig.UMTS.RAN.CellSelection.SLimitSearchRAT=0|xsd:int +Device.Services.FAPService.1.CellConfig.UMTS.RAN.CellSelection.SSearchHCS=-100|xsd:int +Device.Services.FAPService.1.CellConfig.UMTS.RAN.CellSelection.SSearchRAT=8|xsd:int +Device.Services.FAPService.1.CellConfig.UMTS.RAN.CellSelection.UseOfHCS=false|xsd:boolean + diff --git a/config/flask.py b/config/flask.py new file mode 100644 index 0000000..17ae37e --- /dev/null +++ b/config/flask.py @@ -0,0 +1,2 @@ +# flask configuration file +SECRET_KEY=b'j;\x9fq&\xfe\x04\xe1\xc3\xb5F\xc9\xa6~a\xdd' diff --git a/data/.empty b/data/.empty new file mode 100644 index 0000000..e69de29 diff --git a/example_xml/1_nano_1_inform.xml b/example_xml/1_nano_1_inform.xml new file mode 100644 index 0000000..a455833 --- /dev/null +++ b/example_xml/1_nano_1_inform.xml @@ -0,0 +1,1719 @@ + + + + 2 + + + + + ip.access Ltd + 000295 + + 0000123456 + + + + 4 VALUE CHANGE + + + + 0 BOOTSTRAP + + + + 1 + 2021-09-22T23:46:49Z + 2 + + + Device.ManagementServer.ParameterKey + 0 + + + Device.FaultMgmt.SupportedAlarmNumberOfEntries + 47 + + + Device.FaultMgmt.SupportedAlarm.1.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.SupportedAlarm.1.SpecificProblem + No Oscillator Synchronisation + + + Device.FaultMgmt.SupportedAlarm.1.PerceivedSeverity + Major + + + Device.FaultMgmt.SupportedAlarm.1.ProbableCause + Clock Synchronization Problem + + + Device.FaultMgmt.SupportedAlarm.2.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.SupportedAlarm.2.SpecificProblem + No Oscillator Synchronisation + + + Device.FaultMgmt.SupportedAlarm.2.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.2.ProbableCause + Clock Synchronization Problem + + + Device.FaultMgmt.SupportedAlarm.3.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.SupportedAlarm.3.SpecificProblem + NTP Unable to Synchronise Oscillator + + + Device.FaultMgmt.SupportedAlarm.3.PerceivedSeverity + Major + + + Device.FaultMgmt.SupportedAlarm.3.ProbableCause + Clock Synchronization Problem + + + Device.FaultMgmt.SupportedAlarm.4.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.SupportedAlarm.4.SpecificProblem + NTP Unable to Synchronise Oscillator + + + Device.FaultMgmt.SupportedAlarm.4.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.4.ProbableCause + Clock Synchronization Problem + + + Device.FaultMgmt.SupportedAlarm.5.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.5.SpecificProblem + NWL Unable to Synchronise Oscillator + + + Device.FaultMgmt.SupportedAlarm.5.PerceivedSeverity + Major + + + Device.FaultMgmt.SupportedAlarm.5.ProbableCause + Clock Synchronization Problem + + + Device.FaultMgmt.SupportedAlarm.6.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.6.SpecificProblem + NWL Unable to Synchronise Oscillator + + + Device.FaultMgmt.SupportedAlarm.6.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.6.ProbableCause + Clock Synchronization Problem + + + Device.FaultMgmt.SupportedAlarm.7.EventType + EQUIPMENT ALARM + + + Device.FaultMgmt.SupportedAlarm.7.SpecificProblem + 3G AP TX OPLL Failure + + + Device.FaultMgmt.SupportedAlarm.7.PerceivedSeverity + Critical + + + Device.FaultMgmt.SupportedAlarm.7.ProbableCause + Clock Synchronization Problem + + + Device.FaultMgmt.SupportedAlarm.8.EventType + EQUIPMENT ALARM + + + Device.FaultMgmt.SupportedAlarm.8.SpecificProblem + 3G AP TX OPLL Failure + + + Device.FaultMgmt.SupportedAlarm.8.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.8.ProbableCause + Clock Synchronization Problem + + + Device.FaultMgmt.SupportedAlarm.9.EventType + ENVIRONMENTAL ALARM + + + Device.FaultMgmt.SupportedAlarm.9.SpecificProblem + 3G AP Over Temperature + + + Device.FaultMgmt.SupportedAlarm.9.PerceivedSeverity + Major + + + Device.FaultMgmt.SupportedAlarm.9.ProbableCause + High Temperature + + + Device.FaultMgmt.SupportedAlarm.10.EventType + ENVIRONMENTAL ALARM + + + Device.FaultMgmt.SupportedAlarm.10.SpecificProblem + 3G AP Over Temperature + + + Device.FaultMgmt.SupportedAlarm.10.PerceivedSeverity + Minor + + + Device.FaultMgmt.SupportedAlarm.10.ProbableCause + High Temperature + + + Device.FaultMgmt.SupportedAlarm.11.EventType + ENVIRONMENTAL ALARM + + + Device.FaultMgmt.SupportedAlarm.11.SpecificProblem + 3G AP Over Temperature + + + Device.FaultMgmt.SupportedAlarm.11.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.11.ProbableCause + High Temperature + + + Device.FaultMgmt.SupportedAlarm.12.EventType + ENVIRONMENTAL ALARM + + + Device.FaultMgmt.SupportedAlarm.12.SpecificProblem + 3G AP Under Temperature + + + Device.FaultMgmt.SupportedAlarm.12.PerceivedSeverity + Major + + + Device.FaultMgmt.SupportedAlarm.12.ProbableCause + Low Temperature + + + Device.FaultMgmt.SupportedAlarm.13.EventType + ENVIRONMENTAL ALARM + + + Device.FaultMgmt.SupportedAlarm.13.SpecificProblem + 3G AP Under Temperature + + + Device.FaultMgmt.SupportedAlarm.13.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.13.ProbableCause + Low Temperature + + + Device.FaultMgmt.SupportedAlarm.14.EventType + EQUIPMENT ALARM + + + Device.FaultMgmt.SupportedAlarm.14.SpecificProblem + Oscillator Frequency Correction Outside Range + + + Device.FaultMgmt.SupportedAlarm.14.PerceivedSeverity + Critical + + + Device.FaultMgmt.SupportedAlarm.14.ProbableCause + Clock Synchronization Problem + + + Device.FaultMgmt.SupportedAlarm.15.EventType + EQUIPMENT ALARM + + + Device.FaultMgmt.SupportedAlarm.15.SpecificProblem + Oscillator Frequency Correction Outside Range + + + Device.FaultMgmt.SupportedAlarm.15.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.15.ProbableCause + Clock Synchronization Problem + + + Device.FaultMgmt.SupportedAlarm.16.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.SupportedAlarm.16.SpecificProblem + Internal SW Error + + + Device.FaultMgmt.SupportedAlarm.16.PerceivedSeverity + Critical + + + Device.FaultMgmt.SupportedAlarm.16.ProbableCause + Software Error + + + Device.FaultMgmt.SupportedAlarm.17.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.SupportedAlarm.17.SpecificProblem + Internal SW Error + + + Device.FaultMgmt.SupportedAlarm.17.PerceivedSeverity + Warning + + + Device.FaultMgmt.SupportedAlarm.17.ProbableCause + Software Error + + + Device.FaultMgmt.SupportedAlarm.18.EventType + ENVIRONMENTAL ALARM + + + Device.FaultMgmt.SupportedAlarm.18.SpecificProblem + No Free Frequency - Scrambling Code Pair + + + Device.FaultMgmt.SupportedAlarm.18.PerceivedSeverity + Critical + + + Device.FaultMgmt.SupportedAlarm.18.ProbableCause + Underlying Resource Unavailable + + + Device.FaultMgmt.SupportedAlarm.19.EventType + ENVIRONMENTAL ALARM + + + Device.FaultMgmt.SupportedAlarm.19.SpecificProblem + No Free Frequency - Scrambling Code Pair + + + Device.FaultMgmt.SupportedAlarm.19.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.19.ProbableCause + Underlying Resource Unavailable + + + Device.FaultMgmt.SupportedAlarm.20.EventType + ENVIRONMENTAL ALARM + + + Device.FaultMgmt.SupportedAlarm.20.SpecificProblem + No Free LAC - RAC Pair + + + Device.FaultMgmt.SupportedAlarm.20.PerceivedSeverity + Critical + + + Device.FaultMgmt.SupportedAlarm.20.ProbableCause + Underlying Resource Unavailable + + + Device.FaultMgmt.SupportedAlarm.21.EventType + ENVIRONMENTAL ALARM + + + Device.FaultMgmt.SupportedAlarm.21.SpecificProblem + No Free LAC - RAC Pair + + + Device.FaultMgmt.SupportedAlarm.21.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.21.ProbableCause + Underlying Resource Unavailable + + + Device.FaultMgmt.SupportedAlarm.22.EventType + QUALITY OF SERVICE ALARM + + + Device.FaultMgmt.SupportedAlarm.22.SpecificProblem + GSM Co-channel Interference + + + Device.FaultMgmt.SupportedAlarm.22.PerceivedSeverity + Minor + + + Device.FaultMgmt.SupportedAlarm.22.ProbableCause + Degraded Signal + + + Device.FaultMgmt.SupportedAlarm.23.EventType + QUALITY OF SERVICE ALARM + + + Device.FaultMgmt.SupportedAlarm.23.SpecificProblem + GSM Co-channel Interference + + + Device.FaultMgmt.SupportedAlarm.23.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.23.ProbableCause + Degraded Signal + + + Device.FaultMgmt.SupportedAlarm.24.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.24.SpecificProblem + Primary Configuration Unusable + + + Device.FaultMgmt.SupportedAlarm.24.PerceivedSeverity + Major + + + Device.FaultMgmt.SupportedAlarm.24.ProbableCause + Configuration Or Customizing Error + + + Device.FaultMgmt.SupportedAlarm.25.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.25.SpecificProblem + Primary Configuration Unusable + + + Device.FaultMgmt.SupportedAlarm.25.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.25.ProbableCause + Configuration Or Customizing Error + + + Device.FaultMgmt.SupportedAlarm.26.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.26.SpecificProblem + Link Failure + + + Device.FaultMgmt.SupportedAlarm.26.PerceivedSeverity + Critical + + + Device.FaultMgmt.SupportedAlarm.26.ProbableCause + NanoBTS Interface Failure + + + Device.FaultMgmt.SupportedAlarm.27.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.27.SpecificProblem + Link Failure + + + Device.FaultMgmt.SupportedAlarm.27.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.27.ProbableCause + NanoBTS Interface Failure + + + Device.FaultMgmt.SupportedAlarm.28.EventType + SECURITY SERVICE OR MECHANISM VIOLATION + + + Device.FaultMgmt.SupportedAlarm.28.SpecificProblem + CRL Expiry + + + Device.FaultMgmt.SupportedAlarm.28.PerceivedSeverity + Major + + + Device.FaultMgmt.SupportedAlarm.28.ProbableCause + Denial Of Service + + + Device.FaultMgmt.SupportedAlarm.29.EventType + SECURITY SERVICE OR MECHANISM VIOLATION + + + Device.FaultMgmt.SupportedAlarm.29.SpecificProblem + CRL Expiry + + + Device.FaultMgmt.SupportedAlarm.29.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.29.ProbableCause + Denial Of Service + + + Device.FaultMgmt.SupportedAlarm.30.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.SupportedAlarm.30.SpecificProblem + Download Failure Alarm + + + Device.FaultMgmt.SupportedAlarm.30.PerceivedSeverity + Warning + + + Device.FaultMgmt.SupportedAlarm.30.ProbableCause + Software Download Failure + + + Device.FaultMgmt.SupportedAlarm.31.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.SupportedAlarm.31.SpecificProblem + Installed Software Image Validation + + + Device.FaultMgmt.SupportedAlarm.31.PerceivedSeverity + Critical + + + Device.FaultMgmt.SupportedAlarm.31.ProbableCause + Information Modification Detected + + + Device.FaultMgmt.SupportedAlarm.32.EventType + SECURITY SERVICE OR MECHANISM VIOLATION + + + Device.FaultMgmt.SupportedAlarm.32.SpecificProblem + Security Certificate Validation + + + Device.FaultMgmt.SupportedAlarm.32.PerceivedSeverity + Warning + + + Device.FaultMgmt.SupportedAlarm.32.ProbableCause + Information Modification Detected + + + Device.FaultMgmt.SupportedAlarm.33.EventType + SECURITY SERVICE OR MECHANISM VIOLATION + + + Device.FaultMgmt.SupportedAlarm.33.SpecificProblem + SSL Connection Failure + + + Device.FaultMgmt.SupportedAlarm.33.PerceivedSeverity + Critical + + + Device.FaultMgmt.SupportedAlarm.33.ProbableCause + Communications Protocol Error + + + Device.FaultMgmt.SupportedAlarm.34.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.34.SpecificProblem + HNB-GW Initial Contact Failure + + + Device.FaultMgmt.SupportedAlarm.34.PerceivedSeverity + Critical + + + Device.FaultMgmt.SupportedAlarm.34.ProbableCause + Communications Protocol Error + + + Device.FaultMgmt.SupportedAlarm.35.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.35.SpecificProblem + HNB-GW Initial Contact Failure + + + Device.FaultMgmt.SupportedAlarm.35.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.35.ProbableCause + Communications Protocol Error + + + Device.FaultMgmt.SupportedAlarm.36.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.36.SpecificProblem + IPsec Client Authentication Failure + + + Device.FaultMgmt.SupportedAlarm.36.PerceivedSeverity + Critical + + + Device.FaultMgmt.SupportedAlarm.36.ProbableCause + Communications Protocol Error + + + Device.FaultMgmt.SupportedAlarm.37.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.37.SpecificProblem + IPsec Client Authentication Failure + + + Device.FaultMgmt.SupportedAlarm.37.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.37.ProbableCause + Communications Protocol Error + + + Device.FaultMgmt.SupportedAlarm.38.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.38.SpecificProblem + IPsec Dead Peer Detected + + + Device.FaultMgmt.SupportedAlarm.38.PerceivedSeverity + Critical + + + Device.FaultMgmt.SupportedAlarm.38.ProbableCause + Communications Protocol Error + + + Device.FaultMgmt.SupportedAlarm.39.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.39.SpecificProblem + IPsec Dead Peer Detected + + + Device.FaultMgmt.SupportedAlarm.39.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.39.ProbableCause + Communications Protocol Error + + + Device.FaultMgmt.SupportedAlarm.40.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.40.SpecificProblem + IPsec Establishment Failure + + + Device.FaultMgmt.SupportedAlarm.40.PerceivedSeverity + Critical + + + Device.FaultMgmt.SupportedAlarm.40.ProbableCause + Communications Protocol Error + + + Device.FaultMgmt.SupportedAlarm.41.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.41.SpecificProblem + IPsec Establishment Failure + + + Device.FaultMgmt.SupportedAlarm.41.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.41.ProbableCause + Communications Protocol Error + + + Device.FaultMgmt.SupportedAlarm.42.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.42.SpecificProblem + IPsec Gateway Authentication Failure + + + Device.FaultMgmt.SupportedAlarm.42.PerceivedSeverity + Critical + + + Device.FaultMgmt.SupportedAlarm.42.ProbableCause + Communications Protocol Error + + + Device.FaultMgmt.SupportedAlarm.43.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.43.SpecificProblem + IPsec Gateway Authentication Failure + + + Device.FaultMgmt.SupportedAlarm.43.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.43.ProbableCause + Communications Protocol Error + + + Device.FaultMgmt.SupportedAlarm.44.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.44.SpecificProblem + IPsec Initial Contact Failure + + + Device.FaultMgmt.SupportedAlarm.44.PerceivedSeverity + Critical + + + Device.FaultMgmt.SupportedAlarm.44.ProbableCause + Communications Protocol Error + + + Device.FaultMgmt.SupportedAlarm.45.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.45.SpecificProblem + IPsec Initial Contact Failure + + + Device.FaultMgmt.SupportedAlarm.45.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.45.ProbableCause + Communications Protocol Error + + + Device.FaultMgmt.SupportedAlarm.46.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.46.SpecificProblem + IPsec Response Failure + + + Device.FaultMgmt.SupportedAlarm.46.PerceivedSeverity + Critical + + + Device.FaultMgmt.SupportedAlarm.46.ProbableCause + Communications Protocol Error + + + Device.FaultMgmt.SupportedAlarm.47.EventType + COMMUNICATIONS ALARM + + + Device.FaultMgmt.SupportedAlarm.47.SpecificProblem + IPsec Response Failure + + + Device.FaultMgmt.SupportedAlarm.47.PerceivedSeverity + Cleared + + + Device.FaultMgmt.SupportedAlarm.47.ProbableCause + Communications Protocol Error + + + Device.FaultMgmt.MaxCurrentAlarmEntries + 20 + + + Device.FaultMgmt.HistoryEventNumberOfEntries + 5 + + + Device.FaultMgmt.HistoryEvent.1.EventTime + 2018-03-13T16:00:11Z + + + Device.FaultMgmt.ExpeditedEventNumberOfEntries + 5 + + + Device.FaultMgmt.ExpeditedEvent.1.EventTime + 2018-03-13T16:00:11Z + + + Device.DeviceInfo.X_000295_FAPSoftware.DownloadStatus + AP_SYS_DLD_NOT_STARTED + + + Device.DeviceInfo.SoftwareVersion + Kernel: 240_002 231.0, Filesys: 240K004 634.15_signed + + + Device.DHCPv4.Client.1.DHCPServer + 10.0.11.1 + + + Device.DHCPv4.Client.1.DNSServers + 10.0.11.1 + + + Device.DHCPv4.Client.1.IPAddress + 10.0.11.175 + + + Device.DHCPv4.Client.1.LeaseTimeRemaining + 7200 + + + Device.DHCPv4.ClientNumberOfEntries + 1 + + + Device.IP.Interface.1.Name + 3GAP-External + + + Device.IP.Interface.1.IPv4Address.1.IPAddress + 10.0.11.175 + + + Device.Ethernet.Interface.1.MACAddress + 00:02:95:12:34:56 + + + Device.Ethernet.Interface.1.Name + + + + Device.IPsec.X_000295_DefaultIPsecEnable + false + + + Device.Services.FAPService.1.FAPControl.UMTS.Gateway.X_000295_DefaultSecGWServer + + + + Device.ManagementServer.X_000295_DefaultMgmtServerURL + http://10.0.11.184/acs + + + Device.Time.X_000295_DefaultNTPServer + 0.pool.ntp.org + + + Device.DeviceInfo.SerialNumber + 0000123456 + + + Device.DeviceInfo.ProductClass + + + + Device.DeviceInfo.HardwareVersion + 239B030-B + + + Device.DeviceInfo.ModelName + NANO-E16 + + + Device.DeviceInfo.Manufacturer + ip.access Ltd + + + Device.Services.FAPService.1.Capabilities.GPSEquipped + false + + + Device.DeviceInfo.UpTime + 95 + + + Device.DeviceInfo.X_000295_RebootHistoryNumberOfEntries + 20 + + + Device.DeviceInfo.X_000295_RebootHistoryCurrentIndex + 19 + + + Device.DeviceInfo.X_000295_LastRebootCause + NON CLEAN COLD SHUTDOWN + + + Device.DeviceInfo.X_000295_RebootHistory.1.BankIndex + 1 + + + Device.DeviceInfo.X_000295_RebootHistory.1.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.1.ShutdownTime + 2018-03-13T16:00:01Z + + + Device.DeviceInfo.X_000295_RebootHistory.1.RebootCauseInfo + NON CLEAN COLD SHUTDOWN + + + Device.DeviceInfo.X_000295_RebootHistory.2.BankIndex + 1 + + + Device.DeviceInfo.X_000295_RebootHistory.2.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.2.KernelUptime + 27 + + + Device.DeviceInfo.X_000295_RebootHistory.2.ShutdownTime + 2018-03-13T16:00:06Z + + + Device.DeviceInfo.X_000295_RebootHistory.2.RebootCauseInfo + USER REINITIALISE + + + Device.DeviceInfo.X_000295_RebootHistory.3.BankIndex + 1 + + + Device.DeviceInfo.X_000295_RebootHistory.3.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.3.ShutdownTime + 2018-03-13T16:00:01Z + + + Device.DeviceInfo.X_000295_RebootHistory.3.RebootCauseInfo + NON CLEAN COLD SHUTDOWN + + + Device.DeviceInfo.X_000295_RebootHistory.4.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.4.KernelUptime + 23 + + + Device.DeviceInfo.X_000295_RebootHistory.4.ShutdownTime + 2018-03-13T16:00:03Z + + + Device.DeviceInfo.X_000295_RebootHistory.4.RebootCauseInfo + USER REINITIALISE + + + Device.DeviceInfo.X_000295_RebootHistory.5.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.5.ShutdownTime + 2018-03-13T16:00:01Z + + + Device.DeviceInfo.X_000295_RebootHistory.5.RebootCauseInfo + NON CLEAN COLD SHUTDOWN + + + Device.DeviceInfo.X_000295_RebootHistory.6.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.6.KernelUptime + 26 + + + Device.DeviceInfo.X_000295_RebootHistory.6.ShutdownTime + 2018-03-13T16:00:07Z + + + Device.DeviceInfo.X_000295_RebootHistory.6.RebootCauseInfo + USER FACTORY RESTORE + + + Device.DeviceInfo.X_000295_RebootHistory.7.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.7.KernelUptime + 21 + + + Device.DeviceInfo.X_000295_RebootHistory.7.ShutdownTime + 2018-03-13T16:00:01Z + + + Device.DeviceInfo.X_000295_RebootHistory.7.RebootCauseInfo + USER REINITIALISE + + + Device.DeviceInfo.X_000295_RebootHistory.8.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.8.ShutdownTime + 2018-03-13T16:00:01Z + + + Device.DeviceInfo.X_000295_RebootHistory.8.RebootCauseInfo + NON CLEAN COLD SHUTDOWN + + + Device.DeviceInfo.X_000295_RebootHistory.9.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.9.KernelUptime + 27 + + + Device.DeviceInfo.X_000295_RebootHistory.9.ShutdownTime + 2018-03-13T16:00:06Z + + + Device.DeviceInfo.X_000295_RebootHistory.9.RebootCauseInfo + USER FACTORY RESTORE + + + Device.DeviceInfo.X_000295_RebootHistory.10.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.10.ShutdownTime + 2018-03-13T16:00:01Z + + + Device.DeviceInfo.X_000295_RebootHistory.10.RebootCauseInfo + NON CLEAN COLD SHUTDOWN + + + Device.DeviceInfo.X_000295_RebootHistory.11.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.11.ShutdownTime + 2018-03-13T16:00:01Z + + + Device.DeviceInfo.X_000295_RebootHistory.11.RebootCauseInfo + NON CLEAN COLD SHUTDOWN + + + Device.DeviceInfo.X_000295_RebootHistory.12.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.12.ShutdownTime + 2018-03-13T16:00:01Z + + + Device.DeviceInfo.X_000295_RebootHistory.12.RebootCauseInfo + NON CLEAN COLD SHUTDOWN + + + Device.DeviceInfo.X_000295_RebootHistory.13.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.13.KernelUptime + 27 + + + Device.DeviceInfo.X_000295_RebootHistory.13.ShutdownTime + 2018-03-13T16:00:07Z + + + Device.DeviceInfo.X_000295_RebootHistory.13.RebootCauseInfo + USER FACTORY RESTORE + + + Device.DeviceInfo.X_000295_RebootHistory.14.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.14.KernelUptime + 27 + + + Device.DeviceInfo.X_000295_RebootHistory.14.ShutdownTime + 2018-03-13T16:00:07Z + + + Device.DeviceInfo.X_000295_RebootHistory.14.RebootCauseInfo + USER FACTORY RESTORE + + + Device.DeviceInfo.X_000295_RebootHistory.15.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.15.ShutdownTime + 2018-03-13T16:00:01Z + + + Device.DeviceInfo.X_000295_RebootHistory.15.RebootCauseInfo + NON CLEAN COLD SHUTDOWN + + + Device.DeviceInfo.X_000295_RebootHistory.16.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.16.KernelUptime + 28 + + + Device.DeviceInfo.X_000295_RebootHistory.16.ShutdownTime + 2018-03-13T16:00:06Z + + + Device.DeviceInfo.X_000295_RebootHistory.16.RebootCauseInfo + USER FACTORY RESTORE + + + Device.DeviceInfo.X_000295_RebootHistory.17.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.17.ShutdownTime + 2018-03-13T16:00:01Z + + + Device.DeviceInfo.X_000295_RebootHistory.17.RebootCauseInfo + NON CLEAN COLD SHUTDOWN + + + Device.DeviceInfo.X_000295_RebootHistory.18.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.18.ShutdownTime + 2018-03-13T16:00:01Z + + + Device.DeviceInfo.X_000295_RebootHistory.18.RebootCauseInfo + NON CLEAN COLD SHUTDOWN + + + Device.DeviceInfo.X_000295_RebootHistory.19.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.19.ShutdownTime + 2018-03-13T16:00:01Z + + + Device.DeviceInfo.X_000295_RebootHistory.19.RebootCauseInfo + NON CLEAN COLD SHUTDOWN + + + Device.DeviceInfo.X_000295_RebootHistory.20.RebootCauseAdditionalInfo + + + + Device.DeviceInfo.X_000295_RebootHistory.20.ShutdownTime + 2018-03-13T16:00:01Z + + + Device.DeviceInfo.X_000295_RebootHistory.20.RebootCauseInfo + NON CLEAN COLD SHUTDOWN + + + Device.Services.FAPService.1.REM.UMTS.WCDMA.X_000295_NextRFScanTime + 2018-03-13T23:59:59Z + + + Device.Time.CurrentLocalTime + 2021-09-22T23:46:41Z + + + Device.DeviceInfo.AdditionalSoftwareVersion + DM: 182, B: 180.0, SK: 225.2.0, SF: 579.26.7_signed, BK: 11 + + + Device.FaultMgmt.HistoryEvent.1.AlarmIdentifier + 1 + + + Device.FaultMgmt.HistoryEvent.1.NotificationType + NewAlarm + + + Device.FaultMgmt.HistoryEvent.1.ManagedObjectInstance + + + + Device.FaultMgmt.HistoryEvent.1.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.HistoryEvent.1.ProbableCause + Software Error + + + Device.FaultMgmt.HistoryEvent.1.SpecificProblem + Internal SW Error + + + Device.FaultMgmt.HistoryEvent.1.PerceivedSeverity + Warning + + + Device.FaultMgmt.HistoryEvent.1.AdditionalText + Event:1 - No Software download URL received. Ignoring action! FILE=sysctrl_swdl, LINE=1348 + + + Device.FaultMgmt.ExpeditedEvent.1.AlarmIdentifier + 1 + + + Device.FaultMgmt.ExpeditedEvent.1.NotificationType + NewAlarm + + + Device.FaultMgmt.ExpeditedEvent.1.ManagedObjectInstance + + + + Device.FaultMgmt.ExpeditedEvent.1.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.ExpeditedEvent.1.ProbableCause + Software Error + + + Device.FaultMgmt.ExpeditedEvent.1.SpecificProblem + Internal SW Error + + + Device.FaultMgmt.ExpeditedEvent.1.PerceivedSeverity + Warning + + + Device.FaultMgmt.ExpeditedEvent.1.AdditionalText + Event:1 - No Software download URL received. Ignoring action! FILE=sysctrl_swdl, LINE=1348 + + + Device.FaultMgmt.HistoryEvent.2.EventTime + 2018-03-13T16:00:11Z + + + Device.FaultMgmt.HistoryEvent.2.AlarmIdentifier + 2 + + + Device.FaultMgmt.HistoryEvent.2.NotificationType + NewAlarm + + + Device.FaultMgmt.HistoryEvent.2.ManagedObjectInstance + + + + Device.FaultMgmt.HistoryEvent.2.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.HistoryEvent.2.ProbableCause + Software Error + + + Device.FaultMgmt.HistoryEvent.2.SpecificProblem + Internal SW Error + + + Device.FaultMgmt.HistoryEvent.2.PerceivedSeverity + Warning + + + Device.FaultMgmt.HistoryEvent.2.AdditionalText + Event:1 - No Software Upload URL received. Ignoring action! FILE=sysctrl_mt, LINE=10482 + + + Device.FaultMgmt.ExpeditedEvent.2.EventTime + 2018-03-13T16:00:11Z + + + Device.FaultMgmt.ExpeditedEvent.2.AlarmIdentifier + 2 + + + Device.FaultMgmt.ExpeditedEvent.2.NotificationType + NewAlarm + + + Device.FaultMgmt.ExpeditedEvent.2.ManagedObjectInstance + + + + Device.FaultMgmt.ExpeditedEvent.2.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.ExpeditedEvent.2.ProbableCause + Software Error + + + Device.FaultMgmt.ExpeditedEvent.2.SpecificProblem + Internal SW Error + + + Device.FaultMgmt.ExpeditedEvent.2.PerceivedSeverity + Warning + + + Device.FaultMgmt.ExpeditedEvent.2.AdditionalText + Event:1 - No Software Upload URL received. Ignoring action! FILE=sysctrl_mt, LINE=10482 + + + Device.Services.FAPService.1.Capabilities.UMTS.FDDBandsSupported + II,V + + + Device.Services.FAPService.1.Capabilities.UMTS.GSMRxBandsSupported + GSM850,PCS1900 + + + Device.Services.FAPService.1.Capabilities.UMTS.X_000295_UMTSRxBandsSupported + II,V + + + Device.DeviceInfo.TemperatureStatus.TemperatureSensor.1.Status + Enabled + + + Device.DeviceInfo.TemperatureStatus.TemperatureSensor.1.Value + 35 + + + Device.DeviceInfo.TemperatureStatus.TemperatureSensorNumberOfEntries + 1 + + + Device.Security.Certificate.1.Issuer + C=GB, O=ip.access Ltd, OU=OEM CA, CN=101 + + + Device.Security.Certificate.1.SerialNumber + 21610 + + + Device.Security.Certificate.1.Subject + C=GB, O=ip.access Ltd, OU=3GAP, CN=000295-0000211573 + + + Device.Security.Certificate.1.X_000295_CertificateFingerprint + B9:46:3A:0B:CE:F1:0E:48:D3:5E:41:29:70:19:27:38:AB:25:7B:7E + + + Device.Security.Certificate.1.NotAfter + 2038-12-03T16:05:22Z + + + Device.Security.Certificate.1.SubjectAlt + DNS=000295-0000211573.ap.ipaccess.com + + + Device.Security.Certificate.2.Issuer + C=GB, O=ip.access Ltd, OU=Root CA, CN=100 + + + Device.Security.Certificate.2.SerialNumber + 1 + + + Device.Security.Certificate.2.Subject + C=GB, O=ip.access Ltd, OU=OEM CA, CN=101 + + + Device.Security.Certificate.2.X_000295_CertificateFingerprint + 81:64:63:8C:75:4C:A8:9C:1C:83:FB:8C:4F:F0:FA:E1:2F:9F:23:7F + + + Device.Security.Certificate.2.NotAfter + 2034-03-28T14:51:18Z + + + Device.Security.Certificate.2.SubjectAlt + email=support@ipaccess.com + + + Device.Security.Certificate.3.Issuer + C=GB, O=ip.access Ltd, OU=Root CA, CN=100 + + + Device.Security.Certificate.3.SerialNumber + 0 + + + Device.Security.Certificate.3.Subject + C=GB, O=ip.access Ltd, OU=Root CA, CN=100 + + + Device.Security.Certificate.3.X_000295_CertificateFingerprint + A2:4D:76:3C:85:CC:F4:D2:64:F8:8B:AD:1D:4D:C4:A7:2E:FF:BA:78 + + + Device.Security.Certificate.3.NotAfter + 2034-03-28T14:50:15Z + + + Device.Security.Certificate.3.SubjectAlt + email=support@ipaccess.com + + + Device.Security.CertificateNumberOfEntries + 3 + + + Device.FaultMgmt.HistoryEvent.3.EventTime + 2018-03-13T16:00:12Z + + + Device.FaultMgmt.HistoryEvent.3.AlarmIdentifier + 3 + + + Device.FaultMgmt.HistoryEvent.3.NotificationType + NewAlarm + + + Device.FaultMgmt.HistoryEvent.3.ManagedObjectInstance + + + + Device.FaultMgmt.HistoryEvent.3.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.HistoryEvent.3.ProbableCause + Software Error + + + Device.FaultMgmt.HistoryEvent.3.SpecificProblem + Internal SW Error + + + Device.FaultMgmt.HistoryEvent.3.PerceivedSeverity + Warning + + + Device.FaultMgmt.HistoryEvent.3.AdditionalText + Event:1 - IPsec is disabled! Can't process IPsec Request FILE=security_ctrl, LINE=1391 + + + Device.FaultMgmt.ExpeditedEvent.3.EventTime + 2018-03-13T16:00:12Z + + + Device.FaultMgmt.ExpeditedEvent.3.AlarmIdentifier + 3 + + + Device.FaultMgmt.ExpeditedEvent.3.NotificationType + NewAlarm + + + Device.FaultMgmt.ExpeditedEvent.3.ManagedObjectInstance + + + + Device.FaultMgmt.ExpeditedEvent.3.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.ExpeditedEvent.3.ProbableCause + Software Error + + + Device.FaultMgmt.ExpeditedEvent.3.SpecificProblem + Internal SW Error + + + Device.FaultMgmt.ExpeditedEvent.3.PerceivedSeverity + Warning + + + Device.FaultMgmt.ExpeditedEvent.3.AdditionalText + Event:1 - IPsec is disabled! Can't process IPsec Request FILE=security_ctrl, LINE=1391 + + + Device.FaultMgmt.HistoryEvent.4.EventTime + 2018-03-13T16:00:13Z + + + Device.FaultMgmt.HistoryEvent.4.AlarmIdentifier + 4 + + + Device.FaultMgmt.HistoryEvent.4.NotificationType + NewAlarm + + + Device.FaultMgmt.HistoryEvent.4.ManagedObjectInstance + + + + Device.FaultMgmt.HistoryEvent.4.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.HistoryEvent.4.ProbableCause + Software Error + + + Device.FaultMgmt.HistoryEvent.4.SpecificProblem + Internal SW Error + + + Device.FaultMgmt.HistoryEvent.4.PerceivedSeverity + Warning + + + Device.FaultMgmt.HistoryEvent.4.AdditionalText + Event:1 - No Pm Upload URL received. Ignoring action! FILE=pmctrl_oam_if, LINE=1806 + + + Device.FaultMgmt.ExpeditedEvent.4.EventTime + 2018-03-13T16:00:13Z + + + Device.FaultMgmt.ExpeditedEvent.4.AlarmIdentifier + 4 + + + Device.FaultMgmt.ExpeditedEvent.4.NotificationType + NewAlarm + + + Device.FaultMgmt.ExpeditedEvent.4.ManagedObjectInstance + + + + Device.FaultMgmt.ExpeditedEvent.4.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.ExpeditedEvent.4.ProbableCause + Software Error + + + Device.FaultMgmt.ExpeditedEvent.4.SpecificProblem + Internal SW Error + + + Device.FaultMgmt.ExpeditedEvent.4.PerceivedSeverity + Warning + + + Device.FaultMgmt.ExpeditedEvent.4.AdditionalText + Event:1 - No Pm Upload URL received. Ignoring action! FILE=pmctrl_oam_if, LINE=1806 + + + Device.Services.FAPService.1.CellConfig.UMTS.CN.X_000295_BroadcastSAIInUse + ,0,0 + + + Device.Services.FAPService.1.FAPControl.UMTS.RFTxStatus + false + + + Device.ManagementServer.ConnectionRequestURL + http://10.0.11.175:7547/cwmp/creq + + + Device.Services.FAPService.1.Capabilities.UMTS.X_000295_MaxNumCellDchUEs + 16 + + + Device.Services.FAPService.1.Capabilities.UMTS.SelfConfig.NoiseRiseLimitConfig + false + + + Device.Services.FAPService.1.FAPControl.UMTS.OpState + false + + + Device.Security.X_000295_AugmentingTrustAnchorSetIdentity + T-Mobile Augmenting Trust Anchor Set, 23 July 2010 v1.0 + + + Device.Security.X_000295_CRLCache.1.CRLIssuer + 101 + + + Device.Security.X_000295_CRLCache.1.CRLNumber + 146 + + + Device.Security.X_000295_CRLCache.1.NextUpdate + 2021-12-06T15:51:44Z + + + Device.Security.X_000295_CRLCache.2.CRLIssuer + 100 + + + Device.Security.X_000295_CRLCache.2.CRLNumber + 3 + + + Device.Security.X_000295_CRLCache.2.NextUpdate + 2037-03-17T17:32:50Z + + + Device.Security.X_000295_CRLCacheNumberOfEntries + 2 + + + Device.FaultMgmt.HistoryEvent.5.EventTime + 2021-09-22T23:45:50Z + + + Device.FaultMgmt.HistoryEvent.5.AlarmIdentifier + 5 + + + Device.FaultMgmt.HistoryEvent.5.NotificationType + NewAlarm + + + Device.FaultMgmt.HistoryEvent.5.ManagedObjectInstance + + + + Device.FaultMgmt.HistoryEvent.5.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.HistoryEvent.5.ProbableCause + Software Error + + + Device.FaultMgmt.HistoryEvent.5.SpecificProblem + Internal SW Error + + + Device.FaultMgmt.HistoryEvent.5.PerceivedSeverity + Warning + + + Device.FaultMgmt.HistoryEvent.5.AdditionalText + Event:1 - IPsec is disabled! Can't process IPsec Request FILE=security_ctrl, LINE=1391 + + + Device.FaultMgmt.ExpeditedEvent.5.EventTime + 2021-09-22T23:45:50Z + + + Device.FaultMgmt.ExpeditedEvent.5.AlarmIdentifier + 5 + + + Device.FaultMgmt.ExpeditedEvent.5.NotificationType + NewAlarm + + + Device.FaultMgmt.ExpeditedEvent.5.ManagedObjectInstance + + + + Device.FaultMgmt.ExpeditedEvent.5.EventType + PROCESSING ERROR ALARM + + + Device.FaultMgmt.ExpeditedEvent.5.ProbableCause + Software Error + + + Device.FaultMgmt.ExpeditedEvent.5.SpecificProblem + Internal SW Error + + + Device.FaultMgmt.ExpeditedEvent.5.PerceivedSeverity + Warning + + + Device.FaultMgmt.ExpeditedEvent.5.AdditionalText + Event:1 - IPsec is disabled! Can't process IPsec Request FILE=security_ctrl, LINE=1391 + + + Device.DeviceInfo.SupportedDataModel.1.Features + X_000295_3GAPDevice + + + + + diff --git a/example_xml/1_nano_1_inform_response.xml b/example_xml/1_nano_1_inform_response.xml new file mode 100644 index 0000000..e691ff5 --- /dev/null +++ b/example_xml/1_nano_1_inform_response.xml @@ -0,0 +1,11 @@ + + + + 2 + + + + 1 + + + diff --git a/example_xml/2_acs_request.xml b/example_xml/2_acs_request.xml new file mode 100644 index 0000000..a485d55 --- /dev/null +++ b/example_xml/2_acs_request.xml @@ -0,0 +1,141 @@ + + + + 17c0fe79e0c0113 + + + + + + Device.ManagementServer.URL + http://10.0.11.184:7547/acs + + + Device.ManagementServer.PeriodicInformEnable + true + + + Device.ManagementServer.PeriodicInformInterval + 60 + + + Device.Services.FAPService.1.AccessMgmt.UMTS.NonCSGUEAccessDecision + Local + + + Device.Services.FAPService.1.FAPControl.UMTS.Gateway.FAPGWServer1 + 10.70.0.2 + + + Device.Services.FAPService.1.REM.UMTS.WCDMA.ScanPeriodically + false + + + Device.Services.FAPService.1.REM.UMTS.WCDMA.ScanOnBoot + false + + + Device.Services.FAPService.1.REM.X_000295_ExternalPaGain + 0 + + + Device.Services.FAPService.1.CellConfig.UMTS.CN.X_000295_IuUpInitNoDataSupported + true + + + Device.Services.FAPService.1.CellConfig.UMTS.CN.PSDomain.NetworkModeOperationCombined + true + + + Device.Services.FAPService.1.CellConfig.UMTS.CN.CSDomain.IMSIAttachDetachEnable + true + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.X_000295_CellBroadcastEnable + false + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.X_000295_HandoverEnabled + true + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.X_000295_IntraFrequencyHandoutEnabled + true + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.X_000295_PSHandoverEnabled + true + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.X_000295_DataOnFACHEnable + true + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.X_000295_FdEnabled + false + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.1.X_000295_TxDiversityIndicator + 1 + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.1.PLMNID + 00101 + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.1.CID + 210 + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.1.UARFCNDL + 1007 + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.1.LAC + 64000 + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.1.RAC + 210 + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.1.RNCID + 210 + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.1.PCPICHScramblingCode + 123 + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.2.PLMNID + 25001 + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.2.X_000295_TxDiversityIndicator + 1 + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.2.PCPICHScramblingCode + 123 + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.2.RAC + 210 + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.2.LAC + 64000 + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.2.UARFCNDL + 10753 + + + Device.Services.FAPService.1.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.2.CID + 10 + + + + + + diff --git a/example_xml/2_acs_response.xml b/example_xml/2_acs_response.xml new file mode 100644 index 0000000..ea8c67b --- /dev/null +++ b/example_xml/2_acs_response.xml @@ -0,0 +1,11 @@ + + + +17c0fe79e0c0113 + + + +0 + + + diff --git a/templates/inform.jinja.xml b/templates/inform.jinja.xml new file mode 100644 index 0000000..0915c55 --- /dev/null +++ b/templates/inform.jinja.xml @@ -0,0 +1,12 @@ + + + + {{ cwmpid }} + + + + 1 + + + + diff --git a/templates/setparams.jinja.xml b/templates/setparams.jinja.xml new file mode 100644 index 0000000..3c048ec --- /dev/null +++ b/templates/setparams.jinja.xml @@ -0,0 +1,19 @@ + + + + {{ cwmpip }} + + + + + {% for obj in params %} + {{ obj }} + {{ params[obj]['value'] }} + + {% endfor %} + + + + + + diff --git a/xmlutils.py b/xmlutils.py new file mode 100644 index 0000000..233746d --- /dev/null +++ b/xmlutils.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python3 +# Author: Alexander Couzens +# (C) 2021 by sysmocom - s.f.m.c. GmbH + +XML_NS = { + 'soap-env': 'http://schemas.xmlsoap.org/soap/envelope/', + 'cwmp': 'urn:dslforum-org:cwmp-1-0' + } + +def get_cwmp_method(root): + """ retrieve the cwmp method from the xml root Node """ + body = root.find('soap-env:Body', XML_NS) + if body is None: + return None + + for child in body: + if child.tag == '{urn:dslforum-org:cwmp-1-0}Inform': + return ('Inform', child) + if child.tag == '{urn:dslforum-org:cwmp-1-0}SetParameterValuesResponse': + return ('SetParameterValuesResponse', child) + return None + +def get_cwmp_id(root): + """ retrieve the cwmp id """ + header = root.find('soap-env:Header', XML_NS) + if header is None: + return None + + cwmpid = header.find('{urn:dslforum-org:cwmp-1-0}ID', XML_NS) + if cwmpid is not None: + return cwmpid.text + return None + +def get_cwmp_inform_events(inform): + """ return a list of Inform Events """ + eventnode = inform.find('Event') + if eventnode is None: + return None + + events = [] + """ parse + + 4 VALUE CHANGE + + + + 0 BOOTSTRAP + + + + """ + for ev in eventnode: + if ev.tag != "EventStruct": + continue + + evcodenode = ev.find('EventCode') + events.append(evcodenode.text) + return events + +def get_cwmp_inform_serial(inform): + """ retrieve the serial from an inform node """ + device_id = inform.find('DeviceId') + if device_id is None: + return None + + serial = device_id.find('SerialNumber') + if serial is None: + return None + return serial.text + +def get_cwmp_setresponse_status(setparametervaluesresponse): + """ retrieve the status from a setparametervaluesresponse node """ + statusnode = setparametervaluesresponse.find('Status') + if statusnode is None: + return None + return statusnode.text