1if(NOT ALLOCATION_PARAMETER)
2  execute_process(COMMAND bash "-c" "git rev-parse --verify HEAD|cut -c1-1"
3                  OUTPUT_VARIABLE ALLOCATION_PARAMETER)
4  math(EXPR ALLOCATION_PARAMETER "0x${ALLOCATION_PARAMETER}")
5endif()
6
7if(NOT TEST_SUBNET_SIZE)
8  set(TEST_SUBNET_SIZE 4)
9endif()
10
11# NX_MAX_PORT is 0xffff.
12math(EXPR PORT_NUMBER "65535 - (${ALLOCATION_PARAMETER} + 1) * 256")
13set(INTERFACE_NUMBER ${PORT_NUMBER})
14math(EXPR TMP "256 - ${TEST_SUBNET_SIZE}")
15set(TEST_NETMASK 255.255.255.${TMP})
16
17set(IP_BYTE_0 10)
18set(IP_BYTE_1 10)
19set(IP_BYTE_2 ${ALLOCATION_PARAMETER})
20set(IP_BYTE_3 1)
21set(IP_BYTE_4 2)
22
23macro(network_config target)
24  target_compile_definitions(
25    ${target}
26    PRIVATE
27    -DINTEROPERABILITY_TEST_ENABLE_PARALLEL_PROCESSING
28    -DTLS_TEST_IP_BYTE_0=${IP_BYTE_0}
29    -DTLS_TEST_IP_BYTE_1=${IP_BYTE_1}
30    -DTLS_TEST_IP_BYTE_2=${IP_BYTE_2}
31    -DTLS_TEST_IP_BYTE_3=${IP_BYTE_3}
32    -DREMOTE_IP_BYTE_0=${IP_BYTE_0}
33    -DREMOTE_IP_BYTE_1=${IP_BYTE_1}
34    -DREMOTE_IP_BYTE_2=${IP_BYTE_2}
35    -DREMOTE_IP_BYTE_3=${IP_BYTE_4}
36    -DDEVICE_SERVER_PORT=${PORT_NUMBER}
37    -DNX_PCAP_SOURCE_NAME=\"veth${INTERFACE_NUMBER}\")
38  set(${target}_interface veth${INTERFACE_NUMBER})
39  set(${target}_ip ${IP_BYTE_0}.${IP_BYTE_1}.${IP_BYTE_2}.${IP_BYTE_3})
40  math(EXPR INTERFACE_NUMBER "${INTERFACE_NUMBER} + 1")
41  set(${target}_remote_interface veth${INTERFACE_NUMBER})
42  set(${target}_remote_ip ${IP_BYTE_0}.${IP_BYTE_1}.${IP_BYTE_2}.${IP_BYTE_4})
43  set(${target}_port ${PORT_NUMBER})
44
45  # Increase numbers for next setup
46  math(EXPR INTERFACE_NUMBER "${INTERFACE_NUMBER} + 1")
47  math(EXPR IP_BYTE_3 "${IP_BYTE_3} + ${TEST_SUBNET_SIZE}")
48  if(${IP_BYTE_3} GREATER 253)
49    math(EXPR IP_BYTE_2 "${IP_BYTE_2} + 1")
50    set(IP_BYTE_3 1)
51  endif()
52  math(EXPR IP_BYTE_4 "${IP_BYTE_3} + 1")
53  math(EXPR PORT_NUMBER "${PORT_NUMBER} + 1")
54
55endmacro()
56