]> 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>
Wed, 6 Jun 2012 18:23:30 +0000 (11:23 -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 8f20b4abdcaf0a1421ec85e5e5a943331d317061..2fd106a4ea2b1a19ade67e089d4f3d706c150bfb 100644 (file)
@@ -1716,6 +1716,9 @@ int rsetsockopt(int socket, int level, int optname,
                        opt_on = *(int *) optval;
                        ret = 0;
                        break;
+               case TCP_MAXSEG:
+                       ret = 0;
+                       break;
                default:
                        break;
                }
@@ -1802,6 +1805,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;