<?xml version="1.0" encoding="utf-8"?>

<creole>
    <files>
        <file filelist='dhcp' name='/usr/share/ead2/backend/config/perms/perm_dhcp.ini' rm="True"/>
        <file filelist='dhcp' name='/var/lib/eole/config/eoledhcp.cfg' rm="True"/>
    </files>
    <containers>
        <container name='dhcp' id='17'>
            <package>eole-dhcp-pkg</package>
            <service servicelist='dhcp'>isc-dhcp-server</service>
            <service servicelist='dhcpipv6'>isc-dhcp-server6</service>
            <service_access service='failover_dhcp'>
                <port service_accesslist='failover_dhcp' port_type='SymLinkOption'>dhcp_failover_port</port>
            </service_access>
            <service_restriction service='failover_dhcp'>
                <ip service_restrictionlist='failover_dhcp' ip_type='SymLinkOption' interface='auto' netmask='255.255.255.255'>dhcp_failover_peer_address</ip>
            </service_restriction>
            <service_access service='tftp'>
                <port protocol='udp'>69</port>
                <tcpwrapper>in.tftpd</tcpwrapper>
            </service_access>
            <service_access service='omap'>
                <port service_accesslist='omapi' port_type='SymLinkOption'>omapi_port</port>
            </service_access>
            <file filelist='dhcp' name='/etc/dhcp/dhcpd.conf'/>
            <file filelist='tftp' name='/etc/default/tftpd-hpa' source='tftpd-hpa.default'/>
        </container>
    </containers>
    <variables>
        <family name='services'>
            <variable name='activer_dhcp' type='oui/non' description="Activer le serveur DHCP" mode='basic'>
                <value>non</value>
            </variable>
            <variable name='activer_tftp' type='oui/non' description="Activer l'utilisation d'un serveur PXE/TFTP" mode='expert'>
                <value>non</value>
            </variable>
        </family>
        <family name='dhcp' icon='bolt'>
            <variable name='global_nom_domaine_dhcp' type='domain_strict' description='Nom de domaine à renvoyer aux clients DHCP' mode='expert'/>
            <variable name='global_adresse_ip_gw_dhcp' type='ip' description='Adresse IP du routeur à renvoyer aux clients DHCP' mode='expert'/>
            <variable name='global_adresse_ip_dns_dhcp' type='ip' description='Adresse IP du DNS à renvoyer aux clients DHCP' mode='expert'/>
            <variable name='global_adresse_ip_dns_secondaire_dhcp' type='ip' description='Adresse IP du DNS secondaire à renvoyer aux clients DHCP' mode='expert'/>
            <variable name='global_adresse_ip_wins_primaire_dhcp' type='ip' description='Adresse IP du serveur primaire Wins à renvoyer aux clients' mode='expert'/>
            <variable name='global_adresse_ip_wins_secondaire_dhcp' type='ip' description='Adresse IP du serveurs secondaire Wins à renvoyer aux clients' mode='expert'/>
            <variable name='global_adresse_ip_ntp_dhcp' type='ip' description='Adresse IP du serveur NTP à renvoyer aux clients' mode='expert'/>
            <variable name='global_dhcp_lease_default' type='number' description='Temps du bail par défaut (sec)' mandatory='True' mode='expert'>
                <value>36000</value>
            </variable>
            <variable name='global_dhcp_lease_max' type='number' description='Temps maximum du bail (sec)' mandatory='True' mode='expert'>
                <value>144000</value>
            </variable>
            <variable name='global_domain_wpad_dhcp' type='domain_strict' description='Nom de domaine du serveur WPAD' mode='expert'/>

            <variable name='activer_dhcp_failover' type='oui/non' description='Activer la continuité de service'>
                <value>non</value>
            </variable>
            <variable name='dhcp_failover_name' type='string' description='Nom de la grappe' mandatory='True'/>
            <variable name='dhcp_failover_rank' type='string' description='Rang du serveur dans la grappe' mandatory='True'/>
            <variable name='dhcp_failover_local_address' type='ip' description='Adresse IP du serveur DHCP local, en écoute du serveur pair' mandatory='True'/>
            <variable name='dhcp_failover_port' type='number' description='Port de communication du serveur DHCP local, en écoute du serveur pair' mandatory='True'/>
            <variable name='dhcp_failover_peer_address' type='ip' description='Adresse IP du serveur pair' mandatory='True'/>
            <variable name='dhcp_failover_peer_port' type='number' description='Port de communication du serveur pair' mandatory='True'/>
            <variable name='dhcp_failover_response_delay' type='number' description='Délai maximal de réponse' mode='expert'>
                <value>60</value>
            </variable>
            <variable name='dhcp_failover_unacked_updates' type='number' description='Nombre de messages BNDUPD' mode='expert'>
                <value>10</value>
            </variable>
            <variable name='dhcp_failover_balance_seconds' type='number' description='Délai avant passage de témoin' mode='expert'>
                <value>5</value>
            </variable>
            <variable name='dhcp_failover_mclt' type='number' description='Temps maximum de délégation' mode='expert'>
                <value>3600</value>
            </variable>
            <variable name='dhcp_failover_split' type='number' description='Seuil de prise en charge par le serveur primaire' mode='expert'>
                <value>128</value>
            </variable>

            <variable name='activer_omapi' type='oui/non' description='Activer OMAPI' mode='expert'>
                <value>non</value>
            </variable>
            <variable name='omapi_port' type='number' description='Port d’écoute pour OMAPI' mode='expert'>
                <value>7911</value>
            </variable>
            <variable name='omapi_secret' type='password' description='Secret partagé pour OMAPI' auto_save='True'/>

            <variable name='adresse_network_dhcp' type='network' description='Adresse réseau de la plage DHCP' multi='True' mandatory="True"/>
            <variable name='adresse_netmask_dhcp' type='netmask' description='Masque de sous-réseau de la plage DHCP' mandatory="True"/>
            <variable name='nom_plage_dhcp' type='hostname_strict' description='Nom de la plage DHCP' mandatory="True"/>
            <variable name='ip_basse_dhcp' type='ip' description='IP basse de la plage DHCP' mandatory="True"/>
            <variable name='ip_haute_dhcp' type='ip' description='IP haute de la plage DHCP' mandatory="True"/>
            <variable name='adressage_statique' type='oui/non' description='Distribuer des IP statiques pour cette plage (compatible EAD3 seulement)'>
              <value>non</value>
            </variable>
            <variable name='nom_domaine_dhcp' type='domain_strict' description='Nom de domaine à renvoyer aux clients DHCP' mode='basic'/>
            <variable name='adresse_ip_gw_dhcp' type='ip' description='Adresse IP du routeur à renvoyer aux clients DHCP' mode='basic'/>
            <variable name='adresse_ip_dns_dhcp' type='ip' description='Adresse IP du DNS à renvoyer aux clients DHCP' mode='basic'/>
            <variable name='adresse_ip_dns_secondaire_dhcp' type='ip' description='Adresse IP du DNS secondaire à renvoyer aux clients DHCP' mode='expert'/>
            <variable name='adresse_ip_wins_primaire_dhcp' type='ip' description='Adresse IP du serveur primaire Wins à renvoyer aux clients' mode='expert'/>
            <variable name='adresse_ip_wins_secondaire_dhcp' type='ip' description='Adresse IP du serveur secondaire Wins à renvoyer aux clients' mode='expert'/>
            <variable name='adresse_ip_ntp_dhcp' type='ip' description='Adresse IP du serveur NTP à renvoyer aux clients' mode='expert'/>
            <variable name='fichier_pxe_dhcp' type='string' description='Fichier pour le boot PXE' mode='expert'/>
            <variable name='domain_wpad_dhcp' type='domain_strict' description='Domaine servant la fonctionnalité WPAD' mode='expert'/>
            <variable name='dhcp_pool_use_failover' type='oui/non' description='Utiliser la configuration de continuité de service pour ce pool' mode='expert' hidden='True'/>
            <variable name='interdire_hotes_inconnus' type='oui/non' description="Interdire cette zone aux hôtes inconnus" mode='expert'>
                <value>non</value>
            </variable>
            <variable name='dhcp_lease_default' type='number' description='Temps du bail par défaut (sec)' mode='expert'/>
            <variable name='dhcp_lease_max' type='number' description='Temps maximum du bail (sec)' mode='expert'/>
        </family>
        <family name='tftp' icon='cloud'>
            <variable name='adresse_ip_tftp' type='ip' description="Adresse IP du serveur PXE/TFTP" />
            <variable name='repertoire_tftp' type='filename' description="Répertoire sur le serveur PXE/TFTP" >
                <value>/var/lib/tftpboot/</value>
            </variable>
            <variable name='chemin_fichier_pxe' type='filename' description="Chemin vers le fichier de boot PXE initial" >
                <value>/pxelinux.0</value>
            </variable>
        </family>
        <separators>
            <separator name="global_nom_domaine_dhcp">Paramètres globaux (peuvent être surchargés pour un réseau spécifique)</separator>
            <separator name='activer_dhcp_failover'>Configurer la continuité de service</separator>
            <separator name='activer_omapi'>Support de l'API OMAPI</separator>
            <separator name="adresse_network_dhcp">Définition des sous-réseaux</separator>
        </separators>
    </variables>
    <constraints>
        <group master='adresse_network_dhcp'>
            <slave>adresse_netmask_dhcp</slave>
            <slave>nom_plage_dhcp</slave>
            <slave>ip_basse_dhcp</slave>
            <slave>ip_haute_dhcp</slave>
            <slave>adressage_statique</slave>
            <slave>nom_domaine_dhcp</slave>
            <slave>adresse_ip_gw_dhcp</slave>
            <slave>adresse_ip_dns_dhcp</slave>
            <slave>adresse_ip_dns_secondaire_dhcp</slave>
            <slave>adresse_ip_wins_primaire_dhcp</slave>
            <slave>adresse_ip_wins_secondaire_dhcp</slave>
            <slave>adresse_ip_ntp_dhcp</slave>
            <slave>fichier_pxe_dhcp</slave>
            <slave>domain_wpad_dhcp</slave>
            <slave>dhcp_pool_use_failover</slave>
            <slave>interdire_hotes_inconnus</slave>
            <slave>dhcp_lease_default</slave>
            <slave>dhcp_lease_max</slave>
        </group>
        <check name='valid_in_network' target='ip_basse_dhcp'>
            <param type='eole'>adresse_network_dhcp</param>
            <param type='eole'>adresse_netmask_dhcp</param>
        </check>
        <check name='valid_in_network' target='ip_haute_dhcp'>
            <param type='eole'>adresse_network_dhcp</param>
            <param type='eole'>adresse_netmask_dhcp</param>
        </check>
        <check name='check_name_uniq' target='nom_plage_dhcp'>
        </check>
        <fill name='calc_multi_condition' target='dhcp_failover_port'>
            <param>primary</param>
            <param type='eole' name='condition_1'>dhcp_failover_rank</param>
            <param name='match' type='number'>647</param>
            <param name='mismatch' type='number'>847</param>
        </fill>
        <fill name='calc_multi_condition' target='dhcp_failover_peer_port'>
            <param>secondary</param>
            <param type='eole' name='condition_1'>dhcp_failover_rank</param>
            <param name='match' type='number'>647</param>
            <param name='mismatch' type='number'>847</param>
        </fill>
        <fill name='calc_val' target='global_nom_domaine_dhcp'>
            <param type='eole' name='valeur'>nom_domaine_local</param>
        </fill>
        <fill name='calc_val' target='nom_domaine_dhcp'>
            <param type='eole' name='valeur'>global_nom_domaine_dhcp</param>
        </fill>
        <fill name='calc_val' target='adresse_ip_gw_dhcp'>
            <param type='eole'>global_adresse_ip_gw_dhcp</param>
        </fill>
        <fill name='calc_val' target='adresse_ip_dns_dhcp'>
            <param type='eole'>global_adresse_ip_dns_dhcp</param>
        </fill>
        <fill name='calc_val' target='adresse_ip_dns_secondaire_dhcp'>
            <param type='eole'>global_adresse_ip_dns_secondaire_dhcp</param>
        </fill>
        <fill name='calc_val' target='adresse_ip_wins_primaire_dhcp'>
            <param type='eole'>global_adresse_ip_wins_primaire_dhcp</param>
        </fill>
        <fill name='calc_val' target='adresse_ip_wins_secondaire_dhcp'>
            <param type='eole'>global_adresse_ip_wins_secondaire_dhcp</param>
        </fill>
        <fill name='calc_val' target='adresse_ip_ntp_dhcp'>
            <param type='eole'>global_adresse_ip_ntp_dhcp</param>
        </fill>
        <fill name='calc_val' target='dhcp_lease_default'>
            <param type='eole'>global_dhcp_lease_default</param>
        </fill>
        <fill name='calc_val' target='dhcp_lease_max'>
            <param type='eole'>global_dhcp_lease_max</param>
        </fill>
        <fill name='calc_val' target='dhcp_pool_use_failover'>
            <param type='eole'>activer_dhcp_failover</param>
        </fill>
        <fill name='calc_val' target='fichier_pxe_dhcp'>
            <param type='eole'>chemin_fichier_pxe</param>
        </fill>
        <fill name='calc_val' target='domain_wpad_dhcp'>
            <param type='eole'>global_domain_wpad_dhcp</param>
        </fill>
        <fill name='calc_val' target='adresse_ip_tftp'>
            <param type='eole' name='valeur'>adresse_ip_eth0</param>
        </fill>
        <fill name='calc_multi_condition' target='global_domain_wpad_dhcp'>
            <param>non</param>
            <param type="eole" name="condition_1" optional="True">activer_wpad</param>
            <param name='default_match'>None</param>
            <param type="eole" name='mismatch'>nom_domaine_local</param>
            <param name='default_mismatch'>None</param>
        </fill>
        <fill name='gen_random' target='omapi_secret'/>
        <condition name='disabled_if_in' source='activer_tftp'>
            <param>non</param>
            <target type='servicelist'>tftp</target>
            <target type='family'>tftp</target>
            <target type='filelist'>tftp</target>
            <target type='variable'>fichier_pxe_dhcp</target>
        </condition>
        <condition name='disabled_if_in' source='activer_ipv6'>
            <param>non</param>
            <target type='servicelist'>dhcpipv6</target>
        </condition>
        <condition name='disabled_if_in' source='activer_dhcp'>
            <param>non</param>
            <target type='filelist'>dhcp</target>
            <target type='servicelist'>dhcp</target>
            <target type='family'>dhcp</target>
            <target type='variable'>chemin_fichier_pxe</target>
        </condition>
        <check name='valid_enum' target='dhcp_failover_rank'>
            <param>['primary', 'secondary']</param>
        </check>
        <!--<condition name='disabled_if_in' source='adressage_statique'>
          <param>oui</param>
          <target type='variable'>interdire_hotes_inconnus</target>
        </condition>-->
        <condition name='disabled_if_in' source='activer_dhcp_failover'>
            <param>non</param>
            <target type='variable'>dhcp_failover_name</target>
            <target type='variable'>dhcp_failover_rank</target>
            <target type='variable'>dhcp_failover_local_address</target>
            <target type='variable'>dhcp_failover_port</target>
            <target type='variable'>dhcp_failover_peer_address</target>
            <target type='variable'>dhcp_failover_peer_port</target>
            <target type='variable'>dhcp_failover_response_delay</target>
            <target type='variable'>dhcp_failover_unacked_updates</target>
            <target type='variable'>dhcp_failover_balance_seconds</target>
            <target type='service_accesslist'>failover_dhcp</target>
            <target type='service_restrictionlist'>failover_dhcp</target>
        </condition>
        <condition name='disabled_if_in' source='dhcp_failover_rank'>
            <param>secondary</param>
            <target type='variable'>dhcp_failover_mclt</target>
            <target type='variable'>dhcp_failover_split</target>
        </condition>
        <condition name='disabled_if_in' source='activer_omapi'>
            <param>non</param>
            <target type='variable'>omapi_port</target>
            <target type='variable'>omapi_secret</target>
            <target type='service_accesslist'>omapi</target>
        </condition>
    </constraints>

    <help>
        <family name='dhcp'>Paramétrage du serveur DHCP local</family>
        <family name='tftp'>Configuration du serveur TFTP</family>
        <variable name='activer_dhcp'>DHCP (Dynamic Host Configuration Protocol) est un protocole réseau dont le rôle est d’assurer la configuration automatique des paramètres IP d’une station</variable>
        <variable name='activer_tftp'>TFTP (Trivial File Transfer Protocol) est un protocole simplifié de transfert de fichiers</variable>
        <variable name='global_nom_domaine_dhcp'>Nom de domaine à renvoyer aux clients DHCP</variable>
        <variable name='global_adresse_ip_gw_dhcp'>Adresse IP du routeur par défaut à renvoyer aux clients DHCP</variable>
        <variable name='global_adresse_ip_dns_dhcp'>Adresse IP du DNS à renvoyer aux clients DHCP</variable>
        <variable name='global_adresse_ip_wins_primaire_dhcp'>Adresse IP du serveur primaire WINS à renvoyer aux clients DHCP</variable>
        <variable name='global_adresse_ip_wins_secondaire_dhcp'>Adresse IP du serveur secondaire WINS à renvoyer aux clients DHCP</variable>
        <variable name='global_adresse_ip_ntp_dhcp'>Adresse IP du serveur NTP à renvoyer aux clients DHCP</variable>
        <variable name='global_dhcp_lease_default'>Temps du bail par défaut, en secondes, offert à un client n'ayant pas fait la demande d'une durée spécifique</variable>
        <variable name='global_dhcp_lease_max'>Temps du bail maximal, en secondes, accordé à un client ayant fait la demande d'une durée spécifique</variable>
        <variable name='activer_dhcp_failover'>Affiche les paramètres pour la configuration de la continuité de service (failover) de DHCP.</variable>
        <variable name='dhcp_failover_name'>Nom utilisé pour identifier une configuration de continuité de service et l’associer aux pools d’adresses.</variable>
        <variable name='dhcp_failover_rank'>Rôle joué par le serveur dans le mécanisme de continuité de service (primaire ou secondaire).</variable>
        <variable name='dhcp_failover_local_address'>Adresse IP du serveur local failover, en écoute du serveur pair.</variable>
        <variable name='dhcp_failover_port'>Port utilisé pour recevoir les informations du serveur pair.</variable>
        <variable name='dhcp_failover_peer_address'>Adresse IP du serveur pair.</variable>
        <variable name='dhcp_failover_peer_port'>Port utilisé pour contacter le serveur pair (peut être identique au port d’écoute du service hébergé).</variable>
        <variable name='dhcp_failover_response_delay'>Seuil de temps (en secondes) à partir duquel un serveur pair ne répondant pas aux requêtes est supposé défaillant.</variable>
        <variable name='dhcp_failover_unacked_updates'>Nombre limite de messages BNDUPD sans réponse BNDACK tolérés.</variable>
        <variable name='dhcp_failover_balance_seconds'>Temps limite (en secondes) après lequel un pair prend le pas sur l’autre si ce dernier ne répond plus aux requêtes des clients mais seulement aux messages d’appairage (outrepassement des paramètres de répartition de charge).</variable>
        <variable name='dhcp_failover_mclt'>Durée maximale (en secondes) pendant laquelle un serveur pair peut renouveler un bail sans concertation avec l’autre serveur (Maximum Client Lead Time).</variable>
        <variable name='dhcp_failover_split'>Valeur comprise entre 0 et 256 inclus faisant office de seuil et permettant d’associer les requêtes à l’un ou à l’autre serveur  pair (répartition de charge).</variable>
        <variable name='activer_omapi'>Afficher les variables utilisées pour la configuration de OMAPI</variable>
        <variable name='omapi_port'>Port à ouvrir et à utiliser pour OMAPI</variable>
        <variable name='omapi_secret'>Clé secrète partagée à utiliser dans la configuration des différents serveurs utilisant OMAPI</variable>
        <variable name='adresse_network_dhcp'>Adresse réseau du sous-réseau</variable>
        <variable name='adresse_netmask_dhcp'>Masque de sous-réseau</variable>
        <variable name='nom_plage_dhcp'>Nom permettant d'identifier facilement la plage DHCP, notamment dans l'interface d'administration</variable>
        <variable name='ip_basse_dhcp'>IP basse de la plage d'adresses attribuées dynamiquement pour le sous-réseau</variable>
        <variable name='ip_haute_dhcp'>IP haute de la plage d'adresses attribuées dynamiquement pour le sous-réseau</variable>
        <variable name='adressage_statique'>Si oui, la plage est réservée à un adressage statique via l’EAD3, sinon, adressage dynamique.</variable>
        <variable name='nom_domaine_dhcp'>Nom de domaine à renvoyer aux clients DHCP du sous-réseau</variable>
        <variable name='adresse_ip_gw_dhcp'>Adresse IP du routeur à renvoyer aux clients DHCP du sous-réseau</variable>
        <variable name='adresse_ip_dns_dhcp'>Adresse IP du DNS à renvoyer aux clients DHCP du sous-réseau</variable>
        <variable name='adresse_ip_dns_secondaire_dhcp'>Adresse IP d'un serveur DNS secondaire à renvoyer aux clients DHCP du sous-réseau</variable>
        <variable name='adresse_ip_wins_primaire_dhcp'>Adresse IP du serveur primaire WINS à renvoyer aux clients du sous-réseau</variable>
        <variable name='adresse_ip_wins_secondaire_dhcp'>Adresse IP du serveur secondaire WINS à renvoyer aux clients du sous-réseau</variable>
        <variable name='adresse_ip_ntp_dhcp'>Adresse IP du serveur NTP à renvoyer aux clients du sous-réseau</variable>
        <variable name='global_domain_wpad_dhcp'>Nom de domaine du serveur WPAD à renvoyer aux clients du sous-réseau</variable>
        <variable name='interdire_hotes_inconnus'>Le serveur attribuera des adresses uniquement aux stations déclarées</variable>
        <variable name='dhcp_lease_default'>Temps du bail par défaut, en secondes, offert à un client du sous-réseau n'ayant pas fait la demande d'une durée spécifique</variable>
        <variable name='dhcp_lease_max'>Temps du bail maximal, en secondes, accordé à un client du sous-réseau ayant fait la demande d'une durée spécifique</variable>
    </help>

</creole>
<!-- vim: ts=4 sw=4 expandtab
-->
