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 <jam...@nau.edu> 
> 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 <aro...@clemson.edu>
> >> 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
> >>         <jam...@nau.edu> 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
> >>                 > <jam...@nau.edu> 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
> >>                 >         > 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
> >>                 >
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>         --
> >>
> >>         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
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org

Reply via email to