Ipv4_packet.Marshal
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.
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.
val make_cstruct : payload_len:int -> t -> Cstruct.t
make_cstruct ~payload_len t
allocates, fills, and returns a buffer representing 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.