Hello,

I use a Linksys wrt54gl, v1.1.

With Wireshark I can identify ports 46245 for ACK controller -> switch and
22 for the SSH PC -> switch, in nox the output is totally different.

In nox, if I use the monitoring.py I receive empty stats and ports 1 and
65534, but if I use the packet_in_callback I can extract the port from the
packet (here the 22 for the ssh)

Maybe I misunderstood what those stats should show, but please point me in
the right direction.

My output is in this form :
Aggregate stats in from datapath 58:6d:87:62:f8:b1
    {'packet_count': 0L, 'byte_count': 0L, 'flow_count': 0L}
packet_in_callback:  58:6d:87:62:f8:b1
ssh packet received on port 22
Table stats in from datapath 58:6d:87:62:f8:b1
    hash2 : 0
    linear : 0
Port stats in from datapath 58:6d:87:62:f8:b1
    1 : 4162
    65534 : 0

My code is bellow:
    def aggregate_timer(self, dpid):
        flow = ofp_match()
        flow.wildcards = 0xffffffff
        self.ctxt.send_aggregate_stats_request(dpid, flow,  0xff)
        self.post_callback(MONITOR_TABLE_PERIOD, lambda :
self.aggregate_timer(dpid))

    def table_timer(self, dpid):
        self.ctxt.send_table_stats_request(dpid)
        self.post_callback(MONITOR_TABLE_PERIOD, lambda :
self.table_timer(dpid))

    def port_timer(self, dpid):
        self.ctxt.send_port_stats_request(dpid, OFPP_NONE)
        self.post_callback(MONITOR_PORT_PERIOD, lambda :
self.port_timer(dpid))

    # For each new datapath that joins, create a timer loop that monitors
    # the statistics for that switch
    def datapath_join_callback(self, dpid, stats):
        print "datapath_join_callback: ", longlong_to_octstr(dpid)[6:]
        self.post_callback(MONITOR_TABLE_PERIOD, lambda :
self.table_timer(dpid))
        self.post_callback(MONITOR_PORT_PERIOD + 1, lambda :
self.port_timer(dpid))
        self.post_callback(MONITOR_AGGREGATE_PERIOD + 2, lambda :
self.aggregate_timer(dpid))

    def aggregate_stats_in_handler(self, dpid, stats):
        print "Aggregate stats in from datapath",
longlong_to_octstr(dpid)[6:]
        print '\t',stats

    def table_stats_in_handler(self, dpid, tables):
        print "Table stats in from datapath", longlong_to_octstr(dpid)[6:]
        for item in tables:
            print '\t',item['name'],':',item['active_count']

    def port_stats_in_handler(self, dpid, ports):
        print "Port stats in from datapath", longlong_to_octstr(dpid)[6:]
        for item in ports:
            print '\t',item['port_no'],':',item['rx_packets']

    def packet_in_callback(self, dpid, inport, reason, len, bufid, packet):
        flow=extract_flow(packet)
        if flow['tp_dst'] == 22:
            print "packet_in_callback: ", longlong_to_octstr(dpid)[6:]
            print "ssh packet received on port 22"

    def install(self):
        self.register_for_packet_in(self.packet_in_callback)
        self.register_for_datapath_join(lambda dpid, stats :
self.datapath_join_callback(dpid,stats))
        self.register_for_table_stats_in(self.table_stats_in_handler)
        self.register_for_port_stats_in(self.port_stats_in_handler)

self.register_for_aggregate_stats_in(self.aggregate_stats_in_handler)


Thank you!
Diana


On Fri, Feb 17, 2012 at 2:14 PM, Murphy McCauley <jam...@nau.edu> wrote:

> What type of switch are you using, and are you sure that it's reporting
> the ports correctly?  I assume your ssh traffic should be going through
> multiple ports...
>
> The first thing I'd suggest is that you check the control traffic with
> Wireshark and the OpenFlow dissector to see if what's coming across the
> wire is consistent with what you see in NOX.
>
> -- Murphy
>
> On Feb 17, 2012, at 5:02 AM, Diana Marosin wrote:
>
> > Hello,
> >
> > I am trying to retrieve the ports statistics from an openflow switch
> using nox. I tried to use the coreapp/ examples /monitoring.py script, but
> no matter what I do (for example a ssh) I retrive only ports 1 (rx_packets
> values are always increasing) and 65534 (rx_packets = 0). If I use the
> packet_in_callback then from the packet I can extract the port number, but
> the parameter inport is 1 (not as I would expect).
> >
> > Any idea on what is happening and why the stats don't work?
> >
> > I mention I use NOX 0.9.1-full-beta compiled with OpenFlow 0x01.
> >
> > Thank you,
> > Diana _______________________________________________
> > nox-dev mailing list
> > nox-dev@noxrepo.org
> > http://noxrepo.org/mailman/listinfo/nox-dev
>
>
_______________________________________________
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev

Reply via email to