summaryrefslogtreecommitdiffstats
path: root/src/vcl/vcl_private.h
diff options
context:
space:
mode:
authorFilip Tehlar <ftehlar@cisco.com>2019-10-23 11:11:42 +0000
committerDamjan Marion <dmarion@me.com>2019-11-04 14:03:18 +0000
commitcb3cfe876b3bbe2f360e3b32a43a060bdcb8bf9e (patch)
tree75ad75aad3e3ea550d047e5ebe1537362f96fa62 /src/vcl/vcl_private.h
parenta519f213f45e79383bac6baa332c4607e65604bb (diff)
ikev2: fix traffic selector match
Type: fix Change-Id: I81ab3dcd03f397b3d275da6cfa094e048ad92f95 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Diffstat (limited to 'src/vcl/vcl_private.h')
0 files changed, 0 insertions, 0 deletions
n137'>137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470
/* Hey Emacs use -*- mode: C -*- */
/*
 * Copyright (c) 2018 Cisco and/or its affiliates.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at:
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

option version = "2.0.0";

import "vnet/ip/ip_types.api";
import "vnet/ethernet/ethernet_types.api";
import "vnet/interface_types.api";

enum gbp_bridge_domain_flags
{
  GBP_BD_API_FLAG_NONE = 0,
  GBP_BD_API_FLAG_DO_NOT_LEARN = 1,
  GBP_BD_API_FLAG_UU_FWD_DROP = 2,
  GBP_BD_API_FLAG_MCAST_DROP = 4,
  GBP_BD_API_FLAG_UCAST_ARP = 8,
};

typedef gbp_bridge_domain
{
  u32 bd_id;
  u32 rd_id;
  vl_api_gbp_bridge_domain_flags_t flags;
  vl_api_interface_index_t bvi_sw_if_index;
  vl_api_interface_index_t uu_fwd_sw_if_index;
  vl_api_interface_index_t bm_flood_sw_if_index;
};

 autoreply define gbp_bridge_domain_add
{
  option status="in_progress";
  u32 client_index;
  u32 context;
  vl_api_gbp_bridge_domain_t bd;
};
 autoreply define gbp_bridge_domain_del
{
  option status="in_progress";
  u32 client_index;
  u32 context;
  u32 bd_id;
};
autoreply define gbp_bridge_domain_dump
{
  option status="in_progress";
  u32 client_index;
  u32 context;
};
define gbp_bridge_domain_details
{
  option status="in_progress";
  u32 context;
  vl_api_gbp_bridge_domain_t bd;
};

typedef u16 gbp_scope;

typedef gbp_route_domain
{
  u32 rd_id;
  u32 ip4_table_id;
  u32 ip6_table_id;
  vl_api_interface_index_t ip4_uu_sw_if_index;
  vl_api_interface_index_t ip6_uu_sw_if_index;
  vl_api_gbp_scope_t scope;
};

 autoreply define gbp_route_domain_add
{
  option status="in_progress";
  u32 client_index;
  u32 context;
  vl_api_gbp_route_domain_t rd;
};
 autoreply define gbp_route_domain_del
{
  option status="in_progress";
  u32 client_index;
  u32 context;
  u32 rd_id;
};
autoreply define gbp_route_domain_dump
{
  option status="in_progress";
  u32 client_index;
  u32 context;
};
define gbp_route_domain_details
{
  option status="in_progress";
  u32 context;
  vl_api_gbp_route_domain_t rd;
};

/** \brief Endpoint
    @param client_index - opaque cookie to identify the sender
    @param context - sender context, to match reply w/ request
*/

enum gbp_endpoint_flags
{
  GBP_API_ENDPOINT_FLAG_NONE = 0,
  GBP_API_ENDPOINT_FLAG_BOUNCE = 0x1,
  GBP_API_ENDPOINT_FLAG_REMOTE = 0x2,
  GBP_API_ENDPOINT_FLAG_LEARNT = 0x4,
  GBP_API_ENDPOINT_FLAG_EXTERNAL = 0x8,
};

typedef gbp_endpoint_tun
{
  vl_api_address_t src;
  vl_api_address_t dst;
};

typedef gbp_endpoint
{
  vl_api_interface_index_t sw_if_index;
  u16 sclass;
  vl_api_gbp_endpoint_flags_t flags;
  vl_api_mac_address_t mac;
  vl_api_gbp_endpoint_tun_t tun;
  u8 n_ips;
  vl_api_address_t ips[n_ips];
};

 define gbp_endpoint_add
{
  option status="in_progress";
  u32 client_index;
  u32 context;
  vl_api_gbp_endpoint_t endpoint;
};

define gbp_endpoint_add_reply
{
  option status="in_progress";
  u32 context;
  i32 retval;
  u32 handle;
};

 autoreply define gbp_endpoint_del
{
  option status="in_progress";
  u32 client_index;
  u32 context;
  u32 handle;
};

define gbp_endpoint_dump
{
  option status="in_progress";
  u32 client_index;
  u32 context;
};

define gbp_endpoint_details
{
  option status="in_progress";
  u32 context;
  f64 age;
  u32 handle;
  vl_api_gbp_endpoint_t endpoint;
};

typedef gbp_endpoint_retention
{
  u32 remote_ep_timeout;
};

typedef gbp_endpoint_group
{
  u32 vnid;
  u16 sclass;
  u32 bd_id;
  u32 rd_id;
  vl_api_interface_index_t uplink_sw_if_index;
  vl_api_gbp_endpoint_retention_t retention;
};

 autoreply define gbp_endpoint_group_add
{
  option status="in_progress";
  u32 client_index;
  u32 context;
  vl_api_gbp_endpoint_group_t epg;
};
 autoreply define gbp_endpoint_group_del
{
  option status="in_progress";
  u32 client_index;
  u32 context;
  u16 sclass;
};

define gbp_endpoint_group_dump
{
  option status="in_progress";
  u32 client_index;
  u32 context;
};

define gbp_endpoint_group_details
{
  option status="in_progress";
  u32 context;
  vl_api_gbp_endpoint_group_t epg;
};

typedef gbp_recirc
{
  vl_api_interface_index_t sw_if_index;
  u16 sclass;
  bool is_ext;
};

 autoreply define gbp_recirc_add_del
{
  option status="in_progress";
  u32 client_index;
  u32 context;
  bool is_add;
  vl_api_gbp_recirc_t recirc;
};

define gbp_recirc_dump
{
  option status="in_progress";
  u32 client_index;
  u32 context;
};

define gbp_recirc_details
{
  option status="in_progress";
  u32 context;
  vl_api_gbp_recirc_t recirc;
};

enum gbp_subnet_type
{
  GBP_API_SUBNET_TRANSPORT,
  GBP_API_SUBNET_STITCHED_INTERNAL,
  GBP_API_SUBNET_STITCHED_EXTERNAL,
  GBP_API_SUBNET_L3_OUT,
  GBP_API_SUBNET_ANON_L3_OUT,
};

typedef gbp_subnet
{
  u32 rd_id;
  vl_api_interface_index_t sw_if_index;
  u16 sclass;
  vl_api_gbp_subnet_type_t type;
  vl_api_prefix_t prefix;
};

 autoreply define gbp_subnet_add_del
{
  option status="in_progress";
  u32 client_index;
  u32 context;
  bool is_add;
  vl_api_gbp_subnet_t subnet;
};

define gbp_subnet_dump
{
  option status="in_progress";
  u32 client_index;
  u32 context;
};

define gbp_subnet_details
{
  option status="in_progress";
  u32 context;
  vl_api_gbp_subnet_t subnet;
};

typedef gbp_next_hop
{
  vl_api_address_t ip;
  vl_api_mac_address_t mac;
  u32 bd_id;
  u32 rd_id;
};

enum gbp_hash_mode
{
  GBP_API_HASH_MODE_SRC_IP,
  GBP_API_HASH_MODE_DST_IP,
  GBP_API_HASH_MODE_SYMMETRIC,
};

typedef gbp_next_hop_set
{
  vl_api_gbp_hash_mode_t hash_mode;
  u8 n_nhs;
  vl_api_gbp_next_hop_t nhs[8];
};

enum gbp_rule_action
{
  GBP_API_RULE_PERMIT,
  GBP_API_RULE_DENY,
  GBP_API_RULE_REDIRECT,
};

typedef gbp_rule
{
  vl_api_gbp_rule_action_t action;
  vl_api_gbp_next_hop_set_t nh_set;
};

typedef gbp_contract
{
  vl_api_gbp_scope_t scope;
  u16 sclass;
  u16 dclass;
  u32 acl_index;
  u8 n_ether_types;
  u16 allowed_ethertypes[16];
  u8  n_rules;
  vl_api_gbp_rule_t rules[n_rules];
};

 define gbp_contract_add_del
{
  option status="in_progress";
  u32 client_index;
  u32 context;
  bool is_add;
  vl_api_gbp_contract_t contract;
};
define gbp_contract_add_del_reply
{
  option status="in_progress";
  u32 context;
  i32 retval;
  u32 stats_index;
};

define gbp_contract_dump
{
  option status="in_progress";
  u32 client_index;
  u32 context;
};

define gbp_contract_details
{
  option status="in_progress";
  u32 context;
  vl_api_gbp_contract_t contract;
};

/**
 * @brief Configure a 'base' tunnel from which learned tunnels
 *        are permitted to derive
 *        A base tunnel consists only of the VNI, any src,dst IP
 *        pair is thus allowed.
 */
enum gbp_vxlan_tunnel_mode
{
  GBP_VXLAN_TUNNEL_MODE_L2,
  GBP_VXLAN_TUNNEL_MODE_L3,
};

typedef gbp_vxlan_tunnel
{
  u32 vni;
  vl_api_gbp_vxlan_tunnel_mode_t mode;
  u32 bd_rd_id;
  vl_api_ip4_address_t src;
};

 define gbp_vxlan_tunnel_add
{
  option status="in_progress";
  u32 client_index;
  u32 context;
  vl_api_gbp_vxlan_tunnel_t tunnel;
};

define gbp_vxlan_tunnel_add_reply
{
  option status="in_progress";
  u32 context;
  i32 retval;
  vl_api_interface_index_t sw_if_index;
};

 autoreply define gbp_vxlan_tunnel_del
{
  option status="in_progress";
  u32 client_index;
  u32 context;
  u32 vni;
};

define gbp_vxlan_tunnel_dump
{
  option status="in_progress";
  u32 client_index;
  u32 context;
};

define gbp_vxlan_tunnel_details
{
  option status="in_progress";
  u32 context;
  vl_api_gbp_vxlan_tunnel_t tunnel;
};

enum gbp_ext_itf_flags
{
  GBP_API_EXT_ITF_F_NONE = 0,
  GBP_API_EXT_ITF_F_ANON = 1,
};

typedef gbp_ext_itf
{
  vl_api_interface_index_t sw_if_index;
  u32 bd_id;
  u32 rd_id;
  vl_api_gbp_ext_itf_flags_t flags;
};

 autoreply define gbp_ext_itf_add_del
{
  option status="in_progress";
  u32 client_index;
  u32 context;
  bool is_add;
  vl_api_gbp_ext_itf_t ext_itf;
};

define gbp_ext_itf_dump
{
  option status="in_progress";
  u32 client_index;
  u32 context;
};

define gbp_ext_itf_details
{
  option status="in_progress";
  u32 context;
  vl_api_gbp_ext_itf_t ext_itf;
};

/*
 * Local Variables:
 * eval: (c-set-style "gnu")
 * End:
 */