+option version = "3.0.0";
+
+import "vnet/interface_types.api";
+import "vnet/ethernet/ethernet_types.api";
+
+enum memif_role
+{
+ MEMIF_ROLE_API_MASTER = 0,
+ MEMIF_ROLE_API_SLAVE = 1,
+};
+
+enum memif_mode
+{
+ MEMIF_MODE_API_ETHERNET = 0,
+ MEMIF_MODE_API_IP = 1,
+ MEMIF_MODE_API_PUNT_INJECT = 2,
+};
+
+/** \brief Create or remove named socket file for memif interfaces
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param is_add - 0 = remove, 1 = add association
+ @param socket_id - non-0 32-bit integer used to identify a socket file
+ @param socket_filename - filename of the socket to be used for connection
+ establishment; id 0 always maps to default "/var/vpp/memif.sock";
+ no socket filename needed when is_add == 0.
+*/
+autoreply define memif_socket_filename_add_del
+{
+ u32 client_index;
+ u32 context;
+ bool is_add; /* 0 = remove, 1 = add association */
+ u32 socket_id; /* unique non-0 id for given socket file name */
+ string socket_filename[108]; /* NUL terminated filename */
+};
+