Module Ipv4_socket

type id = string
type t = Ipaddr.V4.t option
type +'a io = 'a Lwt.t
type error = Mirage_protocols.Ip.error
type ipaddr = Ipaddr.V4.t
type buffer = Cstruct.t
type callback = src:ipaddr -> dst:ipaddr -> buffer -> unit io
val pp_error : Mirage_protocols.Ip.error Fmt.t
val pp_ipaddr : Stdlib.Format.formatter -> Ipaddr.V4.t -> unit
val mtu : 'a -> int
val id : 'a -> unit
val disconnect : 'a -> unit Lwt.t
val connect : 'a -> unit Lwt.t
val input_arpv4 : 'a -> 'b -> 'c Lwt.t
val input : 'a -> tcp:'b -> udp:'c -> default:'d -> 'e -> unit Lwt.t
val allocate_frame : 'a -> dst:'b -> proto:'c -> 'd
val write : 'a -> ?⁠fragment:'b -> ?⁠ttl:'c -> ?⁠src:'d -> 'e -> 'f -> ?⁠size:'g -> 'h -> 'i -> 'j Lwt.t
val get_ip : 'a -> Ipaddr.V4.t list
val set_ip : 'a -> 'b -> 'c Lwt.t
val get_ip_netmasks : 'a -> Ipaddr.V4.t list
val get_ip_gateways : 'a -> 'b
val set_ip_netmask : 'a -> 'b -> 'c Lwt.t
val set_ip_gateways : 'a -> 'b -> 'c Lwt.t
val src : 'a -> dst:'b -> 'c
val pseudoheader : 'a -> ?⁠src:'b -> 'c -> 'd -> 'e -> 'f