std::list<rxrpc::Rx_buffer> rx_spare_buffers; /* Spare bufferage for receive */
unsigned int rx_nr_buffers; /* Number of buffers on the list */
#define CONN_MSGS 3
-#define CONN_CMSG_SIZE 128
+#define CONN_CMSG_SIZE 4096
#define CONN_NR_IOV 4
struct mmsghdr rx_msgs[CONN_MSGS]; /* Message headers */
struct sockaddr_rxrpc rx_peer[CONN_MSGS]; /* Mass peer address bufferage */
rx_nr_buffers++;
}
+ /* Reset the message descriptors. */
+ for (i = 0; i < CONN_MSGS; i++) {
+ struct mmsghdr *m = &rx_msgs[i];
+ struct msghdr *msg = &m->msg_hdr;
+
+ msg->msg_namelen = sizeof(rx_peer[i]);
+ msg->msg_controllen = CONN_CMSG_SIZE;
+ msg->msg_flags = 0;
+ }
+
/* Receive messages. The descriptor array is already set up and gets
* reset as messages are processed.
*/
debug("Rx DATA: %d [fl:%x]\n", m->msg_len, msg->msg_flags);
recv_msg(msg, m->msg_len);
-
- /* Reset the message descriptor. */
- m->msg_hdr.msg_namelen = sizeof(rx_peer[i]);
- m->msg_hdr.msg_controllen = CONN_CMSG_SIZE;
- m->msg_hdr.msg_flags = 0;
}
}