16 #include <pnat/pnat.api_enum.h> 17 #include <pnat/pnat.api_types.h> 30 #define REPLY_MSG_ID_BASE pm->msg_id_base 45 vl_api_pnat_binding_attach_reply_t *rmp;
50 rv = VNET_API_ERROR_INVALID_SW_IF_INDEX;
64 vl_api_pnat_binding_detach_reply_t *rmp;
69 rv = VNET_API_ERROR_INVALID_SW_IF_INDEX;
82 vl_api_pnat_binding_del_reply_t *rmp;
94 #include <pnat/pnat.api.h> 110 vl_api_pnat_bindings_details_t_endian(rmp);
111 rmp->_vl_msg_id = htons(rmp->_vl_msg_id);
131 send_bindings_details(cursor, rp, mp->context);
144 VL_API_PNAT_INTERFACES_DETAILS, rp, context, ({
152 vl_api_pnat_interfaces_details_t_endian(rmp);
153 rmp->_vl_msg_id = htons(rmp->_vl_msg_id);
174 VL_API_PNAT_INTERFACES_GET_REPLY, pm->
interfaces,
175 ({ send_interfaces_details(cursor, rp, mp->context); }));
180 #include <pnat/pnat.api.c> 197 .description =
"Policy 1:1 NAT",
202 memset(pm, 0,
sizeof(*pm));
static void vl_api_pnat_binding_detach_t_handler(vl_api_pnat_binding_detach_t *mp)
static void send_interfaces_details(u32 index, vl_api_registration_t *rp, u32 context)
#define REPLY_MACRO_END(t)
vl_api_pnat_attachment_point_t attachment
pnat_rewrite_tuple_t rewrite
pnat_mask_t lookup_mask[PNAT_ATTACHMENT_POINT_MAX]
#define REPLY_MACRO2_END(t, body)
vl_api_pnat_match_tuple_t match
static void vl_api_pnat_interfaces_get_t_handler(vl_api_pnat_interfaces_get_t *mp)
#define clib_memcpy(d, s, n)
int pnat_binding_detach(u32 sw_if_index, pnat_attachment_point_t attachment, u32 binding_index)
#define VLIB_INIT_FUNCTION(x)
vl_api_interface_index_t sw_if_index
vl_api_interface_index_t sw_if_index
static void vl_api_pnat_bindings_get_t_handler(vl_api_pnat_bindings_get_t *mp)
pnat_translation_t * translations
#define REPLY_MACRO_DETAILS4(t, rp, context, body)
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
clib_error_t * pnat_init(vlib_main_t *vm)
IPv6 shallow virtual reassembly.
IPv4 shallow virtual reassembly.
static void vl_api_pnat_binding_del_t_handler(vl_api_pnat_binding_del_t *mp)
vl_api_interface_index_t sw_if_index
bool enabled[PNAT_ATTACHMENT_POINT_MAX]
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
vl_api_pnat_attachment_point_t attachment
An API client registration, only in vpp/vlib.
static void setup_message_id_table(api_main_t *am)
static uword vnet_sw_if_index_is_api_valid(u32 sw_if_index)
static void vl_api_pnat_binding_attach_t_handler(vl_api_pnat_binding_attach_t *mp)
#define REPLY_AND_DETAILS_MACRO(t, p, body)
sll srl srl sll sra u16x4 i
static void vl_api_pnat_binding_add_t_handler(vl_api_pnat_binding_add_t *mp)
static void send_bindings_details(u32 index, vl_api_registration_t *rp, u32 context)
vl_api_pnat_mask_t lookup_mask[2]
clib_error_t * pnat_plugin_api_hookup(vlib_main_t *vm)
int pnat_binding_del(u32 index)
int pnat_binding_add(pnat_match_tuple_t *match, pnat_rewrite_tuple_t *rewrite, u32 *index)
vl_api_pnat_rewrite_tuple_t rewrite
pnat_interface_t * interfaces
vl_api_pnat_rewrite_tuple_t rewrite
vl_api_pnat_match_tuple_t match
int pnat_binding_attach(u32 sw_if_index, pnat_attachment_point_t attachment, u32 binding_index)
static uword pool_elts(void *v)
Number of active elements in a pool.