[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