Dhcp_ipv4.MakeSourceMake(N)(E)(A) instantiates a device that exposes a Mirage_net.S interface as well as a Tcpip.Ip.S interface with ipv4. On connection it either requests a DHCP lease or sets up a static IPv4 address. The exposed Mirage_net.S interface is N but with incoming dhcp messages filtered out. It is expected that E and A are instantiated with N.
See the module's connect value for more details.
module Network : Mirage_net.Smodule Ethernet : Ethernet.Sinclude Smodule Ipv4 :
Tcpip.Ip.S
with type ipaddr = Ipaddr.V4.t
and type prefix = Ipaddr.V4.Prefix.tval connect :
?no_init:bool ->
?cidr:Ipaddr.V4.Prefix.t ->
?gateway:Ipaddr.V4.t ->
?options:Dhcp_wire.dhcp_option list ->
?requests:Dhcp_wire.option_code list ->
Network.t ->
Ethernet.t ->
Arp.t ->
t Lwt.tConnect to an ipv4 device using information from a DHCP lease. If cidr is provided, no DHCP requests will be done, but instead a static IPv4 (Tcpip.Ip.S) stack will be used. If no_init is provided and true, nothing will be initialized (for dual IPv4 and IPv6 stack where only the IPv6 part should be used).