]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
[ipoib cm] added cm payload mtu configurable parameter.
authoraestrin <aestrin@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 29 Jan 2009 19:49:18 +0000 (19:49 +0000)
committeraestrin <aestrin@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 29 Jan 2009 19:49:18 +0000 (19:49 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1@1919 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

branches/ipoib_cm/kernel/ipoib_driver.c
branches/ipoib_cm/kernel/ipoib_port.c
branches/ipoib_cm/kernel/netipoib-xp32.inf
branches/ipoib_cm/kernel/netipoib.inx

index 805eb247af463115a03f3a09c13a7576730cefb7..80d854cba8038e139054721a1f0d786067993da6 100644 (file)
@@ -160,11 +160,12 @@ IPOIB_REG_ENTRY HCARegTable[] = {
        {NDIS_STRING_CONST("SaTimeout"),        1, IPOIB_OFFSET(sa_timeout),            IPOIB_SIZE(sa_timeout),         1000,       250,    UINT_MAX},\r
        {NDIS_STRING_CONST("SaRetries"),        1, IPOIB_OFFSET(sa_retry_cnt),          IPOIB_SIZE(sa_retry_cnt),       10,         1,      UINT_MAX},\r
        {NDIS_STRING_CONST("RecvRatio"),        1, IPOIB_OFFSET(recv_pool_ratio),       IPOIB_SIZE(recv_pool_ratio),    1,          1,      10},\r
-       {NDIS_STRING_CONST("PayloadMtu"),       1, IPOIB_OFFSET(payload_mtu),           IPOIB_SIZE(payload_mtu),        2044,       512,   MAX_CM_PAYLOAD_MTU},\r
+       {NDIS_STRING_CONST("PayloadMtu"),       1, IPOIB_OFFSET(payload_mtu),           IPOIB_SIZE(payload_mtu),        2044,       512,   MAX_UD_PAYLOAD_MTU},\r
        {NDIS_STRING_CONST("lso"),              0, IPOIB_OFFSET(lso),                   IPOIB_SIZE(lso),                0,          0,      1},\r
        {NDIS_STRING_CONST("MCLeaveRescan"),    1, IPOIB_OFFSET(mc_leave_rescan),       IPOIB_SIZE(mc_leave_rescan),    260,        1,    3600},\r
        {NDIS_STRING_CONST("BCJoinRetry"),          1, IPOIB_OFFSET(bc_join_retry),                 IPOIB_SIZE(bc_join_retry),      50,         0,    1000},\r
-       {NDIS_STRING_CONST("CmEnabled"),        0, IPOIB_OFFSET(cm_enabled),            IPOIB_SIZE(cm_enabled),         FALSE,     FALSE, TRUE}\r
+       {NDIS_STRING_CONST("CmEnabled"),        0, IPOIB_OFFSET(cm_enabled),            IPOIB_SIZE(cm_enabled),         FALSE,     FALSE, TRUE},\r
+       {NDIS_STRING_CONST("CmPayloadMtu"),     1, IPOIB_OFFSET(cm_payload_mtu),        IPOIB_SIZE(cm_payload_mtu),     MAX_CM_PAYLOAD_MTU, 512, MAX_CM_PAYLOAD_MTU}\r
 \r
 };  \r
 \r
@@ -614,17 +615,17 @@ ipoib_get_adapter_params(
                                EVENT_IPOIB_CONNECTED_MODE_ERR, 1, 0xbadc0de0 );\r
                }\r
        }\r
-       /* adjust ud mtu upper limit if cm is disabled */\r
-       if( !p_adapter->params.cm_enabled )\r
+\r
+       if( p_adapter->params.cm_enabled )\r
        {\r
-               p_adapter->params.payload_mtu = \r
-                       min( MAX_UD_PAYLOAD_MTU, p_adapter->params.payload_mtu );\r
-               p_adapter->params.xfer_block_size = \r
-                       (sizeof(eth_hdr_t) + p_adapter->params.payload_mtu);\r
+               p_adapter->params.cm_xfer_block_size = \r
+                       (sizeof(eth_hdr_t) + p_adapter->params.cm_payload_mtu);\r
        }\r
 \r
-       NdisReadNetworkAddress( &status, p_mac, p_len, h_config );\r
+       p_adapter->params.xfer_block_size = \r
+               (sizeof(eth_hdr_t) + p_adapter->params.payload_mtu);\r
 \r
+       NdisReadNetworkAddress( &status, p_mac, p_len, h_config );\r
 \r
        NdisCloseConfiguration( h_config );\r
 \r
index 4e3bba2452309dff2bcb167fbd9339e16ffbafa2..e5895ca9643ede592f2ea40fa67ed8a7a928a9ba 100644 (file)
@@ -899,18 +899,12 @@ __ib_mgr_init(
 \r
        if( p_port->p_adapter->params.cm_enabled )\r
        {\r
-               uint32_t        ud_payload_mtu = __port_attr_to_mtu_size( \r
-                       p_port->p_ca_attrs->p_port_attr[p_port->port_num - 1].mtu );\r
-               /* setup CM payload mtu */\r
-               p_port->p_adapter->params.cm_payload_mtu =\r
-                       min( MAX_CM_PAYLOAD_MTU, p_port->p_adapter->params.payload_mtu );\r
-               p_port->p_adapter->params.cm_xfer_block_size = \r
-                       p_port->p_adapter->params.cm_payload_mtu + sizeof(eth_hdr_t);\r
-               \r
+               uint32_t payload_mtu = __port_attr_to_mtu_size( \r
+                       p_port->p_ca_attrs->p_port_attr[p_port->port_num - 1].mtu )\r
+                       - sizeof(ipoib_hdr_t);\r
                /* adjust ipoib UD payload MTU to actual port MTU size. */\r
-               /* TODO: should initialization fail if port mtu < 2048 ? */\r
                p_port->p_adapter->params.payload_mtu = \r
-                       ( max( DEFAULT_MTU, ud_payload_mtu ) -  sizeof(ipoib_hdr_t) );\r
+                               max( DEFAULT_PAYLOAD_MTU, payload_mtu );\r
                p_port->p_adapter->params.xfer_block_size = \r
                        (sizeof(eth_hdr_t) + p_port->p_adapter->params.payload_mtu);\r
        }\r
@@ -919,14 +913,19 @@ __ib_mgr_init(
        if ( !p_port->p_adapter->reset )\r
        {\r
                ULONG max_phys_mapping;\r
-\r
-               max_phys_mapping = p_port->p_adapter->params.cm_enabled ?\r
-                       p_port->p_adapter->params.cm_xfer_block_size :\r
-                       p_port->p_adapter->params.xfer_block_size;\r
-               max_phys_mapping = p_port->p_adapter->params.lso ?\r
-                       max(LARGE_SEND_OFFLOAD_SIZE, max_phys_mapping): max_phys_mapping;\r
-               status =\r
-                       NdisMInitializeScatterGatherDma( \r
+               if( p_port->p_adapter->params.cm_enabled )\r
+               {\r
+                       max_phys_mapping = p_port->p_adapter->params.cm_xfer_block_size;\r
+               }\r
+               else if( p_port->p_adapter->params.lso )\r
+               {\r
+                       max_phys_mapping = LARGE_SEND_OFFLOAD_SIZE;\r
+               }\r
+               else\r
+               {\r
+                       max_phys_mapping = p_port->p_adapter->params.xfer_block_size;\r
+               }\r
+               status = NdisMInitializeScatterGatherDma( \r
                        p_port->p_adapter->h_adapter, TRUE, max_phys_mapping );\r
                if( status != NDIS_STATUS_SUCCESS )\r
                {\r
index 9abf12760caff4eede56264ba66dcd8cff2bc075..89e008cc1de079318f82159887d33e1cc8146b84 100644 (file)
@@ -138,7 +138,7 @@ HKR, Ndi\Params\PayloadMtu,         ParamDesc,      0, %MTU_STR%
 HKR, Ndi\Params\PayloadMtu,            Type,           0, "dword"\r
 HKR, Ndi\Params\PayloadMtu,            Default,        0, "2044"\r
 HKR, Ndi\Params\PayloadMtu,            Min,            0, "512"\r
-HKR, Ndi\Params\PayloadMtu,            Max,            0, "65520"\r
+HKR, Ndi\Params\PayloadMtu,            Max,            0, "4092"\r
 \r
 HKR, Ndi\Params\MCLeaveRescan,         ParamDesc,      0, %MC_RESCAN_STR%\r
 HKR, Ndi\Params\MCLeaveRescan,         Type,           0, "dword"\r
@@ -168,6 +168,12 @@ HKR, Ndi\Params\CmEnabled,         Optional,       0, "0"
 HKR, Ndi\Params\CmEnabled\enum,        "0",    0,      %DISABLED_STR%\r
 HKR, Ndi\Params\CmEnabled\enum,        "1",    0,      %ENABLED_STR%\r
 \r
+HKR, Ndi\Params\CmPayloadMtu,          ParamDesc,      0, %CONNECTED_MODE_MTU_STR%\r
+HKR, Ndi\Params\CmPayloadMtu,          Type,           0, "dword"\r
+HKR, Ndi\Params\CmPayloadMtu,          Default,        0, "65520"\r
+HKR, Ndi\Params\CmPayloadMtu,          Min,            0, "512"\r
+HKR, Ndi\Params\CmPayloadMtu,          Max,            0, "65520"\r
+\r
 [IpoibService]\r
 DisplayName     = %IpoibServiceDispName%\r
 ServiceType     = 1 ;%SERVICE_KERNEL_DRIVER%\r
@@ -269,3 +275,5 @@ ENABLED_STR         = "Enabled"
 DISABLED_STR           = "Disabled"\r
 BYPASS_STR             = "Bypass"\r
 CONNECTED_MODE_STR     = "Connected mode"\r
+CONNECTED_MODE_MTU_STR = "Connected Mode Payload Mtu size"\r
+\r
index 52caeb5a2fa62e3629a5fbc443099a3249f8b55e..20895a33ca7270440e4702cd13063b6418e4111c 100644 (file)
@@ -141,7 +141,7 @@ HKR, Ndi\Params\PayloadMtu,         ParamDesc,      0, %MTU_STR%
 HKR, Ndi\Params\PayloadMtu,            Type,           0, "dword"\r
 HKR, Ndi\Params\PayloadMtu,            Default,        0, "2044"\r
 HKR, Ndi\Params\PayloadMtu,            Min,            0, "512"\r
-HKR, Ndi\Params\PayloadMtu,            Max,            0, "65520"\r
+HKR, Ndi\Params\PayloadMtu,            Max,            0, "4092"\r
 \r
 HKR, Ndi\Params\MCLeaveRescan,         ParamDesc,      0, %MC_RESCAN_STR%\r
 HKR, Ndi\Params\MCLeaveRescan,         Type,           0, "dword"\r
@@ -171,6 +171,12 @@ HKR, Ndi\Params\CmEnabled,         Optional,       0, "0"
 HKR, Ndi\Params\CmEnabled\enum,        "0",    0,      %DISABLED_STR%\r
 HKR, Ndi\Params\CmEnabled\enum,        "1",    0,      %ENABLED_STR%\r
 \r
+HKR, Ndi\Params\CmPayloadMtu,          ParamDesc,      0, %CONNECTED_MODE_MTU_STR%\r
+HKR, Ndi\Params\CmPayloadMtu,          Type,           0, "dword"\r
+HKR, Ndi\Params\CmPayloadMtu,          Default,        0, "65520"\r
+HKR, Ndi\Params\CmPayloadMtu,          Min,            0, "512"\r
+HKR, Ndi\Params\CmPayloadMtu,          Max,            0, "65520"\r
+\r
 [IpoibService]\r
 DisplayName     = %IpoibServiceDispName%\r
 ServiceType     = 1 ;%SERVICE_KERNEL_DRIVER%\r
@@ -275,4 +281,5 @@ ENABLED_IF_STR              = "Enabled (if supported by HW)"
 ENABLED_STR            = "Enabled"\r
 DISABLED_STR           = "Disabled"\r
 BYPASS_STR             = "Bypass"\r
-CONNECTED_MODE_STR     = "Connected mode"
\ No newline at end of file
+CONNECTED_MODE_STR     = "Connected mode"\r
+CONNECTED_MODE_MTU_STR = "Connected Mode Payload Mtu size"
\ No newline at end of file