diff --git a/cfg_checker/modules/network/mapper.py b/cfg_checker/modules/network/mapper.py
index 03237a6..c3e3b73 100644
--- a/cfg_checker/modules/network/mapper.py
+++ b/cfg_checker/modules/network/mapper.py
@@ -305,9 +305,18 @@
                 _if_name = _runtime[network][hostname][0]["name"]
                 # get proper reclass
                 _r = self.interfaces[hostname][_if_name]['reclass']
-                _if_rc = "" if _r else "*"
                 _if_name_suffix = ""
                 # get the proto value
+                if _r:
+                    _if_rc = ""
+                else:
+                    self.errors.add_error(
+                        self.errors.NET_NODE_UNEXPECTED_IF,
+                        host=hostname,
+                        if_name=_if_name
+                    )
+                    _if_rc = "*"
+
                 if "proto" in _r:
                     _proto = _r['proto']
                 else:
@@ -321,14 +330,6 @@
                 if _if_name_suffix:
                     _if_name_suffix = "({})".format(_if_name_suffix)
 
-                # check reclass has this interface
-                if _proto != "-" and not _r:
-                    self.errors.add_error(
-                        self.errors.NET_NODE_UNEXPECTED_IF,
-                        host=hostname,
-                        if_name=_if_name
-                    )
-
                 # get gate and routes if proto is static
                 if _proto == 'static':
                     # get the gateway for current net
@@ -371,32 +372,32 @@
                             # if values not match, put *
                             if _gate != _r_gate and _d_gate_str != _r_gate:
                                 # if values not match, check if default match
+                                self.errors.add_error(
+                                    self.errors.NET_UNEXPECTED_GATEWAY,
+                                    host=hostname,
+                                    if_name=_if_name,
+                                    ip=_ip_str,
+                                    gateway=_gate
+                                )
                                 _gate_error = "*"
 
                         # IF status in reclass
                         _e = "enabled"
                         if _e not in _r:
+                            self.errors.add_error(
+                                self.errors.NET_NO_RC_IF_STATUS,
+                                host=hostname,
+                                if_name=_if_name
+                            )
                             _up_error = "*"
 
                         _rc_mtu = _r['mtu'] if 'mtu' in _r else None
                         _rc_mtu_s = ""
-                        if _rc_mtu:
-                            # there is a reclass MTU, save it
-                            _rc_mtu_s = str(_rc_mtu)
-                        elif _host['mtu'] == "1500" \
-                                or _proto == "-" \
-                                or _proto == "dhcp":
-                            # 1500 is a default value => reclass not have it
-                            # or this is a fancy network
-                            pass
-                        else:
-                            # this is an error
-                            _mtu_error = "*"
-
                         # check if this is a VIP address
                         # no checks needed if yes.
                         if _host['vip'] != _ip_str:
                             if _rc_mtu:
+                                _rc_mtu_s = str(_rc_mtu)
                                 # if there is an MTU value, match it
                                 if _host['mtu'] != _rc_mtu_s:
                                     self.errors.add_error(
@@ -412,7 +413,8 @@
                                 else:
                                     # empty the matched value
                                     _rc_mtu_s = ""
-                            elif _host['mtu'] != '1500':
+                            elif _host['mtu'] != '1500' and \
+                                    _proto not in ["-", "dhcp"]:
                                 # there is no MTU value in reclass
                                 # and runtime value is not default
                                 self.errors.add_error(
diff --git a/cfg_checker/modules/network/network_errors.py b/cfg_checker/modules/network/network_errors.py
index 276c4ab..6c41021 100644
--- a/cfg_checker/modules/network/network_errors.py
+++ b/cfg_checker/modules/network/network_errors.py
@@ -10,12 +10,14 @@
     # error type codes here
     NET_MTU_MISMATCH = next(_c)
     NET_MTU_EMPTY = next(_c)
+    NET_NO_RC_IF_STATUS = next(_c)
     NET_DUPLICATE_IF = next(_c)
     NET_SUBNET_INTERSECT = next(_c)
     NET_MASK_MISMATCH = next(_c)
     NET_NODE_NON_RESPONSIVE = next(_c)
     NET_NODE_UNEXPECTED_IF = next(_c)
     NET_NO_RUNTIME_NETWORK = next(_c)
+    NET_UNEXPECTED_GATEWAY = next(_c)
     NET_PING_SUCCESS = next(_c)
     NET_PING_TIMEOUT = next(_c)
     NET_PING_ERROR = next(_c)
@@ -33,6 +35,10 @@
             "MTU value is not 1500 on runtime and empty in reclass"
         )
         self.add_error_type(
+            self.NET_NO_RC_IF_STATUS,
+            "Reclass has no IF 'enable' status value"
+        )
+        self.add_error_type(
             self.NET_DUPLICATE_IF,
             "Duplicate interface specified"
         )
@@ -57,6 +63,10 @@
             "Reclass network not found in Runtime"
         )
         self.add_error_type(
+            self.NET_UNEXPECTED_GATEWAY,
+            "Runtime has unexpected gateway set for specific network"
+        )
+        self.add_error_type(
             self.NET_PING_SUCCESS,
             "Network Ping successfull"
         )
