Sorry it was mistype Now I am attaching the nox output when my component is
loaded.

See below

# ./nox_core -i ptcp:7788 -v pyrouting pywaqas
00001|nox|INFO:Starting nox_core (/home/nox/src/.libs/lt-nox_core)
00002|pyrt|DBG:Loading a component description file
'nox/coreapps/simple_c_py_app/meta.xml'.
00003|pyrt|DBG:Loading a component description file
'nox/coreapps/switch/meta.xml'.
00004|pyrt|DBG:Loading a component description file
'nox/coreapps/testharness/meta.xml'.
00005|pyrt|DBG:Loading a component description file
'nox/coreapps/simple_c_app/meta.xml'.
00006|pyrt|DBG:Loading a component description file
'nox/coreapps/pyrt/meta.xml'.
00007|pyrt|DBG:Loading a component description file
'nox/coreapps/hub/meta.xml'.
00008|pyrt|DBG:Loading a component description file
'nox/coreapps/coretests/meta.xml'.
00009|pyrt|DBG:Loading a component description file
'nox/coreapps/examples/meta.xml'.
00010|pyrt|DBG:Loading a component description file
'nox/coreapps/examples/t/meta.xml'.
00011|pyrt|DBG:Loading a component description file
'nox/netapps/discovery/meta.xml'.
00012|pyrt|DBG:Loading a component description file
'nox/netapps/switchstats/meta.xml'.
00013|pyrt|DBG:Loading a component description file
'nox/netapps/topology/meta.xml'.
00014|pyrt|DBG:Loading a component description file
'nox/netapps/tests/meta.xml'.
00015|pyrt|DBG:Loading a component description file
'nox/netapps/data/meta.xml'.
00016|pyrt|DBG:Loading a component description file
'nox/netapps/storage/meta.xml'.
00017|pyrt|DBG:Loading a component description file
'nox/netapps/storage/t/meta.xml'.
00018|pyrt|DBG:Loading a component description file
'nox/netapps/switch_management/meta.xml'.
00019|pyrt|DBG:Loading a component description file
'nox/netapps/flow_fetcher/meta.xml'.
00020|pyrt|DBG:Loading a component description file
'nox/netapps/routing/meta.xml'.
00021|pyrt|DBG:Loading a component description file
'nox/netapps/bindings_storage/meta.xml'.
00022|pyrt|DBG:Loading a component description file
'nox/netapps/bindings_storage/t/meta.xml'.
00023|pyrt|DBG:Loading a component description file
'nox/netapps/authenticator/meta.xml'.
00024|pyrt|DBG:Loading a component description file
'nox/netapps/user_event_log/meta.xml'.
00025|pyrt|DBG:Loading a component description file
'nox/webapps/webserver/meta.xml'.
00026|pyrt|DBG:Loading a component description file
'nox/webapps/webservice/meta.xml'.
00027|pyrt|DBG:Loading a component description file
'nox/webapps/miscws/meta.xml'.
00028|dht-storage|DBG:Creating a table: bindings_host
00029|dht-storage|DBG:Creating a table: bindings_user
00030|dht-storage|DBG:Creating a table: bindings_dladdr
00031|dht-storage|DBG:Creating a table: bindings_link
00032|dht-storage|DBG:Creating a table: bindings_location
00033|pycomponent|DBG:Importing Python module
nox.netapps.bindings_storage.pybindings_storage
00034|dht-storage|DBG:Creating a table: user_event_log
00035|dht-storage|DBG:Creating a table: user_event_log_names
00036|pycomponent|DBG:Importing Python module
nox.netapps.data.datatypes_impl
00037|pycomponent|DBG:Importing Python module
nox.netapps.data.datacache_impl
00038|pycomponent|DBG:Importing Python module
nox.netapps.user_event_log.pyuser_event_log
00039|pycomponent|DBG:Importing Python module
nox.netapps.discovery.discovery
00040|pycomponent|DBG:Importing Python module nox.netapps.routing.pyrouting
00041|pycomponent|DBG:Importing Python module nox.coreapps.examples.pywaqas
2010-07-30 16:58:07+0000 [-] Log opened.
00042|nox|DBG:Application installation report:
00043|nox|DBG:storage-common:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies:

00044|nox|DBG:link event:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies:

00045|nox|DBG:data_cache:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies: 'datatypes' OK

00046|nox|DBG:python:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies:

00047|nox|DBG:pydatatypes:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies: 'datatypes' OK, 'python' OK

00048|nox|DBG:pyrouting:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies: 'routing_module' OK, 'python' OK

00049|nox|DBG:discovery:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies: 'link event' OK, 'pybindings_storage' OK,
'pyuser_event_log' OK, 'python' OK

00050|nox|DBG:bindings_storage:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies: 'storage-backend' OK, 'datatypes' OK, 'data_cache' OK

00051|nox|DBG:topology:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies: 'discovery' OK

00052|nox|DBG:storage-backend:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies: 'storage-common' OK

00053|nox|DBG:pyuser_event_log:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies: 'user_event_log' OK, 'pydatatypes' OK, 'pydatacache'
OK, 'python' OK

00054|nox|DBG:pywaqas:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies: 'python' OK, 'python' OK

00055|nox|DBG:built-in DSO deployer:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies:

00056|nox|DBG:nat_enforcer:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies: 'flow_util' OK

00057|nox|DBG:pydatacache:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies: 'data_cache' OK, 'python' OK

00058|nox|DBG:datatypes:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies:

00059|nox|DBG:built-in event dispatcher:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies:

00060|nox|DBG:flow_util:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies: 'datatypes' OK

00061|nox|DBG:routing_module:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies: 'topology' OK, 'nat_enforcer' OK

00062|nox|DBG:pybindings_storage:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies: 'bindings_storage' OK, 'python' OK

00063|nox|DBG:user_event_log:
        Current state: INSTALLED
        Required state: INSTALLED
        Dependencies: 'storage-backend' OK, 'bindings_storage' OK,
'datatypes' OK

00064|openflow|DBG:Passive tcp interface bound to port 7788
00094|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:34)
00095|discovery|WARN:new link detected (00:00:00:23:20:f1:7c:e9 p:0 ->
00:00:00:55:46:88:43:04 p:0)
00096|openflow-event|DBG:received packet-in event from 005546884304 (len:34)
00097|discovery|WARN:new link detected (00:00:00:55:46:88:43:04 p:0 ->
00:00:00:23:20:f1:7c:e9 p:0)
00098|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:34)
00099|openflow-event|DBG:received packet-in event from 005546884304 (len:34)
00100|openflow-event|DBG:received packet-in event from 005546884304 (len:90)
00101|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:90)
00102|openflow-event|DBG:received packet-in event from 005546884304 (len:52)
00103|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:52)
00104|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:34)
00105|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:90)
00106|openflow-event|DBG:received packet-in event from 005546884304 (len:90)
00107|openflow-event|DBG:received packet-in event from 005546884304 (len:34)
00108|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:34)
00109|openflow-event|DBG:received packet-in event from 005546884304 (len:34)
00110|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:34)
00111|openflow-event|DBG:received packet-in event from 005546884304 (len:34)
00112|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:34)
00113|openflow-event|DBG:received packet-in event from 005546884304 (len:34)
00114|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:34)
00115|openflow-event|DBG:received packet-in event from 005546884304 (len:34)
00116|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:34)
00117|openflow-event|DBG:received packet-in event from 005546884304 (len:34)
00118|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:34)
00119|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:52)
00120|openflow-event|DBG:received packet-in event from 005546884304 (len:52)
00121|openflow-event|DBG:received packet-in event from 005546884304 (len:34)
00122|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:34)
00123|openflow-event|DBG:received packet-in event from 005546884304 (len:34)
00124|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:34)
00125|openflow-event|DBG:received packet-in event from 005546884304 (len:34)
00126|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:34)
00127|openflow-event|DBG:received packet-in event from 005546884304 (len:34)
00128|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:34)
00129|openflow-event|DBG:received packet-in event from 005546884304 (len:34)
00130|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:34)
00131|openflow-event|DBG:received packet-in event from 005546884304 (len:34)
00132|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:34)
00133|openflow-event|DBG:received packet-in event from 005546884304 (len:34)
00134|openflow-event|DBG:received packet-in event from 005546884304 (len:52)
00135|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:52)
00136|openflow-event|DBG:received packet-in event from 002320f17ce9 (len:34)
00137|openflow-event|DBG:received packet-in event from 005546884304 (len:34)


And the code of my component is as follows

from nox.lib import core
from nox.lib.core import *
from nox.lib.core import Component
from nox.netapps.authenticator.pyflowutil import Flow_in_event

from nox.netapps.routing import pyrouting

from twisted.python import log

import sys
import code

class Pywaqas(Component):

        def __init__(self, ctxt):
                Component.__init__(self, ctxt)
                self.routing = None
                log.startLogging(sys.stdout)

        def install(self):

                self.routing = self.resolve(pyrouting.PyRouting)

                match_src = { core.DL_TYPE: ethernet.ethernet.IP_TYPE,
core.NW_PROTO : ipv4.ipv4.TCP_PROTOCOL, core.TP_DST : 22 }

                self.register_for_packet_match(self.handle_tcppacket,
0xffff, match_src)
                self.register_for_datapath_join ( lambda dp,stats :
Pywaqas.dp_join(self, dp, stats) )
                self.register_for_datapath_leave( lambda dp       :
Pywaqas.dp_leave(self, dp) )
                self.register_for_port_status( lambda dp, reason, port :
Pywaqas.port_status_change(self, dp, reason, port) )

                self.register_handler(Flow_in_event.static_get_name(),
self.handle_flow_in)

        def handle_tcppacket(self, dpid, inport, ofp_reason,
total_frame_len, buffer_id, packet):
                log.msg(str((dpid, inport, ofp_reason, total_frame_len,
buffer_id, packet)))

        def handle_flow_in ( self, event):
               log.msg("Flow_in recieved\n")
               route = pyrouting.Route()
               if self.routing.get_route(route):
                        checked=True
                       * log.msg("Getting Routes %s" % str(route))*
               else:
                     log.err("No Route between %s and %s." %
(hex(route.id.src.as_host()),hex(route.id.dst.as_host())))

    def  dp_join(self, dp, stats):
                for k,v in stats.items():
                        if k== "ports": continue
                        log.msg("dp '%s' join: %s = %s
"%(str(dp),str(k),str(v)))
                if stats.has_key("ports"):
                        ports = stats["ports"]
                        for port_data in ports:
                                hw_addr = port_data["hw_addr"]
                                name = port_data["name"]
                                port_id = "%s %s"%(name,str([hw_addr]))
                                for kk,vv in port_data.items():
                                        if kk in ("hw_addr","name")
:continue
                                        log.msg("port %s: %s =
%s"%(port_id,str(kk),str(vv)))

        def  dp_leave(self, up):
                log.msg(str( up))
        def port_status_change(self, dp, reason, port):
                log.msg("dp %s => The status of the port '%s' changed:
reason=%s"%(str(dp),str(port),str(reason)))

        def getInterface(self):
                return str(Pywaqas)


def getFactory():
        class Factory:
                def instance(self, ctxt):
                        return Pywaqas(ctxt)

        return Factory()

I am just trying to do simple thing just want to print the routes. Hope this
will help you to understand my problem?


Best Regards,

Waqas Daar


On Fri, Jul 30, 2010 at 6:53 PM, Yiannis Yiakoumis <gyiakou...@gmail.com>wrote:

> Waqas,
>
> If spacing is correct in what you pasted, handle_flow_in belongs to another
> component named Pywaqas. But the routing that  you install belongs to the
> pyflushroutes.
> Can you try making the handle_flow_in a pyflushroute function and then
> register it similarly to samplerouting?
>
> Thanks,
> Yiannis
>
> On Fri, Jul 30, 2010 at 9:28 AM, Waqas Daar <waqasd...@gmail.com> wrote:
>
>> Dear KK,
>>
>> Thanks for your prompt reply. But I did not get it what you are trying to
>> say :S. where I am doing wrong ?
>>
>> Yes, In future I will not do cross posts.
>> Thanks in Advanced.
>>
>> Best Regards,
>>
>> Waqas Daar
>>
>>
>>
>> On Fri, Jul 30, 2010 at 6:22 PM, kk yap <yap...@stanford.edu> wrote:
>>
>>> Looking at samplerouting.py as example,
>>>
>>>    def install(self):
>>>        self.routing = self.resolve(pyrouting.PyRouting)
>>>        self.register_handler(Flow_in_event.static_get_name(),
>>>                               self.handle_flow_in)
>>>
>>> which make this looks peculiar.
>>>
>>>        def install(self):
>>>
>>>                self.routing = self.resolve(pyrouting.PyRouting)
>>>                self.register_handler(Flow_in_event.static_get_name(),
>>> Pywaqas.handle_flow_in)
>>>
>>> Regards
>>> KK
>>>
>>> PS>> Please don't cross post within an hour of non-response.  Many
>>> people are subscribed to both lists.
>>> On 30 July 2010 09:07, Waqas Daar <waqasd...@gmail.com> wrote:
>>> > Hello all,
>>> > I am trying to create a NOX component called 'pyflushroutes.py' in
>>> python,
>>> > which get the routes from the openflow switche on the network and flush
>>> it
>>> > to all the openflow switches in the network. The first thing I am
>>> trying to
>>> > do is to just use the function 'get_routes()' and print that routes in
>>> the
>>> > handler function flow_in. According to that routing module listens for
>>> > flow_in_events and perform the routing. I have registered the function
>>> > Flow_in_event and write a simpel handler function for that event,
>>> > Below is the excerpts of the component.
>>> > class pyflushroutes(Component):
>>> >         def __init__(self, ctxt):
>>> >                 Component.__init__(self, ctxt)
>>> >                 self.routing = None
>>> >                 log.startLogging(sys.stdout)
>>> >         def install(self):
>>> >                 self.routing = self.resolve(pyrouting.PyRouting)
>>> >                 self.register_handler(Flow_in_event.static_get_name(),
>>> > Pywaqas.handle_flow_in)
>>> >  def handle_flow_in ( self, event):
>>> >                log.msg("Flow_in recieved\n")
>>> >                route = pyrouting.Route()
>>> >                if self.routing.get_route(route):
>>> >                         checked=True
>>> >                         log.msg(str(route))
>>> >                else:
>>> >                      log.err("No Route between %s and %s." %
>>> > (hex(route.id.src.as_host()),hex(route.id.dst.as_host())))
>>> >
>>> > But it did not print any thing even the Flow in recieved message. :(
>>> > Any idea where I am doing wrong ?
>>> >
>>> >
>>> > Best Regards,
>>> >
>>> > Waqas Daar
>>> >
>>> > _______________________________________________
>>> > openflow-discuss mailing list
>>> > openflow-disc...@lists.stanford.edu
>>> > https://mailman.stanford.edu/mailman/listinfo/openflow-discuss
>>> >
>>> >
>>>
>>
>>
>> _______________________________________________
>> nox-dev mailing list
>> nox-dev@noxrepo.org
>> http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org
>>
>>
>
>
> --
> Yiannis .
>
_______________________________________________
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org

Reply via email to