Git Product home page Git Product logo

empower-runtime's Introduction

5G-EmPOWER: Artificial Inteligence-empowered Mobile Operating System

What is 5G-EmPOWER?

5G-EmPOWER is a near Real Time RAN Intelligent Controller (nRT-RIC) designed for heterogeneous wireless/mobile networks.

Top-Level Features

  • 5G-EmPOWER supports both LTE and Wi-Fi networks. Support for NR and ns3 is undergoing.
  • 5G-EmPOWER provides well defined programming abstraction around mature AI/ML toolkits lowering the entrance barrier for researchers and practioners.
  • 5G-EmPOWER provides a REST API and native (Python) API

Checkout out our website and our wiki

This repository includes the 5G-EmPOWER controller and the associated SDK.

License

Code is released under the Apache License, Version 2.0.

empower-runtime's People

Contributors

agottipati9 avatar altonbill avatar ccosta-fbk avatar estefaniacc avatar ingdestino avatar otibsa avatar rriggio avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

empower-runtime's Issues

Mobility Manager App - RSSI problem

In the web interface of the mobility manager app the RSSI value always shows null, although there is an active connection between the LVAP and the WTP.
More specifically, from the following line ucqm = wtps[wtp].supports[block].ucqm[lvap_addr] (in mobilitymanager.lib.js), the variable ucqm seems to be undefined or empty as the javascript console indicates. Also the ucqm object, inside the json response, appears to be empty.

QoS, Network Slices: Configuration issue

The Runtime seems to not allow edit the Slice details if a slice if created not with the button but with database contents (from the start). This work for the default slice and non-default slices.

Repeat with: Create a Slice different from the default, reboot the Runtime and then try to modify the slice details/setting. The usual window does not show up and clicking does not have any effects.

feature

Lvaps rates

LVAPStats object has an attribute

# data structures
       self.rates = {}

each entry of rate list consist from:

  1. rate
  2. cur_prob
  3. prob
    4.flags

Can you explain me what do you mean with rates ? Are you reffering to lvap performance , bit rate?

UEs not appearing in 5G-EmPOWER Web Interface and not possible to attribute UEs to a slice via Web Interface

Hello,

We are trying to setup 5G-EmPOWER and perform LTE RAN slicing.
Our configuration is based on srsENB and srsEPC (20.04.2).

We have successfully connected different COTS UEs (Honor View20, LG Nexus 5, Motorola Moto G 4G) to srsLTE and they have access to the Internet.

After creating a project in the Empower-runtime Web Interface, we wanted to attribute UEs to different slices.
But we faced 2 issues:

  1. Connected UEs doesn't appear in the Clients > UEs section, except for the LG Nexus 5

  2. From the project page, we can manage slices (creation, modification,...) but we didn't manage to find how to attribute UEs to a specific slice.

Could you please help us to overcome these issues?

Best regards,
Alan B. & Ehsan EK.

Version compatibility

Problem: When I first cloned the controller and the OpenWRT for EmPOWER, I noticed that the versions were incompatible with each other. Of course, this is due to the updating and bug fixes of both the controller and the OpenWRT. But it can take a while until you find versions of both things that run well together.

Possible solution: Of course, besides the obvious thing, that is releasing a 1.0 version or something similar, maybe there can be a section on the wiki saying: “This version of the controller and this version of OpenWRT have been tested and are compatible.”

Reported by Zeljkovic Ensar

Updating the OpenWRT image

To explain the issue, let me explain the process of using EmPOWER on the testbed. First, I have to get a spare device in my office, the same device that’s in the testbed I want to use. For example in my case it was the ZOTAC board. I then had to compile a suitable version for it (the x64 version). Then flash that image onto the ZOTAC board. I then have to set a default password for the root account and make sure that on eth0 there is a DHCP client. I then send this image to out guy at the testbed to install the testbed software, which allows it to run on the testbed correctly. So, when there is an update to the OpenWRT image of EmPOWER, I would have to repeat this process all over again. It would make thing much easier if there was a way to update it “over the air”, as they say. I am not sure if this is possible, you will know better.

Reported by Zeljkovic Ensar

Controller does not recognize WTPs

Dear,
Your work is great and I am trying to do some experiment with 2 routers TPLINK1043ND using OpenWRT firmware you provided. But I got an issue when running the empower-runtime and adding WTPs. I already added controller IP address in /etc/config/empower file but I had to manually set-controller address from openvswitch on routers. However, when I execute empower-runtime command, I got this:

INFO:core.pnfpserver: Incoming connection from ('192.168.250.1', 42215) and loop forever. May be I missed something?

Thanks for your consideration.

ue_handover

On VBS branch exists ue_handover.py , as I assume this a trigger for ue handover , but there no app in apps folder.
Are you planning to create an app triggering ue_handover like mobility on wifi ?

Component's Index doesn't load

After clicking on the loaded component, the index doesn't load giving the message "The Page isn't working, 127.0.0.1 didn’t send any data. ERR_EMPTY_RESPONSE" . The logs show this message
"""
ERROR:tornado.application:Uncaught exception
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/tornado/http1connection.py", line 238, in _read_message
delegate.finish()
File "/usr/lib/python3.6/site-packages/tornado/httpserver.py", line 289, in finish
self.delegate.finish()
File "/usr/lib/python3.6/site-packages/tornado/web.py", line 2047, in finish
self.execute()
File "/usr/lib/python3.6/site-packages/tornado/web.py", line 2067, in execute
**self.handler_kwargs)
File "/usr/lib/python3.6/site-packages/tornado/web.py", line 187, in init
self.initialize(**kwargs)
TypeError: initialize() got an unexpected keyword argument 'server'
"""

ATH10k support

It was a bit difficult to find devices that have ath9k in the testbed. Of course, we have devices that have a card inside that uses ath9k (ZOTAC board) and that’s the one I used in the testbed. However, there are more devices there, but all of them have wi-fi cards that need ath10k. Also, a lot of other functionality, like having 3 antennas (a good thing for the CSI for example for the localization), could only be used with ath10k cards. So if EmPOWER could support ath10k, that would be great.

Reported by Zeljkovic Ensar

VBS Stats measurements

Hi,

Edit:
I'm trying to trigger a vbs_cell_stats measurement in a VBS. In my application, after a vbs_up event. But the cells attribute of the VBS is always None. The same goes for the ue_rrc_meas which runs normally, but the ue.pcell_rsrp and ue.pcell_rsrq have the value None.
Also from various prints from the vbspconnection, the controller sends requests but never gets responses except from handle_ues_id_repl. The VBS and a UE are connected normally to the tenant. Any idea?

P.S. I'm using the empower-runtime from the vbs branch.

Thank you in advance

Web GUI cannot be used with the testbed

Problem: With the testbed you only can SSH into your nodes. So, using the Web GUI is impossible. This makes it a bit hard to set up the network slice and assign the WTPs. The way I did it was to set everything up on my local setup, and then clone that, including the database, to the testbed.

Reported by Zeljkovic Ensar

UE cannot access internet

Hi:

I am trying to build the 5G-empower, but the UE was not able to access the internet. I can see that EPC and eNB show there is a connection. I have MASQ the interface using my physical one.
Are there any suggestions?

Thanks
Tony

Cell Mesurement Poller misbehavior

I noticed some strange behavior of this module.

First when an eNB connect for the first time with the controller I see the following message:

INFO:vbsp.vbspconnection:Sending cell_measure_request to 00:00:00:00:00:01 at 127.0.0.1 last_seen 0

and the srsLTE agent correctly send reports, which are traced on the console with:

INFO:vbsp.vbspconnection:Got cell_measure_response message from 00:00:00:00:00:01 seq 92 xid 1
INFO:core.module:Received cell_measurements from 00:00:00:00:00:01 response xid=1 seq=92)

but if the eNB disconnects and re-connects again the module does not send again the measurement request. The eNB then does not know that it has to trace and stays silent. In addition, looking at the JSON data result in the following report:

[
    {
        "addr": "00:00:00:00:00:01",
        "cells": {
            "3": {
                "addr": "00:00:00:00:00:01",
                "cell_measurements": {
                    "mac_prbs_report": {}
                },
                "dl_bandwidth": 25,
                "dl_earfcn": 3400,
                "features": {
                    "cell_measure": 1,
                    "handover": 0,
                    "ue_measure": 1,
                    "ue_report": 1
                },
                "max_ues": 2,
                "pci": 3,
                "ran_features": {
                    "layer1": {},
                    "layer2": {
                        "prb_slicing": 0,
                        "rbg_slicing": 1
                    },
                    "layer3": {},
                    "mac_sched": 1,
                    "max_slices": 8
                },
                "ue_measurements": {},
                "ul_bandwidth": 25,
                "ul_earfcn": 21400
            }
        },
        "connection": [
            "127.0.0.1",
            50952
        ],
        "datapath": null,
        "label": "eNB1",
        "last_seen": 33,
        "last_seen_ts": "2018-11-19T14:12:11.290386Z",
        "period": 2000,
        "state": "online"
    }
]

and no reports are attached to the data, even if the console trace the incoming report from the base station.

Empower app does not work

Hi, I try to run network app from empower-runtime/empower/apps like this
./empower-runtime.py apps.helloworld.helloworld --tenant_id=f1894546-cfe8-4f2d-910c-5c2df81ed66e

But all of them get error
ERROR:root:Error calling launch in empower.apps.helloworld.helloworld: init() got an unexpected keyword argument 'message'
ERROR:root:init() got an unexpected keyword argument 'message'
Traceback (most recent call last):
File "/home/thang/empower-runtime/empower/main.py", line 194, in _do_launch
RUNTIME.register_app(name, func, params)
File "/home/thang/empower-runtime/empower/core/core.py", line 392, in register_app
self.tenants[tenant_id].components[name] = init_method(**params)
File "/home/thang/empower-runtime/empower/apps/helloworld/helloworld.py", line 56, in launch
return HelloWorld(tenant_id=tenant_id, message=message, every=every)
TypeError: init() got an unexpected keyword argument 'message'
Traceback (most recent call last):
File "./empower-runtime.py", line 63, in
main(ARGVS)
File "/home/thang/empower-runtime/empower/main.py", line 309, in main
raise RuntimeError()
RuntimeError
Any solution or i missed something? Thanks!

Question about WIFI authentication progress

Dear @rriggio,
Your work is great and I am now successful in running your system, However, after creating tenants and ssids I found that there is no authentication method between the wireless network and clients. Could you please tell me more about this situation? Did it not implement or I missed something? Thanks.

Components' Addition

  1. In the section of the components, when i try to add a new one by giving for example: apps.mobilitymanager.mobilitymanager:ID (where ID is the id of an existing tenant),
    it produces an error (Component not found and in console: jquery-2.1.4.min.js:4 POST http://127.0.0.1:8888/api/v1/components 404 (Not Found)).

  2. If i try to add a new component by giving for example:
    apps.mobilitymanager.mobilitymanager --tenant_id=ID (where ID is the id of an existing tenant),
    then there is no error message and the component seems to be loaded (INFO:core:Registering 'empower.apps.mobilitymanager.mobilitymanager'
    INFO:core.app:Setting limit -30 dB
    INFO:core.app:Setting control loop interval to 5000
    ), but it does not appear in the components list.

Channel Busyness Measurement Value

Hi Riggio,

I'm trying to figure out what is the value that the busyness measurement returns from the WTP? Can you please clarify what the value represents.

Thank you

QoS, Network Slices: Re-configuration issue

In the same session (no reboot in the middle), reconfiguring the slice sometimes does not trigger any feedback to the base station. This means that setting the RBG to a different value of the one at the start changes the status of the controller, but such change is not reflected in the eNBs.

Repeat with (not always true): Create a slice, then after some time reconfigure the RBG size from a size to another, down-scaling it for example (I did from 8 to 6 RBG).

Effect on the protocols:

F - HDR:  02 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    F - SCHE: 00 01 00 00 00 07 d0
        F - HELLO Req: 00 00 00 00
    P - SING: 00 0a 04

/*
 *
 * P is "Parsing", which means incoming message from controller
 *
 */

P - HDR:  01 01 00 00 00 00 00 00 00 01 00 03 32 a4 7c 82 00 01 00 00 00 05 00 35
    P - SING: 00 0a 04
        P - RANS Add: 00 22 2f 93 01 00 00 00 // Add Slice 01, Tenant 222f93
            P - RANS Res TLV: 05 01 00 02 00 08 // 8 RBG
            P - RANS Sched TLV: 05 02 00 04 00 00 00 00 // Scheduler 0, this is fine
            P - RNTIREP TLV: 00 01 00 00 // No RNTIs associated

/*
 *
 * F is "Format", which means outgoing message. This is the eNB report for the controller
 *
 */

F - HDR:  01 01 00 00 00 00 00 00 00 01 00 03 32 a4 7c 82 01 00 00 00 00 00 00 00
    F - SING: 00 0a 00
        F - RANS Unspec Rep: 00 22 2f 93 00 00 00 00
            F - RANS Res TLV: 05 01 00 02 00 06
            F - RANS Sched TLV: 05 02 00 04 80 00 00 01
F - HDR:  01 01 00 00 00 00 00 00 00 01 00 03 32 a4 7c 82 01 00 00 00 00 00 00 31
    F - SING: 00 0a 00
        F - RANS Unspec Rep: 00 22 2f 93 01 00 00 00
            F - RANS Res TLV: 05 01 00 02 00 08
            F - RANS Sched TLV: 05 02 00 04 80 00 00 01
F - HDR:  02 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    F - SCHE: 00 01 00 00 00 07 d0
        F - HELLO Req: 00 00 00 00
F - HDR:  02 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    F - SCHE: 00 01 00 00 00 07 d0
        F - HELLO Req: 00 00 00 00

[...]

/*
 *
 * Lot of HELLO here, but no more parsing of RAN slice setting, meaning no message has arrived from
 * the controller.
 *
 */

On the Runtime thus the situation of Slice 0x1 is as follows:

feature

wifiloadbalancing.py does not work on NetGear 4300

My wtp is NetGear 4300, and wifiloadbalancing.py does not work for me. The following is the situations I have met.
There are no member functions: lvapjoin and wtpup, wifistats.

AttributeError: 'WifiLoadBalancing' object has no attribute 'lvapjoin'
AttributeError: 'WifiLoadBalancing' object has no attribute 'wtpup'

Then I changed lvapjoin and wtpup to be following functions and comment self.lvapjoin and self.wtpup, and changed wifistats to be wifi_stats.


def lvap_join(self, lvap):
    self.lvap_join_callback(self.lvap)
    print("join")

def wtp_up(self, wtp):
    print("----------------------------------------")
    self.wtp_up_callback(wtp)
    print("wtp_up")

Then, I got:


ERROR:lvapp.lvappconnection:('expected 300, found 207', FieldError(FieldError('expected 4, found 0',),))
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/construct/core.py", line 358, in _parse
return self.packer.unpack(_read_stream(stream, self.length))[0]
File "/usr/local/lib/python3.5/dist-packages/construct/core.py", line 300, in _read_stream
raise FieldError("expected %d, found %d" % (length, len(data)))
construct.core.FieldError: expected 4, found 0

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/construct/core.py", line 437, in _parse
obj.append(self.subcon._parse(stream, context))
File "/usr/local/lib/python3.5/dist-packages/construct/core.py", line 728, in _parse
subobj = sc._parse(stream, context)
File "/usr/local/lib/python3.5/dist-packages/construct/core.py", line 360, in _parse
raise FieldError(sys.exc_info()[1])
construct.core.FieldError: expected 4, found 0

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/lin/empower-runtime/empower/lvapp/lvappconnection.py", line 178, in _on_read
self._trigger_message(hdr.type)
File "/home/lin/empower-runtime/empower/lvapp/lvappconnection.py", line 196, in _trigger_message
msg = self.server.pt_types[msg_type].parse(self.__buffer)
File "/usr/local/lib/python3.5/dist-packages/construct/core.py", line 183, in parse
return self.parse_stream(BytesIO(data))
File "/usr/local/lib/python3.5/dist-packages/construct/core.py", line 193, in parse_stream
return self._parse(stream, Container())
File "/usr/local/lib/python3.5/dist-packages/construct/core.py", line 665, in _parse
subobj = sc._parse(stream, context)
File "/usr/local/lib/python3.5/dist-packages/construct/core.py", line 440, in _parse
raise ArrayError("expected %d, found %d" % (count, c), sys.exc_info()[1])
construct.core.ArrayError: ('expected 300, found 207', FieldError(FieldError('expected 4, found 0',),))
INFO:lvapp.lvappconnection:WTP disconnected: A2:5C:4E:1A:F0:6A
INFO:core.pnfdev:PNFDev A2:5C:4E:1A:F0:6A mode online->disconnected
INFO:core.module:WTP A2:5C:4E:1A:F0:6A not connected
INFO:core.module:Removing wifi_stats (id=2)


There error comes from function _trigger_message, the msg_type for the errors is 56
def _trigger_message(self, msg_type):

    if msg_type not in self.server.pt_types:
        self.log.error("Unknown message type %u", msg_type)
        return

    if self.server.pt_types[msg_type]:

        msg_name = self.server.pt_types[msg_type].name

        msg = self.server.pt_types[msg_type].parse(self.__buffer)

Channel Reconfiguration

Hi,
Is it possible to change the channel of the WTPs in real time from the controller. Something like:
for block in wtp.supports:
block.channel = 11
, thus triggering a channel change in the WTPs??

Thank you in advance.

Possible naming error in traffic rule class

I think there is some naming error in the TrafficRule class. Now the constructor accepts the "tenant" parameter but when this constructor is used the tenant_id is usually passed. At the same time in the ibnpserver class there is code trying to access tr.tenant.tenant_id.

Since the TrafficRule class is similar to the Slice class I would pass to the constructor an instance of the tenant object.

Linking br-ovs and etho on Netgear 6100

I am a researcher on trying to adopt 5g-empower specifically to leverage use of lvaps to improve resiliency in SD Wireless Networks. I built and flashed empower openwrt for Netgear R6100, but my wan interface does not get ip address from dhcp server and also can not add br-ovs to ovs switch it throws error the device does not exist error here is my network config file

config interface 'loopback'
    option ifname 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'


config globals 'globals'
    option ula_prefix 'fddc:283a:92b6::/48'

config device
        option name 'br-ovs'
        option type 'ovs'
        list ifname 'eth0'

config interface 'wan'
    option ifname 'br-ovs'
    option proto 'dhcp'

config interface 'lan'
        option type 'bridge'
        option ifname 'eth1.1'
        option force_link '1'
        option proto 'static'
        option ipaddr '192.168.250.1'
        option netmask '255.255.255.0'
        option ip6assign '60'



config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'
        option enable_learning '0'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '1 2 3 4 0t'


config interface 'lan2'
        option ifname 'eth1.2'
        option force_link '1'
        option proto 'static'
        #option netmask '255.255.255.0'
        #option ip6assign '60'
        #option ipaddr '192.168.2.250'

config interface 'lan3'
        option ifname 'eth1.3'
        option proto 'static'

config interface 'lan4'
        option ifname 'eth1.4'
        option proto 'static'

Interference

I can find classfunction _handle_interference_map but nowhere interference_map application.
Are you planning to create it again?

Static IP’s with EmPOWER

Problem: During my testing, I had to assign static IP’s to everything. We had a problem of the downstream traffic not showing up in the bin counter. Maybe it not related to the static IP’s, I haven’t really checked afterwards.

Reported by Zeljkovic Ensar

EmPOWER Agent crashes

I noticed that often, when I stop the controller and reset everything, the EmPOWER Agent on the WTPs crashes often. Then I have to go through all the WTPs to restart it. Maybe there can be a way to contact the WTP and automatically try to reset the agent if it crashes. Of course, sometimes the WTP can just be offline, in which case there can be a counter how many attempts to reset the agent will be taken.

Reported by Zeljkovic Ensar

Missing template files

It seems that some files are missing from the repository at empower-runtime/empower/managers/apimanager/templates:
When running empower-runtime and trying to load 127.0.0.1:8888 gives:

HTTPServerRequest(protocol='http', host='127.0.0.1:8888', method='GET', uri='/', version='HTTP/1.1', remote_ip='127.0.0.1')
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/tornado/web.py", line 1697, in _execute
    result = method(*self.path_args, **self.path_kwargs)
  File "/usr/local/lib/python3.6/dist-packages/tornado/web.py", line 3174, in wrapper
    return method(self, *args, **kwargs)
  File "/empower-runtime/empower/managers/apimanager/apimanager.py", line 133, in get
    email=account.email)
  File "/usr/local/lib/python3.6/dist-packages/tornado/web.py", line 856, in render
    html = self.render_string(template_name, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/tornado/web.py", line 1002, in render_string
    t = loader.load(template_name)
  File "/usr/local/lib/python3.6/dist-packages/tornado/template.py", line 445, in load
    self.templates[name] = self._create_template(name)
  File "/usr/local/lib/python3.6/dist-packages/tornado/template.py", line 476, in _create_template
    with open(path, "rb") as f:
FileNotFoundError: [Errno 2] No such file or directory: '/empower-runtime/empower/managers/apimanager/templates/index.html'
2019-10-16 11:48:59,083 - tornado.access - ERROR - 500 GET / (127.0.0.1) 44.71ms

WTPs' Connection to Controller

When a WTP tries to connect to the controller the following message appears in terminal:

INFO:core:Starting EmPOWER Runtime
INFO:core:Loading EmPOWER Runtime defaults
INFO:root:Importing module: empower.restserver.restserver
INFO:root:Importing module: empower.lvnfp.lvnfpserver
INFO:root:Importing module: empower.lvapp.lvappserver
INFO:root:Importing module: empower.energinoserver.energinoserver
INFO:root:Importing module: empower.lvap_stats.lvap_stats
INFO:root:Importing module: empower.events.wtpdown
INFO:root:Importing module: empower.events.wtpup
INFO:root:Importing module: empower.events.lvapleave
INFO:root:Importing module: empower.events.lvapjoin
INFO:root:Importing module: empower.counters.counters
INFO:root:Importing module: empower.maps.ucqm
INFO:root:Importing module: empower.maps.ncqm
INFO:root:Importing module: empower.triggers.rssi
INFO:root:Importing module: empower.triggers.summary
INFO:root:Importing module: empower.events.cppdown
INFO:root:Importing module: empower.events.cppup
INFO:root:Importing module: empower.events.lvnfjoin
INFO:root:Importing module: empower.events.lvnfleave
INFO:root:Importing module: empower.lvnf_ems.lvnf_get
INFO:root:Importing module: empower.lvnf_ems.lvnf_set
INFO:root:Importing module: empower.lvnf_stats.lvnf_stats
INFO:core:Registering 'empower.restserver.restserver'
INFO:restserver:REST Server available at 8888
INFO:core:Registering 'empower.lvnfp.lvnfpserver'
INFO:core.pnfpserver:LVNF Server available at 4422
INFO:core:Registering 'empower.lvapp.lvappserver'
INFO:core.pnfpserver:LVAP Server available at 4433
INFO:core:Registering 'empower.energinoserver.energinoserver'
INFO:energinoserver:Energino Server available at 5533
INFO:core:Registering 'empower.lvap_stats.lvap_stats'
INFO:core:Registering 'empower.events.wtpdown'
INFO:core:Registering 'empower.events.wtpup'
INFO:core:Registering 'empower.events.lvapleave'
INFO:core:Registering 'empower.events.lvapjoin'
INFO:core:Registering 'empower.counters.counters'
INFO:core:Registering 'empower.maps.ucqm'
INFO:core:Registering 'empower.maps.ncqm'
INFO:core:Registering 'empower.triggers.rssi'
INFO:core:Registering 'empower.triggers.summary'
INFO:core:Registering 'empower.events.cppdown'
INFO:core:Registering 'empower.events.cppup'
INFO:core:Registering 'empower.events.lvnfjoin'
INFO:core:Registering 'empower.events.lvnfleave'
INFO:core:Registering 'empower.lvnf_ems.lvnf_get'
INFO:core:Registering 'empower.lvnf_ems.lvnf_set'
INFO:core:Registering 'empower.lvnf_stats.lvnf_stats'
INFO:core.pnfpserver:Incoming connection from ('192.168.1.50', 56016)
ERROR:tornado.application:Uncaught exception, closing connection.
Traceback (most recent call last):
File "/usr/local/lib/python3.4/dist-packages/tornado/iostream.py", line 554, in wrapper
return callback(_args)
File "/usr/local/lib/python3.4/dist-packages/tornado/stack_context.py", line 275, in null_wrapper
return fn(_args, *_kwargs)
File "/home/pkontopoulos/empower-runtime/empower/lvapp/lvappconnection.py", line 163, in _on_read
self._trigger_message(hdr.type)
File "/home/pkontopoulos/empower-runtime/empower/lvapp/lvappconnection.py", line 184, in _trigger_message
handler(msg)
UnboundLocalError: local variable 'msg' referenced before assignment
ERROR:tornado.application:Exception in callback functools.partial(<function wrap..null_wrapper at 0x7f35186ad268>)
Traceback (most recent call last):
File "/usr/local/lib/python3.4/dist-packages/tornado/ioloop.py", line 600, in _run_callback
ret = callback()
File "/usr/local/lib/python3.4/dist-packages/tornado/stack_context.py", line 275, in null_wrapper
return fn(_args, *_kwargs)
File "/usr/local/lib/python3.4/dist-packages/tornado/iostream.py", line 554, in wrapper
return callback(_args)
File "/usr/local/lib/python3.4/dist-packages/tornado/stack_context.py", line 275, in null_wrapper
return fn(_args, *_kwargs)
File "/home/pkontopoulos/empower-runtime/empower/lvapp/lvappconnection.py", line 163, in _on_read
self._trigger_message(hdr.type)
File "/home/pkontopoulos/empower-runtime/empower/lvapp/lvappconnection.py", line 184, in _trigger_message
handler(msg)
UnboundLocalError: local variable 'msg' referenced before assignment

New tornado version

The new tornado library broke the empower runtime: connections from vbs are accepted but not processed, no exceptions are raised.
Until empower updates to the latest tornado release, the fix is to install the latest compliant library version: 5.1.1

pip3 install tornado==5.1.1

https://pypi.org/project/tornado/4.1/#history

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.