diff --git a/test_nrd/NDNTrafficServer.conf b/test_nrd/NDNTrafficServer.conf
new file mode 100644
index 0000000..8e8c2c9
--- /dev/null
+++ b/test_nrd/NDNTrafficServer.conf
@@ -0,0 +1,7 @@
+##########
+Name=ndn:/test-nrd/A
+Content=AAAAAAAA
+##########
+Name=ndn:/test-nrd/B
+Content=BBBBBBBB
+##########
diff --git a/test_nrd/README.md b/test_nrd/README.md
new file mode 100644
index 0000000..231c1b1
--- /dev/null
+++ b/test_nrd/README.md
@@ -0,0 +1,9 @@
+Test correctness of NRD prefix registration and FIB updates (without ForwardingFlags processing).
+
+1. Modify $HOME/.ndn/client.conf to choose "protocol=nrd-0.1".
+2. Start NFD and NRD.
+3. Run nfd-status to obtain FIB.
+4. Start ndn-traffic-server; configuration has one or more non-overlapping prefixes.
+5. Run nfd-status to obtain FIB. Compare new FIB to the FIB from step 3, and determine whether FIB entry is inserted
+6. Stop ndn-traffic-server.
+7. Run nfd-status to obtain FIB. Compare new FIB to the FIB from step 5, and determine whether FIB entry is deleted
diff --git a/test_nrd/__init__.py b/test_nrd/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test_nrd/__init__.py
diff --git a/test_nrd/client.conf b/test_nrd/client.conf
new file mode 100644
index 0000000..e9be4a1
--- /dev/null
+++ b/test_nrd/client.conf
@@ -0,0 +1,10 @@
+; "unix_socket" specifies the location of the NFD unix socket
+unix_socket=/var/run/nfd.sock
+
+; "protocol" determines the protocol for prefix registration
+; it has a value of:
+;   nfd-0.1
+;   nrd-0.1
+;   ndnd-tlv-0.7
+;   ndnx-0.7
+protocol=nrd-0.1
diff --git a/test_nrd/nrd-test.sh b/test_nrd/nrd-test.sh
new file mode 100755
index 0000000..7b72005
--- /dev/null
+++ b/test_nrd/nrd-test.sh
@@ -0,0 +1,83 @@
+#!/usr/bin/env bash
+clean_up() {
+    r=$(sudo killall nfd 2>&1)
+    r=$(mv ~/.ndn/client.conf.bk ~/.ndn/client.conf 2>&1)
+}
+mkdir -p logs
+
+# backup client.conf
+echo "backup client.conf"
+cp ~/.ndn/client.conf ~/.ndn/client.conf.bk
+sed -i 's/^protocol=.*$/protocol=nrd-0.1/g' ~/.ndn/client.conf
+
+# start nfd and nrd
+echo "starting nfd and nrd..."
+sudo nfd > logs/nfd.log 2>&1 &
+sleep 3
+nrd &> logs/nrd.log &
+sleep 10
+
+# check fib before server starts
+echo "checking fib before server starts..."
+fib=$(nfd-status -b)
+res=$(echo $fib | grep '/test-nrd/A' | wc -l)
+if [[ $res -ne 0 ]]
+then
+    echo "the name '/test-nrd/A' already exists"
+    clean_up
+    exit 1
+fi
+res=$(echo $fib | grep '/test-nrd/B' | wc -l)
+if [[ $res -ne 0 ]]
+then
+    echo "the name '/test-nrd/B' already exists"
+    exit 2
+fi
+
+# start server
+echo "starting server..."
+ndn-traffic-server NDNTrafficServer.conf > logs/server.log 2>&1 &
+sleep 3
+
+# check fib after server starts
+echo "checking fib after server starts..."
+fib=$(nfd-status -b)
+res=$(echo $fib | grep '/test-nrd/A' | wc -l)
+if [[ $res -ne 1 ]]
+then
+    echo "the name '/test-nrd/A' does not exists after ndn-traffic-server starts"
+    clean_up
+    exit 3
+fi
+res=$(echo $fib | grep '/test-nrd/B' | wc -l)
+if [[ $res -ne 1  ]]
+then
+    echo "the name '/test-nrd/B' does not exists after ndn-traffic-server starts"
+    clean_up
+    exit 4
+fi
+
+# stop ndn-traffic-server
+echo "stopping ndn-traffic-server..."
+sudo killall ndn-traffic-server
+sleep 3
+
+# check fib after server stops
+echo "checking fib after server stops..."
+fib=$(nfd-status -b)
+res=$(echo $fib | grep '/test-nrd/A' | wc -l)
+if [[ $res -ne 0 ]]
+then
+    echo "the name '/test-nrd/A' still exists after ndn-traffic-server exit"
+    clean_up
+    exit 5
+fi
+res=$(echo $fib | grep '/test-nrd/B' | wc -l)
+if [[ $res -ne 0 ]]
+then
+    echo "the name '/test-nrd/B' still exists after ndn-traffic-server exit"
+    clean_up
+    exit 6
+fi
+clean_up
+echo "nrd test PASSED"
diff --git a/test_nrd/test_nrd.py b/test_nrd/test_nrd.py
new file mode 100644
index 0000000..b64909b
--- /dev/null
+++ b/test_nrd/test_nrd.py
@@ -0,0 +1,37 @@
+#!/usr/bin/python2
+# -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+#
+# Copyright (C) 2014 University of Arizona
+# Author: Yi Huang <ltr120@email.arizona.edu>
+# See COPYING for copyright and distribution information.
+#
+
+import os
+import unittest
+import subprocess
+
+class test_nrd(unittest.TestCase):
+    """Test case for NRD"""
+
+    def setUp(self):
+        print "\nTesting NRD"
+        print "***********"
+        os.chdir("test_nrd")
+
+    def tearDown(self):
+        print "***********"
+        os.chdir("..")
+
+    def test_nrd(self):
+        ret = subprocess.call(["./nrd-test.sh"], shell=True)
+        print "Test script return value:", ret
+        errormsg = {
+            1 : "the name '/test-nrd/A' already exists before ndn-traffic-server starts",
+            2 : "the name '/test-nrd/B' already exists before ndn-traffic-server starts",
+            3 : "the name '/test-nrd/A' does not exists after ndn-traffic-server starts",
+            4 : "the name '/test-nrd/B' does not exists after ndn-traffic-server starts",
+            5 : "the name '/test-nrd/A' still exists after ndn-traffic-server exit",
+            6 : "the name '/test-nrd/B' still exists after ndn-traffic-server exit",
+        }
+        if (ret != 0):
+            self.fail(errormsg[ret])
