Re: [nox-dev] Topology component and FlowVisor.

2012-01-12 Thread Ali Al-Shabibi
Hi Sergio,

Could you try to run your application without flowvisor. I find it strange that 
flowvisor would be causing a problem here, even though it treats lldp packets 
rather awkwardly. 

That said, if your setup works without flowvisor then we can definitely say 
that flowvisor is at fault and we can investigate further.

--
Ali Al-Shabibi

On 12 janv. 2012, at 04:24, Sergio Jiménez Feijóo jjji...@gmail.com wrote:

 Hi guys,
 
 I've developed a NOX aplication which needs to use the topology component to 
 discover the network topology. I've tested my application in a testbed of 6 
 Linksys WRT54GL running the OpenWRT Pantou firmware (without flowvisor) and 
 it worked like a charm. Now I'm testing my aplication in a testbed of 5 NEC 
 IP8800/S3640-24T2XW (with flowvisor) and the topology detection isn't working 
 at all (the data struct is empty).
 
 Since OpenFlow allows an application to run in different devices I've 
 discarded the fact of using new switches as the cause of the error. Therefore 
 I think flowvisor is causing the topology component not to run properly. Is 
 this possible? Have you experienced any problems with flowvisor and NOX?
 
 Thank you.
 
 http://homestore.cisco.eu/store/ciscoeu/en_IE/pd/productID.241269400
 http://www.openflow.org/wk/index.php/Pantou_:_OpenFlow_1.0_for_OpenWRT
 http://yuba.stanford.edu/foswiki/bin/view/OpenFlow/Deployment/Vendor/NEC
 
 ___
 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] packet_in_event

2011-03-28 Thread Ali Al-Shabibi
Hi!
 
 *My first question is that when a packet_in_event is received by the 
 controller, the 'inport' parameter designs the port of controller that 
 received the packet from the switch or the port of the switch that received 
 the packet.
 

The inport parameter designates the port on which the packet arrived on the 
switch. 

 why do we compare the prt[0] to the inport and why do we do a 
 inst.send_openflow(dpid, bufid, buf, openflow.OFPP_FLOOD, inport) when they 
 are equal but we do  inst.install_datapath_flow(dpid, flow, CACHE_TIMEOUT, 
 actions, bufid, openflow.OFP_DEFAULT_PRIORITY, inport, buf) when they are 
 different.

Because prt[0] is the first element of the tuple stored in 
inst.st[dpid][dstaddr], namely the output port for that destination address. 
So, if the previously learned output port is the same as the inport then either 
we have a or are creating loop on the network or something has changed that the 
switch did not notice (which would be very odd) and therefore we flood the 
packet onto all ports except the inport in an attempt to have it delivered. If 
the previously learned port and the destination port are different then we are 
in good shape and we should forward the packet to that destination port. This 
is done by the install_datapath_flow method.

 
 Thanks a lot and sorry for bothering with those basic questions.

There are no stupid questions, feel free to ask questions when you have some ;)

Cheers,

Ali

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

Ali Al-Shabibi
Doctoral Student
PH-ATD
CERN - European Organization for Nuclear Research
Office: 513 R-018
ali.al-shab...@cern.ch
Tel :   +41 22 767 86 46

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


Re: [nox-dev] send_openflow to different dpid question

2010-12-10 Thread Ali Al-Shabibi
Hi Aaron,

self.dpid_of_duplication is not the dpid the packet arrived on, therefore 
therefore bufid is meaningless to self.dpid_of_duplication. You should send 
self.dpid_of_duplication the actual packet you want to packet_out.

Hope this helps,

--
Ali Al-Shabibi

On 10 déc. 2010, at 18:57, Aaron Rosen aro...@clemson.edu wrote:

 Hello, 
 
 When I get a specific kind of packet I want to send that packet to a specific 
 dpid and port and also send it to the dpid and port that the packet was 
 intended for. 
 
 If I do: 
 
 # send packet to end host
 # note self.PortMaping[dpid, mac_to_str(packet.dst)] returns the port number 
 the packet.dst is on
 
 actions = [[openflow.OFPAT_OUTPUT, [0, self.PortMaping[dpid, 
 mac_to_str(packet.dst)  
 self.send_openflow(dpid, bufid, buf, actions, inport)
 
 # send packet to specific dpid and port 11
 
 actions = [[openflow.OFPAT_OUTPUT, [0, 11]]]
 self.send_openflow(self.dpid_of_duplication, bufid, buf, actions, inport)
 
 The packet never gets to the self.dpid_of_duplication port 11. 
 
 Anyone see where I'm going wrong here? 
 
 Thanks, 
 
 Aaron
 
 -- 
 Aaron O. Rosen 
 Masters Student - Network Communication
 306B Fluor Daniel 
 843.425.9777
 
 ___
 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


Re: [nox-dev] send_openflow to different dpid question

2010-12-10 Thread Ali Al-Shabibi
James is right, you should check with tcpdump.

By looking at the send_openflow code, you can see,

 if buffer_id != None:
self.send_openflow_buffer(dp_id, buffer_id, actions, inport)

Switch the buffer_id for None and it should work, the comment is incorrect.




On Dec 10, 2010, at 8:22 PM, James Murphy McCauley wrote:

 Have you installed a rule to send the entire packet (the type that you
 want to duplicate) to the controller?  If not, it may well be truncated.
 So you may only be sending the truncated version out on the second dpid.
 Depending on how you're checking to see if this is working, this may
 just look like it's failing (e.g., because if it's a TCP packet, the
 receiver will just throw it away because its checksum will be wrong
 among other things).
 
 -- Murphy
 
 On Fri, 2010-12-10 at 14:08 -0500, Aaron Rosen wrote:
 Hi Ali, 
 
 Looking at the comments for send_openflow, if buffer_id is -1 then, it
 should send the packet. Though, maybe I'm still doing this
 incorrectly?
 
actions = [[openflow.OFPAT_OUTPUT, [0, 11]]]
self.send_openflow(self.dpid_of_duplication, -1,
 buf, actions, inport)
 
 also 
actions = [[openflow.OFPAT_PACKET_OUTPUT, [0,
 11]]]
self.send_openflow(self.dpid_of_duplication, -1,
 buf or packet, actions, inport)
 
 doesn't seem to work. Could you point out where I'm going wrong? 
 
 
 Thanks, 
 
 Aaron
 
 
 On Fri, Dec 10, 2010 at 1:41 PM, Ali Al-Shabibi
 ali.al-shab...@cern.ch wrote:
Hi Aaron,
 
self.dpid_of_duplication is not the dpid the packet arrived
on, therefore therefore bufid is meaningless to
self.dpid_of_duplication. You should send
self.dpid_of_duplication the actual packet you want to
packet_out.
 
Hope this helps,
 
--
Ali Al-Shabibi
 
 
On 10 déc. 2010, at 18:57, Aaron Rosen aro...@clemson.edu
wrote:
 
 Hello,
 
 When I get a specific kind of packet I want to send that
packet to a specific dpid and port and also send it to the
dpid and port that the packet was intended for.
 
 If I do:
 
 # send packet to end host
 # note self.PortMaping[dpid, mac_to_str(packet.dst)] returns
the port number the packet.dst is on
 
 actions = [[openflow.OFPAT_OUTPUT, [0, self.PortMaping[dpid,
mac_to_str(packet.dst)
 self.send_openflow(dpid, bufid, buf, actions, inport)
 
 # send packet to specific dpid and port 11
 
 actions = [[openflow.OFPAT_OUTPUT, [0, 11]]]
 self.send_openflow(self.dpid_of_duplication, bufid, buf,
actions, inport)
 
 The packet never gets to the self.dpid_of_duplication port
11.
 
 Anyone see where I'm going wrong here?
 
 Thanks,
 
 Aaron
 
 --
 Aaron O. Rosen
 Masters Student - Network Communication
 306B Fluor Daniel
 843.425.9777
 
 
 ___
 nox-dev mailing list
 nox-dev@noxrepo.org
 http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org
 
 
 
 -- 
 Aaron O. Rosen 
 Masters Student - Network Communication
 306B Fluor Daniel 
 843.425.9777
 
 ___
 nox-dev mailing list
 nox-dev@noxrepo.org
 http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org
 
 

-- 

Ali Al-Shabibi
Doctoral Student
PH-ATD
CERN - European Organization for Nuclear Research
Office: 513 R-018
ali.al-shab...@cern.ch
Tel :   +41 22 767 86 46


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


Re: [nox-dev] discovery

2010-09-07 Thread Ali Al-Shabibi



1. Creates a lldp packet with the 6 least significant bytes of the dpid as a
tlv (see line 65 and 66 of discovery.py).
2. The received lldp packet's tlv field is then used to compute a chassis id
(line 276), this chassis id is only 6 bytes long

You are right. The problem is that you are unable to associate
multiple Openflow instances on the same HP switch with the same
controller because the TLV contains only the least significant 48
bits. I thought this was solved with NOX-destiny branch which has
support for 64 bit dpid. I'll let the NOX team put in the patch.


I actually believe it doesn't work even if the connections are on the 
distinct HP switches. Because the keys in self.dps are 8 bytes long and 
the chassisid is 6 bytes long (and ignores the first 2 bytes of the 
dpid). So unless the first 2 bytes of the dpid is all zero, this will 
never work. Moreover, the first 2 bytes cannot be zero as they represent 
the openflow instance vlan id which cannot be 0 (at least on HP 
switches). Please correct me, if I am wrong.



Also, I noticed that the switchstats.py in the switchstats component has the
following call:
self.ctxt.send_port_stats_request(dp)
Shouldn't this call be:
self.ctxt.send_port_stats_request(dp, openflow.OFPP_NONE)

I believe the default value of OFPP_NONE for the second argument is
set elsewhere.

When I run the switchstats module, I get this error:
12:30:48 a...@pcepatr39[src]$ ./nox_core  -i ptcp:2525 switchstats
NOX 0.8.0~full~beta (nox_core), compiled Sep  2 2010 16:32:28
Compiled with OpenFlow 0x01
1|reactor|ERR:Unhandled Error
Traceback (most recent call last):
--- exception caught here ---
  File ./nox/coreapps/pyrt/pyoxidereactor.py, line 86, in __call__
self.func(*self.args, **self.kw);
  File ./nox/netapps/switchstats/switchstats.py, line 123, in 
lambda

lambda : self.port_timer(dp))
  File ./nox/netapps/switchstats/switchstats.py, line 88, in 
port_timer

self.ctxt.send_port_stats_request(dp)
  File ./nox/coreapps/pyrt/pycomponent.py, line 476, in 
send_port_stats_request
def send_port_stats_request(*args): return 
_pycomponent.PyContext_send_port_stats_request(*args)
exceptions.TypeError: PyContext_send_port_stats_request() takes 
exactly 3 arguments (2 given)


It is fixed by adding the OFPP_NONE

Thanks!

--
Ali Al-Shabibi
Doctoral Student
PH-ATD
CERN - European Organization for Nuclear Research
Office: 513 R-018
ali.al-shab...@cern.ch
Tel :   +41 22 767 86 46
Mob :   +41 78 609 04 84


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


[nox-dev] discovery

2010-09-03 Thread Ali Al-Shabibi
Hi all,	I noticed that the discovery module in the destiny branch does not work with HP switches (at least). So attached is a patch that resolves this situation. I am not entirely sure this is the appropriate way to solve the problem but it works for me.Hope it helps,
Ali Al-ShabibiDoctoral StudentPH-ATDCERN - European Organization for Nuclear ResearchOffice: 513 R-018ali.al-shab...@cern.chTel : +41 22 767 86 46



discovery.patch
Description: Binary data
___
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org


Re: [nox-dev] Routing module

2009-10-14 Thread Ali Al-Shabibi
 2e988cc00065 (len:60)
00290|openflow-event|DBG:received packet-in event from 2e9aea65 (len:60)
00291|openflow-event|DBG:received packet-in event from 2e988cc00065 (len:60)
00292|openflow-event|DBG:received packet-in event from 2e9aea65 (len:60)
00293|openflow-event|DBG:received packet-in event from 2e988cc00065 (len:60)


Martin Casado wrote:
What I don't understand is why I don't see packets sent to Nox in the 
debugging output you sent out.  I would expect some output from 
authenticator or routing.  My suspicion is that the switch is not 
forwarding packets to Nox under the VLAN configuration you're testing.


Does the switch application work under your VLAN configuration?


Hi Martin,
If I put the two end hosts in the same vlan and ping them it works 
fine. But when they are in different vlans the  arp requests are not 
resolved, the only flow which is added is the one I quoted in my 
original email. So I am positive that the packets are making it to 
nox. What is the scenario in which the routing module works best? 
Could you give me some pointers as to how the routing module works?


Thanks for your help,


On Oct 13, 2009, at 9:30 PM, Martin Casado wrote:

All I see are the LLDP packets being received.  Are you sure that 
packets from the end hosts are making it to Nox?  If not, perhaps 
there is a switch mis-configuration.


What happens if you run switch instead of routing?  If this doesn't 
work as well, then it is almost certainly a switch issue.


.martin





--
Ali Al-Shabibi
Doctoral Student
PH-ATD
CERN - European Organization for Nuclear Research
Office: 513 R-018
ali.al-shab...@cern.ch
Tel :   +41 22 767 86 46
Mob :   +41 78 609 04 84

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


Re: [nox-dev] Routing module

2009-10-14 Thread Ali Al-Shabibi
Should it not also advertise that routing assumes that either spanning 
tree is running or that the physical topology contains no loops to 
function correctly.


Martin Casado wrote:
Ah, I'm starting to understand what is going on.  Routing has no notion 
of subnets, vlans etc.  It doesn't operate like a standard ipv4 router 
(perhaps the name should be changed to avoid confusion).


Routing operates as follows:
- It pulls in the authenticator component which tracks MAC addresses and 
the switch ports they are bound to
- For each packet in which the destination MAC address has been 
discovered, a point to point route is calculated and a flow entry is 
added to each switch along path.

- If the destination MAC has not been discovered, the packet is flooded

It doesn't, however, have an ARP stack.  So if you're host is configered 
with the first switch as the next hop, the ARP packet will be flooded, 
to no effect.


This is a roundabout way of saying that, yes in order to operate 
correctly, all hosts must be on the same subnet.

hope this all makes sense,
.martin


The switch application does not work under my vlan configuration, and 
it should not as each the two end hosts reside in different subnets.


It seems that the routing module expects all datapaths to be within 
the same openflow vlan instance. Basically this means that if H1 is in 
one vlan instance and H2 is in the other, then these hosts will never 
be able to communicate. I do not know if this issue is specific to 
hardware openflow implementations, but I believe so.


The solution that I have found so far is to put all datapaths in the 
same vlan. This seems to solve the problem, and the routing module 
picks up routes.


Let me know if I have missed something.

Cheers.

Martin Casado wrote:
What I don't understand is why I don't see packets sent to Nox in the 
debugging output you sent out.  I would expect some output from 
authenticator or routing.  My suspicion is that the switch is not 
forwarding packets to Nox under the VLAN configuration you're testing.


Does the switch application work under your VLAN configuration?


Hi Martin,
If I put the two end hosts in the same vlan and ping them it works 
fine. But when they are in different vlans the  arp requests are not 
resolved, the only flow which is added is the one I quoted in my 
original email. So I am positive that the packets are making it to 
nox. What is the scenario in which the routing module works best? 
Could you give me some pointers as to how the routing module works?


Thanks for your help,


On Oct 13, 2009, at 9:30 PM, Martin Casado wrote:

All I see are the LLDP packets being received.  Are you sure that 
packets from the end hosts are making it to Nox?  If not, perhaps 
there is a switch mis-configuration.


What happens if you run switch instead of routing?  If this 
doesn't work as well, then it is almost certainly a switch issue.


.martin









--
Ali Al-Shabibi
Doctoral Student
PH-ATD
CERN - European Organization for Nuclear Research
Office: 513 R-018
ali.al-shab...@cern.ch
Tel :   +41 22 767 86 46
Mob :   +41 78 609 04 84

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