]> git.openfabrics.org - ~shefty/librdmacm.git/commitdiff
rsocket: Handle TCP_MAXSEG socket option
authorSean Hefty <sean.hefty@intel.com>
Mon, 4 Jun 2012 20:22:10 +0000 (13:22 -0700)
committerSean Hefty <sean.hefty@intel.com>
Fri, 8 Jun 2012 21:45:06 +0000 (14:45 -0700)
netperf uses the TCP_MAXSEG socket option.  Add support for it.
Problem reported by Sridhar Samudrala <sri@us.ibm.com>

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
src/rsocket.c

index c11179701833b0b18b2f5b42b9614948e3c6b2f9..e906fd492f24d037f6a1a5d49efdf4936af3f9cf 100644 (file)
@@ -1713,6 +1713,9 @@ int rsetsockopt(int socket, int level, int optname,
                        opt_on = *(int *) optval;
                        ret = 0;
                        break;
+               case TCP_MAXSEG:
+                       ret = 0;
+                       break;
                default:
                        break;
                }
@@ -1799,6 +1802,12 @@ int rgetsockopt(int socket, int level, int optname,
                        *((int *) optval) = !!(rs->tcp_opts & (1 << optname));
                        *optlen = sizeof(int);
                        break;
+               case TCP_MAXSEG:
+                       *((int *) optval) = (rs->cm_id && rs->cm_id->route.num_paths) ?
+                                           1 << (7 + rs->cm_id->route.path_rec->mtu) :
+                                           2048;
+                       *optlen = sizeof(int);
+                       break;
                default:
                        ret = ENOTSUP;
                        break;