]> sjero.net Git - iperf/blobdiff - src/PerfSocket.cpp
Support for UDP-Lite in iperf
[iperf] / src / PerfSocket.cpp
index 63e97ff9480b4405fe98f770498a3a2c0e67dcce..1c3a779731f692aad66f50072cdf991579557939 100644 (file)
@@ -157,6 +157,18 @@ void SetSocketOptions( thread_Settings *inSettings )
                          &val, len );
         WARN_errno( rc == SOCKET_ERROR, "setsockopt DCCP_SOCKOPT_SERVICE" );
     }
+    //  UDP-Lite specific options
+    if ( inSettings->mProtocol == kProto_UDPLITE ) {
+        /* we set the checksum coverage for both directions */
+        rc = setsockopt(inSettings->mSock, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV,
+                        &inSettings->cscov, len);
+        WARN_errno(rc == SOCKET_ERROR, "setsockopt UDPLITE_SEND_CSCOV");
+
+        rc = setsockopt(inSettings->mSock, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV,
+                        &inSettings->cscov, len);
+
+        WARN_errno(rc == SOCKET_ERROR, "setsockopt UDPLITE_RECV_CSCOV");
+    }
 
     // reuse the address, so we can run if a former server was killed off
     if (inSettings->mThreadMode == kMode_Listener) {