module Network.QUIC.Types.Constants where

import Network.QUIC.Types.Time

maximumUdpPayloadSize :: Int
maximumUdpPayloadSize :: Int
maximumUdpPayloadSize = Int
2048 -- no global locking when allocating ByteString

----------------------------------------------------------------

defaultQUICPacketSize :: Int
defaultQUICPacketSize :: Int
defaultQUICPacketSize = Int
1200

-- Google paper: UDP payload size = 1350
--    http://www.audentia-gestion.fr/Recherche-Research-Google/46403.pdf

defaultQUICPacketSizeForIPv4 :: Int
defaultQUICPacketSizeForIPv4 :: Int
defaultQUICPacketSizeForIPv4 = Int
1350

defaultQUICPacketSizeForIPv6 :: Int
defaultQUICPacketSizeForIPv6 :: Int
defaultQUICPacketSizeForIPv6 = Int
1330

----------------------------------------------------------------

-- Not from spec. retry token is 128 sometime.
maximumQUICHeaderSize :: Int
maximumQUICHeaderSize :: Int
maximumQUICHeaderSize = Int
256

----------------------------------------------------------------

idleTimeout :: Microseconds
idleTimeout :: Microseconds
idleTimeout = Int -> Microseconds
Microseconds Int
30000000