You CAN change how much of the packet gets forwarded from a miss, but
this is done in the switch negotiation and there's no really clean way
to change it (it's a macro in one of the openflow headers).  You're
better off installing a flow.

In that case, if you're not manipulating the packets at all (it doesn't
seem like you are), you can also then generally send them back out by
buffer id, and not actually have to send the full packet both ways
to/from the controller.  Also, if you just want to spy on traffic and
not alter it, you could set an action to flood the packet as well as the
action to send it to the controller.

-- Murphy

On Tue, 2011-03-01 at 19:36 -0500, Aaron Rosen wrote:
> These packets are from non-matches. So I guess I'm only getting
> 128Bytes of the packet from this? I guess I should install a rule that
> sends this packets to the controller if I want the full packet. 
> 
> Thanks, 
> 
> Aaron
> 
> On Tue, Mar 1, 2011 at 7:28 PM, James "Murphy" McCauley
> <jam...@nau.edu> wrote:
>         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
>         > >>
>         > >
>         > >
>         > >
>         >
>         >
>         >
>         
>         
>         
> 
> 
> 
> -- 
> 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