diff --git a/lnet/archdep.m4 b/lnet/archdep.m4
index 26e86ed3eb9c382fcba76ead0fd399195164e3bc..7d807da5e7e09d2b75a3d84cfefbe5a3a9272032 100644
--- a/lnet/archdep.m4
+++ b/lnet/archdep.m4
@@ -531,6 +531,35 @@ if test x$enable_modules != xno ; then
 	AC_SUBST(IIBCPPFLAGS)
 	AC_SUBST(IIBNAL)
 
+	#### Rapid Array
+	AC_MSG_CHECKING([if RapidArray kernel headers are present])
+	# placeholder
+	RACPPFLAGS="-I/tmp"
+	EXTRA_KCFLAGS_save="$EXTRA_KCFLAGS"
+	EXTRA_KCFLAGS="$EXTRA_KCFLAGS $RACPPFLAGS"
+	LUSTRE_MODULE_TRY_COMPILE(
+		[
+			#include <linux/types.h>
+			#include <rapl.h>
+		],[
+	                RAP_RETURN          rc;
+			RAP_PVOID           dev_handle;
+
+	                rc = RapkGetDeviceByIndex(0, NULL, NULL, &dev_handle);
+
+			return rc == RAP_SUCCESS ? 0 : 1;
+		],[
+			AC_MSG_RESULT([yes])
+			RANAL="ranal"
+		],[
+			AC_MSG_RESULT([no])
+			RANAL=""
+			RACPPFLAGS=""
+		])
+	EXTRA_KCFLAGS="$EXTRA_KCFLAGS_save"
+	AC_SUBST(RACPPFLAGS)
+	AC_SUBST(RANAL)
+
 	# ---------- Red Hat 2.4.18 has iobuf->dovary --------------
 	# But other kernels don't
 
@@ -826,6 +855,7 @@ AM_CONDITIONAL(BUILD_QSWNAL, test x$QSWNAL = "xqswnal")
 AM_CONDITIONAL(BUILD_GMNAL, test x$GMNAL = "xgmnal")
 AM_CONDITIONAL(BUILD_OPENIBNAL, test x$OPENIBNAL = "xopenibnal")
 AM_CONDITIONAL(BUILD_IIBNAL, test x$IIBNAL = "xiibnal")
+AM_CONDITIONAL(BUILD_RANAL, test x$RANAL = "xranal")
 
 # portals/utils/portals.c
 AC_CHECK_HEADERS([netdb.h netinet/tcp.h asm/types.h])
diff --git a/lnet/include/linux/kp30.h b/lnet/include/linux/kp30.h
index d49baeb8aa513e36b4cba470ea636d81cf2433d3..85284ce9f4033e78eb7df5c1a78c3a3f6b569b55 100644
--- a/lnet/include/linux/kp30.h
+++ b/lnet/include/linux/kp30.h
@@ -652,6 +652,7 @@ enum {
         OPENIBNAL = 7,
         IIBNAL    = 8,
         LONAL     = 9,
+        RANAL     = 10,
         NAL_ENUM_END_MARKER
 };
 
diff --git a/lnet/include/linux/libcfs.h b/lnet/include/linux/libcfs.h
index 8f8d6fe3073a78c03e5f4525738903ac8263baaf..d8f53496fcd36450a083059c05e5cfaac7ffddb5 100644
--- a/lnet/include/linux/libcfs.h
+++ b/lnet/include/linux/libcfs.h
@@ -94,24 +94,20 @@ struct ptldebug_header {
 #define S_RPC         0x00000100
 #define S_MGMT        0x00000200
 #define S_PORTALS     0x00000400
-#define S_SOCKNAL     0x00000800
-#define S_QSWNAL      0x00001000
-#define S_PINGER      0x00002000
-#define S_FILTER      0x00004000
-#define S_PTLBD       0x00008000
-#define S_ECHO        0x00010000
-#define S_LDLM        0x00020000
-#define S_LOV         0x00040000
-#define S_GMNAL       0x00080000
-#define S_PTLROUTER   0x00100000
-#define S_COBD        0x00200000
-#define S_IBNAL       0x00400000 /* All IB NALs */
-#define S_SM          0x00800000
-#define S_ASOBD       0x01000000
-#define S_CONFOBD     0x02000000
-#define S_LMV         0x04000000
-#define S_CMOBD       0x08000000
-#define S_LONAL       0x10000000
+#define S_NAL         0x00000800 /* ALL NALs */
+#define S_PINGER      0x00001000
+#define S_FILTER      0x00002000
+#define S_PTLBD       0x00004000
+#define S_ECHO        0x00008000
+#define S_LDLM        0x00010000
+#define S_LOV         0x00020000
+#define S_PTLROUTER   0x00040000
+#define S_COBD        0x00080000
+#define S_SM          0x00100000
+#define S_ASOBD       0x00200000
+#define S_CONFOBD     0x00400000
+#define S_LMV         0x00800000
+#define S_CMOBD       0x01000000
 /* If you change these values, please keep these files up to date...
  *    portals/utils/debug.c
  *    utils/lconf
diff --git a/lnet/include/lnet/lltrace.h b/lnet/include/lnet/lltrace.h
index 5f266e25b2f74bd207bc8e19e8caf6f7a31f79bc..3e01df111505d38d58123a72914e63501d56bbf3 100644
--- a/lnet/include/lnet/lltrace.h
+++ b/lnet/include/lnet/lltrace.h
@@ -96,9 +96,7 @@ static inline int ltrace_start()
         rc = register_ioc_dev(PORTALS_DEV_ID, PORTALS_DEV_PATH);
 #endif
         ltrace_filter("class");
-        ltrace_filter("socknal");
-        ltrace_filter("qswnal");
-        ltrace_filter("gmnal");
+        ltrace_filter("nal");
         ltrace_filter("portals");
 
         ltrace_show("all_types");
diff --git a/lnet/klnds/Makefile.in b/lnet/klnds/Makefile.in
index 610b55cc729fddc28576ea0ce0087a6a2dd817e0..7e2e601e762830060d0d7e46ac6f681a896f5f98 100644
--- a/lnet/klnds/Makefile.in
+++ b/lnet/klnds/Makefile.in
@@ -1,4 +1,5 @@
 @BUILD_GMNAL_TRUE@subdir-m += gmnal
+@BUILD_RANAL_TRUE@subdir-m += ranal
 @BUILD_OPENIBNAL_TRUE@subdir-m += openibnal
 @BUILD_IIBNAL_TRUE@subdir-m += iibnal
 @BUILD_QSWNAL_TRUE@subdir-m += qswnal
diff --git a/lnet/klnds/autoMakefile.am b/lnet/klnds/autoMakefile.am
index 2bc4b5cf7bb9dc217e64c2a066257ead2ac41b9b..4638188104d346873c330ebc5d6bc75a1c92d4cd 100644
--- a/lnet/klnds/autoMakefile.am
+++ b/lnet/klnds/autoMakefile.am
@@ -3,4 +3,4 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
-SUBDIRS = gmnal iibnal openibnal qswnal socknal lonal
+SUBDIRS = gmnal iibnal openibnal qswnal socknal lonal ranal
diff --git a/lnet/klnds/gmlnd/gmlnd.h b/lnet/klnds/gmlnd/gmlnd.h
index 9c4425b10acd06be00e838590b848ac09802546a..f45eab7744f13ee05d65688df225492a99501c72 100644
--- a/lnet/klnds/gmlnd/gmlnd.h
+++ b/lnet/klnds/gmlnd/gmlnd.h
@@ -47,7 +47,7 @@
 #include "linux/vmalloc.h"
 #include "linux/sysctl.h"
 
-#define DEBUG_SUBSYSTEM S_GMNAL
+#define DEBUG_SUBSYSTEM S_NAL
 
 #include "portals/nal.h"
 #include "portals/api.h"
diff --git a/lnet/klnds/iiblnd/iiblnd.h b/lnet/klnds/iiblnd/iiblnd.h
index 0a25a9a31adaa8851738314ba088217be1d510ef..324215838a5765a860995bca816ca1b6acf9baa9 100644
--- a/lnet/klnds/iiblnd/iiblnd.h
+++ b/lnet/klnds/iiblnd/iiblnd.h
@@ -48,7 +48,7 @@
 #include <linux/kmod.h>
 #include <linux/sysctl.h>
 
-#define DEBUG_SUBSYSTEM S_IBNAL
+#define DEBUG_SUBSYSTEM S_NAL
 
 #include <linux/kp30.h>
 #include <portals/p30.h>
diff --git a/lnet/klnds/lolnd/lolnd.h b/lnet/klnds/lolnd/lolnd.h
index c6f2dda11af9432beb94511f55f24967f30ed0f1..9d3d3ff8373564d88633df10ab6244cd21f760ed 100644
--- a/lnet/klnds/lolnd/lolnd.h
+++ b/lnet/klnds/lolnd/lolnd.h
@@ -35,7 +35,7 @@
 #include <linux/uio.h>
 #include <linux/init.h>
 
-#define DEBUG_SUBSYSTEM S_LONAL
+#define DEBUG_SUBSYSTEM S_NAL
 
 #include <linux/kp30.h>
 #include <portals/p30.h>
diff --git a/lnet/klnds/openiblnd/openiblnd.h b/lnet/klnds/openiblnd/openiblnd.h
index f0610f22a30976b2ff6e4c04a053b4a284d3f7e7..2fbd88bafe776ab1e5e1dc79d1f639028523595d 100644
--- a/lnet/klnds/openiblnd/openiblnd.h
+++ b/lnet/klnds/openiblnd/openiblnd.h
@@ -48,7 +48,7 @@
 #include <linux/kmod.h>
 #include <linux/sysctl.h>
 
-#define DEBUG_SUBSYSTEM S_IBNAL
+#define DEBUG_SUBSYSTEM S_NAL
 
 #include <linux/kp30.h>
 #include <portals/p30.h>
diff --git a/lnet/klnds/qswlnd/qswlnd.h b/lnet/klnds/qswlnd/qswlnd.h
index 0b0914e5de67cd2d9d6836ac2b6242d9209c9a9f..6e047521a2097b3a674c8cdc61f006ad24daaeaa 100644
--- a/lnet/klnds/qswlnd/qswlnd.h
+++ b/lnet/klnds/qswlnd/qswlnd.h
@@ -72,7 +72,7 @@
 #include <linux/sysctl.h>
 #include <asm/segment.h>
 
-#define DEBUG_SUBSYSTEM S_QSWNAL
+#define DEBUG_SUBSYSTEM S_NAL
 
 #include <linux/kp30.h>
 #include <linux/kpr.h>
diff --git a/lnet/klnds/socklnd/socklnd.h b/lnet/klnds/socklnd/socklnd.h
index 20cd3d923fc57d807ef39db8abcc4917ec64afaa..9cfe8589672efce3ba77566109fa1f207644355b 100644
--- a/lnet/klnds/socklnd/socklnd.h
+++ b/lnet/klnds/socklnd/socklnd.h
@@ -57,7 +57,7 @@
 #include <asm/segment.h>
 #include <asm/div64.h>
 
-#define DEBUG_SUBSYSTEM S_SOCKNAL
+#define DEBUG_SUBSYSTEM S_NAL
 
 #include <linux/kp30.h>
 #include <linux/portals_compat25.h>
diff --git a/lnet/libcfs/debug.c b/lnet/libcfs/debug.c
index cd77438f0ef15fbec9ad8711669737d1246bf285..b5286fccc3bf0e9ccf2fdce2d1f557ea30d8c950 100644
--- a/lnet/libcfs/debug.c
+++ b/lnet/libcfs/debug.c
@@ -59,8 +59,7 @@
 #include <linux/kallsyms.h>
 #endif
 
-unsigned int portal_subsystem_debug = ~0 - (S_PORTALS | S_QSWNAL | S_SOCKNAL |
-                                            S_GMNAL | S_IBNAL);
+unsigned int portal_subsystem_debug = ~0 - (S_PORTALS | S_NAL);
 EXPORT_SYMBOL(portal_subsystem_debug);
 
 unsigned int portal_debug = (D_WARNING | D_DLMTRACE | D_ERROR | D_EMERG | D_HA |
@@ -267,12 +266,14 @@ char *portals_nid2str(int nal, ptl_nid_t nid, char *str)
                 /* userspace NAL */
         case IIBNAL:
         case OPENIBNAL:
+        case RANAL:
         case SOCKNAL:
                 snprintf(str, PTL_NALFMT_SIZE, "%u:%u.%u.%u.%u",
                          (__u32)(nid >> 32), HIPQUAD(nid));
                 break;
         case QSWNAL:
         case GMNAL:
+        case LONAL:
                 snprintf(str, PTL_NALFMT_SIZE, "%u:%u",
                          (__u32)(nid >> 32), (__u32)nid);
                 break;
diff --git a/lnet/utils/debug.c b/lnet/utils/debug.c
index 17a124c567a9d7f1a458f93bf34f369fb09d3cd1..9886a5cbba04765fbb931d732441a418993c1ceb 100644
--- a/lnet/utils/debug.c
+++ b/lnet/utils/debug.c
@@ -77,12 +77,11 @@ static int debug_mask = ~0;
 static const char *portal_debug_subsystems[] =
         {"undefined", "mdc", "mds", "osc", 
          "ost", "class", "log", "llite",
-         "rpc", "mgmt", "portals", "socknal", 
-         "qswnal", "pinger", "filter", "ptlbd", 
-         "echo", "ldlm", "lov", "gmnal",
-         "router", "cobd", "ibnal", "sm",
-         "asobd", "confobd", "lmv", "cmobd",
-         "lonal", NULL};
+         "rpc", "mgmt", "portals", "nal", 
+         "pinger", "filter", "ptlbd", "echo", 
+         "ldlm", "lov", "router", "cobd", 
+         "sm", "asobd", "confobd", "lmv", 
+         "cmobd", NULL};
 static const char *portal_debug_masks[] =
         {"trace", "inode", "super", "ext2", 
          "malloc", "cache", "info", "ioctl",
diff --git a/lnet/utils/portals.c b/lnet/utils/portals.c
index abe3f987dc11a728ae00616960ec2ebdc4ea083a..29717fa83ff030fd676f5d199094e50a81008787 100644
--- a/lnet/utils/portals.c
+++ b/lnet/utils/portals.c
@@ -79,6 +79,7 @@ static name2num_t nalnames[] = {
         {"openib",      OPENIBNAL},
         {"iib",         IIBNAL},
         {"lo",          LONAL},
+        {"ra",          RANAL},
 #else
         {"cray_kern_nal", CRAY_KERN_NAL},
         {"cray_user_nal", CRAY_USER_NAL},
diff --git a/lustre/configure.in b/lustre/configure.in
index b0f9861f2fb311d23c15313502586f3564f31106..5c9ffc0571f11da80b010118ddd18798d443b0fc 100644
--- a/lustre/configure.in
+++ b/lustre/configure.in
@@ -228,6 +228,8 @@ portals/knals/socknal/Makefile
 portals/knals/socknal/autoMakefile
 portals/knals/lonal/Makefile
 portals/knals/lonal/autoMakefile
+portals/knals/ranal/Makefile
+portals/knals/ranal/autoMakefile
 portals/libcfs/Makefile
 portals/libcfs/autoMakefile
 portals/portals/Makefile
diff --git a/lustre/portals/archdep.m4 b/lustre/portals/archdep.m4
index 26e86ed3eb9c382fcba76ead0fd399195164e3bc..7d807da5e7e09d2b75a3d84cfefbe5a3a9272032 100644
--- a/lustre/portals/archdep.m4
+++ b/lustre/portals/archdep.m4
@@ -531,6 +531,35 @@ if test x$enable_modules != xno ; then
 	AC_SUBST(IIBCPPFLAGS)
 	AC_SUBST(IIBNAL)
 
+	#### Rapid Array
+	AC_MSG_CHECKING([if RapidArray kernel headers are present])
+	# placeholder
+	RACPPFLAGS="-I/tmp"
+	EXTRA_KCFLAGS_save="$EXTRA_KCFLAGS"
+	EXTRA_KCFLAGS="$EXTRA_KCFLAGS $RACPPFLAGS"
+	LUSTRE_MODULE_TRY_COMPILE(
+		[
+			#include <linux/types.h>
+			#include <rapl.h>
+		],[
+	                RAP_RETURN          rc;
+			RAP_PVOID           dev_handle;
+
+	                rc = RapkGetDeviceByIndex(0, NULL, NULL, &dev_handle);
+
+			return rc == RAP_SUCCESS ? 0 : 1;
+		],[
+			AC_MSG_RESULT([yes])
+			RANAL="ranal"
+		],[
+			AC_MSG_RESULT([no])
+			RANAL=""
+			RACPPFLAGS=""
+		])
+	EXTRA_KCFLAGS="$EXTRA_KCFLAGS_save"
+	AC_SUBST(RACPPFLAGS)
+	AC_SUBST(RANAL)
+
 	# ---------- Red Hat 2.4.18 has iobuf->dovary --------------
 	# But other kernels don't
 
@@ -826,6 +855,7 @@ AM_CONDITIONAL(BUILD_QSWNAL, test x$QSWNAL = "xqswnal")
 AM_CONDITIONAL(BUILD_GMNAL, test x$GMNAL = "xgmnal")
 AM_CONDITIONAL(BUILD_OPENIBNAL, test x$OPENIBNAL = "xopenibnal")
 AM_CONDITIONAL(BUILD_IIBNAL, test x$IIBNAL = "xiibnal")
+AM_CONDITIONAL(BUILD_RANAL, test x$RANAL = "xranal")
 
 # portals/utils/portals.c
 AC_CHECK_HEADERS([netdb.h netinet/tcp.h asm/types.h])
diff --git a/lustre/portals/include/linux/kp30.h b/lustre/portals/include/linux/kp30.h
index d49baeb8aa513e36b4cba470ea636d81cf2433d3..85284ce9f4033e78eb7df5c1a78c3a3f6b569b55 100644
--- a/lustre/portals/include/linux/kp30.h
+++ b/lustre/portals/include/linux/kp30.h
@@ -652,6 +652,7 @@ enum {
         OPENIBNAL = 7,
         IIBNAL    = 8,
         LONAL     = 9,
+        RANAL     = 10,
         NAL_ENUM_END_MARKER
 };
 
diff --git a/lustre/portals/include/linux/libcfs.h b/lustre/portals/include/linux/libcfs.h
index 8f8d6fe3073a78c03e5f4525738903ac8263baaf..d8f53496fcd36450a083059c05e5cfaac7ffddb5 100644
--- a/lustre/portals/include/linux/libcfs.h
+++ b/lustre/portals/include/linux/libcfs.h
@@ -94,24 +94,20 @@ struct ptldebug_header {
 #define S_RPC         0x00000100
 #define S_MGMT        0x00000200
 #define S_PORTALS     0x00000400
-#define S_SOCKNAL     0x00000800
-#define S_QSWNAL      0x00001000
-#define S_PINGER      0x00002000
-#define S_FILTER      0x00004000
-#define S_PTLBD       0x00008000
-#define S_ECHO        0x00010000
-#define S_LDLM        0x00020000
-#define S_LOV         0x00040000
-#define S_GMNAL       0x00080000
-#define S_PTLROUTER   0x00100000
-#define S_COBD        0x00200000
-#define S_IBNAL       0x00400000 /* All IB NALs */
-#define S_SM          0x00800000
-#define S_ASOBD       0x01000000
-#define S_CONFOBD     0x02000000
-#define S_LMV         0x04000000
-#define S_CMOBD       0x08000000
-#define S_LONAL       0x10000000
+#define S_NAL         0x00000800 /* ALL NALs */
+#define S_PINGER      0x00001000
+#define S_FILTER      0x00002000
+#define S_PTLBD       0x00004000
+#define S_ECHO        0x00008000
+#define S_LDLM        0x00010000
+#define S_LOV         0x00020000
+#define S_PTLROUTER   0x00040000
+#define S_COBD        0x00080000
+#define S_SM          0x00100000
+#define S_ASOBD       0x00200000
+#define S_CONFOBD     0x00400000
+#define S_LMV         0x00800000
+#define S_CMOBD       0x01000000
 /* If you change these values, please keep these files up to date...
  *    portals/utils/debug.c
  *    utils/lconf
diff --git a/lustre/portals/include/portals/lltrace.h b/lustre/portals/include/portals/lltrace.h
index 5f266e25b2f74bd207bc8e19e8caf6f7a31f79bc..3e01df111505d38d58123a72914e63501d56bbf3 100644
--- a/lustre/portals/include/portals/lltrace.h
+++ b/lustre/portals/include/portals/lltrace.h
@@ -96,9 +96,7 @@ static inline int ltrace_start()
         rc = register_ioc_dev(PORTALS_DEV_ID, PORTALS_DEV_PATH);
 #endif
         ltrace_filter("class");
-        ltrace_filter("socknal");
-        ltrace_filter("qswnal");
-        ltrace_filter("gmnal");
+        ltrace_filter("nal");
         ltrace_filter("portals");
 
         ltrace_show("all_types");
diff --git a/lustre/portals/knals/Makefile.in b/lustre/portals/knals/Makefile.in
index 610b55cc729fddc28576ea0ce0087a6a2dd817e0..7e2e601e762830060d0d7e46ac6f681a896f5f98 100644
--- a/lustre/portals/knals/Makefile.in
+++ b/lustre/portals/knals/Makefile.in
@@ -1,4 +1,5 @@
 @BUILD_GMNAL_TRUE@subdir-m += gmnal
+@BUILD_RANAL_TRUE@subdir-m += ranal
 @BUILD_OPENIBNAL_TRUE@subdir-m += openibnal
 @BUILD_IIBNAL_TRUE@subdir-m += iibnal
 @BUILD_QSWNAL_TRUE@subdir-m += qswnal
diff --git a/lustre/portals/knals/autoMakefile.am b/lustre/portals/knals/autoMakefile.am
index 2bc4b5cf7bb9dc217e64c2a066257ead2ac41b9b..4638188104d346873c330ebc5d6bc75a1c92d4cd 100644
--- a/lustre/portals/knals/autoMakefile.am
+++ b/lustre/portals/knals/autoMakefile.am
@@ -3,4 +3,4 @@
 # This code is issued under the GNU General Public License.
 # See the file COPYING in this distribution
 
-SUBDIRS = gmnal iibnal openibnal qswnal socknal lonal
+SUBDIRS = gmnal iibnal openibnal qswnal socknal lonal ranal
diff --git a/lustre/portals/knals/gmnal/gmnal.h b/lustre/portals/knals/gmnal/gmnal.h
index 9c4425b10acd06be00e838590b848ac09802546a..f45eab7744f13ee05d65688df225492a99501c72 100644
--- a/lustre/portals/knals/gmnal/gmnal.h
+++ b/lustre/portals/knals/gmnal/gmnal.h
@@ -47,7 +47,7 @@
 #include "linux/vmalloc.h"
 #include "linux/sysctl.h"
 
-#define DEBUG_SUBSYSTEM S_GMNAL
+#define DEBUG_SUBSYSTEM S_NAL
 
 #include "portals/nal.h"
 #include "portals/api.h"
diff --git a/lustre/portals/knals/iibnal/iibnal.h b/lustre/portals/knals/iibnal/iibnal.h
index 0a25a9a31adaa8851738314ba088217be1d510ef..324215838a5765a860995bca816ca1b6acf9baa9 100644
--- a/lustre/portals/knals/iibnal/iibnal.h
+++ b/lustre/portals/knals/iibnal/iibnal.h
@@ -48,7 +48,7 @@
 #include <linux/kmod.h>
 #include <linux/sysctl.h>
 
-#define DEBUG_SUBSYSTEM S_IBNAL
+#define DEBUG_SUBSYSTEM S_NAL
 
 #include <linux/kp30.h>
 #include <portals/p30.h>
diff --git a/lustre/portals/knals/lonal/lonal.h b/lustre/portals/knals/lonal/lonal.h
index c6f2dda11af9432beb94511f55f24967f30ed0f1..9d3d3ff8373564d88633df10ab6244cd21f760ed 100644
--- a/lustre/portals/knals/lonal/lonal.h
+++ b/lustre/portals/knals/lonal/lonal.h
@@ -35,7 +35,7 @@
 #include <linux/uio.h>
 #include <linux/init.h>
 
-#define DEBUG_SUBSYSTEM S_LONAL
+#define DEBUG_SUBSYSTEM S_NAL
 
 #include <linux/kp30.h>
 #include <portals/p30.h>
diff --git a/lustre/portals/knals/openibnal/openibnal.h b/lustre/portals/knals/openibnal/openibnal.h
index f0610f22a30976b2ff6e4c04a053b4a284d3f7e7..2fbd88bafe776ab1e5e1dc79d1f639028523595d 100644
--- a/lustre/portals/knals/openibnal/openibnal.h
+++ b/lustre/portals/knals/openibnal/openibnal.h
@@ -48,7 +48,7 @@
 #include <linux/kmod.h>
 #include <linux/sysctl.h>
 
-#define DEBUG_SUBSYSTEM S_IBNAL
+#define DEBUG_SUBSYSTEM S_NAL
 
 #include <linux/kp30.h>
 #include <portals/p30.h>
diff --git a/lustre/portals/knals/qswnal/qswnal.h b/lustre/portals/knals/qswnal/qswnal.h
index 0b0914e5de67cd2d9d6836ac2b6242d9209c9a9f..6e047521a2097b3a674c8cdc61f006ad24daaeaa 100644
--- a/lustre/portals/knals/qswnal/qswnal.h
+++ b/lustre/portals/knals/qswnal/qswnal.h
@@ -72,7 +72,7 @@
 #include <linux/sysctl.h>
 #include <asm/segment.h>
 
-#define DEBUG_SUBSYSTEM S_QSWNAL
+#define DEBUG_SUBSYSTEM S_NAL
 
 #include <linux/kp30.h>
 #include <linux/kpr.h>
diff --git a/lustre/portals/knals/socknal/socknal.h b/lustre/portals/knals/socknal/socknal.h
index 20cd3d923fc57d807ef39db8abcc4917ec64afaa..9cfe8589672efce3ba77566109fa1f207644355b 100644
--- a/lustre/portals/knals/socknal/socknal.h
+++ b/lustre/portals/knals/socknal/socknal.h
@@ -57,7 +57,7 @@
 #include <asm/segment.h>
 #include <asm/div64.h>
 
-#define DEBUG_SUBSYSTEM S_SOCKNAL
+#define DEBUG_SUBSYSTEM S_NAL
 
 #include <linux/kp30.h>
 #include <linux/portals_compat25.h>
diff --git a/lustre/portals/libcfs/debug.c b/lustre/portals/libcfs/debug.c
index cd77438f0ef15fbec9ad8711669737d1246bf285..b5286fccc3bf0e9ccf2fdce2d1f557ea30d8c950 100644
--- a/lustre/portals/libcfs/debug.c
+++ b/lustre/portals/libcfs/debug.c
@@ -59,8 +59,7 @@
 #include <linux/kallsyms.h>
 #endif
 
-unsigned int portal_subsystem_debug = ~0 - (S_PORTALS | S_QSWNAL | S_SOCKNAL |
-                                            S_GMNAL | S_IBNAL);
+unsigned int portal_subsystem_debug = ~0 - (S_PORTALS | S_NAL);
 EXPORT_SYMBOL(portal_subsystem_debug);
 
 unsigned int portal_debug = (D_WARNING | D_DLMTRACE | D_ERROR | D_EMERG | D_HA |
@@ -267,12 +266,14 @@ char *portals_nid2str(int nal, ptl_nid_t nid, char *str)
                 /* userspace NAL */
         case IIBNAL:
         case OPENIBNAL:
+        case RANAL:
         case SOCKNAL:
                 snprintf(str, PTL_NALFMT_SIZE, "%u:%u.%u.%u.%u",
                          (__u32)(nid >> 32), HIPQUAD(nid));
                 break;
         case QSWNAL:
         case GMNAL:
+        case LONAL:
                 snprintf(str, PTL_NALFMT_SIZE, "%u:%u",
                          (__u32)(nid >> 32), (__u32)nid);
                 break;
diff --git a/lustre/portals/utils/debug.c b/lustre/portals/utils/debug.c
index 17a124c567a9d7f1a458f93bf34f369fb09d3cd1..9886a5cbba04765fbb931d732441a418993c1ceb 100644
--- a/lustre/portals/utils/debug.c
+++ b/lustre/portals/utils/debug.c
@@ -77,12 +77,11 @@ static int debug_mask = ~0;
 static const char *portal_debug_subsystems[] =
         {"undefined", "mdc", "mds", "osc", 
          "ost", "class", "log", "llite",
-         "rpc", "mgmt", "portals", "socknal", 
-         "qswnal", "pinger", "filter", "ptlbd", 
-         "echo", "ldlm", "lov", "gmnal",
-         "router", "cobd", "ibnal", "sm",
-         "asobd", "confobd", "lmv", "cmobd",
-         "lonal", NULL};
+         "rpc", "mgmt", "portals", "nal", 
+         "pinger", "filter", "ptlbd", "echo", 
+         "ldlm", "lov", "router", "cobd", 
+         "sm", "asobd", "confobd", "lmv", 
+         "cmobd", NULL};
 static const char *portal_debug_masks[] =
         {"trace", "inode", "super", "ext2", 
          "malloc", "cache", "info", "ioctl",
diff --git a/lustre/portals/utils/portals.c b/lustre/portals/utils/portals.c
index abe3f987dc11a728ae00616960ec2ebdc4ea083a..29717fa83ff030fd676f5d199094e50a81008787 100644
--- a/lustre/portals/utils/portals.c
+++ b/lustre/portals/utils/portals.c
@@ -79,6 +79,7 @@ static name2num_t nalnames[] = {
         {"openib",      OPENIBNAL},
         {"iib",         IIBNAL},
         {"lo",          LONAL},
+        {"ra",          RANAL},
 #else
         {"cray_kern_nal", CRAY_KERN_NAL},
         {"cray_user_nal", CRAY_USER_NAL},
diff --git a/lustre/ptlrpc/events.c b/lustre/ptlrpc/events.c
index ac83a55b1e676f63b37009976f73610d40938d4c..390ac5b1cff5c635ad68ece55a7ce66a7c037440 100644
--- a/lustre/ptlrpc/events.c
+++ b/lustre/ptlrpc/events.c
@@ -623,6 +623,7 @@ int ptlrpc_init_portals(void)
                 {IIBNAL,    "iibnal"},
                 {TCPNAL,    "tcpnal"},
                 {LONAL,     "lonal"},
+                {RANAL,     "ranal"},
 #else
                 {CRAY_KB_ERNAL, "cray_kb_ernal"},
 #endif
diff --git a/lustre/utils/lconf b/lustre/utils/lconf
index fcf69410c0228e10714578bdec1c5daf50b0cc82..2310d265e4af76c4b6fa7ec9179b50934f323436 100755
--- a/lustre/utils/lconf
+++ b/lustre/utils/lconf
@@ -104,24 +104,20 @@ subsystem_names = {
     "rpc" :          (1 << 8),
     "mgmt" :         (1 << 9),
     "portals" :      (1 << 10),
-    "socknal" :      (1 << 11),
-    "qswnal" :       (1 << 12),
-    "pinger" :       (1 << 13),
-    "filter" :       (1 << 14),
-    "ptlbd" :        (1 << 15),
-    "echo" :         (1 << 16),
-    "ldlm" :         (1 << 17),
-    "lov" :          (1 << 18),
-    "gmnal" :        (1 << 19),
-    "ptlrouter" :    (1 << 20),
-    "cobd" :         (1 << 21),
-    "ibnal" :        (1 << 22),
-    "sm" :           (1 << 23),
-    "asobd" :        (1 << 24),
-    "confobd" :      (1 << 25),
-    "lmv" :          (1 << 26),
-    "cmobd" :        (1 << 27),
-    "lonal" :        (1 << 28),
+    "nal" :          (1 << 11),
+    "pinger" :       (1 << 12),
+    "filter" :       (1 << 13),
+    "ptlbd" :        (1 << 14),
+    "echo" :         (1 << 15),
+    "ldlm" :         (1 << 16),
+    "lov" :          (1 << 17),
+    "ptlrouter" :    (1 << 18),
+    "cobd" :         (1 << 19),
+    "sm" :           (1 << 20),
+    "asobd" :        (1 << 21),
+    "confobd" :      (1 << 22),
+    "lmv" :          (1 << 23),
+    "cmobd" :        (1 << 24),
     }
 
 
@@ -1049,7 +1045,7 @@ def sys_get_local_nid(net_type, wildcard, cluster_id):
 def sys_get_local_address(net_type, wildcard, cluster_id):
     """Return the local address for the network type."""
     local = ""
-    if net_type in ('tcp','openib','iib',):
+    if net_type in ('tcp','openib','iib','ra'):
         if  ':' in wildcard:
             iface, star = string.split(wildcard, ':')
             local = if2addr(iface)
@@ -1370,6 +1366,8 @@ class Network(Module):
             manager.add_portals_module("knals/iibnal", 'kiibnal')
         if self.net_type == 'lo':
             manager.add_portals_module("knals/lonal", 'klonal')
+        if self.net_type == 'ra':
+            manager.add_portals_module("knals/ranal", 'kranal')
 
     def nid_to_uuid(self, nid):
         return "NID_%s_UUID" %(nid,)