val protocol_to_int : protocol -> Cstruct.uint16
val pseudoheader : src:Ipaddr.V4.t -> dst:Ipaddr.V4.t -> proto:protocol -> int -> Cstruct.t
pseudoheader src dst proto len
constructs a pseudoheader, suitable for inclusion in transport-layer checksum calculations, including the information supplied. len
should be the total length of the transport-layer header and payload.
val into_cstruct : payload_len:int -> t -> Cstruct.t -> (unit, error) Stdlib.result
into_cstruct ~payload_len t buf
attempts to write a header representing t
(including t.options
) into buf
at offset 0. If there is insufficient space to represent t
, an error will be returned.
make_cstruct ~payload_len t
allocates, fills, and returns a buffer repesenting the IPV4 header corresponding to t
. If t.options
is non-empty, t.options
will be concatenated onto the result. A variable amount of memory (at least 20 bytes for a zero-length options field) will be allocated. Note: no space is allocated for the payload.