+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));
+ 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* */
+}
+