Glad to hear you've gotten it working.  A couple thoughts:

If the flows you want are known ahead of time, you can just hardcode them.  If 
you want to extend NOX so that you can give it commands at runtime, you might 
look at the messenger component and the nox-send-cmd.py script.

pyswitch already gets OFP_DEFAULT_MISS_SEND_LEN bytes of the first packet of 
every new flow (it uses the headers in it to actually create the flow).  This 
is 128 bytes by default, but you can change it if you want the whole packet.  
Alternately, you can install a low priority rule with a bunch of wildcards and 
a forward-to-controller action to send everything that doesn't match a better 
rule to the controller.

Good luck!

-- Murphy

On Feb 7, 2011, at 7:33 AM, Vishal wrote:

> Hi Murphy,
> 
> Thanks a lot.
> 
> After installing zope, I could set the switch to self learning mode loading 
> the pyswitch module.
> 
> nox_core -i ptcp: pyswitch
> NOX 0.9.0(zaku)~full~beta (nox_core), compiled Feb  7 2011 08:32:49
> Compiled with OpenFlow 0x01
> 00001|nox|WARN:Ignoring features reply received while in state 'receiving 
> ofmp capability reply'
> 00003|openflow|WARN:stream: connection closed by peer
> 00004|nox|WARN:stream: connection closed by peer
> 00006|nox|WARN:Ignoring features reply received while in state 'receiving 
> ofmp capability reply'
> 
> Now, as you suggested - I will try using SNAC or add/modify a module 
> (pyswitch) to achieve following 
> - setting flow tables in switch
> - obtaining first packet of a  every new flow from the controller 
> 
> 
> Regards,
> Vishal
> 
> On Fri, Feb 4, 2011 at 6:43 PM, Murphy McCauley <jam...@nau.edu> wrote:
> Well, that actually appears to be getting components loading.  I'm not sure 
> why such a hack was necessary, but... whatever.  Let's pretend it was a good 
> idea, for the moment.
> 
> If you don't care about Python, I suspect you may now be able to run 
> configure with python disabled and rebuild and have it work.  If you DO want 
> Python... Twisted requires Zope Interface.  You should install it. :)  
> http://www.zope.org/Products/ZopeInterface
> 
> 
> -- Murphy
> 
> 
> On Feb 4, 2011, at 3:33 PM, Vishal wrote:
> 
>> Hi Murphy,
>> 
>> Thanks a lot. 
>> 
>> This is the current error after changing the dso-deployer.cc. I had upgraded 
>> boost-filesystem as well as gcc version to compile nox earlier.
>> 
>> ./nox_core
>> NOX 0.9.0(zaku)~full~beta (nox_core), compiled Feb  4 2011 16:36:41
>> Compiled with OpenFlow 0x01
>> 00001|nox|ERR:Cannot change the state of 'python' to INSTALLED:
>> 'python' ran into an error:
>>         Could not import pyvigilreactor from 
>> nox.coreapps.pyrt.pyoxidereactor:
>>         Traceback (most recent call last):
>>           File "./nox/coreapps/pyrt/pyoxidereactor.py", line 23, in <module>
>>             import nox.lib.core
>>           File "./nox/lib/core.py", line 25, in <module>
>>             from util import *
>>           File "./nox/lib/util.py", line 31, in <module>
>>             from   nox.lib.packet.ethernet import ethernet
>>           File "./nox/lib/packet/ethernet.py", line 26, in <module>
>>             from packet_base import packet_base
>>           File "./nox/lib/packet/packet_base.py", line 54, in <module>
>>             from twisted.python import log
>>           File "/usr/lib/python2.5/site-packages/twisted/python/log.py", 
>> line 17, in <module>
>>             from zope.interface import Interface
>>         ImportError: No module named zope.interface
>> 
>> 
>> Regards,
>> Vishal
>> 
>> 
>> On Fri, Feb 4, 2011 at 6:04 PM, Murphy McCauley <jam...@nau.edu> wrote:
>> Ah, Fedora 8... most of us are using recent versions of Ubuntu or Debian, so 
>> these are where most of our experience is.
>> 
>> Without twisted installed, it was just trying to build without python.  Now 
>> it seems to be building with python but running into the same problem as 
>> before (but with one of the python components instead of switch).
>> 
>> I think this might be a problem with boost filesystem.  Are you using a 
>> recent version?
>> 
>> It's a long shot, but you might also look in dso-deployer.cc around like 104 
>> or so for the line:
>> new DSO_component_context(kernel, directory.string(), *li);
>> and change it to:
>> new DSO_component_context(kernel, directory.string() + "/", *li);
>> 
>> I don't have incredibly high hopes that this will actually work, but...  :)
>> 
>> 
>> As for adding static flows or whatever... you could always use dpctl to 
>> manually install flows.  As far as I know, there is no simple way to do this 
>> built into NOX (it's always possible someone added something while I wasn't 
>> looking...).  In general, the "NOX Way" would be to write a component for 
>> this.  Depending on exactly what you want, you can probably do this in a 
>> Python component (or by modifying pyswitch) very easily.  Or maybe SNAC (a 
>> controller built on NOX -- http://snacsource.org/) would fit your needs?
>> 
>> 
>> -- Murphy
>> 
>> On Feb 4, 2011, at 2:27 PM, Vishal wrote:
>> 
>>> Hi Murphy,
>>> 
>>> I am running on: Fedora 8 ( 2.6.24.4-64.fc8), gcc version 4.4.4, Python 
>>> 2.5.1
>>> 
>>> Assuming that issue could be because of twisted/python, I installed twisted.
>>> 
>>> Now, I am getting the following errors:
>>> 
>>> 1)
>>> $>nox_core -i ptcp:
>>> NOX 0.9.0(zaku)~full~beta (nox_core), compiled Feb  4 2011 15:18:51
>>> Compiled with OpenFlow 0x01
>>> 00001|nox|ERR:Application 'python' description not found.
>>> 
>>> 2)
>>> if I provide libdir on cmdline, I get following
>>> 
>>> $>nox_core --libdir="/usr/local/bin/"
>>> NOX 0.9.0(zaku)~full~beta (nox_core), compiled Feb  4 2011 15:18:51
>>> Compiled with OpenFlow 0x01
>>> 00001|nox|ERR:Cannot change the state of 'python' to INSTALLED:
>>> 'python' ran into an error:
>>>         Can't open a dynamic library: 
>>> '/usr/local/bin/nox/coreapps/pyrtpyrt.so: cannot open shared object file: 
>>> No such file or directory' or 
>>> '/usr/local/bin/nox/coreapps/pyrt.libs/pyrt.so: cannot open shared object 
>>> file: No such file or directory'
>>> 
>>> The paths which it has chosen has a "/" missing 
>>> /usr/local/bin/nox/coreapps/pyrtpyrt.so should be 
>>> /usr/local/bin/nox/coreapps/pyrt/pyrt.so
>>> and '/usr/local/bin/nox/coreapps/pyrt.libs/pyrt.so should be 
>>> '/usr/local/bin/nox/coreapps/pyrt/.libs/pyrt.so
>>> 
>>> 
>>> 
>>> 
>>> For #2: All you should need to do is run switch or pyswitch to get similar 
>>> functionality.  It will do learning switching between all ports on the 
>>> switch.
>>> 
>>> 
>>> And - how can I configure - paths/flows  if I know the static paths that I 
>>> want to allow in network, because as you suggested using pyswitch will make 
>>> it run in self learning mode. 
>>> 
>>> basically, I want to know if there is a command line or conf file based 
>>> interface to instruct the switch to do something like allow this flow/ do 
>>> not allow this flow and send all new flows to controller. And in such a 
>>> case, do I need to write an application and register or is there an 
>>> interface in controller already there - to query such statistics?
>>> 
>>> Thanks a lot,
>>> Regards,
>>> Vishal
>>> 
>>>  
>>> 
>>> -- Murphy
>>> 
>>> On Feb 4, 2011, at 1:18 PM, Vishal wrote:
>>> 
>>>> Hi All,
>>>> 
>>>> I need help with the following:-
>>>> 
>>>> 
>>>> 1)
>>>> I am encountering the following error:-
>>>> 
>>>> ./nox_core -i ptcp: switch
>>>> NOX 0.9.0(zaku)~full~beta (nox_core), compiled Jan  7 2011 14:13:37
>>>> Compiled with OpenFlow 0x01
>>>> 00001|nox|ERR:Cannot change the state of 'switch' to INSTALLED:
>>>> 'switch' ran into an error:
>>>>         Can't open a dynamic library: 'nox/coreapps/switchswitch.so: 
>>>> cannot open shared object file: No such file or directory' or 
>>>> 'nox/coreapps/switch.libs/switch.so: cannot open shared object file: No 
>>>> such file or directory'
>>>> 
>>>> 
>>>> my nox/coreapps/switch/.libs  has the files:
>>>> 
>>>> ls nox/coreapps/switch/.libs/
>>>> switch.la   switch_la-switch.o  switch.so.0
>>>> switch.lai  switch.so           switch.so.0.0.0
>>>> 
>>>> 
>>>> 2)
>>>> Another question I have is:-
>>>> 
>>>> a)  Earlier i was using the local controller distributed with openflow 
>>>> user space switch - which would enable switching in self learning mode. 
>>>> Now, I want to achieve same functionality using nox controller.
>>>> So, how can I instruct the nox controller  to instruct the openflow switch 
>>>> to perform switching between eth1 to eth2.
>>>> In other words, whats the interface?
>>>> 
>>>> Thanks a lot,
>>>> Vishal
>>>> _______________________________________________
>>>> nox-dev mailing list
>>>> nox-dev@noxrepo.org
>>>> http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org
>>> 
>>> 
>> 
>> 
> 
> 

_______________________________________________
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org

Reply via email to