ikev2: add profile dump API
[vpp.git] / src / plugins / ikev2 / ikev2_types.api
1 /* Hey Emacs use -*- mode: C -*- */
2 /*
3  * Copyright (c) 2015-2016 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
17
18 import "vnet/ip/ip_types.api";
19
20
21 typedef ikev2_id
22 {
23   u8 type;
24   u8 data_len;
25   string data[64];
26 };
27
28 typedef ikev2_ts
29 {
30   u8 ts_type;
31   u8 protocol_id;
32   u16 selector_len;
33   u16 start_port;
34   u16 end_port;
35   vl_api_ip4_address_t start_addr;
36   vl_api_ip4_address_t end_addr;
37 };
38
39 typedef ikev2_auth
40 {
41   u8 method;
42   u8 hex;                       /* hex encoding of the shared secret */
43   u32 data_len;
44   u8 data[data_len];
45 };
46
47 typedef ikev2_responder
48 {
49   u32 sw_if_index;
50   vl_api_ip4_address_t ip4;
51 };
52
53 typedef ikev2_transforms_set
54 {
55   u8 crypto_alg;
56   u8 integ_alg;
57   u8 dh_type;
58   u32 crypto_key_size;
59 };
60
61 typedef ikev2_profile
62 {
63   string name[64];
64   vl_api_ikev2_id_t loc_id;
65   vl_api_ikev2_id_t rem_id;
66   vl_api_ikev2_ts_t loc_ts;
67   vl_api_ikev2_ts_t rem_ts;
68   vl_api_ikev2_responder_t responder;
69   vl_api_ikev2_transforms_set_t ike_ts;
70   vl_api_ikev2_transforms_set_t esp_ts;
71   u64 lifetime;
72   u64 lifetime_maxdata;
73   u32 lifetime_jitter;
74   u32 handover;
75   u16 ipsec_over_udp_port;
76   u32 tun_itf;
77   u8 udp_encap;
78   vl_api_ikev2_auth_t auth;
79 };