blob: 9fbd795a071544fb70bceccfd96ae26000156730 [file] [log] [blame]
Pavel Kotucekabea9662016-12-21 15:50:08 +01001/*
2 * Copyright (c) 2015-2016 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
Jakub Grajciar58db6e12020-01-30 13:26:43 +010016option version = "2.0.0";
17
18import "vnet/interface_types.api";
19import "vnet/lisp-cp/lisp_types.api";
Dave Barach0d056e52017-09-28 15:11:16 -040020
Filip Tehlar82786c42017-02-20 15:20:37 +010021/** \brief GPE locator structure
Filip Tehlarc3af7bf2017-01-13 14:13:09 +010022 @param is_ip4 - whether addr is IPv4 or v6
23 @param weight - locator weight
24 @param addr - IPv4/6 address
25*/
Paul Vinciguerrae7174822019-08-07 00:05:59 -040026typedef gpe_locator
Filip Tehlarc3af7bf2017-01-13 14:13:09 +010027{
Filip Tehlarc3af7bf2017-01-13 14:13:09 +010028 u8 weight;
Jakub Grajciar58db6e12020-01-30 13:26:43 +010029 vl_api_address_t addr;
Filip Tehlarc3af7bf2017-01-13 14:13:09 +010030};
31
Filip Tehlar82786c42017-02-20 15:20:37 +010032/** \brief add or delete GPE tunnel
Pavel Kotucekabea9662016-12-21 15:50:08 +010033 @param client_index - opaque cookie to identify the sender
34 @param context - sender context, to match reply w/ request
35 @param is_add - add address if non-zero, else delete
36 @param eid_type -
37 0 : ipv4
38 1 : ipv6
39 2 : mac
40 @param rmt_eid - remote eid
41 @param lcl_eid - local eid
42 @param rmt_len - remote prefix len
43 @param lcl_len - local prefix len
44 @param vni - virtual network identifier
45 @param dp_table - vrf/bridge domain id
Pavel Kotucekabea9662016-12-21 15:50:08 +010046 @param action - negative action when 0 locators configured
Filip Tehlarc3af7bf2017-01-13 14:13:09 +010047 @param loc_num - number of locators
48 @param locs - array of remote locators
Pavel Kotucekabea9662016-12-21 15:50:08 +010049*/
Filip Tehlar560274d2017-06-05 13:40:13 +020050manual_print manual_endian define gpe_add_del_fwd_entry
Pavel Kotucekabea9662016-12-21 15:50:08 +010051{
52 u32 client_index;
53 u32 context;
Jakub Grajciar58db6e12020-01-30 13:26:43 +010054 bool is_add [default=true];
55 vl_api_eid_t rmt_eid;
56 vl_api_eid_t lcl_eid;
Pavel Kotucekabea9662016-12-21 15:50:08 +010057 u32 vni;
58 u32 dp_table;
Pavel Kotucekabea9662016-12-21 15:50:08 +010059 u8 action;
Filip Tehlarc3af7bf2017-01-13 14:13:09 +010060 u32 loc_num;
Filip Tehlar82786c42017-02-20 15:20:37 +010061 vl_api_gpe_locator_t locs[loc_num];
Pavel Kotucekabea9662016-12-21 15:50:08 +010062};
63
Filip Tehlar560274d2017-06-05 13:40:13 +020064define gpe_add_del_fwd_entry_reply
65{
Filip Tehlar560274d2017-06-05 13:40:13 +020066 u32 context;
Ondrej Fabryb11f9032018-08-14 12:39:40 +020067 i32 retval;
Filip Tehlar560274d2017-06-05 13:40:13 +020068 u32 fwd_entry_index;
69};
70
Filip Tehlar82786c42017-02-20 15:20:37 +010071/** \brief enable or disable gpe protocol
Pavel Kotucekabea9662016-12-21 15:50:08 +010072 @param client_index - opaque cookie to identify the sender
73 @param context - sender context, to match reply w/ request
Jakub Grajciar58db6e12020-01-30 13:26:43 +010074 @param is_enable [default=true] - enable protocol if non-zero, else disable
Pavel Kotucekabea9662016-12-21 15:50:08 +010075*/
Dave Barach11b8dbf2017-04-24 10:46:54 -040076autoreply define gpe_enable_disable
Pavel Kotucekabea9662016-12-21 15:50:08 +010077{
78 u32 client_index;
79 u32 context;
Jakub Grajciar58db6e12020-01-30 13:26:43 +010080 bool is_enable [default=true];
Pavel Kotucekabea9662016-12-21 15:50:08 +010081};
82
Pavel Kotucekabea9662016-12-21 15:50:08 +010083/** \brief add or delete gpe_iface
84 @param client_index - opaque cookie to identify the sender
85 @param context - sender context, to match reply w/ request
86 @param is_add - add address if non-zero, else delete
87*/
Dave Barach11b8dbf2017-04-24 10:46:54 -040088autoreply define gpe_add_del_iface
Pavel Kotucekabea9662016-12-21 15:50:08 +010089{
90 u32 client_index;
91 u32 context;
Jakub Grajciar58db6e12020-01-30 13:26:43 +010092 bool is_add [default=true];
93 bool is_l2;
Pavel Kotucekabea9662016-12-21 15:50:08 +010094 u32 dp_table;
95 u32 vni;
96};
97
Filip Tehlar0eb874e2017-05-18 14:23:32 +020098define gpe_fwd_entry_vnis_get
99{
100 u32 client_index;
101 u32 context;
102};
103
104manual_print manual_endian define gpe_fwd_entry_vnis_get_reply
105{
106 u32 context;
107 i32 retval;
108 u32 count;
109 u32 vnis[count];
110};
111
Filip Tehlar82786c42017-02-20 15:20:37 +0100112define gpe_fwd_entries_get
Filip Tehlar5fae99c2017-01-18 12:57:37 +0100113{
114 u32 client_index;
115 u32 context;
116 u32 vni;
117};
118
Paul Vinciguerrae7174822019-08-07 00:05:59 -0400119typedef gpe_fwd_entry
Filip Tehlar5fae99c2017-01-18 12:57:37 +0100120{
121 u32 fwd_entry_index;
122 u32 dp_table;
Jakub Grajciar58db6e12020-01-30 13:26:43 +0100123 vl_api_eid_t leid;
124 vl_api_eid_t reid;
Filip Tehlar0eb874e2017-05-18 14:23:32 +0200125 u32 vni;
126 u8 action;
Filip Tehlar5fae99c2017-01-18 12:57:37 +0100127};
128
Filip Tehlar82786c42017-02-20 15:20:37 +0100129manual_print manual_endian define gpe_fwd_entries_get_reply
Filip Tehlar5fae99c2017-01-18 12:57:37 +0100130{
131 u32 context;
132 i32 retval;
133 u32 count;
Filip Tehlar82786c42017-02-20 15:20:37 +0100134 vl_api_gpe_fwd_entry_t entries[count];
Filip Tehlar5fae99c2017-01-18 12:57:37 +0100135};
136
Filip Tehlar82786c42017-02-20 15:20:37 +0100137define gpe_fwd_entry_path_dump
Filip Tehlar5fae99c2017-01-18 12:57:37 +0100138{
139 u32 client_index;
140 u32 context;
141 u32 fwd_entry_index;
142};
143
Filip Tehlar82786c42017-02-20 15:20:37 +0100144manual_endian manual_print define gpe_fwd_entry_path_details
Filip Tehlar5fae99c2017-01-18 12:57:37 +0100145{
Filip Tehlar5fae99c2017-01-18 12:57:37 +0100146 u32 context;
Filip Tehlar82786c42017-02-20 15:20:37 +0100147 vl_api_gpe_locator_t lcl_loc;
148 vl_api_gpe_locator_t rmt_loc;
Filip Tehlar5fae99c2017-01-18 12:57:37 +0100149};
150
Filip Tehlar3e7b56932017-02-21 18:28:34 +0100151/** \brief Set GPE encapsulation mode
152 @param client_index - opaque cookie to identify the sender
153 @param context - sender context, to match reply w/ request
154 @param mode - LISP (value 0) or VXLAN (value 1)
155*/
Dave Barach11b8dbf2017-04-24 10:46:54 -0400156autoreply define gpe_set_encap_mode
Filip Tehlar3e7b56932017-02-21 18:28:34 +0100157{
158 u32 client_index;
159 u32 context;
Jakub Grajciar58db6e12020-01-30 13:26:43 +0100160 bool is_vxlan;
Filip Tehlar3e7b56932017-02-21 18:28:34 +0100161};
162
Filip Tehlar3e7b56932017-02-21 18:28:34 +0100163/** \brief get GPE encapsulation mode
164 @param client_index - opaque cookie to identify the sender
165 @param context - sender context, to match reply w/ request
166 @param mode - LISP (value 0) or VXLAN (value 1)
167*/
168define gpe_get_encap_mode
169{
170 u32 client_index;
171 u32 context;
172};
173
174/** \brief Reply for set_encap_mode
175 @param context - returned sender context, to match reply w/ request
176 @param retval - return code
177 @param encap_mode - GPE encapsulation mode
178*/
179define gpe_get_encap_mode_reply
180{
181 u32 context;
182 i32 retval;
Jakub Grajciar58db6e12020-01-30 13:26:43 +0100183 /* FIXME: gpe encap enum */
Filip Tehlar3e7b56932017-02-21 18:28:34 +0100184 u8 encap_mode;
185};
186
Florin Corasa4e63e52017-06-07 21:50:57 -0700187/** \brief Add native fwd rpath
188 @param context - returned sender context, to match reply w/ request
189 @param retval - return code
190 @param is_add - flag to indicate add or del
191 @param table_id - table id for route path
192 @param nh_sw_if_index - next-hop sw_if_index (~0 if not set)
193 @param is_ip4 - flag to indicate if nh is ip4
194 @param nh_addr - next hop ip address
195*/
196autoreply define gpe_add_del_native_fwd_rpath
197{
198 u32 client_index;
199 u32 context;
Jakub Grajciar58db6e12020-01-30 13:26:43 +0100200 bool is_add [default=true];
Florin Corasa4e63e52017-06-07 21:50:57 -0700201 u32 table_id;
Jakub Grajciar58db6e12020-01-30 13:26:43 +0100202 vl_api_interface_index_t nh_sw_if_index;
203 vl_api_address_t nh_addr;
Florin Corasa4e63e52017-06-07 21:50:57 -0700204};
205
206/** \brief get GPE native fwd rpath
207 @param client_index - opaque cookie to identify the sender
208 @param context - sender context, to match reply w/ request
209*/
210define gpe_native_fwd_rpaths_get
211{
212 u32 client_index;
213 u32 context;
Jakub Grajciar58db6e12020-01-30 13:26:43 +0100214 bool is_ip4;
Florin Corasa4e63e52017-06-07 21:50:57 -0700215};
216
217/** \brief Reply for get native fwd rpath
218 @param context - returned sender context, to match reply w/ request
219 @param retval - return code
220 @param table_id - table id for route path
221 @param nh_sw_if_index - next-hop sw_if_index (~0 if not set)
222 @param nh_addr - next hop address
223*/
Paul Vinciguerrae7174822019-08-07 00:05:59 -0400224typedef gpe_native_fwd_rpath
Florin Corasa4e63e52017-06-07 21:50:57 -0700225{
Florin Corasa4e63e52017-06-07 21:50:57 -0700226 u32 fib_index;
Jakub Grajciar58db6e12020-01-30 13:26:43 +0100227 vl_api_interface_index_t nh_sw_if_index;
228 vl_api_address_t nh_addr;
Florin Corasa4e63e52017-06-07 21:50:57 -0700229};
230
231manual_print manual_endian define gpe_native_fwd_rpaths_get_reply
232{
233 u32 context;
234 i32 retval;
235 u32 count;
236 vl_api_gpe_native_fwd_rpath_t entries[count];
237};
238
Pavel Kotucekabea9662016-12-21 15:50:08 +0100239/*
240 * Local Variables:
241 * eval: (c-set-style "gnu")
242 * End:
243 */