Safe Haskell | None |
---|---|
Language | Haskell2010 |
- routeTcp :: Network addr => NetworkStack -> Device -> addr -> addr -> TcpHeader -> ByteString -> IO Bool
- sendTcp :: Network addr => NetworkStack -> RouteInfo addr -> addr -> TcpHeader -> ByteString -> IO Bool
- sendWithTcb :: NetworkStack -> Tcb -> TcpHeader -> ByteString -> IO (Maybe Int64)
- sendAck :: NetworkStack -> Tcb -> IO ()
- sendFin :: NetworkStack -> Tcb -> IO ()
- sendData :: NetworkStack -> Tcb -> ByteString -> IO Int64
- canSend :: Tcb -> IO Bool
- queueTcp :: NetworkStack -> RouteInfo Addr -> Addr -> TcpHeader -> ByteString -> IO Bool
- queueWithTcb :: NetworkStack -> Tcb -> TcpHeader -> ByteString -> IO Bool
- queueAck :: NetworkStack -> Tcb -> IO Bool
- responder :: NetworkStack -> IO ()
Output
routeTcp :: Network addr => NetworkStack -> Device -> addr -> addr -> TcpHeader -> ByteString -> IO Bool Source #
Send outgoing tcp segments, with a route calculation.
See note "No Retransmit Queue" (Hans.Tcp.Output).
sendTcp :: Network addr => NetworkStack -> RouteInfo addr -> addr -> TcpHeader -> ByteString -> IO Bool Source #
Lowest-level output function for TCP.
See note "No Retransmit Queue" (Hans.Tcp.Output).
With a TCB
sendWithTcb :: NetworkStack -> Tcb -> TcpHeader -> ByteString -> IO (Maybe Int64) Source #
Send a segment and queue it in the remote window. The number of bytes that were sent is returned.
sendData :: NetworkStack -> Tcb -> ByteString -> IO Int64 Source #
Send a data segment, potentially sending multiple packets if the send window allows, and the payload is larger than MSS. When the remote window is full, this returns 0.
canSend :: Tcb -> IO Bool Source #
Determine if there is any room in the remote window for us to send data.
From the fast-path
queueTcp :: NetworkStack -> RouteInfo Addr -> Addr -> TcpHeader -> ByteString -> IO Bool Source #
Queue an outgoing TCP segment from the fast-path.
See note "No Retransmit Queue" (Hans.Tcp.Output).
queueWithTcb :: NetworkStack -> Tcb -> TcpHeader -> ByteString -> IO Bool Source #
Queue an outgoing TCP segment from the fast-path.
responder :: NetworkStack -> IO () Source #
Responder thread for messages generated in the fast-path.