Displaying 20 results from an estimated 79 matches for "msg_iovlen".
2010 Apr 26
1
valgrind ipconfig work
.../packet.c
+++ b/usr/kinit/ipconfig/packet.c
@@ -114,16 +114,18 @@ static char *ntoa(uint32_t addr)
int packet_send(struct netdev *dev, struct iovec *iov, int iov_len)
{
struct sockaddr_ll sll;
- struct msghdr msg = {
- .msg_name = &sll,
- .msg_namelen = sizeof(sll),
- .msg_iov = iov,
- .msg_iovlen = iov_len,
- .msg_control = NULL,
- .msg_controllen = 0,
- .msg_flags = 0
- };
int i, len = 0;
+ struct msghdr msg;
+
+ memset(&sll, 0, sizeof(sll));
+
+ msg.msg_name = &sll;
+ msg.msg_namelen = sizeof(sll);
+ msg.msg_iov = iov;
+ msg.msg_iovlen = iov_len;
+ msg.msg_control = NULL;
+ m...
2015 Dec 10
2
[PATCH] Receive multiple packets at a time
...nt num = 1, i;
+
+#ifdef HAVE_RECVMMSG
+ for(i = 0; i < MAX_MSG; i++)
+ {
+ msg[i].msg_hdr.msg_name = &from[i].sa;
+ msg[i].msg_hdr.msg_namelen = sizeof(from[i]);
+ iov[i].iov_base = &pkt[i].seqno;
+ iov[i].iov_len = MAXSIZE;
+ msg[i].msg_hdr.msg_iov = &iov[i];
+ msg[i].msg_hdr.msg_iovlen = 1;
+ msg[i].msg_hdr.msg_control = NULL;
+ msg[i].msg_hdr.msg_controllen = 0;
+ }
+ num = recvmmsg(listen_socket[sock].udp, msg, MAX_MSG, MSG_DONTWAIT, NULL);
+#else
+ pkt[0].len = recvfrom(listen_socket[sock].udp, (char *) &pkt[0].seqno, MAXSIZE, 0, &from[0].sa, &fromlen);
+#endif
+...
2010 Nov 29
1
[PATCH] vhost: fix typos in comment
...)
move_iovec_hdr(vq->iov, vq->hdr, vhost_hlen, in);
else
/* Copy the header for use in VIRTIO_NET_F_MRG_RXBUF:
- * needed because sendmsg can modify msg_iov. */
+ * needed because recvmsg can modify msg_iov. */
copy_iovec_hdr(vq->iov, vq->hdr, sock_hlen, in);
msg.msg_iovlen = in;
err = sock->ops->recvmsg(NULL, sock, &msg,
diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h
index 073d06a..2af44b7 100644
--- a/drivers/vhost/vhost.h
+++ b/drivers/vhost/vhost.h
@@ -102,7 +102,7 @@ struct vhost_virtqueue {
* flush the vhost_work instead of synchroniz...
2010 Nov 29
1
[PATCH] vhost: fix typos in comment
...)
move_iovec_hdr(vq->iov, vq->hdr, vhost_hlen, in);
else
/* Copy the header for use in VIRTIO_NET_F_MRG_RXBUF:
- * needed because sendmsg can modify msg_iov. */
+ * needed because recvmsg can modify msg_iov. */
copy_iovec_hdr(vq->iov, vq->hdr, sock_hlen, in);
msg.msg_iovlen = in;
err = sock->ops->recvmsg(NULL, sock, &msg,
diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h
index 073d06a..2af44b7 100644
--- a/drivers/vhost/vhost.h
+++ b/drivers/vhost/vhost.h
@@ -102,7 +102,7 @@ struct vhost_virtqueue {
* flush the vhost_work instead of synchroniz...
2010 Mar 03
1
[RFC][ PATCH 3/3] vhost-net: Add mergeable RX buffer support to vhost-net
...ame = NULL,
@@ -110,6 +90,7 @@
size_t len, total_len = 0;
int err, wmem;
struct socket *sock = rcu_dereference(vq->private_data);
+
if (!sock)
return;
@@ -166,11 +147,11 @@
/* Skip header. TODO: support TSO. */
msg.msg_iovlen = out;
head.iov_len = len = iov_length(vq->iov, out);
+
/* Sanity check */
if (!len) {
vq_err(vq, "Unexpected header len for TX: "
- "%zd expected %zd\n",
-...
2010 Mar 03
1
[RFC][ PATCH 3/3] vhost-net: Add mergeable RX buffer support to vhost-net
...ame = NULL,
@@ -110,6 +90,7 @@
size_t len, total_len = 0;
int err, wmem;
struct socket *sock = rcu_dereference(vq->private_data);
+
if (!sock)
return;
@@ -166,11 +147,11 @@
/* Skip header. TODO: support TSO. */
msg.msg_iovlen = out;
head.iov_len = len = iov_length(vq->iov, out);
+
/* Sanity check */
if (!len) {
vq_err(vq, "Unexpected header len for TX: "
- "%zd expected %zd\n",
-...
2014 Mar 27
1
[PATCH net] vhost: fix total length when packets are too short
...vhost_discard_vq_desc(vq, headcount);
@@ -587,6 +593,14 @@ static void handle_rx(struct vhost_net *net)
/* On error, stop handling until the next kick. */
if (unlikely(headcount < 0))
break;
+ /* On overrun, truncate and discard */
+ if (unlikely(headcount > UIO_MAXIOV)) {
+ msg.msg_iovlen = 1;
+ err = sock->ops->recvmsg(NULL, sock, &msg,
+ 1, MSG_DONTWAIT | MSG_TRUNC);
+ pr_debug("Discarded rx packet: len %zd\n", sock_len);
+ continue;
+ }
/* OK, now we need to know about added descriptors. */
if (!headcount) {
if (unlikely(vhost_enable_not...
2014 Mar 27
1
[PATCH net] vhost: fix total length when packets are too short
...vhost_discard_vq_desc(vq, headcount);
@@ -587,6 +593,14 @@ static void handle_rx(struct vhost_net *net)
/* On error, stop handling until the next kick. */
if (unlikely(headcount < 0))
break;
+ /* On overrun, truncate and discard */
+ if (unlikely(headcount > UIO_MAXIOV)) {
+ msg.msg_iovlen = 1;
+ err = sock->ops->recvmsg(NULL, sock, &msg,
+ 1, MSG_DONTWAIT | MSG_TRUNC);
+ pr_debug("Discarded rx packet: len %zd\n", sock_len);
+ continue;
+ }
/* OK, now we need to know about added descriptors. */
if (!headcount) {
if (unlikely(vhost_enable_not...
2015 Dec 10
3
[PATCH] Receive multiple packets at a time
..._hdr.msg_name = &from[i].sa;
> msg[i].msg_hdr.msg_namelen = sizeof(from[i]);
> iov[i].iov_base = &pkt[i].seqno;
> iov[i].iov_len = MAXSIZE;
> msg[i].msg_hdr.msg_iov = &iov[i];
> msg[i].msg_hdr.msg_iovlen = 1;
> msg[i].msg_hdr.msg_control = NULL;
> msg[i].msg_hdr.msg_controllen = 0;
> }
Also, this is interesting. We should either reduce MAX_MSG to, say, 64,
or even 16, and/or initialize this array statically (except of iov.iov_len).
There's just...
2009 Sep 11
1
[PATCH] guestfish: Redirect stdout when executing remote commands
...== cmptr) {
+ perror ("malloc");
+ exit (1);
+ }
+ }
+
+ /* Don't specify a source */
+ msg.msg_name = NULL;
+ msg.msg_namelen = 0;
+
+ /* Initialise the msghdr to receive zero byte */
+ iov[0].iov_base = buf;
+ iov[0].iov_len = 1;
+ msg.msg_iov = iov;
+ msg.msg_iovlen = 1;
+
+ /* Initialise the control data */
+ msg.msg_control = cmptr;
+ msg.msg_controllen = controllen;
+
+ /* Read a message from the socket */
+ ssize_t n = recvmsg (s, &msg, 0);
+ if (n < 0) {
+ perror ("recvmsg stdout fd");
+ exit (1);
+ }
+
+ h = CMSG_FIRS...
2015 Feb 26
4
Call for testing: OpenSSH 6.8
...ontrollen = sizeof(cmsgbuf.buf);
+ cmsg = CMSG_FIRSTHDR(&msg);
cmsg->cmsg_len = CMSG_LEN(sizeof(int));
cmsg->cmsg_level = SOL_SOCKET;
cmsg->cmsg_type = SCM_RIGHTS;
*(int *)CMSG_DATA(cmsg) = nfd;
+#endif
- iov.iov_base = &c;
- iov.iov_len = 1;
- mh.msg_iov = &iov;
- mh.msg_iovlen = 1;
+ vec.iov_base = &ch;
+ vec.iov_len = 1;
+ msg.msg_iov = &vec;
+ msg.msg_iovlen = 1;
bzero(&pfd, sizeof(pfd));
pfd.fd = STDOUT_FILENO;
for (;;) {
- r = sendmsg(STDOUT_FILENO, &mh, 0);
+ r = sendmsg(STDOUT_FILENO, &msg, 0);
if (r == -1) {
if (errno == EAGAIN...
2015 Feb 25
2
Call for testing: OpenSSH 6.8
On 24/02/15 21:56, Tim Rice wrote:
> On Wed, 25 Feb 2015, Damien Miller wrote:
>
> | On Tue, 24 Feb 2015, Tom G. Christensen wrote:
> |
> | > I've switched to HEAD in the git repo and it now builds on Solaris
> | > 2.6, 7, 8 and 9 but the testsuite still cannot be built due to the
> | > missing <err.h>.
>
> The err.h issue is fixes but there still
2010 Mar 03
1
[RFC][ PATCH 2/3] vhost-net: handle vnet_hdr processing for MRG_RX_BUF
...msg.msg_iov[1].iov_len -= vq->guest_hlen;
+ out++;
+ }
+ }
/* Skip header. TODO: support TSO. */
- s = move_iovec_hdr(vq->iov, vq->hdr, hdr_size, out);
msg.msg_iovlen = out;
head.iov_len = len = iov_length(vq->iov, out);
/* Sanity check */
if (!len) {
vq_err(vq, "Unexpected header len for TX: "
"%zd expected %zd\n",
-...
2010 Mar 03
1
[RFC][ PATCH 2/3] vhost-net: handle vnet_hdr processing for MRG_RX_BUF
...msg.msg_iov[1].iov_len -= vq->guest_hlen;
+ out++;
+ }
+ }
/* Skip header. TODO: support TSO. */
- s = move_iovec_hdr(vq->iov, vq->hdr, hdr_size, out);
msg.msg_iovlen = out;
head.iov_len = len = iov_length(vq->iov, out);
/* Sanity check */
if (!len) {
vq_err(vq, "Unexpected header len for TX: "
"%zd expected %zd\n",
-...
2010 Mar 03
1
[RFC][ PATCH 1/3] vhost-net: support multiple buffer heads in receiver
...if (wmem >= sock->sk->sk_sndbuf * 3 / 4) {
tx_poll_start(net, sock);
@@ -152,7 +151,7 @@
/* Skip header. TODO: support TSO. */
s = move_iovec_hdr(vq->iov, vq->hdr, hdr_size, out);
msg.msg_iovlen = out;
- len = iov_length(vq->iov, out);
+ head.iov_len = len = iov_length(vq->iov, out);
/* Sanity check */
if (!len) {
vq_err(vq, "Unexpected header len for TX: "
@@ -163,14 +162,14 @@...
2010 Mar 03
1
[RFC][ PATCH 1/3] vhost-net: support multiple buffer heads in receiver
...if (wmem >= sock->sk->sk_sndbuf * 3 / 4) {
tx_poll_start(net, sock);
@@ -152,7 +151,7 @@
/* Skip header. TODO: support TSO. */
s = move_iovec_hdr(vq->iov, vq->hdr, hdr_size, out);
msg.msg_iovlen = out;
- len = iov_length(vq->iov, out);
+ head.iov_len = len = iov_length(vq->iov, out);
/* Sanity check */
if (!len) {
vq_err(vq, "Unexpected header len for TX: "
@@ -163,14 +162,14 @@...
2009 Nov 04
0
PATCH: fast copy of files in local server mode
...ghdr *control_message = NULL;
+ char buffer[CMSG_SPACE(sizeof(int))], data[1];
+ int ret;
+
+ memset(&message, 0, sizeof(struct msghdr));
+ memset(buffer, 0, CMSG_SPACE(sizeof(int)));
+
+ data[0] = 'F';
+ iov[0].iov_base = data;
+ iov[0].iov_len = 1;
+
+ message.msg_iov = iov;
+ message.msg_iovlen = 1;
+
+ message.msg_control = buffer;
+ message.msg_controllen = CMSG_SPACE(sizeof(int));
+
+ control_message = CMSG_FIRSTHDR(&message);
+ control_message->cmsg_level = SOL_SOCKET;
+ control_message->cmsg_type = SCM_RIGHTS;
+ control_message->cmsg_len = CMSG_LEN(sizeof(int));
+
+ *((i...
2010 Apr 19
2
[PATCH v4] Add mergeable RX bufs support to vhost
...omic_read(&sock->sk->sk_wmem_alloc);
@@ -154,20 +154,20 @@ static void handle_tx(struct vhost_net *
break;
}
/* Skip header. TODO: support TSO. */
- s = move_iovec_hdr(vq->iov, vq->hdr, hdr_size, out);
+ s = move_iovec_hdr(vq->iov, vq->hdr, vhost_hlen, out);
msg.msg_iovlen = out;
len = iov_length(vq->iov, out);
/* Sanity check */
if (!len) {
vq_err(vq, "Unexpected header len for TX: "
"%zd expected %zd\n",
- iov_length(vq->hdr, s), hdr_size);
+ iov_length(vq->hdr, s), vhost_hlen);
break;
}...
2010 Apr 19
2
[PATCH v4] Add mergeable RX bufs support to vhost
...omic_read(&sock->sk->sk_wmem_alloc);
@@ -154,20 +154,20 @@ static void handle_tx(struct vhost_net *
break;
}
/* Skip header. TODO: support TSO. */
- s = move_iovec_hdr(vq->iov, vq->hdr, hdr_size, out);
+ s = move_iovec_hdr(vq->iov, vq->hdr, vhost_hlen, out);
msg.msg_iovlen = out;
len = iov_length(vq->iov, out);
/* Sanity check */
if (!len) {
vq_err(vq, "Unexpected header len for TX: "
"%zd expected %zd\n",
- iov_length(vq->hdr, s), hdr_size);
+ iov_length(vq->hdr, s), vhost_hlen);
break;
}...
2010 Apr 26
1
[PATCH v6] Add mergeable rx buffer support to vhost_net
...omic_read(&sock->sk->sk_wmem_alloc);
@@ -155,20 +155,20 @@ static void handle_tx(struct vhost_net *
break;
}
/* Skip header. TODO: support TSO. */
- s = move_iovec_hdr(vq->iov, vq->hdr, hdr_size, out);
+ s = move_iovec_hdr(vq->iov, vq->hdr, vhost_hlen, out);
msg.msg_iovlen = out;
len = iov_length(vq->iov, out);
/* Sanity check */
if (!len) {
vq_err(vq, "Unexpected header len for TX: "
"%zd expected %zd\n",
- iov_length(vq->hdr, s), hdr_size);
+ iov_length(vq->hdr, s), vhost_hlen);
break;
}...