23 #include <sys/types.h> 26 #include <netinet/in.h> 88 #undef __included_bihash_template_h__ 108 #define f64_endian(a) 109 #define f64_print(a,b) 120 #define vl_print(handle, ...) vlib_cli_output (handle, __VA_ARGS__) 125 #define REPLY_MACRO(t) \ 127 unix_shared_memory_queue_t * q; \ 128 rv = vl_msg_api_pd_handler (mp, rv); \ 129 q = vl_api_client_index_to_input_queue (mp->client_index); \ 133 rmp = vl_msg_api_alloc (sizeof (*rmp)); \ 134 rmp->_vl_msg_id = ntohs((t)); \ 135 rmp->context = mp->context; \ 136 rmp->retval = ntohl(rv); \ 138 vl_msg_api_send_shmem (q, (u8 *)&rmp); \ 141 #define REPLY_MACRO2(t, body) \ 143 unix_shared_memory_queue_t * q; \ 144 rv = vl_msg_api_pd_handler (mp, rv); \ 145 q = vl_api_client_index_to_input_queue (mp->client_index); \ 149 rmp = vl_msg_api_alloc (sizeof (*rmp)); \ 150 rmp->_vl_msg_id = ntohs((t)); \ 151 rmp->context = mp->context; \ 152 rmp->retval = ntohl(rv); \ 153 do {body;} while (0); \ 154 vl_msg_api_send_shmem (q, (u8 *)&rmp); \ 157 #if (1 || CLIB_DEBUG > 0) 159 #define VALIDATE_SW_IF_INDEX(mp) \ 160 do { u32 __sw_if_index = ntohl(mp->sw_if_index); \ 161 vnet_main_t *__vnm = vnet_get_main(); \ 162 if (pool_is_free_index(__vnm->interface_main.sw_interfaces, \ 164 rv = VNET_API_ERROR_INVALID_SW_IF_INDEX; \ 165 goto bad_sw_if_index; \ 169 #define BAD_SW_IF_INDEX_LABEL \ 175 #define VALIDATE_RX_SW_IF_INDEX(mp) \ 176 do { u32 __rx_sw_if_index = ntohl(mp->rx_sw_if_index); \ 177 vnet_main_t *__vnm = vnet_get_main(); \ 178 if (pool_is_free_index(__vnm->interface_main.sw_interfaces, \ 179 __rx_sw_if_index)) { \ 180 rv = VNET_API_ERROR_INVALID_SW_IF_INDEX; \ 181 goto bad_rx_sw_if_index; \ 185 #define BAD_RX_SW_IF_INDEX_LABEL \ 187 bad_rx_sw_if_index: \ 191 #define VALIDATE_TX_SW_IF_INDEX(mp) \ 192 do { u32 __tx_sw_if_index = ntohl(mp->tx_sw_if_index); \ 193 vnet_main_t *__vnm = vnet_get_main(); \ 194 if (pool_is_free_index(__vnm->interface_main.sw_interfaces, \ 195 __tx_sw_if_index)) { \ 196 rv = VNET_API_ERROR_INVALID_SW_IF_INDEX; \ 197 goto bad_tx_sw_if_index; \ 201 #define BAD_TX_SW_IF_INDEX_LABEL \ 203 bad_tx_sw_if_index: \ 209 #define VALIDATE_SW_IF_INDEX(mp) 210 #define BAD_SW_IF_INDEX_LABEL 211 #define VALIDATE_RX_SW_IF_INDEX(mp) 212 #define BAD_RX_SW_IF_INDEX_LABEL 213 #define VALIDATE_TX_SW_IF_INDEX(mp) 214 #define BAD_TX_SW_IF_INDEX_LABEL 218 #define foreach_vpe_api_msg \ 219 _(WANT_INTERFACE_EVENTS, want_interface_events) \ 220 _(WANT_OAM_EVENTS, want_oam_events) \ 221 _(OAM_ADD_DEL, oam_add_del) \ 222 _(SW_INTERFACE_DUMP, sw_interface_dump) \ 223 _(SW_INTERFACE_DETAILS, sw_interface_details) \ 224 _(SW_INTERFACE_SET_FLAGS, sw_interface_set_flags) \ 225 _(IP_ADD_DEL_ROUTE, ip_add_del_route) \ 226 _(IS_ADDRESS_REACHABLE, is_address_reachable) \ 227 _(SW_INTERFACE_ADD_DEL_ADDRESS, sw_interface_add_del_address) \ 228 _(SW_INTERFACE_SET_TABLE, sw_interface_set_table) \ 229 _(SW_INTERFACE_SET_VPATH, sw_interface_set_vpath) \ 230 _(SW_INTERFACE_SET_L2_XCONNECT, sw_interface_set_l2_xconnect) \ 231 _(SW_INTERFACE_SET_L2_BRIDGE, sw_interface_set_l2_bridge) \ 232 _(BRIDGE_DOMAIN_ADD_DEL, bridge_domain_add_del) \ 233 _(BRIDGE_DOMAIN_DUMP, bridge_domain_dump) \ 234 _(BRIDGE_DOMAIN_DETAILS, bridge_domain_details) \ 235 _(BRIDGE_DOMAIN_SW_IF_DETAILS, bridge_domain_sw_if_details) \ 236 _(L2FIB_ADD_DEL, l2fib_add_del) \ 237 _(L2_FLAGS, l2_flags) \ 238 _(BRIDGE_FLAGS, bridge_flags) \ 239 _(TAP_CONNECT, tap_connect) \ 240 _(TAP_MODIFY, tap_modify) \ 241 _(TAP_DELETE, tap_delete) \ 242 _(SW_INTERFACE_TAP_DUMP, sw_interface_tap_dump) \ 243 _(CREATE_VLAN_SUBIF, create_vlan_subif) \ 244 _(CREATE_SUBIF, create_subif) \ 245 _(MPLS_GRE_ADD_DEL_TUNNEL, mpls_gre_add_del_tunnel) \ 246 _(MPLS_ETHERNET_ADD_DEL_TUNNEL, mpls_ethernet_add_del_tunnel) \ 247 _(MPLS_ETHERNET_ADD_DEL_TUNNEL_2, mpls_ethernet_add_del_tunnel_2) \ 248 _(MPLS_ADD_DEL_ENCAP, mpls_add_del_encap) \ 249 _(MPLS_ADD_DEL_DECAP, mpls_add_del_decap) \ 250 _(PROXY_ARP_ADD_DEL, proxy_arp_add_del) \ 251 _(PROXY_ARP_INTFC_ENABLE_DISABLE, proxy_arp_intfc_enable_disable) \ 252 _(IP_NEIGHBOR_ADD_DEL, ip_neighbor_add_del) \ 253 _(VNET_GET_SUMMARY_STATS, vnet_get_summary_stats) \ 254 _(RESET_FIB, reset_fib) \ 255 _(DHCP_PROXY_CONFIG,dhcp_proxy_config) \ 256 _(DHCP_PROXY_CONFIG_2,dhcp_proxy_config_2) \ 257 _(DHCP_PROXY_SET_VSS,dhcp_proxy_set_vss) \ 258 _(DHCP_CLIENT_CONFIG, dhcp_client_config) \ 259 _(SET_IP_FLOW_HASH,set_ip_flow_hash) \ 260 _(SW_INTERFACE_IP6ND_RA_CONFIG, sw_interface_ip6nd_ra_config) \ 261 _(SW_INTERFACE_IP6ND_RA_PREFIX, sw_interface_ip6nd_ra_prefix) \ 262 _(SW_INTERFACE_IP6_ENABLE_DISABLE, sw_interface_ip6_enable_disable ) \ 263 _(SW_INTERFACE_IP6_SET_LINK_LOCAL_ADDRESS, \ 264 sw_interface_ip6_set_link_local_address) \ 265 _(SW_INTERFACE_SET_UNNUMBERED, sw_interface_set_unnumbered) \ 266 _(CREATE_LOOPBACK, create_loopback) \ 267 _(CONTROL_PING, control_ping) \ 268 _(NOPRINT_CONTROL_PING, noprint_control_ping) \ 269 _(CLI_REQUEST, cli_request) \ 270 _(SET_ARP_NEIGHBOR_LIMIT, set_arp_neighbor_limit) \ 271 _(L2_PATCH_ADD_DEL, l2_patch_add_del) \ 272 _(CLASSIFY_ADD_DEL_TABLE, classify_add_del_table) \ 273 _(CLASSIFY_ADD_DEL_SESSION, classify_add_del_session) \ 274 _(CLASSIFY_SET_INTERFACE_IP_TABLE, classify_set_interface_ip_table) \ 275 _(CLASSIFY_SET_INTERFACE_L2_TABLES, classify_set_interface_l2_tables) \ 276 _(GET_NODE_INDEX, get_node_index) \ 277 _(ADD_NODE_NEXT, add_node_next) \ 278 _(L2TPV3_CREATE_TUNNEL, l2tpv3_create_tunnel) \ 279 _(L2TPV3_SET_TUNNEL_COOKIES, l2tpv3_set_tunnel_cookies) \ 280 _(L2TPV3_INTERFACE_ENABLE_DISABLE, l2tpv3_interface_enable_disable) \ 281 _(L2TPV3_SET_LOOKUP_KEY, l2tpv3_set_lookup_key) \ 282 _(SW_IF_L2TPV3_TUNNEL_DUMP, sw_if_l2tpv3_tunnel_dump) \ 283 _(VXLAN_ADD_DEL_TUNNEL, vxlan_add_del_tunnel) \ 284 _(VXLAN_TUNNEL_DUMP, vxlan_tunnel_dump) \ 285 _(GRE_ADD_DEL_TUNNEL, gre_add_del_tunnel) \ 286 _(GRE_TUNNEL_DUMP, gre_tunnel_dump) \ 287 _(L2_FIB_CLEAR_TABLE, l2_fib_clear_table) \ 288 _(L2_INTERFACE_EFP_FILTER, l2_interface_efp_filter) \ 289 _(L2_INTERFACE_VLAN_TAG_REWRITE, l2_interface_vlan_tag_rewrite) \ 290 _(CREATE_VHOST_USER_IF, create_vhost_user_if) \ 291 _(MODIFY_VHOST_USER_IF, modify_vhost_user_if) \ 292 _(DELETE_VHOST_USER_IF, delete_vhost_user_if) \ 293 _(SW_INTERFACE_VHOST_USER_DUMP, sw_interface_vhost_user_dump) \ 294 _(IP_ADDRESS_DUMP, ip_address_dump) \ 295 _(IP_DUMP, ip_dump) \ 296 _(SW_INTERFACE_VHOST_USER_DETAILS, sw_interface_vhost_user_details) \ 297 _(SHOW_VERSION, show_version) \ 298 _(L2_FIB_TABLE_DUMP, l2_fib_table_dump) \ 299 _(L2_FIB_TABLE_ENTRY, l2_fib_table_entry) \ 300 _(VXLAN_GPE_ADD_DEL_TUNNEL, vxlan_gpe_add_del_tunnel) \ 301 _(VXLAN_GPE_TUNNEL_DUMP, vxlan_gpe_tunnel_dump) \ 302 _(INTERFACE_NAME_RENUMBER, interface_name_renumber) \ 303 _(WANT_IP4_ARP_EVENTS, want_ip4_arp_events) \ 304 _(INPUT_ACL_SET_INTERFACE, input_acl_set_interface) \ 305 _(IPSEC_SPD_ADD_DEL, ipsec_spd_add_del) \ 306 _(IPSEC_INTERFACE_ADD_DEL_SPD, ipsec_interface_add_del_spd) \ 307 _(IPSEC_SPD_ADD_DEL_ENTRY, ipsec_spd_add_del_entry) \ 308 _(IPSEC_SAD_ADD_DEL_ENTRY, ipsec_sad_add_del_entry) \ 309 _(IPSEC_SA_SET_KEY, ipsec_sa_set_key) \ 310 _(IKEV2_PROFILE_ADD_DEL, ikev2_profile_add_del) \ 311 _(IKEV2_PROFILE_SET_AUTH, ikev2_profile_set_auth) \ 312 _(IKEV2_PROFILE_SET_ID, ikev2_profile_set_id) \ 313 _(IKEV2_PROFILE_SET_TS, ikev2_profile_set_ts) \ 314 _(IKEV2_SET_LOCAL_KEY, ikev2_set_local_key) \ 315 _(DELETE_LOOPBACK, delete_loopback) \ 316 _(BD_IP_MAC_ADD_DEL, bd_ip_mac_add_del) \ 317 _(MAP_ADD_DOMAIN, map_add_domain) \ 318 _(MAP_DEL_DOMAIN, map_del_domain) \ 319 _(MAP_ADD_DEL_RULE, map_add_del_rule) \ 320 _(MAP_DOMAIN_DUMP, map_domain_dump) \ 321 _(MAP_RULE_DUMP, map_rule_dump) \ 322 _(MAP_SUMMARY_STATS, map_summary_stats) \ 323 _(COP_INTERFACE_ENABLE_DISABLE, cop_interface_enable_disable) \ 324 _(COP_WHITELIST_ENABLE_DISABLE, cop_whitelist_enable_disable) \ 325 _(GET_NODE_GRAPH, get_node_graph) \ 326 _(SW_INTERFACE_CLEAR_STATS, sw_interface_clear_stats) \ 327 _(TRACE_PROFILE_ADD, trace_profile_add) \ 328 _(TRACE_PROFILE_APPLY, trace_profile_apply) \ 329 _(TRACE_PROFILE_DEL, trace_profile_del) \ 330 _(LISP_ADD_DEL_LOCATOR_SET, lisp_add_del_locator_set) \ 331 _(LISP_ADD_DEL_LOCATOR, lisp_add_del_locator) \ 332 _(LISP_ADD_DEL_LOCAL_EID, lisp_add_del_local_eid) \ 333 _(LISP_GPE_ADD_DEL_FWD_ENTRY, lisp_gpe_add_del_fwd_entry) \ 334 _(LISP_ADD_DEL_MAP_RESOLVER, lisp_add_del_map_resolver) \ 335 _(LISP_GPE_ENABLE_DISABLE, lisp_gpe_enable_disable) \ 336 _(LISP_ENABLE_DISABLE, lisp_enable_disable) \ 337 _(LISP_GPE_ADD_DEL_IFACE, lisp_gpe_add_del_iface) \ 338 _(LISP_ADD_DEL_REMOTE_MAPPING, lisp_add_del_remote_mapping) \ 339 _(LISP_ADD_DEL_ADJACENCY, lisp_add_del_adjacency) \ 340 _(LISP_PITR_SET_LOCATOR_SET, lisp_pitr_set_locator_set) \ 341 _(LISP_EID_TABLE_ADD_DEL_MAP, lisp_eid_table_add_del_map) \ 342 _(LISP_LOCATOR_SET_DUMP, lisp_locator_set_dump) \ 343 _(LISP_LOCATOR_DUMP, lisp_locator_dump) \ 344 _(LISP_EID_TABLE_DUMP, lisp_eid_table_dump) \ 345 _(LISP_GPE_TUNNEL_DUMP, lisp_gpe_tunnel_dump) \ 346 _(LISP_MAP_RESOLVER_DUMP, lisp_map_resolver_dump) \ 347 _(LISP_EID_TABLE_MAP_DUMP, lisp_eid_table_map_dump) \ 348 _(SHOW_LISP_STATUS, show_lisp_status) \ 349 _(LISP_ADD_DEL_MAP_REQUEST_ITR_RLOCS, \ 350 lisp_add_del_map_request_itr_rlocs) \ 351 _(LISP_GET_MAP_REQUEST_ITR_RLOCS, lisp_get_map_request_itr_rlocs) \ 352 _(SHOW_LISP_PITR, show_lisp_pitr) \ 353 _(SR_MULTICAST_MAP_ADD_DEL, sr_multicast_map_add_del) \ 354 _(AF_PACKET_CREATE, af_packet_create) \ 355 _(AF_PACKET_DELETE, af_packet_delete) \ 356 _(POLICER_ADD_DEL, policer_add_del) \ 357 _(POLICER_DUMP, policer_dump) \ 358 _(POLICER_CLASSIFY_SET_INTERFACE, policer_classify_set_interface) \ 359 _(POLICER_CLASSIFY_DUMP, policer_classify_dump) \ 360 _(NETMAP_CREATE, netmap_create) \ 361 _(NETMAP_DELETE, netmap_delete) \ 362 _(MPLS_GRE_TUNNEL_DUMP, mpls_gre_tunnel_dump) \ 363 _(MPLS_GRE_TUNNEL_DETAILS, mpls_gre_tunnel_details) \ 364 _(MPLS_ETH_TUNNEL_DUMP, mpls_eth_tunnel_dump) \ 365 _(MPLS_ETH_TUNNEL_DETAILS, mpls_eth_tunnel_details) \ 366 _(MPLS_FIB_ENCAP_DUMP, mpls_fib_encap_dump) \ 367 _(MPLS_FIB_ENCAP_DETAILS, mpls_fib_encap_details) \ 368 _(MPLS_FIB_DECAP_DUMP, mpls_fib_decap_dump) \ 369 _(MPLS_FIB_DECAP_DETAILS, mpls_fib_decap_details) \ 370 _(CLASSIFY_TABLE_IDS,classify_table_ids) \ 371 _(CLASSIFY_TABLE_BY_INTERFACE, classify_table_by_interface) \ 372 _(CLASSIFY_TABLE_INFO,classify_table_info) \ 373 _(CLASSIFY_SESSION_DUMP,classify_session_dump) \ 374 _(CLASSIFY_SESSION_DETAILS,classify_session_details) \ 375 _(IPFIX_ENABLE,ipfix_enable) \ 376 _(IPFIX_DUMP,ipfix_dump) \ 377 _(GET_NEXT_INDEX, get_next_index) \ 378 _(PG_CREATE_INTERFACE, pg_create_interface) \ 379 _(PG_CAPTURE, pg_capture) \ 380 _(PG_ENABLE_DISABLE, pg_enable_disable) \ 381 _(IP_SOURCE_AND_PORT_RANGE_CHECK_ADD_DEL, \ 382 ip_source_and_port_range_check_add_del) \ 383 _(IP_SOURCE_AND_PORT_RANGE_CHECK_INTERFACE_ADD_DEL, \ 384 ip_source_and_port_range_check_interface_add_del) \ 385 _(IPSEC_GRE_ADD_DEL_TUNNEL, ipsec_gre_add_del_tunnel) \ 386 _(IPSEC_GRE_TUNNEL_DUMP, ipsec_gre_tunnel_dump) 389 #define QUOTE(x) QUOTE_(x) 391 #define foreach_registration_hash \ 392 _(interface_events) \ 393 _(to_netconf_server) \ 394 _(from_netconf_server) \ 395 _(to_netconf_client) \ 396 _(from_netconf_client) \ 419 #define _(a) uword *a##_registration_hash; \ 420 vpe_client_registration_t * a##_registrations; 462 p = hash_get (vam->a##_registration_hash, client_index); \ 464 rp = pool_elt_at_index (vam->a##_registrations, p[0]); \ 465 pool_put (vam->a##_registrations, rp); \ 466 hash_unset (vam->a##_registration_hash, client_index); \ 473 #define API_LINK_STATE_EVENT 1 474 #define API_ADMIN_UP_DOWN_EVENT 2 492 uword *event_data = 0;
495 u32 prev_sw_if_index;
513 prev_sw_if_index = ~0;
515 for (i = 0; i <
vec_len (event_data); i++)
518 if (prev_sw_if_index == event_data[i])
520 prev_sw_if_index = event_data[
i];
525 q = vl_api_client_index_to_input_queue (reg->client_index);
529 if (!pool_is_free_index (vnm->interface_main.sw_interfaces,
532 swif = vnet_get_sw_interface (vnm, event_data[i]);
533 send_sw_interface_flags (vam, q, swif);
548 u32 hw_if_index,
u32 flags);
554 .name =
"vpe-link-state-process",
591 #define pub_sub_handler(lca,UCA) \ 592 static void vl_api_want_##lca##_t_handler ( \ 593 vl_api_want_##lca##_t *mp) \ 595 vpe_api_main_t *vam = &vpe_api_main; \ 596 vpe_client_registration_t *rp; \ 597 vl_api_want_##lca##_reply_t *rmp; \ 601 p = hash_get (vam->lca##_registration_hash, mp->client_index); \ 603 if (mp->enable_disable) { \ 604 clib_warning ("pid %d: already enabled...", mp->pid); \ 605 rv = VNET_API_ERROR_INVALID_REGISTRATION; \ 608 rp = pool_elt_at_index (vam->lca##_registrations, p[0]); \ 609 pool_put (vam->lca##_registrations, rp); \ 610 hash_unset (vam->lca##_registration_hash, \ 615 if (mp->enable_disable == 0) { \ 616 clib_warning ("pid %d: already disabled...", mp->pid); \ 617 rv = VNET_API_ERROR_INVALID_REGISTRATION; \ 620 pool_get (vam->lca##_registrations, rp); \ 621 rp->client_index = mp->client_index; \ 622 rp->client_pid = mp->pid; \ 623 hash_set (vam->lca##_registration_hash, rp->client_index, \ 624 rp - vam->lca##_registrations); \ 627 REPLY_MACRO (VL_API_WANT_##UCA##_REPLY); \ 632 #define RESOLUTION_EVENT 1 633 #define RESOLUTION_PENDING_EVENT 2 634 #define IP4_ARP_EVENT 3 640 void handle_ip4_arp_event (
u32 pool_index)
666 if (q->cursize < q->maxsize)
674 static f64 last_time;
681 clib_warning (
"arp event for %U to pid %d: queue stuffed!",
693 uword *event_data = 0;
699 u32 *resolution_failures = 0;
716 for (i = 0; i <
vec_len (event_data); i++)
740 (rv >= 0) ?
"succeeded" :
"failed");
751 (rv >= 0) ?
"succeeded" :
"failed");
760 (rv >= 0) ?
"succeeded" :
"failed");
771 for (i = 0; i <
vec_len (event_data); i++)
772 handle_ip4_arp_event (event_data[i]);
784 switch (pr->resolve_type)
786 case RESOLVE_IP4_ADD_DEL_ROUTE:
787 e = ip4_probe_neighbor
788 (vm, (ip4_address_t *)&(adr->next_hop_address),
789 ntohl(adr->next_hop_sw_if_index));
792 case RESOLVE_IP6_ADD_DEL_ROUTE:
793 e = ip6_probe_neighbor
794 (vm, (ip6_address_t *)&(adr->next_hop_address),
795 ntohl(adr->next_hop_sw_if_index));
798 case RESOLVE_MPLS_ETHERNET_ADD_DEL:
800 e = ip4_probe_neighbor
802 (ip4_address_t *)&(pme->next_hop_ip4_address_in_outer_vrf),
803 pme->resolve_opaque);
807 e = clib_error_return (0,
"resolver: BOGUS TYPE %d",
834 for (i = 0; i <
vec_len (resolution_failures); i++)
837 resolution_failures[i]);
844 clib_warning (
"resolver: add %U/%d via %U retry failure",
853 clib_warning (
"resolver: add %U/%d via %U retry failure",
862 clib_warning (
"resolver: add mpls-o-e via %U retry failure",
887 .name =
"vpe-route-resolver-process",
919 fib_index = f->
index;
924 return VNET_API_ERROR_NO_SUCH_FIB;
935 return VNET_API_ERROR_NO_MATCHING_INTERFACE;
938 sizeof (next_hop_address.
data));
947 (im, fib_index, &next_hop_address, 1 );
961 (vnm, &next_hop_address, vpe_resolver_process_node.index,
965 (vm, vpe_resolver_process_node.index,
976 return VNET_API_ERROR_IN_PROGRESS;
1006 memset (&a, 0,
sizeof (a));
1035 return VNET_API_ERROR_NO_SUCH_TABLE;
1059 return VNET_API_ERROR_NO_SUCH_INNER_FIB;
1072 return VNET_API_ERROR_NO_SUCH_INNER_FIB;
1078 int disable_default_route = 1;
1082 disable_default_route = 0;
1085 (im, fib_index, &a.
dst_address, disable_default_route);
1089 return VNET_API_ERROR_UNKNOWN_DESTINATION;
1096 return VNET_API_ERROR_ADDRESS_MATCHES_INTERFACE_ADDRESS;
1136 fib_index = f->
index;
1141 return VNET_API_ERROR_NO_SUCH_FIB;
1152 return VNET_API_ERROR_NO_MATCHING_INTERFACE;
1155 sizeof (next_hop_address.
as_u8));
1164 (im, fib_index, &next_hop_address);
1178 (vnm, &next_hop_address, vpe_resolver_process_node.index,
1182 (vm, vpe_resolver_process_node.index,
1193 return VNET_API_ERROR_IN_PROGRESS;
1223 memset (&a, 0,
sizeof (a));
1260 return VNET_API_ERROR_NO_SUCH_INNER_FIB;
1272 return VNET_API_ERROR_NEXT_HOP_NOT_IN_FIB;
1283 return VNET_API_ERROR_UNKNOWN_DESTINATION;
1289 return VNET_API_ERROR_ADDRESS_MATCHES_INTERFACE_ADDRESS;
1321 u32 sw_if_index,
u8 * next_hop_addr)
1372 is_del = mp->
is_add == 0;
1387 REPLY_MACRO (VL_API_SW_INTERFACE_ADD_DEL_ADDRESS_REPLY);
1415 rv = VNET_API_ERROR_NO_SUCH_FIB;
1432 rv = VNET_API_ERROR_NO_SUCH_FIB;
1439 REPLY_MACRO (VL_API_SW_INTERFACE_SET_TABLE_REPLY);
1517 REPLY_MACRO (VL_API_SW_INTERFACE_SET_VPATH_REPLY);
1537 rx_sw_if_index, 0, 0, 0, tx_sw_if_index);
1547 REPLY_MACRO (VL_API_SW_INTERFACE_SET_L2_XCONNECT_REPLY);
1573 rx_sw_if_index, bd_index, bvi, shg, 0);
1582 REPLY_MACRO (VL_API_SW_INTERFACE_SET_L2_BRIDGE_REPLY);
1592 u32 enable_flags = 0, disable_flags = 0;
1654 u32 n_sw_ifs,
u32 context)
1659 memset (mp, 0,
sizeof (*mp));
1660 mp->_vl_msg_id = ntohs (VL_API_BRIDGE_DOMAIN_DETAILS);
1683 memset (mp, 0,
sizeof (*mp));
1684 mp->_vl_msg_id = ntohs (VL_API_BRIDGE_DOMAIN_SW_IF_DETAILS);
1685 mp->
bd_id = ntohl (bd_id);
1688 mp->
shg = input_cfg->
shg;
1701 u32 bd_id, bd_index;
1709 bd_id = ntohl (mp->
bd_id);
1713 for (; bd_index < end; bd_index++)
1717 if (bd_config && (bd_config->
bd_id > 0))
1754 rv = VNET_API_ERROR_NO_SUCH_ENTRY;
1755 goto bad_sw_if_index;
1764 rv = VNET_API_ERROR_INVALID_SW_IF_INDEX;
1765 goto bad_sw_if_index;
1773 rv = VNET_API_ERROR_INVALID_SW_IF_INDEX;
1774 goto bad_sw_if_index;
1779 bvi_mac = mp->
bvi_mac ? 1 : 0;
1805 if (flags & L2INPUT_FEAT_ ## a) \ 1806 rbm = l2input_intf_bitmap_enable (sw_if_index, L2INPUT_FEAT_ ## a, mp->is_set); 1835 rv = VNET_API_ERROR_NO_SUCH_ENTRY;
1865 rv = VNET_API_ERROR_NO_SUCH_ENTRY;
1872 rv = VNET_API_ERROR_UNSPECIFIED;
1884 u32 sw_if_index = (
u32) ~ 0;
1896 rmp->_vl_msg_id = ntohs (VL_API_TAP_CONNECT_REPLY);
1898 rmp->
retval = ntohl (rv);
1910 u32 sw_if_index = (
u32) ~ 0;
1922 rmp->_vl_msg_id = ntohs (VL_API_TAP_MODIFY_REPLY);
1924 rmp->
retval = ntohl (rv);
1946 rmp->_vl_msg_id = ntohs (VL_API_TAP_DELETE_REPLY);
1948 rmp->
retval = ntohl (rv);
1961 u32 hw_if_index, sw_if_index = (
u32) ~ 0;
1968 u64 sup_and_sub_key;
1979 if (
id == 0 ||
id > 4095)
1981 rv = VNET_API_ERROR_INVALID_VLAN;
1990 rv = VNET_API_ERROR_VLAN_ALREADY_EXISTS;
1995 *kp = sup_and_sub_key;
1997 memset (&
template, 0,
sizeof (
template));
2000 template.sub.id = id;
2001 template.sub.eth.raw_flags = 0;
2002 template.sub.eth.flags.one_tag = 1;
2003 template.sub.eth.outer_vlan_id = id;
2004 template.sub.eth.flags.exact_match = 1;
2010 rv = VNET_API_ERROR_INVALID_REGISTRATION;
2024 rmp->_vl_msg_id = ntohs (VL_API_CREATE_VLAN_SUBIF_REPLY);
2026 rmp->
retval = ntohl (rv);
2036 u32 sw_if_index = ~0;
2044 u64 sup_and_sub_key;
2055 rv = VNET_API_ERROR_BOND_SLAVE_NOT_ALLOWED;
2060 sub_id = ntohl (mp->
sub_id);
2062 sup_and_sub_key = ((
u64) (sw_if_index) << 32) | (
u64) sub_id;
2068 clib_warning (
"sup sw_if_index %d, sub id %d already exists\n",
2069 sw_if_index, sub_id);
2070 rv = VNET_API_ERROR_SUBIF_ALREADY_EXISTS;
2075 *kp = sup_and_sub_key;
2077 memset (&
template, 0,
sizeof (
template));
2079 template.sup_sw_if_index = sw_if_index;
2080 template.sub.id = sub_id;
2081 template.sub.eth.flags.no_tags = mp->
no_tags;
2082 template.sub.eth.flags.one_tag = mp->
one_tag;
2083 template.sub.eth.flags.two_tags = mp->
two_tags;
2084 template.sub.eth.flags.dot1ad = mp->
dot1ad;
2085 template.sub.eth.flags.exact_match = mp->
exact_match;
2086 template.sub.eth.flags.default_sub = mp->
default_sub;
2096 rv = VNET_API_ERROR_SUBIF_CREATE_FAILED;
2122 u32 tunnel_sw_if_index = ~0;
2132 &tunnel_sw_if_index,
2151 u32 tunnel_sw_if_index;
2164 REPLY_MACRO2(VL_API_MPLS_ETHERNET_ADD_DEL_TUNNEL_REPLY,
2184 u32 inner_fib_index, outer_fib_index;
2190 u8 *dst_mac_address;
2194 u32 tunnel_sw_if_index;
2198 return VNET_API_ERROR_NO_SUCH_FIB;
2200 outer_fib_index = p[0];
2205 return VNET_API_ERROR_NO_SUCH_INNER_FIB;
2207 inner_fib_index = p[0];
2209 if (inner_fib_index == outer_fib_index)
2210 return VNET_API_ERROR_INVALID_VALUE;
2213 (im, outer_fib_index,
2218 tx_sw_if_index = adj->rewrite_header.sw_if_index;
2235 vpe_resolver_process_node.index,
2239 (vm, vpe_resolver_process_node.index,
2250 return VNET_API_ERROR_IN_PROGRESS;
2255 return VNET_API_ERROR_NEXT_HOP_NOT_IN_FIB;
2259 (&adj->rewrite_header, sizeof (adj->rewrite_data));
2266 tx_sw_if_index, &tunnel_sw_if_index, mp->
l2_only, mp->
is_add);
2282 REPLY_MACRO (VL_API_MPLS_ETHERNET_ADD_DEL_TUNNEL_2_REPLY);
2296 for (i = 0; i < mp->
nlabels; i++)
2301 ntohl (mp->
vrf_id), labels,
2333 u32 fib_index,
int is_del);
2342 rv = VNET_API_ERROR_NO_SUCH_FIB;
2350 fib_index, mp->
is_add == 0);
2373 rv = VNET_API_ERROR_INVALID_SW_IF_INDEX;
2389 REPLY_MACRO (VL_API_PROXY_ARP_INTFC_ENABLE_DISABLE_REPLY);
2423 ethernet_arp_ip4_over_ethernet_address_t
a;
2430 rv = VNET_API_ERROR_NO_SUCH_FIB;
2453 rv = VNET_API_ERROR_ADDRESS_MATCHES_INTERFACE_ADDRESS;
2479 vpe_main_t *rm = &vpe_main;
2488 u32 adj_index, sw_if_index;
2496 increment_missing_api_client_counter (rm->vlib_main);
2515 if (adj_index == ~0)
2523 && adj->rewrite_header.sw_if_index == sw_if_index)
2530 && adj->rewrite_header.sw_if_index == sw_if_index)
2577 REPLY_MACRO (VL_API_SW_INTERFACE_SET_FLAGS_REPLY);
2591 int i, j, n_counters;
2610 for (j = 0; j < n_counters; j++)
2612 for (i = 0; i <
vec_len (my_vnet_mains); i++)
2625 for (j = 0; j < n_counters; j++)
2627 for (i = 0; i <
vec_len (my_vnet_mains); i++)
2640 REPLY_MACRO (VL_API_SW_INTERFACE_CLEAR_STATS_REPLY);
2647 u8 * interface_name,
u32 context)
2655 memset (mp, 0,
sizeof (*mp));
2656 mp->_vl_msg_id = ntohs (VL_API_SW_INTERFACE_DETAILS);
2699 u32 vtr_push_dot1q = 0, vtr_tag1 = 0, vtr_tag2 = 0;
2702 &vtr_op, &vtr_push_dot1q, &vtr_tag1, &vtr_tag2) != 0)
2706 clib_warning (
"cannot get vlan tag rewrite for sw_if_index %d",
2711 mp->
vtr_op = ntohl (vtr_op);
2732 memset (mp, 0,
sizeof (*mp));
2733 mp->_vl_msg_id = ntohs (VL_API_SW_INTERFACE_SET_FLAGS);
2744 __attribute__ ((unused));
2754 memset (mp, 0,
sizeof (*mp));
2755 mp->_vl_msg_id = ntohs (VL_API_SW_INTERFACE_SET_FLAGS);
2770 u8 *filter_string = 0, *name_string = 0;
2772 char *strcasestr (
char *,
char *);
2788 name_string = format (name_string,
"%U%c",
2789 format_vnet_sw_interface_name,
2790 am->vnet_main, swif, 0);
2792 if (mp->name_filter_valid == 0 ||
2793 strcasestr((char *) name_string, (char *) filter_string)) {
2795 send_sw_interface_details (am, q, swif, name_string, mp->context);
2797 _vec_len (name_string) = 0;
2816 q = vl_api_client_index_to_input_queue (reg->client_index);
2819 mp = vl_msg_api_alloc (sizeof (*mp));
2820 mp->_vl_msg_id = ntohs (VL_API_OAM_EVENT);
2821 clib_memcpy (mp->dst_address, &t->dst_address,
2822 sizeof (mp->dst_address));
2823 mp->state = t->state;
2824 vl_msg_api_send_shmem (q, (u8 *)&mp);
2862 rmp->_vl_msg_id = ntohs (VL_API_VNET_SUMMARY_STATS_REPLY);
2866 memset (total_pkts, 0,
sizeof (total_pkts));
2867 memset (total_bytes, 0,
sizeof (total_bytes));
2878 total_pkts[which] += v.
packets;
2879 total_bytes[which] += v.
bytes;
2897 u32 address_length: 6;
2908 static ip4_route_t *routes;
2909 static u32 *sw_if_indices_to_shut;
2915 int rv = VNET_API_ERROR_NO_SUCH_FIB;
2924 if (fib->
table_id != target_fib_id)
2945 u32 sw_if_index = si->sw_if_index;
2947 if (sw_if_index < vec_len (im4->fib_index_by_sw_if_index)
2948 && (im4->fib_index_by_sw_if_index[si->sw_if_index] ==
2950 vec_add1 (sw_if_indices_to_shut, si->sw_if_index);
2954 for (i = 0; i <
vec_len (sw_if_indices_to_shut); i++)
2956 sw_if_index = sw_if_indices_to_shut[
i];
2972 x.address_length =
i;
2977 x.address.data_u32 = p->
key;
2987 memset (&a, 0,
sizeof (a));
3044 static u32 *sw_if_indices_to_shut;
3049 int rv = VNET_API_ERROR_NO_SUCH_FIB;
3052 clib_bihash_24_8_t *h = &im6->ip6_lookup_table;
3060 if (fib->
table_id != target_fib_id)
3069 if (im6->fib_index_by_sw_if_index[si->sw_if_index] ==
3071 vec_add1 (sw_if_indices_to_shut, si->sw_if_index);
3075 for (i = 0; i <
vec_len (sw_if_indices_to_shut); i++)
3077 sw_if_index = sw_if_indices_to_shut[
i];
3096 memset (&a, 0,
sizeof (a));
3126 rv = ip4_reset_fib_t_handler (mp);
3142 (
int) (mp->
is_add == 0));
3158 (
int) (mp->
is_add == 0));
3174 (
int) (mp->
is_add == 0));
3192 (
int) (mp->
is_add == 0));
3194 rv = VNET_API_ERROR_UNIMPLEMENTED;
3240 u8 is_ipv6,
u8 * host_address,
u8 * router_address,
3260 mp->_vl_msg_id = ntohs (VL_API_DHCP_COMPL_EVENT);
3290 u8 is_no, suppress, managed, other, ll_option, send_unicast, cease,
3293 is_no = mp->
is_no == 1;
3296 other = mp->
other == 1;
3299 cease = mp->
cease == 1;
3305 suppress, managed, other,
3306 ll_option, send_unicast, cease,
3307 default_router, ntohl (mp->
lifetime),
3315 REPLY_MACRO (VL_API_SW_INTERFACE_IP6ND_RA_CONFIG_REPLY);
3324 u8 is_no, use_default, no_advertise, off_link, no_autoconfig, no_onlink;
3328 is_no = mp->
is_no == 1;
3340 off_link, no_autoconfig, no_onlink, is_no);
3343 REPLY_MACRO (VL_API_SW_INTERFACE_IP6ND_RA_PREFIX_REPLY);
3367 rv = VNET_API_ERROR_UNSPECIFIED;
3376 REPLY_MACRO (VL_API_SW_INTERFACE_IP6_ENABLE_DISABLE_REPLY);
3399 rv = VNET_API_ERROR_UNSPECIFIED;
3408 REPLY_MACRO (VL_API_SW_INTERFACE_IP6_SET_LINK_LOCAL_ADDRESS_REPLY);
3415 int rv = VNET_API_ERROR_UNIMPLEMENTED;
3428 u32 flow_hash_config = 0;
3430 table_id = ntohl (mp->
vrf_id);
3432 #define _(a,b) if (mp->a) flow_hash_config |= b; 3458 u32 sw_if_index, unnumbered_sw_if_index;
3469 unnumbered_sw_if_index))
3471 rv = VNET_API_ERROR_INVALID_SW_IF_INDEX;
3479 rv = VNET_API_ERROR_INVALID_SW_IF_INDEX_2;
3497 REPLY_MACRO (VL_API_SW_INTERFACE_SET_UNNUMBERED_REPLY);
3539 rmp->
vpe_pid = ntohl (getpid());
3553 rmp->
vpe_pid = ntohl (getpid());
3561 u8 **shmem_vecp = (
u8 **) arg;
3567 shmem_vec = *shmem_vecp;
3576 clib_memcpy (shmem_vec + offset, buffer, buffer_bytes);
3581 *shmem_vecp = shmem_vec;
3601 rp->_vl_msg_id = ntohs (VL_API_CLI_REPLY);
3639 rv = VNET_API_ERROR_UNSPECIFIED;
3646 REPLY_MACRO (VL_API_SET_ARP_NEIGHBOR_LIMIT_REPLY);
3669 memset (a, 0,
sizeof (*a));
3694 for (i = 0; i < mp->
n_tags; i++)
3723 memset (a, 0,
sizeof (*a));
3729 rv = VNET_API_ERROR_NO_SUCH_NODE2;
3735 rv = VNET_API_ERROR_NO_SUCH_NODE2;
3742 deser_tun_names += 1;
3745 int tun_name_len = 0;
3747 for (i = 0; i < num_tunnels; i++)
3749 tun_name_len = *deser_tun_names;
3750 deser_tun_names += 1;
3752 memcpy (tun_name, deser_tun_names, tun_name_len);
3754 deser_tun_names += tun_name_len;
3776 memset (a, 0,
sizeof (*a));
3797 clib_warning (
"multicast replication without DPDK not implemented");
3798 rv = VNET_API_ERROR_UNIMPLEMENTED;
3803 REPLY_MACRO (VL_API_SR_MULTICAST_MAP_ADD_DEL_REPLY);
3807 #define foreach_classify_add_del_table_field \ 3812 _(match_n_vectors) \ 3813 _(next_table_index) \ 3828 #define _(a) a = ntohl(mp->a); 3836 rv = VNET_API_ERROR_NO_SUCH_TABLE;
3841 (cm, mp->
mask, nbuckets, memory_size,
3842 skip_n_vectors, match_n_vectors,
3843 next_table_index, miss_next_index, &table_index, mp->
is_add);
3849 if (rv == 0 && mp->
is_add)
3851 t = pool_elt_at_index (cm->tables, table_index);
3852 rmp->skip_n_vectors = ntohl(t->skip_n_vectors);
3853 rmp->match_n_vectors = ntohl(t->match_n_vectors);
3854 rmp->new_table_index = ntohl(table_index);
3858 rmp->skip_n_vectors = ~0;
3859 rmp->match_n_vectors = ~0;
3860 rmp->new_table_index = ~0;
3872 u32 table_index, hit_next_index, opaque_index;
3878 advance = ntohl (mp->
advance);
3881 (cm, table_index, mp->
match, hit_next_index, opaque_index,
3884 REPLY_MACRO (VL_API_CLASSIFY_ADD_DEL_SESSION_REPLY);
3893 u32 table_index, sw_if_index;
3907 REPLY_MACRO (VL_API_CLASSIFY_SET_INTERFACE_IP_TABLE_REPLY);
3915 u32 sw_if_index, ip4_table_index, ip6_table_index, other_table_index;
3926 ip6_table_index, other_table_index);
3930 if (ip4_table_index != ~0 || ip6_table_index != ~0
3931 || other_table_index != ~0)
3941 REPLY_MACRO (VL_API_CLASSIFY_SET_INTERFACE_L2_TABLES_REPLY);
3960 u32 sw_if_index,
u32 enable);
3974 REPLY_MACRO (VL_API_L2_INTERFACE_EFP_FILTER_REPLY);
3989 vtr_op = ntohl (mp->
vtr_op);
4006 rv = VNET_API_ERROR_INVALID_VALUE;
4007 goto bad_sw_if_index;
4016 REPLY_MACRO (VL_API_L2_INTERFACE_VLAN_TAG_REWRITE_REPLY);
4024 u32 sw_if_index = (
u32) ~ 0;
4029 #if DPDK > 0 && DPDK_VHOST_USER 4030 rv = dpdk_vhost_user_create_if (
4057 #if DPDK > 0 && DPDK_VHOST_USER 4058 rv = dpdk_vhost_user_modify_if (
4079 #if DPDK > 0 && DPDK_VHOST_USER 4080 rv = dpdk_vhost_user_delete_if (vnm, vm, sw_if_index);
4113 memset (mp, 0,
sizeof (*mp));
4114 mp->_vl_msg_id = ntohs (VL_API_SW_INTERFACE_VHOST_USER_DETAILS);
4147 #if DPDK > 0 && DPDK_VHOST_USER 4148 rv = dpdk_vhost_user_dump_ifs (vnm, vm, &ifaces);
4174 if_name =
format (if_name,
"%U",
4178 memset (mp, 0,
sizeof (*mp));
4179 mp->_vl_msg_id = ntohs (VL_API_SW_IF_L2TPV3_TUNNEL_DETAILS);
4200 u8 * ip,
u16 prefix_length,
u8 is_ipv6,
u32 context)
4205 memset (mp, 0,
sizeof (*mp));
4206 mp->_vl_msg_id = ntohs (VL_API_IP_ADDRESS_DETAILS);
4215 *tp = ntohl (*(
u32 *) ip);
4235 u32 sw_if_index = ~0;
4236 int rv __attribute__ ((unused)) = 0;
4282 memset (mp, 0,
sizeof (*mp));
4283 mp->_vl_msg_id = ntohs (VL_API_IP_DETAILS);
4307 send_sw_if_l2tpv3_tunnel_details (am, q, session, lm, mp->context);
4321 memset (mp, 0,
sizeof (*mp));
4322 mp->_vl_msg_id = ntohs (VL_API_SW_INTERFACE_TAP_DETAILS);
4365 u32 sw_if_index = ~0;
4375 _vec_len (sorted_sis) = 0;
4379 vec_add1 (sorted_sis, si[0]);
4412 memset (mp, 0,
sizeof (*mp));
4413 mp->_vl_msg_id = ntohs (VL_API_L2_FIB_TABLE_ENTRY);
4486 strncpy ((
char *) rmp->
build_directory, vpe_api_get_build_directory(),
4488 strncpy ((
char *) rmp->
version, vpe_api_get_version(),
4490 strncpy ((
char *) rmp->
build_date, vpe_api_get_build_date(),
4503 u32 node_index = ~0;
4508 rv = VNET_API_ERROR_NO_SUCH_NODE;
4510 node_index = n->
index;
4527 u32 next_node_index = ~0, next_index = ~0;
4534 rv = VNET_API_ERROR_NO_SUCH_NODE;
4542 rv = VNET_API_ERROR_NO_SUCH_NODE2;
4546 next_node_index = next_node->
index;
4552 rv = VNET_API_ERROR_NO_SUCH_ENTRY;
4574 u32 next_index = ~0;
4580 rv = VNET_API_ERROR_NO_SUCH_NODE;
4587 rv = VNET_API_ERROR_NO_SUCH_NODE2;
4605 u32 sw_if_index = (
u32) ~ 0;
4610 rv = VNET_API_ERROR_UNIMPLEMENTED;
4614 u32 encap_fib_index;
4624 rv = VNET_API_ERROR_NO_SUCH_FIB;
4627 encap_fib_index = p[0];
4631 encap_fib_index = ~0;
4642 encap_fib_index, &sw_if_index);
4664 clib_net_to_host_u64
4669 REPLY_MACRO (VL_API_L2TPV3_SET_TUNNEL_COOKIES_REPLY);
4686 REPLY_MACRO (VL_API_L2TPV3_INTERFACE_ENABLE_DISABLE_REPLY);
4698 rv = VNET_API_ERROR_INVALID_VALUE;
4714 u32 encap_fib_index;
4717 u32 sw_if_index = ~0;
4722 rv = VNET_API_ERROR_NO_SUCH_FIB;
4725 encap_fib_index = p[0];
4731 rv = VNET_API_ERROR_SAME_SRC_DST;
4734 memset (a, 0,
sizeof (*a));
4753 a->
vni = ntohl (mp->
vni);
4774 memset (rmp, 0,
sizeof (*rmp));
4775 rmp->_vl_msg_id = ntohs (VL_API_VXLAN_TUNNEL_DETAILS);
4788 rmp->
vni = htonl (t->
vni);
4813 if (~0 == sw_if_index)
4818 send_vxlan_tunnel_details(t, q, mp->context);
4843 u32 sw_if_index = ~0;
4848 rv = VNET_API_ERROR_NO_SUCH_FIB;
4851 outer_fib_id = p[0];
4857 rv = VNET_API_ERROR_SAME_SRC_DST;
4860 memset (a, 0,
sizeof (*a));
4887 memset (rmp, 0,
sizeof (*rmp));
4888 rmp->_vl_msg_id = ntohs (VL_API_GRE_TUNNEL_DETAILS);
4914 if (~0 == sw_if_index)
4919 send_gre_tunnel_details(t, q, mp->context);
4950 (
int) (mp->
is_add != 0));
4965 u32 encap_fib_index, decap_fib_index;
4969 u32 sw_if_index = ~0;
4975 rv = VNET_API_ERROR_NO_SUCH_FIB;
4978 encap_fib_index = p[0];
4983 if (protocol == VXLAN_GPE_INPUT_NEXT_IP4_INPUT)
4988 rv = VNET_API_ERROR_NO_SUCH_INNER_FIB;
4991 decap_fib_index = p[0];
5002 rv = VNET_API_ERROR_SAME_SRC_DST;
5005 memset (a, 0,
sizeof (*a));
5023 a->
vni = ntohl (mp->
vni);
5044 memset (rmp, 0,
sizeof (*rmp));
5045 rmp->_vl_msg_id = ntohs (VL_API_VXLAN_GPE_TUNNEL_DETAILS);
5060 rmp->
vni = htonl (t->
vni);
5085 if (~0 == sw_if_index)
5090 send_vxlan_gpe_tunnel_details(t, q, mp->context);
5123 ls_locator_t *ls_loc;
5124 u32 ls_index = ~0, locator_num;
5128 memset (a, 0,
sizeof (a[0]));
5132 a->
name = locator_name;
5135 locator_num = clib_net_to_host_u32 (mp->
locator_num);
5137 memset (&locator, 0,
sizeof (locator));
5138 for (i = 0; i < locator_num; i++)
5140 ls_loc = &((ls_locator_t *) mp->
locators)[
i];
5143 locator.
sw_if_index = htonl (ls_loc->sw_if_index);
5144 locator.
priority = ls_loc->priority;
5145 locator.
weight = ls_loc->weight;
5157 REPLY_MACRO (VL_API_LISP_ADD_DEL_LOCATOR_SET_REPLY);
5170 memset (&locator, 0,
sizeof (locator));
5171 memset (a, 0,
sizeof (a[0]));
5181 a->
name = locator_name;
5218 return VNET_API_ERROR_INVALID_VALUE;
5234 u32 locator_set_index = ~0, map_index = ~0;
5237 memset (a, 0,
sizeof (a[0]));
5238 memset (eid, 0,
sizeof (eid[0]));
5249 rv = VNET_API_ERROR_INVALID_VALUE;
5252 locator_set_index = p[0];
5265 REPLY_MACRO (VL_API_LISP_ADD_DEL_LOCAL_EID_REPLY);
5275 clib_net_to_host_u32 (mp->
dp_table),
5277 REPLY_MACRO (VL_API_LISP_EID_TABLE_ADD_DEL_MAP_REPLY)}
5290 unformat_lisp_loc_pairs (
void *lcl_locs,
void *rmt_locs,
u32 rloc_num)
5296 for (i = 0; i < rloc_num; i++)
5299 r = &((rloc_t *) lcl_locs)[
i];
5300 memset (&pair.lcl_loc, 0, sizeof (pair.lcl_loc));
5304 r = &((rloc_t *) rmt_locs)[
i];
5305 memset (&pair.rmt_loc, 0, sizeof (pair.rmt_loc));
5308 pair.priority = r->priority;
5309 pair.weight = r->weight;
5323 for (i = 0; i < rloc_num; i++)
5326 r = &((rloc_t *) rmt_locs)[
i];
5327 memset (&loc, 0,
sizeof (loc));
5330 loc.priority = r->priority;
5331 loc.weight = r->weight;
5347 memset (a, 0,
sizeof (a[0]));
5356 if (rv || 0 == pairs)
5368 REPLY_MACRO (VL_API_LISP_GPE_ADD_DEL_FWD_ENTRY_REPLY);
5379 memset (a, 0,
sizeof (a[0]));
5386 REPLY_MACRO (VL_API_LISP_ADD_DEL_MAP_RESOLVER_REPLY);
5400 REPLY_MACRO (VL_API_LISP_GPE_ENABLE_DISABLE_REPLY);
5426 REPLY_MACRO (VL_API_LISP_GPE_ADD_DEL_IFACE_REPLY);
5441 REPLY_MACRO (VL_API_LISP_PITR_SET_LOCATOR_SET_REPLY);
5450 u8 *locator_set_name =
NULL;
5462 REPLY_MACRO (VL_API_LISP_ADD_DEL_MAP_REQUEST_ITR_RLOCS_REPLY);
5474 memset (eid, 0,
sizeof (eid[0]));
5508 REPLY_MACRO (VL_API_LISP_ADD_DEL_REMOTE_MAPPING_REPLY);
5518 memset (a, 0,
sizeof (a[0]));
5532 REPLY_MACRO (VL_API_LISP_ADD_DEL_ADJACENCY_REPLY);
5543 memset (rmp, 0,
sizeof (*rmp));
5544 rmp->_vl_msg_id = ntohs (VL_API_LISP_LOCATOR_DETAILS);
5570 u32 ls_index = ~0, *locit = 0;
5584 if (filter && !((1 == filter && lsit->
local) ||
5585 (2 == filter && !lsit->
local)))
5601 u32 context,
u32 ls_index)
5607 memset (rmp, 0,
sizeof (*rmp));
5608 rmp->_vl_msg_id = ntohs (VL_API_LISP_LOCATOR_SET_DETAILS);
5621 str =
format (0,
"remote-%d", ls_index);
5650 if (filter && !((1 == filter && lsit->local) ||
5651 (2 == filter && !lsit->local))) {
5663 u32 context,
u8 filter)
5668 ip_prefix_t *ip_prefix =
NULL;
5684 clib_warning (
"Filter error, unknown filter: %d", filter);
5693 memset (rmp, 0,
sizeof (*rmp));
5694 rmp->_vl_msg_id = ntohs (VL_API_LISP_EID_TABLE_DETAILS);
5746 memset (eid, 0,
sizeof (*eid));
5752 if ((
u32) ~ 0 == mi)
5764 send_lisp_eid_table_details(mapit, q, mp->context,
5779 memset (rmp, 0,
sizeof (*rmp));
5780 rmp->_vl_msg_id = ntohs (VL_API_LISP_GPE_TUNNEL_DETAILS);
5796 rmp->
iid = htonl (tunnel->
vni);
5823 send_lisp_gpe_tunnel_details(tunnel, q, mp->context);
5835 memset (rmp, 0,
sizeof (*rmp));
5836 rmp->_vl_msg_id = ntohs (VL_API_LISP_MAP_RESOLVER_DETAILS);
5886 memset (rmp, 0,
sizeof (*rmp));
5887 rmp->_vl_msg_id = ntohs (VL_API_LISP_EID_TABLE_MAP_DETAILS);
5889 rmp->
vni = clib_host_to_net_u32 (p->
key);
5890 rmp->
vrf = clib_host_to_net_u32 (p->
value[0]);
5911 send_eid_table_map_pair (p, q, mp->context);
5957 tmp_str =
format (0,
" ");
5967 REPLY_MACRO2(VL_API_LISP_GET_MAP_REQUEST_ITR_RLOCS_REPLY,
5996 tmp_str =
format (0,
"N/A");
6009 tmp_str =
format (0,
"N/A");
6038 REPLY_MACRO (VL_API_INTERFACE_NAME_RENUMBER_REPLY);
6043 u32 sw_if_index,
u32 address)
6048 static f64 arp_event_last_time;
6061 if ((sw_if_index == event->
sw_if_index) && ((address == 0) ||
6066 arp_event_last_time) <
6071 arp_event_last_time = now;
6102 memset (event, 0,
sizeof (*event));
6104 event->_vl_msg_id = ntohs (VL_API_IP4_ARP_EVENT);
6113 vpe_resolver_process_node.index,
6121 vpe_resolver_process_node.index,
6133 u32 sw_if_index, ip4_table_index, ip6_table_index, l2_table_index;
6143 ip6_table_index, l2_table_index, mp->
is_add);
6147 REPLY_MACRO (VL_API_INPUT_ACL_SET_INTERFACE_REPLY);
6164 rv = VNET_API_ERROR_UNIMPLEMENTED;
6177 u32 sw_if_index __attribute__ ((unused));
6178 u32 spd_id __attribute__ ((unused));
6181 spd_id = ntohl (mp->
spd_id);
6188 rv = VNET_API_ERROR_UNIMPLEMENTED;
6193 REPLY_MACRO (VL_API_IPSEC_INTERFACE_ADD_DEL_SPD_REPLY);
6206 memset (&p, 0,
sizeof (p));
6233 if (mp->
policy == IPSEC_POLICY_ACTION_RESOLVE)
6236 rv = VNET_API_ERROR_UNIMPLEMENTED;
6252 rv = VNET_API_ERROR_UNIMPLEMENTED;
6257 REPLY_MACRO (VL_API_IPSEC_SPD_ADD_DEL_ENTRY_REPLY);
6269 memset (&sa, 0,
sizeof (sa));
6272 sa.
spi = ntohl (mp->
spi);
6277 rv = VNET_API_ERROR_UNIMPLEMENTED;
6287 rv = VNET_API_ERROR_UNIMPLEMENTED;
6299 rv = VNET_API_ERROR_UNIMPLEMENTED;
6321 rv = VNET_API_ERROR_UNIMPLEMENTED;
6326 REPLY_MACRO (VL_API_IPSEC_SAD_ADD_DEL_ENTRY_REPLY);
6342 rv = VNET_API_ERROR_UNSPECIFIED;
6344 rv = VNET_API_ERROR_UNIMPLEMENTED;
6367 rv = VNET_API_ERROR_UNSPECIFIED;
6369 rv = VNET_API_ERROR_UNIMPLEMENTED;
6372 REPLY_MACRO (VL_API_IKEV2_PROFILE_SET_AUTH_REPLY);
6391 rv = VNET_API_ERROR_UNSPECIFIED;
6393 rv = VNET_API_ERROR_UNIMPLEMENTED;
6414 rv = VNET_API_ERROR_UNSPECIFIED;
6416 rv = VNET_API_ERROR_UNIMPLEMENTED;
6434 rv = VNET_API_ERROR_UNSPECIFIED;
6436 rv = VNET_API_ERROR_UNIMPLEMENTED;
6455 ntohs (mp->
mtu), flags);
6460 rmp->
index = ntohl(index);
6510 rmp = vl_msg_api_alloc (sizeof (*rmp));
6511 rmp->_vl_msg_id = ntohs(VL_API_MAP_DOMAIN_DETAILS);
6512 rmp->domain_index = htonl(d - mm->domains);
6513 rmp->ea_bits_len = d->ea_bits_len;
6514 rmp->psid_offset = d->psid_offset;
6515 rmp->psid_length = d->psid_length;
6516 clib_memcpy(rmp->ip4_prefix, &d->ip4_prefix, sizeof(rmp->ip4_prefix));
6517 rmp->ip4_prefix_len = d->ip4_prefix_len;
6518 clib_memcpy(rmp->ip6_prefix, &d->ip6_prefix, sizeof(rmp->ip6_prefix));
6519 rmp->ip6_prefix_len = d->ip6_prefix_len;
6520 clib_memcpy(rmp->ip6_src, &d->ip6_src, sizeof(rmp->ip6_src));
6521 rmp->ip6_src_len = d->ip6_src_len;
6522 rmp->mtu = htons(d->mtu);
6523 rmp->is_translation = (d->flags & MAP_DOMAIN_TRANSLATION);
6524 rmp->context = mp->context;
6526 vl_msg_api_send_shmem (q, (u8 *)&rmp);
6546 if (!d || !d->
rules)
6565 memset (rmp, 0,
sizeof (*rmp));
6566 rmp->_vl_msg_id = ntohs (VL_API_MAP_RULE_DETAILS);
6567 rmp->
psid = htons (i);
6591 rmp->_vl_msg_id = ntohs (VL_API_MAP_SUMMARY_STATS_REPLY);
6595 memset (total_pkts, 0,
sizeof (total_pkts));
6596 memset (total_bytes, 0,
sizeof (total_bytes));
6606 total_pkts[which] += v.
packets;
6607 total_bytes[which] += v.
bytes;
6617 clib_host_to_net_u64 (total_bytes[MAP_DOMAIN_COUNTER_RX]);
6621 clib_host_to_net_u64 (total_bytes[MAP_DOMAIN_COUNTER_TX]);
6650 rv = VNET_API_ERROR_UNIMPLEMENTED;
6672 REPLY_MACRO (VL_API_COP_INTERFACE_ENABLE_DISABLE_REPLY);
6695 REPLY_MACRO (VL_API_COP_WHITELIST_ENABLE_DISABLE_REPLY);
6817 rmp->
sw_if_index = clib_host_to_net_u32(sw_if_index);
6853 memset (&cfg, 0,
sizeof (cfg));
6872 rv = VNET_API_ERROR_UNSPECIFIED;
6877 if (rv == 0 && mp->
is_add)
6894 memset (mp, 0,
sizeof (*mp));
6895 mp->_vl_msg_id = ntohs (VL_API_POLICER_DETAILS);
6897 mp->
cir = htonl (config->
rb.
kbps.cir_kbps);
6898 mp->
eir = htonl (config->
rb.
kbps.eir_kbps);
6899 mp->
cb = htonl (config->
rb.
kbps.cb_bytes);
6900 mp->
eb = htonl (config->
rb.
kbps.eb_bytes);
6964 name = (u8 *) hp->key;
6965 pool_index = hp->value[0];
6966 config = pool_elt_at_index (pm->configs, pool_index);
6967 templ = pool_elt_at_index (pm->policer_templates, pool_index);
6968 send_policer_details(name, config, templ, q, mp->context);
6981 u32 sw_if_index, ip4_table_index, ip6_table_index, l2_table_index;
6991 ip6_table_index, l2_table_index,
6996 REPLY_MACRO (VL_API_POLICER_CLASSIFY_SET_INTERFACE_REPLY);
7007 memset (mp, 0,
sizeof (*mp));
7008 mp->_vl_msg_id = ntohs (VL_API_POLICER_CLASSIFY_DETAILS);
7032 for (i = 0; i <
vec_len (vec_tbl); i++)
7034 if (
vec_elt (vec_tbl, i) == ~0)
7103 memset (mp, 0,
sizeof (*mp));
7104 mp->_vl_msg_id = ntohs (VL_API_MPLS_GRE_TUNNEL_DETAILS);
7117 mp->
nlabels = htonl (nlabels);
7119 for (i = 0; i < nlabels; i++)
7156 send_mpls_gre_tunnel_entry (am, q, gt, gt - mm->gre_tunnels,
7185 memset (mp, 0,
sizeof (*mp));
7186 mp->_vl_msg_id = ntohs (VL_API_MPLS_ETH_TUNNEL_DETAILS);
7198 mp->
nlabels = htonl (nlabels);
7200 for (i = 0; i < nlabels; i++)
7237 send_mpls_eth_tunnel_entry (am, q, et, et - mm->eth_tunnels,
7265 memset (mp, 0,
sizeof (*mp));
7266 mp->_vl_msg_id = ntohs (VL_API_MPLS_FIB_ENCAP_DETAILS);
7274 mp->
nlabels = htonl (nlabels);
7276 for (i = 0; i < nlabels; i++)
7307 vec_add2 (records, s, 1);
7308 s->fib_index = (u32)(key>>32);
7309 s->dest = (u32)(key & 0xFFFFFFFF);
7310 s->entry_index = (u32) value;
7324 vlib_cli_output (vm,
"%=6s%=16s%=16s",
"Table",
"Dest address",
"Labels");
7349 u32 tx_table_id,
char *swif_tag,
u32 context)
7354 memset (mp, 0,
sizeof (*mp));
7355 mp->_vl_msg_id = ntohs (VL_API_MPLS_FIB_DECAP_DETAILS);
7395 vec_add2 (records, s, 1);
7396 s->fib_index = (u32)(key>>32);
7397 s->entry_index = (u32) value;
7398 s->label = ((u32) key)>>12;
7399 s->s_bit = (key & (1<<8)) != 0;
7411 vlib_cli_output (vm,
"%=10s%=15s%=6s%=6s",
"RX Table",
"TX Table/Intfc",
7417 if (d->
next_index == MPLS_INPUT_NEXT_IP4_INPUT)
7434 tx_table_id, swif_tag, mp->
context);
7458 vec_add1 (table_ids, ntohl(t - cm->tables));
7465 rmp->_vl_msg_id = ntohs (VL_API_CLASSIFY_TABLE_IDS_REPLY);
7467 rmp->
count = ntohl (count);
7501 for (if_idx = 0; if_idx <
vec_len (vec_tbl); if_idx++)
7503 if (
vec_elt (vec_tbl, if_idx) == ~0 || sw_if_index != if_idx)
7544 if (table_id == t - cm->tables)
7546 rmp = vl_msg_api_alloc_as_if_client
7547 (sizeof (*rmp) + t->match_n_vectors * sizeof (u32x4));
7548 rmp->_vl_msg_id = ntohs (VL_API_CLASSIFY_TABLE_INFO_REPLY);
7549 rmp->context = mp->context;
7550 rmp->table_id = ntohl(table_id);
7551 rmp->nbuckets = ntohl(t->nbuckets);
7552 rmp->match_n_vectors = ntohl(t->match_n_vectors);
7553 rmp->skip_n_vectors = ntohl(t->skip_n_vectors);
7554 rmp->active_sessions = ntohl(t->active_elements);
7555 rmp->next_table_index = ntohl(t->next_table_index);
7556 rmp->miss_next_index = ntohl(t->miss_next_index);
7557 rmp->mask_length = ntohl(t->match_n_vectors * sizeof (u32x4));
7558 clib_memcpy(rmp->mask, t->mask, t->match_n_vectors * sizeof(u32x4));
7568 rmp->_vl_msg_id = ntohs ((VL_API_CLASSIFY_TABLE_INFO_REPLY));
7570 rmp->retval = ntohl (VNET_API_ERROR_CLASSIFY_TABLE_NOT_FOUND);
7587 vnet_classify_entry_t * e,
u32 context)
7592 memset (rmp, 0,
sizeof (*rmp));
7593 rmp->_vl_msg_id = ntohs (VL_API_CLASSIFY_SESSION_DETAILS);
7597 rmp->
advance = ntohl (e->advance);
7619 if (table_id == t - cm->tables)
7621 vnet_classify_bucket_t * b;
7622 vnet_classify_entry_t * v, * save_v;
7625 for (i = 0; i < t->nbuckets; i++)
7627 b = &t->buckets [i];
7631 save_v = vnet_classify_get_entry (t, b->offset);
7632 for (j = 0; j < (1<<b->log2_pages); j++)
7634 for (k = 0; k < t->entries_per_page; k++)
7636 v = vnet_classify_entry_at_index
7637 (t, save_v, j*t->entries_per_page + k);
7638 if (vnet_classify_entry_is_free (v))
7641 send_classify_session_details
7642 (q, table_id, t->match_n_vectors * sizeof (u32x4),
7660 u16 collector_port = UDP_DST_PORT_ipfix;
7662 u32 template_interval;
7669 if (collector_port == (
u16) ~ 0)
7670 collector_port = UDP_DST_PORT_ipfix;
7672 fib_id = ntohl (mp->
vrf_id);
7678 rv = VNET_API_ERROR_NO_SUCH_FIB;
7687 if (template_interval == ~0)
7688 template_interval = 20;
7690 if (collector.
as_u32 == 0)
7692 rv = VNET_API_ERROR_INVALID_VALUE;
7698 rv = VNET_API_ERROR_INVALID_VALUE;
7702 if (path_mtu > 1450 )
7704 rv = VNET_API_ERROR_INVALID_VALUE;
7710 rv = VNET_API_ERROR_INVALID_VALUE;
7746 memset (rmp, 0,
sizeof (*rmp));
7747 rmp->_vl_msg_id = ntohs (VL_API_IPFIX_DETAILS);
7789 u32 hw_if_index = ~0;
7795 if (hw_if_index != ~0)
7814 rv = VNET_API_ERROR_CANNOT_CREATE_PCAP_FILE;
7829 u32 stream_index = ~0;
7862 u16 *high_ports = 0;
7864 u16 tmp_low, tmp_high;
7870 if (num_ranges > 32)
7872 rv = VNET_API_ERROR_EXCEEDED_NUMBER_OF_RANGES_CAPACITY;
7879 for (i = 0; i < num_ranges; i++)
7885 if (tmp_low > tmp_high || tmp_low == 0 || tmp_high > 65535)
7887 rv = VNET_API_ERROR_INVALID_VALUE;
7891 vec_add1 (high_ports, tmp_high + 1);
7895 if ((is_ipv6 && mask_length > 128) || (!is_ipv6 && mask_length > 32))
7897 rv = VNET_API_ERROR_ADDRESS_LENGTH_MISMATCH;
7901 vrf_id = ntohl (mp->
vrf_id);
7905 rv = VNET_API_ERROR_INVALID_VALUE;
7917 high_ports, is_add);
7926 high_ports, is_add);
7932 REPLY_MACRO (VL_API_IP_SOURCE_AND_PORT_RANGE_CHECK_ADD_DEL_REPLY);
7961 if (vrf_id[i] != 0 && vrf_id[i] != ~0)
7967 rv = VNET_API_ERROR_INVALID_VALUE;
7971 fib_index[
i] = p[0];
7987 REPLY_MACRO (VL_API_IP_SOURCE_AND_PORT_RANGE_CHECK_INTERFACE_ADD_DEL_REPLY);
7997 u32 sw_if_index = ~0;
8002 rv = VNET_API_ERROR_SAME_SRC_DST;
8006 memset (a, 0,
sizeof (*a));
8032 memset (rmp, 0,
sizeof (*rmp));
8033 rmp->_vl_msg_id = ntohs (VL_API_IPSEC_GRE_TUNNEL_DETAILS);
8060 if (~0 == sw_if_index)
8065 send_ipsec_gre_tunnel_details(t, q, mp->context);
8081 #define BOUNCE_HANDLER(nn) \ 8082 static void vl_api_##nn##_t_handler ( \ 8083 vl_api_##nn##_t *mp) \ 8085 vpe_client_registration_t *reg; \ 8086 vpe_api_main_t * vam = &vpe_api_main; \ 8087 unix_shared_memory_queue_t * q; \ 8090 pool_foreach(reg, vam->nn##_registrations, \ 8092 q = vl_api_client_index_to_input_queue (reg->client_index); \ 8099 if (q->cursize == q->maxsize) { \ 8100 clib_warning ("ERROR: receiver queue full, drop msg"); \ 8101 vl_msg_api_free (mp); \ 8104 vl_msg_api_send_shmem (q, (u8 *)&mp); \ 8108 vl_msg_api_free (mp); \ 8125 vl_msg_api_set_handlers(VL_API_##N, #n, \ 8126 vl_api_##n##_t_handler, \ 8128 vl_api_##n##_t_endian, \ 8129 vl_api_##n##_t_print, \ 8130 sizeof(vl_api_##n##_t), 1); 8139 "sr_tunnel_add_del",
8142 vl_api_sr_tunnel_add_del_t_endian,
8151 "sr_policy_add_del",
8154 vl_api_sr_policy_add_del_t_endian,
8163 += 5 *
sizeof (
u32x4);
8186 am->from_netconf_server_registration_hash =
hash_create (0,
sizeof (
uword));
8188 am->from_netconf_client_registration_hash =
hash_create (0,
sizeof (
uword));
8205 u64 baseva,
size, pvt_heap_size;
8207 const int max_buf_size = 4096;
8209 struct passwd _pw, *pw;
8210 struct group _grp, *grp;
8215 if (
unformat (input,
"prefix %s", &chroot_path))
8220 else if (
unformat (input,
"uid %d", &uid))
8222 else if (
unformat (input,
"gid %d", &gid))
8224 else if (
unformat (input,
"baseva %llx", &baseva))
8226 else if (
unformat (input,
"global-size %lldM", &size))
8228 else if (
unformat (input,
"global-size %lldG", &size))
8230 else if (
unformat (input,
"global-size %lld", &size))
8232 else if (
unformat (input,
"global-pvt-heap-size %lldM", &pvt_heap_size))
8234 else if (
unformat (input,
"global-pvt-heap-size size %lld",
8237 else if (
unformat (input,
"api-pvt-heap-size %lldM", &pvt_heap_size))
8239 else if (
unformat (input,
"api-pvt-heap-size size %lld",
8242 else if (
unformat (input,
"api-size %lldM", &size))
8244 else if (
unformat (input,
"api-size %lldG", &size))
8246 else if (
unformat (input,
"api-size %lld", &size))
8248 else if (
unformat (input,
"uid %s", &s))
8253 getpwnam_r (s, &_pw, buf,
vec_len (buf), &pw)) == ERANGE)
8254 && (
vec_len (buf) <= max_buf_size))
8263 "cannot fetch username %s", s);
8279 else if (
unformat (input,
"gid %s", &s))
8284 getgrnam_r (s, &_grp, buf,
vec_len (buf), &grp)) == ERANGE)
8285 && (
vec_len (buf) <= max_buf_size))
8294 "cannot fetch group %s", s);
8325 #undef vl_api_version 8326 #define vl_api_version(n,v) static u32 vpe_api_version = v; 8327 #include <vpp-api/vpe.api.h> 8328 #undef vl_api_version 8333 if (clib_host_to_net_u32 (mp->
api_versions[0]) != vpe_api_version)
8335 clib_warning (
"vpe API mismatch: 0x%08x instead of 0x%08x",
8348 s =
format (s,
"pid %d: %U", event->
pid,
8369 vlib_cli_output (vm,
"%U", format_arp_event, event);
8378 .path =
"show arp event registrations",
8380 .short_help =
"Show arp event registrations",
#define vec_validate(V, I)
Make sure vector is long enough for given index (no header, unspecified alignment) ...
#define foreach_ip_interface_address(lm, a, sw_if_index, loop, body)
Reply for IPsec: Add/delete Security Association Database entry.
Reply for classify table session dump request.
IPv6 set link local address on interface request.
#define VNET_SW_INTERFACE_FLAG_UNNUMBERED
static void send_policer_details(u8 *name, sse2_qos_pol_cfg_params_st *config, policer_read_response_type_st *templ, unix_shared_memory_queue_t *q, u32 context)
static void send_ip_address_details(vpe_api_main_t *am, unix_shared_memory_queue_t *q, u8 *ip, u16 prefix_length, u8 is_ipv6, u32 context)
DHCP Proxy config response.
Policer operational state response.
static void vl_api_dhcp_proxy_set_vss_t_handler(vl_api_dhcp_proxy_set_vss_t *mp)
ip4_fib_t * find_ip4_fib_by_table_index_or_id(ip4_main_t *im, u32 table_index_or_id, u32 flags)
Get or create an IPv4 fib.
static u8 * format_arp_event(u8 *s, va_list *args)
DHCP Proxy set / unset vss request.
static void vl_api_classify_session_dump_t_handler(vl_api_classify_session_dump_t *mp)
static void vl_api_tap_delete_t_handler(vl_api_tap_delete_t *mp, vlib_main_t *vm)
Proxy ARP add / del request.
void pg_enable_disable(u32 stream_index, int is_enable)
Classify get table IDs request.
Dump mpls gre tunnel table.
static void vl_api_set_arp_neighbor_limit_t_handler(vl_api_set_arp_neighbor_limit_t *mp)
static void send_mpls_gre_tunnel_entry(vpe_api_main_t *am, unix_shared_memory_queue_t *q, mpls_gre_tunnel_t *gt, u32 index, u32 context)
#define gid_address_ip_version(_a)
u32 bd_set_flags(vlib_main_t *vm, u32 bd_index, u32 flags, u32 enable)
Set the learn/forward/flood flags for the bridge domain.
#define vec_foreach_index(var, v)
Iterate over vector indices.
Add / del ipsec gre tunnel request.
u64 packets
packet counter
L2 interface vlan tag rewrite response.
L2 FIB add entry request.
#define clib_error_return_code(e, code, flags, args...)
u8 use_extended_sequence_number
cop: enable/disable whitelist filtration features on an interface Note: the supplied fib_id must matc...
static void * vl_api_sr_tunnel_add_del_t_print(vl_api_sr_tunnel_add_del_t *mp, void *handle)
void dhcp_compl_event_callback(u32 client_index, u32 pid, u8 *hostname, u8 is_ipv6, u8 *host_address, u8 *router_address, u8 *host_mac)
sse2_qos_pol_cfg_params_st * configs
#define hash_set(h, key, value)
l2_input_config_t * configs
Set bridge flags response.
int vnet_mpls_gre_delete_fib_tunnels(u32 fib_id)
static void vl_api_l2_fib_table_entry_t_handler(vl_api_l2_fib_table_entry_t *mp)
static void vl_api_mpls_gre_add_del_tunnel_t_handler(vl_api_mpls_gre_add_del_tunnel_t *mp)
ip4_address_t tunnel_dst
tunnel IPv4 dst address
static vpe_api_main_t vpe_api_main
static void vl_api_l2_patch_add_del_t_handler(vl_api_l2_patch_add_del_t *mp)
static clib_error_t * api_segment_config(vlib_main_t *vm, unformat_input_t *input)
DHCP Client config response.
sll srl srl sll sra u16x4 i
u32 ip4_multicast_rx_feature_vpath
Built-in multicast feature path indices.
#define gid_address_type(_a)
Args for creating a policy.
void vl_enable_disable_memory_api(vlib_main_t *vm, int yesno)
u32 * config_index_by_sw_if_index
static void svm_pop_heap(void *oldheap)
u32 ip4_route_get_next_hop_adj(ip4_main_t *im, u32 fib_index, ip4_address_t *next_hop, u32 next_hop_sw_if_index, u32 explicit_fib_index)
int vnet_tap_modify(vlib_main_t *vm, u32 orig_sw_if_index, u8 *intfc_name, u8 *hwaddr_arg, u32 *sw_if_indexp, u8 renumber, u32 custom_dev_instance)
Modifies tap interface - can result in new interface being created.
Add or Delete MAP rule from a domain (Only used for shared IPv4 per subscriber)
int map_delete_domain(u32 map_domain_index)
Reply for get next node index.
ip46_address_t tunnel_src_addr
static int mpls_ethernet_add_del_tunnel_2_t_handler(vl_api_mpls_ethernet_add_del_tunnel_2_t *mp)
#define BAD_SW_IF_INDEX_LABEL
static void vl_api_sw_interface_set_unnumbered_t_handler(vl_api_sw_interface_set_unnumbered_t *mp)
vpe parser cli string response
static void vl_api_trace_profile_apply_t_handler(vl_api_trace_profile_apply_t *mp)
static u32 vnet_mpls_uc_get_label(u32 label_exp_s_ttl)
static f64 vlib_process_wait_for_event_or_clock(vlib_main_t *vm, f64 dt)
Suspend a cooperative multi-tasking thread Waits for an event, or for the indicated number of seconds...
add or delete lisp gpe tunnel
vlib_node_registration_t flow_report_process_node
(constructor) VLIB_REGISTER_NODE (flow_report_process_node)
static void vl_api_lisp_add_del_remote_mapping_t_handler(vl_api_lisp_add_del_remote_mapping_t *mp)
static void send_mpls_fib_decap_details(vpe_api_main_t *am, unix_shared_memory_queue_t *q, show_mpls_fib_t *s, u32 rx_table_id, u32 tx_table_id, char *swif_tag, u32 context)
u32 l2vtr_configure(vlib_main_t *vlib_main, vnet_main_t *vnet_main, u32 sw_if_index, u32 vtr_op, u32 push_dot1q, u32 vtr_tag1, u32 vtr_tag2)
Configure vtag tag rewrite on the given interface.
sse2_qos_pol_action_params_st conform_action
u8 vnet_lisp_gpe_enable_disable_status(void)
VNET_SW_INTERFACE_ADMIN_UP_DOWN_FUNCTION(admin_up_down_function)
void vl_set_memory_gid(int gid)
static void vl_api_gre_add_del_tunnel_t_handler(vl_api_gre_add_del_tunnel_t *mp)
int dhcpv6_proxy_set_server(ip6_address_t *addr, ip6_address_t *src_address, u32 fib_id, int insert_vss, int is_del)
void ip4_add_del_route_next_hop(ip4_main_t *im, u32 flags, ip4_address_t *dst_address, u32 dst_address_length, ip4_address_t *next_hop, u32 next_hop_sw_if_index, u32 next_hop_weight, u32 adj_index, u32 explicit_fib_index)
static uword * vlib_process_wait_for_event(vlib_main_t *vm)
u32 ip6_route_get_next_hop_adj(ip6_main_t *im, u32 fib_index, ip6_address_t *next_hop, u32 next_hop_sw_if_index, u32 explicit_fib_index)
static int ip6_add_del_route_t_handler(vl_api_ip_add_del_route_t *mp)
static void vl_api_set_ip_flow_hash_t_handler(vl_api_set_ip_flow_hash_t *mp)
static void send_vxlan_gpe_tunnel_details(vxlan_gpe_tunnel_t *t, unix_shared_memory_queue_t *q, u32 context)
Reply for IKEv2: Set IKEv2 profile traffic selector parameters.
void vl_msg_api_send_shmem(unix_shared_memory_queue_t *q, u8 *elem)
static void vl_api_lisp_eid_table_add_del_map_t_handler(vl_api_lisp_eid_table_add_del_map_t *mp)
static vlib_main_t * vlib_get_main(void)
clib_error_t * ikev2_add_del_profile(vlib_main_t *vm, u8 *name, int is_add)
static void vl_api_bridge_flags_t_handler(vl_api_bridge_flags_t *mp)
bad routing header type(not 4)") sr_error (NO_MORE_SEGMENTS
Reply for IKEv2: Set IKEv2 profile authentication method.
static vnet_hw_interface_t * vnet_get_sup_hw_interface(vnet_main_t *vnm, u32 sw_if_index)
uword * policer_config_by_name
Vhost-user interface details structure (fix this)
u8 tunnel_dst_address[16]
static void vl_api_sw_interface_add_del_address_t_handler(vl_api_sw_interface_add_del_address_t *mp)
ethernet_main_t * ethernet_get_main(vlib_main_t *vm)
Set/unset policer classify interface.
void vl_set_global_pvt_heap_size(u64 size)
configure or disable LISP PITR node
static void vl_api_tap_connect_t_handler(vl_api_tap_connect_t *mp, vlib_main_t *vm)
Set flags on the interface.
Reply for locator_set add/del.
IKEv2: Add/delete profile.
int vnet_set_ip6_classify_intfc(vlib_main_t *vm, u32 sw_if_index, u32 table_index)
L2-GRE over IPSec packet processing.
ip4_address_t intfc_address
u32 * classify_table_index_by_sw_if_index[INPUT_ACL_N_TABLES]
ip6_address_t * multicast_address
multicast IP6 address
vnet_interface_main_t interface_main
Control ping from client to api server request.
static void vl_api_classify_session_details_t_handler(vl_api_classify_session_details_t *mp)
static void send_classify_session_details(unix_shared_memory_queue_t *q, u32 table_id, u32 match_length, vnet_classify_entry_t *e, u32 context)
ip_lookup_next_t lookup_next_index
static int ip4_add_del_route_t_handler(vl_api_ip_add_del_route_t *mp)
#define BAD_RX_SW_IF_INDEX_LABEL
LISP map resolver status.
#define REPLY_MACRO2(t, body)
clib_error_t * ip6_ioam_trace_profile_set(u32 trace_option_elts, u32 trace_type, u32 node_id, u32 app_data, int has_pot_option, u32 trace_tsp, int has_ppc_option)
int vnet_lisp_gpe_add_del_fwd_entry(vnet_lisp_gpe_add_del_fwd_entry_args_t *a, u32 *hw_if_indexp)
mpls fib decap table response
static void vl_api_ip_neighbor_add_del_t_handler(vl_api_ip_neighbor_add_del_t *mp, vlib_main_t *vm)
IPsec: Update Security Association keys.
void send_oam_event(oam_target_t *t)
static int arp_change_data_callback(u32 pool_index, u8 *new_mac, u32 sw_if_index, u32 address)
static void vl_api_vnet_get_summary_stats_t_handler(vl_api_vnet_get_summary_stats_t *mp)
u32 resulting_feature_bitmap
#define VALIDATE_SW_IF_INDEX(mp)
Reply for gpe_iface add/del.
static void send_l2fib_table_entry(vpe_api_main_t *am, unix_shared_memory_queue_t *q, l2fib_entry_key_t *l2fe_key, l2fib_entry_result_t *l2fe_res, u32 context)
Fixed length block allocator.
static void vl_api_create_loopback_t_handler(vl_api_create_loopback_t *mp)
L2TP tunnel set cookies response.
u32 miss_adj_index
Adjacency index for routing table misses, local punts, and drops.
clib_error_t * vnet_lisp_gpe_enable_disable(vnet_lisp_gpe_enable_disable_args_t *a)
static void vl_api_sw_interface_details_t_handler(vl_api_sw_interface_details_t *mp)
static void vl_api_bridge_domain_details_t_handler(vl_api_bridge_domain_details_t *mp)
static void vl_api_policer_add_del_t_handler(vl_api_policer_add_del_t *mp)
int ip6_neighbor_ra_prefix(vlib_main_t *vm, u32 sw_if_index, ip6_address_t *prefix_addr, u8 prefix_len, u8 use_default, u32 val_lifetime, u32 pref_lifetime, u8 no_advertise, u8 off_link, u8 no_autoconfig, u8 no_onlink, u8 is_no)
struct l2fib_entry_result_t::@159::@161 fields
static void vl_api_sw_interface_ip6_enable_disable_t_handler(vl_api_sw_interface_ip6_enable_disable_t *mp, vlib_main_t *vm)
vlib_counter_t * maxi
Shared wide counter pairs.
static void vl_api_mpls_add_del_decap_t_handler(vl_api_mpls_add_del_decap_t *mp)
Request for a single block of summary stats.
static void vl_api_classify_add_del_table_t_handler(vl_api_classify_add_del_table_t *mp)
Set max allowed ARP or ip6 neighbor entries request.
static f64 vlib_time_now(vlib_main_t *vm)
u32 * tunnel_index_by_sw_if_index
Mapping from sw_if_index to tunnel index.
lisp_gpe_tunnel_t * tunnels
static void vl_api_l2tpv3_create_tunnel_t_handler(vl_api_l2tpv3_create_tunnel_t *mp)
int vnet_mpls_ethernet_add_del_tunnel(u8 *dst, ip4_address_t *intfc, u32 mask_width, u32 inner_fib_id, u32 tx_sw_if_index, u32 *tunnel_sw_if_index, u8 l2_only, u8 is_add)
L2 bridge domain sw interface operational state response.
ip6_address_t our_address
static uword link_state_process(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
u64 map_error_counter_get(u32 node_index, map_error_t map_error)
Reply for IPsec: Add/delete Security Policy Database entry.
u32 vnet_config_del_feature(vlib_main_t *vm, vnet_config_main_t *cm, u32 config_string_heap_index, u32 feature_index, void *feature_config, u32 n_feature_config_bytes)
uword * stream_index_by_name
clib_error_t * ip4_set_arp_limit(u32 arp_limit)
Add / del gre tunnel request.
static void vl_api_classify_set_interface_l2_tables_t_handler(vl_api_classify_set_interface_l2_tables_t *mp)
ip_config_main_t rx_config_mains[VNET_N_CAST]
rx/tx interface/feature configuration.
ipsec_integ_alg_t integ_alg
u32 l2fib_del_entry(u64 mac, u32 bd_index)
Delete an entry from the l2fib.
static int ip6_reset_fib_t_handler(vl_api_reset_fib_t *mp)
static void vl_api_sw_interface_dump_t_handler(vl_api_sw_interface_dump_t *mp)
static vnet_hw_interface_t * vnet_get_hw_interface(vnet_main_t *vnm, u32 hw_if_index)
#define ip_prefix_len(_a)
static void vl_api_dhcp_proxy_config_t_handler(vl_api_dhcp_proxy_config_t *mp)
vnet_main_t ** vnet_mains
static void send_mpls_eth_tunnel_entry(vpe_api_main_t *am, unix_shared_memory_queue_t *q, mpls_eth_tunnel_t *et, u32 index, u32 context)
IPsec: Add/delete Security Policy Database entry.
Classify add / del session request.
#define BAD_TX_SW_IF_INDEX_LABEL
static void vl_api_ikev2_profile_set_id_t_handler(vl_api_ikev2_profile_set_id_t *mp)
Reply for lisp_add_del_map_request_itr_rlocs.
int ip6_sr_add_del_policy(ip6_sr_add_del_policy_args_t *a)
Add or Delete a Segment Routing policy.
#define vec_add1(V, E)
Add 1 element to end of vector (unspecified alignment).
int vnet_interface_name_renumber(u32 sw_if_index, u32 new_show_dev_instance)
static void map_domain_counter_unlock(map_main_t *mm)
static void vl_api_lisp_add_del_adjacency_t_handler(vl_api_lisp_add_del_adjacency_t *mp)
ip_adjacency_t * ip_add_adjacency(ip_lookup_main_t *lm, ip_adjacency_t *copy_adj, u32 n_adj, u32 *adj_index_return)
unix_shared_memory_queue_t * vl_api_client_index_to_input_queue(u32 index)
Reply to IPFIX enable and configure request.
Combined counter to hold both packets and byte differences.
struct _vlib_node_registration vlib_node_registration_t
u64 total_security_check[2]
struct vnet_sub_interface_t::@120::@121::@123 flags
#define vec_add2(V, P, N)
Add N elements to end of vector V, return pointer to new elements in P.
Dump tap interfaces request.
static void vl_api_ipsec_gre_add_del_tunnel_t_handler(vl_api_ipsec_gre_add_del_tunnel_t *mp)
l2_flood_member_t * members
ip4_address_t src_address
static void vl_api_sr_multicast_map_add_del_t_handler(vl_api_sr_multicast_map_add_del_t *mp)
ip6_address_t * tags
"Tag" list, aka segments inserted at the end of the list, past last_seg
#define hash_set_mem(h, key, value)
ip_lookup_main_t lookup_main
static void vl_api_ikev2_profile_set_ts_t_handler(vl_api_ikev2_profile_set_ts_t *mp)
void vl_set_global_memory_baseva(u64 baseva)
static vnet_sw_interface_t * vnet_get_sw_interface(vnet_main_t *vnm, u32 sw_if_index)
Reply to sw_interface_clear_stats.
uword * sub_interface_sw_if_index_by_id
cop: interface enable/disable junk filtration reply
u32 * fib_index_by_sw_if_index
Table index indexed by software interface.
static void vl_api_l2_fib_table_dump_t_handler(vl_api_l2_fib_table_dump_t *mp)
Request for lisp_eid_table_map_details.
static vlib_node_registration_t link_state_process_node
(constructor) VLIB_REGISTER_NODE (link_state_process_node)
static void dhcpv6_proxy_config_2(vl_api_dhcp_proxy_config_2_t *mp)
static void send_mpls_fib_encap_details(vpe_api_main_t *am, unix_shared_memory_queue_t *q, show_mpls_fib_t *s, u32 context)
u32 pir_tokens_per_period
vlib_node_registration_t ip4_map_node
(constructor) VLIB_REGISTER_NODE (ip4_map_node)
static void vl_api_bridge_domain_add_del_t_handler(vl_api_bridge_domain_add_del_t *mp)
Add/Delete classification table request.
vl_api_ip4_arp_event_t * arp_events
unformat_function_t unformat_vnet_sw_interface
Reply for add / del tunnel request.
IPv6 router advertisement config request.
Reply for tap delete request.
L2 bridge domain request operational state details.
int mpls_dest_cmp(void *a1, void *a2)
void vl_set_api_pvt_heap_size(u64 size)
#define clib_error_report(e)
Set bridge domain ip to mac entry response.
u8 * vlib_node_serialize(vlib_node_main_t *nm, u8 *vector, u32 max_threads, int include_nexts, int include_stats)
Reply for classify get table IDs request.
static void vl_api_ip_source_and_port_range_check_interface_add_del_t_handler(vl_api_ip_source_and_port_range_check_interface_add_del_t *mp)
#define VNET_HW_INTERFACE_FLAG_LINK_UP
static void vl_api_map_summary_stats_t_handler(vl_api_map_summary_stats_t *mp)
static void vl_api_sw_if_l2tpv3_tunnel_dump_t_handler(vl_api_sw_if_l2tpv3_tunnel_dump_t *mp)
uword * mpls_encap_by_fib_and_dest
static void dhcpv6_proxy_config(vl_api_dhcp_proxy_config_t *mp)
static void vl_api_classify_set_interface_ip_table_t_handler(vl_api_classify_set_interface_ip_table_t *mp)
void ip4_maybe_remap_adjacencies(ip4_main_t *im, u32 table_index_or_table_id, u32 flags)
Enable / disable packet generator request.
Request for gpe tunnel summary status.
int vnet_vxlan_gpe_add_del_tunnel(vnet_vxlan_gpe_add_del_tunnel_args_t *a, u32 *sw_if_indexp)
Add or Del a VXLAN GPE tunnel.
vhost-user interface create request
typedef CLIB_PACKED(struct{ip4_address_t address;u32 address_length:6;u32 index:26;})
IPv6 set link local address on interface response.
Reply for locator add/del.
TAP CLI interface details struct.
#define pool_get(P, E)
Allocate an object E from a pool P (unspecified alignment).
static void vl_api_sr_policy_add_del_t_handler(vl_api_sr_policy_add_del_t *mp)
static void vl_api_reset_fib_t_handler(vl_api_reset_fib_t *mp)
Add/del policer response.
#define ip_prefix_version(_a)
L2 interface ethernet flow point filtering response.
static uword vlib_node_add_next(vlib_main_t *vm, uword node, uword next_node)
static void send_lisp_gpe_tunnel_details(lisp_gpe_tunnel_t *tunnel, unix_shared_memory_queue_t *q, u32 context)
static void vl_api_interface_name_renumber_t_handler(vl_api_interface_name_renumber_t *mp)
trace_cfg_t * api_trace_cfg
u32 cir_tokens_per_period
static void vl_api_proxy_arp_add_del_t_handler(vl_api_proxy_arp_add_del_t *mp)
#define VNET_HW_INTERFACE_FLAG_DUPLEX_MASK
int vnet_create_loopback_interface(u32 *sw_if_indexp, u8 *mac_address)
static void vl_api_map_del_domain_t_handler(vl_api_map_del_domain_t *mp)
u32 * tunnel_index_by_sw_if_index
int vnet_lisp_add_del_adjacency(vnet_lisp_add_del_adjacency_args_t *a)
#define vec_reset_length(v)
Reset vector length to zero NULL-pointer tolerant.
ip4_address_t ipfix_collector
Request for map resolver summary status.
ip6_address_t client_address
static void vl_api_lisp_locator_dump_t_handler(vl_api_lisp_locator_dump_t *mp)
Adjacency to drop this packet.
Interface bridge mode response.
int ip6_sr_add_del_multicastmap(ip6_sr_add_del_multicastmap_args_t *a)
Add or Delete a mapping of IP6 multicast address to Segment Routing policy.
IPv6 segment routing tunnel add / del response.
map_resolver_t * map_resolvers
static vnet_sw_interface_t * vnet_get_hw_sw_interface(vnet_main_t *vnm, u32 hw_if_index)
static void vl_api_ip_address_dump_t_handler(vl_api_ip_address_dump_t *mp)
static f64 vlib_last_vector_length_per_node(vlib_main_t *vm)
OAM add / del target response.
static locator_t * unformat_lisp_locs(void *rmt_locs, u32 rloc_num)
Dump ipsec gre tunnel table.
static void vl_api_pg_enable_disable_t_handler(vl_api_pg_enable_disable_t *mp)
ip6_address_t * segments
segment list, when inserting an ip6 SR header
add or delete LISP adjacency adjacency
ipsec_gre_tunnel_t * tunnels
pool of tunnel instances
u8 pcap_file_name[pcap_name_length]
#define VNET_HW_INTERFACE_FLAG_SPEED_MASK
PacketGenerator capture packets on given interface request.
Create host-interface response.
vnet_main_t * vnet_get_main(void)
static void vl_api_ipsec_gre_tunnel_dump_t_handler(vl_api_ipsec_gre_tunnel_dump_t *mp)
L2 bridge domain operational state response.
u8 local_address_start[16]
static void dhcpv4_proxy_config(vl_api_dhcp_proxy_config_t *mp)
static void vl_api_sw_interface_ip6nd_ra_prefix_t_handler(vl_api_sw_interface_ip6nd_ra_prefix_t *mp, vlib_main_t *vm)
Reply for interface events registration.
static void vl_api_l2fib_add_del_t_handler(vl_api_l2fib_add_del_t *mp)
static uword resolver_process(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
static void vl_api_create_vhost_user_if_t_handler(vl_api_create_vhost_user_if_t *mp)
Get node index using name request.
int bd_delete_bd_index(bd_main_t *bdm, u32 bd_id)
Delete a bridge domain.
void vl_msg_api_set_handlers(int msg_id, char *msg_name, void *handler, void *cleanup, void *endian, void *print, int msg_size, int traced)
Proxy ARP add / del request.
static void vl_api_ipsec_spd_add_del_entry_t_handler(vl_api_ipsec_spd_add_del_entry_t *mp)
#define VNET_SW_INTERFACE_FLAG_PROXY_ARP
void vlib_clear_combined_counters(vlib_combined_counter_main_t *cm)
Clear a collection of combined counters.
Clear interface statistics.
#define pool_foreach(VAR, POOL, BODY)
Iterate through pool.
static void vl_api_map_add_del_rule_t_handler(vl_api_map_add_del_rule_t *mp)
static void vl_api_get_node_graph_t_handler(vl_api_get_node_graph_t *mp)
void vl_set_global_memory_size(u64 size)
#define VLIB_INIT_FUNCTION(x)
Reply for add / del ipsec gre tunnel request.
ip46_address_t local
tunnel local address
static void vl_api_af_packet_delete_t_handler(vl_api_af_packet_delete_t *mp)
static uword vlib_process_get_events(vlib_main_t *vm, uword **data_vector)
Return the first event type which has occurred and a vector of per-event data of that type...
static void vl_api_trace_profile_add_t_handler(vl_api_trace_profile_add_t *mp)
DHCP Proxy config 2 add / del request.
static void * svm_push_data_heap(svm_region_t *rp)
Classify sessions dump request.
static void vl_api_lisp_gpe_tunnel_dump_t_handler(vl_api_lisp_gpe_tunnel_dump_t *mp)
Reply for IPsec: Update Security Association keys.
static int arp_change_delete_callback(u32 pool_index, u8 *notused)
static void vl_api_l2_fib_clear_table_t_handler(vl_api_l2_fib_clear_table_t *mp)
void vl_set_memory_uid(int uid)
Reply for gpe enable/disable.
#define vec_new(T, N)
Create new vector of given type and length (unspecified alignment, no header).
vlib_combined_counter_main_t * combined_sw_if_counters
vlib_combined_counter_main_t * domain_counters
ipsec_gre_main_t ipsec_gre_main
clib_error_t * ikev2_set_profile_auth(vlib_main_t *vm, u8 *name, u8 auth_method, u8 *auth_data, u8 data_hex_format)
static void vl_api_lisp_add_del_local_eid_t_handler(vl_api_lisp_add_del_local_eid_t *mp)
Set interface source and L4 port-range request.
Reply for the vlan subinterface create request.
int dhcpv6_proxy_set_vss(u32 tbl_id, u32 oui, u32 fib_id, int is_del)
int mpls_fib_reset_labels(u32 fib_id)
#define hash_foreach(key_var, value_var, h, body)
int vl_api_memclnt_delete_callback(u32 client_index)
#define clib_error_return_fatal(e, args...)
u8 * name
optional name argument - for referencing SR tunnel/policy by name
ip6_fib_t * find_ip6_fib_by_table_index_or_id(ip6_main_t *im, u32 table_index_or_id, u32 flags)
Get or create an IPv6 fib.
struct sse2_qos_pol_cfg_params_st_::@190::@191 kbps
#define vec_elt_at_index(v, i)
Get vector value at index i checking that i is in bounds.
static vnet_sw_interface_t * vnet_get_sup_sw_interface(vnet_main_t *vnm, u32 sw_if_index)
static clib_error_t * vpe_api_hookup(vlib_main_t *vm)
int ip6_interface_enabled(vlib_main_t *vm, u32 sw_if_index)
void api_config_default_ip_route(u8 is_ipv6, u8 is_add, u32 vrf_id, u32 sw_if_index, u8 *next_hop_addr)
u32 ip4_fib_lookup_with_table(ip4_main_t *im, u32 fib_index, ip4_address_t *dst, u32 disable_default_route)
static void vl_api_pg_capture_t_handler(vl_api_pg_capture_t *mp)
static vlib_node_registration_t vpe_resolver_process_node
(constructor) VLIB_REGISTER_NODE (vpe_resolver_process_node)
int ipsec_add_del_policy(vlib_main_t *vm, ipsec_policy_t *policy, int is_add)
static void vl_api_ikev2_set_local_key_t_handler(vl_api_ikev2_set_local_key_t *mp)
static void vl_api_mpls_ethernet_add_del_tunnel_2_t_handler(vl_api_mpls_ethernet_add_del_tunnel_2_t *mp)
Get LISP map request itr rlocs status.
static vlib_cli_command_t show_ip4_arp_events
(constructor) VLIB_CLI_COMMAND (show_ip4_arp_events)
add or delete map request itr rlocs
Reply for add / del encapsulation request.
Reply for MPLS Ethernet add / delete tunnel request.
#define clib_warning(format, args...)
IPv6 interface enable / disable request.
u32 table_index_or_table_id
void ip_address_copy_addr(void *dst, ip_address_t *src)
clib_error_t * ip6_set_neighbor_limit(u32 neighbor_limit)
void vnet_l2_classify_enable_disable(u32 sw_if_index, int enable_disable)
Dump mpls fib decap table.
Control ping from client to api server request, no print json output.
int vnet_lisp_eid_table_map(u32 vni, u32 dp_id, u8 is_l2, u8 is_add)
#define vec_resize(V, N)
Resize a vector (no header, unspecified alignment) Add N elements to end of given vector V...
int vnet_arp_unset_ip4_over_ethernet(vnet_main_t *vnm, u32 sw_if_index, u32 fib_index, void *a_arg)
union sse2_qos_pol_cfg_params_st_::@190 rb
This packet is for one of our own IP addresses.
IKEv2: Set IKEv2 profile local/remote identification.
u8 * format_ipsec_integ_alg(u8 *s, va_list *args)
Trace profile apply response.
Reply for classify table id by interface index request.
Initialize a new tap interface with the given paramters.
IKEv2: Set IKEv2 profile traffic selector parameters.
int l2tpv3_interface_enable_disable(vnet_main_t *vnm, u32 sw_if_index, int enable_disable)
A collection of simple counters.
static lisp_cp_main_t * vnet_lisp_cp_get_main()
int vnet_set_ip4_classify_intfc(vlib_main_t *vm, u32 sw_if_index, u32 table_index)
static void vl_api_sw_interface_vhost_user_details_t_handler(vl_api_sw_interface_vhost_user_details_t *mp)
void ip6_add_del_route(ip6_main_t *im, ip6_add_del_route_args_t *args)
uword * bd_index_by_bd_id
u32 * classify_table_index_by_sw_if_index[POLICER_CLASSIFY_N_TABLES]
static void vl_api_delete_loopback_t_handler(vl_api_delete_loopback_t *mp)
mpls_gre_tunnel_t * gre_tunnels
Reply for tap connect request.
clib_error_t * ip6_probe_neighbor(vlib_main_t *vm, ip6_address_t *dst, u32 sw_if_index)
Classify add / del session response.
#define ip_addr_version(_a)
int map_add_del_psid(u32 map_domain_index, u16 psid, ip6_address_t *tep, u8 is_add)
l2tpv3 tunnel interface create response
static void vl_api_bridge_domain_sw_if_details_t_handler(vl_api_bridge_domain_sw_if_details_t *mp)
u32 sw_if_index
hardware interface index
u32 remote_sa_id
remote IPSec SA id
Dump l2 fib (aka bridge domain) table.
IPSec-GRE tunnel add/del arguments.
Configure IP source and L4 port-range check.
Interface set vpath response.
static void vl_api_policer_classify_set_interface_t_handler(vl_api_policer_classify_set_interface_t *mp)
uword * hw_interface_by_name
clib_error_t * vnet_lisp_enable_disable(u8 is_enable)
u8 local_address_stop[16]
void vl_api_ip_add_del_route_t_handler(vl_api_ip_add_del_route_t *mp)
clib_error_t * ip4_add_del_interface_address(vlib_main_t *vm, u32 sw_if_index, ip4_address_t *address, u32 address_length, u32 is_del)
clib_error_t * ip4_probe_neighbor(vlib_main_t *vm, ip4_address_t *dst, u32 sw_if_index)
vnet_api_error_t api_errno
void dsunlock(stats_main_t *sm)
int vnet_set_ip6_ethernet_neighbor(vlib_main_t *vm, u32 sw_if_index, ip6_address_t *a, u8 *link_layer_address, uword n_bytes_link_layer_address, int is_static)
int vnet_set_ip4_flow_hash(u32 table_id, u32 flow_hash_config)
Reply for gpe enable/disable.
ip4_address_t intfc_address
void vl_set_memory_root_path(char *root_path)
u32 gid_dictionary_lookup(gid_dictionary_t *db, gid_address_t *key)
ip6_address_t dst_address
Args required for add/del tunnel.
flow_report_main_t flow_report_main
vl_api_ip_add_del_route_t r
clib_error_t * ikev2_set_profile_id(vlib_main_t *vm, u8 *name, u8 id_type, u8 *data, int is_local)
Set L2 flags request !!! TODO - need more info, feature bits in l2_input.h.
format_function_t format_vnet_sw_interface_name
u8 next_hop_ip4_address_in_outer_vrf[4]
#define VNET_HW_INTERFACE_FLAG_DUPLEX_SHIFT
u8 is_del
Delete the tunnnel?
Reply for lisp_pitr_set_locator_set.
int vnet_lisp_pitr_set_locator_set(u8 *locator_set_name, u8 is_add)
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
static void vlib_zero_combined_counter(vlib_combined_counter_main_t *cm, u32 index)
Clear a combined counter Clears the set of per-thread u16 counters, and the shared vlib_counter_t...
static void vl_api_mpls_fib_decap_details_t_handler(vl_api_mpls_fib_decap_details_t *mp)
int vnet_l2_classify_set_tables(u32 sw_if_index, u32 ip4_table_index, u32 ip6_table_index, u32 other_table_index)
static void vl_api_ikev2_profile_set_auth_t_handler(vl_api_ikev2_profile_set_auth_t *mp)
static void dhcpv4_proxy_config_2(vl_api_dhcp_proxy_config_2_t *mp)
L2 fib clear table request, clear all mac entries in the l2 fib.
void ip6_maybe_remap_adjacencies(ip6_main_t *im, u32 table_index_or_table_id, u32 flags)
uword * fib_index_by_table_id
Hash table mapping table id to fib index.
Configure IP source and L4 port-range check reply.
Args for mapping of multicast address to policy name.
static void vlib_process_signal_event(vlib_main_t *vm, uword node_index, uword type_opaque, uword data)
static void vl_api_lisp_add_del_locator_t_handler(vl_api_lisp_add_del_locator_t *mp)
#define clib_error_get_code(err)
int vnet_classify_add_del_table(vnet_classify_main_t *cm, u8 *mask, u32 nbuckets, u32 memory_size, u32 skip, u32 match, u32 next_table_index, u32 miss_next_index, u32 *table_index, int is_add)
static void vl_api_lisp_gpe_enable_disable_t_handler(vl_api_lisp_gpe_enable_disable_t *mp)
mpls eth tunnel operational state response
static void vl_api_mpls_eth_tunnel_dump_t_handler(vl_api_mpls_eth_tunnel_dump_t *mp)
#define VNET_HW_INTERFACE_FLAG_SPEED_SHIFT
Trace profile add / del response.
int vhost_user_delete_if(vnet_main_t *vnm, vlib_main_t *vm, u32 sw_if_index)
#define gid_address_mac(_a)
Struct for VXLAN GPE tunnel.
u32 new_show_dev_instance
Set/unset l2 classification tables for an interface response.
char * vpe_api_get_version(void)
static clib_error_t * vpe_api_init(vlib_main_t *vm)
IPsec: Add/delete Security Policy Database.
static void vl_api_control_ping_t_handler(vl_api_control_ping_t *mp)
IPv6 segment routing tunnel add / del request.
IPv6 segment routing multicast map to policy add / del request.
static void vl_api_sw_interface_ip6_set_link_local_address_t_handler(vl_api_sw_interface_ip6_set_link_local_address_t *mp, vlib_main_t *vm)
int vnet_lisp_add_del_local_mapping(vnet_lisp_add_del_mapping_args_t *a, u32 *map_index_result)
Add/update/delete mapping to/in/from map-cache.
L2 FIB add entry response.
static void send_ip_details(vpe_api_main_t *am, unix_shared_memory_queue_t *q, u32 sw_if_index, u32 context)
Set/unset l2 classification tables for an interface request.
static void vl_api_lisp_eid_table_map_dump_t_handler(vl_api_lisp_eid_table_map_dump_t *mp)
Add/Delete classification table response.
clib_error_t * set_ip6_link_local_address(vlib_main_t *vm, u32 sw_if_index, ip6_address_t *address, u8 address_length)
L2 bridge domain add or delete response.
static void vl_api_classify_table_by_interface_t_handler(vl_api_classify_table_by_interface_t *mp)
Set bridge domain ip to mac entry request.
void gid_address_free(gid_address_t *a)
int ipsec_add_del_sa(vlib_main_t *vm, ipsec_sa_t *new_sa, int is_add)
static void vl_api_l2_flags_t_handler(vl_api_l2_flags_t *mp)
sse2_qos_pol_action_params_st violate_action
#define pool_put(P, E)
Free an object E in pool P.
static void vl_api_bd_ip_mac_add_del_t_handler(vl_api_bd_ip_mac_add_del_t *mp)
u8 stream_name[stream_name_length]
vhost-user interface create response
uword * sw_if_index_by_sup_and_sub
vxlan_gpe_main_t vxlan_gpe_main
add or delete lisp eid-table
static void vl_api_mpls_fib_encap_dump_t_handler(vl_api_mpls_fib_encap_dump_t *mp)
static void send_sw_interface_details(vpe_api_main_t *am, unix_shared_memory_queue_t *q, vnet_sw_interface_t *swif, u8 *interface_name, u32 context)
IOAM Trace : Set TRACE profile.
static void vl_api_delete_vhost_user_if_t_handler(vl_api_delete_vhost_user_if_t *mp)
VNET_HW_INTERFACE_LINK_UP_DOWN_FUNCTION(link_up_down_function)
static void * vnet_rewrite_get_data_internal(vnet_rewrite_header_t *rw, int max_size)
static void vlib_get_combined_counter(vlib_combined_counter_main_t *cm, u32 index, vlib_counter_t *result)
Get the value of a combined counter, never called in the speed path Scrapes the entire set of mini co...
IPv6 router advertisement prefix config response.
u16 flags_net_byte_order
Flags, e.g.
int cop_whitelist_enable_disable(cop_whitelist_enable_disable_args_t *a)
static void vl_api_lisp_add_del_map_resolver_t_handler(vl_api_lisp_add_del_map_resolver_t *mp)
u8 protocol
encapsulated protocol
static clib_error_t * link_up_down_function(vnet_main_t *vm, u32 hw_if_index, u32 flags)
u32 pg_interface_add_or_get(pg_main_t *pg, uword stream_index)
vlib_simple_counter_main_t * sw_if_counters
static void vl_api_trace_profile_del_t_handler(vl_api_trace_profile_del_t *mp)
ip46_address_range_t laddr
void ip_del_all_interface_addresses(vlib_main_t *vm, u32 sw_if_index)
Tell client about an ip4 arp resolution event.
MPLS Ethernet add/ del tunnel 2.
Set unnumbered interface add / del response.
static void vl_api_policer_dump_t_handler(vl_api_policer_dump_t *mp)
int ip6_sr_add_del_tunnel(ip6_sr_add_del_tunnel_args_t *a)
Add or Delete a Segment Routing tunnel.
Set or delete one or all ip addresses on a specified interface.
mpls gre tunnel operational state response
void vlib_cli_output(vlib_main_t *vm, char *fmt,...)
static int unformat_lisp_eid_api(gid_address_t *dst, u32 vni, u8 type, void *src, u8 len)
ip46_address_t remote
tunnel remote address
int vnet_lisp_add_del_mapping(gid_address_t *eid, locator_t *rlocs, u8 action, u8 authoritative, u32 ttl, u8 is_add, u8 is_static, u32 *res_map_index)
Adds/removes/updates mapping.
void ip_prefix_normalize(ip_prefix_t *a)
int vhost_user_dump_ifs(vnet_main_t *vnm, vlib_main_t *vm, vhost_user_intf_details_t **out_vuids)
Set/unset interface classification table response.
u32 vni
VXLAN GPE VNI in HOST byte order, shifted left 8 bits.
int ip6_neighbor_ra_config(vlib_main_t *vm, u32 sw_if_index, u8 suppress, u8 managed, u8 other, u8 ll_option, u8 send_unicast, u8 cease, u8 use_lifetime, u32 lifetime, u32 initial_count, u32 initial_interval, u32 max_interval, u32 min_interval, u8 is_no)
cop: interface enable/disable junk filtration reply
Reply to sw_interface_set_flags.
ip6_to_l2_lookup_t lookup_type
Call from VLIB_INIT_FUNCTION to set the Linux kernel inject node name.
clib_error_t * ikev2_set_local_key(vlib_main_t *vm, u8 *file)
vnet_hw_interface_class_t ethernet_hw_interface_class
clib_error_t * ikev2_set_profile_ts(vlib_main_t *vm, u8 *name, u8 protocol_id, u16 start_port, u16 end_port, ip4_address_t start_addr, ip4_address_t end_addr, int is_local)
#define gid_address_ippref(_a)
static void vl_api_l2_interface_efp_filter_t_handler(vl_api_l2_interface_efp_filter_t *mp)
sse2_qos_pol_action_params_st exceed_action
ip46_address_t tunnel_dst_addr
static void shmem_cli_output(uword arg, u8 *buffer, uword buffer_bytes)
IP Set the next node for a given node response.
uword * fib_index_by_table_id
ip6_address_t * src_address
Key (header imposition case)
This packet needs to be classified.
#define foreach_vpe_api_msg
static void vl_api_mpls_eth_tunnel_details_t_handler(vl_api_mpls_eth_tunnel_details_t *mp)
Get node index using name request.
Reply for IPsec: Add/delete Security Policy Database entry.
Reply for lisp_add_del_adjacency.
static uword vlib_process_get_events_with_type(vlib_main_t *vm, uword **data_vector, uword with_type_opaque)
L2 fib clear table response.
static void vl_api_sw_interface_set_table_t_handler(vl_api_sw_interface_set_table_t *mp)
u8 * policy_name
optional policy name
static clib_error_t * admin_up_down_function(vnet_main_t *vm, u32 hw_if_index, u32 flags)
#define VNET_HW_INTERFACE_BOND_INFO_SLAVE
Enable and configure IPFIX exporter process request.
int vnet_vxlan_add_del_tunnel(vnet_vxlan_add_del_tunnel_args_t *a, u32 *sw_if_indexp)
#define foreach_classify_add_del_table_field
mpls fib encap table response
Delete loopback interface response.
static void vl_api_cop_whitelist_enable_disable_t_handler(vl_api_cop_whitelist_enable_disable_t *mp)
IPsec: Add/delete SPD from interface.
Request for lisp-gpe protocol status.
static void vl_api_lisp_eid_table_dump_t_handler(vl_api_lisp_eid_table_dump_t *mp)
int ipsec_set_sa_key(vlib_main_t *vm, ipsec_sa_t *sa_update)
#define VLIB_EARLY_CONFIG_FUNCTION(x, n,...)
int vhost_user_create_if(vnet_main_t *vnm, vlib_main_t *vm, const char *sock_filename, u8 is_server, u32 *sw_if_index, u64 feature_mask, u8 renumber, u32 custom_dev_instance, u8 *hwaddr)
u8 is_add
1 - add, 0 - delete
vl_api_mpls_ethernet_add_del_tunnel_2_t t
PacketGenerator create interface request.
u32 * tunnel_index_by_sw_if_index
mapping from sw_if_index to tunnel index
Struct for VXLAN GPE add/del args.
#define pub_sub_handler(lca, UCA)
Set the ip flow hash config for a fib request.
void * vl_msg_api_alloc(int nbytes)
int vnet_lisp_add_del_mreq_itr_rlocs(vnet_lisp_add_del_mreq_itr_rloc_args_t *a)
Reply for Proxy ARP interface enable / disable request.
enable or disable LISP feature
Reply for interface events registration.
Reply for lisp_add_del_remote_mapping.
void l2fib_clear_table(uint keep_static)
vhost-user interface delete response
static void vl_api_vxlan_gpe_add_del_tunnel_t_handler(vl_api_vxlan_gpe_add_del_tunnel_t *mp)
u8 remote_address_stop[16]
uint64_t last_update_time
Shows relationship between vni and vrf.
static void send_sw_interface_tap_details(vpe_api_main_t *am, unix_shared_memory_queue_t *q, tapcli_interface_details_t *tap_if, u32 context)
L2 interface patch add / del response.
pending_route_t * pending_routes
int vnet_arp_set_ip4_over_ethernet(vnet_main_t *vnm, u32 sw_if_index, u32 fib_index, void *a_arg, int is_static)
void gid_address_ip_set(gid_address_t *dst, void *src, u8 version)
static void vl_api_ikev2_profile_add_del_t_handler(vl_api_ikev2_profile_add_del_t *mp)
static void vl_api_sw_interface_set_flags_t_handler(vl_api_sw_interface_set_flags_t *mp)
cop: enable/disable junk filtration features on an interface
u32 bd_add_del_ip_mac(u32 bd_index, u8 *ip_addr, u8 *mac_addr, u8 is_ip6, u8 is_add)
Add/delete IP address to MAC address mapping.
IPsec: Add/delete Security Association Database entry.
#define vec_free(V)
Free vector's memory (no header).
int map_create_domain(ip4_address_t *ip4_prefix, u8 ip4_prefix_len, ip6_address_t *ip6_prefix, u8 ip6_prefix_len, ip6_address_t *ip6_src, u8 ip6_src_len, u8 ea_bits_len, u8 psid_offset, u8 psid_length, u32 *map_domain_index, u16 mtu, u8 flags)
static void vl_api_bridge_domain_dump_t_handler(vl_api_bridge_domain_dump_t *mp)
int vnet_delete_loopback_interface(u32 sw_if_index)
#define gid_address_ippref_len(_a)
Set/unset the classification table for an interface request.
static void add_routes_in_fib(clib_bihash_kv_24_8_t *kvp, void *arg)
Delete host-interface response.
int vhost_user_modify_if(vnet_main_t *vnm, vlib_main_t *vm, const char *sock_filename, u8 is_server, u32 sw_if_index, u64 feature_mask, u8 renumber, u32 custom_dev_instance)
IPv6 segment routing multicast map to policy add / del response.
static void set_ip4_flow_hash(vl_api_set_ip_flow_hash_t *mp)
char * vpe_api_get_build_directory(void)
IPv6 interface enable / disable response.
#define clib_memcpy(a, b, c)
static u32 ip4_fib_lookup(ip4_main_t *im, u32 sw_if_index, ip4_address_t *dst)
Reply for map_summary_stats request.
u8 remote_address_start[16]
int cop_interface_enable_disable(u32 sw_if_index, int enable_disable)
int netmap_create_if(vlib_main_t *vm, u8 *if_name, u8 *hw_addr_set, u8 is_pipe, u8 is_master, u32 *sw_if_index)
static void vl_api_sw_interface_tap_dump_t_handler(vl_api_sw_interface_tap_dump_t *mp)
u32 ip6_fib_lookup_with_table(ip6_main_t *im, u32 fib_index, ip6_address_t *dst)
int vnet_mpls_add_del_decap(u32 rx_fib_id, u32 tx_fib_id, u32 label_host_byte_order, int s_bit, int next_index, int is_add)
#define IP6_ROUTE_FLAG_DEL
static void vnet_interface_counter_unlock(vnet_interface_main_t *im)
static clib_error_t * show_ip4_arp_events_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
static void send_lisp_map_resolver_details(ip_address_t *ip, unix_shared_memory_queue_t *q, u32 context)
int vnet_mpls_add_del_encap(ip4_address_t *dest, u32 fib_id, u32 *labels_host_byte_order, u32 policy_tunnel_index, int no_dst_hash, u32 *indexp, int is_add)
add or delete map-resolver
Reply for IP Neighbor add / delete request.
static void vl_api_get_node_index_t_handler(vl_api_get_node_index_t *mp)
Reply for lisp_eid_table_add_del_map.
#define pool_is_free_index(P, I)
Use free bitmap to query whether given index is free.
vlib_main_t vlib_global_main
u8 tunnel_src_address[16]
int ipsec_add_del_spd(vlib_main_t *vm, u32 spd_id, int is_add)
static void vl_api_lisp_gpe_add_del_fwd_entry_t_handler(vl_api_lisp_gpe_add_del_fwd_entry_t *mp)
int vnet_lisp_gpe_add_del_iface(vnet_lisp_gpe_add_del_iface_args_t *a, u32 *hw_if_indexp)
This packet matches an "interface route" and packets need to be passed to ARP to find rewrite string ...
void vnet_register_ip4_arp_resolution_event(vnet_main_t *vnm, void *address_arg, uword node_index, uword type_opaque, uword data)
mpls_eth_tunnel_t * eth_tunnels
u32 rsa
remote IPSec SA id
Request for map lisp locator status.
static void vl_api_mpls_gre_tunnel_dump_t_handler(vl_api_mpls_gre_tunnel_dump_t *mp)
static void vl_api_tap_modify_t_handler(vl_api_tap_modify_t *mp, vlib_main_t *vm)
clib_error_t * enable_ip6_interface(vlib_main_t *vm, u32 sw_if_index)
struct ip_adjacency_t::@143::@146 classify
IP_LOOKUP_NEXT_CLASSIFY only.
void l2fib_add_entry(u64 mac, u32 bd_index, u32 sw_if_index, u32 static_mac, u32 filter_mac, u32 bvi_mac)
Add an entry to the l2fib.
static void vl_api_mpls_add_del_encap_t_handler(vl_api_mpls_add_del_encap_t *mp)
lisp_gpe_main_t lisp_gpe_main
static void vl_api_cop_interface_enable_disable_t_handler(vl_api_cop_interface_enable_disable_t *mp)
void ip6_add_del_route_next_hop(ip6_main_t *im, u32 flags, ip6_address_t *dst_address, u32 dst_address_length, ip6_address_t *next_hop, u32 next_hop_sw_if_index, u32 next_hop_weight, u32 adj_index, u32 explicit_fib_index)
PacketGenerator capture packets response.
int vnet_proxy_arp_add_del(ip4_address_t *lo_addr, ip4_address_t *hi_addr, u32 fib_index, int is_del)
Delete loopback interface request.
#define IP4_ROUTE_FLAG_DEL
static void vl_api_ipsec_spd_add_del_t_handler(vl_api_ipsec_spd_add_del_t *mp)
static void map_domain_counter_lock(map_main_t *mm)
static void vl_api_lisp_locator_set_dump_t_handler(vl_api_lisp_locator_set_dump_t *mp)
static void vl_api_mpls_fib_encap_details_t_handler(vl_api_mpls_fib_encap_details_t *mp)
Reply for local_eid add/del.
Set/unset policer classify interface response.
u32 unnumbered_sw_if_index
u8 * policy_name
name of policy to map to
int dhcp_proxy_set_server(ip4_address_t *addr, ip4_address_t *src_address, u32 fib_id, int insert_option_82, int is_del)
static void vl_api_sw_interface_set_l2_bridge_t_handler(vl_api_sw_interface_set_l2_bridge_t *mp)
vhost-user interface modify request
struct vnet_sub_interface_t::@120 eth
int vnet_ipsec_gre_add_del_tunnel(vnet_ipsec_gre_add_del_tunnel_args_t *a, u32 *sw_if_indexp)
Add or delete ipsec-gre tunnel interface.
static void vl_api_ipfix_enable_t_handler(vl_api_ipfix_enable_t *mp)
struct _vnet_classify_main vnet_classify_main_t
u8 vnet_lisp_enable_disable_status(void)
#define foreach_flow_hash_bit
ip46_address_range_t raddr
u32 ip6_multicast_rx_feature_vpath
Set L2 XConnect between two interfaces request.
Policer iclassify operational state response.
static void send_sw_interface_flags(vpe_api_main_t *am, unix_shared_memory_queue_t *q, vnet_sw_interface_t *swif)
#define API_LINK_STATE_EVENT
static void vnet_interface_counter_lock(vnet_interface_main_t *im)
#define hash_create(elts, value_bytes)
foreach_registration_hash u8 link_state_process_up
Reply to IPFIX dump request.
struct _gid_address_t gid_address_t
DHCP proxy set / unset vss response.
static void vl_api_sw_interface_set_vpath_t_handler(vl_api_sw_interface_set_vpath_t *mp)
static void send_ipsec_gre_tunnel_details(ipsec_gre_tunnel_t *t, unix_shared_memory_queue_t *q, u32 context)
ip4_address_t src
tunnel IPv4 src address
#define VNET_SW_INTERFACE_FLAG_ADMIN_UP
#define VALIDATE_RX_SW_IF_INDEX(mp)
l2 fib table entry structure
IP neighbor add / del request.
Set L2 XConnect response.
static void vl_api_modify_vhost_user_if_t_handler(vl_api_modify_vhost_user_if_t *mp)
Reply for tap dump request.
#define pool_put_index(p, i)
Free pool element with given index.
Trace profile add / del response.
Reply for vnet_get_summary_stats request.
IPv6 router advertisement config response.
static void vl_api_add_node_next_t_handler(vl_api_add_node_next_t *mp)
Request for eid table summary status.
static void vl_api_gre_tunnel_dump_t_handler(vl_api_gre_tunnel_dump_t *mp)
ip4_fib_t * fibs
Vector of FIBs.
uint32_t cir_tokens_per_period
static void vl_api_lisp_get_map_request_itr_rlocs_t_handler(vl_api_lisp_get_map_request_itr_rlocs_t *mp)
ip4_address_t dst_address
#define IP4_ROUTE_FLAG_ADD
int vnet_lisp_clear_all_remote_adjacencies(void)
static void set_ip6_flow_hash(vl_api_set_ip_flow_hash_t *mp)
static void vl_api_ipsec_sa_set_key_t_handler(vl_api_ipsec_sa_set_key_t *mp)
Request for locator_set summary status.
Reply for enable / disable packet generator.
ip_lookup_main_t lookup_main
clib_error_t * policer_add_del(vlib_main_t *vm, u8 *name, sse2_qos_pol_cfg_params_st *cfg, u32 *policer_index, u8 is_add)
Struct for VXLAN GPE node state.
Get list of policer classify interfaces and tables.
int vpe_oam_add_del_target(ip4_address_t *src_address, ip4_address_t *dst_address, u32 fib_id, int is_add)
map/unmap vni/bd_index to vrf
#define IP6_ROUTE_FLAG_NOT_LAST_IN_GROUP
IPSec-GRE tunnel parameters.
int create_l2tpv3_ipv6_tunnel(l2t_main_t *lm, ip6_address_t *client_address, ip6_address_t *our_address, u32 local_session_id, u32 remote_session_id, u64 local_cookie, u64 remote_cookie, int l2_sublayer_present, u32 encap_fib_index, u32 *sw_if_index)
Reply for add / del route request.
gid_dictionary_t mapping_index_by_gid
IPv6 router advertisement prefix config request.
static int event_data_cmp(void *a1, void *a2)
static void vl_api_show_version_t_handler(vl_api_show_version_t *mp)
static void vl_api_lisp_enable_disable_t_handler(vl_api_lisp_enable_disable_t *mp)
Reply for IPsec: Add/delete SPD from interface.
Reply for MPLS decap add / del request.
Reply for tap modify request.
int stats_memclnt_delete_callback(u32 client_index)
Reply for proxy arp add / del request.
Control ping from the client to the server response.
clib_error_t * pg_capture(pg_capture_args_t *a)
locator_set_t * locator_set_pool
u32 ip6_unicast_rx_feature_vpath
void l2_efp_filter_configure(vnet_main_t *vnet_main, u32 sw_if_index, u32 enable)
Enable/disable the EFP Filter check on the subinterface.
int dhcp_client_config(vlib_main_t *vm, u32 sw_if_index, u8 *hostname, u32 is_add, u32 client_index, void *event_callback, u32 pid)
static void vl_api_classify_table_ids_t_handler(vl_api_classify_table_ids_t *mp)
Status of lisp pitr, enable or disable.
static void vl_api_lisp_add_del_map_request_itr_rlocs_t_handler(vl_api_lisp_add_del_map_request_itr_rlocs_t *mp)
static void vl_api_vxlan_tunnel_dump_t_handler(vl_api_vxlan_tunnel_dump_t *mp)
IKEv2: Set IKEv2 profile authentication method.
Bitmaps built as vectors of machine words.
uword * mpls_decap_by_rx_fib_and_label
Set the next node for a given node request.
uword * next_slot_by_node
static void send_bridge_domain_details(unix_shared_memory_queue_t *q, l2_bridge_domain_t *bd_config, u32 n_sw_ifs, u32 context)
void vnet_flow_reports_reset(flow_report_main_t *frm)
static void vl_api_mpls_gre_tunnel_details_t_handler(vl_api_mpls_gre_tunnel_details_t *mp)
Query relative index via node names.
Is Address Reachable request - DISABLED.
u8 is_del
Delete the policy?
add or delete locator_set
u32 vnet_config_add_feature(vlib_main_t *vm, vnet_config_main_t *cm, u32 config_string_heap_index, u32 feature_index, void *feature_config, u32 n_feature_config_bytes)
static void vlib_zero_simple_counter(vlib_simple_counter_main_t *cm, u32 index)
Clear a simple counter Clears the set of per-thread u16 counters, and the u64 counter.
int vnet_tap_delete(vlib_main_t *vm, u32 sw_if_index)
Delete TAP interface.
vnet_classify_main_t vnet_classify_main
Request for a single block of summary stats.
Set max allowed ARP or ip6 neighbor entries response.
ipsec_protocol_t protocol
Reply for MAP domain add.
static void vl_api_sw_interface_vhost_user_dump_t_handler(vl_api_sw_interface_vhost_user_dump_t *mp)
#define IP_FLOW_HASH_DEFAULT
Default: 5-tuple without the "reverse" bit.
void vnet_ip6_fib_init(ip6_main_t *im, u32 fib_index)
#define vec_set(v, val)
Set all vector elements to given value.
int vnet_unset_ip6_ethernet_neighbor(vlib_main_t *vm, u32 sw_if_index, ip6_address_t *a, u8 *link_layer_address, uword n_bytes_link_layer_address)
IPv6 segment routing policy add / del response.
static void vl_api_map_rule_dump_t_handler(vl_api_map_rule_dump_t *mp)
OAM add / del target request.
static void vl_api_input_acl_set_interface_t_handler(vl_api_input_acl_set_interface_t *mp)
static void * clib_mem_alloc(uword size)
int vnet_classify_add_del_session(vnet_classify_main_t *cm, u32 table_index, u8 *match, u32 hit_next_index, u32 opaque_index, i32 advance, int is_add)
Classify table ids by interface index request.
mpls gre tunnel operational state response
static void send_eid_table_map_pair(hash_pair_t *p, unix_shared_memory_queue_t *q, u32 context)
#define IP6_ROUTE_FLAG_FIB_INDEX
static void send_bd_sw_if_details(l2input_main_t *l2im, unix_shared_memory_queue_t *q, l2_flood_member_t *member, u32 bd_id, u32 context)
vxlan_gpe_tunnel_t * tunnels
vector of encap tunnel instances
#define vec_elt(v, i)
Get vector value at index i.
void vl_set_memory_region_name(char *name)
void dslock(stats_main_t *sm, int release_hint, int tag)
static void send_lisp_eid_table_details(mapping_t *mapit, unix_shared_memory_queue_t *q, u32 context, u8 filter)
static void send_policer_classify_details(u32 sw_if_index, u32 table_index, unix_shared_memory_queue_t *q, u32 context)
u32 resulting_feature_bitmap
int vnet_lisp_add_del_locator_set(vnet_lisp_add_del_locator_set_args_t *a, u32 *ls_result)
#define gid_address_ip(_a)
Status of lisp, enable or disable.
static void vl_api_want_ip4_arp_events_t_handler(vl_api_want_ip4_arp_events_t *mp)
vlib_node_t * vlib_get_node_by_name(vlib_main_t *vm, u8 *name)
static void vl_api_l2tpv3_set_tunnel_cookies_t_handler(vl_api_l2tpv3_set_tunnel_cookies_t *mp)
Interface bridge mode request.
void vnet_register_ip6_neighbor_resolution_event(vnet_main_t *vnm, void *address_arg, uword node_index, uword type_opaque, uword data)
static void vl_api_cli_request_t_handler(vl_api_cli_request_t *mp)
static void vl_api_af_packet_create_t_handler(vl_api_af_packet_create_t *mp)
#define gid_address_vni(_a)
u32 decap_fib_index
FIB indices - inner IP packet lookup here.
int vnet_gre_add_del_tunnel(vnet_gre_add_del_tunnel_args_t *a, u32 *sw_if_indexp)
static void vl_api_lisp_pitr_set_locator_set_t_handler(vl_api_lisp_pitr_set_locator_set_t *mp)
u32 local_sa_id
local IPSec SA id
static void vl_api_classify_table_info_t_handler(vl_api_classify_table_info_t *mp)
VLIB_CLI_COMMAND(set_interface_ip_source_and_port_range_check_command, static)
static void * vl_api_sr_policy_add_del_t_print(vl_api_sr_policy_add_del_t *mp, void *handle)
static void vl_api_sw_interface_set_l2_xconnect_t_handler(vl_api_sw_interface_set_l2_xconnect_t *mp)
ip4_address_t dst
tunnel IPv4 dst address
static void vl_api_show_lisp_status_t_handler(vl_api_show_lisp_status_t *mp)
static void vl_api_map_add_domain_t_handler(vl_api_map_add_domain_t *mp)
int vnet_proxy_arp_fib_reset(u32 fib_id)
IKEv2: Set IKEv2 local RSA private key.
u32 bd_find_or_add_bd_index(bd_main_t *bdm, u32 bd_id)
Get or create a bridge domain.
static void vl_api_classify_add_del_session_t_handler(vl_api_classify_add_del_session_t *mp)
#define RESOLUTION_PENDING_EVENT
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
vnet_interface_main_t * interface_main
static void vl_api_l2tpv3_interface_enable_disable_t_handler(vl_api_l2tpv3_interface_enable_disable_t *mp)
#define hash_foreach_pair(p, v, body)
vlib_node_main_t node_main
Reply for gpe_fwd_entry add/del.
#define API_ADMIN_UP_DOWN_EVENT
static void vl_api_ipsec_interface_add_del_spd_t_handler(vl_api_ipsec_interface_add_del_spd_t *mp)
static void vl_api_show_lisp_pitr_t_handler(vl_api_show_lisp_pitr_t *mp)
Process a vpe parser cli string request.
static void send_vxlan_tunnel_details(vxlan_tunnel_t *t, unix_shared_memory_queue_t *q, u32 context)
add or delete locator for locator_set
IOAM Trace enable trace profile for a flow.
#define VXLAN_TUNNEL_IS_IPV4
L2 interface ethernet flow point filtering enable/disable request.
#define vec_sort_with_function(vec, f)
Sort a vector using the supplied element comparison function.
#define IP4_ROUTE_FLAG_FIB_INDEX
int vnet_l2_patch_add_del(u32 rx_sw_if_index, u32 tx_sw_if_index, int is_add)
vnet_sw_interface_t * sw_interfaces
int vnet_lisp_add_del_locator(vnet_lisp_add_del_locator_set_args_t *a, locator_set_t *ls, u32 *ls_result)
locator_pair_t * locator_pairs
static void vl_api_ipfix_dump_t_handler(vl_api_ipfix_dump_t *mp)
PacketGenerator create interface response.
static void vl_api_map_domain_dump_t_handler(vl_api_map_domain_dump_t *mp)
Create loopback interface request.
Reply for interface events registration.
Set unnumbered interface add / del request.
uword * locator_set_index_by_name
add or delete remote static mapping
int ip4_source_and_port_range_check_add_del(ip4_address_t *address, u32 length, u32 vrf_id, u16 *low_ports, u16 *high_ports, int is_add)
L2 interface vlan tag rewrite configure request.
static void vl_api_pg_create_interface_t_handler(vl_api_pg_create_interface_t *mp)
u32 table_index_or_table_id
void * get_unformat_vnet_sw_interface(void)
get_node_graph - get a copy of the vpp node graph including the current set of graph arcs...
static u64 l2fib_make_key(u8 *mac_address, u16 bd_index)
void gid_address_copy(gid_address_t *dst, gid_address_t *src)
l2_bridge_domain_t * bd_configs
ip6_address_t * dst_address
A collection of combined counters.
Add / del MPLS decapsulation request.
Create a new subinterface with the given vlan id.
static void send_sw_interface_flags_deleted(vpe_api_main_t *am, unix_shared_memory_queue_t *q, u32 sw_if_index)
static void vl_api_l2tpv3_set_lookup_key_t_handler(vl_api_l2tpv3_set_lookup_key_t *mp)
u8 ** tunnel_names
tunnel names
static void send_sw_if_l2tpv3_tunnel_details(vpe_api_main_t *am, unix_shared_memory_queue_t *q, l2t_session_t *s, l2t_main_t *lm, u32 context)
Create loopback interface response.
u32 * tunnel_index_by_sw_if_index
L2 interface patch add / del request.
#define hash_get_mem(h, key)
void l2fib_table_dump(u32 bd_index, l2fib_entry_key_t **l2fe_key, l2fib_entry_result_t **l2fe_res)
struct clib_bihash_value offset
template key/value backing page structure
#define IP4_ROUTE_FLAG_NOT_LAST_IN_GROUP
static void vl_api_lisp_gpe_add_del_iface_t_handler(vl_api_lisp_gpe_add_del_iface_t *mp)
static void vl_api_sw_interface_clear_stats_t_handler(vl_api_sw_interface_clear_stats_t *mp)
static void vl_api_ipsec_sad_add_del_entry_t_handler(vl_api_ipsec_sad_add_del_entry_t *mp)
policer_read_response_type_st * policer_templates
u32 l2vtr_get(vlib_main_t *vlib_main, vnet_main_t *vnet_main, u32 sw_if_index, u32 *vtr_op, u32 *push_dot1q, u32 *vtr_tag1, u32 *vtr_tag2)
Get vtag tag rewrite on the given interface.
u32 encap_fib_index
FIB indices - tunnel partner lookup here.
Interface set vpath request.
static void send_gre_tunnel_details(gre_tunnel_t *t, unix_shared_memory_queue_t *q, u32 context)
Modify a tap interface with the given paramters.
static void vl_api_get_next_index_t_handler(vl_api_get_next_index_t *mp)
char * vpe_api_get_build_date(void)
policer_classify_main_t policer_classify_main
ipsec_crypto_alg_t crypto_alg
void vlib_clear_simple_counters(vlib_simple_counter_main_t *cm)
Clear a collection of simple counters.
#define VLIB_REGISTER_NODE(x,...)
void vl_noop_handler(void *mp)
int vnet_lisp_add_del_map_resolver(vnet_lisp_add_del_map_resolver_args_t *a)
ip4_main_t ip4_main
Global ip4 main structure.
#define IP4_ROUTE_FLAG_TABLE_ID
u32 ip4_unicast_rx_feature_vpath
Built-in unicast feature path indice, see ip_feature_init_cast()
static void vl_api_dhcp_proxy_config_2_t_handler(vl_api_dhcp_proxy_config_2_t *mp)
int vnet_tap_connect_renumber(vlib_main_t *vm, u8 *intfc_name, u8 *hwaddr_arg, u32 *sw_if_indexp, u8 renumber, u32 custom_dev_instance)
Renumber a TAP interface.
int mpls_label_cmp(void *a1, void *a2)
u32 sw_if_index
vnet intfc sw_if_index
Register for ip4 arp resolution events.
This packet is to be rewritten and forwarded to the next processing node.
#define IP6_ROUTE_FLAG_ADD
static void vl_api_ip_dump_t_handler(vl_api_ip_dump_t *mp)
int dhcp_proxy_set_server_2(ip4_address_t *addr, ip4_address_t *src_address, u32 rx_fib_id, u32 server_fib_id, int insert_option_82, int is_del)
static void vl_api_dhcp_client_config_t_handler(vl_api_dhcp_client_config_t *mp)
static void vl_api_netmap_create_t_handler(vl_api_netmap_create_t *mp)
#define vec_foreach(var, vec)
Vector iterator.
#define foreach_registration_hash
clib_error_t * clear_ioam_rewrite_fn(void)
#define VALIDATE_TX_SW_IF_INDEX(mp)
Set bridge flags (such as L2_LEARN, L2_FWD, L2_FLOOD, L2_UU_FLOOD, or L2_ARP_TERM) request...
Reply for map_resolver add/del.
Request for map request itr rlocs summary status.
static void vl_api_is_address_reachable_t_handler(vl_api_is_address_reachable_t *mp)
enable or disable lisp-gpe protocol
i16 explicit_fib_index
Force re-lookup in a different FIB.
VLIB_API_INIT_FUNCTION(vpe_api_hookup)
static void vl_api_l2_interface_vlan_tag_rewrite_t_handler(vl_api_l2_interface_vlan_tag_rewrite_t *mp)
clib_error_t * vnet_sw_interface_set_flags(vnet_main_t *vnm, u32 sw_if_index, u32 flags)
static void vl_api_proxy_arp_intfc_enable_disable_t_handler(vl_api_proxy_arp_intfc_enable_disable_t *mp)
static void vl_api_create_vlan_subif_t_handler(vl_api_create_vlan_subif_t *mp)
static void vl_api_vxlan_add_del_tunnel_t_handler(vl_api_vxlan_add_del_tunnel_t *mp)
int vnet_set_policer_classify_intfc(vlib_main_t *vm, u32 sw_if_index, u32 ip4_table_index, u32 ip6_table_index, u32 l2_table_index, u32 is_add)
clib_error_t * ip6_add_del_interface_address(vlib_main_t *vm, u32 sw_if_index, ip6_address_t *address, u32 address_length, u32 is_del)
uword * adj_index_by_dst_address[33]
format_function_t format_mpls_encap_index
void * vl_msg_api_alloc_as_if_client(int nbytes)
int vl_msg_api_version_check(vl_api_memclnt_create_t *mp)
static void vl_api_mpls_ethernet_add_del_tunnel_t_handler(vl_api_mpls_ethernet_add_del_tunnel_t *mp)
#define clib_error_return(e, args...)
Set interface source and L4 port-range response.
static void vl_api_vxlan_gpe_tunnel_dump_t_handler(vl_api_vxlan_gpe_tunnel_dump_t *mp)
#define IP6_ROUTE_FLAG_TABLE_ID
vhost-user interface delete request
clib_error_t * vnet_create_sw_interface(vnet_main_t *vnm, vnet_sw_interface_t *template, u32 *sw_if_index)
static void * ip_interface_address_get_address(ip_lookup_main_t *lm, ip_interface_address_t *a)
Reply for IKEv2: Add/delete profile.
vhost-user interface modify response
void ip4_add_del_route(ip4_main_t *im, ip4_add_del_route_args_t *args)
static void vl_api_policer_classify_dump_t_handler(vl_api_policer_classify_dump_t *mp)
Interface details structure (fix this)
int af_packet_create_if(vlib_main_t *vm, u8 *host_if_name, u8 *hw_addr_set, u32 *sw_if_index)
static void vl_api_noprint_control_ping_t_handler(vl_api_noprint_control_ping_t *mp)
MPLS Ethernet add / del tunnel request.
uint32_t pir_tokens_per_period
clib_error_t * disable_ip6_interface(vlib_main_t *vm, u32 sw_if_index)
ethernet_interface_t * interfaces
l2tpv3 tunnel interface create request
#define VXLAN_GPE_TUNNEL_IS_IPV4
Flags for vxlan_gpe_tunnel_t.
int ip6_source_and_port_range_check_add_del(ip6_address_t *address, u32 length, u32 vrf_id, u16 *low_ports, u16 *high_ports, int is_add)
static void vl_api_netmap_delete_t_handler(vl_api_netmap_delete_t *mp)
Associate the specified interface with a fib table.
static uword vnet_sw_interface_get_flags(vnet_main_t *vnm, u32 sw_if_index)
u8 * format_ipsec_crypto_alg(u8 *s, va_list *args)
Reply for classify table info request.
Tell client about a DHCP completion event.
int ip6_ioam_set_destination(ip6_address_t *addr, u32 mask_width, u32 vrf_id, int is_add, int is_pop, int is_none)
static void send_sw_interface_vhost_user_details(vpe_api_main_t *am, unix_shared_memory_queue_t *q, vhost_user_intf_details_t *vui, u32 context)
int vnet_mpls_gre_add_del_tunnel(ip4_address_t *src, ip4_address_t *dst, ip4_address_t *intfc, u32 mask_width, u32 inner_fib_id, u32 outer_fib_id, u32 *tunnel_sw_if_index, u8 l2_only, u8 is_add)
Dump mpls eth tunnel table.
static void vl_api_oam_add_del_t_handler(vl_api_oam_add_del_t *mp)
Add / del MPLS encapsulation request.
void vl_set_api_memory_size(u64 size)
u8 is_del
Delete the mapping.
int vnet_tap_dump_ifs(tapcli_interface_details_t **out_tapids)
Dump TAP interfaces.
int ipsec_set_interface_spd(vlib_main_t *vm, u32 sw_if_index, u32 spd_id, int is_add)
u32 * fib_index_by_sw_if_index
static void vl_api_mpls_fib_decap_dump_t_handler(vl_api_mpls_fib_decap_dump_t *mp)
vnet_policer_main_t vnet_policer_main
int mpls_fib_index_cmp(void *a1, void *a2)
int vnet_add_del_ip4_arp_change_event(vnet_main_t *vnm, void *data_callback, u32 pid, void *address_arg, uword node_index, uword type_opaque, uword data, int is_add)
DHCP Client config add / del request.
static void vl_api_sr_tunnel_add_del_t_handler(vl_api_sr_tunnel_add_del_t *mp)
static void vl_api_create_subif_t_handler(vl_api_create_subif_t *mp)
void vlib_cli_input(vlib_main_t *vm, unformat_input_t *input, vlib_cli_output_function_t *function, uword function_arg)
void ip_address_set(ip_address_t *dst, void *src, u8 version)
Control ping from the client to the server response.
int dhcp_proxy_set_option82_vss(u32 vrf_id, u32 oui, u32 fib_id, int is_del)
static void vl_api_sw_interface_ip6nd_ra_config_t_handler(vl_api_sw_interface_ip6nd_ra_config_t *mp, vlib_main_t *vm)
static void send_lisp_locator_details(lisp_cp_main_t *lcm, locator_t *loc, unix_shared_memory_queue_t *q, u32 context)
vnet_config_main_t config_main
static void send_lisp_locator_set_details(lisp_cp_main_t *lcm, locator_set_t *lsit, unix_shared_memory_queue_t *q, u32 context, u32 ls_index)
mpls_unicast_header_t * labels
Request for lisp pitr status.
clib_error_t * vl_api_init(vlib_main_t *vm)
DHCP Proxy config add / del request.
ip4_address_t tunnel_src
tunnel IPv4 src address
struct l2fib_entry_key_t::@155::@157 fields
CLIB vectors are ubiquitous dynamically resized arrays with by user defined "headers".
u32 ip6_fib_lookup(ip6_main_t *im, u32 sw_if_index, ip6_address_t *dst)
static ip_adjacency_t * ip_get_adjacency(ip_lookup_main_t *lm, u32 adj_index)
u32 unnumbered_sw_if_index
Set the ip flow hash config for a fib response.
int l2tpv3_set_tunnel_cookies(l2t_main_t *lm, u32 sw_if_index, u64 new_local_cookie, u64 new_remote_cookie)
static void vl_api_ip_source_and_port_range_check_add_del_t_handler(vl_api_ip_source_and_port_range_check_add_del_t *mp)
struct _unix_shared_memory_queue unix_shared_memory_queue_t
static void vl_api_lisp_map_resolver_dump_t_handler(vl_api_lisp_map_resolver_dump_t *mp)
int netmap_delete_if(vlib_main_t *vm, u8 *host_if_name)
int af_packet_delete_if(vlib_main_t *vm, u8 *host_if_name)
Reply for MAP domain del.
int set_ip_source_and_port_range_check(vlib_main_t *vm, u32 *fib_index, u32 sw_if_index, u32 is_add)
L2 bridge domain add or delete request.
IPv6 segment routing policy add / del request.
static uword pool_elts(void *v)
Number of active elements in a pool.