Skip to content

Commit f03cd0d

Browse files
hannesmreynirsmorimoto
authored
update unikernel to recent mirage (#522)
* update unikernel to recent mirage * Add `opam-pin: false` to GH action unikernel build Co-authored-by: Sora Morimoto <[email protected]> --------- Co-authored-by: Reynir Björnsson <[email protected]> Co-authored-by: Sora Morimoto <[email protected]>
1 parent 82bad3a commit f03cd0d

File tree

3 files changed

+21
-21
lines changed

3 files changed

+21
-21
lines changed

.github/workflows/main.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ jobs:
6161
uses: ocaml/setup-ocaml@v3
6262
with:
6363
ocaml-compiler: 4
64+
opam-pin: false
6465

6566
- run: opam install mirage
6667
- run: opam exec -- mirage configure -t ${{ matrix.mode }}

examples/unikernel/config.ml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1+
(* mirage >= 4.6.0 & < 4.7.0 *)
2+
13
open Mirage
24

35
let main =
46
let packages = [ package ~min:"2.9.0" "ipaddr" ] in
5-
foreign ~packages "Services.Main" (stackv4 @-> job)
7+
main ~packages "Services.Main" (stackv4v6 @-> job)
68

7-
let stack = generic_stackv4 default_network
9+
let stack = generic_stackv4v6 default_network
810

9-
let () =
10-
register "services" [
11-
main $ stack
12-
]
11+
let () = register "services" [ main $ stack ]

examples/unikernel/services.ml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
open Lwt.Infix
22

3-
module Main (S: Mirage_stack.V4) = struct
3+
module Main (S: Tcpip.Stack.V4V6) = struct
44
let report_and_close flow pp e message =
5-
let ip, port = S.TCPV4.dst flow in
5+
let ip, port = S.TCP.dst flow in
66
Logs.warn
77
(fun m -> m "closing connection from %a:%d due to error %a while %s"
8-
Ipaddr.V4.pp ip port pp e message);
9-
S.TCPV4.close flow
8+
Ipaddr.pp ip port pp e message);
9+
S.TCP.close flow
1010

1111
let rec chargen flow how_many start_at =
1212
let charpool =
@@ -17,38 +17,38 @@ module Main (S: Mirage_stack.V4) = struct
1717
Cstruct.of_string output
1818
in
1919

20-
S.TCPV4.write flow (make_chars how_many start_at) >>= function
20+
S.TCP.write flow (make_chars how_many start_at) >>= function
2121
| Ok () ->
2222
chargen flow how_many ((start_at + 1) mod (String.length charpool))
23-
| Error e -> report_and_close flow S.TCPV4.pp_write_error e "writing in Chargen"
23+
| Error e -> report_and_close flow S.TCP.pp_write_error e "writing in Chargen"
2424

2525
let rec discard flow =
26-
S.TCPV4.read flow >>= fun result -> (
26+
S.TCP.read flow >>= fun result -> (
2727
match result with
28-
| Error e -> report_and_close flow S.TCPV4.pp_error e "reading in Discard"
28+
| Error e -> report_and_close flow S.TCP.pp_error e "reading in Discard"
2929
| Ok `Eof -> report_and_close flow Fmt.string "end of file" "reading in Discard"
3030
| Ok (`Data _) -> discard flow
3131
)
3232

3333

3434
let rec echo flow =
35-
S.TCPV4.read flow >>= function
36-
| Error e -> report_and_close flow S.TCPV4.pp_error e "reading in Echo"
35+
S.TCP.read flow >>= function
36+
| Error e -> report_and_close flow S.TCP.pp_error e "reading in Echo"
3737
| Ok `Eof -> report_and_close flow Fmt.string "end of file" "reading in Echo"
3838
| Ok (`Data buf) ->
39-
S.TCPV4.write flow buf >>= function
39+
S.TCP.write flow buf >>= function
4040
| Ok () -> echo flow
41-
| Error e -> report_and_close flow S.TCPV4.pp_write_error e "writing in Echo"
41+
| Error e -> report_and_close flow S.TCP.pp_write_error e "writing in Echo"
4242

4343
let start s =
4444
(* RFC 862 - read payloads and repeat them back *)
45-
S.TCPV4.listen (S.tcpv4 s) ~port:7 echo;
45+
S.TCP.listen (S.tcp s) ~port:7 echo;
4646

4747
(* RFC 863 - discard all incoming data and never write a payload *)
48-
S.TCPV4.listen (S.tcpv4 s) ~port:9 discard;
48+
S.TCP.listen (S.tcp s) ~port:9 discard;
4949

5050
(* RFC 864 - write data without regard for input *)
51-
S.TCPV4.listen (S.tcpv4 s) ~port:19 (fun flow -> chargen flow 75 0);
51+
S.TCP.listen (S.tcp s) ~port:19 (fun flow -> chargen flow 75 0);
5252

5353
S.listen s
5454

0 commit comments

Comments
 (0)