[IBAL] Add support for SM Client Reregister.
authorftillier <ftillier@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 14 Sep 2005 20:35:08 +0000 (20:35 +0000)
committerftillier <ftillier@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 14 Sep 2005 20:35:08 +0000 (20:35 +0000)
Signed-off-by: Fab Tillier (ftillier@silverstorm.com)
Signed-off-by: Yossi Leybovich (sleybo@mellanox.co.il)
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@67 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

core/al/al_ci_ca_shared.c
core/al/kernel/al_smi.c
inc/iba/ib_types.h

index 9795b5c..25c639d 100644 (file)
@@ -275,6 +275,7 @@ ci_ca_process_event_cb(
        case IB_AE_PORT_TRAP:\r
        case IB_AE_PORT_DOWN:\r
        case IB_AE_PORT_ACTIVE:\r
+       case IB_AE_CLIENT_REREGISTER:\r
 #ifdef CL_KERNEL\r
                /* The SMI polling routine may report a PnP event. */\r
                force_smi_poll();\r
index 9f9d5df..b618296 100644 (file)
@@ -1812,6 +1812,15 @@ fwd_local_mad(
                        {\r
                                p_spl_qp_svc->base_lid = p_port_info->base_lid;\r
                                p_spl_qp_svc->lmc = ib_port_info_get_lmc( p_port_info );\r
+                               if (p_port_info->subnet_timeout & 0x80)\r
+                               {\r
+                                       AL_TRACE(AL_DBG_PNP,\r
+                                               ("Client reregister event, setting sm_lid to 0.\n"));\r
+                                       ci_ca_lock_attr(p_spl_qp_svc->obj.p_ci_ca);\r
+                                       p_spl_qp_svc->obj.p_ci_ca->p_pnp_attr->\r
+                                               p_port_attr->sm_lid= 0;\r
+                                       ci_ca_unlock_attr(p_spl_qp_svc->obj.p_ci_ca);\r
+                               }\r
                        }\r
                }\r
        }\r
index 4a5827d..e319653 100644 (file)
@@ -3839,38 +3839,38 @@ typedef struct _ib_port_info
 #define IB_PORT_LINK_SPEED_SUPPORTED_MASK                      0xF0\r
 \r
 \r
-#define IB_PORT_CAP_RESV1                      (CL_NTOH32(0x00000001))\r
+#define IB_PORT_CAP_RESV0                      (CL_NTOH32(0x00000001))\r
 #define IB_PORT_CAP_IS_SM                      (CL_NTOH32(0x00000002))\r
 #define IB_PORT_CAP_HAS_NOTICE         (CL_NTOH32(0x00000004))\r
 #define IB_PORT_CAP_HAS_TRAP           (CL_NTOH32(0x00000008))\r
-#define IB_PORT_CAP_RESV2                      (CL_NTOH32(0x00000010))\r
+#define IB_PORT_CAP_HAS_IPD                    (CL_NTOH32(0x00000010))\r
 #define IB_PORT_CAP_HAS_AUTO_MIG       (CL_NTOH32(0x00000020))\r
 #define IB_PORT_CAP_HAS_SL_MAP         (CL_NTOH32(0x00000040))\r
 #define IB_PORT_CAP_HAS_NV_MKEY                (CL_NTOH32(0x00000080))\r
 #define IB_PORT_CAP_HAS_NV_PKEY                (CL_NTOH32(0x00000100))\r
 #define IB_PORT_CAP_HAS_LED_INFO       (CL_NTOH32(0x00000200))\r
 #define IB_PORT_CAP_SM_DISAB           (CL_NTOH32(0x00000400))\r
-#define IB_PORT_CAP_RESV3                      (CL_NTOH32(0x00000800))\r
-#define IB_PORT_CAP_RESV4                      (CL_NTOH32(0x00001000))\r
-#define IB_PORT_CAP_RESV                     (CL_NTOH32(0x00002000))\r
-#define IB_PORT_CAP_RESV                     (CL_NTOH32(0x00004000))\r
-#define IB_PORT_CAP_RESV                     (CL_NTOH32(0x00008000))\r
+#define IB_PORT_CAP_HAS_SYS_GUID       (CL_NTOH32(0x00000800))\r
+#define IB_PORT_CAP_HAS_PKEY_SW_EXT_PORT_TRAP (CL_NTOH32(0x00001000))\r
+#define IB_PORT_CAP_RESV13                     (CL_NTOH32(0x00002000))\r
+#define IB_PORT_CAP_RESV14                     (CL_NTOH32(0x00004000))\r
+#define IB_PORT_CAP_RESV15                     (CL_NTOH32(0x00008000))\r
 #define IB_PORT_CAP_HAS_COM_MGT                (CL_NTOH32(0x00010000))\r
 #define IB_PORT_CAP_HAS_SNMP           (CL_NTOH32(0x00020000))\r
-#define IB_PORT_CAP_RESV8                      (CL_NTOH32(0x00040000))\r
+#define IB_PORT_CAP_HAS_REINIT         (CL_NTOH32(0x00040000))\r
 #define IB_PORT_CAP_HAS_DEV_MGT                (CL_NTOH32(0x00080000))\r
 #define IB_PORT_CAP_HAS_VEND_CLS       (CL_NTOH32(0x00100000))\r
 #define IB_PORT_CAP_HAS_DR_NTC         (CL_NTOH32(0x00200000))\r
 #define IB_PORT_CAP_HAS_CAP_NTC                (CL_NTOH32(0x00400000))\r
 #define IB_PORT_CAP_HAS_BM                     (CL_NTOH32(0x00800000))\r
-#define IB_PORT_CAP_RESV9                      (CL_NTOH32(0x01000000))\r
-#define IB_PORT_CAP_RESV10                     (CL_NTOH32(0x02000000))\r
-#define IB_PORT_CAP_RESV11                     (CL_NTOH32(0x04000000))\r
-#define IB_PORT_CAP_RESV12                     (CL_NTOH32(0x08000000))\r
-#define IB_PORT_CAP_RESV13                     (CL_NTOH32(0x10000000))\r
-#define IB_PORT_CAP_RESV14                     (CL_NTOH32(0x20000000))\r
-#define IB_PORT_CAP_RESV15                     (CL_NTOH32(0x40000000))\r
-#define IB_PORT_CAP_RESV16                     (CL_NTOH32(0x80000000))\r
+#define IB_PORT_CAP_HAS_LINK_TRIP      (CL_NTOH32(0x01000000))\r
+#define IB_PORT_CAP_HAS_CLI_REREG      (CL_NTOH32(0x02000000))\r
+#define IB_PORT_CAP_RESV26                     (CL_NTOH32(0x04000000))\r
+#define IB_PORT_CAP_RESV27                     (CL_NTOH32(0x08000000))\r
+#define IB_PORT_CAP_RESV28                     (CL_NTOH32(0x10000000))\r
+#define IB_PORT_CAP_RESV29                     (CL_NTOH32(0x20000000))\r
+#define IB_PORT_CAP_RESV30                     (CL_NTOH32(0x40000000))\r
+#define IB_PORT_CAP_RESV31                     (CL_NTOH32(0x80000000))\r
 \r
 /****f* IBA Base: Types/ib_port_info_get_port_state\r
 * NAME\r
@@ -7177,6 +7177,7 @@ typedef enum _ib_async_event_t
        IB_AE_WQ_ACCESS_ERROR,\r
        IB_AE_PORT_ACTIVE,\r
        IB_AE_PORT_DOWN,\r
+       IB_AE_CLIENT_REREGISTER,\r
        IB_AE_UNKNOWN           /* ALWAYS LAST ENUM VALUE */\r
 \r
 }      ib_async_event_t;\r
@@ -7266,6 +7267,9 @@ typedef enum _ib_async_event_t
 *              The link is declared unavailable: IB_LINK_INIT, IB_LINK_ARMED,\r
 *              IB_LINK_DOWN.\r
 *\r
+*      IB_AE_CLIENT_REREGISTER\r
+*              The SM idicate to client to reregister its SA records.\r
+*\r
 *      IB_AE_UNKNOWN\r
 *              An unknown error occurred which cannot be attributed to any\r
 *              resource; behavior is indeterminate.\r
@@ -7429,6 +7433,11 @@ typedef struct _ib_port_cap
        boolean_t               reinit;\r
        boolean_t               ledinfo;\r
        boolean_t               port_active;\r
+       boolean_t               ipd;\r
+       boolean_t               pkey_switch_ext_port;\r
+       boolean_t               bm;\r
+       boolean_t               link_rtl;\r
+       boolean_t               client_reregister;\r
 \r
 }      ib_port_cap_t;\r
 /*****/\r
@@ -9231,6 +9240,7 @@ typedef uint32_t                                                  ib_ca_mod_t;
 #define IB_CA_MOD_SHUTDOWN_PORT                                0x00100000\r
 #define IB_CA_MOD_INIT_TYPE_VALUE                      0x00200000\r
 #define IB_CA_MOD_SYSTEM_IMAGE_GUID                    0x00400000\r
+#define IB_CA_MOD_IS_CLIENT_REREGISTER_SUPPORTED       0x00800000\r
 /*\r
 * VALUES\r
 *      IB_CA_MOD_IS_CM_SUPPORTED\r
@@ -9309,6 +9319,10 @@ typedef uint32_t                                                 ib_ca_mod_t;
 *\r
 *      IB_CA_MOD_SYSTEM_IMAGE_GUID\r
 *              Used to modify the system image GUID for the port.\r
+*\r
+*      IB_CA_MOD_IS_CLIENT_REREGISTER_SUPPORTED\r
+*              Used to modify the system image GUID for the port.\r
+*\r
 *****/\r
 \r
 \r