nat: move deterministic nat to det44 sub feature
[vpp.git] / src / plugins / nat / dslite / dslite.api
1 /*
2  * Copyright (c) 2019 Cisco and/or its affiliates.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at:
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15
16 option version = "1.0.0";
17 import "vnet/ip/ip_types.api";
18 import "vnet/interface_types.api";
19
20 /**
21  * @file dslite.api
22  * @brief VPP control-plane API messages.
23  *
24  * This file defines VPP control-plane API messages which are generally
25  * called through a shared memory interface.
26  */
27
28
29 /*
30  * DS-Lite APIs
31  */
32
33 /** \brief Add/delete address range to DS-Lite pool
34     @param client_index - opaque cookie to identify the sender
35     @param context - sender context, to match reply w/ request
36     @param start_addr - start IPv4 address of the range
37     @param end_addr - end IPv4 address of the range
38     @param is_add - true if add, false if delete
39 */
40 autoreply define dslite_add_del_pool_addr_range {
41   u32 client_index;
42   u32 context;
43   vl_api_ip4_address_t start_addr;
44   vl_api_ip4_address_t end_addr;
45   bool is_add;
46 };
47
48 /** \brief Dump DS-Lite addresses
49     @param client_index - opaque cookie to identify the sender
50     @param context - sender context, to match reply w/ request
51 */
52 define dslite_address_dump {
53   u32 client_index;
54   u32 context;
55 };
56
57 /** \brief DS-Lite address details response
58     @param context - sender context, to match reply w/ request
59     @param ip_address - IPv4 address
60 */
61 define dslite_address_details {
62   u32 context;
63   vl_api_ip4_address_t ip_address;
64 };
65
66 /** \brief Set AFTR IPv6 and IPv4 addresses
67     @param client_index - opaque cookie to identify the sender
68     @param context - sender context, to match reply w/ request
69     @param ip4_addr - IPv4 address
70     @param ip6_addr - IPv6 address
71 */
72 autoreply define dslite_set_aftr_addr {
73   u32 client_index;
74   u32 context;
75   vl_api_ip4_address_t ip4_addr;
76   vl_api_ip6_address_t ip6_addr;
77 };
78
79 /** \brief Get AFTR IPv6 and IPv4 addresses
80     @param client_index - opaque cookie to identify the sender
81     @param context - sender context, to match reply w/ request
82 */
83 define dslite_get_aftr_addr {
84   u32 client_index;
85   u32 context;
86 };
87
88 /** \brief Response to get AFTR IPv6 and IPv4 addresses
89     @param context - sender context, to match reply w/ request
90     @param retval - return code
91     @param ip4_addr - IPv4 address
92     @param ip6_addr - IPv6 address
93 */
94 define dslite_get_aftr_addr_reply {
95   u32 context;
96   i32 retval;
97   vl_api_ip4_address_t ip4_addr;
98   vl_api_ip6_address_t ip6_addr;
99 };
100
101 /** \brief Set B4 IPv6 and IPv4 addresses
102     @param client_index - opaque cookie to identify the sender
103     @param context - sender context, to match reply w/ request
104     @param ip4_addr - IPv4 address
105     @param ip6_addr - IPv6 address
106 */
107 autoreply define dslite_set_b4_addr {
108   u32 client_index;
109   u32 context;
110   vl_api_ip4_address_t ip4_addr;
111   vl_api_ip6_address_t ip6_addr;
112 };
113
114 /** \brief Get B4 IPv6 and IPv4 addresses
115     @param client_index - opaque cookie to identify the sender
116     @param context - sender context, to match reply w/ request
117 */
118 define dslite_get_b4_addr {
119   u32 client_index;
120   u32 context;
121 };
122
123 /** \brief Response to get B4 IPv6 and IPv4 addresses
124     @param context - sender context, to match reply w/ request
125     @param retval - return code
126     @param ip4_addr - IPv4 address
127     @param ip6_addr - IPv6 address
128 */
129 define dslite_get_b4_addr_reply {
130   u32 context;
131   i32 retval;
132   vl_api_ip4_address_t ip4_addr;
133   vl_api_ip6_address_t ip6_addr;
134 };