Skip to main content

Module constants

Module constants 

Source

Constants§

AES128_BLOCKSIZE
AES-128 block size in bytes
ANNOUNCES_CHECK_INTERVAL
Announce check interval (seconds)
ANNOUNCE_CAP
Default announce bandwidth cap (2% of interface bandwidth)
AP_PATH_TIME
Access Point path expiry = 1 day
CHANNEL_ENVELOPE_OVERHEAD
Channel envelope overhead: msgtype(2) + seq(2) + len(2)
CHANNEL_FAST_RATE_THRESHOLD
Number of consecutive fast rounds to upgrade window
CHANNEL_MAX_TRIES
Maximum number of send tries per envelope
CHANNEL_RTT_FAST
RTT threshold for fast links
CHANNEL_RTT_MEDIUM
RTT threshold for medium links
CHANNEL_RTT_SLOW
RTT threshold for slow links
CHANNEL_SEQ_MAX
Maximum sequence number
CHANNEL_SEQ_MODULUS
Sequence number modulus
CHANNEL_WINDOW
Initial window size at channel setup
CHANNEL_WINDOW_FLEXIBILITY
Minimum flexibility between window_max and window_min
CHANNEL_WINDOW_MAX_FAST
Maximum window size for fast links
CHANNEL_WINDOW_MAX_MEDIUM
Maximum window size for medium-speed links
CHANNEL_WINDOW_MAX_SLOW
Maximum window size for slow links
CHANNEL_WINDOW_MIN
Absolute minimum window size
CHANNEL_WINDOW_MIN_LIMIT_FAST
Minimum window limit for fast links
CHANNEL_WINDOW_MIN_LIMIT_MEDIUM
Minimum window limit for medium-speed links
CHANNEL_WINDOW_MIN_LIMIT_SLOW
Minimum window limit for slow links
CONTEXT_CACHE_REQUEST
CONTEXT_CHANNEL
CONTEXT_COMMAND
CONTEXT_COMMAND_STATUS
CONTEXT_KEEPALIVE
CONTEXT_LINKCLOSE
CONTEXT_LINKIDENTIFY
CONTEXT_LINKPROOF
CONTEXT_LRPROOF
CONTEXT_LRRTT
CONTEXT_NONE
Packet context types
CONTEXT_PATH_RESPONSE
CONTEXT_REQUEST
CONTEXT_RESOURCE
CONTEXT_RESOURCE_ADV
CONTEXT_RESOURCE_HMU
CONTEXT_RESOURCE_ICL
CONTEXT_RESOURCE_PRF
CONTEXT_RESOURCE_RCL
CONTEXT_RESOURCE_REQ
CONTEXT_RESPONSE
DERIVED_KEY_LENGTH
Derived key length in bytes
DESTINATION_GROUP
DESTINATION_IN
Destination directions
DESTINATION_LINK
DESTINATION_OUT
DESTINATION_PLAIN
DESTINATION_SINGLE
Destination types
DESTINATION_TIMEOUT
Destination table entry timeout (7 days)
ENCRYPTED_MDU
Encrypted MDU: floor((MDU - TOKEN_OVERHEAD - KEYSIZE/16) / AES128_BLOCKSIZE) * AES128_BLOCKSIZE - 1
EXPL_LENGTH
Explicit proof length: HASHLENGTH/8 + SIGLENGTH/8 = 32 + 64 = 96
FLAG_SET
Context flag values
FLAG_UNSET
HASHLENGTH
Full hash length in bits (SHA-256)
HASHLIST_MAXSIZE
Maximum packet hashlist size before rotation
HEADER_1
Header types
HEADER_2
HEADER_MAXSIZE
Maximum header size: 2 (flags + hops) + 1 (context) + 32 (transport_id + dest hash)
HEADER_MINSIZE
Minimum header size: 2 (flags + hops) + 1 (context) + 16 (dest hash)
IFAC_MIN_SIZE
Minimum IFAC size
IMPL_LENGTH
Implicit proof length: SIGLENGTH/8 = 64
KEYSIZE
Full key size in bits (256 X25519 + 256 Ed25519)
LINKS_CHECK_INTERVAL
Link check interval (seconds)
LINK_ECPUBSIZE
Link ephemeral public key size: 32 (X25519) + 32 (Ed25519)
LINK_ESTABLISHMENT_TIMEOUT_PER_HOP
Link establishment timeout per hop (seconds)
LINK_KEEPALIVE_MAX
Maximum keepalive interval in seconds
LINK_KEEPALIVE_MAX_RTT
Maximum RTT used for keepalive scaling
LINK_KEEPALIVE_MIN
Minimum keepalive interval in seconds
LINK_KEEPALIVE_TIMEOUT_FACTOR
RTT timeout factor for stale→close transition
LINK_KEYSIZE
Link key size in bytes
LINK_MDU
Link MDU: floor((MTU - IFAC_MIN_SIZE - HEADER_MINSIZE - TOKEN_OVERHEAD) / AES128_BLOCKSIZE) * AES128_BLOCKSIZE - 1
LINK_MODE_BYTEMASK
Link mode bytemask (3-bit mode field in upper byte)
LINK_MTU_BYTEMASK
Link MTU bytemask (21-bit MTU field)
LINK_MTU_SIZE
Link MTU signalling bytes size
LINK_STALE_FACTOR
Factor to compute stale_time from keepalive
LINK_STALE_GRACE
Grace period for stale→close transition
LINK_STALE_TIME
Link stale time = 2 * KEEPALIVE(360) = 720 seconds
LINK_TIMEOUT
Link timeout = STALE_TIME * 1.25 = 900 seconds
LINK_TRAFFIC_TIMEOUT_FACTOR
Traffic timeout factor
LOCAL_REBROADCASTS_MAX
How many local rebroadcasts of an announce is allowed
MAX_PR_TAGS
Maximum amount of unique path request tags to remember
MAX_QUEUED_ANNOUNCES
Maximum queued announces per interface
MAX_RANDOM_BLOBS
Maximum number of random blobs per destination to keep in memory
MAX_RATE_TIMESTAMPS
Maximum number of announce timestamps to keep per destination
MDU
Maximum data unit: MTU - HEADER_MAXSIZE - IFAC_MIN_SIZE
MODE_ACCESS_POINT
MODE_BOUNDARY
MODE_FULL
MODE_GATEWAY
MODE_POINT_TO_POINT
MODE_ROAMING
MTU
Maximum transmission unit in bytes
NAME_HASH_LENGTH
Name hash length in bits
PACKET_TYPE_ANNOUNCE
PACKET_TYPE_DATA
Packet types
PACKET_TYPE_LINKREQUEST
PACKET_TYPE_PROOF
PATHFINDER_E
Path expiry = 7 days (seconds)
PATHFINDER_G
Grace period between retries (seconds)
PATHFINDER_M
Maximum hops
PATHFINDER_R
Retransmit retries (total sends = PATHFINDER_R + 1)
PATHFINDER_RW
Random window for announce rebroadcast (seconds)
PATH_REQUEST_GRACE
Grace time before a path announcement is made (seconds)
PATH_REQUEST_MI
Minimum interval for automated path requests (seconds)
PATH_REQUEST_RG
Extra grace time for roaming-mode interfaces (seconds)
PATH_REQUEST_TIMEOUT
Default timeout for path requests (seconds)
PLAIN_MDU
Plain MDU (same as MDU)
QUEUED_ANNOUNCE_LIFE
Queued announce lifetime (24 hours)
RATCHETSIZE
Ratchet key size in bits
RECEIPT_CULLED
RECEIPT_DELIVERED
RECEIPT_FAILED
Receipt status constants
RECEIPT_SENT
RESOURCE_ADVERTISEMENT_OVERHEAD
Advertisement overhead in bytes (fixed msgpack overhead)
RESOURCE_AUTO_COMPRESS_MAX_SIZE
Maximum auto-compress size (64 MB)
RESOURCE_COLLISION_GUARD_SIZE
Collision guard size = 2 * WINDOW_MAX + HASHMAP_MAX_LEN
RESOURCE_FAST_RATE_THRESHOLD
Sustained fast-rate rounds before enabling fast window = WINDOW_MAX_SLOW - WINDOW - 2 = 10 - 4 - 2 = 4
RESOURCE_HASHMAP_IS_EXHAUSTED
Hashmap exhausted flag
RESOURCE_HASHMAP_IS_NOT_EXHAUSTED
Hashmap not exhausted flag
RESOURCE_HASHMAP_MAX_LEN
Maximum hashmap entries per advertisement segment = floor((LINK_MDU - ADVERTISEMENT_OVERHEAD) / MAPHASH_LEN)
RESOURCE_MAPHASH_LEN
Number of bytes in a map hash
RESOURCE_MAX_ADV_RETRIES
Maximum retries for advertisement
RESOURCE_MAX_EFFICIENT_SIZE
Maximum efficient resource size (1 MB - 1)
RESOURCE_MAX_RETRIES
Maximum retries for part transfers
RESOURCE_METADATA_MAX_SIZE
Maximum metadata size (16 MB - 1)
RESOURCE_PART_TIMEOUT_FACTOR
Part timeout factor (before RTT measured)
RESOURCE_PART_TIMEOUT_FACTOR_AFTER_RTT
Part timeout factor (after first RTT measured)
RESOURCE_PER_RETRY_DELAY
Per-retry delay (seconds)
RESOURCE_PROCESSING_GRACE
Processing grace for advertisement response (seconds)
RESOURCE_PROOF_TIMEOUT_FACTOR
Proof timeout factor (reduced when awaiting proof)
RESOURCE_RANDOM_HASH_SIZE
Random hash size prepended to resource data
RESOURCE_RATE_FAST
Fast rate threshold: 50 Kbps in bytes/sec = 50000 / 8 = 6250.0
RESOURCE_RATE_VERY_SLOW
Very slow rate threshold: 2 Kbps in bytes/sec = 2000 / 8 = 250.0
RESOURCE_RESPONSE_MAX_GRACE_TIME
Response max grace time (seconds)
RESOURCE_RETRY_GRACE_TIME
Retry grace time (seconds)
RESOURCE_SDU
Resource SDU = Packet.MDU (NOT ENCRYPTED_MDU)
RESOURCE_SENDER_GRACE_TIME
Sender grace time (seconds)
RESOURCE_VERY_SLOW_RATE_THRESHOLD
Sustained very-slow-rate rounds before capping to very slow
RESOURCE_WATCHDOG_MAX_SLEEP
Maximum watchdog sleep interval (seconds)
RESOURCE_WINDOW
Initial window size at beginning of transfer
RESOURCE_WINDOW_FLEXIBILITY
Minimum flexibility between window_max and window_min
RESOURCE_WINDOW_MAX
Global maximum window (for calculations)
RESOURCE_WINDOW_MAX_FAST
Maximum window size for fast links
RESOURCE_WINDOW_MAX_SLOW
Maximum window size for slow links
RESOURCE_WINDOW_MAX_VERY_SLOW
Maximum window size for very slow links
RESOURCE_WINDOW_MIN
Absolute minimum window size during transfer
REVERSE_TIMEOUT
Reverse table entry timeout (8 minutes)
ROAMING_PATH_TIME
Roaming path expiry = 6 hours
SIGLENGTH
Signature length in bits (Ed25519)
STATE_RESPONSIVE
STATE_UNKNOWN
STATE_UNRESPONSIVE
STREAM_DATA_MSGTYPE
System message type for stream data
STREAM_DATA_OVERHEAD
Stream data overhead: 2 (stream header) + 6 (channel envelope)
STREAM_ID_MAX
Maximum stream ID (14 bits)
TABLES_CULL_INTERVAL
Table culling interval (seconds)
TOKEN_OVERHEAD
Token overhead in bytes (16 IV + 32 HMAC)
TRANSPORT_BROADCAST
Transport types
TRANSPORT_RELAY
TRANSPORT_TRANSPORT
TRANSPORT_TUNNEL
TRUNCATED_HASHLENGTH
Truncated hash length in bits