I didn't just add the "+ str(self.type)". I also switched it to a print
from a call to self.msg() (which doesn't exist because the TCP option
class isn't a subclass of the main packet class). You should do this.
BUT... now I am suspicious. How are you getting these packets? Are
they from non-matches, or did you install a flow with a
send-to-controller action? In the former case, the packet is almost
surely truncated because only 128 bytes of a packet from a miss are sent
by default. In the latter, are you sure you specified a large enough
size when installing the flow?
-- Murphy
On Tue, 2011-03-01 at 19:18 -0500, Aaron Rosen wrote:
> If I pass packet.arr that still doesn't work. I don't get an Error
> message but tcpdump says:
>
> 19:16:26.829891 IP truncated-ip - 730 bytes missing!
> 130.127.39.173.58832 > 130.127.39.235.ssh: P
> 2569410772:2569411564(792) ack 3106665167 win 12 <nop,nop,timestamp
> 10172901 47037426>
>
> Also adding that +str(self.type) their doesn't seem to print out the
> type at that point.
>
>
> 00132|pyrt|ERR:unable to invoke a Python event handler:
> Traceback (most recent call last):
> File "./nox/lib/util.py", line 113, in f
> event.total_len, buffer_id, packet)
> File "./nox/coreapps/examples/aaronswitch.py", line 182, in
> packet_in_callback
> self.forward(dpid, inport, packet, packet.arr, bufid)
> File "./nox/coreapps/examples/aaronswitch.py", line 67, in forward
> self.send_openflow_packet(dpid,
> packet.tostring(),openflow.OFPP_FLOOD , inport)
> File "./nox/lib/packet/packet_base.py", line 114, in tostring
> return ''.join((buf, self.next.tostring()))
> File "./nox/lib/packet/packet_base.py", line 114, in tostring
> return ''.join((buf, self.next.tostring()))
> File "./nox/lib/packet/packet_base.py", line 109, in tostring
> buf = self.hdr()
> File "./nox/lib/packet/tcp.py", line 215, in hdr
> packet += option.to_bytes()
> File "./nox/lib/packet/tcp.py", line 78, in to_bytes
> self.msg('(tcp_opt to_bytes) warning, unknown option') + str(self.type)
> AttributeError: tcp_opt instance has no attribute 'msg'
>
>
>
> On Tue, Mar 1, 2011 at 6:48 PM, James "Murphy" McCauley <[email protected]>
> wrote:
> > Yeah, that's a bug too.
> >
> > Change line 78 in tcp.py to like...
> > print '(tcp_opt to_bytes) warning, unknown option type ' +
> > str(self.type)
> >
> > .. I'd actually be interested in knowing which option it is, because
> > maybe we should be handling it.
> >
> > You could also probably pass packet.arr instead of packet.tostring()
> > which would get around the fact that the parsing library has not been
> > extensively tested for packet assembly (mostly it's used for parsing).
> >
> > -- Murphy
> >
> > On Tue, 2011-03-01 at 18:21 -0500, Aaron Rosen wrote:
> >> Oh Nox is also telling me this:
> >>
> >> Traceback (most recent call last):
> >> File "./nox/lib/util.py", line 113, in f
> >> event.total_len, buffer_id, packet)
> >> File "./nox/coreapps/examples/aaronswitch.py", line 182, in
> >> packet_in_callback
> >> self.forward(dpid, inport, packet, packet.arr, bufid)
> >> File "./nox/coreapps/examples/aaronswitch.py", line 67, in forward
> >> self.send_openflow_packet(dpid,
> >> packet.tostring(),openflow.OFPP_FLOOD , inport)
> >> File "./nox/lib/packet/packet_base.py", line 114, in tostring
> >> return ''.join((buf, self.next.tostring()))
> >> File "./nox/lib/packet/packet_base.py", line 114, in tostring
> >> return ''.join((buf, self.next.tostring()))
> >> File "./nox/lib/packet/packet_base.py", line 109, in tostring
> >> buf = self.hdr()
> >> File "./nox/lib/packet/tcp.py", line 215, in hdr
> >> packet += option.to_bytes()
> >> File "./nox/lib/packet/tcp.py", line 78, in to_bytes
> >> self.msg('(tcp_opt to_bytes) warning, unknown option')
> >> AttributeError: tcp_opt instance has no attribute 'msg'
> >>
> >>
> >>
> >>
> >> On Tue, Mar 1, 2011 at 6:18 PM, Aaron Rosen <[email protected]>
> >> wrote:
> >> Thanks Murphy that fixes the typeerror but I'm still not sure
> >> if the packets are correct because I'm not able to make a
> >> connection. In Wireshark for this ssh packet_in's it's saying
> >> "This frame is a suspected retransmission" and in tcpdump at
> >> the host that is getting these packets its saying:
> >>
> >>
> >> 18:13:48.227362 IP truncated-ip - 730 bytes missing!
> >> 130.127.39.173.59276 > 130.127.39.235.ssh: P 40:832(792) ack
> >> 33 win 12 <nop,nop,timestamp 9797038 46103242>
> >>
> >>
> >> Thanks,
> >>
> >> Aaron
> >>
> >>
> >>
> >>
> >> On Tue, Mar 1, 2011 at 5:39 PM, James "Murphy" McCauley
> >> <[email protected]> wrote:
> >> Looks like the problem is in the parsing. Here's a
> >> patch:
> >>
> >> --- a/src/nox/lib/packet/tcp.py
> >> +++ b/src/nox/lib/packet/tcp.py
> >> @@ -150,7 +150,7 @@ class tcp(packet_base):
> >> elif arr[i] == tcp_opt.MSS:
> >> if arr[i+1] != 4:
> >> raise Exception()
> >> - val = struct.unpack('!H',arr[i+2:i
> >> +4])
> >> + val = struct.unpack('!H',arr[i+2:i
> >> +4])[0]
> >>
> >> self.options.append(tcp_opt(tcp_opt.MSS,val))
> >> elif arr[i] == tcp_opt.WSOPT:
> >> if arr[i+1] != 3:
> >>
> >> -- Murphy
> >>
> >>
> >> On Tue, 2011-03-01 at 17:29 -0500, Aaron Rosen wrote:
> >> > Hi Murphy,
> >> >
> >> > I'm just trying to connect to a computer using ssh
> >> so when I do ssh
> >> > 130.127.39.235 I see these typeerror messages. I do
> >> not to anything
> >> > with the packet when it gets to the controller
> >> except tell it to
> >> > flood.
> >> >
> >> > The MSS of these packets are 1460 in the packet_in
> >> event.
> >> >
> >> > Any idea?
> >> >
> >> > Thanks,
> >> >
> >> > Aaron
> >> >
> >> >
> >> > On Tue, Mar 1, 2011 at 3:51 PM, James "Murphy"
> >> McCauley
> >> > <[email protected]> wrote:
> >> > You're not doing anything wrong here. You
> >> seem to be doing
> >> > something
> >> > wrong elsewhere. Specifically, you seem to
> >> have constructed
> >> > an MSS TCP
> >> > option with a tuple as its value, when the
> >> value should be
> >> > some sort of
> >> > integer.
> >> >
> >> > -- Murphy
> >> >
> >> >
> >> > On Tue, 2011-03-01 at 15:22 -0500, Aaron
> >> Rosen wrote:
> >> > > Hello I was wondering if someone could
> >> explain where I'm
> >> > going wrong
> >> > > here:
> >> > > I'm receiving a packet and then trying to
> >> send it back out
> >> > with
> >> > >
> >> > > self.send_openflow_packet(dpid,
> >> > > packet.tostring(),openflow.OFPP_FLOOD ,
> >> inport)
> >> > >
> >> > > When I do this I'm getting the following
> >> exception:
> >> > >
> >> > > 00290|pyrt|ERR:unable to invoke a Python
> >> event handler:
> >> > > Traceback (most recent call last):
> >> > > File "./nox/lib/util.py", line 113, in f
> >> > > event.total_len, buffer_id, packet)
> >> > > File
> >> "./nox/coreapps/examples/aaronswitch.py", line 177,
> >> > in
> >> > > packet_in_callback
> >> > > self.forward(dpid, inport, packet,
> >> packet.arr, bufid)
> >> > > File
> >> "./nox/coreapps/examples/aaronswitch.py", line 96, in
> >> > forward
> >> > > self.send_openflow_packet(dpid,
> >> > > packet.tostring(),openflow.OFPP_FLOOD ,
> >> inport)
> >> > > File "./nox/lib/packet/packet_base.py",
> >> line 114, in
> >> > tostring
> >> > > return ''.join((buf,
> >> self.next.tostring()))
> >> > > File "./nox/lib/packet/packet_base.py",
> >> line 114, in
> >> > tostring
> >> > > return ''.join((buf,
> >> self.next.tostring()))
> >> > > File "./nox/lib/packet/packet_base.py",
> >> line 109, in
> >> > tostring
> >> > > buf = self.hdr()
> >> > > File "./nox/lib/packet/tcp.py", line
> >> 215, in hdr
> >> > > packet += option.to_bytes()
> >> > > File "./nox/lib/packet/tcp.py", line 70,
> >> in to_bytes
> >> > > return struct.pack('!
> >> BBH',self.type,4,self.val)
> >> > > TypeError: unsupported operand type(s) for
> >> &: 'tuple' and
> >> > 'long'
> >> > >
> >> > > Thanks,
> >> > >
> >> > > Aaron
> >> > >
> >> > >
> >> > > --
> >> > > Aaron O. Rosen
> >> > > Masters Student - Network Communication
> >> > > 306B Fluor Daniel
> >> > > 843.425.9777
> >> > >
> >> >
> >> > >
> >> _______________________________________________
> >> > > nox-dev mailing list
> >> > > [email protected]
> >> > >
> >> http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > --
> >> > Aaron O. Rosen
> >> > Masters Student - Network Communication
> >> > 306B Fluor Daniel
> >> > 843.425.9777
> >> >
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> --
> >>
> >> Aaron O. Rosen
> >> Masters Student - Network Communication
> >> 306B Fluor Daniel
> >> 843.425.9777
> >>
> >>
> >>
> >>
> >>
> >> --
> >> Aaron O. Rosen
> >> Masters Student - Network Communication
> >> 306B Fluor Daniel
> >> 843.425.9777
> >>
> >
> >
> >
>
>
>
_______________________________________________
nox-dev mailing list
[email protected]
http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org