diff --git a/src/core/hle/service/ldn/ldn_types.h b/src/core/hle/service/ldn/ldn_types.h
index 0c07a7397a6ddab7d2b4ba63552dba3038a28bc7..0af6531642aa361360386a95136e5ee5ada716d6 100644
--- a/src/core/hle/service/ldn/ldn_types.h
+++ b/src/core/hle/service/ldn/ldn_types.h
@@ -113,7 +113,7 @@ enum class LinkLevel : s8 {
     Bad,
     Low,
     Good,
-    Excelent,
+    Excellent,
 };
 
 struct NodeLatestUpdate {
@@ -148,9 +148,24 @@ struct Ssid {
     u8 length;
     std::array<char, SsidLengthMax + 1> raw;
 
+    Ssid() {
+        length = 0;
+        std::memset(raw.data(), 0, raw.size());
+    }
+
+    Ssid(std::string data) {
+        length = static_cast<u8>(std::min(data.size(), SsidLengthMax));
+        std::memcpy(raw.data(), data.data(), length);
+        raw[length] = 0;
+    }
+
     std::string GetStringValue() const {
         return std::string(raw.data(), length);
     }
+
+    bool operator==(const Ssid& b) const {
+        return (length == b.length) && (std::memcmp(raw.data(), b.raw.data(), length) == 0);
+    }
 };
 static_assert(sizeof(Ssid) == 0x22, "Ssid is an invalid size");