[IPOIB] A work around for working with 1.8.x opensm. (off by default)
authortzachid <tzachid@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Mon, 10 Jul 2006 19:56:40 +0000 (19:56 +0000)
committertzachid <tzachid@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Mon, 10 Jul 2006 19:56:40 +0000 (19:56 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@417 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

ulp/ipoib/kernel/ipoib_driver.c
ulp/ipoib/kernel/ipoib_driver.h
ulp/ipoib/kernel/ipoib_port.c
ulp/ipoib/kernel/netipoib.inf

index 3e95964..08e9e85 100644 (file)
@@ -321,7 +321,7 @@ __ipoib_read_registry(
 {\r
        NTSTATUS                                                status;\r
        /* Remember the terminating entry in the table below. */\r
-       RTL_QUERY_REGISTRY_TABLE                table[3];\r
+       RTL_QUERY_REGISTRY_TABLE                table[4];\r
        UNICODE_STRING                                  param_path;\r
 \r
        IPOIB_ENTER( IPOIB_DBG_INIT );\r
@@ -360,6 +360,13 @@ __ipoib_read_registry(
        table[1].DefaultData = &g_ipoib_dbg_flags;\r
        table[1].DefaultLength = sizeof(ULONG);\r
 \r
+       table[2].Flags = RTL_QUERY_REGISTRY_DIRECT;\r
+       table[2].Name = L"bypass_check_bcast_rate";\r
+       table[2].EntryContext = &g_ipoib.bypass_check_bcast_rate;\r
+       table[2].DefaultType = REG_DWORD;\r
+       table[2].DefaultData = &g_ipoib.bypass_check_bcast_rate;\r
+       table[2].DefaultLength = sizeof(ULONG);\r
+\r
        /* Have at it! */\r
        status = RtlQueryRegistryValues( RTL_REGISTRY_ABSOLUTE, \r
                param_path.Buffer, table, NULL, NULL );\r
index a96ebb1..ee4f588 100644 (file)
@@ -73,6 +73,7 @@ typedef struct _ipoib_globals
        NDIS_HANDLE             h_ndis_wrapper;\r
        NDIS_HANDLE             h_ibat_dev;\r
        volatile LONG   ibat_ref;\r
+       uint32_t                bypass_check_bcast_rate;\r
 \r
 }      ipoib_globals_t;\r
 /*\r
index 640d3a4..75f881f 100644 (file)
@@ -4809,7 +4809,8 @@ __port_join_bcast(
        IPOIB_ENTER( IPOIB_DBG_MCAST );\r
 \r
        /* Check that the rate is realizable for our port. */\r
-       if( p_port->ib_mgr.rate < (p_member_rec->rate & 0x3F) )\r
+       if( p_port->ib_mgr.rate < (p_member_rec->rate & 0x3F) &&\r
+               (g_ipoib.bypass_check_bcast_rate == 0))\r
        {\r
                /*\r
                 * The MC group rate is higher than our port's rate.  Log an error\r
@@ -5222,6 +5223,8 @@ ipoib_port_join_mcast(
        mcast_req.member_rec = p_port->ib_mgr.bcast_rec;\r
        /* Clear fields that aren't specified in the join */\r
        mcast_req.member_rec.mlid = 0;\r
+       mcast_req.member_rec.mtu = 0;\r
+       mcast_req.member_rec.rate = 0;  \r
 \r
        if( mac.addr[0] == 1 && mac.addr[1] == 0 && mac.addr[2] == 0x5E )\r
        {\r
index f3f659e..ee31567 100644 (file)
@@ -152,6 +152,7 @@ AddReg          = Ipoib.ParamsReg
 [Ipoib.ParamsReg]\r
 HKR,"Parameters","DebugLevel",%REG_DWORD_NO_CLOBBER%,0x00000002\r
 HKR,"Parameters","DebugFlags",%REG_DWORD_NO_CLOBBER%,0x00000fff\r
+HKR,"Parameters","bypass_check_bcast_rate",%REG_DWORD_NO_CLOBBER%,0x00000000\r
 \r
 [IpoibEventLog]\r
 AddReg = IpoibAddEventLogReg\r