You need to get an actual instance of the tcp_opt class (stored in the .options 
attribute of the TCP object).  Try something like:

packet = event.parsed
packet_tcp = packet.find("tcp")
if packet_tcp:
  for opt in packet_tcp.options:
    print "type:%s data:%s" % (opt.type, opt.val)

-- Murphy   

On Dec 26, 2013, at 5:54 AM, Marcus Sandri <mww...@gmail.com> wrote:

> Exactly,
> 
>             
> But how can I access .val atributes?
>  I tried: 
> 
> packet = event.parsed
> packet_tcp = packet.find("tcp")
> if(packet_tcp):
>             
>             tcp_raw = tcp_opt.val
> 
> 
> But it returns: line 29, in _handle_PacketIn
> tcp_options = tcp_opt.val
> AttributeError: class tcp_opt has no attribute 'val'
> 
> It works with the tcp_opt constants, such as: EOL, SACK, etc.
> 
> Am I doing something wrong?
> 
> 
> 2013/12/26 Murphy McCauley <murphy.mccau...@gmail.com>
> When the packet library parses it, it should end up in the TCP object's 
> .options collection.  The packet library doesn't currently have support for 
> MPTCP, so I think it should just end up with the raw bytes in the tcp_opt 
> object's .val attribute.
> 
> -- Murphy
> 
> On Dec 25, 2013, at 6:45 PM, Marcus Sandri <mww...@gmail.com> wrote:
> 
> > Hello,
> >
> >        I've working with MPTCP protocol and I need access the OPTIONS field 
> > from TCP protocol. How can I access the OPTIONS field, using tcp_opt class?
> >
> >
> >
> > cheers,
> > marcus.
> 
> 

Reply via email to