Re: Packet Construction and Protocol Testing...




Aren't there already tools for doing this -- libnet / libdnet that both
have py wrappers?

On Thu, 20 Jul 2006, gnn@xxxxxxxxxxx wrote:

:Hi,
:
:Sorry for the length of this email but I figured I'd get this out
:early in case there was anyone else who wanted to play with this.
:
:I have now gotten out version 0.1 of the Packet Construction Set.
:This is a set of Python libraries which make writing protocol testing
:software much easier. Of course, you have to know Python, but many
:people do, and I favor it strongly over other scripting choices. The
:Summer of Code student I'm working with has also been using this
:library, with favorable results.
:
:The Source Forge page is here:
:
:http://sourceforge.net/projects/pcs
:
:and the shar files submitted to get the ports created are now on:
:
:http://www.freebsd.org/~gnn/pcs.port.shar
:http://www.freebsd.org/~gnn/py-pypcap.shar
:
:The point of all this is to be able to write better protocol level
:tests for our network stack. Examples are in the scripts/ and tests/
:directories of the package but a quick snippet may give a good idea of
:what I'm getting at:
:
: def test_icmpv4_ping(self):
: ip = ipv4()
: ip.version = 4
: ip.hlen = 5
: ip.tos = 0
: ip.length = 84
: ip.id = 1
: ip.flags = 0
: ip.offset = 0
: ip.ttl = 33
: ip.protocol = IPPROTO_ICMP
: ip.src = 2130706433
: ip.dst = 2130706433
:
: icmp = icmpv4()
: icmp.type = 8
: icmp.code = 0
: icmp.cksum = 0
:
: echo = icmpv4echo()
: echo.id = 32767
: echo.seq = 1
:
: lo = localhost()
: lo.type = 2
: packet = Chain([lo, ip, icmp, echo])
:
: input = PcapConnector("lo0")
: input.setfilter("icmp")
:
: output = PcapConnector("lo0")
: assert (ip != None)
:
: out = output.write(packet.bytes, 88)
: assert (out == 88)
:
:This code sends a quick and dirty, ICMPv4 ping packet on localhost.
:The point of all this is to be able to specify packets easly (see
:pcs/packets/xxx.py) and then to treat the packet as an object.
:
:I intend to write up a paper on this stuff as well. There is
:currently a simple manual (PDF and LaTeX) in the package.
:
:Later,
:George
:
:_______________________________________________
:freebsd-net@xxxxxxxxxxx mailing list
:http://lists.freebsd.org/mailman/listinfo/freebsd-net
:To unsubscribe, send any mail to "freebsd-net-unsubscribe@xxxxxxxxxxx"
:
:

--
arr@xxxxxxxxxx
_______________________________________________
freebsd-net@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: Serial COM port communication problems
    ... The serial port receives char packets of different sizes, ... The receiving buffer is read by setting the mask to rx flag being the ... sub-packages arrive in succession and some sub-packages are lost. ... As for now the only way to get the hole package is by reading the ...
    (microsoft.public.win32.programmer.kernel)
  • Re: Command: df
    ... > in which packet should I look??? ... a TCP packet. ... difference between a packet and a package.) ... Summary: The GNU core utilities: a set of tools commonly used in shell scripts ...
    (comp.os.linux.development.system)
  • Re: Problems with CAsyncSocket.
    ... I will get exactly the entire packet. ... laptop and usually always on an different PC I will receive only ... a part of a package. ... and then go back to receiving. ...
    (microsoft.public.vc.mfc)
  • Re: Ice Cream Directions Translation
    ... > Danny Wilde wrote: ... Add the contents of the Mix 1 package to the mixture, stir ... You would just add the packet, ...
    (sci.lang.japan)