From cf159bf2332db2f57fdd1f5ab63cfe37f74a106f Mon Sep 17 00:00:00 2001 From: rread Date: Wed, 12 Nov 2003 02:41:21 +0000 Subject: [PATCH] b=2243 fix router config breakage. Now that the router config commands are NAL_CMDs, need to add a gw_nal to pcfg. --- lnet/include/linux/kp30.h | 1 + lnet/libcfs/module.c | 46 ++++++------------------------------- lnet/utils/portals.c | 21 ++++++++++------- lustre/portals/include/linux/kp30.h | 1 + lustre/portals/libcfs/module.c | 46 ++++++------------------------------- lustre/portals/utils/portals.c | 21 ++++++++++------- 6 files changed, 42 insertions(+), 94 deletions(-) diff --git a/lnet/include/linux/kp30.h b/lnet/include/linux/kp30.h index 5bd7663..f3d0d61 100644 --- a/lnet/include/linux/kp30.h +++ b/lnet/include/linux/kp30.h @@ -774,6 +774,7 @@ struct portals_cfg { __u32 pcfg_nal; __u32 pcfg_flags; + __u32 pcfg_gw_nal; __u64 pcfg_nid; __u64 pcfg_nid2; __u64 pcfg_nid3; diff --git a/lnet/libcfs/module.c b/lnet/libcfs/module.c index 930920b..a01dfe2 100644 --- a/lnet/libcfs/module.c +++ b/lnet/libcfs/module.c @@ -225,13 +225,13 @@ kportal_router_cmd(struct portals_cfg *pcfg, void * private) CDEBUG(D_IOCTL, "Adding route: [%d] "LPU64" : "LPU64" - "LPU64"\n", pcfg->pcfg_nal, pcfg->pcfg_nid, pcfg->pcfg_nid2, pcfg->pcfg_nid3); - err = kportal_add_route(pcfg->pcfg_nal, pcfg->pcfg_nid, + err = kportal_add_route(pcfg->pcfg_gw_nal, pcfg->pcfg_nid, pcfg->pcfg_nid2, pcfg->pcfg_nid3); break; case NAL_CMD_DEL_ROUTE: CDEBUG (D_IOCTL, "Removing routes via [%d] "LPU64" : "LPU64" - "LPU64"\n", - pcfg->pcfg_nal, pcfg->pcfg_nid, + pcfg->pcfg_gw_nal, pcfg->pcfg_nid, pcfg->pcfg_nid2, pcfg->pcfg_nid3); err = kportal_del_route (pcfg->pcfg_nal, pcfg->pcfg_nid, pcfg->pcfg_nid2, pcfg->pcfg_nid3); @@ -239,7 +239,7 @@ kportal_router_cmd(struct portals_cfg *pcfg, void * private) case NAL_CMD_NOTIFY_ROUTER: { CDEBUG (D_IOCTL, "Notifying peer [%d] "LPU64" %s @ %ld\n", - pcfg->pcfg_nal, pcfg->pcfg_nid, + pcfg->pcfg_gw_nal, pcfg->pcfg_nid, pcfg->pcfg_flags ? "Enabling" : "Disabling", (time_t)pcfg->pcfg_nid3); @@ -251,7 +251,7 @@ kportal_router_cmd(struct portals_cfg *pcfg, void * private) case NAL_CMD_GET_ROUTE: CDEBUG (D_IOCTL, "Getting route [%d]\n", pcfg->pcfg_count); - err = kportal_get_route(pcfg->pcfg_count, &pcfg->pcfg_nal, + err = kportal_get_route(pcfg->pcfg_count, &pcfg->pcfg_gw_nal, &pcfg->pcfg_nid, &pcfg->pcfg_nid2, &pcfg->pcfg_nid3, &pcfg->pcfg_flags); @@ -260,38 +260,6 @@ kportal_router_cmd(struct portals_cfg *pcfg, void * private) RETURN(err); } -static int -kportal_register_router (void) -{ - int rc; - kpr_control_interface_t *ci; - - ci = (kpr_control_interface_t *)PORTAL_SYMBOL_GET(kpr_control_interface); - if (ci == NULL) - return (0); - - rc = kportal_nal_register(ROUTER, kportal_router_cmd, NULL); - - PORTAL_SYMBOL_PUT(kpr_control_interface); - return (rc); -} - -static int -kportal_unregister_router (void) -{ - int rc; - kpr_control_interface_t *ci; - - ci = (kpr_control_interface_t *)PORTAL_SYMBOL_GET(kpr_control_interface); - if (ci == NULL) - return (0); - - rc = kportal_nal_unregister(ROUTER); - - PORTAL_SYMBOL_PUT(kpr_control_interface); - return (rc); -} - int kportal_nal_cmd(struct portals_cfg *pcfg) { @@ -626,9 +594,9 @@ static int init_kportals_module(void) goto cleanup_fini; } - rc = kportal_register_router(); + rc = kportal_nal_register(ROUTER, kportal_router_cmd, NULL); if (rc) { - CERROR("kportals_register_router: error %d\n", rc); + CERROR("kportal_nal_registre: ROUTER error %d\n", rc); goto cleanup_proc; } @@ -654,7 +622,7 @@ static void exit_kportals_module(void) { int rc; - kportal_unregister_router(); + kportal_nal_unregister(ROUTER); remove_proc(); PtlFini(); diff --git a/lnet/utils/portals.c b/lnet/utils/portals.c index 57fdbd3..3325892 100644 --- a/lnet/utils/portals.c +++ b/lnet/utils/portals.c @@ -85,7 +85,8 @@ pcfg_ioctl(struct portals_cfg *pcfg) { int rc; - pcfg->pcfg_nal = g_nal; + if (pcfg->pcfg_nal ==0) + pcfg->pcfg_nal = g_nal; if (g_record_cb) { rc = g_record_cb(PORTALS_CFG_TYPE, sizeof(*pcfg), pcfg); @@ -1170,14 +1171,15 @@ jt_ptl_add_route (int argc, char **argv) PCFG_INIT(pcfg, NAL_CMD_ADD_ROUTE); pcfg.pcfg_nid = gateway_nid; - pcfg.pcfg_nal = g_nal; + pcfg.pcfg_nal = ROUTER; + pcfg.pcfg_gw_nal = g_nal; pcfg.pcfg_nid2 = MIN (nid1, nid2); pcfg.pcfg_nid3 = MAX (nid1, nid2); rc = pcfg_ioctl(&pcfg); if (rc != 0) { - fprintf (stderr, "IOC_PORTAL_ADD_ROUTE failed: %s\n", strerror (errno)); + fprintf (stderr, "NAL_CMD_ADD_ROUTE failed: %s\n", strerror (errno)); return (-1); } @@ -1232,7 +1234,8 @@ jt_ptl_del_route (int argc, char **argv) } PCFG_INIT(pcfg, NAL_CMD_DEL_ROUTE); - pcfg.pcfg_nal = g_nal; + pcfg.pcfg_nal = ROUTER; + pcfg.pcfg_gw_nal = g_nal; pcfg.pcfg_nid = nid; pcfg.pcfg_nid2 = nid1; pcfg.pcfg_nid3 = nid2; @@ -1240,7 +1243,7 @@ jt_ptl_del_route (int argc, char **argv) rc = pcfg_ioctl(&pcfg); if (rc != 0) { - fprintf (stderr, "IOC_PORTAL_DEL_ROUTE ("LPX64") failed: %s\n", nid, strerror (errno)); + fprintf (stderr, "NAL_CMD_DEL_ROUTE ("LPX64") failed: %s\n", nid, strerror (errno)); return (-1); } @@ -1291,7 +1294,8 @@ jt_ptl_notify_router (int argc, char **argv) } PCFG_INIT(pcfg, NAL_CMD_NOTIFY_ROUTER); - pcfg.pcfg_nal = g_nal; + pcfg.pcfg_nal = ROUTER; + pcfg.pcfg_gw_nal = g_nal; pcfg.pcfg_nid = nid; pcfg.pcfg_flags = enable; /* Yeuch; 'cept I need a __u64 on 64 bit machines... */ @@ -1300,7 +1304,7 @@ jt_ptl_notify_router (int argc, char **argv) rc = pcfg_ioctl(&pcfg); if (rc != 0) { - fprintf (stderr, "IOC_PORTAL_NOTIFY_ROUTER ("LPX64") failed: %s\n", + fprintf (stderr, "NAL_CMD_NOTIFY_ROUTER ("LPX64") failed: %s\n", nid, strerror (errno)); return (-1); } @@ -1324,13 +1328,14 @@ jt_ptl_print_routes (int argc, char **argv) for (index = 0;;index++) { PCFG_INIT(pcfg, NAL_CMD_GET_ROUTE); + pcfg.pcfg_nal = ROUTER; pcfg.pcfg_count = index; rc = pcfg_ioctl(&pcfg); if (rc != 0) break; - gateway_nal = pcfg.pcfg_nal; + gateway_nal = pcfg.pcfg_gw_nal; gateway_nid = pcfg.pcfg_nid; nid1 = pcfg.pcfg_nid2; nid2 = pcfg.pcfg_nid3; diff --git a/lustre/portals/include/linux/kp30.h b/lustre/portals/include/linux/kp30.h index 5bd7663..f3d0d61 100644 --- a/lustre/portals/include/linux/kp30.h +++ b/lustre/portals/include/linux/kp30.h @@ -774,6 +774,7 @@ struct portals_cfg { __u32 pcfg_nal; __u32 pcfg_flags; + __u32 pcfg_gw_nal; __u64 pcfg_nid; __u64 pcfg_nid2; __u64 pcfg_nid3; diff --git a/lustre/portals/libcfs/module.c b/lustre/portals/libcfs/module.c index 930920b..a01dfe2 100644 --- a/lustre/portals/libcfs/module.c +++ b/lustre/portals/libcfs/module.c @@ -225,13 +225,13 @@ kportal_router_cmd(struct portals_cfg *pcfg, void * private) CDEBUG(D_IOCTL, "Adding route: [%d] "LPU64" : "LPU64" - "LPU64"\n", pcfg->pcfg_nal, pcfg->pcfg_nid, pcfg->pcfg_nid2, pcfg->pcfg_nid3); - err = kportal_add_route(pcfg->pcfg_nal, pcfg->pcfg_nid, + err = kportal_add_route(pcfg->pcfg_gw_nal, pcfg->pcfg_nid, pcfg->pcfg_nid2, pcfg->pcfg_nid3); break; case NAL_CMD_DEL_ROUTE: CDEBUG (D_IOCTL, "Removing routes via [%d] "LPU64" : "LPU64" - "LPU64"\n", - pcfg->pcfg_nal, pcfg->pcfg_nid, + pcfg->pcfg_gw_nal, pcfg->pcfg_nid, pcfg->pcfg_nid2, pcfg->pcfg_nid3); err = kportal_del_route (pcfg->pcfg_nal, pcfg->pcfg_nid, pcfg->pcfg_nid2, pcfg->pcfg_nid3); @@ -239,7 +239,7 @@ kportal_router_cmd(struct portals_cfg *pcfg, void * private) case NAL_CMD_NOTIFY_ROUTER: { CDEBUG (D_IOCTL, "Notifying peer [%d] "LPU64" %s @ %ld\n", - pcfg->pcfg_nal, pcfg->pcfg_nid, + pcfg->pcfg_gw_nal, pcfg->pcfg_nid, pcfg->pcfg_flags ? "Enabling" : "Disabling", (time_t)pcfg->pcfg_nid3); @@ -251,7 +251,7 @@ kportal_router_cmd(struct portals_cfg *pcfg, void * private) case NAL_CMD_GET_ROUTE: CDEBUG (D_IOCTL, "Getting route [%d]\n", pcfg->pcfg_count); - err = kportal_get_route(pcfg->pcfg_count, &pcfg->pcfg_nal, + err = kportal_get_route(pcfg->pcfg_count, &pcfg->pcfg_gw_nal, &pcfg->pcfg_nid, &pcfg->pcfg_nid2, &pcfg->pcfg_nid3, &pcfg->pcfg_flags); @@ -260,38 +260,6 @@ kportal_router_cmd(struct portals_cfg *pcfg, void * private) RETURN(err); } -static int -kportal_register_router (void) -{ - int rc; - kpr_control_interface_t *ci; - - ci = (kpr_control_interface_t *)PORTAL_SYMBOL_GET(kpr_control_interface); - if (ci == NULL) - return (0); - - rc = kportal_nal_register(ROUTER, kportal_router_cmd, NULL); - - PORTAL_SYMBOL_PUT(kpr_control_interface); - return (rc); -} - -static int -kportal_unregister_router (void) -{ - int rc; - kpr_control_interface_t *ci; - - ci = (kpr_control_interface_t *)PORTAL_SYMBOL_GET(kpr_control_interface); - if (ci == NULL) - return (0); - - rc = kportal_nal_unregister(ROUTER); - - PORTAL_SYMBOL_PUT(kpr_control_interface); - return (rc); -} - int kportal_nal_cmd(struct portals_cfg *pcfg) { @@ -626,9 +594,9 @@ static int init_kportals_module(void) goto cleanup_fini; } - rc = kportal_register_router(); + rc = kportal_nal_register(ROUTER, kportal_router_cmd, NULL); if (rc) { - CERROR("kportals_register_router: error %d\n", rc); + CERROR("kportal_nal_registre: ROUTER error %d\n", rc); goto cleanup_proc; } @@ -654,7 +622,7 @@ static void exit_kportals_module(void) { int rc; - kportal_unregister_router(); + kportal_nal_unregister(ROUTER); remove_proc(); PtlFini(); diff --git a/lustre/portals/utils/portals.c b/lustre/portals/utils/portals.c index 57fdbd3..3325892 100644 --- a/lustre/portals/utils/portals.c +++ b/lustre/portals/utils/portals.c @@ -85,7 +85,8 @@ pcfg_ioctl(struct portals_cfg *pcfg) { int rc; - pcfg->pcfg_nal = g_nal; + if (pcfg->pcfg_nal ==0) + pcfg->pcfg_nal = g_nal; if (g_record_cb) { rc = g_record_cb(PORTALS_CFG_TYPE, sizeof(*pcfg), pcfg); @@ -1170,14 +1171,15 @@ jt_ptl_add_route (int argc, char **argv) PCFG_INIT(pcfg, NAL_CMD_ADD_ROUTE); pcfg.pcfg_nid = gateway_nid; - pcfg.pcfg_nal = g_nal; + pcfg.pcfg_nal = ROUTER; + pcfg.pcfg_gw_nal = g_nal; pcfg.pcfg_nid2 = MIN (nid1, nid2); pcfg.pcfg_nid3 = MAX (nid1, nid2); rc = pcfg_ioctl(&pcfg); if (rc != 0) { - fprintf (stderr, "IOC_PORTAL_ADD_ROUTE failed: %s\n", strerror (errno)); + fprintf (stderr, "NAL_CMD_ADD_ROUTE failed: %s\n", strerror (errno)); return (-1); } @@ -1232,7 +1234,8 @@ jt_ptl_del_route (int argc, char **argv) } PCFG_INIT(pcfg, NAL_CMD_DEL_ROUTE); - pcfg.pcfg_nal = g_nal; + pcfg.pcfg_nal = ROUTER; + pcfg.pcfg_gw_nal = g_nal; pcfg.pcfg_nid = nid; pcfg.pcfg_nid2 = nid1; pcfg.pcfg_nid3 = nid2; @@ -1240,7 +1243,7 @@ jt_ptl_del_route (int argc, char **argv) rc = pcfg_ioctl(&pcfg); if (rc != 0) { - fprintf (stderr, "IOC_PORTAL_DEL_ROUTE ("LPX64") failed: %s\n", nid, strerror (errno)); + fprintf (stderr, "NAL_CMD_DEL_ROUTE ("LPX64") failed: %s\n", nid, strerror (errno)); return (-1); } @@ -1291,7 +1294,8 @@ jt_ptl_notify_router (int argc, char **argv) } PCFG_INIT(pcfg, NAL_CMD_NOTIFY_ROUTER); - pcfg.pcfg_nal = g_nal; + pcfg.pcfg_nal = ROUTER; + pcfg.pcfg_gw_nal = g_nal; pcfg.pcfg_nid = nid; pcfg.pcfg_flags = enable; /* Yeuch; 'cept I need a __u64 on 64 bit machines... */ @@ -1300,7 +1304,7 @@ jt_ptl_notify_router (int argc, char **argv) rc = pcfg_ioctl(&pcfg); if (rc != 0) { - fprintf (stderr, "IOC_PORTAL_NOTIFY_ROUTER ("LPX64") failed: %s\n", + fprintf (stderr, "NAL_CMD_NOTIFY_ROUTER ("LPX64") failed: %s\n", nid, strerror (errno)); return (-1); } @@ -1324,13 +1328,14 @@ jt_ptl_print_routes (int argc, char **argv) for (index = 0;;index++) { PCFG_INIT(pcfg, NAL_CMD_GET_ROUTE); + pcfg.pcfg_nal = ROUTER; pcfg.pcfg_count = index; rc = pcfg_ioctl(&pcfg); if (rc != 0) break; - gateway_nal = pcfg.pcfg_nal; + gateway_nal = pcfg.pcfg_gw_nal; gateway_nid = pcfg.pcfg_nid; nid1 = pcfg.pcfg_nid2; nid2 = pcfg.pcfg_nid3; -- 1.8.3.1