diff --git a/meson.build b/meson.build
index cc7b32b..d5588d5 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
 project(
-    'inspur-ipmi-oem',
+    'iei-ipmi-oem',
     'cpp',
     default_options: [
         'warning_level=3',
diff --git a/src/inspur_oem.cpp b/src/iei_oem.cpp
similarity index 89%
rename from src/inspur_oem.cpp
rename to src/iei_oem.cpp
index 53eb429..36087a6 100644
--- a/src/inspur_oem.cpp
+++ b/src/iei_oem.cpp
@@ -1,6 +1,6 @@
 #include "config.h"
 
-#include "inspur_oem.hpp"
+#include "iei_oem.hpp"
 
 #include "sdbus_wrapper.hpp"
 #include "utils.hpp"
@@ -33,7 +33,7 @@
 #define UNUSED(x) (void)(x)
 
 using namespace phosphor::logging;
-using namespace inspur;
+using namespace iei;
 
 static void registerOEMFunctions() __attribute__((constructor));
 static auto& bus = getBus();
@@ -146,11 +146,10 @@
            buildTime.c_str());
 }
 
-ipmi_ret_t ipmiOemInspurAssetInfo(ipmi_netfn_t /* netfn */,
-                                  ipmi_cmd_t /* cmd */, ipmi_request_t request,
-                                  ipmi_response_t response,
-                                  ipmi_data_len_t /* data_len */,
-                                  ipmi_context_t /* context */)
+ipmi_ret_t ipmiOemIEIAssetInfo(ipmi_netfn_t /* netfn */, ipmi_cmd_t /* cmd */,
+                               ipmi_request_t request, ipmi_response_t response,
+                               ipmi_data_len_t /* data_len */,
+                               ipmi_context_t /* context */)
 {
     auto header = reinterpret_cast<AssetInfoHeader*>(request);
     uint8_t* res = reinterpret_cast<uint8_t*>(response);
@@ -172,8 +171,8 @@
 
 void registerOEMFunctions(void)
 {
-    ipmi_register_callback(NETFN_OEM_INSPUR, CMD_OEM_ASSET_INFO, nullptr,
-                           ipmiOemInspurAssetInfo, SYSTEM_INTERFACE);
+    ipmi_register_callback(NETFN_OEM_IEI, CMD_OEM_ASSET_INFO, nullptr,
+                           ipmiOemIEIAssetInfo, SYSTEM_INTERFACE);
 }
 
 } // namespace ipmi
diff --git a/src/inspur_oem.hpp b/src/iei_oem.hpp
similarity index 85%
rename from src/inspur_oem.hpp
rename to src/iei_oem.hpp
index fc5fc85..6e0005a 100644
--- a/src/inspur_oem.hpp
+++ b/src/iei_oem.hpp
@@ -4,15 +4,15 @@
 #include <cstdint>
 #include <string_view>
 
-namespace inspur
+namespace iei
 {
 
-enum ipmi_inspur_net_fns
+enum ipmi_iei_net_fns
 {
-    NETFN_OEM_INSPUR = 0x3c,
+    NETFN_OEM_IEI = 0x3c,
 };
 
-enum inspur_oem_cmds
+enum iei_oem_cmds
 {
     CMD_OEM_ASSET_INFO = 0x01,
 };
@@ -46,4 +46,4 @@
     "BIOS", "ME", "IE", "PCH", "BOARD", "MRC", "CUSTOM_ID", "PCH_STEPPING",
 };
 
-} // namespace inspur
+} // namespace iei
diff --git a/src/meson.build b/src/meson.build
index 620197a..8b38f31 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -7,8 +7,8 @@
 so_version = '0.1.0'
 
 shared_library(
-  'inspur-ipmi-oem',
-  'inspur_oem.cpp',
+  'iei-ipmi-oem',
+  'iei_oem.cpp',
   'utils.cpp',
   'sdbus_wrapper.cpp',
   dependencies: [
diff --git a/test/meson.build b/test/meson.build
index f2534f3..f3ff324 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -6,10 +6,10 @@
 )
 test_inc = include_directories('.')
 
-test_inspur_ipmi_oem = executable(
-  'test_inspur-ipmi-oem',
-  '../src/inspur_oem.cpp',
-  'test_inspur_ipmi_oem.cpp',
+test_iei_ipmi_oem = executable(
+  'test_iei-ipmi-oem',
+  '../src/iei_oem.cpp',
+  'test_iei_ipmi_oem.cpp',
   'mocked_utils.cpp',
   'mocked_sdbus.cpp',
   include_directories: [test_inc, src_inc],
@@ -21,4 +21,4 @@
     sdbusplus,
   ])
 
-test('test_inspur-ipmi-oem', test_inspur_ipmi_oem)
+test('test_iei-ipmi-oem', test_iei_ipmi_oem)
diff --git a/test/test_inspur_ipmi_oem.cpp b/test/test_iei_ipmi_oem.cpp
similarity index 87%
rename from test/test_inspur_ipmi_oem.cpp
rename to test/test_iei_ipmi_oem.cpp
index eb2360b..6bfded8 100644
--- a/test/test_inspur_ipmi_oem.cpp
+++ b/test/test_iei_ipmi_oem.cpp
@@ -1,6 +1,6 @@
 #include "config.h"
 
-#include "inspur_oem.hpp"
+#include "iei_oem.hpp"
 #include "mocked_sdbus.hpp"
 #include "mocked_utils.hpp"
 #include "sdbus_wrapper.hpp"
@@ -30,14 +30,14 @@
     // Empty
 }
 
-class TestInspurIpmiOem : public ::testing::Test
+class TestIpmiOem : public ::testing::Test
 {
   public:
-    TestInspurIpmiOem() :
+    TestIpmiOem() :
         mockedUtils(
             reinterpret_cast<const utils::MockedUtils&>(utils::getUtils()))
     {}
-    virtual ~TestInspurIpmiOem()
+    virtual ~TestIpmiOem()
     {
         utils::freeUtils();
         clearMockedBus();
@@ -47,19 +47,19 @@
     const utils::MockedUtils& mockedUtils;
 };
 
-TEST_F(TestInspurIpmiOem, Empty)
+TEST_F(TestIpmiOem, Empty)
 {
     // Empty
 }
 
-TEST_F(TestInspurIpmiOem, parseBIOSInfoEmpty)
+TEST_F(TestIpmiOem, parseBIOSInfoEmpty)
 {
 
     EXPECT_CALL(mockedUtils, setPropertyImpl(_, _, _, _, _, _)).Times(0);
     ipmi::parseBIOSInfo({});
 }
 
-TEST_F(TestInspurIpmiOem, parseBIOSInfoValidBIOSVersion)
+TEST_F(TestIpmiOem, parseBIOSInfoValidBIOSVersion)
 {
 
     std::vector<uint8_t> data{
