def add_layer3_interface(self, interface_id, address, network_value,
                             zone_ref=None, comment=None, **kw):
        """
        Add a layer 3 interface on a non-clustered engine.
        For Layer 2 FW and IPS engines, this interface type represents
        a layer 3 routed (node dedicated) interface. For clusters, use the
        cluster related methods such as :func:`add_cluster_virtual_interface`

        :param str,int interface_id: interface identifier
        :param str address: ip address
        :param str network_value: network/cidr (12.12.12.0/24)
        :param str zone_ref: zone reference, can be name, href or Zone
        :param kw: keyword arguments are passed to the sub-interface during
            create time. If the engine is a single FW, the sub-interface type
            is :class:`smc.core.sub_interfaces.SingleNodeInterface`. For all
            other engines, the type is :class:`smc.core.sub_interfaces.NodeInterface`
            For example, pass 'backup_mgt=True' to enable this interface as the
            management backup.
        :raises EngineCommandFailed: failure creating interface
        :return: None

        .. note::
            If an existing ip address exists on the interface and zone_ref is
            provided, this value will overwrite any previous zone definition.
        """
        interfaces = {'interface_id': interface_id, 'interfaces':
            [{'nodes': [{'address': address, 'network_value': network_value}]}],
            'zone_ref': zone_ref, 'comment': comment}
        interfaces.update(kw)
        
        if 'single_fw' in self._engine.type: # L2FW / IPS
            interfaces.update(interface='single_node_interface')
    
        try:
            interface = self._engine.interface.get(interface_id)
            interface._add_interface(**interfaces)
            return interface.update()
            
        except InterfaceNotFound:
            interface = Layer3PhysicalInterface(**interfaces)
            return self._engine.add_interface(interface)