diff --git a/automotive/can/1.0/default/libnetdevice/can.cpp b/automotive/can/1.0/default/libnetdevice/can.cpp
index fef9e00..0aa5afe 100644
--- a/automotive/can/1.0/default/libnetdevice/can.cpp
+++ b/automotive/can/1.0/default/libnetdevice/can.cpp
@@ -69,7 +69,7 @@
     struct can_bittiming bt = {};
     bt.bitrate = bitrate;
 
-    NetlinkRequest<struct ifinfomsg> req(RTM_NEWLINK, NLM_F_REQUEST);
+    nl::NetlinkRequest<struct ifinfomsg> req(RTM_NEWLINK, NLM_F_REQUEST);
 
     const auto ifidx = nametoindex(ifname);
     if (ifidx == 0) {
@@ -89,7 +89,7 @@
         }
     }
 
-    NetlinkSocket sock(NETLINK_ROUTE);
+    nl::NetlinkSocket sock(NETLINK_ROUTE);
     return sock.send(req) && sock.receiveAck();
 }
 
diff --git a/automotive/can/1.0/default/libnetdevice/libnetdevice.cpp b/automotive/can/1.0/default/libnetdevice/libnetdevice.cpp
index 05d1e76..04381f2 100644
--- a/automotive/can/1.0/default/libnetdevice/libnetdevice.cpp
+++ b/automotive/can/1.0/default/libnetdevice/libnetdevice.cpp
@@ -61,7 +61,8 @@
 }
 
 bool add(std::string dev, std::string type) {
-    NetlinkRequest<struct ifinfomsg> req(RTM_NEWLINK, NLM_F_REQUEST | NLM_F_CREATE | NLM_F_EXCL);
+    nl::NetlinkRequest<struct ifinfomsg> req(RTM_NEWLINK,
+                                             NLM_F_REQUEST | NLM_F_CREATE | NLM_F_EXCL);
     req.addattr(IFLA_IFNAME, dev);
 
     {
@@ -69,15 +70,15 @@
         req.addattr(IFLA_INFO_KIND, type);
     }
 
-    NetlinkSocket sock(NETLINK_ROUTE);
+    nl::NetlinkSocket sock(NETLINK_ROUTE);
     return sock.send(req) && sock.receiveAck();
 }
 
 bool del(std::string dev) {
-    NetlinkRequest<struct ifinfomsg> req(RTM_DELLINK, NLM_F_REQUEST);
+    nl::NetlinkRequest<struct ifinfomsg> req(RTM_DELLINK, NLM_F_REQUEST);
     req.addattr(IFLA_IFNAME, dev);
 
-    NetlinkSocket sock(NETLINK_ROUTE);
+    nl::NetlinkSocket sock(NETLINK_ROUTE);
     return sock.send(req) && sock.receiveAck();
 }
 
diff --git a/automotive/can/1.0/default/libnetdevice/vlan.cpp b/automotive/can/1.0/default/libnetdevice/vlan.cpp
index 3c70247..bcc9345 100644
--- a/automotive/can/1.0/default/libnetdevice/vlan.cpp
+++ b/automotive/can/1.0/default/libnetdevice/vlan.cpp
@@ -31,7 +31,8 @@
         return false;
     }
 
-    NetlinkRequest<struct ifinfomsg> req(RTM_NEWLINK, NLM_F_REQUEST | NLM_F_CREATE | NLM_F_EXCL);
+    nl::NetlinkRequest<struct ifinfomsg> req(RTM_NEWLINK,
+                                             NLM_F_REQUEST | NLM_F_CREATE | NLM_F_EXCL);
     req.addattr(IFLA_IFNAME, vlan);
     req.addattr<uint32_t>(IFLA_LINK, ethidx);
 
@@ -45,7 +46,7 @@
         }
     }
 
-    NetlinkSocket sock(NETLINK_ROUTE);
+    nl::NetlinkSocket sock(NETLINK_ROUTE);
     return sock.send(req) && sock.receiveAck();
 }
 
diff --git a/automotive/can/1.0/default/libnl++/NetlinkRequest.cpp b/automotive/can/1.0/default/libnl++/NetlinkRequest.cpp
index ff771dc..e9463d1 100644
--- a/automotive/can/1.0/default/libnl++/NetlinkRequest.cpp
+++ b/automotive/can/1.0/default/libnl++/NetlinkRequest.cpp
@@ -18,7 +18,7 @@
 
 #include <android-base/logging.h>
 
-namespace android::netdevice::impl {
+namespace android::nl::impl {
 
 static struct rtattr* nlmsg_tail(struct nlmsghdr* n) {
     return reinterpret_cast<struct rtattr*>(  //
@@ -51,4 +51,4 @@
     nest->rta_len = nestLen;
 }
 
-}  // namespace android::netdevice::impl
+}  // namespace android::nl::impl
diff --git a/automotive/can/1.0/default/libnl++/NetlinkSocket.cpp b/automotive/can/1.0/default/libnl++/NetlinkSocket.cpp
index 4db20e1..6f0f0c2 100644
--- a/automotive/can/1.0/default/libnl++/NetlinkSocket.cpp
+++ b/automotive/can/1.0/default/libnl++/NetlinkSocket.cpp
@@ -20,7 +20,7 @@
 
 #include <android-base/logging.h>
 
-namespace android::netdevice {
+namespace android::nl {
 
 /**
  * Print all outbound/inbound Netlink messages.
@@ -190,4 +190,4 @@
     return sa.nl_pid;
 }
 
-}  // namespace android::netdevice
+}  // namespace android::nl
diff --git a/automotive/can/1.0/default/libnl++/common.cpp b/automotive/can/1.0/default/libnl++/common.cpp
index f2968fc..7848646 100644
--- a/automotive/can/1.0/default/libnl++/common.cpp
+++ b/automotive/can/1.0/default/libnl++/common.cpp
@@ -20,7 +20,7 @@
 
 #include <net/if.h>
 
-namespace android::netdevice {
+namespace android::nl {
 
 unsigned int nametoindex(const std::string& ifname) {
     const auto ifidx = if_nametoindex(ifname.c_str());
@@ -55,4 +55,4 @@
     return crc;
 }
 
-}  // namespace android::netdevice
+}  // namespace android::nl
diff --git a/automotive/can/1.0/default/libnl++/common.h b/automotive/can/1.0/default/libnl++/common.h
index 83f5f1e..dc5777c 100644
--- a/automotive/can/1.0/default/libnl++/common.h
+++ b/automotive/can/1.0/default/libnl++/common.h
@@ -23,7 +23,7 @@
 
 #include <string>
 
-namespace android::netdevice {
+namespace android::nl {
 
 /**
  * Returns the index of a given network interface.
@@ -56,4 +56,4 @@
  */
 uint16_t crc16(const nlbuf<uint8_t> data, uint16_t crc = 0);
 
-}  // namespace android::netdevice
+}  // namespace android::nl
diff --git a/automotive/can/1.0/default/libnl++/include/libnl++/NetlinkRequest.h b/automotive/can/1.0/default/libnl++/include/libnl++/NetlinkRequest.h
index b0cb8ce..3b30a2a 100644
--- a/automotive/can/1.0/default/libnl++/include/libnl++/NetlinkRequest.h
+++ b/automotive/can/1.0/default/libnl++/include/libnl++/NetlinkRequest.h
@@ -23,7 +23,7 @@
 
 #include <string>
 
-namespace android::netdevice {
+namespace android::nl {
 
 /** Implementation details, do not use outside NetlinkRequest template. */
 namespace impl {
@@ -154,4 +154,4 @@
     }
 };
 
-}  // namespace android::netdevice
+}  // namespace android::nl
diff --git a/automotive/can/1.0/default/libnl++/include/libnl++/NetlinkSocket.h b/automotive/can/1.0/default/libnl++/include/libnl++/NetlinkSocket.h
index 0e73550..f2a38fb 100644
--- a/automotive/can/1.0/default/libnl++/include/libnl++/NetlinkSocket.h
+++ b/automotive/can/1.0/default/libnl++/include/libnl++/NetlinkSocket.h
@@ -25,7 +25,7 @@
 
 #include <optional>
 
-namespace android::netdevice {
+namespace android::nl {
 
 /**
  * A wrapper around AF_NETLINK sockets.
@@ -113,4 +113,4 @@
     DISALLOW_COPY_AND_ASSIGN(NetlinkSocket);
 };
 
-}  // namespace android::netdevice
+}  // namespace android::nl
diff --git a/automotive/can/1.0/default/libnl++/include/libnl++/nlbuf.h b/automotive/can/1.0/default/libnl++/include/libnl++/nlbuf.h
index 601ab94..4c0e581 100644
--- a/automotive/can/1.0/default/libnl++/include/libnl++/nlbuf.h
+++ b/automotive/can/1.0/default/libnl++/include/libnl++/nlbuf.h
@@ -22,7 +22,7 @@
 
 #include <optional>
 
-namespace android::netdevice {
+namespace android::nl {
 
 /**
  * Buffer containing netlink structure (e.g. struct nlmsghdr, struct nlattr).
@@ -199,4 +199,4 @@
     return mData->nla_len;
 }
 
-}  // namespace android::netdevice
+}  // namespace android::nl
diff --git a/automotive/can/1.0/default/libnl++/include/libnl++/printer.h b/automotive/can/1.0/default/libnl++/include/libnl++/printer.h
index 486f422..7167965 100644
--- a/automotive/can/1.0/default/libnl++/include/libnl++/printer.h
+++ b/automotive/can/1.0/default/libnl++/include/libnl++/printer.h
@@ -22,7 +22,7 @@
 
 #include <string>
 
-namespace android::netdevice {
+namespace android::nl {
 
 /**
  * Stringify a Netlink message.
@@ -34,4 +34,4 @@
  */
 std::string toString(const nlbuf<nlmsghdr> hdr, int protocol, bool printPayload = false);
 
-}  // namespace android::netdevice
+}  // namespace android::nl
diff --git a/automotive/can/1.0/default/libnl++/include/libnl++/types.h b/automotive/can/1.0/default/libnl++/include/libnl++/types.h
index 9d90c8a..d2f10ff 100644
--- a/automotive/can/1.0/default/libnl++/include/libnl++/types.h
+++ b/automotive/can/1.0/default/libnl++/include/libnl++/types.h
@@ -18,10 +18,10 @@
 
 #include <linux/types.h>
 
-namespace android::netdevice {
+namespace android::nl {
 
 typedef __u16 nlmsgtype_t;            // nlmsghdr::nlmsg_type
 typedef __u16 nlattrtype_t;           // nlattr::nla_type
 typedef unsigned short rtattrtype_t;  // rtattr::rta_type
 
-}  // namespace android::netdevice
+}  // namespace android::nl
diff --git a/automotive/can/1.0/default/libnl++/printer.cpp b/automotive/can/1.0/default/libnl++/printer.cpp
index bd84309..c32afb3 100644
--- a/automotive/can/1.0/default/libnl++/printer.cpp
+++ b/automotive/can/1.0/default/libnl++/printer.cpp
@@ -26,7 +26,7 @@
 #include <iomanip>
 #include <sstream>
 
-namespace android::netdevice {
+namespace android::nl {
 
 static void flagsToStream(std::stringstream& ss, __u16 nlmsg_flags) {
     bool first = true;
@@ -174,4 +174,4 @@
     return ss.str();
 }
 
-}  // namespace android::netdevice
+}  // namespace android::nl
diff --git a/automotive/can/1.0/default/libnl++/protocols/MessageDefinition.cpp b/automotive/can/1.0/default/libnl++/protocols/MessageDefinition.cpp
index cb42896..dc56643 100644
--- a/automotive/can/1.0/default/libnl++/protocols/MessageDefinition.cpp
+++ b/automotive/can/1.0/default/libnl++/protocols/MessageDefinition.cpp
@@ -16,7 +16,7 @@
 
 #include "MessageDefinition.h"
 
-namespace android::netdevice::protocols {
+namespace android::nl::protocols {
 
 AttributeMap::AttributeMap(const std::initializer_list<value_type> attrTypes)
     : std::map<std::optional<nlattrtype_t>, AttributeDefinition>(attrTypes) {}
@@ -59,4 +59,4 @@
     return it->second;
 }
 
-}  // namespace android::netdevice::protocols
+}  // namespace android::nl::protocols
diff --git a/automotive/can/1.0/default/libnl++/protocols/MessageDefinition.h b/automotive/can/1.0/default/libnl++/protocols/MessageDefinition.h
index 27459e1..046ef47 100644
--- a/automotive/can/1.0/default/libnl++/protocols/MessageDefinition.h
+++ b/automotive/can/1.0/default/libnl++/protocols/MessageDefinition.h
@@ -23,7 +23,7 @@
 #include <sstream>
 #include <variant>
 
-namespace android::netdevice::protocols {
+namespace android::nl::protocols {
 
 struct AttributeDefinition;
 
@@ -123,4 +123,4 @@
     virtual void toStream(std::stringstream& ss, const T& data) const = 0;
 };
 
-}  // namespace android::netdevice::protocols
+}  // namespace android::nl::protocols
diff --git a/automotive/can/1.0/default/libnl++/protocols/NetlinkProtocol.cpp b/automotive/can/1.0/default/libnl++/protocols/NetlinkProtocol.cpp
index 4b6cefb..4b795d9 100644
--- a/automotive/can/1.0/default/libnl++/protocols/NetlinkProtocol.cpp
+++ b/automotive/can/1.0/default/libnl++/protocols/NetlinkProtocol.cpp
@@ -16,7 +16,7 @@
 
 #include "NetlinkProtocol.h"
 
-namespace android::netdevice::protocols {
+namespace android::nl::protocols {
 
 NetlinkProtocol::NetlinkProtocol(int protocol, const std::string name,
                                  const MessageDescriptorList&& messageDescrs)
@@ -61,4 +61,4 @@
     return map;
 }
 
-}  // namespace android::netdevice::protocols
+}  // namespace android::nl::protocols
diff --git a/automotive/can/1.0/default/libnl++/protocols/NetlinkProtocol.h b/automotive/can/1.0/default/libnl++/protocols/NetlinkProtocol.h
index 5516452..81a0a65 100644
--- a/automotive/can/1.0/default/libnl++/protocols/NetlinkProtocol.h
+++ b/automotive/can/1.0/default/libnl++/protocols/NetlinkProtocol.h
@@ -25,7 +25,7 @@
 #include <string>
 #include <vector>
 
-namespace android::netdevice::protocols {
+namespace android::nl::protocols {
 
 /**
  * Netlink-based protocol definition.
@@ -59,4 +59,4 @@
     static MessageDescriptorMap toMap(const MessageDescriptorList& descrs, int protocol);
 };
 
-}  // namespace android::netdevice::protocols
+}  // namespace android::nl::protocols
diff --git a/automotive/can/1.0/default/libnl++/protocols/all.cpp b/automotive/can/1.0/default/libnl++/protocols/all.cpp
index 980e3d0..a398dc8 100644
--- a/automotive/can/1.0/default/libnl++/protocols/all.cpp
+++ b/automotive/can/1.0/default/libnl++/protocols/all.cpp
@@ -21,7 +21,7 @@
 
 #include <map>
 
-namespace android::netdevice::protocols {
+namespace android::nl::protocols {
 
 // This should be a map of unique_ptr, but it's not trivial to uniformly initialize such a map
 static std::map<int, std::shared_ptr<NetlinkProtocol>> toMap(
@@ -43,4 +43,4 @@
     return *all.find(protocol)->second.get();
 }
 
-}  // namespace android::netdevice::protocols
+}  // namespace android::nl::protocols
diff --git a/automotive/can/1.0/default/libnl++/protocols/all.h b/automotive/can/1.0/default/libnl++/protocols/all.h
index 2180ebb..6d6ec1e 100644
--- a/automotive/can/1.0/default/libnl++/protocols/all.h
+++ b/automotive/can/1.0/default/libnl++/protocols/all.h
@@ -18,7 +18,7 @@
 
 #include "NetlinkProtocol.h"
 
-namespace android::netdevice::protocols {
+namespace android::nl::protocols {
 
 /**
  * Protocol definition lookup.
@@ -28,4 +28,4 @@
  */
 std::optional<std::reference_wrapper<NetlinkProtocol>> get(int protocol);
 
-}  // namespace android::netdevice::protocols
+}  // namespace android::nl::protocols
diff --git a/automotive/can/1.0/default/libnl++/protocols/common/Empty.cpp b/automotive/can/1.0/default/libnl++/protocols/common/Empty.cpp
index 9f25203..dbf10d4 100644
--- a/automotive/can/1.0/default/libnl++/protocols/common/Empty.cpp
+++ b/automotive/can/1.0/default/libnl++/protocols/common/Empty.cpp
@@ -16,7 +16,7 @@
 
 #include "Empty.h"
 
-namespace android::netdevice::protocols::base {
+namespace android::nl::protocols::base {
 
 // clang-format off
 Empty::Empty() : MessageDefinition<char>("nlmsg", {
@@ -28,4 +28,4 @@
 
 void Empty::toStream(std::stringstream&, const char&) const {}
 
-}  // namespace android::netdevice::protocols::base
+}  // namespace android::nl::protocols::base
diff --git a/automotive/can/1.0/default/libnl++/protocols/common/Empty.h b/automotive/can/1.0/default/libnl++/protocols/common/Empty.h
index 701a17c..79a0f46 100644
--- a/automotive/can/1.0/default/libnl++/protocols/common/Empty.h
+++ b/automotive/can/1.0/default/libnl++/protocols/common/Empty.h
@@ -20,7 +20,7 @@
 
 #include <libnl++/printer.h>
 
-namespace android::netdevice::protocols::base {
+namespace android::nl::protocols::base {
 
 // no-payload (like NLMSG_NOOP) messages can't be defined with T=void, so let's use char
 class Empty : public MessageDefinition<char> {
@@ -29,4 +29,4 @@
     void toStream(std::stringstream&, const char&) const override;
 };
 
-}  // namespace android::netdevice::protocols::base
+}  // namespace android::nl::protocols::base
diff --git a/automotive/can/1.0/default/libnl++/protocols/common/Error.cpp b/automotive/can/1.0/default/libnl++/protocols/common/Error.cpp
index 313cbfb..1d6bd1c 100644
--- a/automotive/can/1.0/default/libnl++/protocols/common/Error.cpp
+++ b/automotive/can/1.0/default/libnl++/protocols/common/Error.cpp
@@ -20,7 +20,7 @@
 
 #include <libnl++/printer.h>
 
-namespace android::netdevice::protocols::base {
+namespace android::nl::protocols::base {
 
 // clang-format off
 Error::Error(int protocol) : MessageDefinition<nlmsgerr>("nlmsg", {
@@ -33,4 +33,4 @@
        << ", msg=" << toString({&data.msg, sizeof(data.msg)}, mProtocol) << "}";
 }
 
-}  // namespace android::netdevice::protocols::base
+}  // namespace android::nl::protocols::base
diff --git a/automotive/can/1.0/default/libnl++/protocols/common/Error.h b/automotive/can/1.0/default/libnl++/protocols/common/Error.h
index 1f3c1dd..782986b 100644
--- a/automotive/can/1.0/default/libnl++/protocols/common/Error.h
+++ b/automotive/can/1.0/default/libnl++/protocols/common/Error.h
@@ -18,7 +18,7 @@
 
 #include "../MessageDefinition.h"
 
-namespace android::netdevice::protocols::base {
+namespace android::nl::protocols::base {
 
 class Error : public MessageDefinition<nlmsgerr> {
   public:
@@ -29,4 +29,4 @@
     const int mProtocol;
 };
 
-}  // namespace android::netdevice::protocols::base
+}  // namespace android::nl::protocols::base
diff --git a/automotive/can/1.0/default/libnl++/protocols/generic/Ctrl.cpp b/automotive/can/1.0/default/libnl++/protocols/generic/Ctrl.cpp
index 4120008..a3c6736 100644
--- a/automotive/can/1.0/default/libnl++/protocols/generic/Ctrl.cpp
+++ b/automotive/can/1.0/default/libnl++/protocols/generic/Ctrl.cpp
@@ -16,7 +16,7 @@
 
 #include "Ctrl.h"
 
-namespace android::netdevice::protocols::generic {
+namespace android::nl::protocols::generic {
 
 using DataType = AttributeDefinition::DataType;
 
@@ -52,4 +52,4 @@
 }) {}
 // clang-format on
 
-}  // namespace android::netdevice::protocols::generic
+}  // namespace android::nl::protocols::generic
diff --git a/automotive/can/1.0/default/libnl++/protocols/generic/Ctrl.h b/automotive/can/1.0/default/libnl++/protocols/generic/Ctrl.h
index 804ed2c..6af87a8 100644
--- a/automotive/can/1.0/default/libnl++/protocols/generic/Ctrl.h
+++ b/automotive/can/1.0/default/libnl++/protocols/generic/Ctrl.h
@@ -18,11 +18,11 @@
 
 #include "GenericMessageBase.h"
 
-namespace android::netdevice::protocols::generic {
+namespace android::nl::protocols::generic {
 
 class Ctrl : public GenericMessageBase {
   public:
     Ctrl();
 };
 
-}  // namespace android::netdevice::protocols::generic
+}  // namespace android::nl::protocols::generic
diff --git a/automotive/can/1.0/default/libnl++/protocols/generic/Generic.cpp b/automotive/can/1.0/default/libnl++/protocols/generic/Generic.cpp
index 633ef3c..1a24914 100644
--- a/automotive/can/1.0/default/libnl++/protocols/generic/Generic.cpp
+++ b/automotive/can/1.0/default/libnl++/protocols/generic/Generic.cpp
@@ -19,7 +19,7 @@
 #include "Ctrl.h"
 #include "Unknown.h"
 
-namespace android::netdevice::protocols::generic {
+namespace android::nl::protocols::generic {
 
 Generic::Generic() : NetlinkProtocol(NETLINK_GENERIC, "GENERIC", {std::make_shared<Ctrl>()}) {}
 
@@ -33,4 +33,4 @@
     return *(mFamilyRegister[nlmsg_type] = std::make_shared<Unknown>(nlmsg_type));
 }
 
-}  // namespace android::netdevice::protocols::generic
+}  // namespace android::nl::protocols::generic
diff --git a/automotive/can/1.0/default/libnl++/protocols/generic/Generic.h b/automotive/can/1.0/default/libnl++/protocols/generic/Generic.h
index b4352f6..593c92d 100644
--- a/automotive/can/1.0/default/libnl++/protocols/generic/Generic.h
+++ b/automotive/can/1.0/default/libnl++/protocols/generic/Generic.h
@@ -18,7 +18,7 @@
 
 #include "../NetlinkProtocol.h"
 
-namespace android::netdevice::protocols::generic {
+namespace android::nl::protocols::generic {
 
 /**
  * Definition of NETLINK_GENERIC protocol.
@@ -34,4 +34,4 @@
     std::map<nlmsgtype_t, std::shared_ptr<const MessageDescriptor>> mFamilyRegister;
 };
 
-}  // namespace android::netdevice::protocols::generic
+}  // namespace android::nl::protocols::generic
diff --git a/automotive/can/1.0/default/libnl++/protocols/generic/GenericMessageBase.cpp b/automotive/can/1.0/default/libnl++/protocols/generic/GenericMessageBase.cpp
index c9f0813..5203368 100644
--- a/automotive/can/1.0/default/libnl++/protocols/generic/GenericMessageBase.cpp
+++ b/automotive/can/1.0/default/libnl++/protocols/generic/GenericMessageBase.cpp
@@ -16,7 +16,7 @@
 
 #include "GenericMessageBase.h"
 
-namespace android::netdevice::protocols::generic {
+namespace android::nl::protocols::generic {
 
 GenericMessageBase::GenericMessageBase(
         nlmsgtype_t msgtype, std::string msgname,
@@ -37,4 +37,4 @@
     ss << "}";
 }
 
-}  // namespace android::netdevice::protocols::generic
+}  // namespace android::nl::protocols::generic
diff --git a/automotive/can/1.0/default/libnl++/protocols/generic/GenericMessageBase.h b/automotive/can/1.0/default/libnl++/protocols/generic/GenericMessageBase.h
index 2a19034..f3b0b31 100644
--- a/automotive/can/1.0/default/libnl++/protocols/generic/GenericMessageBase.h
+++ b/automotive/can/1.0/default/libnl++/protocols/generic/GenericMessageBase.h
@@ -20,7 +20,7 @@
 
 #include <linux/genetlink.h>
 
-namespace android::netdevice::protocols::generic {
+namespace android::nl::protocols::generic {
 
 class GenericMessageBase : public MessageDefinition<struct genlmsghdr> {
   public:
@@ -37,4 +37,4 @@
     const GenericCommandNameMap mCommandNames;
 };
 
-}  // namespace android::netdevice::protocols::generic
+}  // namespace android::nl::protocols::generic
diff --git a/automotive/can/1.0/default/libnl++/protocols/generic/Unknown.cpp b/automotive/can/1.0/default/libnl++/protocols/generic/Unknown.cpp
index 9a71d89..17367f0 100644
--- a/automotive/can/1.0/default/libnl++/protocols/generic/Unknown.cpp
+++ b/automotive/can/1.0/default/libnl++/protocols/generic/Unknown.cpp
@@ -16,9 +16,9 @@
 
 #include "Unknown.h"
 
-namespace android::netdevice::protocols::generic {
+namespace android::nl::protocols::generic {
 
 Unknown::Unknown(nlmsgtype_t msgtype)
     : GenericMessageBase(msgtype, "Unknown(" + std::to_string(msgtype) + ")") {}
 
-}  // namespace android::netdevice::protocols::generic
+}  // namespace android::nl::protocols::generic
diff --git a/automotive/can/1.0/default/libnl++/protocols/generic/Unknown.h b/automotive/can/1.0/default/libnl++/protocols/generic/Unknown.h
index 82a5501..62ae19d 100644
--- a/automotive/can/1.0/default/libnl++/protocols/generic/Unknown.h
+++ b/automotive/can/1.0/default/libnl++/protocols/generic/Unknown.h
@@ -18,11 +18,11 @@
 
 #include "GenericMessageBase.h"
 
-namespace android::netdevice::protocols::generic {
+namespace android::nl::protocols::generic {
 
 class Unknown : public GenericMessageBase {
   public:
     Unknown(nlmsgtype_t msgtype);
 };
 
-}  // namespace android::netdevice::protocols::generic
+}  // namespace android::nl::protocols::generic
diff --git a/automotive/can/1.0/default/libnl++/protocols/route/Link.cpp b/automotive/can/1.0/default/libnl++/protocols/route/Link.cpp
index 53e1700..26d3e3e 100644
--- a/automotive/can/1.0/default/libnl++/protocols/route/Link.cpp
+++ b/automotive/can/1.0/default/libnl++/protocols/route/Link.cpp
@@ -20,7 +20,7 @@
 
 #include <net/if.h>
 
-namespace android::netdevice::protocols::route {
+namespace android::nl::protocols::route {
 
 using DataType = AttributeDefinition::DataType;
 
@@ -114,4 +114,4 @@
        << ", change=" << data.ifi_change << "}";
 }
 
-}  // namespace android::netdevice::protocols::route
+}  // namespace android::nl::protocols::route
diff --git a/automotive/can/1.0/default/libnl++/protocols/route/Link.h b/automotive/can/1.0/default/libnl++/protocols/route/Link.h
index bcfce19..4ea3eba 100644
--- a/automotive/can/1.0/default/libnl++/protocols/route/Link.h
+++ b/automotive/can/1.0/default/libnl++/protocols/route/Link.h
@@ -20,7 +20,7 @@
 
 #include <linux/rtnetlink.h>
 
-namespace android::netdevice::protocols::route {
+namespace android::nl::protocols::route {
 
 class Link : public MessageDefinition<struct ifinfomsg> {
   public:
@@ -28,4 +28,4 @@
     void toStream(std::stringstream& ss, const struct ifinfomsg& data) const override;
 };
 
-}  // namespace android::netdevice::protocols::route
+}  // namespace android::nl::protocols::route
diff --git a/automotive/can/1.0/default/libnl++/protocols/route/Route.cpp b/automotive/can/1.0/default/libnl++/protocols/route/Route.cpp
index 456072b..c134911 100644
--- a/automotive/can/1.0/default/libnl++/protocols/route/Route.cpp
+++ b/automotive/can/1.0/default/libnl++/protocols/route/Route.cpp
@@ -18,8 +18,8 @@
 
 #include "Link.h"
 
-namespace android::netdevice::protocols::route {
+namespace android::nl::protocols::route {
 
 Route::Route() : NetlinkProtocol(NETLINK_ROUTE, "ROUTE", {std::make_shared<Link>()}) {}
 
-}  // namespace android::netdevice::protocols::route
+}  // namespace android::nl::protocols::route
diff --git a/automotive/can/1.0/default/libnl++/protocols/route/Route.h b/automotive/can/1.0/default/libnl++/protocols/route/Route.h
index 3051cf9..433e610 100644
--- a/automotive/can/1.0/default/libnl++/protocols/route/Route.h
+++ b/automotive/can/1.0/default/libnl++/protocols/route/Route.h
@@ -18,7 +18,7 @@
 
 #include "../NetlinkProtocol.h"
 
-namespace android::netdevice::protocols::route {
+namespace android::nl::protocols::route {
 
 /**
  * Definition of NETLINK_ROUTE protocol.
@@ -28,4 +28,4 @@
     Route();
 };
 
-}  // namespace android::netdevice::protocols::route
+}  // namespace android::nl::protocols::route
diff --git a/automotive/can/1.0/default/libnl++/protocols/route/structs.cpp b/automotive/can/1.0/default/libnl++/protocols/route/structs.cpp
index 48d64f0..ea923bb 100644
--- a/automotive/can/1.0/default/libnl++/protocols/route/structs.cpp
+++ b/automotive/can/1.0/default/libnl++/protocols/route/structs.cpp
@@ -16,7 +16,7 @@
 
 #include "structs.h"
 
-namespace android::netdevice::protocols::route {
+namespace android::nl::protocols::route {
 
 void mapToStream(std::stringstream& ss, const nlbuf<nlattr> attr) {
     const auto& [ok, data] = attr.data<rtnl_link_ifmap>().getFirst();
@@ -46,4 +46,4 @@
        << data.retrans_time << '}';
 }
 
-}  // namespace android::netdevice::protocols::route
+}  // namespace android::nl::protocols::route
diff --git a/automotive/can/1.0/default/libnl++/protocols/route/structs.h b/automotive/can/1.0/default/libnl++/protocols/route/structs.h
index 2c1771b..38776fa 100644
--- a/automotive/can/1.0/default/libnl++/protocols/route/structs.h
+++ b/automotive/can/1.0/default/libnl++/protocols/route/structs.h
@@ -22,7 +22,7 @@
 
 #include <sstream>
 
-namespace android::netdevice::protocols::route {
+namespace android::nl::protocols::route {
 
 // rtnl_link_ifmap
 void mapToStream(std::stringstream& ss, const nlbuf<nlattr> attr);
@@ -75,4 +75,4 @@
        << data.rx_nohandler << '}';
 }
 
-}  // namespace android::netdevice::protocols::route
+}  // namespace android::nl::protocols::route
