From f3aba35a5603e8f009141756c009d8a46eeb7369 Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Wed, 10 Jun 2015 15:31:33 +0100 Subject: [PATCH 1/5] Rename the exception in Tcp.Flow to match the error type in V1.TCP --- tcp/flow.ml | 4 ++-- tcp/flow.mli | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tcp/flow.ml b/tcp/flow.ml index 10ddbe2ce..e67857265 100644 --- a/tcp/flow.ml +++ b/tcp/flow.ml @@ -18,7 +18,7 @@ open Lwt.Infix (* TODO: modify V1.TCP to have a proper return type *) -exception Bad_state of State.tcpstate +exception Refused let debug = Log.create "Flow" @@ -65,7 +65,7 @@ module Make(IP:V1_LWT.IP)(TM:V1_LWT.TIME)(C:V1.CLOCK)(R:V1.RANDOM) = struct | `Ok () as x -> x let err_raise = function - | `Error (`Bad_state s) -> Lwt.fail (Bad_state s) + | `Error (`Bad_state _) -> Lwt.fail Refused | `Ok () -> Lwt.return_unit let id = Pcb.ip diff --git a/tcp/flow.mli b/tcp/flow.mli index 6232d2a68..50656b2ed 100644 --- a/tcp/flow.mli +++ b/tcp/flow.mli @@ -16,7 +16,9 @@ val debug: Log.t -exception Bad_state of State.tcpstate +exception Refused +(** {b NOTE}: to be removed in favor of a proper result type in + V1.write_nodelay and V1.writev_nodelay.*) module Make (IP:V1_LWT.IP)(TM:V1_LWT.TIME)(C:V1.CLOCK)(R:V1.RANDOM) : sig include V1_LWT.TCP From 4cf89e2a8177791a3534c2bf405635b6b3af4f0e Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Wed, 10 Jun 2015 15:32:40 +0100 Subject: [PATCH 2/5] Version bump --- _oasis | 2 +- lib/META | 48 ++++++++++++++++++++++++------------------------ setup.ml | 6 +++--- 3 files changed, 28 insertions(+), 28 deletions(-) diff --git a/_oasis b/_oasis index 923c35390..a11a7dec7 100644 --- a/_oasis +++ b/_oasis @@ -1,6 +1,6 @@ OASISFormat: 0.4 Name: tcpip -Version: 2.4.3 +Version: 2.5.0 Synopsis: Ethernet, TCP/IPv4 and DHCPv4 library Authors: Anil Madhavapeddy, Balraj Singh, Richard Mortier, Nicolas Ojeda Bar, Thomas Gazagnaire diff --git a/lib/META b/lib/META index 149ec904f..f10aaa636 100644 --- a/lib/META +++ b/lib/META @@ -1,6 +1,6 @@ # OASIS_START -# DO NOT EDIT (digest: 8744f03c92c9b635c7a66256a0357ddf) -version = "2.4.3" +# DO NOT EDIT (digest: 4f1a93373e1ba24925bb6be770472878) +version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "io-page mirage-types ipaddr cstruct mirage-profile bytes" archive(byte) = "tcpip.cma" @@ -10,7 +10,7 @@ archive(native, plugin) = "tcpip.cmxs" xen_linkopts = "-ltcpip_xen_stubs" exists_if = "tcpip.cma" package "xen" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" archive(byte) = "tcpip_xen.cma" archive(byte, plugin) = "tcpip_xen.cma" @@ -20,7 +20,7 @@ package "xen" ( ) package "udpv6-unix" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "tcpip.udp tcpip.ipv6-unix lwt lwt.unix ipaddr.unix cstruct.lwt io-page.unix" @@ -32,7 +32,7 @@ package "udpv6-unix" ( ) package "udpv6-socket" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "tcpip.udp lwt lwt.unix ipaddr.unix cstruct.lwt io-page.unix" archive(byte) = "udpv6-socket.cma" @@ -43,7 +43,7 @@ package "udpv6-socket" ( ) package "udpv4-unix" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "tcpip.udp tcpip.ipv4-unix lwt lwt.unix ipaddr.unix cstruct.lwt io-page.unix" @@ -55,7 +55,7 @@ package "udpv4-unix" ( ) package "udpv4-socket" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "tcpip.udp lwt lwt.unix ipaddr.unix cstruct.lwt io-page.unix" archive(byte) = "udpv4-socket.cma" @@ -66,7 +66,7 @@ package "udpv4-socket" ( ) package "udp" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "io-page mirage-types ipaddr cstruct lwt tcpip" archive(byte) = "udp.cma" @@ -77,7 +77,7 @@ package "udp" ( ) package "tcpv6-unix" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "tcpip.tcp tcpip.ipv6-unix tcpip.channel lwt lwt.unix mirage-unix mirage-clock-unix ipaddr.unix cstruct.lwt io-page.unix" @@ -89,7 +89,7 @@ package "tcpv6-unix" ( ) package "tcpv6-socket" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "lwt lwt.unix ipaddr.unix cstruct.lwt io-page.unix" archive(byte) = "tcpv6-socket.cma" @@ -100,7 +100,7 @@ package "tcpv6-socket" ( ) package "tcpv4-unix" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "tcpip.tcp tcpip.ipv4-unix tcpip.channel lwt lwt.unix mirage-unix mirage-clock-unix ipaddr.unix cstruct.lwt io-page.unix" @@ -112,7 +112,7 @@ package "tcpv4-unix" ( ) package "tcpv4-socket" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "lwt lwt.unix ipaddr.unix cstruct.lwt io-page.unix" archive(byte) = "tcpv4-socket.cma" @@ -123,7 +123,7 @@ package "tcpv4-socket" ( ) package "tcp" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "io-page mirage-types ipaddr cstruct lwt tcpip tcpip.ipv4 tcpip.ipv6" @@ -135,7 +135,7 @@ package "tcp" ( ) package "stack-unix" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "tcpip.udpv4-unix tcpip.tcpv4-unix tcpip.udpv6-unix tcpip.tcpv6-unix tcpip.stack-direct lwt lwt.unix ipaddr.unix mirage-unix mirage-clock-unix mirage-console.unix mirage-types.lwt io-page.unix" @@ -147,7 +147,7 @@ package "stack-unix" ( ) package "stack-socket" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "tcpip.udpv4-socket tcpip.udpv6-socket tcpip.tcpv4-socket tcpip.tcpv6-socket lwt lwt.unix ipaddr.unix io-page.unix" @@ -159,7 +159,7 @@ package "stack-socket" ( ) package "stack-direct" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "io-page mirage-types ipaddr cstruct lwt tcpip.ethif tcpip.udp tcpip.tcp tcpip.dhcpv4" @@ -171,7 +171,7 @@ package "stack-direct" ( ) package "ipv6-unix" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "tcpip.ethif-unix tcpip.ipv6 lwt lwt.unix" archive(byte) = "ipv6-unix.cma" @@ -182,7 +182,7 @@ package "ipv6-unix" ( ) package "ipv6" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "io-page mirage-types ipaddr cstruct lwt tcpip" archive(byte) = "ipv6.cma" @@ -193,7 +193,7 @@ package "ipv6" ( ) package "ipv4-unix" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "tcpip.ethif-unix tcpip.ipv4 lwt lwt.unix" archive(byte) = "ipv4-unix.cma" @@ -204,7 +204,7 @@ package "ipv4-unix" ( ) package "ipv4" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "io-page mirage-types ipaddr cstruct lwt tcpip" archive(byte) = "ipv4.cma" @@ -215,7 +215,7 @@ package "ipv4" ( ) package "ethif-unix" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "tcpip.ethif mirage-net-unix lwt lwt.unix" archive(byte) = "ethif-unix.cma" @@ -226,7 +226,7 @@ package "ethif-unix" ( ) package "ethif" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "tcpip io-page mirage-types ipaddr cstruct lwt" archive(byte) = "ethif.cma" @@ -237,7 +237,7 @@ package "ethif" ( ) package "dhcpv4" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "io-page bytes mirage-types ipaddr cstruct lwt tcpip.udp" archive(byte) = "dhcpv4.cma" @@ -248,7 +248,7 @@ package "dhcpv4" ( ) package "channel" ( - version = "2.4.3" + version = "2.5.0" description = "Ethernet, TCP/IPv4 and DHCPv4 library" requires = "io-page mirage-types ipaddr cstruct lwt" archive(byte) = "channel.cma" diff --git a/setup.ml b/setup.ml index 345d0e32d..a8014f7bd 100644 --- a/setup.ml +++ b/setup.ml @@ -1,7 +1,7 @@ (* setup.ml generated for the first time by OASIS v0.4.5 *) (* OASIS_START *) -(* DO NOT EDIT (digest: 38cb04279f0430b7792c79e11b16913d) *) +(* DO NOT EDIT (digest: c22b6c554e5652dbbbdb5a8726f537c0) *) (* Regenerated by OASIS v0.4.5 Visit http://oasis.forge.ocamlcore.org for more information and @@ -6851,7 +6851,7 @@ let setup_t = alpha_features = []; beta_features = []; name = "tcpip"; - version = "2.4.3"; + version = "2.5.0"; license = OASISLicense.DEP5License (OASISLicense.DEP5Unit @@ -7906,7 +7906,7 @@ let setup_t = }; oasis_fn = Some "_oasis"; oasis_version = "0.4.5"; - oasis_digest = Some "\016§\017lÕ\015\019ËS\146Èòdãìß"; + oasis_digest = Some "k\136ÌÞêÇ\127\140}Ô_\029½\012\017$"; oasis_exec = None; oasis_setup_args = []; setup_update = false From f9f491cbb597856472f210dc785a91d4a2fb5529 Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Wed, 10 Jun 2015 15:53:44 +0100 Subject: [PATCH 3/5] Update CHANGES --- CHANGES | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGES b/CHANGES index a26c3faad..093f58c68 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,15 @@ +2.5.0 (2015-06-10) +* The test runs now produce `.pcap` files (#141, by @MagnusS) +* Strip trailing bytes from network packets (#145, by @talex5) +* Add tests for uniform packet loss (#147, by @MagnusS) +* fixed bug where in case of out of order packets the ack and window were set + incorrectly (#140, #146) +* Properly handle RST packets (#107, #148) +* Add a `Log` module to control at runtime the debug statements which are + displayed (#142) +* Writing in a PCB which does not have the right state now returns an error + instead of blocking (#150) + 2.4.3 (2015-05-05) * Fix infinite loop in `Channel.read_line` when the line does not contain a CRLF sequence (#131) From ca33ad1af002dee9dc7548f32e9a8983cea42eb6 Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Wed, 10 Jun 2015 17:27:46 +0100 Subject: [PATCH 4/5] Remove extra space --- tcp/pcb.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tcp/pcb.ml b/tcp/pcb.ml index e2d366e44..ff55c8f60 100644 --- a/tcp/pcb.ml +++ b/tcp/pcb.ml @@ -89,7 +89,7 @@ struct } let pp_stats fmt t = - Log.pf fmt "[channels=%d listens=%d connects=%d]" + Log.pf fmt "[channels=%d listens=%d connects=%d]" (Hashtbl.length t.channels) (Hashtbl.length t.listens) (Hashtbl.length t.connects) From 559fd19486c43497e9ca08c235e118f0383d8320 Mon Sep 17 00:00:00 2001 From: Thomas Gazagnaire Date: Wed, 10 Jun 2015 17:37:56 +0100 Subject: [PATCH 5/5] Add license information in the README fix #62 --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 1aa55c771..317e3504d 100644 --- a/README.md +++ b/README.md @@ -4,3 +4,7 @@ system that supports IPv4, IPv6, ARPv4, DHCPv4 and TCP/IP. * WWW: * E-mail: * Issues: + +### License + +`mirage-tcpip` is distributed under the ISC license.