[nox-dev] Openflow flowtable Cross comparsion

2011-12-23 Thread ali ahmad

Hi, I am working on a topology in which multiple open-flow switches are 
connected to a centralized NOX controller. I wish to cross compare flow table 
from multiples open flow switches. Do openflow switch has the ability to send 
its flowtable to controller or there is some easier way to do it .

Regards,
Ali Ahmad
  ___
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev


[nox-dev] Sending Entire packet to NOX contoller

2011-10-17 Thread ali ahmad

Hi all,

I have a query that how we can instruct the switch to send the entire packet 
rather i found solution to this as in

To instruct the switch to send the entire packet to NOX, we have to make some 
changes to src/lib/openflow.cc.  The following statement

osc.miss_send_len = htons(OFP_DEFAULT_MISS_SEND_LEN);

has to be changed to

osc.miss_send_len = htons(0);(1)
But when i changed the parameter in the openflow.cc file and recompiled the NOX 
it has started dropping the packet giving the error packet to short. My 
question is that by sending entire packet do we mean sending application level 
data..

Regards,

Ali Ahmad
 
  ___
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev


Re: [nox-dev] (no subject)

2011-10-16 Thread ali ahmad

Basically i am running NOX on top of openvswitch on a virtual machine and i 
have created another machine from which i am replaying traffic on the interface 
on which openvswitch is attached. 
I have compiled my app in the netapps src folder  and added it in the 
configure.ac.in before recompiling the nox. But when i run my app with the 
following arguments no print statement appears in the nox console.Which i  have 
added in packet in event handler. Following is the output at my nox console
./nox_core -i ptcp:myapp

NOX 0.9.0(zaku)~full~beta (nox_core), compiled Sep 28 2011 21:28:49
Compiled with OpenFlow 0x01 

But when i run it with following arguments 

./nox_core -v -i ptcp:myapp

00037|nox|DBG:Application installation report:
00038|nox|DBG:built-in event dispatcher:
Current state: INSTALLED
Required state: INSTALLED
Dependencies: 

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

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

00041|openflow|DBG:Passive tcp interface bound to port 6633
00042|nox|INFO:nox bootstrap complete
00043|openflow|DBG:Passive tcp interface received connection 
00044|openflow|DBG:stream: negotiated OpenFlow version 0x01 (we support 
versions 0x01 to 0x01 inclusive, peer no later than version 0x01)
00045|nox|DBG:Success sending in 'sending switch config'
00046|nox|DBG:Success sending in 'receiving features reply'
00047|nox|DBG:Success receiving in 'receiving features reply'
00048|nox|DBG:Success sending in 'receiving ofmp capability reply'
00049|nox|DBG:Success receiving in 'receiving ofmp capability reply'
00050|nox|DBG:Datapath 004e46324304 sent error in response to capability reply, 
assuming no management support
00051|nox|DBG:No switch auth module registered, auto-approving switch
00052|nox|DBG:Registering switch with DPID = 4e46324304
00053|openflow-event|DBG:received packet-in event from 004e46324304 (len:128)
00054|openflow-event|DBG:received packet-in event from 004e46324304 (len:128)
00055|openflow-event|DBG:received packet-in event from 004e46324304 (len:128)

My Query is that whether my handler for packet-in event is not getting any 
packet but nox is receiving them or their is error in my code but so why my 
code is compiled then

Subject: Re: [nox-dev] (no subject)
From: jam...@nau.edu
Date: Sat, 15 Oct 2011 09:57:07 -0700
CC: nox-dev@noxrepo.org
To: aliahmad...@hotmail.com



It's hard to say, given the information that you've provided.
Where did you put the print statements?  If you put them in a component (for 
example, pyswitch), did you then make sure to load that component by specifying 
it on the commandlne, like below?./nox_core -i ptcp: pyswitch
-- Murphy
On Oct 15, 2011, at 6:54 AM, ali ahmad wrote:Hy !
I have a problem that though my source code gets complied and packet in events 
also appears on  NOX console  but my print statements which i have written in 
my source code does not appear on NOX console. Please guide me 
.___
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


Re: [nox-dev] (no subject)

2011-10-16 Thread ali ahmad

Thanks Kyriakos it worked.

Regards,

Ali Ahmad

Date: Sun, 16 Oct 2011 04:00:58 -0700
Subject: Re: [nox-dev] (no subject)
From: kyr.zari...@gmail.com
To: aliahmad...@hotmail.com
CC: jam...@nau.edu; nox-dev@noxrepo.org

Hi Ali,
./nox_core -v -i ptcp:myapp



You need a space between ptcp: and myapp
  ___
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev


[nox-dev] (no subject)

2011-10-15 Thread ali ahmad

Hy !
I have a problem that though my source code gets complied and packet in events 
also appears on  NOX console  but my print statements which i have written in 
my source code does not appear on NOX console. Please guide me .
 ___
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev


Re: [nox-dev] How to send request and fetch reply

2011-08-10 Thread ali ahmad


Can u please tell me how to do coding for this because i am new to this .If not 
possible that than please do give me the links of any tutorials of coding in 
this domain.
Regards,Ali Ahmad
 From: yap...@stanford.edu
 Date: Tue, 9 Aug 2011 09:45:44 -0700
 Subject: Re: [nox-dev] How to send request and fetch reply
 To: aliahmad...@hotmail.com
 CC: nox-dev@noxrepo.org
 
 Just listening for datapath_join_event.  NOX send
 OFPT_FEATURES_REQUEST when a switch connects and the
 OFPT_FEATURES_REPLY is contained in the datapath_join_event.
 
 Regards
 KK
 
 On 9 August 2011 09:38, ali ahmad aliahmad...@hotmail.com wrote:
  Hy!
 I want to know, what's the procedure to send a request to controller
  like OFPT_FEATURES_REQUEST  and how to receive the  OFPT_FEATURES_REPLY
  message.
  In short what i have to code for the controller to do all this.
  ___
  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


[nox-dev] How to send request and fetch reply

2011-08-09 Thread ali ahmad

Hy!   I want to know, what's the procedure to send a request to controller like 
OFPT_FEATURES_REQUEST  and how to receive the  OFPT_FEATURES_REPLY message.In 
short what i have to code for the controller to do all this.
___
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev


Re: [nox-dev] next hop IP

2011-08-06 Thread ali ahmad

Hi!Can i get the information of mac address of the other router(to which i want 
to forward the packet) using this function and if so than how can i use this 
structure.I mean what files i have to include in my controller code and what 
functions i have to call.Just give me a littbit idea of it.

From: ricardo.benne...@gmail.com
Date: Fri, 5 Aug 2011 11:24:51 -0400
Subject: Re: [nox-dev] next hop IP
To: aliahmad...@hotmail.com
CC: nox-dev@noxrepo.org

Hi Ali Ahmad.
Sorry if I misunderstood your question, but I think you should configure the IP 
of your router as next hop and the out port by yourself.You can configure your 
router A to forward packets it doesn't know the destination to router B, 
specifying the port that connect both routers.


Assuming you are using Openflow Switches as routers, you can use the struct 
ofp_switch_features to obtain information about the switches in your network. 
Your controller sends an OFPT_FEATURES_REQUEST message and the switch responds 
with an OFPT_FEATURES_REPLY message, that contains several informations, as the 
switch MAC address, number of flow_tables, port definitions and others. I never 
used this, but you could take a look on it, that can help you. With this you 
maybe won't need ARP to discover your gateway MAC address. 


I would also suggest you to take a look on 
http://www.openflow.org/wk/index.php/OpenFlow_Tutorial#Create_Router that can 
help in some way.


Hope it helps.
Best Regards.
2011/8/4 ali ahmad aliahmad...@hotmail.com







Some more things which i want to know
how to find out the mac address of the gateway router without using arp??
From: aliahmad...@hotmail.com


To: nox-dev@noxrepo.org
Date: Fri, 5 Aug 2011 01:26:12 +
Subject: [nox-dev] next hop IP








Hi!I just want to know if i have to send the packet from the gatway (router) to 
another router than how will i come to know the ip of the next hop(router) 
outgoing interface(port number)




  

___
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




-- 
Ricardo Bennesby da Silva
Ciência da Computação - UFAM
LabCIA - Laboratório de Computação Inteligente e Autonoma


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


Re: [nox-dev] next hop IP

2011-08-04 Thread ali ahmad

Some more things which i want to know
how to find out the mac address of the gateway router without using arp??
From: aliahmad...@hotmail.com
To: nox-dev@noxrepo.org
Date: Fri, 5 Aug 2011 01:26:12 +
Subject: [nox-dev] next hop IP








Hi!I just want to know if i have to send the packet from the gatway (router) to 
another router than how will i come to know the ip of the next hop(router) 
outgoing interface(port number)


  

___
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


Re: [nox-dev] how to manage multiple switches with the help of NOX controller

2011-07-25 Thread ali ahmad

Thanks for the answers

Subject: Re: [nox-dev] how to manage multiple switches with the help of NOX 
controller
From: jam...@nau.edu
Date: Mon, 25 Jul 2011 00:10:28 -0700
CC: nox-dev@noxrepo.org
To: aliahmad...@hotmail.com



Responses in-line.
On Jul 24, 2011, at 9:29 PM, ali ahmad wrote:
This is what i got, u want to say that its an event whenever the switches get 
connected to controller , their dpids are recorded at that time. So, now 
whenever this event occurs it will be handled by the function you hv defined as
def handle_datapath_join (self, dpid):self.dpids.add(dpid)
it will save all the dpids in the list u hv defined as   self.dpids = set()
I have two queries (sorry basic coding questions)1) datapath-join is a .hh file 
instead of writing its actual name in the argument u hv written 
handle_datapath_join, does this matter? 
handle_datapath_join is a method on the mycomponent class which I defined.  I 
can name it whatever I want.  I set this method as a callback to handle the 
datapath_join event by using the register_for_datapath_join method inherited 
from the component superclass (defined in core.py, if I recall correctly).  
This method takes care of using the correct name.  You can read the 
documentation or code in core.py for some more info.  But that's all there is 
to it.  The .hh files don't directly matter when you're working in Python.  
Reading core.py and the Python examples (and maybe the .i files) is probably 
going to be way more useful to you than reading the C++ files.  In more 
practical terms: The code I gave works the way it is (mod the bug I mentioned 
-- it should actually be def handle_datapath_join (self, dpid, attrs):).
2)dpids scope is just inside the function def handle_datapath_join (self, 
dpid):?   actually i want to use it inside other function as well
The scope of the dpid argument to the method may only exist inside that 
handler, but I am putting it into the self.dpids set.  dpids is a field on 
mycomponent -- its scope is the entire object.  From any method in mycomponent, 
you can access self.dpids.  If you save a reference to the mycomponent object 
(for example, pyswitch does this by saving self to a global variable called 
inst inside the __init__ method), you can access it from outside the object 
as well.   
-- Murphy

At last, thanks a lot ,ur help was a great support in the progress of my work.
Subject: Re: [nox-dev] how to manage multiple switches with the help of NOX 
controller
From: jam...@nau.edu
Date: Sun, 24 Jul 2011 12:34:06 -0700
CC: nox-dev@noxrepo.org
To: aliahmad...@hotmail.com

The arguments the register functions are callbacks to be called when the 
corresponding events occur.  In the case of my example program, these are two 
methods implemented on mycomponent (handle_datapath_join).  The docstring for 
register_for_datapath_join (in core.py) has more info:
def register_for_datapath_join(self, handler):
Register a handler for a datapath join event.
The handler will be called with: handler(dpid, attrs).'dpid' is the datapath id 
of the switch'attrs' is a dictionary with the following keys:
N_BUFFERS, N_TABLES, CAPABILITIES, ACTIONS, PORTS
The PORTS value is a list of port dictionaries where eachdictionary has the 
keys listed in the register_for_port_statusdocumentation.

Note that this makes apparent a bug in my example program.  
handle_datapath_join() should have a second parameter (attrs).
-- Murphy
On Jul 24, 2011, at 5:04 AM, ali ahmad wrote:thnks a lot but I am really sorry 
for bothering u again and again but it would be kind of u if u just tell me 
that what are these arguments inside the functions u hv inialized 
self.register_for_datapath_join(self.handle_datapath_join)
self.register_for_datapath_leave(self.handle_datapath_leave)Subject: Re: 
[nox-dev] how to manage multiple switches with the help of NOX controller
From: jam...@nau.edu
Date: Sun, 24 Jul 2011 04:39:40 -0700
CC: nox-dev@noxrepo.org
To: aliahmad...@hotmail.com

No and no.
You should really ready pyswitch.py -- as I said, it does most of what you need 
already.  However, here's the start of an untested component that doesn't do 
anything except keep track of dpids:
from nox.lib.core import *
class mycomponent (Component):  def __init__ (self, ctxt):
Component.__init__(self, ctxt)self.dpids = set()
self.register_for_datapath_join(self.handle_datapath_join)
self.register_for_datapath_leave(self.handle_datapath_leave)
  def handle_datapath_join (self, dpid):self.dpids.add(dpid)
  def handle_datapath_leave (self, dpid):self.dpids.remove(dpid)
  def getInterface (self):return self.__class__.__name__
def getFactory ():  class Factory:def instance (self, ctxt):  return 
mycomponent(ctxt)
  return Factory()
Good luck.
-- Murphy
P.S., I am assuming you're dropping the CC to the mailing list by accident.  
Please be sure to reply all.
On Jul 24, 2011, at 3:33 AM, ali ahmad wrote:Off listSubject: Re: [nox-dev] 
how to manage

[nox-dev] how to manage multiple switches with the help of NOX controller

2011-07-24 Thread ali ahmad

hi! i am using multiple switches with a single controller than  if i wantto 
flood the message at all the ports of all the switches than how would i 
knowthat what are the dpids of the switches. like i have to call this fuction 
to flood the messageon all the switches.
 def send_openflow(self, dp_id, buffer_id, packet, actions, 
 inport=openflow.OFPP_CONTROLLER):Sends an openflow packet 
to a datapath.
This function is a convenient wrapper for send_openflow_packet
and send_openflow_buffer for situations where it is unknown inadvance 
whether the packet to be sent is buffered.  If'buffer_id' is -1, it 
sends 'packet'; otherwise, it sends thebuffer represented by 
'buffer_id'.
dp_id - datapath to send packet tobuffer_id - id of buffer to 
send outpacket - data to put in openflow packetactions - list 
of actions or dp port to send out ofinport - dp port to mark as source 
(defaults to Controller port)   
   ___
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev


Re: [nox-dev] how to manage multiple switches with the help of NOX controller

2011-07-24 Thread ali ahmad

thnks a lot but I am really sorry for bothering u again and again but it would 
be kind of u if u just tell me that what are these arguments inside the 
functions u hv inialized 
self.register_for_datapath_join(self.handle_datapath_join)
self.register_for_datapath_leave(self.handle_datapath_leave)Subject: Re: 
[nox-dev] how to manage multiple switches with the help of NOX controller
From: jam...@nau.edu
Date: Sun, 24 Jul 2011 04:39:40 -0700
CC: nox-dev@noxrepo.org
To: aliahmad...@hotmail.com



No and no.
You should really ready pyswitch.py -- as I said, it does most of what you need 
already.  However, here's the start of an untested component that doesn't do 
anything except keep track of dpids:
from nox.lib.core import *
class mycomponent (Component):  def __init__ (self, ctxt):
Component.__init__(self, ctxt)self.dpids = set()
self.register_for_datapath_join(self.handle_datapath_join)
self.register_for_datapath_leave(self.handle_datapath_leave)
  def handle_datapath_join (self, dpid):self.dpids.add(dpid)
  def handle_datapath_leave (self, dpid):self.dpids.remove(dpid)
  def getInterface (self):return self.__class__.__name__
def getFactory ():  class Factory:def instance (self, ctxt):  return 
mycomponent(ctxt)
  return Factory()
Good luck.
-- Murphy
P.S., I am assuming you're dropping the CC to the mailing list by accident.  
Please be sure to reply all.
On Jul 24, 2011, at 3:33 AM, ali ahmad wrote:Off listSubject: Re: [nox-dev] 
how to manage multiple switches with the help of NOX controller
From: jam...@nau.edu
Date: Sun, 24 Jul 2011 03:25:54 -0700
CC: nox-dev@noxrepo.org
To: aliahmad...@hotmail.com

NOX comes with a number of components which implement different pieces of 
functionality, and topology is one example of such.  For some more information, 
see the wiki: http://noxrepo.org/noxwiki/index.php/NOX_Components .  For an 
example of using the topology component from Python, see the flowtracer 
component.
But skipping the topology component for now and keeping your own list of of 
dpids might be more approachable for the moment.  pyswitch actually 
demonstrates setting up callbacks for the datapath_join and datapath_leave 
events.  All you need to do is write handlers that actually keep track of dpids 
(by adding and removing them from a Python set would be my suggestion).  This 
is only a handful of lines of code.
-- Murphy

On Jul 24, 2011, at 3:09 AM, ali ahmad wrote:Off listSubject: Re: [nox-dev] 
how to manage multiple switches with the help of NOX controller
From: jam...@nau.edu
Date: Sun, 24 Jul 2011 02:53:44 -0700
CC: nox-dev@noxrepo.org
To: aliahmad...@hotmail.com

If you want to do it yourself, just monitor datapath_join events.  These are 
fired whenever a switch connects, and the event object holds the dpid of the 
switch.  Store these in a list.
Or you can just make use of the topology component, which does pretty much 
exactly this (along with some other stuff), and then has a method to get a list 
of all connected switches.
Hope that helps.-- Murphy
On Jul 23, 2011, at 11:04 PM, ali ahmad wrote:hi! i am using multiple switches 
with a single controller than  if i wantto flood the message at all the ports 
of all the switches than how would i knowthat what are the dpids of the 
switches. like i have to call this fuction to flood the messageon all the 
switches.
 def send_openflow(self, dp_id, buffer_id, packet, actions, 
 inport=openflow.OFPP_CONTROLLER):Sends an openflow packet 
to a datapath.
This function is a convenient wrapper for send_openflow_packet
and send_openflow_buffer for situations where it is unknown inadvance 
whether the packet to be sent is buffered.  If'buffer_id' is -1, it 
sends 'packet'; otherwise, it sends thebuffer represented by 
'buffer_id'.
dp_id - datapath to send packet tobuffer_id - id of buffer to 
send outpacket - data to put in openflow packetactions - list 
of actions or dp port to send out ofinport - dp port to mark as source 
(defaults to Controller 
port)___
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