/* * Copyright (c) 2020 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 = "1.0.0"; import "vnet/ip/ip_types.api"; import "vnet/interface_types.api"; import "plugins/nat/nat_types.api"; /** * @file det44.api * @brief VPP control-plane API messages. * * This file defines VPP control-plane API messages which are generally * called through a shared memory interface. */ /** \brief Enable/disable DET44 plugin @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param inside_vrf - inside VRF id @param outside_vrf - outside VRF id @param enable - true if enable, false if disable */ autoreply define det44_plugin_enable_disable { u32 client_index; u32 context; u32 inside_vrf; u32 outside_vrf; bool enable; vl_api_interface_index_t sw_if_index; option status="in_progress"; }; /** \brief Enable/disable DET44 feature on the interface @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param is_add - true if add, false if delete @param is_inside - true if interface is inside, false if outside @param sw_if_index - software index of the interface */ autoreply define det44_interface_add_del_feature { u32 client_index; u32 context; bool is_add; bool is_inside; vl_api_interface_index_t sw_if_index; option status="in_progress"; }; /** \brief Dump interfaces with DET44 feature @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request */ define det44_interface_dump { u32 client_index; u32 context; option status="in_progress"; }; /** \brief DET44 interface details response @param context - sender context, to match reply w/ request @param is_inside - true if interface is inside, false if outside @param sw_if_index - software index of the interface */ define det44_interface_details { u32 context; bool is_inside; bool is_outside; vl_api_interface_index_t sw_if_index; option status="in_progress"; }; /** \brief Add/delete DET44 mapping @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param is_add - true if add, false if delete @param in_addr - inside IPv4 address @param in_plen - inside IPv4 address prefix length @param out_addr - outside IPv4 address @param out_plen - outside IPv4 address prefix length */ autoreply define det44_add_del_map { u32 client_index; u32 context; bool is_add; vl_api_ip4_address_t in_addr; u8 in_plen; vl_api_ip4_address_t out_addr; u8 out_plen; }; /** \brief Get outside address and port range from inside address @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param in_addr - inside IP address */ define det44_forward { u32 client_index; u32 context; vl_api_ip4_address_t in_addr; }; /** \brief Get outside address and port range from inside address @param context - sender context, to match reply w/ request @param retval - return code @param out_port_lo - outside port range start @param out_port_hi - outside port range end @param out_addr - outside IPv4 address */ define det44_forward_reply { u32 context; i32 retval; u16 out_port_lo; u16 out_port_hi; vl_api_ip4_address_t out_addr; }; /** \brief Get inside address from outside address and port @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param out_port - outside port @param out_addr - outside IPv4 address */ define det44_reverse { u32 client_index; u32 context; u16 out_port;
# Configuration for trex01-1g TRex machine
#
# machine_name		 - can be DNS name or IP for the TRex machine for ssh to the box
# password   		 - root password for TRex machine
# machine_typ		 - 1G or 10G TRex machine
# config_file		 - [Optional] configuration file for TRex if needed
# is_dual    		 - should the TRex inject with -p ?
# version_pat		 - path to the TRex version and executable
# exec       		 - executable name (which will be under the version_path)
# cores      		 - how many cores should be used
# limit-ports		 - how many ports should be used
# latency    		 - rate of latency packets injected by the TRex
# misc_params            - [Optional] misc parameters to be passed to the trex

[trex]
machine_name=trex01-1g
password=password
machine_type=1G
config_file=
is_dual=yes
version_path=/auto/proj-pcube-b/apps/PL-b/tools/bp_sim2/v1.35
exec=t-rex-64
cores=2
limit_ports=2
latency=1000
misc_params="--nc"

# Configuration for the router connected to the TRex
#
# interface - interface that can be used to communicate with the router

[router]
type=ASR
interface=10.56.30.49
password=cisco
/** \brief Close deterministic NAT session by inside address and port @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param in_addr - inside IP address @param in_port - inside port @param ext_addr - external host IP address @param ext_port - external host port */ autoreply define nat_det_close_session_in { u32 client_index; u32 context; vl_api_ip4_address_t in_addr; u16 in_port; vl_api_ip4_address_t ext_addr; u16 ext_port; option deprecated; }; /** \brief Dump determinstic NAT sessions @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param user_addr - address of an inside user whose sessions to dump */ define nat_det_session_dump { u32 client_index; u32 context; vl_api_ip4_address_t user_addr; option deprecated; }; /** \brief Deterministic NAT sessions reply @param context - sender context, to match reply w/ request @param in_port - inside port @param ext_addr - external host IPv4 address @param ext_port - external host port @param out_port - outside NAT port @param state - session state @param expire - session expiration timestamp */ define nat_det_session_details { u32 context; u16 in_port; vl_api_ip4_address_t ext_addr; u16 ext_port; u16 out_port; u8 state; u32 expire; option deprecated; };