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