code: def add_layer3_interface(self, interface_id, address, network_value,
                               zone_ref=None, comment=None, **kw):
          
          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)
docs: 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.