Hello Minoru,
Thank you very much for your insights and support.
I wanted to test a TCP parser on packet in events, the code I used is :
class Test(app_manager.RyuApp):
def __init__(self, *args, **kwargs):
super(Test, self).__init__(*args, **kwargs)
@set_ev_cls(ofp_event.EventOFPPacketIn)
def packet_in_TCP_Parser(self,ev):
msg = ev.msg
datapath = msg.datapath
ofproto = datapath.ofproto
bin_packet = msg.data
pkt = Packet(data=bin_packet)
pkt_tcp = pkt.get_protocol(tcp.tcp)
FlagsTCP = pkt_TCP.bits
self.logger.info("les drapeaux tcp sont %s" % (FlagsTCP,))
However, got the following error : AssertionError
File "/home/ubuntu/ryu/ryu/lib/hub.py", line 52, in _launch
func(*args, **kwargs)
File "/home/ubuntu/ryu/ryu/base/app_manager.py", line 274, in _event_loop
handler(ev)
File "/home/ubuntu/ryu/ryu/Test.py", line 22, in packet_in_TCP_Parser
pkt_tcp = pkt.get_protocol(tcp.tcp)
File "/home/ubuntu/ryu/ryu/lib/packet/packet.py", line 103, in get_protocol
result = self.get_protocols(protocol)
File "/home/ubuntu/ryu/ryu/lib/packet/packet.py", line 96, in get_protocols
assert issubclass(protocol, packet_base.PacketBase)
AssertionError
Could please help me to resolve the error?
Thanks and regards,
-----Message d'origine-----
De : Minoru TAKAHASHI [mailto:[email protected]]
Envoyé : jeudi 20 novembre 2014 03:05
À : Salaheddine ZERKANE; [email protected]
Objet : Re: [Ryu-devel] TCP Flags in ryu
On 2014年11月19日 21:20, Salaheddine ZERKANE wrote:
> Hello,
>
> I am a phd student working in SDN security and new in RYU, Could you please
> help me to find out if it is possible to create rules in RYUusing matching on
> TCP Flags such as : RST, FIN, SYNAck, etc. and if RYUsupports a parsing of
> packet-in by thesetcpflags? If it is the case how please?
> RST, FIN, SYNAck, etc. and if RYUsupports a parsing of packet-in by
> thesetcpflags?
Is possible.
Ryu can generate a corresponding python object from a sequence of bytes of the
packet. The following URL has describes how to use.
http://osrg.github.io/ryu-book/en/html/packet_lib.html#analysis-of-packet-parse
Of course, this feature also supports tcp.
http://ryu.readthedocs.org/en/latest/library_packet_ref.html#ryu.lib.packet.tcp.tcp
And I wrote a simple sample code.
Please try the following.
sample.py
-----------------------------------------------------------
from ryu.lib.packet.packet import Packet from ryu.lib.packet import ethernet
from ryu.lib.packet import tcp from ryu.lib.packet import ipv4 from
ryu.lib.packet import packet_utils
# Generation of Packets (Serialization)
pkt = Packet()
pkt.add_protocol(ethernet.ethernet(dst='22:22:22:22:22:22',
src='12:11:11:11:11:11', ethertype=2048)) pkt.add_protocol(ipv4.ipv4(tos=32,
proto=6, src='192.168.10.10', dst='192.168.20.20', ttl=64))
pkt.add_protocol(tcp.tcp(dst_port=2222, bits=0b001100, option=str('\\x00' * 4),
src_port=11111))
pkt.add_protocol('\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\\n\\x0b\\x0c\\r\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f')
pkt.serialize()
bin_packet = pkt.data
# Analysis of Packet (Parse)
pkt = Packet(data=bin_packet)
pkt_tcp = pkt.get_protocol(tcp.tcp)
print pkt_tcp
# show TCP Flags (6bits)
print pkt_tcp.bits
-----------------------------------------------------------
xxx@xxx:xxx/ryu/ $ python sample.py
tcp(ack=0,bits=12,csum=57105,dst_port=2222,offset=9,option=bytearray(b'\\x00\\x00\\x00\\x00'),seq=0,src_port=11111,urgent=0,window_size=0)
12
thanks
>
> Thanks and regards,
>
>
>
> *Meilleures salutations,*
>
> *Salaheddine ZERKANE*
>
>
>
> {P}
>
>
>
> Doctorant
> Cubiq
>
> {T}
>
>
>
> +33 (0) 2 56 35 82 11
>
>
>
> http://signature.b-com.com/logo-bleu.gif <http://www.b-com.com/>
>
>
>
> ZAC DES CHAMPS BLANCS
> BÂT. A · 13 RUE CLAUDE CHAPPE
> 35510 CESSON-SÉVIGNÉ (FRance)
>
>
>
>
>
>
>
>
>
>
>
> ----------------------------------------------------------------------
> -------- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT
> Server from Actuate! Instantly Supercharge Your Business Reports and
> Dashboards with Interactivity, Sharing, Native Excel Exports, App
> Integration & more Get technology previously reserved for
> billion-dollar corporations, FREE
> http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.
> clktrk
>
>
>
> _______________________________________________
> Ryu-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel