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