blob: 70423cd15710eeac6b087c64ee7308b014135b1d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# Local IPCP configuration options for Ouroboros
set(IPCP_LOCAL_TARGET ipcpd-local)
set(IPCP_LOCAL_MPL 50 CACHE STRING
"Default maximum packet lifetime for the Local IPCP, in ms")
set(IPCP_LOCAL_MTU 65000 CACHE STRING
"Layer MTU advertised by the Local IPCP, in bytes")
set(IPCP_LOCAL_POLLING FALSE CACHE BOOL
"Enable active polling in the Local IPCP for low-latency mode")
# IPCP_LOCAL_MTU must fit in the largest enabled GSPP and PUP class
# (sender-side allocation: daemons use GSPP, apps use PUP). Reserve a
# margin for sizeof(struct ssm_pk_buff) + HEADSPACE + TAILSPACE.
math(EXPR _ssm_pk_overhead
"${SSM_PK_BUFF_HEADSPACE} + ${SSM_PK_BUFF_TAILSPACE} + 64")
foreach(_pool GSPP PUP)
set(_largest 0)
foreach(_pair "256;256" "512;512" "1K;1024" "2K;2048" "4K;4096"
"16K;16384" "64K;65536" "256K;262144" "1M;1048576")
list(GET _pair 0 _name)
list(GET _pair 1 _bytes)
if(SSM_${_pool}_${_name}_BLOCKS GREATER 0
AND _bytes GREATER _largest)
set(_largest ${_bytes})
endif()
endforeach()
math(EXPR _avail "${_largest} - ${_ssm_pk_overhead}")
if(IPCP_LOCAL_MTU GREATER _avail)
message(FATAL_ERROR
"IPCP_LOCAL_MTU (${IPCP_LOCAL_MTU}) exceeds largest enabled "
"SSM_${_pool} class minus per-block overhead "
"(${_largest} - ${_ssm_pk_overhead} = ${_avail} bytes). "
"Lower IPCP_LOCAL_MTU or enable a larger SSM_${_pool}_*_BLOCKS.")
endif()
endforeach()
|