Hi,

Thanks Murphy. It works and I also think your suggestion is a good way. And
thank again for how to use of "packet.next". I think this is useful when the
packet also contains another ethernet type inside. Hope my thought is right.

Jen-Wei

On Thu, May 26, 2011 at 5:36 PM, Murphy McCauley <jam...@nau.edu> wrote:

> Hmm... I don't immediately know what the right thing to do in this
> situation
> is.  But if it's to ignore the vlan (which doesn't immediately seem
> completely
> unreasonable), I think maybe the right approach is to replace that assert
> at
> the start of lldp_input_handler() with something like:
>
> if packet.type == ethernet.VLAN_TYPE:
>  if not packet.next:
>    lg.error("lldp_input_handler could not parse vlan frame")
>    return
>  packet = packet.next
>  assert (packet.eth_type == ethernet.LLDP_TYPE)
> else:
>   assert (packet.type == ethernet.LLDP_TYPE)
>
> That's 100% untested, so if you wanted to give it a try, please let me know
> how it turns out. :)
>
> Anyone want to comment on whether that's the right approach?
>
> -- Murphy
>
> On Thursday, May 26, 2011 01:47:00 AM Jen-Wei Hu wrote:
> > Hi,
> >
> > Recently, we use the discovery and lavi applications in NOX. The
> experiment
> > environment contains two different switches, one is PC w/ NetFPGA and the
> > other is Extreme OpenFlow enabled-Switch. After starting the discovery
> app,
> > we got the complaint messages on the console. The messages are showed
> > below: ------------------------------------------------------------
> > 00103|pyrt|ERR:unable to invoke a Python event handler:
> > Traceback (most recent call last):
> >   File "./nox/lib/util.py", line 116, in f
> >     event.total_len, buffer_id, packet)
> >   File "./nox/netapps/discovery/discovery.py", line 163, in <lambda>
> >     discovery.lldp_input_handler(self,dp,inport,reason,len,bid,packet),
> >   File "./nox/netapps/discovery/discovery.py", line 251, in
> > lldp_input_handler
> >     assert (packet.type == ethernet.LLDP_TYPE)
> > AssertionError
> > ------------------------------------------------------------
> >
> > After trying to debug these two days and check the ethernet frame, we
> print
> > received packet and find some hints from discovery.py
> > ------------------------------------------------------------
> >  [(Extreme Networks):51:a9:85>01:23:20:00:00:01:VLAN](vlanid=10:
> > pcp=0)[LLDP]<chassis ID:00:04:96:51:a9:85><port ID:00:01><ttl:120><tlv
> end>
> >  [(Nicira Network):a3:71:e3>01:23:20:00:00:01:LLDP]<chassis
> > ID:00:23:20:a3:71:e3><port ID:00:02><ttl:120><tlv end>
> > ------------------------------------------------------------
> >
> > The Extreme Switch will pack the VLAN info into the OFP packet, so we
> > modify a little parts of ethernet.py. This code just skip the VLAN part
> (4
> > bytes) of ethernet frame. The attachment is our modified code. Although
> it
> > works, we are not sure doing this is right or not. We are not the python
> > expert and maybe you guys could provide better way for this.
> >
> > Thanks,
> >
> > Jen-Wei
>
_______________________________________________
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev

Reply via email to