Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
SCTP: API to configure some tunables
[vpp.git]
/
src
/
plugins
/
memif
/
socket.c
diff --git
a/src/plugins/memif/socket.c
b/src/plugins/memif/socket.c
index
23ea249
..
384a7b1
100644
(file)
--- a/
src/plugins/memif/socket.c
+++ b/
src/plugins/memif/socket.c
@@
-289,7
+289,9
@@
memif_msg_receive_init (memif_if_t ** mifp, memif_msg_t * msg,
return 0;
error:
return 0;
error:
+ tmp.sock = sock;
memif_msg_send_disconnect (&tmp, err);
memif_msg_send_disconnect (&tmp, err);
+ memif_socket_close (&sock);
return err;
}
return err;
}
@@
-349,11
+351,16
@@
memif_msg_receive_add_ring (memif_if_t * mif, memif_msg_t * msg, int fd)
mif->run.num_m2s_rings = vec_len (mif->tx_queues);
}
mif->run.num_m2s_rings = vec_len (mif->tx_queues);
}
+ // clear previous cache data if interface reconncected
+ memset (mq, 0, sizeof (memif_queue_t));
mq->int_fd = fd;
mq->int_clib_file_index = ~0;
mq->log2_ring_size = ar->log2_ring_size;
mq->region = ar->region;
mq->offset = ar->offset;
mq->int_fd = fd;
mq->int_clib_file_index = ~0;
mq->log2_ring_size = ar->log2_ring_size;
mq->region = ar->region;
mq->offset = ar->offset;
+ mq->type =
+ (ar->flags & MEMIF_MSG_ADD_RING_FLAG_S2M) ? MEMIF_RING_S2M :
+ MEMIF_RING_M2S;
return 0;
}
return 0;
}
@@
-438,6
+445,9
@@
memif_msg_receive (memif_if_t ** mifp, clib_socket_t * sock, clib_file_t * uf)
if ((err = memif_msg_receive_init (mifp, &msg, sock, uf->private_data)))
return err;
mif = *mifp;
if ((err = memif_msg_receive_init (mifp, &msg, sock, uf->private_data)))
return err;
mif = *mifp;
+ vec_reset_length (uf->description);
+ uf->description = format (uf->description, "%U ctl",
+ format_memif_device_name, mif->dev_instance);
memif_msg_enq_ack (mif);
break;
memif_msg_enq_ack (mif);
break;
@@
-643,6
+653,7
@@
memif_conn_fd_accept_ready (clib_file_t * uf)
template.error_function = memif_master_conn_fd_error;
template.file_descriptor = client->fd;
template.private_data = uf->private_data;
template.error_function = memif_master_conn_fd_error;
template.file_descriptor = client->fd;
template.private_data = uf->private_data;
+ template.description = format (0, "memif in conn on %s", msf->filename);
memif_file_add (&client->private_data, &template);
memif_file_add (&client->private_data, &template);