FD.io VPP  v21.01.1
Vector Packet Processing
ikev2_types.api
Go to the documentation of this file.
1 /* Hey Emacs use -*- mode: C -*- */
2 /*
3  * Copyright (c) 2015-2020 Cisco and/or its affiliates.
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at:
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 option version = "1.0.0";
17 
18 import "vnet/ip/ip_types.api";
19 import "vnet/interface_types.api";
20 
21 typedef ikev2_id
22 {
23  u8 type;
25  string data[64];
26 };
27 
28 typedef ikev2_ts
29 {
30  u32 sa_index;
32 
33  bool is_local;
37  vl_api_address_t start_addr;
38  vl_api_address_t end_addr;
39 };
40 
41 typedef ikev2_auth
42 {
43  u8 method;
44  u8 hex; /* hex encoding of the shared secret */
45  u32 data_len;
46  u8 data[data_len];
47 };
48 
49 typedef ikev2_responder
50 {
51  vl_api_interface_index_t sw_if_index;
52  vl_api_address_t addr;
53 };
54 
56 {
57  u8 crypto_alg;
61 };
62 
64 {
65  u8 crypto_alg;
67  u8 integ_alg;
68 };
69 
70 typedef ikev2_profile
71 {
72  string name[64];
73  vl_api_ikev2_id_t loc_id;
74  vl_api_ikev2_id_t rem_id;
75  vl_api_ikev2_ts_t loc_ts;
76  vl_api_ikev2_ts_t rem_ts;
77  vl_api_ikev2_responder_t responder;
78  vl_api_ikev2_ike_transforms_t ike_ts;
79  vl_api_ikev2_esp_transforms_t esp_ts;
86  bool udp_encap;
88  vl_api_ikev2_auth_t auth;
89 };
90 
91 typedef ikev2_sa_transform
92 {
93  u8 transform_type;
98  u8 dh_group;
99 };
100 
101 typedef ikev2_keys
102 {
103  u8 sk_d[64];
105  u8 sk_ai[64];
107  u8 sk_ar[64];
109  u8 sk_ei[64];
111  u8 sk_er[64];
113  u8 sk_pi[64];
115  u8 sk_pr[64];
117 };
118 
119 typedef ikev2_child_sa
120 {
121  u32 sa_index;
125  vl_api_ikev2_keys_t keys;
126  vl_api_ikev2_sa_transform_t encryption;
127  vl_api_ikev2_sa_transform_t integrity;
128  vl_api_ikev2_sa_transform_t esn;
129 };
130 
131 typedef ikev2_sa
132 {
133  u32 sa_index;
135 
138  vl_api_address_t iaddr;
139  vl_api_address_t raddr;
140 
141  vl_api_ikev2_keys_t keys;
142 
143  /* ID */
144  vl_api_ikev2_id_t i_id;
145  vl_api_ikev2_id_t r_id;
146 
147  vl_api_ikev2_sa_transform_t encryption;
148  vl_api_ikev2_sa_transform_t integrity;
149  vl_api_ikev2_sa_transform_t prf;
150  vl_api_ikev2_sa_transform_t dh;
151 };
u8 sk_ei_len
vl_api_address_t end_addr
Definition: ikev2_types.api:38
typedef ikev2_sa
u32 i_spi
typedef ikev2_sa_transform
Definition: ikev2_types.api:92
vl_api_address_t raddr
vl_api_ikev2_auth_t auth
Definition: ikev2_types.api:88
unsigned long u64
Definition: types.h:89
vl_api_ikev2_id_t rem_id
Definition: ikev2_types.api:74
vl_api_address_t start_addr
Definition: ikev2_types.api:37
vl_api_ikev2_sa_transform_t integrity
vl_api_ikev2_ike_transforms_t ike_ts
Definition: ikev2_types.api:78
typedef ikev2_child_sa
vl_api_ikev2_ts_t loc_ts
Definition: ikev2_types.api:75
u8 sk_ar[64]
u32 tun_itf
Definition: ikev2_types.api:85
vl_api_ikev2_id_t r_id
u16 key_len
Definition: ikev2_types.api:95
vl_api_ikev2_ts_t rem_ts
Definition: ikev2_types.api:76
vl_api_ikev2_id_t i_id
u8 sk_ai[64]
u16 start_port
Definition: ikev2_types.api:35
typedef ikev2_esp_transforms
Definition: ikev2_types.api:64
u8 dh_group
Definition: ikev2_types.api:60
u32 r_spi
unsigned char u8
Definition: types.h:56
bool natt_disabled
Definition: ikev2_types.api:87
u16 end_port
Definition: ikev2_types.api:36
u16 key_trunc
Definition: ikev2_types.api:96
option version
Definition: ikev2_types.api:16
u64 lifetime
Definition: ikev2_types.api:80
typedef ikev2_responder
Definition: ikev2_types.api:50
u8 sk_er_len
unsigned int u32
Definition: types.h:88
u8 hex
Definition: ikev2_types.api:44
vl_api_fib_path_type_t type
Definition: fib_types.api:123
typedef ikev2_ts
Definition: ikev2_types.api:29
vl_api_ikev2_id_t loc_id
Definition: ikev2_types.api:73
u8 sk_er[64]
u64 lifetime_maxdata
Definition: ikev2_types.api:81
u8 integ_alg
Definition: ikev2_types.api:59
unsigned short u16
Definition: types.h:57
u8 data_len
Definition: ikev2_types.api:24
u8 sk_ai_len
u16 block_size
Definition: ikev2_types.api:97
vl_api_ikev2_sa_transform_t prf
typedef ikev2_id
Definition: ikev2_types.api:22
bool is_local
Definition: ikev2_types.api:33
u16 transform_id
Definition: ikev2_types.api:94
typedef ikev2_keys
u32 child_sa_index
Definition: ikev2_types.api:31
string data[64]
Definition: ikev2_types.api:25
vl_api_ikev2_responder_t responder
Definition: ikev2_types.api:77
vl_api_ikev2_sa_transform_t dh
string name[64]
Definition: ip.api:44
u64 rspi
u8 sk_pi[64]
vl_api_ikev2_esp_transforms_t esp_ts
Definition: ikev2_types.api:79
u8 sk_ei[64]
u8 sk_d_len
vl_api_ikev2_sa_transform_t encryption
typedef ikev2_auth
Definition: ikev2_types.api:42
u32 crypto_key_size
Definition: ikev2_types.api:58
typedef ikev2_profile
Definition: ikev2_types.api:71
u32 profile_index
bool udp_encap
Definition: ikev2_types.api:86
u8 protocol_id
Definition: ikev2_types.api:34
u8 sk_pr_len
u8 sk_ar_len
typedef ikev2_ike_transforms
Definition: ikev2_types.api:56
vl_api_address_t addr
Definition: ikev2_types.api:52
u8 sk_pi_len
u32 handover
Definition: ikev2_types.api:83
u16 ipsec_over_udp_port
Definition: ikev2_types.api:84
vl_api_address_t iaddr
u64 ispi
u8 sk_pr[64]
vl_api_ikev2_sa_transform_t esn
vl_api_ikev2_keys_t keys
vl_api_interface_index_t sw_if_index
Definition: wireguard.api:34
u32 lifetime_jitter
Definition: ikev2_types.api:82