diff --git a/Makefile.am b/Makefile.am
index f2a9174..003ba37 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -67,3 +67,5 @@
 	@mkdir -p `dirname $@`
 	$(SDBUSPLUSPLUS) -r $(srcdir) interface server-header xyz.openbmc_project.Network.IP.Create > $@
 	sed -i '5i #include \"xyz\/openbmc_project\/Network\/IP\/server.hpp\"' $@
+
+SUBDIRS = test
diff --git a/configure.ac b/configure.ac
index 93df373..0ddf0ad 100644
--- a/configure.ac
+++ b/configure.ac
@@ -82,5 +82,5 @@
 AC_DEFINE_UNQUOTED([NETWORK_CONF_DIR], ["$NETWORK_CONF_DIR"], [Network configuration directory])
 
 # Create configured output.
-AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([Makefile test/Makefile])
 AC_OUTPUT
diff --git a/test/Makefile.am b/test/Makefile.am
new file mode 100644
index 0000000..5899847
--- /dev/null
+++ b/test/Makefile.am
@@ -0,0 +1,18 @@
+AM_CPPFLAGS = -I${top_srcdir}
+
+TESTS = $(check_PROGRAMS)
+
+check_PROGRAMS = test
+
+test_SOURCES = \
+	test_util.cpp
+
+test_CPPFLAGS = -Igtest $(GTEST_CPPFLAGS) $(AM_CPPFLAGS)
+test_CXXFLAGS = $(PTHREAD_CFLAGS)
+
+test_LDFLAGS =	-lgtest_main -lgtest -lstdc++fs \
+				$(OESDK_TESTCASE_FLAGS) \
+				$(SYSTEMD_LIBS) \
+				$(SDBUSPLUS_LIBS)
+
+test_LDADD = $(top_builddir)/util.cpp
diff --git a/test/test_util.cpp b/test/test_util.cpp
new file mode 100644
index 0000000..d0888ca
--- /dev/null
+++ b/test/test_util.cpp
@@ -0,0 +1,89 @@
+#include <gtest/gtest.h>
+#include <netinet/in.h>
+#include "util.hpp"
+
+namespace phosphor
+{
+namespace network
+{
+
+class TestUtil : public testing::Test
+{
+    public:
+        TestUtil()
+        {
+            // Empty
+        }
+
+};
+
+TEST_F(TestUtil, ConvertV4MasktoPrefix)
+{
+    std::string mask = "255.255.255.0";
+    uint8_t prefix = toCidr(AF_INET, mask);
+    EXPECT_EQ(prefix, 24);
+
+    mask = "255.255.0.0";
+    prefix = toCidr(AF_INET, mask);
+    EXPECT_EQ(prefix, 16);
+
+    mask = "255.0.0.0";
+    prefix = toCidr(AF_INET, mask);
+    EXPECT_EQ(prefix, 8);
+
+    mask = "255.224.0.0";
+    prefix = toCidr(AF_INET, mask);
+    EXPECT_EQ(prefix, 11);
+
+    //Invalid Mask
+    mask = "255.0.255.0";
+    prefix = toCidr(AF_INET, mask);
+    EXPECT_EQ(prefix, 0);
+}
+
+TEST_F(TestUtil, convertV6MasktoPrefix)
+{
+    std::string mask = "ffff:ffff::";
+    uint8_t prefix = toCidr(AF_INET6, mask);
+    EXPECT_EQ(prefix, 32);
+
+    mask = "ffff:ffff:ffff::";
+    prefix = toCidr(AF_INET6, mask);
+    EXPECT_EQ(prefix, 48);
+
+    mask = "ffff:ffff:fc00::";
+    prefix = toCidr(AF_INET6, mask);
+    EXPECT_EQ(prefix, 38);
+
+    //Invalid Mask
+    mask = "ffff:0fff::";
+    prefix = toCidr(AF_INET6, mask);
+    EXPECT_EQ(prefix, 0);
+}
+
+TEST_F(TestUtil, isLinLocaladdress)
+{
+    std::string ipaddress = "fe80:fec0::";
+    EXPECT_TRUE(isLinkLocal(ipaddress));
+
+    ipaddress = "2000:4567:789::";
+    EXPECT_FALSE(isLinkLocal(ipaddress));
+
+    ipaddress = "2000:fe80::";
+    EXPECT_FALSE(isLinkLocal(ipaddress));
+}
+
+TEST_F(TestUtil, convertPrefixToMask)
+{
+    std::string mask = toMask(AF_INET, 24);
+    EXPECT_EQ(mask, "255.255.255.0");
+
+    mask = toMask(AF_INET, 8);
+    EXPECT_EQ(mask, "255.0.0.0");
+
+    mask = toMask(AF_INET, 27);
+    EXPECT_EQ(mask, "255.255.255.224");
+}
+
+}// namespce network
+}// namespace phosphor
