aboutsummaryrefslogtreecommitdiffstats
path: root/resources/templates
AgeCommit message (Expand)AuthorFilesLines
2018-01-16FIX: Kubernetes ch-eth-1drcl2bdbasemaclrn-eth-8memif-4drcl2xc topologyPeter Mikus1-2/+2
2018-01-10CSIT-866: wrk onboarding in CSITTibor Frank1-0/+1
2018-01-09Add static MAC entries to configurationPeter Mikus4-2/+34
2018-01-04CSIT-817: L2 keywords for SRv6Jan Gelety1-0/+1
2018-01-02CSIT-870 Kubernetes/Ligato integrationPeter Mikus23-983/+1086
2017-12-15CSIT-816: SRv6 L1 KWsJan Gelety8-0/+8
2017-10-24Split container sections in reportPeter Mikus2-0/+0
2017-10-20Rename all container based test following name conventionsPeter Mikus4-0/+0
2017-10-18CSIT-748 Add K8S 2memif-2vnf topologiesPeter Mikus2-0/+542
2017-10-12CSIT-748 vnf-agent integrationPeter Mikus6-0/+850
2017-10-11CSIT-811 HC Test: BGP tests - IPv4 CRUDselias3-0/+3
2017-10-09FIB table add/deleteNeale Ranns3-2/+3
2017-10-09CSIT-768: Refactor Python container librariesPeter Mikus1-8/+8
2017-09-27HC Test: update ODL startup in hc2vpp jobsselias3-34/+12
2017-08-28FIX: SNAT -> NAT renaming of APIPeter Mikus15-7/+7
2017-08-14CSIT-777: L1 keywords for MACIP ACL testsJan Gelety5-0/+5
2017-08-10Fix: Memif API changePeter Mikus1-4/+4
2017-08-09CSIT-611: HC Test: Lisp suite updates + LispGPEselias2-0/+2
2017-07-06CSIT-622: Stateful Security Groups perf testsJan Gelety4-0/+4
2017-07-04CSIT-651 Add keywords and template for memifPeter Mikus3-0/+10
2017-06-30HC Test: bugfix for SLAAC and ODL testsselias1-1/+1
2017-06-29CSIT-687: Directory structure reorganizationTibor Frank1-1/+1
2017-05-17CSIT-563: HC Test: improved Lisp test coveragejan.hradil5-0/+5
2017-04-25CSIT-534 HC Test: policer testsjan.hradil2-0/+2
2017-04-18CSIT-545: Performance tests for SNATTibor Frank6-0/+6
2017-04-12HC Test: update URL paths with ODL mountpointselias3-3/+3
2017-04-11CSIT-529 HC Test: SLAACjan.hradil1-0/+1
2017-04-10IPsec Multi-Tunnel performance test suiteKirill Rybalchenko1-0/+1
2017-03-30CSIT-526 HC test: DHCP relayselias2-0/+2
2017-03-22HC Test: update URL pathsselias3-3/+3
2017-03-21CSIT-536 HC Test: support testing with ODL clientselias23-29/+51
2017-03-17CSIT-528 HC Test: proxyARP test suiteselias1-0/+1
2017-03-16fix typo in VAT template interface_vrf_dumpselias1-1/+1
2017-03-15CSIT-523 HC Test: routingselias2-0/+2
2017-03-01Remove unused VRF paramter from IP neighbour Add/delNeale Ranns1-1/+1
2017-02-28HC Test: Add missing VAT template - interface vrf dumpselias1-0/+1
2017-02-15HC Test: ACL updatesselias3-0/+2
2017-01-10CSIT-482: HC Test - NATselias4-0/+4
2016-12-16CSIT-484: HC Test: Lispselias3-0/+3
2016-12-01CSIT-481: HC Test: Port mirroring (SPAN)selias2-1/+2
2016-11-25CSIT-425: HC Test: NSH-SFC test suiteselias2-0/+2
2016-11-08CSIT-423: HC Test: delete VxLAN interfaceselias1-0/+1
2016-10-31CSIT-385 CSIT-386 IPv4/IPv6 IPsec testsPatrik Hrnciar1-0/+1
2016-10-20CSIT-427: Honeycomb ietf-ACL tests - L2selias1-0/+1
2016-10-07CSIT-257: L2enc - l2-eth-lispgpe-ip4 - L2BDZdeno Olsovsky3-2/+3
2016-10-05Update of VPP_STABLE_VERJan Gelety2-2/+2
2016-10-04CSIT-227, CSIT-240 IPv4/IPv6 Multipath routing testsPatrik Hrnciar1-1/+1
2016-10-03CSIT-235: Switched Port Analyzer mirroring (SPAN) - IPv4selias1-0/+1
2016-10-03LISP - implement changes done in VPP-376Tibor Frank1-1/+1
2016-09-22CSIT-411 Show Vhost Userpmikus1-0/+1
="p">)) { rv = VNET_API_ERROR_INVALID_ARGUMENT; goto reply; } args.log2_ring_size = min_log2 (ring_size); /* buffer size */ args.buffer_size = MEMIF_DEFAULT_BUFFER_SIZE; if (mp->buffer_size) { args.buffer_size = ntohs (mp->buffer_size); } /* MAC address */ if (memcmp (mp->hw_addr, empty_hw_addr, 6) != 0) { memcpy (args.hw_addr, mp->hw_addr, 6); args.hw_addr_set = 1; } rv = memif_create_if (vm, &args); vec_free (args.secret); reply: /* *INDENT-OFF* */ REPLY_MACRO2 (VL_API_MEMIF_CREATE_REPLY, ({ rmp->sw_if_index = htonl (args.sw_if_index); })); /* *INDENT-ON* */ } /** * @brief Message handler for memif_delete API. * @param mp vl_api_memif_delete_t * mp the api message */ void vl_api_memif_delete_t_handler (vl_api_memif_delete_t * mp) { memif_main_t *mm = &memif_main; vlib_main_t *vm = vlib_get_main (); vnet_main_t *vnm = vnet_get_main (); vl_api_memif_delete_reply_t *rmp; vnet_hw_interface_t *hi = vnet_get_sup_hw_interface (vnm, ntohl (mp->sw_if_index)); memif_if_t *mif; int rv = 0; if (hi == NULL || memif_device_class.index != hi->dev_class_index) rv = VNET_API_ERROR_INVALID_SW_IF_INDEX; else { mif = pool_elt_at_index (mm->interfaces, hi->dev_instance); rv = memif_delete_if (vm, mif); } REPLY_MACRO (VL_API_MEMIF_DELETE_REPLY); } static void send_memif_details (vl_api_registration_t * reg, memif_if_t * mif, vnet_sw_interface_t * swif, u8 * interface_name, u32 context) { vl_api_memif_details_t *mp; vnet_main_t *vnm = vnet_get_main (); memif_main_t *mm = &memif_main; vnet_hw_interface_t *hwif; memif_socket_file_t *msf; hwif = vnet_get_sup_hw_interface (vnm, swif->sw_if_index); mp = vl_msg_api_alloc (sizeof (*mp)); clib_memset (mp, 0, sizeof (*mp)); mp->_vl_msg_id = htons (VL_API_MEMIF_DETAILS + mm->msg_id_base); mp->context = context; mp->sw_if_index = htonl (swif->sw_if_index); strncpy ((char *) mp->if_name, (char *) interface_name, ARRAY_LEN (mp->if_name) - 1); if (hwif->hw_address) { memcpy (mp->hw_addr, hwif->hw_address, ARRAY_LEN (mp->hw_addr)); } mp->id = clib_host_to_net_u32 (mif->id); msf = pool_elt_at_index (mm->socket_files, mif->socket_file_index); mp->socket_id = clib_host_to_net_u32 (msf->socket_id); mp->role = (mif->flags & MEMIF_IF_FLAG_IS_SLAVE) ? 1 : 0; mp->ring_size = htonl (1 << mif->run.log2_ring_size); mp->buffer_size = htons (mif->run.buffer_size); mp->admin_up_down = (swif->flags & VNET_SW_INTERFACE_FLAG_ADMIN_UP) ? 1 : 0; mp->link_up_down = (hwif->flags & VNET_HW_INTERFACE_FLAG_LINK_UP) ? 1 : 0; vl_api_send_msg (reg, (u8 *) mp); } /** * @brief Message handler for memif_dump API. * @param mp vl_api_memif_dump_t * mp the api message */ void vl_api_memif_dump_t_handler (vl_api_memif_dump_t * mp) { memif_main_t *mm = &memif_main; vnet_main_t *vnm = vnet_get_main (); vnet_sw_interface_t *swif; memif_if_t *mif; u8 *if_name = 0; vl_api_registration_t *reg; reg = vl_api_client_index_to_registration (mp->client_index); if (!reg) return; /* *INDENT-OFF* */ pool_foreach (mif, mm->interfaces, ({ swif = vnet_get_sw_interface (vnm, mif->sw_if_index); if_name = format (if_name, "%U%c", format_vnet_sw_interface_name, vnm, swif, 0); send_memif_details (reg, mif, swif, if_name, mp->context); _vec_len (if_name) = 0; })); /* *INDENT-ON* */ vec_free (if_name); } static void send_memif_socket_filename_details (vl_api_registration_t * reg, u32 socket_id, u8 * socket_filename, u32 context) { vl_api_memif_socket_filename_details_t *mp; memif_main_t *mm = &memif_main; mp = vl_msg_api_alloc (sizeof (*mp)); clib_memset (mp, 0, sizeof (*mp)); mp->_vl_msg_id = htons (VL_API_MEMIF_SOCKET_FILENAME_DETAILS + mm->msg_id_base); mp->context = context; mp->socket_id = clib_host_to_net_u32 (socket_id); strncpy ((char *) mp->socket_filename, (char *) socket_filename, ARRAY_LEN (mp->socket_filename) - 1); vl_api_send_msg (reg, (u8 *) mp); } /** * @brief Message handler for memif_socket_filename_dump API. * @param mp vl_api_memif_socket_filename_dump_t api message */ void vl_api_memif_socket_filename_dump_t_handler (vl_api_memif_socket_filename_dump_t * mp) { memif_main_t *mm = &memif_main; vl_api_registration_t *reg; u32 sock_id; u32 msf_idx; reg = vl_api_client_index_to_registration (mp->client_index); if (!reg) return; /* *INDENT-OFF* */ hash_foreach (sock_id, msf_idx, mm->socket_file_index_by_sock_id, ({ memif_socket_file_t *msf; u8 *filename; msf = pool_elt_at_index(mm->socket_files, msf_idx); filename = msf->filename; send_memif_socket_filename_details(reg, sock_id, filename, mp->context); })); /* *INDENT-ON* */ } #define vl_msg_name_crc_list #include <memif/memif_all_api_h.h> #undef vl_msg_name_crc_list static void setup_message_id_table (memif_main_t * mm, api_main_t * am) { #define _(id,n,crc) \ vl_msg_api_add_msg_name_crc (am, #n "_" #crc, id + mm->msg_id_base); foreach_vl_msg_name_crc_memif; #undef _ } /* Set up the API message handling tables */ clib_error_t * memif_plugin_api_hookup (vlib_main_t * vm) { memif_main_t *mm = &memif_main; api_main_t *am = &api_main; u8 *name; /* Construct the API name */ name = format (0, "memif_%08x%c", api_version, 0); /* Ask for a correctly-sized block of API message decode slots */ mm->msg_id_base = vl_msg_api_get_msg_ids ((char *) name, VL_MSG_FIRST_AVAILABLE); #define _(N,n) \ vl_msg_api_set_handlers((VL_API_##N + mm->msg_id_base), \ #n, \ vl_api_##n##_t_handler, \ vl_noop_handler, \ vl_api_##n##_t_endian, \ vl_api_##n##_t_print, \ sizeof(vl_api_##n##_t), 1); foreach_memif_plugin_api_msg; #undef _ /* * Set up the (msg_name, crc, message-id) table */ setup_message_id_table (mm, am); vec_free (name); return 0; } /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */