Hm.  Maybe this is bitrot.  Please check that the first part of the patch got 
applied and wasn't rejected.  Specifically, line 65ish should be:

cid.fill(chassis_id.SUB_LOCAL, array.array('B', 'dpid:' + hex(long(dpid))
[2:-1]))

If it is, try replacing the log message around line 268 with something 
slightly more useful:
 lg.error("lldp chassis ID subtype is " + str(lldph.tlvs[0].subtype)
                + " not 'local', ignoring")

-- Murphy

On Wednesday, June 22, 2011 03:03:15 PM Aaron Rosen wrote:
> Hi Murphy,
> 
> After applying the patch I'm getting the following messages from nox:
> 
> 
> 00396|discovery|ERR:lldp chassis ID subtype is not 'local', ignoring
> 00397|discovery|ERR:lldp chassis ID subtype is not 'local', ignoring
> 00398|discovery|ERR:lldp chassis ID subtype is not 'local', ignoring
> 
> 
> Thanks,
> 
> Aaron
> 
> On Wed, Jun 22, 2011 at 5:54 PM, Aaron Rosen <aro...@clemson.edu> wrote:
> > Hi Murphy you are right, I was mistaken on the dpid.
> > 
> > I've applied this patch and still seeing the same results.  (I am
> > using zaku perhaps i should switch to destiny and try?).
> > 
> > 
> > checking 492581376499901568 inport 41
> > False
> > 
> > 
> > Any ideas?
> > 
> > Thanks,
> > 
> > Aaron
> > 
> > On Wed, Jun 22, 2011 at 5:42 PM, Murphy McCauley <jam...@nau.edu> wrote:
> >> You say your DPID is actually 00:26:f1:3f:e4:80, but... I am guessing
> >> (and hoping) that you're wrong.  I am guessing it's actually
> >> 06:d6:00:26:f1:3f:e4:80 (which is 492581376499901568, BTW).
> >> 
> >> So I think you're hitting a longstanding bug in discovery where it
> >> doesn't work right with DPIDs over 48 bits.  This following message
> >> contains a patch addressing that, and I think it is a prerequisite for
> >> you getting this working:
> >> http://noxrepo.org/pipermail/nox-dev/2010-November/006705.html
> >> 
> >> -- Murphy
> >> 
> >> On Wednesday, June 22, 2011 02:18:17 PM Aaron Rosen wrote:
> >>> Hi Murphy,
> >>> 
> >>> I managed to get it running but I can't seem to get it working
> >>> correctly: In discovery.py I've uncommented line 334 to print the
> >>> following:
> >>> 
> >>> print 'Sending packet out of ',longlong_to_octstr(dp), ' port
> >>> ',str(port)
> >>> 
> >>> From that I see:
> >>> 
> >>> Sending packet out of  06:d6:00:26:f1:3f:e4:80  port  41
> >>> Sending packet out of  06:d6:00:26:f1:3f:e4:80  port  36
> >>> Sending packet out of  06:d6:00:26:f1:3f:e4:80  port  39
> >>> 
> >>> Port 41 is the port that connects to another OF switch
> >>> Also the DPID of my switch is really (00:26:F1:3F:E4:80), I'm guessing
> >>> the it's padding with 06:d6?
> >>> 
> >>> Though if I print the dpid value in create_discovery_packet() it's
> >>> 06:d6:00:26:f1:3f:e4:80.
> >>> 
> >>> Anyways: port 41 connects into an OF switch that has a dpid of:
> >>> 0e:83:00:24:a8:d2:b8:40    So I expect to see packet in events here
> >>> with my LLDP packet from port 41.
> >>> 
> >>> 
> >>> Using a modified packet print I print out the packets and the DPID
> >>> they came in on. From that i see the following packet from dpid:
> >>> 0e:83:00:24:a8:d2:b8:40
> >>> 
> >>> [00:26:f1:3f:e4:80>01:23:20:00:00:01:LLDP]<chassis
> >>> ID:00:26:f1:3f:e4:80><port ID:00:29><ttl:120><tlv end>
> >>> 
> >>> This seems like everything is working perfectly here because this
> >>> switch is the one that connects:
> >>> 
> >>> 00:26:f1:3f:e4:80  <-->  0e:83:00:24:a8:d2:b8:40  and port id = 41
> >>> which is correct.
> >>> 
> >>> Though when I the following code in my controller gets run it returns
> >>> false, but It should return true since port 41 connects to another
> >>> switch. (and this switch returned an LLDP that I sent as a packet in
> >>> event)
> >>> 
> >>> TRUNK_PORT = inst.discovery.is_switch_only_port(dpid, inport)
> >>> if str(dpid) == "492581376499901568": # this is 00:26:f1:3f:e4:80
> >>>         print "checking " + str(dpid) + " inport " + str(inport)
> >>> 
> >>> 
> >>> checking 492581376499901568 inport 41
> >>> False
> >>> 
> >>> 
> >>> Any ideas whats going wrong here?
> >>> 
> >>> Thanks,
> >>> 
> >>> Aaron
> >>> 
> >>> On Wed, Jun 22, 2011 at 1:44 PM, Murphy McCauley <jam...@nau.edu> wrote:
> >>> > Try putting discovery before mymodule on the commandline (or, better,
> >>> > making mymodule depend on discovery in its meta.json).
> >>> > 
> >>> > -- Murphy
> >>> > 
> >>> > On Tuesday, June 21, 2011 01:52:18 PM Aaron Rosen wrote:
> >>> >> Or maybe doing
> >>> >> 
> >>> >> from nox.netapps.discovery import discovery
> >>> >> if(self.resolve(discovery).is_switch_only_port(self, dpid, port) ?
> >>> >> 
> >>> >> Though if I import discovery in this manner I end up with the
> >>> >> following error after nox starts:
> >>> >> 
> >>> >>       Current state: ERROR
> >>> >>       Required state: INSTALLED
> >>> >>       Dependencies: 'python' OK, 'python' OK
> >>> >>       Error:
> >>> >>               cannot import a Python module
> >>> >> 'nox.coreapps.examples.sos': Traceback (most recent call last):
> >>> >>                 File "./nox/coreapps/examples/sos.py", line 8, in
> >>> >> <module> from nox.netapps.discovery import discovery
> >>> >>                 File "./nox/netapps/discovery/discovery.py", line
> >>> >> 24, in <module> from nox.netapps.discovery.pylinkevent   import
> >>> >> Link_event File "./nox/netapps/discovery/pylinkevent.py", line 25,
> >>> >> in <module> _pylinkevent = swig_import_helper()
> >>> >>                 File "./nox/netapps/discovery/pylinkevent.py", line
> >>> >> 21, in swig_import_helper
> >>> >>                   _mod = imp.load_module('_pylinkevent', fp,
> >>> >> pathname, description) ImportError:
> >>> >> ./nox/netapps/discovery/_pylinkevent.so: undefined symbol:
> >>> >> vigil::Link_event::Link_event(vigil::datapathid, vigil::datapathid,
> >>> >> unsigned short, unsigned short,
> >>> >> vigil::Link_event::Action)
> >>> >> 
> >>> >> On Tue, Jun 21, 2011 at 4:22 PM, Aaron Rosen <aro...@clemson.edu> 
wrote:
> >>> >> > Hello,
> >>> >> > 
> >>> >> > I would like to use: ./nox/netapps/discovery/discovery.py  to find
> >>> >> > interconnected links.
> >>> >> > 
> >>> >> > I'm running nox in the following way  ./nox_core -v -i ptcp:6644
> >>> >> > mymodule discovery
> >>> >> > 
> >>> >> > When doing this I see discovery messages getting printed out. Now
> >>> >> > In mymodule I believe I should be calling:
> >>> >> > is_switch_only_port(self, dpid, port)? How can I call this from
> >>> >> > mymodule?
> >>> >> > 
> >>> >> > Thanks,
> >>> >> > 
> >>> >> > Aaron
> >>> >> > 
> >>> >> > 
> >>> >> > 
> >>> >> > --
> >>> >> > Aaron O. Rosen
> >>> >> > Masters Student - Network Communication
> >>> >> > 306B Fluor Daniel
> > 
> > --
> > Aaron O. Rosen
> > Masters Student - Network Communication
> > 306B Fluor Daniel
_______________________________________________
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev

Reply via email to