diff --git a/transporthandler.cpp b/transporthandler.cpp
index 8763f5f..d2d8647 100644
--- a/transporthandler.cpp
+++ b/transporthandler.cpp
@@ -71,8 +71,8 @@
            (path.size() == is || path[is] == '/');
 }
 
-std::optional<ChannelParams>
-    maybeGetChannelParams(sdbusplus::bus_t& bus, uint8_t channel)
+std::optional<ChannelParams> maybeGetChannelParams(sdbusplus::bus_t& bus,
+                                                   uint8_t channel)
 {
     auto ifname = getChannelName(channel);
     if (ifname.empty())
@@ -317,9 +317,9 @@
 }
 
 template <int family>
-std::optional<IfNeigh<family>>
-    findGatewayNeighbor(sdbusplus::bus_t& bus, const ChannelParams& params,
-                        ObjectLookupCache& neighbors)
+std::optional<IfNeigh<family>> findGatewayNeighbor(sdbusplus::bus_t& bus,
+                                                   const ChannelParams& params,
+                                                   ObjectLookupCache& neighbors)
 {
     auto gateway = getGatewayProperty<family>(bus, params);
     if (!gateway)
@@ -331,8 +331,8 @@
 }
 
 template <int family>
-std::optional<IfNeigh<family>>
-    getGatewayNeighbor(sdbusplus::bus_t& bus, const ChannelParams& params)
+std::optional<IfNeigh<family>> getGatewayNeighbor(sdbusplus::bus_t& bus,
+                                                  const ChannelParams& params)
 {
     ObjectLookupCache neighbors(bus, params, INTF_NEIGHBOR);
     return findGatewayNeighbor<family>(bus, params, neighbors);
@@ -678,9 +678,9 @@
  */
 RspType<> setLanOem(uint8_t channel, uint8_t parameter, message::Payload& req)
     __attribute__((weak));
-RspType<message::Payload>
-    getLanOem(uint8_t channel, uint8_t parameter, uint8_t set, uint8_t block)
-        __attribute__((weak));
+RspType<message::Payload> getLanOem(uint8_t channel, uint8_t parameter,
+                                    uint8_t set, uint8_t block)
+    __attribute__((weak));
 
 RspType<> setLanOem(uint8_t, uint8_t, message::Payload& req)
 {
