[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MirageOS-devel] Concerning testing network protocols



On 27 March 2015 at 17:17, Anil Madhavapeddy <anil@xxxxxxxxxx> wrote:
>> 1. Split all wire format de/serialization code out of each protocol
>> into a distinct library. Link against this library in both
>> `pcap-format` and `ocaml-<protocol>`. Unit test the protocol
>> implementation separately (perhaps via property-based testing which
>> might not require a separate implementation, perhaps relying on
>> completely distinct implementations like `libpcap`).
>
> This one sounds best to me.

Good -- it's probably my preferred one too. Guess it would mean
creating `x` and `x-format` (and perhaps `x-unix` to capture the
values that convert files to streams of captured packets) for x =
pcap, tcpip, dns, etc etc; and then a separate `trace-analysis`
library or something...

> Although, it sounds like there's a
> certain amount of feature creep going into pcap-format.
>
> Why not just parse the raw pcap format in pcap-format, and have a new
> pcap-format-analysis library that depends on both pcap-format and ocaml-dns?

Not sure what you mean. What was the intended feature set of `pcap-format`?

The first version of `pcap-format` parsed the PCAP container format,
Ethernet, IP, TCP from Unix files iirc.

I hacked about to add some more, but then stopped doing that and
started trying to use existing implementations, starting with
`ocaml-dns` as that seemed easier than trying to use `tcipip` to cover
TCP and IP (and Ethernet?), and I wanted a `libpcap` lookalike for
Mirage.

Are you suggesting

4. Strip `pcap-format` back to just the PCAP container parsing code,
and create `pcap-format-analysis` as a separate library?

In which case the same problem will arise as I believe the current
unit test code in `ocaml-dns` will end up relying on
`pcap-format-analysis` as currently posed. (Presumably the point being
to use an independent implementation of the wire format parsers to
unit test the `ocaml-dns` implementations.)

-- 
Richard Mortier
richard.mortier@xxxxxxxxxxxx

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.