diff --git a/src/lsa.cpp b/src/lsa.cpp
index 52a9948..46dc1c4 100644
--- a/src/lsa.cpp
+++ b/src/lsa.cpp
@@ -112,6 +112,12 @@
   return true;
 }
 
+bool
+NameLsa::isEqualContent(const NameLsa& other) const
+{
+  return m_npl == other.getNpl();
+}
+
 void
 NameLsa::writeLog()
 {
diff --git a/src/lsa.hpp b/src/lsa.hpp
index 934ba40..9d4f89f 100644
--- a/src/lsa.hpp
+++ b/src/lsa.hpp
@@ -127,6 +127,12 @@
     return m_npl;
   }
 
+  const NamePrefixList&
+  getNpl() const
+  {
+    return m_npl;
+  }
+
   void
   addName(const ndn::Name& name)
   {
@@ -166,6 +172,9 @@
   bool
   initializeFromContent(const std::string& content);
 
+  bool
+  isEqualContent(const NameLsa& other) const;
+
   void
   writeLog();
 
@@ -346,4 +355,4 @@
 
 } // namespace nlsr
 
-#endif //NLSR_LSA_HPP
+#endif // NLSR_LSA_HPP
diff --git a/src/name-prefix-list.cpp b/src/name-prefix-list.cpp
index 37c66dc..ec52068 100644
--- a/src/name-prefix-list.cpp
+++ b/src/name-prefix-list.cpp
@@ -77,6 +77,12 @@
   return false;
 }
 
+bool
+NamePrefixList::operator==(const NamePrefixList& other) const
+{
+  return m_nameList == other.getNameList();
+}
+
 void
 NamePrefixList::sort()
 {
@@ -95,4 +101,14 @@
   }
 }
 
+std::ostream&
+operator<<(std::ostream& os, const NamePrefixList& list) {
+  os << "Name prefix list: {\n";
+  for (const auto& name : list.getNameList()) {
+    os << name << "\n";
+  }
+  os << "}" << std::endl;
+  return os;
+}
+
 } // namespace nlsr
diff --git a/src/name-prefix-list.hpp b/src/name-prefix-list.hpp
index 77f0801..12669ce 100644
--- a/src/name-prefix-list.hpp
+++ b/src/name-prefix-list.hpp
@@ -66,6 +66,15 @@
     return m_nameList;
   }
 
+  const std::list<ndn::Name>&
+  getNameList() const
+  {
+    return m_nameList;
+  }
+
+  bool
+  operator==(const NamePrefixList& other) const;
+
   void
   writeLog();
 
@@ -74,6 +83,9 @@
 
 };
 
+std::ostream&
+operator<<(std::ostream& os, const NamePrefixList& list);
+
 } // namespace nlsr
 
-#endif //NLSR_NAME_PREFIX_LIST_HPP
+#endif // NLSR_NAME_PREFIX_LIST_HPP
diff --git a/tests/test-lsa.cpp b/tests/test-lsa.cpp
index 4b683c8..642a317 100644
--- a/tests/test-lsa.cpp
+++ b/tests/test-lsa.cpp
@@ -208,6 +208,29 @@
   BOOST_CHECK_EQUAL(clsa1.getData(), clsa2.getData());
 }
 
+BOOST_AUTO_TEST_SUITE(TestNameLsa)
+
+BOOST_AUTO_TEST_CASE(OperatorEquals)
+{
+  NameLsa lsa1;
+  NameLsa lsa2;
+  ndn::Name name1("/ndn/test/name1");
+  ndn::Name name2("/ndn/test/name2");
+  ndn::Name name3("/ndn/some/other/name1");
+
+  lsa1.addName(name1);
+  lsa1.addName(name2);
+  lsa1.addName(name3);
+
+  lsa2.addName(name1);
+  lsa2.addName(name2);
+  lsa2.addName(name3);
+
+  BOOST_CHECK(lsa1.isEqualContent(lsa2));
+}
+
+BOOST_AUTO_TEST_SUITE_END() // TestNameLsa
+
 BOOST_AUTO_TEST_SUITE_END()
 
 } // namespace test
diff --git a/tests/test-name-prefix-list.cpp b/tests/test-name-prefix-list.cpp
index 45bcd38..b07517f 100644
--- a/tests/test-name-prefix-list.cpp
+++ b/tests/test-name-prefix-list.cpp
@@ -46,6 +46,25 @@
   BOOST_CHECK_EQUAL(npl1.getSize(), 1);
 }
 
+BOOST_AUTO_TEST_CASE(OperatorEquals)
+{
+  NamePrefixList list1;
+  NamePrefixList list2;
+  ndn::Name name1("/ndn/test/name1");
+  ndn::Name name2("/ndn/test/name2");
+  ndn::Name name3("/ndn/some/other/name1");
+
+  list1.insert(name1);
+  list1.insert(name2);
+  list1.insert(name3);
+
+  list2.insert(name1);
+  list2.insert(name2);
+  list2.insert(name3);
+
+  BOOST_CHECK_EQUAL(list1, list2);
+}
+
 BOOST_AUTO_TEST_SUITE_END()
 
 } // namespace test
