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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//! Internet Key Exchange Protocol Version 2 (IKEv2, RFC 7296) AST definitions.
//!
//! Defines the control-plane key management and Security Association negotiation header specified
//! in RFC 7296 over UDP port `500` (or UDP `4500` for NAT-Traversal). The 28-byte fixed IKEv2 header
//! begins with a 64-bit `IKE SA Initiator's SPI` (`INITIATOR_SPI`), a 64-bit `IKE SA Responder's SPI`
//! (`RESPONDER_SPI`), an 8-bit `Next Payload` type (`NEXT_HEADER`), an 8-bit Version byte (`0x20` for
//! Major 2, Minor 0), an 8-bit `Exchange Type` (`EXCHANGE`: `34` `SA_INIT`, `35` `AUTH`, `36`
//! `CREATE_CHILD_SA`, `37` `INFORMATIONAL`), an 8-bit `Flags` bitmask (`FLAGS`, default `0x08`
//! Initiator bit), a 32-bit `Message ID` (`MSGID`), and a 32-bit total `Length`.
//!
//! Canonical `.fasm` syntax:
//! `a -> b IKEV2 [EXCHANGE <SA_INIT|AUTH|CREATE_CHILD_SA|INFORMATIONAL>] [INITIATOR_SPI <u64>] [RESPONDER_SPI <u64>] [MSGID <u32>] [FLAGS <u8>] [NEXT_HEADER <u8>]`
use PhantomData;
/// RFC 7296 IKEv2 Exchange Type code.
/// Internet Key Exchange v2 (RFC 7296) specification over UDP port `500`.
///
/// Syntax mapping: `IKEV2 [EXCHANGE <SA_INIT|AUTH|CREATE_CHILD_SA|INFORMATIONAL>] [INITIATOR_SPI <u64>] [RESPONDER_SPI <u64>] [MSGID <u32>] [FLAGS <u8>] [NEXT_HEADER <u8>]`