mirage/mirage-tcpip

split this repository further

hannesm opened this issue · 1 comments

Hello,

I was curious, now that ARP and Ethernet are in separate repositories, whether it'd be ok to further split this repository. Benefits are mainly to discover inter-sublibrary dependencies, and easing replacement of single libraries. NB: when splitting away Ethernet I used git filter-branch --tree-filter sh -c "find . ! -name eth\*.ml\* -delete" --prune-empty HEAD to retain the most history, I'm not sure whether this scales well for the remaining pieces (there are quite some files involved, and I don't know whether their names changed a lot).

Now, more concretely:

  • IPv4 could live in its own repository
  • IPv6 same
  • stack-direct and stack-unix could as well be in specific repositories (even could be variants / implementations of mirage-stack)
  • UDP as well
  • TCP as well

In case you agree with spliiting this repository up, remaining questions would be:

  • what to do with tcpip-checksum? (I'm very unsure about its history, but did anyone benchmark the C implementation against a pure OCaml one, i.e. is it worth to have the C code around (and "cross"-compile it)?)
  • icmp - my current intuition for proper icmp handling is that udp and tcp both need apart from input for proper data an error_input which carries an error and a partial frame
  • tests - should go into the respective repositories

any opinions? (and any hints whether there is a git extract a subtree with everything that nowadays became yyy command)? I'm also not sure whether we loose any optimisations by moving from one ocamlfind library with multiple sublibraries to multiple ocamlfind libraries.

closing as there was no discussion after 1.5 years.