]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
[SRP] fix device ID recognition problem with SRPT target OpenSolaris B134.
authorStan Smith <stan.smith@intel.com>
Fri, 8 Oct 2010 22:26:01 +0000 (22:26 +0000)
committerStan Smith <stan.smith@intel.com>
Fri, 8 Oct 2010 22:26:01 +0000 (22:26 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1@2967 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

branches/WOF2-3/ulp/srp/kernel/ib_srp.inx
branches/WOF2-3/ulp/srp/kernel/srp.h
branches/WOF2-3/ulp/srp/kernel/srp_hba.c
trunk/ulp/srp/kernel/ib_srp.inx
trunk/ulp/srp/kernel/srp.h
trunk/ulp/srp/kernel/srp_hba.c

index 5b57db83f35d4587037ad4c6e2687d329b3186b4..9e1e169f757f409fb9e08ac204670b625b0c9df1 100644 (file)
@@ -41,19 +41,25 @@ ibsrp.sys=1
 %SRP.DeviceDesc% = SRP.DDInstall,IBA\C0100c609ep0108r0001, \\r
                                                                IBA\Cff00c609ep0108r0001, \\r
                                                                IBA\C0100c609ep0108, \\r
-                                                               IBA\Cff00c609ep0108\r
+                                                               IBA\Cff00c609ep0108, \\r
+                                                               IBA\C0100c690ep0108r0001, \\r
+                                                               IBA\C0100c690ep0108\r
 \r
 [SRP.DeviceSection.ntamd64]\r
 %SRP.DeviceDesc% = SRP.DDInstall,IBA\C0100c609ep0108r0001, \\r
                                                                IBA\Cff00c609ep0108r0001, \\r
                                                                IBA\C0100c609ep0108, \\r
-                                                               IBA\Cff00c609ep0108\r
+                                                               IBA\Cff00c609ep0108, \\r
+                                                               IBA\C0100c690ep0108r0001, \\r
+                                                               IBA\C0100c690ep0108\r
 \r
 [SRP.DeviceSection.ntia64]\r
 %SRP.DeviceDesc% = SRP.DDInstall,IBA\C0100c609ep0108r0001, \\r
                                                                IBA\Cff00c609ep0108r0001, \\r
                                                                IBA\C0100c609ep0108, \\r
-                                                               IBA\Cff00c609ep0108\r
+                                                               IBA\Cff00c609ep0108, \\r
+                                                               IBA\C0100c690ep0108r0001, \\r
+                                                               IBA\C0100c690ep0108\r
 \r
 [VFx.DeviceSection]\r
 ; empty since we don't support W9x/Me\r
index 626af3eca0fff17d6c8af5d3a10cd5cd4b687101..c6a68704fd047a688aafc53df590dc82a0f9102e 100644 (file)
@@ -43,6 +43,7 @@
 #define SRP_IO_CLASS                   CL_HTON16(0x0100)  /* T10 changed */\r
 #define SRP_IO_CLASS_R10               CL_HTON16(0xff00)  /* FF + high 8 bits of NCITS OUI */\r
 #define SRP_IO_SUBCLASS                        CL_HTON16(0x609e)  /* Low 16 bits of NCITS OUI */\r
+#define SRP_IO_SUBCLASS_SUN            CL_HTON16(0x690e)  /* Low 16 bits of NCITS OUI erroneously sent by SUN */\r
 #define SRP_PROTOCOL                   0x0108  /* T10 administered identifier */\r
 #define SRP_PROTOCOL_VER               0x0001  /* Approved standard version */\r
 #define SRP_SERVICE_NAME_PREFIX        "SRP.T10:"\r
index 7bfcdd4cbb688c43e5310507ad71243156a8ff24..fca08a081337ecd3935a01fbaf6fc2cd668cdd0d 100644 (file)
@@ -403,6 +403,11 @@ __srp_validate_ioc(
                                                ("Not an SRP CLASS(0x%x)/SUBCLASS(0x%x).\n",\r
                                                cl_ntoh16( p_ioc_rec->info.profile.io_class ),\r
                                                cl_ntoh16( p_ioc_rec->info.profile.io_subclass )) );\r
+#if defined(SRP_IO_SUBCLASS_SUN)\r
+               if ( p_ioc_rec->info.profile.io_subclass == SRP_IO_SUBCLASS_SUN )\r
+                       __srp_dump_ioc_info( &p_ioc_rec->info );\r
+               if ( p_ioc_rec->info.profile.io_subclass != SRP_IO_SUBCLASS_SUN )\r
+#endif\r
                return FALSE;\r
        }\r
 \r
@@ -416,6 +421,9 @@ __srp_validate_ioc(
        {\r
                SRP_PRINT_EXIT( TRACE_LEVEL_ERROR, SRP_DBG_ERROR,\r
                        ("Not an SRP PROTOCOL/PROTOCOL_VER.\n") );\r
+#if defined(SRP_IO_SUBCLASS_SUN)\r
+               if ( p_ioc_rec->info.profile.io_subclass != SRP_IO_SUBCLASS_SUN )\r
+#endif\r
                return FALSE;\r
        }\r
 \r
index 5b57db83f35d4587037ad4c6e2687d329b3186b4..9e1e169f757f409fb9e08ac204670b625b0c9df1 100644 (file)
@@ -41,19 +41,25 @@ ibsrp.sys=1
 %SRP.DeviceDesc% = SRP.DDInstall,IBA\C0100c609ep0108r0001, \\r
                                                                IBA\Cff00c609ep0108r0001, \\r
                                                                IBA\C0100c609ep0108, \\r
-                                                               IBA\Cff00c609ep0108\r
+                                                               IBA\Cff00c609ep0108, \\r
+                                                               IBA\C0100c690ep0108r0001, \\r
+                                                               IBA\C0100c690ep0108\r
 \r
 [SRP.DeviceSection.ntamd64]\r
 %SRP.DeviceDesc% = SRP.DDInstall,IBA\C0100c609ep0108r0001, \\r
                                                                IBA\Cff00c609ep0108r0001, \\r
                                                                IBA\C0100c609ep0108, \\r
-                                                               IBA\Cff00c609ep0108\r
+                                                               IBA\Cff00c609ep0108, \\r
+                                                               IBA\C0100c690ep0108r0001, \\r
+                                                               IBA\C0100c690ep0108\r
 \r
 [SRP.DeviceSection.ntia64]\r
 %SRP.DeviceDesc% = SRP.DDInstall,IBA\C0100c609ep0108r0001, \\r
                                                                IBA\Cff00c609ep0108r0001, \\r
                                                                IBA\C0100c609ep0108, \\r
-                                                               IBA\Cff00c609ep0108\r
+                                                               IBA\Cff00c609ep0108, \\r
+                                                               IBA\C0100c690ep0108r0001, \\r
+                                                               IBA\C0100c690ep0108\r
 \r
 [VFx.DeviceSection]\r
 ; empty since we don't support W9x/Me\r
index 626af3eca0fff17d6c8af5d3a10cd5cd4b687101..c6a68704fd047a688aafc53df590dc82a0f9102e 100644 (file)
@@ -43,6 +43,7 @@
 #define SRP_IO_CLASS                   CL_HTON16(0x0100)  /* T10 changed */\r
 #define SRP_IO_CLASS_R10               CL_HTON16(0xff00)  /* FF + high 8 bits of NCITS OUI */\r
 #define SRP_IO_SUBCLASS                        CL_HTON16(0x609e)  /* Low 16 bits of NCITS OUI */\r
+#define SRP_IO_SUBCLASS_SUN            CL_HTON16(0x690e)  /* Low 16 bits of NCITS OUI erroneously sent by SUN */\r
 #define SRP_PROTOCOL                   0x0108  /* T10 administered identifier */\r
 #define SRP_PROTOCOL_VER               0x0001  /* Approved standard version */\r
 #define SRP_SERVICE_NAME_PREFIX        "SRP.T10:"\r
index 7bfcdd4cbb688c43e5310507ad71243156a8ff24..fca08a081337ecd3935a01fbaf6fc2cd668cdd0d 100644 (file)
@@ -403,6 +403,11 @@ __srp_validate_ioc(
                                                ("Not an SRP CLASS(0x%x)/SUBCLASS(0x%x).\n",\r
                                                cl_ntoh16( p_ioc_rec->info.profile.io_class ),\r
                                                cl_ntoh16( p_ioc_rec->info.profile.io_subclass )) );\r
+#if defined(SRP_IO_SUBCLASS_SUN)\r
+               if ( p_ioc_rec->info.profile.io_subclass == SRP_IO_SUBCLASS_SUN )\r
+                       __srp_dump_ioc_info( &p_ioc_rec->info );\r
+               if ( p_ioc_rec->info.profile.io_subclass != SRP_IO_SUBCLASS_SUN )\r
+#endif\r
                return FALSE;\r
        }\r
 \r
@@ -416,6 +421,9 @@ __srp_validate_ioc(
        {\r
                SRP_PRINT_EXIT( TRACE_LEVEL_ERROR, SRP_DBG_ERROR,\r
                        ("Not an SRP PROTOCOL/PROTOCOL_VER.\n") );\r
+#if defined(SRP_IO_SUBCLASS_SUN)\r
+               if ( p_ioc_rec->info.profile.io_subclass != SRP_IO_SUBCLASS_SUN )\r
+#endif\r
                return FALSE;\r
        }\r
 \r