Yea, did that. and that error is no more showing up. There is no error now,
but still I do not get any stats reply from the switch, I have no idea why.
Do you see some error in the code? I guess the stats_request itself isn't
going till the switch, but dont know why.
The modified code is now:
*from nox.lib.core import *
import nox.lib.pyopenflow as of
from nox.netapps.monitoring.monitoring import Monitoring
from twisted.python import log
import logging
log = logging.getLogger('nox.coreapps.examples.mymonitor')
#global mymonitor instance
#inst=None
#for handling the flow stats in
def flow_stats_in_handler(dpid, flows, more, xid):*
* print "---------Flow stats report----------"
print str(dpid)+" "+str(flows)
for i in flows:
print flows[i]
class MyMonitor(Component):
def __init__(self, ctxt):
#global inst
Component.__init__(self, ctxt)
self.ctxt = ctxt
log.info("Reached the first chkpoint.")
self.Monitoring =
ctxt.resolve("nox.netapps.monitoring.monitoring.Monitoring")
log.info("I have come till second chkpoint")
def install(self):
log.info("inside install")*
* self.register_for_flow_stats_in(flow_stats_in_handler)
def getInterface(self):
log.info("inside interface")
return str(MyMonitor)
#for sending flow stats request
def send_flow_stats_request():
global xid
flows = of.ofp_match()
flows.wildcards = of.OFPFW_ALL
self.Monitoring.send_flow_stats_request(dpid, flows, 0xff, xid)
xid += 1
def getFactory():
class Factory:
def instance(self, ctxt):
return MyMonitor(ctxt)
return Factory()*
On Sun, Apr 7, 2013 at 11:16 PM, Murphy McCauley
<[email protected]>wrote:
> Try adding a getInterface method to your component. Something like:
> def getInterface (self):
> return str(type(self))
>
> -- Murphy
>
> On Apr 7, 2013, at 12:49 PM, udita gangwal wrote:
>
> Hello All,
>
> I have wriiten a module to obtain the individual flow entries from the
> OVS. I run it along with the monitoring component.*
>
> *
> The code in the module is as follows:*
>
> from nox.lib.core import *
> import nox.lib.pyopenflow as of
> from nox.netapps.monitoring.monitoring import Monitoring
> from twisted.python import log
> import logging
>
> log = logging.getLogger('nox.coreapps.examples.mymonitor')
>
> #global mymonitor instance
> #inst=None
>
> class MyMonitor(Component):
>
> def __init__(self, ctxt):
> #global inst
> Component.__init__(self, ctxt)
> self.ctxt = ctxt
> log.info("Reached the first chkpoint.")
> self.Monitoring =
> ctxt.resolve("nox.netapps.monitoring.monitoring.Monitoring")
> log.info("I have come till second chkpoint")
>
> def install(self):
> self.register_for_flow_stats_in(flow_stats_in_handler)
>
>
> #for sending flow stats request
> def send_flow_stats_request():
> global xid
> flows = of.ofp_match()
> flows.wildcards = of.OFPFW_ALL
> self.Monitoring.send_flow_stats_request(dpid, flows, 0xff, xid)
> xid += 1
>
>
> #for handling the flow stats in
> def flow_stats_in_handler(dpid, flows, more, xid):
> print "---------Flow stats report----------"
> print str(dpid)+" "+str(flows)
> for i in flows:
> print flows[i]
>
>
> def getFactory():
> class Factory:
> def instance(self, ctxt):
> return MyMonitor(ctxt)
>
> return Factory()*
>
>
>
>
> I run it from the command line as follows:
>
> *sudo ./nox_core -v -i ptcp:6633 pyswitch monitoring mymonitor*
>
>
>
> And I get the following error on running it:
>
> *00001|nox|INFO:Starting nox_core
> (/home/openflow/noxcore/build/src/.libs/lt-nox_core)
> 00002|monitoring|INFO:Simple monitoring started!
> 00003|monitoring|INFO:Finished configuring monitoring
> 00004|nox.coreapps.examples.mymonitor|INFO:Reached the first chkpoint.
> 00005|nox.coreapps.examples.mymonitor|INFO:I have come till second chkpoint
> 00006|nox|ERR:Cannot change the state of 'mymonitor' to INSTALLED:
> 'mymonitor' ran into an error:
> cannot retrieve the Python component interface description: *
>
>
> I have also the added the folowing entry in the meta.json file present in
> the coreapps/example directory:
>
> *{
> "name": "mymonitor" ,
> "dependencies": [
> "python"
> ],
> "python": "nox.coreapps.examples.mymonitor"
> },*
>
> Has something else be added here?
>
>
> Can someone please tell me what this error is and what has to be done to
> solve it?
>
> Many Thanks,
> Udita
>
>
> On Sat, Apr 6, 2013 at 9:24 PM, Murphy McCauley <[email protected]
> > wrote:
>
>> On Apr 6, 2013, at 11:13 AM, udita gangwal wrote:
>>
>> > I want to obtain the individual flow entries from the OVS and display
>> them on the NOX console. How can I do this?
>>
>> By sending a flow_stats request and handling the response.
>>
>> > What does the monitor module do in NOX?
>>
>> It's described (briefly) on the NOX wiki:
>> https://github.com/noxrepo/nox-classic/wiki/Monitoring
>>
>> It periodically sends stats requests. You can probably either use it or
>> base your own flow stats query code on it.
>>
>> -- Murphy
>
>
>
>