[pox-dev] How can POX get packet counts (or beta transferred) from a switch within a timeline.
Weiyang Mo
moweiyang1988 at gmail.com
Fri Sep 21 08:49:38 PDT 2012
Hi, Murphy and William,
Sorry about my late reply. My code is similar to william's but didn't work
in original cases.
I just referred to William's patch and it worked fine now. I got each
port's number and statstics as well.
I really appreciate you helped me a a lot to figure it out.
Best
Weiyang
2012/9/20 Murphy McCauley <murphy.mccauley at gmail.com>
> Glad you got it working. Can you submit your patch as a pull request
> against betta on github? (I want to at least make a comment on it)
>
> -- Murphy
>
> On Sep 20, 2012, at 8:38 PM, William Emmanuel Yu wrote:
>
> > Hi Murphy,
> >
> > Yes. Flows show up fine. However, no port statistics are visible. I also
> > did a Wireshark as suggested. After installing flows and successfully
> > seeing them flow statistics, I requested for port statistics (OF Type 16
> > Stats Type 4 - PORT Port #0). I get a proper reply (OF Type 17 Stats
> > Type 4 - PORT) but it has no payload.
> >
> > I looked at the class ofp_port_stats_request (object) in
> > libopenflow_01.py and found out port_no is set to 0 by default. In the
> > openflow 1.0 specification, this should be set to OFPP_NONE to return
> > all port statistics.
> >
> >
> https://github.com/hip2b2/poxstuff/blob/master/libopenflow_01.py.ANY_PORT.patch
> >
> > After this, it now works!
> >
> > On Thu, 2012-09-20 at 18:57 -0700, Murphy McCauley wrote:
> >> Are you sure there's anything wrong here? Are you actually installing
> flows?
> >>
> >> Port 65534 is OFPP_LOCAL; this flow is apparently permanently
> installed. I don't offhand know exactly why, but it's probably to enable
> communication with the controller or something.
> >>
> >> If I actually install flows, they show up just fine for me. Run
> flow_stats and forwarding.l2_learning at the same time, and then do a ping
> between hosts on your switches. No problem here -- flows show up just fine.
> >>
> >> -- Murphy
> >>
> >> On Sep 20, 2012, at 5:43 PM, William Emmanuel Yu wrote:
> >>
> >>> Here is the code I used to test:
> >>> https://github.com/hip2b2/poxstuff/blob/master/flow_stats.py
> >>>
> >>> I still don't know how to attach debugging into Pox to dig deeper. Is
> >>> there documentation on how to do that? Worst case, I will just have to
> >>> put debugging stuff in the pox code itself.
> >>>
> >>> Thanks.
> >>>
> >>> On Thu, 2012-09-20 at 17:02 -0700, Murphy McCauley wrote:
> >>>> can one or both of you post code to test?
> >>>>
> >>>> On Sep 20, 2012 3:00 PM, "William Emmanuel S. Yu" <wyu at ateneo.edu>
> >>>> wrote:
> >>>> Same here. Still trying to find out what is wrong.
> >>>> "Sent on the move."
> >>>>
> >>>> ______________________________________________________________
> >>>> From: Weiyang Mo <moweiyang1988 at gmail.com>
> >>>> Date: Thu, 20 Sep 2012 14:53:44 -0700
> >>>> To: William Emmanuel Yu<wyu at ateneo.edu>; Murphy
> >>>> McCauley<murphy.mccauley at gmail.com>
> >>>> Cc: <pox-dev at lists.noxrepo.org>
> >>>> Subject: Re: [pox-dev] How can POX get packet counts (or beta
> >>>> transferred) from a switch within a timeline.
> >>>>
> >>>>
> >>>> Hi,William
> >>>>
> >>>> I got the same problems on my side. I already tried both on
> >>>> "betta" and Murphy fork.
> >>>>
> >>>> It seems that whatever the traffic goes through switches, the
> >>>> returned switch port number is always "65534" and bytes_rx
> >>>> always 0 thus I cannot get packet counts from a specific port
> >>>> correctly.
> >>>>
> >>>> Any advice?
> >>>>
> >>>> Thanks very much.
> >>>>
> >>>> Weiyang
> >>>>
> >>>>
> >>>> 2012/9/19 William Emmanuel Yu <wyu at ateneo.edu>
> >>>> Hi Weiyang,
> >>>>
> >>>> Yes. You should be using port stats for that. So I
> >>>> tried it myself but
> >>>> now I do not get any port stats data. Here is my code.
> >>>> It's empty. I am
> >>>> using the Murphy fork.
> >>>>
> >>>> On the multiple listeners, yes you can specify various
> >>>> actions within
> >>>> the callback function. In my emailed sample, I just
> >>>> log.debug() the
> >>>> output but you can do anything you like such as write
> >>>> to a database and
> >>>> the like.
> >>>>
> >>>> Good luck!
> >>>>
> >>>> On Thu, 2012-09-20 at 15:10 +1200, Sam Russell wrote:
> >>>>> What would it take to get your mods back into
> >>>> mainstream? Is there any
> >>>>> tidying or the like that we can help with?
> >>>>>
> >>>>> Sent from my iPhone
> >>>>>
> >>>>> On Sep 20, 2012, at 3:07 PM, Murphy McCauley
> >>>>> <murphy.mccauley at gmail.com> wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>> I think that's a known problem.
> >>>>>>
> >>>>>>
> >>>>>> The official noxrepo fork currently has a number
> >>>> of known bugs which
> >>>>>> are addressed in my fork (MurphyMc/pox), and my
> >>>> fork has a number of
> >>>>>> other improvements. One of these days, the
> >>>> changes in my fork will
> >>>>>> be upstreamed, but for the moment, you should
> >>>> really just pull POX
> >>>>>> from me instead of noxrepo.
> >>>>>>
> >>>>>>
> >>>>>> -- Murphy
> >>>>>>
> >>>>>>
> >>>>>> On Sep 19, 2012, at 7:33 PM, Weiyang Mo wrote:
> >>>>>>
> >>>>>>> Hi, William,
> >>>>>>>
> >>>>>>> Thanks very much. But I still have some
> >>>> questions about getting
> >>>>>>> statistics.
> >>>>>>>
> >>>>>>> As mentioned in POX wiki, We can use different
> >>>> statistics event to
> >>>>>>> get different types of statistics. What I want
> >>>> to get from a
> >>>>>>> switch is (1) it's switch ID (DPID) (2) all
> >>>> packet counts on each
> >>>>>>> port
> >>>>>>>
> >>>>>>> If I only use
> >>>>>>>
> >>>> "core.openflow.addListenerByName("FlowStatsReceived",
> >>>>>>> statsreceived)", the things I can get is that
> >>>> the total packet
> >>>>>>> counts from all ports, but no DPID or inport
> >>>> number. Thus I guess
> >>>>>>> I may need use
> >>>>>>> "of.ofp_port_stats_request()" and
> >>>>>>>
> >>>> core.openflow.addListenerByName("PortStatsReceived",
> >>>>>>> statsreceived)
> >>>>>>> But here I meet with a problem. I tried similar
> >>>> things as
> >>>>>>> ofp_flow_stats_request() as follows:
> >>>>>>>
> >>>>>>> def countrequest ():
> >>>>>>> swnum = 0
> >>>>>>> for connection in
> >>>> core.openflow._connections.values():
> >>>>>>> req1 = of.ofp_port_stats_request()
> >>>>>>> re1 = of.ofp_stats_request(body = req1)
> >>>>>>> connection.send(re1)
> >>>>>>>
> >>>>>>> -----------------------------------
> >>>>>>> In the launch() function, I do the following:
> >>>>>>> Timer(5, countrequest, recurring = True)
> >>>>>>> It reports an error which will not happend to
> >>>>>>> ofp_flow_stats_request()
> >>>>>>>
> >>>>>>> Traceback (most recent call last):
> >>>>>>> File
> >>>> "/home/openflow/pox/pox/lib/recoco/recoco.py", line
> >>>> 276, in
> >>>>>>> cycle
> >>>>>>> rv = t.execute()
> >>>>>>> File
> >>>> "/home/openflow/pox/pox/lib/recoco/recoco.py", line
> >>>> 94, in
> >>>>>>> execute
> >>>>>>> return self.gen.send(v)
> >>>>>>> File
> >>>> "/home/openflow/pox/pox/lib/recoco/recoco.py", line
> >>>> 751, in
> >>>>>>> run
> >>>>>>> rv = self._callback(*self._args,**self._kw)
> >>>>>>> File "/home/openflow/pox/ext/test1stat.py",
> >>>> line 270, in
> >>>>>>> countrequest
> >>>>>>> connection.send(re1)
> >>>>>>> File
> >>>> "/home/openflow/pox/pox/openflow/of_01.py", line 573,
> >>>> in
> >>>>>>> send
> >>>>>>> data = data.pack()
> >>>>>>> File
> >>>> "/home/openflow/pox/pox/openflow/libopenflow_01.py",
> >>>> line
> >>>>>>> 2136, in pack
> >>>>>>> packed += struct.pack("!HH", self.type,
> >>>> self.flags)
> >>>>>>> error: cannot convert argument to integer
> >>>>>>>
> >>>>>>>
> >>>>>>> Is there anything that I don't do correctly?
> >>>>>>>
> >>>>>>> And my another question is that even assuming I
> >>>> can add
> >>>>>>> portstatlistener and flowstatlistener as :
> >>>>>>>
> >>>>>>>
> >>>> core.openflow.addListenerByName("PortStatsReceived",
> >>>>>>> statsreceived)
> >>>>>>>
> >>>> core.openflow.addListenerByName("FlowStatsReceived",
> >>>>>>> statsreceived)
> >>>>>>>
> >>>>>>> Can I distinguish through statsreceived which
> >>>> event is which? Or
> >>>>>>> can I combine these two listeners together?
> >>>>>>>
> >>>>>>> Thanks very much.
> >>>>>>>
> >>>>>>> Weiyang
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> 2012/9/19 William Emmanuel Yu <wyu at ateneo.edu>
> >>>>>>> Hi,
> >>>>>>>
> >>>>>>> Attached is a flow_stats.py file that
> >>>> contains a sample
> >>>>>>> for getting
> >>>>>>> stats from all switches connected to the
> >>>> controller
> >>>>>>> (flow_stats.py).
> >>>>>>> Attached is also a file of_json.py (from
> >>>> Murphy) which is
> >>>>>>> a helper
> >>>>>>> library to convert the output into JSON
> >>>> format (which is
> >>>>>>> much more
> >>>>>>> readable than the current classes).
> >>>>>>>
> >>>>>>> Good luck!
> >>>>>>>
> >>>>>>> On Wed, 2012-09-19 at 10:41 -0700,
> >>>> Weiyang Mo wrote:
> >>>>>>>> Hi, Seungwon,
> >>>>>>>>
> >>>>>>>> Thanks very much.
> >>>>>>>>
> >>>>>>>> Now it works and I can make some
> >>>> logical programming to
> >>>>>>> do my routing
> >>>>>>>> algorithm.
> >>>>>>>>
> >>>>>>>> Best
> >>>>>>>>
> >>>>>>>> Weiyang
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> 2012/9/19 Seungwon Shin
> >>>> <seungwon.shin at gmail.com>
> >>>>>>>> Hi, Weiyang
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> In the case of collecting the
> >>>> statistical
> >>>>>>> information for a
> >>>>>>>> flow table
> >>>>>>>> You can register your listener
> >>>> like
> >>>>>>>> -->
> >>>>>>>
> >>>> core.openflow.addListenerByName("TableStatsReceived",
> >>>>>>>> <your handler>)
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> and your handler can parse..
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> def <your handler>(event):
> >>>>>>>> for item in event.stats
> >>>>>>>> print item.wildcards
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> You can find more information
> >>>> by looking at the
> >>>>>>> following
> >>>>>>>> classes in POX source code
> >>>> (libopenflow_01.py)
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> class ofp_flow_stats
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> class ofp_table_stats
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> ….
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Each class has its __init__
> >>>> function, and you
> >>>>>>> will find all
> >>>>>>>> variables for stats in the
> >>>> function.
> >>>>>>>> The variables that you are
> >>>> looking for should be
> >>>>>>> one of them.
> >>>>>>>> (E.g., wildcards is an initial
> >>>> variable of
> >>>>>>> ofp_table_stats
> >>>>>>>> class).
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Best,
> >>>>>>>> Seungwon
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On Sep 19, 2012, at 11:49 AM,
> >>>> Weiyang Mo
> >>>>>>>> <moweiyang1988 at gmail.com>
> >>>> wrote:
> >>>>>>>>
> >>>>>>>>> Hi,William,
> >>>>>>>>>
> >>>>>>>>> Thanks for your advice and
> >>>> that's what I
> >>>>>>> already did. What I
> >>>>>>>>> meant is that although I
> >>>> sent such request, I
> >>>>>>> don't have
> >>>>>>>>> ideas how to get the reply
> >>>> back. I do
> >>>>>>> modifications as
> >>>>>>>>> follows in
> >>>> forwarding.l2_learning, which sends
> >>>>>>> request right
> >>>>>>>>> after sending flow entry
> >>>> request.
> >>>>>>>>>
> >>>>>>>>> msg =
> >>>> of.ofp_flow_mod()
> >>>>>>>>> msg.match =
> >>>>>>> of.ofp_match.from_packet(packet)
> >>>>>>>>>
> >>>> msg.match.in_port =
> >>>>>>> packet_in.in_port
> >>>>>>>>> msg.idle_timeout
> >>>> = 30
> >>>>>>>>> msg.hard_timeout
> >>>> = 30
> >>>>>>>>>
> >>>>>>>
> >>>> msg.actions.append(of.ofp_action_output(port =
> >>>>>>>>> out_port))
> >>>>>>>>>
> >>>> self.connection.send(msg)
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>> "-----------------------------------------------------"
> >>>>>>>>> req =
> >>>> of.ofp_flow_stats_request()
> >>>>>>>>> re =
> >>>> of.ofp_stats_request(body =
> >>>>>>> req)
> >>>>>>>>>
> >>>> self.connection.send(re)
> >>>>>>>>>
> >>>>>>>>> When I try pinging between
> >>>> hosts, it works
> >>>>>>> correctly and the
> >>>>>>>>> statistics request has been
> >>>> sent. The question
> >>>>>>> is that the
> >>>>>>>>> switches sent "stats reply
> >>>> back" to
> >>>>>>> controller ( I detect
> >>>>>>>>> them through wireshark)
> >>>> however from
> >>>>>>> controller side, I
> >>>>>>>>> don't now how to catch the
> >>>> reply packet and
> >>>>>>> parse it as I
> >>>>>>>>> want.
> >>>>>>>>>
> >>>>>>>>> Any advice?
> >>>>>>>>>
> >>>>>>>>> Thanks very much.
> >>>>>>>>>
> >>>>>>>>> Weiyang
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> 2012/9/19 William Emmanuel
> >>>> Yu <wyu at ateneo.edu>
> >>>>>>>>> Hi Weiyang,
> >>>>>>>>>
> >>>>>>>>> Did you check out
> >>>>>>> ofp_flow_stats_request()?
> >>>>>>>>>
> >>>>>>>>> import
> >>>> pox.openflow.libopenflow_01 as
> >>>>>>> of
> >>>>>>>>> fsr =
> >>>> of.ofp_flow_stats_request()
> >>>>>>>>> sr =
> >>>> of.ofp_stats_request(body = fsr)
> >>>>>>>>> switch.send(sr)
> >>>>>>>>>
> >>>>>>>>> Check out:
> >>>>>>>>>
> >>>>>>>
> >>>> https://groups.google.com/forum/?fromgroups=#!
> >>>>>>>>>
> >>>> topic/pox_dev/sSlfqm5Okls
> >>>>>>>>>
> >>>>>>>>> Good luck!
> >>>>>>>>>
> >>>>>>>>> On Tue, 2012-09-18
> >>>> at 08:21 -0700,
> >>>>>>> Weiyang Mo wrote:
> >>>>>>>>>> Hi,All,
> >>>>>>>>>>
> >>>>>>>>>> I try to use
> >>>> packet counts from
> >>>>>>> switches within a
> >>>>>>>>> time period (e.g
> >>>>>>>>>> 10secs) to do some
> >>>> routing. In the
> >>>>>>> documentation
> >>>>>>>>>>
> >>>>>>>
> >>>> https://openflow.stanford.edu/display/ONL/POX
> >>>>>>>>>
> >>>>>>>>>>
> >>>> +Wiki#POXWiki-StatisticEvent it
> >>>>>>> mentions that it's
> >>>>>>>>> possible to do this
> >>>>>>>>>> using a timer. I
> >>>> guess using 'time
> >>>>>>> to wake' to
> >>>>>>>>> call a counting
> >>>>>>>>>> function may help.
> >>>>>>>>>>
> >>>>>>>>>> However I'm not
> >>>> famiiar with getting
> >>>>>>> statistics
> >>>>>>>>> from a switch. More
> >>>>>>>>>> than one flow, I
> >>>> want to get total
> >>>>>>> packet counts
> >>>>>>>>> within 10 seconds
> >>>>>>>>>> from all flow
> >>>> entries. Could you
> >>>>>>> please help to
> >>>>>>>>> give me a simple
> >>>>>>>>>> examples about
> >>>> this?
> >>>>>>>>>>
> >>>>>>>>>> Thanks very much.
> >>>>>>>>>>
> >>>>>>>>>> Best
> >>>>>>>>>>
> >>>>>>>>>> Weiyang
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> --
> >>>>>>>>>
> >>>>>>>
> >>>> -------------------------------------------------------
> >>>>>>>>> William Emmanuel S.
> >>>> Yu, Ph.D. (杨怀义)
> >>>>>>>>> Department of
> >>>> Information Systems and
> >>>>>>> Computer
> >>>>>>>>> Science
> >>>>>>>>> Ateneo de Manila
> >>>> University
> >>>>>>>>> email : wyu at
> >>>> ateneo dot edu
> >>>>>>>>> blog :
> >>>> http://hip2b2.yutivo.org/
> >>>>>>>>> web :
> >>>>>>> http://CNG.ateneo.edu/cng/wyu/
> >>>>>>>>> phone :
> >>>> +63(2)4266001 loc. 4186
> >>>>>>>>> GPG :
> >>>>>>> http://CNG.ateneo.net/cng/wyu/wyy.pgp
> >>>>>>>>>
> >>>>>>>>> Confidentiality
> >>>> Issue: This message
> >>>>>>> is intended
> >>>>>>>>> only for the use of
> >>>> the
> >>>>>>>>> addressee and may
> >>>> contain information
> >>>>>>> that is
> >>>>>>>>> privileged and
> >>>>>>>>> confidential. If you
> >>>> are not the
> >>>>>>> intended recipient,
> >>>>>>>>> you are hereby
> >>>>>>>>> notified that any
> >>>> use or dissemination
> >>>>>>> of this
> >>>>>>>>> communication is
> >>>> strictly
> >>>>>>>>> prohibited. If you
> >>>> have received this
> >>>>>>> communication
> >>>>>>>>> in error, please
> >>>>>>>>> notify us
> >>>> immediately by reply and
> >>>>>>> delete this
> >>>>>>>>> message from your
> >>>> system.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>>
> >>>> -------------------------------------------------------
> >>>>>>> William Emmanuel S. Yu, Ph.D. (杨怀义)
> >>>>>>> Department of Information Systems and
> >>>> Computer Science
> >>>>>>> Ateneo de Manila University
> >>>>>>> email : wyu at ateneo dot edu
> >>>>>>> blog : http://hip2b2.yutivo.org/
> >>>>>>> web : http://CNG.ateneo.edu/cng/wyu/
> >>>>>>> phone : +63(2)4266001 loc. 4186
> >>>>>>> GPG :
> >>>> http://CNG.ateneo.net/cng/wyu/wyy.pgp
> >>>>>>>
> >>>>>>> Confidentiality Issue: This message is
> >>>> intended only for
> >>>>>>> the use of the
> >>>>>>> addressee and may contain information
> >>>> that is privileged
> >>>>>>> and
> >>>>>>> confidential. If you are not the
> >>>> intended recipient, you
> >>>>>>> are hereby
> >>>>>>> notified that any use or dissemination
> >>>> of this
> >>>>>>> communication is strictly
> >>>>>>> prohibited. If you have received this
> >>>> communication in
> >>>>>>> error, please
> >>>>>>> notify us immediately by reply and
> >>>> delete this message
> >>>>>>> from your system.
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>
> >>>> --
> >>>> -------------------------------------------------------
> >>>> William Emmanuel S. Yu, Ph.D. (杨怀义)
> >>>> Department of Information Systems and Computer Science
> >>>> Ateneo de Manila University
> >>>> email : wyu at ateneo dot edu
> >>>> blog : http://hip2b2.yutivo.org/
> >>>> web : http://CNG.ateneo.edu/cng/wyu/
> >>>> phone : +63(2)4266001 loc. 4186
> >>>> GPG : http://CNG.ateneo.net/cng/wyu/wyy.pgp
> >>>>
> >>>> Confidentiality Issue: This message is intended only
> >>>> for the use of the
> >>>> addressee and may contain information that is
> >>>> privileged and
> >>>> confidential. If you are not the intended recipient,
> >>>> you are hereby
> >>>> notified that any use or dissemination of this
> >>>> communication is strictly
> >>>> prohibited. If you have received this communication
> >>>> in error, please
> >>>> notify us immediately by reply and delete this message
> >>>> from your system.
> >>>>
> >>>>
> >>>>
> >>>
> >>> --
> >>> -------------------------------------------------------
> >>> William Emmanuel S. Yu, Ph.D. (杨怀义)
> >>> Department of Information Systems and Computer Science
> >>> Ateneo de Manila University
> >>> email : wyu at ateneo dot edu
> >>> blog : http://hip2b2.yutivo.org/
> >>> web : http://CNG.ateneo.edu/cng/wyu/
> >>> phone : +63(2)4266001 loc. 4186
> >>> GPG : http://CNG.ateneo.net/cng/wyu/wyy.pgp
> >>>
> >>> Confidentiality Issue: This message is intended only for the use of
> the
> >>> addressee and may contain information that is privileged and
> >>> confidential. If you are not the intended recipient, you are hereby
> >>> notified that any use or dissemination of this communication is
> strictly
> >>> prohibited. If you have received this communication in error, please
> >>> notify us immediately by reply and delete this message from your
> system.
> >>>
> >>
> >
> > --
> > -------------------------------------------------------
> > William Emmanuel S. Yu, Ph.D. (杨怀义)
> > Department of Information Systems and Computer Science
> > Ateneo de Manila University
> > email : wyu at ateneo dot edu
> > blog : http://hip2b2.yutivo.org/
> > web : http://CNG.ateneo.edu/cng/wyu/
> > phone : +63(2)4266001 loc. 4186
> > GPG : http://CNG.ateneo.net/cng/wyu/wyy.pgp
> >
> > Confidentiality Issue: This message is intended only for the use of the
> > addressee and may contain information that is privileged and
> > confidential. If you are not the intended recipient, you are hereby
> > notified that any use or dissemination of this communication is strictly
> > prohibited. If you have received this communication in error, please
> > notify us immediately by reply and delete this message from your system.
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.noxrepo.org/pipermail/pox-dev-noxrepo.org/attachments/20120921/60d9d0a5/attachment-0002.htm>
More information about the pox-dev
mailing list