diff --git a/transportconstants.hpp b/transportconstants.hpp
new file mode 100644
index 0000000..b9ce46b
--- /dev/null
+++ b/transportconstants.hpp
@@ -0,0 +1,157 @@
+#pragma once
+
+#include <ipmid/api-types.hpp>
+#include <stdplus/zstring_view.hpp>
+
+#include <cstdint>
+
+namespace ipmi
+{
+namespace transport
+{
+
+using stdplus::operator""_zsv;
+
+// D-Bus Network Daemon definitions
+constexpr auto PATH_ROOT = "/xyz/openbmc_project/network"_zsv;
+constexpr auto INTF_ETHERNET = "xyz.openbmc_project.Network.EthernetInterface";
+constexpr auto INTF_IP = "xyz.openbmc_project.Network.IP";
+constexpr auto INTF_IP_CREATE = "xyz.openbmc_project.Network.IP.Create";
+constexpr auto INTF_MAC = "xyz.openbmc_project.Network.MACAddress";
+constexpr auto INTF_NEIGHBOR = "xyz.openbmc_project.Network.Neighbor";
+constexpr auto INTF_NEIGHBOR_CREATE_STATIC =
+    "xyz.openbmc_project.Network.Neighbor.CreateStatic";
+constexpr auto INTF_VLAN = "xyz.openbmc_project.Network.VLAN";
+constexpr auto INTF_VLAN_CREATE = "xyz.openbmc_project.Network.VLAN.Create";
+
+/** @brief IPMI LAN Parameters */
+enum class LanParam : uint8_t
+{
+    SetStatus = 0,
+    AuthSupport = 1,
+    AuthEnables = 2,
+    IP = 3,
+    IPSrc = 4,
+    MAC = 5,
+    SubnetMask = 6,
+    Gateway1 = 12,
+    Gateway1MAC = 13,
+    VLANId = 20,
+    CiphersuiteSupport = 22,
+    CiphersuiteEntries = 23,
+    cipherSuitePrivilegeLevels = 24,
+    IPFamilySupport = 50,
+    IPFamilyEnables = 51,
+    IPv6Status = 55,
+    IPv6StaticAddresses = 56,
+    IPv6DynamicAddresses = 59,
+    IPv6RouterControl = 64,
+    IPv6StaticRouter1IP = 65,
+    IPv6StaticRouter1MAC = 66,
+    IPv6StaticRouter1PrefixLength = 67,
+    IPv6StaticRouter1PrefixValue = 68,
+};
+
+/** @brief IPMI IP Origin Types */
+enum class IPSrc : uint8_t
+{
+    Unspecified = 0,
+    Static = 1,
+    DHCP = 2,
+    BIOS = 3,
+    BMC = 4,
+};
+
+/** @brief IPMI Set Status */
+enum class SetStatus : uint8_t
+{
+    Complete = 0,
+    InProgress = 1,
+    Commit = 2,
+};
+
+/** @brief IPMI Family Suport Bits */
+namespace IPFamilySupportFlag
+{
+constexpr uint8_t IPv6Only = 0;
+constexpr uint8_t DualStack = 1;
+constexpr uint8_t IPv6Alerts = 2;
+} // namespace IPFamilySupportFlag
+
+/** @brief IPMI IPFamily Enables Flag */
+enum class IPFamilyEnables : uint8_t
+{
+    IPv4Only = 0,
+    IPv6Only = 1,
+    DualStack = 2,
+};
+
+/** @brief IPMI IPv6 Dyanmic Status Bits */
+namespace IPv6StatusFlag
+{
+constexpr uint8_t DHCP = 0;
+constexpr uint8_t SLAAC = 1;
+}; // namespace IPv6StatusFlag
+
+/** @brief IPMI IPv6 Source */
+enum class IPv6Source : uint8_t
+{
+    Static = 0,
+    SLAAC = 1,
+    DHCP = 2,
+};
+
+/** @brief IPMI IPv6 Address Status */
+enum class IPv6AddressStatus : uint8_t
+{
+    Active = 0,
+    Disabled = 1,
+};
+
+namespace IPv6RouterControlFlag
+{
+constexpr uint8_t Static = 0;
+constexpr uint8_t Dynamic = 1;
+}; // namespace IPv6RouterControlFlag
+
+// LAN Handler specific response codes
+constexpr Cc ccParamNotSupported = 0x80;
+constexpr Cc ccParamSetLocked = 0x81;
+constexpr Cc ccParamReadOnly = 0x82;
+
+// VLANs are a 12-bit value
+constexpr uint16_t VLAN_VALUE_MASK = 0x0fff;
+constexpr uint16_t VLAN_ENABLE_FLAG = 0x8000;
+
+// Arbitrary v6 Address Limits to prevent too much output in ipmitool
+constexpr uint8_t MAX_IPV6_STATIC_ADDRESSES = 15;
+constexpr uint8_t MAX_IPV6_DYNAMIC_ADDRESSES = 15;
+
+// Prefix length limits of phosphor-networkd
+constexpr uint8_t MIN_IPV4_PREFIX_LENGTH = 1;
+constexpr uint8_t MAX_IPV4_PREFIX_LENGTH = 32;
+constexpr uint8_t MIN_IPV6_PREFIX_LENGTH = 1;
+constexpr uint8_t MAX_IPV6_PREFIX_LENGTH = 128;
+
+/** @enum SolConfParam
+ *
+ *  using for Set/Get SOL configuration parameters command.
+ */
+enum class SolConfParam : uint8_t
+{
+    Progress,       //!< Set In Progress.
+    Enable,         //!< SOL Enable.
+    Authentication, //!< SOL Authentication.
+    Accumulate,     //!< Character Accumulate Interval & Send Threshold.
+    Retry,          //!< SOL Retry.
+    NonVbitrate,    //!< SOL non-volatile bit rate.
+    Vbitrate,       //!< SOL volatile bit rate.
+    Channel,        //!< SOL payload channel.
+    Port,           //!< SOL payload port.
+};
+
+constexpr uint8_t ipmiCCParamNotSupported = 0x80;
+constexpr uint8_t ipmiCCWriteReadParameter = 0x82;
+
+} // namespace transport
+} // namespace ipmi
diff --git a/transporthandler.hpp b/transporthandler.hpp
index f4a7585..165eeda 100644
--- a/transporthandler.hpp
+++ b/transporthandler.hpp
@@ -1,6 +1,7 @@
 #pragma once
 
 #include "app/channel.hpp"
+#include "transportconstants.hpp"
 #include "user_channel/cipher_mgmt.hpp"
 
 #include <ipmid/api-types.hpp>
@@ -38,127 +39,6 @@
 namespace transport
 {
 
-using stdplus::operator""_zsv;
-
-// D-Bus Network Daemon definitions
-constexpr auto PATH_ROOT = "/xyz/openbmc_project/network"_zsv;
-constexpr auto INTF_ETHERNET = "xyz.openbmc_project.Network.EthernetInterface";
-constexpr auto INTF_IP = "xyz.openbmc_project.Network.IP";
-constexpr auto INTF_IP_CREATE = "xyz.openbmc_project.Network.IP.Create";
-constexpr auto INTF_MAC = "xyz.openbmc_project.Network.MACAddress";
-constexpr auto INTF_NEIGHBOR = "xyz.openbmc_project.Network.Neighbor";
-constexpr auto INTF_NEIGHBOR_CREATE_STATIC =
-    "xyz.openbmc_project.Network.Neighbor.CreateStatic";
-constexpr auto INTF_VLAN = "xyz.openbmc_project.Network.VLAN";
-constexpr auto INTF_VLAN_CREATE = "xyz.openbmc_project.Network.VLAN.Create";
-
-/** @brief IPMI LAN Parameters */
-enum class LanParam : uint8_t
-{
-    SetStatus = 0,
-    AuthSupport = 1,
-    AuthEnables = 2,
-    IP = 3,
-    IPSrc = 4,
-    MAC = 5,
-    SubnetMask = 6,
-    Gateway1 = 12,
-    Gateway1MAC = 13,
-    VLANId = 20,
-    CiphersuiteSupport = 22,
-    CiphersuiteEntries = 23,
-    cipherSuitePrivilegeLevels = 24,
-    IPFamilySupport = 50,
-    IPFamilyEnables = 51,
-    IPv6Status = 55,
-    IPv6StaticAddresses = 56,
-    IPv6DynamicAddresses = 59,
-    IPv6RouterControl = 64,
-    IPv6StaticRouter1IP = 65,
-    IPv6StaticRouter1MAC = 66,
-    IPv6StaticRouter1PrefixLength = 67,
-    IPv6StaticRouter1PrefixValue = 68,
-};
-
-/** @brief IPMI IP Origin Types */
-enum class IPSrc : uint8_t
-{
-    Unspecified = 0,
-    Static = 1,
-    DHCP = 2,
-    BIOS = 3,
-    BMC = 4,
-};
-
-/** @brief IPMI Set Status */
-enum class SetStatus : uint8_t
-{
-    Complete = 0,
-    InProgress = 1,
-    Commit = 2,
-};
-
-/** @brief IPMI Family Suport Bits */
-namespace IPFamilySupportFlag
-{
-constexpr uint8_t IPv6Only = 0;
-constexpr uint8_t DualStack = 1;
-constexpr uint8_t IPv6Alerts = 2;
-} // namespace IPFamilySupportFlag
-
-/** @brief IPMI IPFamily Enables Flag */
-enum class IPFamilyEnables : uint8_t
-{
-    IPv4Only = 0,
-    IPv6Only = 1,
-    DualStack = 2,
-};
-
-/** @brief IPMI IPv6 Dyanmic Status Bits */
-namespace IPv6StatusFlag
-{
-constexpr uint8_t DHCP = 0;
-constexpr uint8_t SLAAC = 1;
-}; // namespace IPv6StatusFlag
-
-/** @brief IPMI IPv6 Source */
-enum class IPv6Source : uint8_t
-{
-    Static = 0,
-    SLAAC = 1,
-    DHCP = 2,
-};
-
-/** @brief IPMI IPv6 Address Status */
-enum class IPv6AddressStatus : uint8_t
-{
-    Active = 0,
-    Disabled = 1,
-};
-
-namespace IPv6RouterControlFlag
-{
-constexpr uint8_t Static = 0;
-constexpr uint8_t Dynamic = 1;
-}; // namespace IPv6RouterControlFlag
-
-// LAN Handler specific response codes
-constexpr Cc ccParamNotSupported = 0x80;
-constexpr Cc ccParamSetLocked = 0x81;
-constexpr Cc ccParamReadOnly = 0x82;
-
-// VLANs are a 12-bit value
-constexpr uint16_t VLAN_VALUE_MASK = 0x0fff;
-constexpr uint16_t VLAN_ENABLE_FLAG = 0x8000;
-
-// Arbitrary v6 Address Limits to prevent too much output in ipmitool
-constexpr uint8_t MAX_IPV6_STATIC_ADDRESSES = 15;
-constexpr uint8_t MAX_IPV6_DYNAMIC_ADDRESSES = 15;
-
-// Prefix length limits of phosphor-networkd
-constexpr uint8_t MIN_IPV6_PREFIX_LENGTH = 1;
-constexpr uint8_t MAX_IPV6_PREFIX_LENGTH = 128;
-
 /** @brief The dbus parameters for the interface corresponding to a channel
  *         This helps reduce the number of mapper lookups we need for each
  *         query and simplifies finding the VLAN interface if needed.
@@ -567,25 +447,5 @@
     }
 }
 
-/** @enum SolConfParam
- *
- *  using for Set/Get SOL configuration parameters command.
- */
-enum class SolConfParam : uint8_t
-{
-    Progress,       //!< Set In Progress.
-    Enable,         //!< SOL Enable.
-    Authentication, //!< SOL Authentication.
-    Accumulate,     //!< Character Accumulate Interval & Send Threshold.
-    Retry,          //!< SOL Retry.
-    NonVbitrate,    //!< SOL non-volatile bit rate.
-    Vbitrate,       //!< SOL volatile bit rate.
-    Channel,        //!< SOL payload channel.
-    Port,           //!< SOL payload port.
-};
-
-constexpr uint8_t ipmiCCParamNotSupported = 0x80;
-constexpr uint8_t ipmiCCWriteReadParameter = 0x82;
-
 } // namespace transport
 } // namespace ipmi
