Tcp_packet.Marshal
val into_cstruct :
pseudoheader:Cstruct.t ->
payload:Cstruct.t ->
t ->
Cstruct.t ->
(int, error) Stdlib.result
into_cstruct ~pseudoheader ~payload t buf
attempts to write a valid TCP header representing t
into buf
at offset 0. pseudoheader
and payload
are required to calculate a correct checksum but are not otherwise reflected in the data written into buf
-- buf
will contain only a TCP header after a call to into_cstruct
. Returns either the number of bytes written into the buffer on success; if the buffer supplied is too small to write the entire header, an error is returned.
val make_cstruct :
pseudoheader:Cstruct.t ->
payload:Cstruct.t ->
t ->
Cstruct.t
make_cstruct ~pseudoheader ~payload t
allocates, fills, and and returns a buffer representing the TCP header corresponding to t
. If t.options
is non-empty, t.options
will be concatenated onto the result as part of the header. A variable amount of memory (at least 20 bytes, and at most 60) will be allocated, but is not represented in the output. The checksum will be properly set to reflect the pseudoheader, header, options, and payload.