Я пытаюсь понять, в чем смысл этой connect
функции:
let connect netif ethif arpv4 ipv4 icmpv4 udpv4 tcpv4 =
let udpv4_listeners = Hashtbl.create 7 in
let tcpv4_listeners = Hashtbl.create 7 in
let t = { netif; ethif; arpv4; ipv4; icmpv4; tcpv4; udpv4;
udpv4_listeners; tcpv4_listeners } in
Log.info (fun f -> f "stack assembled: %a" pp t);
Lwt.async (fun () -> listen t);
Lwt.return t
Мое первое предположение: параметры netif ethif arpv4 ipv4 icmpv4 udpv4 tcpv4
по умолчанию считаются «переменными» то же имя, включенное в область определения функции connect
?
Пожалуйста, посмотрите весь контекст здесь: https://github.com/mirage/mirage-tcpip/blob/master/src/stack-direct/tcpip_stack_direct.ml#L122
Если это не так, значит ли это, что мне нужно всегда передать все эти 7 параметров при вызове connect
? Какой смысл их передавать, если они уже созданы здесь ?