Also add support for KNET_LINK_FLAG_TRAFFICHIPRIO on FreeBSD
Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
* NOTE: you shouldn't need to include this header normally
*/
+#include <pthread.h>
#include "libknet.h"
#include "onwire.h"
#include "compat.h"
while (msg_idx < msgs_to_send) {
msg[msg_idx].msg_hdr.msg_name = &cur_link->dst_addr;
- for (i=0; i<msg[msg_idx].msg_hdr.msg_iovlen; i++) {
+ /* Cast for Linux/BSD compatibility */
+ for (i=0; i<(unsigned int)msg[msg_idx].msg_hdr.msg_iovlen; i++) {
cur_link->status.stats.tx_data_bytes += msg[msg_idx].msg_hdr.msg_iov[i].iov_len;
}
cur_link->status.stats.tx_data_packets++;
}
}
#endif
+#if defined(IP_TOS) && defined(IPTOS_LOWDELAY)
+ if (flags & KNET_LINK_FLAG_TRAFFICHIPRIO) {
+ value = IPTOS_LOWDELAY;
+ if (setsockopt(sock, IPPROTO_IP, IP_TOS, &value, sizeof(value)) < 0) {
+ savederrno = errno;
+ err = -1;
+ log_err(knet_h, KNET_SUB_TRANSPORT, "Unable to set %s priority: %s",
+ type, strerror(savederrno));
+ goto exit_error;
+ }
+ }
+#endif
exit_error:
errno = savederrno;