Blame man/nm-settings-ifcfg-rh.xsl

Packit Service b23acc
Packit Service b23acc
Packit Service b23acc
Packit Service b23acc
%entities;
Packit Service b23acc
]>
Packit Service b23acc
Packit Service b23acc
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Packit Service b23acc
Packit Service b23acc
  
Packit Service b23acc
       http://www.oxygenxml.com/archives/xsl-list/200305/msg00430.html -->
Packit Service b23acc
  <xsl:strip-space elements="nm-setting-docs setting" />
Packit Service b23acc
Packit Service b23acc
  
Packit Service b23acc
      method="xml"
Packit Service b23acc
      doctype-public="-//OASIS//DTD DocBook XML V4.3//EN"
Packit Service b23acc
      doctype-system="http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
Packit Service b23acc
      />
Packit Service b23acc
Packit Service b23acc
  <xsl:template match="nm-setting-docs">
Packit Service b23acc
    <refentry id="nm-settings-ifcfg-rh">
Packit Service b23acc
      <refentryinfo>
Packit Service b23acc
        <title>nm-settings-ifcfg-rh</title>
Packit Service b23acc
        <author>NetworkManager developers</author>
Packit Service b23acc
      </refentryinfo>
Packit Service b23acc
      <refmeta>
Packit Service b23acc
        <refentrytitle>nm-settings-ifcfg-rh</refentrytitle>
Packit Service b23acc
        <manvolnum>5</manvolnum>
Packit Service b23acc
        <refmiscinfo class="source">NetworkManager</refmiscinfo>
Packit Service b23acc
        <refmiscinfo class="manual">Configuration</refmiscinfo>
Packit Service b23acc
        <refmiscinfo class="version">&NM_VERSION;</refmiscinfo>
Packit Service b23acc
      </refmeta>
Packit Service b23acc
      <refnamediv>
Packit Service b23acc
        <refname>nm-settings-ifcfg-rh</refname>
Packit Service b23acc
        <refpurpose>Description of <emphasis>ifcfg-rh</emphasis> settings plugin</refpurpose>
Packit Service b23acc
      </refnamediv>
Packit Service b23acc
      <refsect1 id='description'><title>Description</title>
Packit Service b23acc
        <para>
Packit Service b23acc
          NetworkManager is based on the concept of connection profiles that contain
Packit Service b23acc
          network configuration (see <citerefentry><refentrytitle>nm-settings</refentrytitle>
Packit Service b23acc
          <manvolnum>5</manvolnum></citerefentry> for details). The profiles can be
Packit Service b23acc
          stored in various formats. NetworkManager uses plugins for reading and writing
Packit Service b23acc
          the data. The plugins can be configured in <citerefentry>
Packit Service b23acc
          <refentrytitle>NetworkManager.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
Packit Service b23acc
        </para>
Packit Service b23acc
        <para>
Packit Service b23acc
          The <emphasis>ifcfg-rh</emphasis> plugin is used on the Fedora and Red Hat
Packit Service b23acc
          Enterprise Linux distributions to read/write configuration from/to
Packit Service b23acc
          the traditional <filename>/etc/sysconfig/network-scripts/ifcfg-*</filename> files.
Packit Service b23acc
          Each NetworkManager connection maps to one <filename>ifcfg-*</filename> file, with
Packit Service b23acc
          possible usage of <filename>keys-*</filename> for passwords, <filename>route-*</filename>
Packit Service b23acc
          for static IPv4 routes and <filename>route6-*</filename> for static IPv6 routes.
Packit Service b23acc
          The plugin currently supports reading and writing Ethernet, Wi-Fi, InfiniBand,
Packit Service b23acc
          VLAN, Bond, Bridge, and Team connections. Unsupported connection types (such as
Packit Service b23acc
          WWAN, PPPoE, VPN, or ADSL) are handled by <emphasis>keyfile</emphasis> plugin
Packit Service b23acc
          (<link linkend='nm-settings-keyfile'><citerefentry><refentrytitle>nm-settings-keyfile</refentrytitle><manvolnum>5</manvolnum></citerefentry></link>).
Packit Service b23acc
          The main reason for using <emphasis>ifcfg-rh</emphasis> plugin is the compatibility
Packit Service b23acc
          with legacy configurations for <emphasis>ifup</emphasis> and <emphasis>ifdown</emphasis>
Packit Service b23acc
          (initscripts).
Packit Service b23acc
        </para>
Packit Service b23acc
      </refsect1>
Packit Service b23acc
      <refsect1 id='file_format'><title>File Format</title>
Packit Service b23acc
        <para>
Packit Service b23acc
          The <emphasis>ifcfg-rh</emphasis> config format is a simple text file containing
Packit Service b23acc
          VARIABLE="value" lines. The format is described in <filename>sysconfig.txt</filename>
Packit Service b23acc
          of <emphasis>initscripts</emphasis> package. Note that the configuration files
Packit Service b23acc
          may be sourced by <emphasis>initscripts</emphasis>, so they must be valid shell
Packit Service b23acc
          scripts. That means, for instance, that <literal>#</literal> character can be used
Packit Service b23acc
          for comments, strings with spaces must be quoted, special characters must be escaped,
Packit Service b23acc
          etc.
Packit Service b23acc
        </para>
Packit Service b23acc
        <para>
Packit Service b23acc
          Users can create or modify the <emphasis>ifcfg-rh</emphasis> connection files
Packit Service b23acc
          manually, even if that is not the recommended way of managing the profiles.
Packit Service b23acc
          However, if they choose to do that, they must inform NetworkManager about
Packit Service b23acc
          their changes (for example via <emphasis>nmcli con (re)load</emphasis>).
Packit Service b23acc
        </para>
Packit Service b23acc
        <formalpara>
Packit Service b23acc
          <title>Some <emphasis>ifcfg-rh</emphasis> configuration examples:</title>
Packit Service b23acc
          <para>
Packit Service b23acc
            <programlisting>
Packit Service b23acc
            <emphasis role="bold">Simple DHCP ethernet configuration:</emphasis>
Packit Service b23acc
NAME=ethernet
Packit Service b23acc
UUID=1c4ddf70-01bf-46d6-b04f-47e842bd98da
Packit Service b23acc
TYPE=Ethernet
Packit Service b23acc
BOOTPROTO=dhcp
Packit Service b23acc
DEFROUTE=yes
Packit Service b23acc
PEERDNS=yes
Packit Service b23acc
PEERROUTES=yes
Packit Service b23acc
IPV4_FAILURE_FATAL=no
Packit Service b23acc
ONBOOT=yes
Packit Service b23acc
            </programlisting>
Packit Service b23acc
          </para>
Packit Service b23acc
          <para>
Packit Service b23acc
            <programlisting>
Packit Service b23acc
            <emphasis role="bold">Simple ethernet configuration with static IP:</emphasis>
Packit Service b23acc
TYPE=Ethernet
Packit Service b23acc
BOOTPROTO=none
Packit Service b23acc
IPADDR=10.1.0.25
Packit Service b23acc
PREFIX=24
Packit Service b23acc
GATEWAY=10.1.0.1
Packit Service b23acc
DEFROUTE=yes
Packit Service b23acc
IPV4_FAILURE_FATAL=no
Packit Service b23acc
IPV6INIT=yes
Packit Service b23acc
IPV6_AUTOCONF=yes
Packit Service b23acc
IPV6_DEFROUTE=yes
Packit Service b23acc
IPV6_PEERDNS=yes
Packit Service b23acc
IPV6_PEERROUTES=yes
Packit Service b23acc
IPV6_FAILURE_FATAL=no
Packit Service b23acc
NAME=ethernet-em2
Packit Service b23acc
UUID=51bb3904-c0fc-4dfe-83b2-0a71e7928c13
Packit Service b23acc
DEVICE=em2
Packit Service b23acc
ONBOOT=yes
Packit Service b23acc
            </programlisting>
Packit Service b23acc
          </para>
Packit Service b23acc
          <para>
Packit Service b23acc
            <programlisting>
Packit Service b23acc
            <emphasis role="bold">WPA2 Enterprise WLAN (TTLS with inner MSCHAPV2 authentication):</emphasis>
Packit Service b23acc
ESSID="CompanyWLAN"
Packit Service b23acc
MODE=Managed
Packit Service b23acc
KEY_MGMT=WPA-EAP
Packit Service b23acc
TYPE=Wireless
Packit Service b23acc
IEEE_8021X_EAP_METHODS=TTLS
Packit Service b23acc
IEEE_8021X_IDENTITY=joe
Packit Service b23acc
IEEE_8021X_PASSWORD_FLAGS=ask
Packit Service b23acc
IEEE_8021X_INNER_AUTH_METHODS=MSCHAPV2
Packit Service b23acc
IEEE_8021X_CA_CERT=/home/joe/.cert/company.crt
Packit Service b23acc
BOOTPROTO=dhcp
Packit Service b23acc
DEFROUTE=yes
Packit Service b23acc
PEERDNS=yes
Packit Service b23acc
PEERROUTES=yes
Packit Service b23acc
IPV4_FAILURE_FATAL=no
Packit Service b23acc
IPV6INIT=no
Packit Service b23acc
NAME=MyCompany
Packit Service b23acc
UUID=f79848ff-11a6-4810-9e1a-99039dea84c4
Packit Service b23acc
ONBOOT=yes
Packit Service b23acc
            </programlisting>
Packit Service b23acc
          </para>
Packit Service b23acc
          <para>
Packit Service b23acc
            <programlisting>
Packit Service b23acc
            <emphasis role="bold">Bridge and bridge port configuration:</emphasis>
Packit Service b23acc
ifcfg-bridge:                                ifcfg-bridge-port:
Packit Service b23acc
NAME=bridge                                  NAME=bridge007-port-eth0
Packit Service b23acc
UUID=4be99ce0-c5b2-4764-8b77-ec226e440125    UUID=3ad56c4a-47e1-419b-b0d4-8ad86eb967a3
Packit Service b23acc
DEVICE=bridge007                             DEVICE=eth0
Packit Service b23acc
STP=yes                                      ONBOOT=yes
Packit Service b23acc
TYPE=Bridge                                  TYPE=Ethernet
Packit Service b23acc
BRIDGING_OPTS=priority=32768                 BRIDGE=bridge007
Packit Service b23acc
ONBOOT=yes
Packit Service b23acc
BOOTPROTO=dhcp
Packit Service b23acc
Packit Service b23acc
            </programlisting>
Packit Service b23acc
          </para>
Packit Service b23acc
          <para>
Packit Service b23acc
            <programlisting>
Packit Service b23acc
            <emphasis role="bold">Bonding configuration:</emphasis>
Packit Service b23acc
ifcfg-BOND:                                  ifcfg-BOND-slave:
Packit Service b23acc
NAME=BOND                                    NAME=BOND-slave
Packit Service b23acc
UUID=b41888aa-924c-450c-b0f8-85a4f0a51b4a    UUID=9bb048e4-286a-4cc3-b104-007dbd20decb
Packit Service b23acc
DEVICE=bond100                               DEVICE=eth0
Packit Service b23acc
BONDING_OPTS="mode=balance-rr miimon=100"    ONBOOT=yes
Packit Service b23acc
TYPE=Bond                                    TYPE=Ethernet
Packit Service b23acc
BONDING_MASTER=yes                           MASTER=bond100
Packit Service b23acc
ONBOOT=yes                                   SLAVE=yes
Packit Service b23acc
BOOTPROTO=dhcp
Packit Service b23acc
Packit Service b23acc
            </programlisting>
Packit Service b23acc
          </para>
Packit Service b23acc
          <para>
Packit Service b23acc
            <programlisting>
Packit Service b23acc
            <emphasis role="bold">Team and team port configuration:</emphasis>
Packit Service b23acc
ifcfg-my_team0:
Packit Service b23acc
DEVICE=team0
Packit Service b23acc
TEAM_CONFIG="{ \"device\": \"team0\", \"runner\": {\"name\": \"roundrobin\"}, \"ports\": {\"eth1\": {}, \"eth2\": {}} }"
Packit Service b23acc
DEVICETYPE=Team
Packit Service b23acc
BOOTPROTO=dhcp
Packit Service b23acc
NAME=team0-profile
Packit Service b23acc
UUID=1d3460a0-7b37-457f-a300-fe8d92da4807
Packit Service b23acc
ONBOOT=yes
Packit Service b23acc
Packit Service b23acc
ifcfg-my_team0_slave1:
Packit Service b23acc
NAME=team0-slave1
Packit Service b23acc
UUID=d5aed298-c567-4cc1-b808-6d38ecef9e64
Packit Service b23acc
DEVICE=eth1
Packit Service b23acc
ONBOOT=yes
Packit Service b23acc
TEAM_MASTER=team0
Packit Service b23acc
DEVICETYPE=TeamPort
Packit Service b23acc
Packit Service b23acc
ifcfg-my_team0_slave2:
Packit Service b23acc
NAME=team0-slave2
Packit Service b23acc
UUID=94e75f4e-e5ad-401c-8962-31e0ae5d2215
Packit Service b23acc
DEVICE=eth2
Packit Service b23acc
ONBOOT=yes
Packit Service b23acc
TEAM_MASTER=team0
Packit Service b23acc
DEVICETYPE=TeamPort
Packit Service b23acc
            </programlisting>
Packit Service b23acc
          </para>
Packit Service b23acc
          <para>
Packit Service b23acc
            The UUID values in the config files must be unique. You can use <emphasis>uuidgen</emphasis>
Packit Service b23acc
            command line tool to generate such values. Alternatively, you can leave out UUID
Packit Service b23acc
            entirely. In that case NetworkManager will generate a UUID based on the file name.
Packit Service b23acc
          </para>
Packit Service b23acc
        </formalpara>
Packit Service b23acc
      </refsect1>
Packit Service b23acc
Packit Service b23acc
      <refsect1 id='differences_against_initscripts'><title>Differences against initscripts</title>
Packit Service b23acc
        <para>
Packit Service b23acc
          The main differences of NetworkManager ifcfg-rh plugin and traditional
Packit Service b23acc
          initscripts are:
Packit Service b23acc
          <variablelist class="NM-initscripts-differences">
Packit Service b23acc
            <varlistentry>
Packit Service b23acc
              <term><emphasis role="bold">NM_CONTROLLED=yes|no</emphasis></term>
Packit Service b23acc
              <listitem><para>
Packit Service b23acc
                NM_CONTROLLED is NetworkManager-specific variable used by NetworkManager
Packit Service b23acc
                for determining whether the device of the <emphasis>ifcfg</emphasis> file
Packit Service b23acc
                should be managed. NM_CONTROLLED=yes is supposed if the variable is not
Packit Service b23acc
                present in the file.
Packit Service b23acc
                Note that if you have more <emphasis>ifcfg</emphasis> files for a single
Packit Service b23acc
                device, NM_CONTROLLED=no in one of the files will cause the device not
Packit Service b23acc
                to be managed. The profile may not even be the active one.
Packit Service b23acc
              </para></listitem>
Packit Service b23acc
            </varlistentry>
Packit Service b23acc
            <varlistentry>
Packit Service b23acc
              <term><emphasis role="bold">New variables</emphasis></term>
Packit Service b23acc
              <listitem><para>
Packit Service b23acc
                NetworkManager has introduced some new variable, not present in initscripts,
Packit Service b23acc
                to be able to store data for its new features. The variables are marked
Packit Service b23acc
                as extensions in the tables below.
Packit Service b23acc
              </para></listitem>
Packit Service b23acc
            </varlistentry>
Packit Service b23acc
            <varlistentry>
Packit Service b23acc
              <term><emphasis role="bold">Semantic change of variables</emphasis></term>
Packit Service b23acc
              <listitem><para>
Packit Service b23acc
                NetworkManager had to slightly change the semantic for a few variables.
Packit Service b23acc
                <itemizedlist>
Packit Service b23acc
                  <listitem>
Packit Service b23acc
                    <para><literal>PEERDNS</literal> -
Packit Service b23acc
                    initscripts interpret PEERDNS=no to mean "never touch resolv.conf".
Packit Service b23acc
                    NetworkManager interprets it to say "never add automatic (DHCP, PPP, VPN, etc.)
Packit Service b23acc
                    nameservers to resolv.conf".</para>
Packit Service b23acc
                  </listitem>
Packit Service b23acc
                  <listitem>
Packit Service b23acc
                    <para><literal>ONBOOT</literal> -
Packit Service b23acc
                    initscripts use ONBOOT=yes to mark the devices that are to be activated
Packit Service b23acc
                    during boot. NetworkManager extends this to also mean that this profile
Packit Service b23acc
                    can be used for auto-connecting at any time.</para>
Packit Service b23acc
                  </listitem>
Packit Service b23acc
                  <listitem>
Packit Service b23acc
                    <para><literal>BOOTPROTO</literal> -
Packit Service b23acc
                    NetworkManager supports traditional values <emphasis>none</emphasis> (static),
Packit Service b23acc
                    <emphasis>dhcp</emphasis>. But it also allows additional values to
Packit Service b23acc
                    enable new addressing methods. They are <emphasis>autoip</emphasis> for IPv4
Packit Service b23acc
                    link-local addressing using Avahi daemon and <emphasis>shared</emphasis> for
Packit Service b23acc
                    connection sharing. When <emphasis>shared</emphasis> is used, NetworkManager
Packit Service b23acc
                    assigns the interface 10.42.0.1, or it uses the first static address,
Packit Service b23acc
                    if configured.</para>
Packit Service b23acc
                 </listitem>
Packit Service b23acc
                  <listitem>
Packit Service b23acc
                    <para><literal>HWADDR</literal> -
Packit Service b23acc
                    initscripts compare the currently set hardware address of a device, while
Packit Service b23acc
                    NetworkManager considers the permanent one.</para>
Packit Service b23acc
                  </listitem>
Packit Service b23acc
                </itemizedlist>
Packit Service b23acc
              </para></listitem>
Packit Service b23acc
            </varlistentry>
Packit Service b23acc
          </variablelist>
Packit Service b23acc
        </para>
Packit Service b23acc
        <para>
Packit Service b23acc
          See the next section for detailed mapping of NetworkManager properties and
Packit Service b23acc
          <emphasis>ifcfg-rh</emphasis> variables. Variable names, format and usage
Packit Service b23acc
          differences in NetworkManager and initscripts are documented in the tables below.
Packit Service b23acc
        </para>
Packit Service b23acc
      </refsect1>
Packit Service b23acc
Packit Service b23acc
      <refsect1 id='details'><title>Details</title>
Packit Service b23acc
        <para>
Packit Service b23acc
          <emphasis>ifcfg-rh</emphasis> plugin variables marked with <emphasis>(+)</emphasis>
Packit Service b23acc
          are NetworkManager specific extensions not understood by traditional initscripts.
Packit Service b23acc
        </para>
Packit Service b23acc
        <xsl:apply-templates />
Packit Service b23acc
        <refsect2 id="secrets-flags">
Packit Service b23acc
          <title>Secret flags</title>
Packit Service b23acc
          <para>
Packit Service b23acc
            Each secret property in a NetworkManager setting has an associated
Packit Service b23acc
            <emphasis>flags</emphasis> property that describes how to handle that secret.
Packit Service b23acc
            In the <emphasis>fcfg-rh</emphasis> plugin variables for secret flags have a
Packit Service b23acc
            <emphasis>_FLAGS</emphasis> suffix. The variables contain one or more of the
Packit Service b23acc
            following values (space separated). Missing (or empty) *_FLAGS variable means
Packit Service b23acc
            that the password is owned by NetworkManager.
Packit Service b23acc
          </para>
Packit Service b23acc
          <itemizedlist>
Packit Service b23acc
            <listitem>
Packit Service b23acc
              <para><literal>user</literal> - a user-session secret agent is responsible for providing
Packit Service b23acc
              and storing this secret; when it is required, agents will be asked to provide it.</para>
Packit Service b23acc
            </listitem>
Packit Service b23acc
            <listitem>
Packit Service b23acc
              <para><literal>ask</literal> - the associated password is not saved but it will be
Packit Service b23acc
              requested from the user each time it is required.</para>
Packit Service b23acc
            </listitem>
Packit Service b23acc
            <listitem>
Packit Service b23acc
              <para><literal>unused</literal> - in some situations it cannot be automatically determined
Packit Service b23acc
              that a secret is required or not. This flag hints that the secret is not required and should
Packit Service b23acc
              not be requested from the user.</para>
Packit Service b23acc
            </listitem>
Packit Service b23acc
          </itemizedlist>
Packit Service b23acc
        </refsect2>
Packit Service b23acc
      </refsect1>
Packit Service b23acc
Packit Service b23acc
      <refsect1 id='files'><title>Files</title>
Packit Service b23acc
        <para><filename>/etc/sysconfig/network-scripts/ifcfg-*</filename></para>
Packit Service b23acc
        <para><filename>/etc/sysconfig/network-scripts/keys-*</filename></para>
Packit Service b23acc
        <para><filename>/etc/sysconfig/network-scripts/route-*</filename></para>
Packit Service b23acc
        <para><filename>/etc/sysconfig/network-scripts/route6-*</filename></para>
Packit Service b23acc
        <para><filename>/usr/share/doc/initscripts/sysconfig.txt</filename></para>
Packit Service b23acc
      </refsect1>
Packit Service b23acc
      <refsect1 id='see_also'><title>See Also</title>
Packit Service b23acc
        <para><link linkend='nm-settings'><citerefentry><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum></citerefentry></link>,
Packit Service b23acc
        <link linkend='nm-settings-keyfile'><citerefentry><refentrytitle>nm-settings-keyfile</refentrytitle><manvolnum>5</manvolnum></citerefentry></link>,
Packit Service b23acc
        <link linkend='NetworkManager'><citerefentry><refentrytitle>NetworkManager</refentrytitle><manvolnum>8</manvolnum></citerefentry></link>,
Packit Service b23acc
        <link linkend='NetworkManager.conf'><citerefentry><refentrytitle>NetworkManager.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></link>,
Packit Service b23acc
        <link linkend='nmcli'><citerefentry><refentrytitle>nmcli</refentrytitle><manvolnum>1</manvolnum></citerefentry></link>,
Packit Service b23acc
        <link linkend='nmcli-examples'><citerefentry><refentrytitle>nmcli-examples</refentrytitle><manvolnum>7</manvolnum></citerefentry></link></para>
Packit Service b23acc
      </refsect1>
Packit Service b23acc
    </refentry>
Packit Service b23acc
  </xsl:template>
Packit Service b23acc
Packit Service b23acc
  <xsl:template match="setting">
Packit Service b23acc
    <xsl:variable name="setting_name" select="../@name"/>
Packit Service b23acc
    <xsl:variable name="unsupported" select="'802-11-olpc-mesh, adsl, bluetooth, cdma, dummy, generic, gsm, ip-tunnel, macsec, macvlan, ppp, pppoe, serial, tun, vpn, vxlan, wimax'"/>
Packit Service b23acc
      <xsl:if test="not (contains(concat(' ', $unsupported, ','), concat(' ', @name, ',')))">
Packit Service b23acc
        
Packit Service b23acc
          <title><xsl:value-of select="@name"/> setting</title>
Packit Service b23acc
          <tgroup cols="4">
Packit Service b23acc
            
Packit Service b23acc
              <row>
Packit Service b23acc
                <entry>Property</entry>
Packit Service b23acc
                <entry>Ifcfg-rh Variable</entry>
Packit Service b23acc
                <entry>Default</entry>
Packit Service b23acc
                <entry>Description</entry>
Packit Service b23acc
              </row>
Packit Service b23acc
            
Packit Service b23acc
            
Packit Service b23acc
              <xsl:apply-templates/>
Packit Service b23acc
            
Packit Service b23acc
          </tgroup>
Packit Service b23acc
        
Packit Service b23acc
      </xsl:if>
Packit Service b23acc
Packit Service b23acc
      <xsl:if test="@name = 'dcb'">
Packit Service b23acc
        <para>
Packit Service b23acc
          All DCB related configuration is a NetworkManager extension. DCB=yes must be
Packit Service b23acc
          used explicitly to enable DCB so that the rest of the DCB_* variables can apply.
Packit Service b23acc
        </para>
Packit Service b23acc
      </xsl:if>
Packit Service b23acc
Packit Service b23acc
      <xsl:if test="position() = last()">
Packit Service b23acc
        <para>The following settings are not supported by <emphasis>ifcfg-rh</emphasis> plugin:</para>
Packit Service b23acc
        <para><xsl:value-of select="$unsupported"/></para>
Packit Service b23acc
      </xsl:if>
Packit Service b23acc
  </xsl:template>
Packit Service b23acc
Packit Service b23acc
  <xsl:template match="property">
Packit Service b23acc
    <xsl:variable name="setting_name" select="../@name"/>
Packit Service b23acc
Packit Service b23acc
Packit Service b23acc
    <row>
Packit Service b23acc
      <entry align="left"><xsl:value-of select="@name"/></entry>
Packit Service b23acc
      <entry align="left">
Packit Service b23acc
        <xsl:call-template name="string-emphasize-all">
Packit Service b23acc
          <xsl:with-param name="text" select="@variable"/>
Packit Service b23acc
          <xsl:with-param name="emphasize" select="'(+)'"/>
Packit Service b23acc
        </xsl:call-template>
Packit Service b23acc
      </entry>
Packit Service b23acc
      <entry align="left"><xsl:value-of select="@default"/></entry>
Packit Service b23acc
      <entry align="left">
Packit Service b23acc
        <xsl:value-of select="@description"/><xsl:if test="@format = 'NMSettingSecretFlags'"> (see <xref linkend="secrets-flags"/> for _FLAGS values)</xsl:if>
Packit Service b23acc
Packit Service b23acc
        <xsl:if test="string-length(@example)">
Packit Service b23acc
        <emphasis role="bold">
Packit Service b23acc
Packit Service b23acc
Example: </emphasis><xsl:value-of select="@example"/>
Packit Service b23acc
        </xsl:if>
Packit Service b23acc
        <xsl:if test="string-length(@values)">
Packit Service b23acc
        <emphasis role="bold">
Packit Service b23acc
Packit Service b23acc
Allowed values: </emphasis><xsl:value-of select="@values"/>
Packit Service b23acc
        </xsl:if>
Packit Service b23acc
      </entry>
Packit Service b23acc
    </row>
Packit Service b23acc
  </xsl:template>
Packit Service b23acc
Packit Service b23acc
  <xsl:template name="string-emphasize-all">
Packit Service b23acc
    <xsl:param name="text"/>
Packit Service b23acc
    <xsl:param name="emphasize"/>
Packit Service b23acc
    <xsl:choose>
Packit Service b23acc
      <xsl:when test="contains($text, $emphasize)">
Packit Service b23acc
        <xsl:value-of select="substring-before($text,$emphasize)"/>
Packit Service b23acc
        <emphasis><xsl:value-of select="$emphasize"/></emphasis>
Packit Service b23acc
        <xsl:call-template name="string-emphasize-all">
Packit Service b23acc
          <xsl:with-param name="text" select="substring-after($text,$emphasize)"/>
Packit Service b23acc
          <xsl:with-param name="emphasize" select="$emphasize"/>
Packit Service b23acc
        </xsl:call-template>
Packit Service b23acc
      </xsl:when>
Packit Service b23acc
      <xsl:otherwise>
Packit Service b23acc
        <xsl:value-of select="$text"/>
Packit Service b23acc
      </xsl:otherwise>
Packit Service b23acc
    </xsl:choose>
Packit Service b23acc
  </xsl:template>
Packit Service b23acc
Packit Service b23acc
</xsl:stylesheet>