feat(docs): Fix images and ToC
[csit.git] / docs / content / methodology / geneve.md
1 ---
2 title: "GENEVE"
3 weight: 21
4 ---
5
6 # GENEVE
7
8 ## GENEVE Prefix Bindings
9
10 GENEVE prefix bindings should be representative to target applications, where
11 a packet flows of particular set of IPv4 addresses (L3 underlay network) is
12 routed via dedicated GENEVE interface by building an L2 overlay.
13
14 Private address ranges to be used in tests:
15
16 - East hosts ip address range: 10.0.1.0 - 10.127.255.255 (10.0/9 prefix)
17
18   - Total of 2^23 - 256 (8 388 352) of usable IPv4 addresses
19   - Usable in tests for up to 32 767 GENEVE tunnels (IPv4 underlay networks)
20
21 - West hosts ip address range: 10.128.1.0 - 10.255.255.255 (10.128/9 prefix)
22
23   - Total of 2^23 - 256 (8 388 352) of usable IPv4 addresses
24   - Usable in tests for up to 32 767 GENEVE tunnels (IPv4 underlay networks)
25
26 ## GENEVE Tunnel Scale
27
28 If N is a number of GENEVE tunnels (and IPv4 underlay networks) then TG sends
29 256 packet flows in every of N different sets:
30
31 - i = 1,2,3, ... N - GENEVE tunnel index
32
33 - East-West direction: GENEVE encapsulated packets
34
35   - Outer IP header:
36
37     - src ip: 1.1.1.1
38
39     - dst ip: 1.1.1.2
40
41   - GENEVE header:
42
43     - vni: i
44
45   - Inner IP header:
46
47     - src_ip_range(i) = 10.(0 + rounddown(i/255)).(modulo(i/255)).(0-to-255)
48
49     - dst_ip_range(i) = 10.(128 + rounddown(i/255)).(modulo(i/255)).(0-to-255)
50
51 - West-East direction: non-encapsulated packets
52
53   - IP header:
54
55     - src_ip_range(i) = 10.(128 + rounddown(i/255)).(modulo(i/255)).(0-to-255)
56
57     - dst_ip_range(i) = 10.(0 + rounddown(i/255)).(modulo(i/255)).(0-to-255)
58
59  **geneve-tunnels** | **total-flows**
60 -------------------:|----------------:
61  1                  | 256
62  4                  | 1 024
63  16                 | 4 096
64  64                 | 16 384
65  256                | 65 536
66  1 024              | 262 144