diff --git a/src/inet/EndPointBasis.h b/src/inet/EndPointBasis.h
index c4f42ee..766b07f 100644
--- a/src/inet/EndPointBasis.h
+++ b/src/inet/EndPointBasis.h
@@ -62,8 +62,9 @@
 {
 public:
     /** Common state codes */
-    enum {
-        kBasisState_Closed = 0      /**< Encapsulated descriptor is not valid. */
+    enum
+    {
+        kBasisState_Closed = 0 /**< Encapsulated descriptor is not valid. */
     };
 
 #if CHIP_SYSTEM_CONFIG_USE_SOCKETS
@@ -81,38 +82,38 @@
 
 protected:
 #if CHIP_SYSTEM_CONFIG_USE_SOCKETS
-    int mSocket;                    /**< Encapsulated socket descriptor. */
-    IPAddressType mAddrType;        /**< Protocol family, i.e. IPv4 or IPv6. */
-    SocketEvents mPendingIO;        /**< Socket event masks */
-#endif // CHIP_SYSTEM_CONFIG_USE_SOCKETS
+    int mSocket;             /**< Encapsulated socket descriptor. */
+    IPAddressType mAddrType; /**< Protocol family, i.e. IPv4 or IPv6. */
+    SocketEvents mPendingIO; /**< Socket event masks */
+#endif                       // CHIP_SYSTEM_CONFIG_USE_SOCKETS
 
 #if CHIP_SYSTEM_CONFIG_USE_LWIP
     /** Encapsulated LwIP protocol control block */
     union
     {
-        const void* mVoid;          /**< An untyped protocol control buffer reference */
+        const void * mVoid; /**< An untyped protocol control buffer reference */
 #if INET_CONFIG_ENABLE_RAW_ENDPOINT
-        raw_pcb* mRaw;              /**< Raw network interface protocol control */
-#endif // INET_CONFIG_ENABLE_RAW_ENDPOINT
+        raw_pcb * mRaw; /**< Raw network interface protocol control */
+#endif                  // INET_CONFIG_ENABLE_RAW_ENDPOINT
 #if INET_CONFIG_ENABLE_UDP_ENDPOINT
-        udp_pcb* mUDP;              /**< User datagram protocol (UDP) control */
-#endif // INET_CONFIG_ENABLE_UDP_ENDPOINT
+        udp_pcb * mUDP; /**< User datagram protocol (UDP) control */
+#endif                  // INET_CONFIG_ENABLE_UDP_ENDPOINT
 #if INET_CONFIG_ENABLE_TCP_ENDPOINT
-        tcp_pcb* mTCP;              /**< Transmission control protocol (TCP) control */
-#endif // INET_CONFIG_ENABLE_TCP_ENDPOINT
+        tcp_pcb * mTCP; /**< Transmission control protocol (TCP) control */
+#endif                  // INET_CONFIG_ENABLE_TCP_ENDPOINT
 #if INET_CONFIG_ENABLE_TUN_ENDPOINT
-        netif* mNetIf;              /**< Tunnel interface control */
-#endif // INET_CONFIG_ENABLE_TUN_ENDPOINT
+        netif * mNetIf; /**< Tunnel interface control */
+#endif                  // INET_CONFIG_ENABLE_TUN_ENDPOINT
     };
 
     enum
     {
         kLwIPEndPointType_Unknown = 0,
 
-        kLwIPEndPointType_Raw     = 1,
-        kLwIPEndPointType_UDP     = 2,
-        kLwIPEndPointType_UCP     = 3,
-        kLwIPEndPointType_TCP     = 4
+        kLwIPEndPointType_Raw = 1,
+        kLwIPEndPointType_UDP = 2,
+        kLwIPEndPointType_UCP = 3,
+        kLwIPEndPointType_TCP = 4
     };
 
     uint8_t mLwIPEndPointType;
@@ -120,7 +121,7 @@
     void DeferredFree(chip::System::Object::ReleaseDeferralErrorTactic aTactic);
 #endif // CHIP_SYSTEM_CONFIG_USE_LWIP
 
-    void InitEndPointBasis(InetLayer& aInetLayer, void* aAppState = NULL);
+    void InitEndPointBasis(InetLayer & aInetLayer, void * aAppState = NULL);
 };
 
 #if CHIP_SYSTEM_CONFIG_USE_SOCKETS
@@ -166,7 +167,6 @@
 }
 #endif // CHIP_SYSTEM_CONFIG_USE_LWIP
 
-
 } // namespace Inet
 } // namespace chip
 
