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  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] Sending arp packets

2011-02-16 Thread Ali Al-Shabibi
on I'm not seeing any. Though at my controller I'm definitely
>>>> getting the packets. (I think this may because I'm using mininet? I've
>>>> tried all the interfaces on my machine in wireshark). Though when I
>>>> try this using the Openflow Tutorial provided VM i'm also not seeing
>>>> any 'of' packets in wireshark there? (Any idea why)?
>>>> 
>>>> Thanks,
>>>> 
>>>> Aaron
>>>> 
>>>> 
>>>> 
>>> 
>>> ___
>>> 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
>> 
> 
> ___
> 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] 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
>>  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 
>>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] 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  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] 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):
---  ---
  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 : 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


Re: [nox-dev] discovery

2010-09-04 Thread Ali Al-Shabibi
build_lldp_generator())
self.post_callback(TIMEOUT_CHECK_PERIOD, lambda : discovery.timeout_links(self))

def post_link_event(self, linktuple, action):
e = Link_event(create_datapathid_from_host(linktuple[0]),
  create_datapathid_from_host(linktuple[2]),
  linktuple[1], linktuple[3], action)
self.post(e)

#-- 
#  Link addition/deletion
#-- 

def add_link(self, linktuple):
self.post_link_event(linktuple, Link_event.ADD)
src_dpid = create_datapathid_from_host(linktuple[0])
src_port = linktuple[1]
dst_dpid = create_datapathid_from_host(linktuple[2])
dst_port = linktuple[3]
self._bindings.add_link(src_dpid,src_port,dst_dpid,dst_port)
self._user_event_log.log("discovery",LogLevel.ALERT, 
"Added network link between {sl} and {dl}",
set_src_loc = (src_dpid,src_port), 
set_dst_loc = (dst_dpid,dst_port)) 

def delete_links(self, deleteme):

for linktuple in deleteme:
del self.adjacency_list[linktuple]
src_dpid = create_datapathid_from_host(linktuple[0])
src_port = linktuple[1]
dst_dpid = create_datapathid_from_host(linktuple[2])
dst_port = linktuple[3]
try:
self._bindings.remove_link(src_dpid,src_port,dst_dpid,dst_port)
self._user_event_log.log("discovery",LogLevel.ALERT, 
  "Removed network link between {sl} and {dl}", 
  set_src_loc = (src_dpid,src_port), 
  set_dst_loc = (dst_dpid,dst_port)) 
except Exception, e:
  lg.error('Error removing links from binding storage')

self.post_link_event(linktuple, Link_event.REMOVE)

#-- 
#   Public API
#-- 

def is_switch_only_port(self, dpid, port):
""" Returns True if (dpid, port) designates a port that has any
neighbor switches"""
for dp1, port1, dp2, port2 in self.adjacency_list:
if dp1 == dpid and port1 == port:
return True
if dp2 == dpid and port2 == port:
return True
return False


def getFactory():
class Factory:
def instance(self, ctxt):
return discovery(ctxt)

return Factory()
On Sep 4, 2010, at 12:15 AM, Srini Seetharaman wrote:Hi AliCould you please let us know what you meant by "does not work"?Is the HP switch dropping the LLDP packet that is being packet-out?The only problem we used to have with HP switches was that if the LLPDsrc MAC was a multicast address, then the switch would drop it. Thishas been fixed for the past few months in most of the branches. So,it'll help us to know what version of NOX you're running (If you sendus the original discovery.py file, that helps too).ThanksSrini.On Fri, Sep 3, 2010 at 10:31 AM, Ali Al-Shabibi <ali.al-shab...@cern.ch> wrote:Hi all,I noticed that the discovery module in the destiny branch does not work withHP 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 butit 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___nox-dev mailing listnox-dev@noxrepo.orghttp://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org
Ali Al-ShabibiDoctoral StudentPH-ATDCERN - European Organization for Nuclear ResearchOffice: 513 R-018ali.al-shab...@cern.chTel :   +41 22 767 86 46

___
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
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


Re: [nox-dev] Routing module

2009-10-14 Thread Ali Al-Shabibi
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


Re: [nox-dev] Routing module

2009-10-14 Thread Ali Al-Shabibi
5
00270|name_manager|DBG:Cannot mangled unknown principal type 4294967295.
00271|authenticator|DBG:Added location discovered;authenticated 
2e988cc00067:37.

00272|name_manager|DBG:Cannot mangled unknown principal type 4294967295.
00273|authenticator|DBG:Added location discovered;authenticated 
2e988cc00067:39.

00274|name_manager|DBG:Cannot mangled unknown principal type 4294967295.
00275|authenticator|DBG:Added location discovered;authenticated 
2e988cc00065:41.

00276|openflow-event|DBG:received packet-in event from 2e988cc00065 (len:60)
00277|discovery|WARN:new link detected (00:00:2e:98:8c:c0:00:65 p:41 -> 
00:00:2e:9a:ea:00:00:65 p:41)

00278|openflow-event|DBG:received packet-in event from 2e9aea65 (len:60)
00279|discovery|WARN:new link detected (00:00:2e:9a:ea:00:00:65 p:41 -> 
00:00:2e:98:8c:c0:00:65 p:41)

00280|openflow-event|DBG:received packet-in event from 2e9aea66 (len:60)
00281|authenticator|DBG:Automatically authing 00:50:da:6e:ac:7f 0.0.0.0.
00282|authenticator|DBG:Host auth event received.
00283|authenticator|DBG:discovered;authenticated added location 
2e9aea66:48 to 00:50:da:6e:ac:7f.

00284|authenticator|DBG:Looking up destination name for flow.
00285|authenticator|DBG:Caching host discovered;unauthenticated.
00286|sp_routing|DBG:Broadcasting 2e9aea66 port0030:vlan 
mac00:50:da:6e:ac:7f->ff:ff:ff:ff:ff:ff proto0806 ip0.0.0.0->0.0.0.0 
port0->0

00287|openflow-event|DBG:received packet-in event from 2e988cc00065 (len:60)
00288|openflow-event|DBG:received packet-in event from 2e9aea000065 (len:60)
00289|openflow-event|DBG:received packet-in event from 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


[nox-dev] Routing module

2009-10-13 Thread Ali Al-Shabibi

Hello,

	I am trying to implement a monitoring protocol. For this I am relying 
on the routing module. I have a simple setup involving three 
openflow-enabled hardware switches. Below is the topology:


++  Vl 1++Vl 2  ++
H1--| R1 |--| R2 |--| R3 |--H2
++  ++  ++

R1 and R2 share vlan 1 (ip 192.168.1.0/24) and R2 and R3 share vlan 2 
(ip address 192.168.2.0/24). H1 (192.168.1.1) and H2 (192.168.2.1) are 
end hosts.


Each vlan instance connects to the controller and is correctly picked up 
by nox as it registers the correct number of datapaths and switches. 
When I run, nox_core -i ptcp:2525 routing, I obtain the following output:


a...@pcepatr39[src]$ sudo ./nox_core -i ptcp:2525 switch routing
[sudo] password for ash:
NOX 0.5.0~full~beta (nox_core), compiled Oct 13 2009 14:43:43
Compiled with OpenFlow 0x97 (exp)
1|sqlite3-impl|WARN:Transactional storage file not given in the 
command line; defaulting to 'testing.sqlite'
2|discovery|WARN:new link detected (00:00:2e:98:ca:40:00:66 p:45 -> 
00:00:2e:9a:ea:00:00:66 p:45)
4|discovery|WARN:new link detected (00:00:2e:9a:ea:00:00:65 p:41 -> 
00:00:2e:98:8c:c0:00:65 p:41)
5|discovery|WARN:new link detected (00:00:2e:9a:ea:00:00:66 p:45 -> 
00:00:2e:98:ca:40:00:66 p:45)
6|discovery|WARN:new link detected (00:00:2e:98:8c:c0:00:65 p:41 -> 
00:00:2e:9a:ea:00:00:65 p:41)


So the links are correctly detected by the discovery module. But when I 
attempt to ping H2 from H1. The only flow then I see setup is:


duration=11s, table_id=0, priority=65535, n_packets=9, n_bytes=540, 
idle_timeout=60,hard_timeout=0,arp,in_port=48,dl_vlan=0x,dl_src=00:50:da:6e:ac:7f,

dl_dst=ff:ff:ff:ff:ff:ff,nw_src=0.0.0.0,nw_dst=0.0.0.0,nw_proto=0,tp_src=0,tp_dst=0,actions=FLOOD

And no other flows are setup and no messages are sent out by the routing 
module. Am I missing something about the routing module? From the manual 
it seems like it is supposed to setup flows on each router from source 
till the destination.


I am running this on 3 hp 3500s, with nox 0.5.0 full.

Thanks for your help,

--
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] openflow wire protocol 0x98

2009-09-04 Thread Ali Al-Shabibi
Even after these modification there will be some problems with some of 
the apps, such as the Routing and Flow Fetcher. These problems are due 
to the fact that the ofp_match structure has changed to include now two 
pads and a field for vlan priority. Also the ofp_flow_stats_request has 
changed as well.


So most probably some alignments are off. Is it worth for me to modify 
the code to support these changes or simply revert to a previous version 
of openflow. If it is worth adapting the current nox code, could someone 
please point me to the areas which require attention?


Thanks for your help,



Ali Al-Shabibi wrote:

Hi,

Thanks for your quick answer, Martin. Turns out that was part of the 
error, but I started investigating deeper and I found that in the 
includes from openflow, the struct ofp_flow_expired had been renamed to 
ofp_flow_removed. Below is t he diff between the two files.


114c114
< OFPT_FLOW_EXPIRED,  /* Async message */
---
 > OFPT_FLOW_REMOVED,/* Async message */
569c569
< enum ofp_flow_expired_reason {
---
 > enum ofp_flow_removed_reason {
576c576
< struct ofp_flow_expired {
---
 > struct ofp_flow_removed {
590c590
< OFP_ASSERT(sizeof(struct ofp_flow_expired) == 80);
---
 > OFP_ASSERT(sizeof(struct ofp_flow_removed) == 80);


Hope this helps ever soo slightly :)



Martin Casado wrote:
This may be a bug with the build system, I don't see the 
/opt/openflow/ include path being appended to the compile line.
Could you try adding the openflow include directory to the AM_CPPFLAGS 
in src/Make.vars and see if that works?

thanks!
.martin


Hello,

I have been trying to compile nox against the latest release of 
openflow (wire protocol 0x98), unfortunately this has failed (see 
below for compilation trail). Is there a fix for this, or should I 
just revert to the previous version of openflow.


Configure command: ./configure --with-python=yes 
--with-openflow=/opt/openflow


a...@pcepatr39[nox-0.5.0~full~beta]$ make
make  all-recursive
make[1]: Entering directory `/opt/nox-0.5.0~full~beta'
Making all in src
make[2]: Entering directory `/opt/nox-0.5.0~full~beta/src'
make  all-recursive
make[3]: Entering directory `/opt/nox-0.5.0~full~beta/src'
Making all in include
make[4]: Entering directory `/opt/nox-0.5.0~full~beta/src/include'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/opt/nox-0.5.0~full~beta/src/include'
Making all in lib
make[4]: Entering directory `/opt/nox-0.5.0~full~beta/src/lib'
make  all-am
make[5]: Entering directory `/opt/nox-0.5.0~full~beta/src/lib'
/bin/bash ../../libtool --tag=CXX   --mode=compile g++ 
-DHAVE_CONFIG_H -I. -I../..  -DPKGDATADIR=\"/usr/local/share/nox\" 
-DPKGLIBDIR=\"/usr/local/bin/lib\"c
 g++ -DHAVE_CONFIG_H -I. -I../.. 
-DPKGDATADIR=\"/usr/local/share/nox\" 
-DPKGLIBDIR=\"/usr/local/bin/lib\" 
-DPKGLOCALSTATEDIR=\"/usr/local/var/nox\" -DPKGSYSo

In file included from openflow-event.cc:43:
../../src/include/flow-expired.hh:43: error: expected ‘,’ or ‘...’ 
before ‘*’ token
../../src/include/flow-expired.hh:44: error: ISO C++ forbids 
declaration of ‘ofp_flow_expired’ with no type
../../src/include/flow-expired.hh:58: error: ISO C++ forbids 
declaration of ‘ofp_flow_expired’ with no type
../../src/include/flow-expired.hh:58: error: expected ‘;’ before ‘*’ 
token
../../src/include/flow-expired.hh:62: error: expected `;' before 
‘static’
../../src/include/flow-expired.hh: In member function ‘virtual const 
ofp_match* vigil::Flow_expired_event::get_flow() const’:
../../src/include/flow-expired.hh:55: error: ‘get_flow_expired’ was 
not declared in this scope

../../src/include/flow-expired.hh: At global scope:
../../src/include/flow-expired.hh:69: error: expected ‘,’ or ‘...’ 
before ‘*’ token
../../src/include/flow-expired.hh:70: error: ISO C++ forbids 
declaration of ‘ofp_flow_expired’ with no type
../../src/include/flow-expired.hh: In constructor 
‘vigil::Flow_expired_event::Flow_expired_event(vigil::datapathid, int)’:
../../src/include/flow-expired.hh:71: error: ‘ofe’ was not declared 
in this scope

openflow-event.cc: At global scope:
openflow-event.cc:68: error: expected ‘,’ or ‘...’ before ‘*’ token
openflow-event.cc:68: error: ISO C++ forbids declaration of 
‘ofp_flow_expired’ with no type
openflow-event.cc: In function 
‘vigil::Event*::handle_flow_expired(vigil::datapathid, int)’:

openflow-event.cc:72: error: ‘ofe’ was not declared in this scope
openflow-event.cc:72: error: ‘buf’ was not declared in this scope
openflow-event.cc: In function ‘vigil::Event* 
vigil::openflow_packet_to_event(vigil::datapathid, 
std::auto_ptr)’:
openflow-event.cc:277: error: ‘OFPT_FLOW_EXPIRED’ was not declared in 
this scope
openflow-event.cc:278: error: no matching function for call to 
‘handle_packet(vigil::Event* (&)(vigil::datapathid, int), 
vigil::datapathid&, const ofp_hea

Re: [nox-dev] openflow wire protocol 0x98

2009-09-04 Thread Ali Al-Shabibi

Hi,

	Thanks for your quick answer, Martin. Turns out that was part of the 
error, but I started investigating deeper and I found that in the 
includes from openflow, the struct ofp_flow_expired had been renamed to 
ofp_flow_removed. Below is t he diff between the two files.


114c114
< OFPT_FLOW_EXPIRED,   /* Async message */
---
> OFPT_FLOW_REMOVED,/* Async message */
569c569
< enum ofp_flow_expired_reason {
---
> enum ofp_flow_removed_reason {
576c576
< struct ofp_flow_expired {
---
> struct ofp_flow_removed {
590c590
< OFP_ASSERT(sizeof(struct ofp_flow_expired) == 80);
---
> OFP_ASSERT(sizeof(struct ofp_flow_removed) == 80);


Hope this helps ever soo slightly :)



Martin Casado wrote:
This may be a bug with the build system, I don't see the /opt/openflow/ 
include path being appended to the compile line.Could you try adding 
the openflow include directory to the AM_CPPFLAGS in src/Make.vars and 
see if that works?

thanks!
.martin


Hello,

I have been trying to compile nox against the latest release of 
openflow (wire protocol 0x98), unfortunately this has failed (see 
below for compilation trail). Is there a fix for this, or should I 
just revert to the previous version of openflow.


Configure command: ./configure --with-python=yes 
--with-openflow=/opt/openflow


a...@pcepatr39[nox-0.5.0~full~beta]$ make
make  all-recursive
make[1]: Entering directory `/opt/nox-0.5.0~full~beta'
Making all in src
make[2]: Entering directory `/opt/nox-0.5.0~full~beta/src'
make  all-recursive
make[3]: Entering directory `/opt/nox-0.5.0~full~beta/src'
Making all in include
make[4]: Entering directory `/opt/nox-0.5.0~full~beta/src/include'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/opt/nox-0.5.0~full~beta/src/include'
Making all in lib
make[4]: Entering directory `/opt/nox-0.5.0~full~beta/src/lib'
make  all-am
make[5]: Entering directory `/opt/nox-0.5.0~full~beta/src/lib'
/bin/bash ../../libtool --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H 
-I. -I../..  -DPKGDATADIR=\"/usr/local/share/nox\" 
-DPKGLIBDIR=\"/usr/local/bin/lib\"c
 g++ -DHAVE_CONFIG_H -I. -I../.. -DPKGDATADIR=\"/usr/local/share/nox\" 
-DPKGLIBDIR=\"/usr/local/bin/lib\" 
-DPKGLOCALSTATEDIR=\"/usr/local/var/nox\" -DPKGSYSo

In file included from openflow-event.cc:43:
../../src/include/flow-expired.hh:43: error: expected ‘,’ or ‘...’ 
before ‘*’ token
../../src/include/flow-expired.hh:44: error: ISO C++ forbids 
declaration of ‘ofp_flow_expired’ with no type
../../src/include/flow-expired.hh:58: error: ISO C++ forbids 
declaration of ‘ofp_flow_expired’ with no type
../../src/include/flow-expired.hh:58: error: expected ‘;’ before ‘*’ 
token

../../src/include/flow-expired.hh:62: error: expected `;' before ‘static’
../../src/include/flow-expired.hh: In member function ‘virtual const 
ofp_match* vigil::Flow_expired_event::get_flow() const’:
../../src/include/flow-expired.hh:55: error: ‘get_flow_expired’ was 
not declared in this scope

../../src/include/flow-expired.hh: At global scope:
../../src/include/flow-expired.hh:69: error: expected ‘,’ or ‘...’ 
before ‘*’ token
../../src/include/flow-expired.hh:70: error: ISO C++ forbids 
declaration of ‘ofp_flow_expired’ with no type
../../src/include/flow-expired.hh: In constructor 
‘vigil::Flow_expired_event::Flow_expired_event(vigil::datapathid, int)’:
../../src/include/flow-expired.hh:71: error: ‘ofe’ was not declared in 
this scope

openflow-event.cc: At global scope:
openflow-event.cc:68: error: expected ‘,’ or ‘...’ before ‘*’ token
openflow-event.cc:68: error: ISO C++ forbids declaration of 
‘ofp_flow_expired’ with no type
openflow-event.cc: In function 
‘vigil::Event*::handle_flow_expired(vigil::datapathid, int)’:

openflow-event.cc:72: error: ‘ofe’ was not declared in this scope
openflow-event.cc:72: error: ‘buf’ was not declared in this scope
openflow-event.cc: In function ‘vigil::Event* 
vigil::openflow_packet_to_event(vigil::datapathid, 
std::auto_ptr)’:
openflow-event.cc:277: error: ‘OFPT_FLOW_EXPIRED’ was not declared in 
this scope
openflow-event.cc:278: error: no matching function for call to 
‘handle_packet(vigil::Event* (&)(vigil::datapathid, int), 
vigil::datapathid&, const ofp_heade’

make[5]: *** [openflow-event.lo] Error 1
make[5]: Leaving directory `/opt/nox-0.5.0~full~beta/src/lib'
make[4]: *** [all] Error 2
make[4]: Leaving directory `/opt/nox-0.5.0~full~beta/src/lib'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/opt/nox-0.5.0~full~beta/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/opt/nox-0.5.0~full~beta/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/nox-0.5.0~full~beta'
make: *** [all] Error 2
18:45:59 a...@pcepatr39[nox-0.5.0~full~beta]$ ls




Thanks for your help,




--
Ali Al-Shabibi
Doctora

[nox-dev] openflow wire protocol 0x98

2009-09-03 Thread Ali Al-Shabibi

Hello,

	I have been trying to compile nox against the latest release of 
openflow (wire protocol 0x98), unfortunately this has failed (see below 
for compilation trail). Is there a fix for this, or should I just revert 
to the previous version of openflow.


Configure command: ./configure --with-python=yes 
--with-openflow=/opt/openflow


a...@pcepatr39[nox-0.5.0~full~beta]$ make
make  all-recursive
make[1]: Entering directory `/opt/nox-0.5.0~full~beta'
Making all in src
make[2]: Entering directory `/opt/nox-0.5.0~full~beta/src'
make  all-recursive
make[3]: Entering directory `/opt/nox-0.5.0~full~beta/src'
Making all in include
make[4]: Entering directory `/opt/nox-0.5.0~full~beta/src/include'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/opt/nox-0.5.0~full~beta/src/include'
Making all in lib
make[4]: Entering directory `/opt/nox-0.5.0~full~beta/src/lib'
make  all-am
make[5]: Entering directory `/opt/nox-0.5.0~full~beta/src/lib'
/bin/bash ../../libtool --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H 
-I. -I../..  -DPKGDATADIR=\"/usr/local/share/nox\" 
-DPKGLIBDIR=\"/usr/local/bin/lib\"c
 g++ -DHAVE_CONFIG_H -I. -I../.. -DPKGDATADIR=\"/usr/local/share/nox\" 
-DPKGLIBDIR=\"/usr/local/bin/lib\" 
-DPKGLOCALSTATEDIR=\"/usr/local/var/nox\" -DPKGSYSo

In file included from openflow-event.cc:43:
../../src/include/flow-expired.hh:43: error: expected ‘,’ or ‘...’ 
before ‘*’ token
../../src/include/flow-expired.hh:44: error: ISO C++ forbids declaration 
of ‘ofp_flow_expired’ with no type
../../src/include/flow-expired.hh:58: error: ISO C++ forbids declaration 
of ‘ofp_flow_expired’ with no type

../../src/include/flow-expired.hh:58: error: expected ‘;’ before ‘*’ token
../../src/include/flow-expired.hh:62: error: expected `;' before ‘static’
../../src/include/flow-expired.hh: In member function ‘virtual const 
ofp_match* vigil::Flow_expired_event::get_flow() const’:
../../src/include/flow-expired.hh:55: error: ‘get_flow_expired’ was not 
declared in this scope

../../src/include/flow-expired.hh: At global scope:
../../src/include/flow-expired.hh:69: error: expected ‘,’ or ‘...’ 
before ‘*’ token
../../src/include/flow-expired.hh:70: error: ISO C++ forbids declaration 
of ‘ofp_flow_expired’ with no type
../../src/include/flow-expired.hh: In constructor 
‘vigil::Flow_expired_event::Flow_expired_event(vigil::datapathid, int)’:
../../src/include/flow-expired.hh:71: error: ‘ofe’ was not declared in 
this scope

openflow-event.cc: At global scope:
openflow-event.cc:68: error: expected ‘,’ or ‘...’ before ‘*’ token
openflow-event.cc:68: error: ISO C++ forbids declaration of 
‘ofp_flow_expired’ with no type
openflow-event.cc: In function 
‘vigil::Event*::handle_flow_expired(vigil::datapathid, int)’:

openflow-event.cc:72: error: ‘ofe’ was not declared in this scope
openflow-event.cc:72: error: ‘buf’ was not declared in this scope
openflow-event.cc: In function ‘vigil::Event* 
vigil::openflow_packet_to_event(vigil::datapathid, 
std::auto_ptr)’:
openflow-event.cc:277: error: ‘OFPT_FLOW_EXPIRED’ was not declared in 
this scope
openflow-event.cc:278: error: no matching function for call to 
‘handle_packet(vigil::Event* (&)(vigil::datapathid, int), 
vigil::datapathid&, const ofp_heade’

make[5]: *** [openflow-event.lo] Error 1
make[5]: Leaving directory `/opt/nox-0.5.0~full~beta/src/lib'
make[4]: *** [all] Error 2
make[4]: Leaving directory `/opt/nox-0.5.0~full~beta/src/lib'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/opt/nox-0.5.0~full~beta/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/opt/nox-0.5.0~full~beta/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/nox-0.5.0~full~beta'
make: *** [all] Error 2
18:45:59 a...@pcepatr39[nox-0.5.0~full~beta]$ ls




Thanks for your help,
--
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