diff --git a/configure.ac b/configure.ac index d6ffd106c4..6bc94b948f 100644 --- a/configure.ac +++ b/configure.ac @@ -773,6 +773,8 @@ install_pregen_manpages=no if test "$enable_gtk_doc" != "yes" \ -a -f man/NetworkManager.conf.5 \ -a -f man/nm-settings.5 \ + -a -f man/nm-settings-keyfile.5 \ + -a -f man/nm-settings-ifcfg-rh.5 \ -a -f man/nmcli-examples.5 \ -a -f man/NetworkManager.8; then install_pregen_manpages=yes @@ -783,14 +785,35 @@ AM_CONDITIONAL(INSTALL_PREGEN_MANPAGES, test "x${install_pregen_manpages}" = "xy if test -n "$INTROSPECTION_MAKEFILE" -a "$enable_gtk_doc" = "yes"; then # If g-i is installed we know we have python, but we might not have pygobject if python -c 'from gi.repository import GObject' >& /dev/null; then - AC_DEFINE(BUILD_SETTING_DOCS, [1], [Define if you we can build nm-setting-docs.xml]) - build_setting_docs=yes + have_pyobject=yes + fi + + # gtk-doc depends on perl, but we can check for it anyway + AC_PATH_PROG(PERL, perl, no) + # check for needed perl modules (use YAML; YAML::XS is better, but may not be so widespread) + required_perl_modules="YAML" + for module in $required_perl_modules; do + AC_MSG_CHECKING([checking for perl module '$module']) + if ${PERL} -e 'use '$module 2>/dev/null ; then + AC_MSG_RESULT([Ok]) + have_perl_modules=yes + else + AC_MSG_RESULT([Failed]) + AC_MSG_ERROR([You must have Perl modules to build settings plugin docs: $required_perl_modules.]) + fi + done + + if test "$have_pyobject" = "yes" -a "$have_perl_modules" = "yes"; then + AC_DEFINE(BUILD_SETTING_DOCS, [1], [Define if you we can build nm-setting-docs.xml, nm-keyfile-docs.xml and nm-ifcfg-rh-docs.xml]) + build_setting_docs=yes fi fi # check for pre-built setting docs if test "$build_setting_docs" != "yes" \ -a -f man/nm-settings.xml \ + -a -f man/nm-settings-keyfile.xml \ + -a -f man/nm-settings-ifcfg-rh.xml \ -a -f docs/api/settings-spec.xml \ -a -f cli/src/settings-docs.c; then AC_DEFINE(HAVE_SETTING_DOCS, [1], [Define if you have pre-built settings docs]) diff --git a/libnm-util/Makefile.am b/libnm-util/Makefile.am index 873e8547dc..af43b29def 100644 --- a/libnm-util/Makefile.am +++ b/libnm-util/Makefile.am @@ -188,7 +188,7 @@ endif if BUILD_SETTING_DOCS -noinst_DATA = nm-setting-docs.xml +noinst_DATA = nm-setting-docs.xml nm-keyfile-docs.xml nm-ifcfg-rh-docs.xml nm-setting-docs.xml: generate-setting-docs.py NetworkManager-1.0.gir NetworkManager-1.0.typelib libnm-util.la export GI_TYPELIB_PATH=$(abs_builddir)$${GI_TYPELIB_PATH:+:$$GI_TYPELIB_PATH}; \ @@ -197,11 +197,16 @@ nm-setting-docs.xml: generate-setting-docs.py NetworkManager-1.0.gir NetworkMana --gir $(builddir)/NetworkManager-1.0.gir \ --output $@ +nm-keyfile-docs.xml: generate-plugin-docs.pl $(libnm_util_la_csources) + $(srcdir)/generate-plugin-docs.pl keyfile $@ +nm-ifcfg-rh-docs.xml: generate-plugin-docs.pl $(libnm_util_la_csources) + $(srcdir)/generate-plugin-docs.pl ifcfg-rh $@ + endif -DISTCLEANFILES += nm-setting-docs.xml +DISTCLEANFILES += nm-setting-docs.xml nm-keyfile-docs.xml nm-ifcfg-rh-docs.xml -EXTRA_DIST += generate-setting-docs.py +EXTRA_DIST += generate-setting-docs.py generate-plugin-docs.pl if ENABLE_TESTS diff --git a/libnm-util/generate-plugin-docs.pl b/libnm-util/generate-plugin-docs.pl new file mode 100755 index 0000000000..a986fae058 --- /dev/null +++ b/libnm-util/generate-plugin-docs.pl @@ -0,0 +1,198 @@ +#!/usr/bin/env perl +# vim: ft=perl ts=2 sts=2 sw=2 et ai +# -*- Mode: perl; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# +# +# Copyright 2014 Red Hat, Inc. +# + +# +# The script parses nm-setting-*.c files and extracts documentation related +# to setting plugins. The documentation is in a simple format of lines +# "keyword: value". The documentation is enclosed between tags +# ------ and ---end--- +# Recognized keywords are: +# "property: " - property name +# "variable: " - name of the variable used by the plugin +# "format: " - format of the value in 'keyfile' plugin +# "default: " - default value when variable is not used +# "values: " - allowed values (e.g. for enumerations) +# "example: " - example(s) +# "description: " - description text +# Value is an arbitrary string that can span over multiple lines. +# +# ifcfg-rh specifics: +# - mark NM extension variables with (+), e.g. variable: UUID(+) +# + +use strict; +use warnings; +use v5.10; +#YAML:XS is based on libyaml C library and it is a good and fast YAML implementation. +#However it may not be present everywhere. So use YAML instead. +#use YAML::XS qw(Load); +use YAML qw(Load); + +# global variables +my @keywords = ("property", "variable", "format", "values", "default", "example", "description"); +my @source_files; +my @data; +my $fo; + +(scalar @ARGV == 2) or die "Usage: $0 \n"; +($ARGV[0] eq "keyfile" || $ARGV[0] eq "ifcfg-rh") or die "Allowed values: keyfile, ifcfg-rh\n"; +my ($plugin, $output) = @ARGV; +my $start_tag = "---$plugin---\\s*\$"; +my $end_tag = '---end---'; + +# get source files to scan for documentation comments (nm-setting-.c) +my $file = 'Makefile.am'; +open my $fh, '<', $file or die "Can't open $file: $!"; +while (my $line = <$fh>) { + chomp $line; + my @strings = $line =~ /(?:^|\s)(nm-setting-[^.]*\.c)(?:\s|$)/g; + push @source_files, @strings +} +close $fh; + +# open output file +open $fo, '>', $output or die "Can't open $output: $!"; + +# write XML header +write_header(); + +# write generated documenation for each setting +foreach my $c_file (@source_files) { + my $path = "$c_file"; + my $setting_name = get_setting_name($path); + write_item(""); + scan_doc_comments($path, $start_tag, $end_tag); + write_item(""); +} + +# write XML footer +write_footer(); + +# close output file +close $fo; + + +### --- subroutines --- ### + +# get setting name from NM_SETTING_*_SETTING_NAME constant in C header file +sub get_setting_name { + my $path = $_[0]; + $path =~ s/c$/h/; # use header file to find out setting name + open my $fh, '<', $path or die "Can't open $path: $!"; + while (my $line = <$fh>) { + if ($line =~ /NM_SETTING_.+SETTING_NAME\s+\"(\S+)\"/) { + return $1; + } + } +} + +# scan source setting file for documentation tags and write them to XML +sub scan_doc_comments { + my($setting_file, $start, $end) = @_; + open my $fi, '<', $setting_file or die "Can't open $setting_file: $!"; + while (<$fi>) { + if (/$start/ .. /$end/) { + next if /$start/; + if (/$end/) { + process_data(); + } else { + push @data, $_; + } + next; + } + # ignore text not inside marks + } + close $fi; +} + +# process plugin property documentation comments (as a YAML document) +sub process_data { + return if not @data; + my $kwd_pat = join("|", @keywords); + my $yaml_literal_seq = "|\n"; + + foreach (@data) { + # make a proper YAML document from @data + $_ =~ s/^\s*\**\s+|\s+$//; # remove leading spaces and *, and traling spaces + # Properly indent the text so that it is a valid YAML, and insert | (for literal text) + if ($_ =~ /^($kwd_pat):\s+/) { + # add | after "keyword:" that allows using literal text (YAML won't break on special character) + # http://learnxinyminutes.com/docs/yaml/ and http://www.yaml.org/spec/1.2/spec.html#id2795688 + $_ =~ s/(^($kwd_pat):)/$1 $yaml_literal_seq/; + } else { + $_ = " " . $_; # indent the text + } + } + my $str = join ("", @data); + my $yaml_data = Load($str); + + # now write ia line into the XML + my $name = $yaml_data->{property} // ""; + my $var = $yaml_data->{variable} // $name; # fallback to "property: " + my $format = $yaml_data->{format} // ""; + my $values = $yaml_data->{values} // ""; + my $def = $yaml_data->{default} // ""; + my $exam = $yaml_data->{example} // ""; + my $desc = $yaml_data->{description} // ""; + + escape_xml_chars($name, $var, $format, $values, $def, $exam, $desc); + my $foo = sprintf("", + $name, $var, $format, $values, $def, $exam, $desc); + write_item($foo); + @data = (); +} + +# - XML handling - +sub write_header { + (my $header = + qq{ + + + + }) =~ s/^ {7}//mg; + print {$fo} $header; +} + +sub write_footer { + my $footer = ""; + print {$fo} $footer; +} + +sub write_item { + my $str = join("", @_); + print {$fo} $str, "\n"; +} + +sub escape_xml_chars { + # http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined%5Fentities%5Fin%5FXML + foreach my $val (@_) { + $val =~ s/&/&/sg; + $val =~ s//>/sg; + $val =~ s/"/"/sg; + $val =~ s/'/'/sg; + } +} + diff --git a/libnm-util/nm-setting-8021x.c b/libnm-util/nm-setting-8021x.c index daa5d6b0c7..0f7f6bd56b 100644 --- a/libnm-util/nm-setting-8021x.c +++ b/libnm-util/nm-setting-8021x.c @@ -3143,6 +3143,15 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * properties of this setting; refer to wpa_supplicant documentation for the * allowed combinations. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: eap + * variable: IEEE_8021X_EAP_METHODS(+) + * values: "LEAP", "PWD", "TLS", "PEAP", "TTLS", "FAST" + * description: EAP method for 802.1X authentication. + * example: IEEE_8021X_EAP_METHODS=PEAP + * ---end--- + */ g_object_class_install_property (object_class, PROP_EAP, _nm_param_spec_specialized (NM_SETTING_802_1X_EAP, "", "", @@ -3156,6 +3165,14 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * Identity string for EAP authentication methods. Often the user's user or * login name. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: identity + * variable: IEEE_8021X_IDENTITY(+) + * description: Identity for EAP authentication methods. + * example: IEEE_8021X_IDENTITY=itsme + * ---end--- + */ g_object_class_install_property (object_class, PROP_IDENTITY, g_param_spec_string (NM_SETTING_802_1X_IDENTITY, "", "", @@ -3170,6 +3187,13 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * unencrypted identity with EAP types that support different tunneled * identity like EAP-TTLS. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: anonymous-identity + * variable: IEEE_8021X_ANON_IDENTITY(+) + * description: Anonymous identity for EAP authentication methods. + * ---end--- + */ g_object_class_install_property (object_class, PROP_ANONYMOUS_IDENTITY, g_param_spec_string (NM_SETTING_802_1X_ANONYMOUS_IDENTITY, "", "", @@ -3182,6 +3206,14 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * * UTF-8 encoded file path containing PAC for EAP-FAST. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: pac-file + * variable: IEEE_8021X_PAC_FILE(+) + * description: File with PAC (Protected Access Credential) for EAP-FAST. + * example: IEEE_8021X_PAC_FILE=/home/joe/my-fast.pac + * ---end--- + */ g_object_class_install_property (object_class, PROP_PAC_FILE, g_param_spec_string (NM_SETTING_802_1X_PAC_FILE, "", "", @@ -3207,6 +3239,14 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * Setting this property directly is discouraged; use the * nm_setting_802_1x_set_ca_cert() function instead. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: ca-cert + * variable: IEEE_8021X_CA_CERT(+) + * description: CA certificate for EAP. + * example: IEEE_8021X_CA_CERT=/home/joe/cacert.crt + * ---end--- + */ g_object_class_install_property (object_class, PROP_CA_CERT, _nm_param_spec_specialized (NM_SETTING_802_1X_CA_CERT, "", "", @@ -3221,6 +3261,13 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * certificates to be added to the verification chain in addition to the * certificate specified in the #NMSetting8021x:ca-cert property. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: ca-path + * variable: (none) + * description: The property is not handled by ifcfg-rh plugin. + * ---end--- + */ g_object_class_install_property (object_class, PROP_CA_PATH, g_param_spec_string (NM_SETTING_802_1X_CA_PATH, "", "", @@ -3235,6 +3282,14 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * by the authentication server. When unset, no verification of the * authentication server certificate's subject is performed. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: subject-match + * variable: IEEE_8021X_SUBJECT_MATCH(+) + * description: Substring to match subject of server certificate against. + * example: IEEE_8021X_SUBJECT_MATCH="Red Hat" + * ---end--- + */ g_object_class_install_property (object_class, PROP_SUBJECT_MATCH, g_param_spec_string (NM_SETTING_802_1X_SUBJECT_MATCH, "", "", @@ -3249,6 +3304,14 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * certificate presented by the authentication server. If the list is empty, * no verification of the server certificate's altSubjectName is performed. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: altubject-matches + * variable: IEEE_8021X_AlTSUBJECT_MATCHES(+) + * description: List of strings to be matched against the altSubjectName. + * example: IEEE_8021X_ALTSUBJECT_MATCHES="s1.domain.cc" + * ---end--- + */ g_object_class_install_property (object_class, PROP_ALTSUBJECT_MATCHES, _nm_param_spec_specialized (NM_SETTING_802_1X_ALTSUBJECT_MATCHES, "", "", @@ -3272,6 +3335,14 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * Setting this property directly is discouraged; use the * nm_setting_802_1x_set_client_cert() function instead. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: client-cert + * variable: IEEE_8021X_CLIENT_CERT(+) + * description: Client certificate for EAP. + * example: IEEE_8021X_CLIENT_CERT=/home/joe/mycert.crt + * ---end--- + */ g_object_class_install_property (object_class, PROP_CLIENT_CERT, _nm_param_spec_specialized (NM_SETTING_802_1X_CLIENT_CERT, "", "", @@ -3289,6 +3360,14 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * so, this property may be set to "0" or "1" to force that specific PEAP * version. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: phase1-peapver + * variable: IEEE_8021X_PEAP_VERSION(+) + * values: 0, 1 + * description: Use to force a specific PEAP version. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PHASE1_PEAPVER, g_param_spec_string (NM_SETTING_802_1X_PHASE1_PEAPVER, "", "", @@ -3304,6 +3383,15 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * PEAPv1. Set to "1" to force use of the new PEAP label. See the * wpa_supplicant documentation for more details. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: phase1-peaplabel + * variable: IEEE_8021X_PEAP_FORCE_NEW_LABEL(+) + * values: yes, no + * default: no + * description: Use to force the new PEAP label during key derivation. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PHASE1_PEAPLABEL, g_param_spec_string (NM_SETTING_802_1X_PHASE1_PEAPLABEL, "", "", @@ -3321,6 +3409,15 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * both authenticated and unauthenticated provisioning). See the * wpa_supplicant documentation for more details. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: phase1-fast-provisioning + * variable: IEEE_8021X_FAST_PROVISIONING(+) + * values: space-separated list of these values [allow-auth, allow-unauth] + * description: Enable in-line provisioning of EAP-FAST credentials. + * example: IEEE_8021X_FAST_PROVISIONING="allow-auth allow-unauth" + * ---end--- + */ g_object_class_install_property (object_class, PROP_PHASE1_FAST_PROVISIONING, g_param_spec_string (NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING, "", "", @@ -3338,6 +3435,16 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * Each "phase 2" inner method requires specific parameters for successful * authentication; see the wpa_supplicant documentation for more details. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: phase2-auth + * variable: IEEE_8021X_INNER_AUTH_METHODS(+) + * values: "PAP", "CHAP", "MSCHAP", "MSCHAPV2", "GTC", "OTP", "MD5" and "TLS" + * description: Inner non-EAP authentication methods. IEEE_8021X_INNER_AUTH_METHODS + * can contain values both for 'phase2-auth' and 'phase2-autheap' properties. + * example: IEEE_8021X_INNER_AUTH_METHODS=PAP + * ---end--- + */ g_object_class_install_property (object_class, PROP_PHASE2_AUTH, g_param_spec_string (NM_SETTING_802_1X_PHASE2_AUTH, "", "", @@ -3355,6 +3462,16 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * requires specific parameters for successful authentication; see the * wpa_supplicant documentation for more details. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: phase2-autheap + * variable: IEEE_8021X_INNER_AUTH_METHODS(+) + * values: "EAP-MD5", "EAP-MSCHAPV2", "EAP-GTC", "EAP-OTP" and "EAP-TLS" + * description: Inner EAP-based authentication methods. Note that + * IEEE_8021X_INNER_AUTH_METHODS is also used for 'phase2-auth' values. + * example: IEEE_8021X_INNER_AUTH_METHODS="MSCHAPV2 EAP-TLS" + * ---end--- + */ g_object_class_install_property (object_class, PROP_PHASE2_AUTHEAP, g_param_spec_string (NM_SETTING_802_1X_PHASE2_AUTHEAP, "", "", @@ -3410,6 +3527,14 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * authentication. When unset, no verification of the authentication server * certificate's subject is performed. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: phase2-subject-match + * variable: IEEE_8021X_PHASE2_SUBJECT_MATCH(+) + * description: Substring to match subject of server certificate against. + * example: IEEE_8021X_PHASE2_SUBJECT_MATCH="Red Hat" + * ---end--- + */ g_object_class_install_property (object_class, PROP_PHASE2_SUBJECT_MATCH, g_param_spec_string (NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH, "", "", @@ -3425,6 +3550,12 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * "phase 2" authentication. If the list is empty, no verification of the * server certificate's altSubjectName is performed. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: phase2-altsubject-matches + * variable: IEEE_8021X_PHASE2_ALTSUBJECT_MATCHES(+) + * ---end--- + */ g_object_class_install_property (object_class, PROP_PHASE2_ALTSUBJECT_MATCHES, _nm_param_spec_specialized (NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES, "", "", @@ -3451,6 +3582,14 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * Setting this property directly is discouraged; use the * nm_setting_802_1x_set_phase2_client_cert() function instead. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: phase2-client-cert + * variable: IEEE_8021X_INNER_CLIENT_CERT(+) + * description: Client certificate for inner EAP method. + * example: IEEE_8021X_INNER_CLIENT_CERT=/home/joe/mycert.crt + * ---end--- + */ g_object_class_install_property (object_class, PROP_PHASE2_CLIENT_CERT, _nm_param_spec_specialized (NM_SETTING_802_1X_PHASE2_CLIENT_CERT, "", "", @@ -3465,6 +3604,14 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * #NMSetting8021x:password property and the #NMSetting8021x:password-raw * property are specified, #NMSetting8021x:password is preferred. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: password + * variable: IEEE_8021X_PASSWORD(+) + * description: UTF-8 encoded password used for EAP. It can also go to "key-" + * lookaside file, or it can be owned by a secret agent. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PASSWORD, g_param_spec_string (NM_SETTING_802_1X_PASSWORD, "", "", @@ -3478,6 +3625,13 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * * Flags indicating how to handle the #NMSetting8021x:password property. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: password-flags + * variable: IEEE_8021X_PASSWORD_FLAGS(+) + * description: Password flags for IEEE_8021X_PASSWORD password. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PASSWORD_FLAGS, g_param_spec_uint (NM_SETTING_802_1X_PASSWORD_FLAGS, "", "", @@ -3495,6 +3649,13 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * #NMSetting8021x:password property and the #NMSetting8021x:password-raw * property are specified, #NMSetting8021x:password is preferred. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: password-raw + * variable: (none) + * description: The property is not handled by ifcfg-rh plugin. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PASSWORD_RAW, _nm_param_spec_specialized (NM_SETTING_802_1X_PASSWORD_RAW, "", "", @@ -3508,6 +3669,13 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * * Flags indicating how to handle the #NMSetting8021x:password-raw property. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: password-raw-flags + * variable: (none) + * description: The property is not handled by ifcfg-rh plugin. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PASSWORD_RAW_FLAGS, g_param_spec_uint (NM_SETTING_802_1X_PASSWORD_RAW_FLAGS, "", "", @@ -3547,6 +3715,14 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * private key password to prevent unauthorized access to unencrypted * private key data. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: private-key + * variable: IEEE_8021X_PRIVATE_KEY(+) + * description: Private key for EAP-TLS. + * example: IEEE_8021X_PRIVATE_KEY=/home/joe/mykey.p12 + * ---end--- + */ g_object_class_install_property (object_class, PROP_PRIVATE_KEY, _nm_param_spec_specialized (NM_SETTING_802_1X_PRIVATE_KEY, "", "", @@ -3564,6 +3740,14 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * secrets to NetworkManager; it is generally set automatically when setting * the private key by the nm_setting_802_1x_set_private_key() function. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: private-key-password + * variable: IEEE_8021X_PRIVATE_KEY_PASSWORD(+) + * description: Password for IEEE_8021X_PRIVATE_KEY. It can also go to "key-" + * lookaside file, or it can be owned by a secret agent. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PRIVATE_KEY_PASSWORD, g_param_spec_string (NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD, "", "", @@ -3578,6 +3762,13 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * Flags indicating how to handle the #NMSetting8021x:private-key-password * property. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: private-key-password-flags + * variable: IEEE_8021X_PRIVATE_KEY_PASSWORD_FLAGS(+) + * description: Password flags for IEEE_8021X_PRIVATE_KEY_PASSWORD password. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PRIVATE_KEY_PASSWORD_FLAGS, g_param_spec_uint (NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS, "", "", @@ -3612,6 +3803,13 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * Setting this property directly is discouraged; use the * nm_setting_802_1x_set_phase2_private_key() function instead. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: phase2-private-key + * variable: IEEE_8021X_INNER_PRIVATE_KEY(+) + * description: Private key for inner authentication method for EAP-TLS. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PHASE2_PRIVATE_KEY, _nm_param_spec_specialized (NM_SETTING_802_1X_PHASE2_PRIVATE_KEY, "", "", @@ -3629,6 +3827,14 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * NetworkManager; it is generally set automatically when setting the * private key by the nm_setting_802_1x_set_phase2_private_key() function. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: phase2-private-key-password + * variable: IEEE_8021X_INNER_PRIVATE_KEY_PASSWORD(+) + * description: Password for IEEE_8021X_INNER_PRIVATE_KEY. It can also go to "key-" + * lookaside file, or it can be owned by a secret agent. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PHASE2_PRIVATE_KEY_PASSWORD, g_param_spec_string (NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD, "", "", @@ -3643,6 +3849,13 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * Flags indicating how to handle the * #NMSetting8021x:phase2-private-key-password property. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: phase2-private-key-password-flags + * variable: IEEE_8021X_INNER_PRIVATE_KEY_PASSWORD_FLAGS(+) + * description: Password flags for IEEE_8021X_INNER_PRIVATE_KEY_PASSWORD password. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS, g_param_spec_uint (NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS, "", "", @@ -3657,6 +3870,13 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * * PIN used for EAP authentication methods. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: pin + * variable: (none) + * description: The property is not handled by ifcfg-rh plugin. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PIN, g_param_spec_string (NM_SETTING_802_1X_PIN, "", "", @@ -3670,6 +3890,13 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * * Flags indicating how to handle the #NMSetting8021x:pin property. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: pin-flags + * variable: (none) + * description: The property is not handled by ifcfg-rh plugin. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PIN_FLAGS, g_param_spec_uint (NM_SETTING_802_1X_PIN_FLAGS, "", "", @@ -3689,6 +3916,13 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class) * addition to any certificates specified by the #NMSetting8021x:ca-cert and * #NMSetting8021x:phase2-ca-cert properties. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: system-ca-certs + * variable: (none) + * description: The property is not handled by ifcfg-rh plugin. + * ---end--- + */ g_object_class_install_property (object_class, PROP_SYSTEM_CA_CERTS, g_param_spec_boolean (NM_SETTING_802_1X_SYSTEM_CA_CERTS, "", "", diff --git a/libnm-util/nm-setting-bond.c b/libnm-util/nm-setting-bond.c index 10766f564d..f321d0af2f 100644 --- a/libnm-util/nm-setting-bond.c +++ b/libnm-util/nm-setting-bond.c @@ -779,6 +779,13 @@ nm_setting_bond_class_init (NMSettingBondClass *setting_class) * * The name of the virtual in-kernel bonding network interface **/ + /* plugins docs + * ---ifcfg-rh--- + * property: interface-name + * variable: DEVICE + * description: Bonding interface name. + * ---end--- + */ g_object_class_install_property (object_class, PROP_INTERFACE_NAME, g_param_spec_string (NM_SETTING_BOND_INTERFACE_NAME, "", "", @@ -794,6 +801,14 @@ nm_setting_bond_class_init (NMSettingBondClass *setting_class) * must be strings. Option names must contain only alphanumeric characters * (ie, [a-zA-Z0-9]). **/ + /* plugins docs + * ---ifcfg-rh--- + * property: options + * variable: BONDING_OPTS + * description: Bonding options. + * example: BONDING_OPTS="miimon=100 mode=broadcast" + * ---end--- + */ g_object_class_install_property (object_class, PROP_OPTIONS, _nm_param_spec_specialized (NM_SETTING_BOND_OPTIONS, "", "", diff --git a/libnm-util/nm-setting-bridge-port.c b/libnm-util/nm-setting-bridge-port.c index 496de581ab..aaa172d4ae 100644 --- a/libnm-util/nm-setting-bridge-port.c +++ b/libnm-util/nm-setting-bridge-port.c @@ -260,6 +260,15 @@ nm_setting_bridge_port_class_init (NMSettingBridgePortClass *setting_class) * * Since: 0.9.8 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: priority + * variable: BRIDGING_OPTS: priority= + * values: 0 - 63 + * default: 32 + * description: STP priority. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PRIORITY, g_param_spec_uint (NM_SETTING_BRIDGE_PORT_PRIORITY, "", "", @@ -277,6 +286,15 @@ nm_setting_bridge_port_class_init (NMSettingBridgePortClass *setting_class) * * Since: 0.9.8 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: path-cost + * variable: BRIDGING_OPTS: path_cost= + * values: 1 - 65535 + * default: 100 + * description: STP cost. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PATH_COST, g_param_spec_uint (NM_SETTING_BRIDGE_PORT_PATH_COST, "", "", @@ -294,6 +312,14 @@ nm_setting_bridge_port_class_init (NMSettingBridgePortClass *setting_class) * * Since: 0.9.8 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: hairpin-mode + * variable: BRIDGING_OPTS: hairpin_mode= + * default: yes + * description: Hairpin mode of the bridge port. + * ---end--- + */ g_object_class_install_property (object_class, PROP_HAIRPIN_MODE, g_param_spec_boolean (NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE, "", "", diff --git a/libnm-util/nm-setting-bridge.c b/libnm-util/nm-setting-bridge.c index 789660036f..50f6cdbcb2 100644 --- a/libnm-util/nm-setting-bridge.c +++ b/libnm-util/nm-setting-bridge.c @@ -451,6 +451,13 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *setting_class) * * Since: 0.9.8 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: interface-name + * variable: DEVICE + * description: Bridge interface name. + * ---end--- + */ g_object_class_install_property (object_class, PROP_INTERFACE_NAME, g_param_spec_string (NM_SETTING_BRIDGE_INTERFACE_NAME, "", "", @@ -468,6 +475,23 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---keyfile--- + * property: mac-address + * format: ususal hex-digits-and-colons notation + * description: MAC address in traditional hex-digits-and-colons notation, + * or semicolon separated list of 6 decimal bytes (obsolete) + * example: mac-address=00:22:68:12:79:A2 + * mac-address=0;34;104;18;121;162; + * ---end--- + * ---ifcfg-rh--- + * property: mac-address + * variable: MACADDR(+) + * description: MAC address of the bridge. Note that this requires a recent + * kernel support, originally introduced in 3.15 upstream kernel) + * MACADDR for bridges is an NM extension. + * ---end--- + */ g_object_class_install_property (object_class, PROP_MAC_ADDRESS, _nm_param_spec_specialized (NM_SETTING_BRIDGE_MAC_ADDRESS, "", "", @@ -483,6 +507,14 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *setting_class) * * Since: 0.9.8 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: stp + * variable: STP + * default: no + * description: Span tree protocol participation. + * ---end--- + */ g_object_class_install_property (object_class, PROP_STP, g_param_spec_boolean (NM_SETTING_BRIDGE_STP, "", "", @@ -501,6 +533,15 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *setting_class) * * Since: 0.9.8 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: priority + * variable: BRIDGING_OPTS: priority= + * values: 0 - 32768 + * default: 32768 + * description: STP priority. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PRIORITY, g_param_spec_uint (NM_SETTING_BRIDGE_PRIORITY, "", "", @@ -517,6 +558,15 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *setting_class) * * Since: 0.9.8 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: forward-delay + * variable: DELAY + * values: 2 - 30 + * default: 15 + * description: STP forwarding delay. + * ---end--- + */ g_object_class_install_property (object_class, PROP_FORWARD_DELAY, g_param_spec_uint (NM_SETTING_BRIDGE_FORWARD_DELAY, "", "", @@ -533,6 +583,15 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *setting_class) * * Since: 0.9.8 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: hello-time + * variable: BRIDGING_OPTS: hello_time= + * values: 1 - 10 + * default: 2 + * description: STP hello time. + * ---end--- + */ g_object_class_install_property (object_class, PROP_HELLO_TIME, g_param_spec_uint (NM_SETTING_BRIDGE_HELLO_TIME, "", "", @@ -549,6 +608,15 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *setting_class) * * Since: 0.9.8 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: max-age + * variable: BRIDGING_OPTS: max_age= + * values: 6 - 40 + * default: 20 + * description: STP maximum message age. + * ---end--- + */ g_object_class_install_property (object_class, PROP_MAX_AGE, g_param_spec_uint (NM_SETTING_BRIDGE_MAX_AGE, "", "", @@ -565,6 +633,15 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *setting_class) * * Since: 0.9.8 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: ageing-time + * variable: BRIDGING_OPTS: ageing_time= + * values: 0 - 1000000 + * default: 300 + * description: Ethernet MAC ageing time. + * ---end--- + */ g_object_class_install_property (object_class, PROP_AGEING_TIME, g_param_spec_uint (NM_SETTING_BRIDGE_AGEING_TIME, "", "", diff --git a/libnm-util/nm-setting-connection.c b/libnm-util/nm-setting-connection.c index f206bbb032..f54b47ed5f 100644 --- a/libnm-util/nm-setting-connection.c +++ b/libnm-util/nm-setting-connection.c @@ -1102,6 +1102,13 @@ nm_setting_connection_class_init (NMSettingConnectionClass *setting_class) * A human readable unique identifier for the connection, like "Work Wi-Fi" * or "T-Mobile 3G". **/ + /* plugins docs + * ---ifcfg-rh--- + * property: id + * variable: NAME(+) + * description: User friendly name for the connection profile. + * ---end--- + */ g_object_class_install_property (object_class, PROP_ID, g_param_spec_string (NM_SETTING_CONNECTION_ID, "", "", @@ -1126,6 +1133,14 @@ nm_setting_connection_class_init (NMSettingConnectionClass *setting_class) * be generated by nm_utils_uuid_generate() or * nm_utils_uuid_generate_from_string(). **/ + /* plugins docs + * ---ifcfg-rh--- + * property: uuid + * variable: UUID(+) + * description: UUID for the connetcion profile. When missing NetworkManager + * creates the UUID itself (by hashing the file). + * ---end--- + */ g_object_class_install_property (object_class, PROP_UUID, g_param_spec_string (NM_SETTING_CONNECTION_UUID, "", "", @@ -1151,6 +1166,15 @@ nm_setting_connection_class_init (NMSettingConnectionClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: interface-name + * variable: DEVICE + * description: Interface name of the device this profile is bound to. The variable + * can be left out when the profile should apply for more devices. Note that DEVICE + * can be required for some connection types. + * ---end--- + */ g_object_class_install_property (object_class, PROP_INTERFACE_NAME, g_param_spec_string (NM_SETTING_CONNECTION_INTERFACE_NAME, "", "", @@ -1168,6 +1192,16 @@ nm_setting_connection_class_init (NMSettingConnectionClass *setting_class) * non-hardware dependent connections like VPN or otherwise, should contain * the setting name of that setting type (ie, "vpn" or "bridge", etc). **/ + /* plugins docs + * ---ifcfg-rh--- + * property: type + * variable: TYPE (DEVICETYPE, DEVICE) + * values: Ethernet, Wireless, InfiniBand, Bridge, Bond, Vlan, Team, TeamPort + * description: Base type of the connection. DEVICETYPE is used for teaming + * connections. + * example: TYPE=Ethernet; TYPE=Bond; TYPE=Bridge; DEVICETYPE=TeamPort + * ---end--- + */ g_object_class_install_property (object_class, PROP_TYPE, g_param_spec_string (NM_SETTING_CONNECTION_TYPE, "", "", @@ -1191,6 +1225,15 @@ nm_setting_connection_class_init (NMSettingConnectionClass *setting_class) * [reserved] information present must be ignored and is reserved for future * use. All of [type], [id], and [reserved] must be valid UTF-8. */ + /* plugins docs + * ---ifcfg-rh--- + * property: permissions + * variable: USERS(+) + * description: USERS restrict the access for this conenction to certain + * users only. + * example: USERS="joe bob" + * ---end--- + */ g_object_class_install_property (object_class, PROP_PERMISSIONS, _nm_param_spec_specialized (NM_SETTING_CONNECTION_PERMISSIONS, "", "", @@ -1206,6 +1249,14 @@ nm_setting_connection_class_init (NMSettingConnectionClass *setting_class) * %TRUE to automatically activate the connection, %FALSE to require manual * intervention to activate the connection. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: autoconnect + * variable: ONBOOT + * default: yes + * description: Whether the connection should be autoconnected (not only while booting). + * ---end--- + */ g_object_class_install_property (object_class, PROP_AUTOCONNECT, g_param_spec_boolean (NM_SETTING_CONNECTION_AUTOCONNECT, "", "", @@ -1259,6 +1310,15 @@ nm_setting_connection_class_init (NMSettingConnectionClass *setting_class) * the connection will be placed in the default zone as defined by the * firewall. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: zone + * variable: ZONE(+) + * description: Trust level of this connection. The string is usually used + * for a firewall. + * example: ZONE=Work + * ---end--- + */ g_object_class_install_property (object_class, PROP_ZONE, g_param_spec_string (NM_SETTING_CONNECTION_ZONE, "", "", @@ -1273,6 +1333,14 @@ nm_setting_connection_class_init (NMSettingConnectionClass *setting_class) * * Interface name of the master device or UUID of the master connection. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: master + * variable: MASTER, TEAM_MASTER, BRIDGE + * description: Reference to master connection. The variable used depends on + * the connection type. + * ---end--- + */ g_object_class_install_property (object_class, PROP_MASTER, g_param_spec_string (NM_SETTING_CONNECTION_MASTER, "", "", @@ -1289,6 +1357,15 @@ nm_setting_connection_class_init (NMSettingConnectionClass *setting_class) * %NM_SETTING_BOND_SETTING_NAME), or %NULL if this connection is not a * slave. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: slave-type + * variable: MASTER, TEAM_MASTER, DEVICETYPE, BRIDGE + * description: Slave type doesn't map directly to a variable, but it is + * recognized using different variables. MASTER for bonding, + * TEAM_MASTER and DEVICETYPE for teaming, BRIDGE for bridging. + * ---end--- + */ g_object_class_install_property (object_class, PROP_SLAVE_TYPE, g_param_spec_string (NM_SETTING_CONNECTION_SLAVE_TYPE, "", "", @@ -1307,6 +1384,14 @@ nm_setting_connection_class_init (NMSettingConnectionClass *setting_class) * * Since: 0.9.8 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: secondaries + * variable: SECONDARY_UUIDS(+) + * description: UUID of VPN connections that should be activated + * together with this connection. + * ---end--- + */ g_object_class_install_property (object_class, PROP_SECONDARIES, _nm_param_spec_specialized (NM_SETTING_CONNECTION_SECONDARIES, "", "", @@ -1323,6 +1408,16 @@ nm_setting_connection_class_init (NMSettingConnectionClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: gateway-ping-timeout + * variable: GATEWAY_PING_TIMEOUT(+) + * default: 0 + * description: If greater than zero, the IP connectivity will be checked by + * pinging the gateway and waiting for the specified timeout (in seconds). + * example: GATEWAY_PING_TIMEOUT=5 + * ---end--- + */ g_object_class_install_property (object_class, PROP_GATEWAY_PING_TIMEOUT, g_param_spec_uint (NM_SETTING_CONNECTION_GATEWAY_PING_TIMEOUT, "", "", diff --git a/libnm-util/nm-setting-dcb.c b/libnm-util/nm-setting-dcb.c index 4839f7fe75..6d2d7ee634 100644 --- a/libnm-util/nm-setting-dcb.c +++ b/libnm-util/nm-setting-dcb.c @@ -965,6 +965,15 @@ nm_setting_dcb_class_init (NMSettingDcbClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: app-fcoe-flags + * variable: DCB_APP_FCOE_ENABLE, DCB_APP_FCOE_ADVERTISE, DCB_APP_FCOE_WILLING + * description: FCOE flags. + * default: no + * example: DCB_APP_FCOE_ENABLE=yes DCB_APP_FCOE_ADVERTISE=yes + * ---end--- + */ g_object_class_install_property (object_class, PROP_APP_FCOE_FLAGS, g_param_spec_uint (NM_SETTING_DCB_APP_FCOE_FLAGS, "", "", @@ -981,6 +990,14 @@ nm_setting_dcb_class_init (NMSettingDcbClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: app-fcoe-priority + * variable: DCB_APP_FCOE_PRIORITY + * values: 0 - 7 + * description: Priority of FCoE frames. + * ---end--- + */ g_object_class_install_property (object_class, PROP_APP_FCOE_PRIORITY, g_param_spec_int (NM_SETTING_DCB_APP_FCOE_PRIORITY, "", "", @@ -997,6 +1014,15 @@ nm_setting_dcb_class_init (NMSettingDcbClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: app-fcoe-mode + * variable: DCB_APP_FCOE_MODE + * values: fabric, vn2vn + * default: fabric + * description: FCoE controller mode. + * ---end--- + */ g_object_class_install_property (object_class, PROP_APP_FCOE_MODE, g_param_spec_string (NM_SETTING_DCB_APP_FCOE_MODE, "", "", @@ -1014,6 +1040,14 @@ nm_setting_dcb_class_init (NMSettingDcbClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: app-iscsi-flags + * variable: DCB_APP_ISCSI_ENABLE, DCB_APP_ISCSI_ADVERTISE, DCB_APP_ISCSI_WILLING + * default: no + * description: iSCSI flags. + * ---end--- + */ g_object_class_install_property (object_class, PROP_APP_ISCSI_FLAGS, g_param_spec_uint (NM_SETTING_DCB_APP_ISCSI_FLAGS, "", "", @@ -1030,6 +1064,14 @@ nm_setting_dcb_class_init (NMSettingDcbClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: app-iscsi-priority + * variable: DCB_APP_ISCSI_PRIORITY + * values: 0 - 7 + * description: Priority of iSCSI frames. + * ---end--- + */ g_object_class_install_property (object_class, PROP_APP_ISCSI_PRIORITY, g_param_spec_int (NM_SETTING_DCB_APP_ISCSI_PRIORITY, "", "", @@ -1047,6 +1089,14 @@ nm_setting_dcb_class_init (NMSettingDcbClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: app-fip-flags + * variable: DCB_APP_FIP_ENABLE, DCB_APP_FIP_ADVERTISE, DCB_APP_FIP_WILLING + * default: no + * description: FIP flags. + * ---end--- + */ g_object_class_install_property (object_class, PROP_APP_FIP_FLAGS, g_param_spec_uint (NM_SETTING_DCB_APP_FIP_FLAGS, "", "", @@ -1063,6 +1113,14 @@ nm_setting_dcb_class_init (NMSettingDcbClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: app-fip-priority + * variable: DCB_APP_FIP_PRIORITY + * values: 0 - 7 + * description: Priority of FIP frames. + * ---end--- + */ g_object_class_install_property (object_class, PROP_APP_FIP_PRIORITY, g_param_spec_int (NM_SETTING_DCB_APP_FIP_PRIORITY, "", "", @@ -1080,6 +1138,14 @@ nm_setting_dcb_class_init (NMSettingDcbClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: priority-flow-control-flags + * variable: DCB_PFC_ENABLE, DCB_PFC_ADVERTISE, DCB_PFC_WILLING + * default: no + * description: Priority flow control flags. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PFC_FLAGS, g_param_spec_uint (NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS, "", "", @@ -1097,6 +1163,15 @@ nm_setting_dcb_class_init (NMSettingDcbClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: priority-flow-control + * variable: DCB_PFC_UP + * description: Priority flow control values. String of 8 "0" and "1", where "0". + * means "do not transmit priority pause", "1" means "transmit pause". + * example: DCB_PFC_UP=01101110 + * ---end--- + */ g_object_class_install_property (object_class, PROP_PFC, _nm_param_spec_specialized (NM_SETTING_DCB_PRIORITY_FLOW_CONTROL, "", "", @@ -1113,6 +1188,14 @@ nm_setting_dcb_class_init (NMSettingDcbClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: priority-group-flags + * variable: DCB_PG_ENABLE, DCB_PG_ADVERTISE, DCB_PG_WILLING + * default: no + * description: Priority groups flags. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PRIORITY_GROUP_FLAGS, g_param_spec_uint (NM_SETTING_DCB_PRIORITY_GROUP_FLAGS, "", "", @@ -1129,6 +1212,15 @@ nm_setting_dcb_class_init (NMSettingDcbClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: priority-group-id + * variable: DCB_PG_ID + * description: Priority groups values. String of eight priorities (0 - 7) or "f" + * (unrestricted). + * example: DCB_PG_ID=1205f173 + * ---end--- + */ g_object_class_install_property (object_class, PROP_PRIORITY_GROUP_ID, _nm_param_spec_specialized (NM_SETTING_DCB_PRIORITY_GROUP_ID, "", "", @@ -1146,6 +1238,14 @@ nm_setting_dcb_class_init (NMSettingDcbClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: priority-group-bandwidth + * variable: DCB_PG_PCT + * description: Priority groups values. Eight bandwidths (in percent), separated with commas. + * example: DCB_PG_PCT=10,5,10,15,10,10,10,30 + * ---end--- + */ g_object_class_install_property (object_class, PROP_PRIORITY_GROUP_BANDWIDTH, _nm_param_spec_specialized (NM_SETTING_DCB_PRIORITY_GROUP_BANDWIDTH, "", "", @@ -1164,6 +1264,15 @@ nm_setting_dcb_class_init (NMSettingDcbClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: priority-bandwidth + * variable: DCB_PG_UPPCT + * description: Priority values. Eight bandwidths (in percent), separated with commas. + * The sum of the numbers must be 100. + * example: DCB_PG_UPPCT=7,13,10,10,15,15,10,20 + * ---end--- + */ g_object_class_install_property (object_class, PROP_PRIORITY_BANDWIDTH, _nm_param_spec_specialized (NM_SETTING_DCB_PRIORITY_BANDWIDTH, "", "", @@ -1182,6 +1291,15 @@ nm_setting_dcb_class_init (NMSettingDcbClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: priority-strict-bandwidth + * variable: DCB_PG_STRICT + * description: Priority values. String of eight "0" or "1", where "0" means + * "may not utilize all bandwidth", "1" means "may utilize all bandwidth". + * example: DCB_PG_STRICT=01101110 + * ---end--- + */ g_object_class_install_property (object_class, PROP_PRIORITY_STRICT, _nm_param_spec_specialized (NM_SETTING_DCB_PRIORITY_STRICT_BANDWIDTH, "", "", @@ -1198,6 +1316,14 @@ nm_setting_dcb_class_init (NMSettingDcbClass *setting_class) * * Since: 0.9.10 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: priority-traffic-class + * variable: DCB_PG_UP2TC + * description: Priority values. String of eight trafic class values (0 - 7). + * example: DCB_PG_UP2TC=01623701 + * ---end--- + */ g_object_class_install_property (object_class, PROP_PRIORITY_TRAFFIC_CLASS, _nm_param_spec_specialized (NM_SETTING_DCB_PRIORITY_TRAFFIC_CLASS, "", "", diff --git a/libnm-util/nm-setting-infiniband.c b/libnm-util/nm-setting-infiniband.c index a9088d20cb..d51973adfa 100644 --- a/libnm-util/nm-setting-infiniband.c +++ b/libnm-util/nm-setting-infiniband.c @@ -398,6 +398,22 @@ nm_setting_infiniband_class_init (NMSettingInfinibandClass *setting_class) * permanent MAC address matches. This property does not change the MAC * address of the device (i.e. MAC spoofing). **/ + /* plugins docs + * ---keyfile--- + * property: mac-address + * format: ususal hex-digits-and-colons notation + * description: MAC address in traditional hex-digits-and-colons notation, or + * or semicolon separated list of 20 decimal bytes (obsolete) + * example: mac-address= 80:00:00:6d:fe:80:00:00:00:00:00:00:00:02:55:00:70:33:cf:01 + * ---end--- + * ---ifcfg-rh--- + * property: mac-address + * variable: HWADDR + * description: IBoIP 20-byte hardware address of the device (in traditional + * hex-digits-and-colons notation). + * example: HWADDR=01:02:03:04:05:06:07:08:09:0A:01:02:03:04:05:06:07:08:09:11 + * ---end--- + */ g_object_class_install_property (object_class, PROP_MAC_ADDRESS, _nm_param_spec_specialized (NM_SETTING_INFINIBAND_MAC_ADDRESS, "", "", @@ -412,6 +428,13 @@ nm_setting_infiniband_class_init (NMSettingInfinibandClass *setting_class) * If non-zero, only transmit packets of the specified size or smaller, * breaking larger packets up into multiple frames. **/ + /* = plugins docs = + * ---ifcfg-rh--- + * property: mtu + * variable: MTU + * description: MTU of the interface. + * ---end--- + */ g_object_class_install_property (object_class, PROP_MTU, g_param_spec_uint (NM_SETTING_INFINIBAND_MTU, "", "", @@ -427,6 +450,15 @@ nm_setting_infiniband_class_init (NMSettingInfinibandClass *setting_class) * The IP-over-InfiniBand transport mode. Either "datagram" or * "connected". **/ + /* = plugins docs = + * ---ifcfg-rh--- + * property: transport-mode + * variable: CONNECTED_MODE + * default: CONNECTED_MODE=no + * description: CONNECTED_MODE=yes for "connected" mode, CONNECTED_MODE=no for + * "datagram" mode + * ---end--- + */ g_object_class_install_property (object_class, PROP_TRANSPORT_MODE, g_param_spec_string (NM_SETTING_INFINIBAND_TRANSPORT_MODE, "", "", @@ -444,6 +476,17 @@ nm_setting_infiniband_class_init (NMSettingInfinibandClass *setting_class) * unsigned integer, whose high bit is set if it is a "full membership" * P_Key. **/ + /* = plugins docs = + * ---ifcfg-rh--- + * property: p-key + * variable: PKEY_ID (and PKEY=yes) + * default: PKEY=no + * description: InfiniBand P_Key. The value can be a hex number prefixed with "0x" + * or a decimal number. + * When PKEY_ID is specified, PHYSDEV and DEVICE also must be specified. + * example: PKEY=yes PKEY_ID=2 PHYSDEV=mlx4_ib0 DEVICE=mlx4_ib0.8002 + * ---end--- + */ g_object_class_install_property (object_class, PROP_P_KEY, g_param_spec_int (NM_SETTING_INFINIBAND_P_KEY, "", "", @@ -461,6 +504,15 @@ nm_setting_infiniband_class_init (NMSettingInfinibandClass *setting_class) * specify the base device by setting either this property or * #NMSettingInfiniband:mac-address. **/ + /* = plugins docs = + * ---ifcfg-rh--- + * property: parent + * variable: PHYSDEV (PKEY=yes) + * default: PKEY=no + * description: InfiniBand parent device. + * example: PHYSDEV=ib0 + * ---end--- + */ g_object_class_install_property (object_class, PROP_PARENT, g_param_spec_string (NM_SETTING_INFINIBAND_PARENT, "", "", diff --git a/libnm-util/nm-setting-ip4-config.c b/libnm-util/nm-setting-ip4-config.c index a067627f7a..f7f709ec54 100644 --- a/libnm-util/nm-setting-ip4-config.c +++ b/libnm-util/nm-setting-ip4-config.c @@ -1128,6 +1128,16 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *setting_class) * connection. "disabled" means IPv4 will not be used on this connection. * This property must be set. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: method + * variable: BOOTPROTO + * format: string + * values: none, dhcp (bootp), static, ibft, autoip, shared + * default: none + * description: Method used for IPv4 protocol configuration. + * ---end--- + */ g_object_class_install_property (object_class, PROP_METHOD, g_param_spec_string (NM_SETTING_IP4_CONFIG_METHOD, "", "", @@ -1146,6 +1156,22 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *setting_class) * all other methods, these DNS servers are used as the only DNS servers for * this connection. **/ + /* plugins docs + * ---keyfile--- + * property: dns + * format: list of DNS IP addresses + * description: List of DNS servers. + * example: dns=1.2.3.4;8.8.8.8;8.8.4.4; + * ---end--- + * ---ifcfg-rh--- + * property: dns + * variable: DNS1, DNS2, ... + * format: string + * description: List of DNS servers. Even if NetworkManager supports many DNS + * servers, initscripts and resolver only care about the first three, usually. + * example: DNS1=1.2.3.4 DNS2=10.0.0.254 DNS3=8.8.8.8 + * ---end--- + */ g_object_class_install_property (object_class, PROP_DNS, _nm_param_spec_specialized (NM_SETTING_IP4_CONFIG_DNS, "", "", @@ -1162,6 +1188,14 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *setting_class) * there is no upstream network. In all other methods, these search domains * are used as the only search domains for this connection. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: dns-search + * variable: DOMAIN + * format: string (space-separated domains) + * description: List of DNS search domains. + * ---end--- + */ g_object_class_install_property (object_class, PROP_DNS_SEARCH, _nm_param_spec_specialized (NM_SETTING_IP4_CONFIG_DNS_SEARCH, "", "", @@ -1181,6 +1215,22 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *setting_class) * with the "shared", "link-local", or "disabled" methods as addressing is * either automatic or disabled with these methods. **/ + /* plugins docs + * ---keyfile--- + * property: addresses + * variable: address1, address2, ... + * format: address/plen[,gateway] + * description: List of static IP addresses. + * example: address1=192.168.100.100/24,192.168.100.1 + * address2=10.1.1.5/24 + * ---end--- + * ---ifcfg-rh--- + * property: addresses + * variable: IPADDR, PREFIX, GATEWAY, IPADDR1, PREFIX1, GATEWAY1, ... + * description: List of static IP addresses. + * example: IPADDR 10.5.5.23 PREFIX=24 GATEWAY=10.5.5.1 + * ---end--- + */ g_object_class_install_property (object_class, PROP_ADDRESSES, _nm_param_spec_specialized (NM_SETTING_IP4_CONFIG_ADDRESSES, "", "", @@ -1201,6 +1251,22 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *setting_class) * Routes cannot be used with the "shared", "link-local", or "disabled" * methods because there is no upstream network. **/ + /* plugins docs + * ---keyfile--- + * property: routes + * variable: route1, route2, ... + * format: route/plen[,gateway,metric] + * description: List of IP routes. + * example: route1=8.8.8.0/24,10.1.1.1,77 + * route2=7.7.0.0/16 + * ---end--- + * ---ifcfg-rh--- + * property: routes + * variable: ADDRESS1, NETMASK1, GATEWAY1, METRIC1, ... + * description: List of static routes. They are not stored in ifcfg-* file, + * but in route-* file instead. + * ---end--- + */ g_object_class_install_property (object_class, PROP_ROUTES, _nm_param_spec_specialized (NM_SETTING_IP4_CONFIG_ROUTES, "", "", @@ -1216,6 +1282,14 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *setting_class) * automatically configured routes are ignored and only routes specified in * the #NMSettingIP4Config:routes property, if any, are used. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: ignore-auto-routes + * variable: PEERROUTES(+) + * default: yes + * description: PEERROUTES has the opposite meaning as 'ignore-auto-routes' property. + * ---end--- + */ g_object_class_install_property (object_class, PROP_IGNORE_AUTO_ROUTES, g_param_spec_boolean (NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES, "", "", @@ -1233,6 +1307,14 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *setting_class) * #NMSettingIP4Config:dns and #NMSettingIP4Config:dns-search properties, if * any, are used. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: ignore-auto-dns + * variable: PEERDNS + * default: yes + * description: PEERDNS has the opposite meaning as 'ignore-auto-dns' property. + * ---end--- + */ g_object_class_install_property (object_class, PROP_IGNORE_AUTO_DNS, g_param_spec_boolean (NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS, "", "", @@ -1247,6 +1329,14 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *setting_class) * A string sent to the DHCP server to identify the local machine which the * DHCP server may use to customize the DHCP lease and options. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: dhcp-client-id + * variable: DHCP_CLIENT_ID(+) + * description: A string sent to the DHCP server to identify the local machine. + * example: DHCP_CLIENT_ID=ax-srv-1 + * ---end--- + */ g_object_class_install_property (object_class, PROP_DHCP_CLIENT_ID, g_param_spec_string (NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID, "", "", @@ -1263,6 +1353,14 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *setting_class) * #NMSettingIP4Config:dhcp-hostname property is empty and this property is * %TRUE, the current persistent hostname of the computer is sent. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: dhcp-send-hostname + * variable: DHCP_SEND_HOSTNAME(+) + * default: yes + * description: Whether DHCP_HOSTNAME should be sent to the DHCP server. + * ---end--- + */ g_object_class_install_property (object_class, PROP_DHCP_SEND_HOSTNAME, g_param_spec_boolean (NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME, "", "", @@ -1277,6 +1375,13 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *setting_class) * If the #NMSettingIP4Config:dhcp-send-hostname property is %TRUE, then the * specified name will be sent to the DHCP server when acquiring a lease. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: dhcp-hostname + * variable: DHCP_HOSTNAME + * description: Hostname to send to the DHCP server. + * ---end--- + */ g_object_class_install_property (object_class, PROP_DHCP_HOSTNAME, g_param_spec_string (NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME, "", "", @@ -1291,6 +1396,16 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *setting_class) * If %TRUE, this connection will never be the default IPv4 connection, * meaning it will never be assigned the default route by NetworkManager. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: never-default + * variable: DEFROUTE (GATEWAYDEV in /etc/sysconfig/network) + * default: yes + * description: DEFROUTE=no tells NetworkManager that this connection + * should not be assigned the default route. DEFROUTE has the opposite + * meaning as 'never-default' property. + * ---end--- + */ g_object_class_install_property (object_class, PROP_NEVER_DEFAULT, g_param_spec_boolean (NM_SETTING_IP4_CONFIG_NEVER_DEFAULT, "", "", @@ -1309,6 +1424,14 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *setting_class) * network configuration to succeed if IPv4 configuration fails but IPv6 * configuration completes successfully. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: may-fail + * variable: IPV4_FAILURE_FATAL(+) + * default: no + * description: IPV4_FAILURE_FATAL has the opposite meaning as 'may-fail' property. + * ---end--- + */ g_object_class_install_property (object_class, PROP_MAY_FAIL, g_param_spec_boolean (NM_SETTING_IP4_CONFIG_MAY_FAIL, "", "", diff --git a/libnm-util/nm-setting-ip6-config.c b/libnm-util/nm-setting-ip6-config.c index 49c32dd662..ec90fd2bd7 100644 --- a/libnm-util/nm-setting-ip6-config.c +++ b/libnm-util/nm-setting-ip6-config.c @@ -1027,6 +1027,15 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class) * not done. This property must be set. Note: the "shared" method is not * yet supported. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: method + * variable: IPV6INIT, IPV6FORWARDING, IPV6_AUTOCONF, DHCPV6C + * default: IPV6INIT=yes; IPV6FORWARDING=no; IPV6_AUTOCONF=!IPV6FORWARDING, DHCPV6=no + * description: Method used for IPv4 protocol configuration. + * ignore ~ IPV6INIT=no; auto ~ IPV6_AUTOCONF=yes; dhcp ~ IPV6_AUTOCONF=no and DHCPV6C=yes + * ---end--- + */ g_object_class_install_property (object_class, PROP_METHOD, g_param_spec_string (NM_SETTING_IP6_CONFIG_METHOD, "", "", @@ -1043,6 +1052,13 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class) * * Since: 0.9.8 **/ + /* plugins docs + * ---ifcfg-rh--- + * property: dhcp-hostname + * variable: DHCP_HOSTNAME + * description: Hostname to send the DHCP server. + * ---end--- + */ g_object_class_install_property (object_class, PROP_DHCP_HOSTNAME, g_param_spec_string (NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME, "", "", @@ -1061,6 +1077,21 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class) * other methods, these DNS servers are used as the only DNS servers for * this connection. **/ + /* plugins docs + * ---keyfile--- + * property: dns + * format: list of DNS IP addresses + * description: List of DNS servers. + * example: dns=2001:4860:4860::8888;2001:4860:4860::8844; + * ---end--- + * ---ifcfg-rh--- + * property: dns + * variable: DNS1, DNS2, ... + * format: string + * description: List of DNS servers. NetworkManager uses the variables both + * for IPv4 and IPv6. + * ---end--- + */ g_object_class_install_property (object_class, PROP_DNS, _nm_param_spec_specialized (NM_SETTING_IP6_CONFIG_DNS, "", "", @@ -1098,6 +1129,20 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class) * "shared" or "link-local" methods as the interface is automatically * assigned an address with these methods. **/ + /* plugins docs + * ---keyfile--- + * property: addresses + * variable: address1, address2, ... + * format: address/plen[,gateway] + * description: List of static IP addresses. + * example: address1=abbe::cafe/96,abbe::1 + * ---end--- + * ---ifcfg-rh--- + * property: addresses + * variable: IPV6ADDR, IPV6_DEFAULTGW, IPV6ADDR_SECONDARIES + * description: List of static IP addresses. + * ---end--- + */ g_object_class_install_property (object_class, PROP_ADDRESSES, _nm_param_spec_specialized (NM_SETTING_IP6_CONFIG_ADDRESSES, "", "", @@ -1118,6 +1163,21 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class) * automatic configuration. Routes cannot be used with the "shared" or * "link-local" methods because there is no upstream network. **/ + /* plugins docs + * ---keyfile--- + * property: routes + * variable: route1, route2, ... + * format: route/plen[,gateway,metric] + * description: List of IP routes. + * example: route1=2001:4860:4860::/64,2620:52:0:2219:222:68ff:fe11:5403 + * ---end--- + * ---ifcfg-rh--- + * property: routes + * variable: (none) + * description: List of static routes. They are not stored in ifcfg-* file, + * but in route6-* file instead in the form of command line for 'ip route add'. + * ---end--- + */ g_object_class_install_property (object_class, PROP_ROUTES, _nm_param_spec_specialized (NM_SETTING_IP6_CONFIG_ROUTES, "", "", @@ -1133,6 +1193,14 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class) * %TRUE, automatically configured routes are ignored and only routes * specified in the #NMSettingIP6Config:routes property, if any, are used. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: ignore-auto-routes + * variable: IPV6_PEERROUTES(+) + * default: yes + * description: IPV6_PEERROUTES has the opposite meaning as 'ignore-auto-routes' property. + * ---end--- + */ g_object_class_install_property (object_class, PROP_IGNORE_AUTO_ROUTES, g_param_spec_boolean (NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES, "", "", @@ -1150,6 +1218,14 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class) * #NMSettingIP6Config:dns and #NMSettingIP6Config:dns-search properties, if * any, are used. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: ignore-auto-dns + * variable: IPV6_PEERDNS(+) + * default: yes + * description: IPV6_PEERDNS has the opposite meaning as 'ignore-auto-dns' property. + * ---end--- + */ g_object_class_install_property (object_class, PROP_IGNORE_AUTO_DNS, g_param_spec_boolean (NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS, "", "", @@ -1165,6 +1241,16 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class) * meaning it will never be assigned the default IPv6 route by * NetworkManager. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: never-default + * variable: IPV6_DEFROUTE(+), (and IPV6_DEFAULTGW, IPV6_DEFAULTDEV in /etc/sysconfig/network) + * default: IPV6_DEFROUTE=yes (when no variable specified) + * description: IPV6_DEFROUTE=no tells NetworkManager that this connection + * should not be assigned the default IPv6 route. IPV6_DEFROUTE has the opposite + * meaning as 'never-default' property. + * ---end--- + */ g_object_class_install_property (object_class, PROP_NEVER_DEFAULT, g_param_spec_boolean (NM_SETTING_IP6_CONFIG_NEVER_DEFAULT, "", "", @@ -1183,6 +1269,14 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class) * network configuration to succeed if IPv6 configuration fails but IPv4 * configuration completes successfully. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: may-fail + * variable: IPV6_FAILURE_FATAL(+) + * default: no + * description: IPV6_FAILURE_FATAL has the opposite meaning as 'may-fail' property. + * ---end--- + */ g_object_class_install_property (object_class, PROP_MAY_FAIL, g_param_spec_boolean (NM_SETTING_IP6_CONFIG_MAY_FAIL, "", "", @@ -1202,6 +1296,13 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class) * 1: enabled (prefer public address), 2: enabled (prefer temporary * addresses). **/ + /* plugins docs + * ---ifcfg-rh--- + * property: ip6-privacy + * variable: IPV6_PRIVACY, IPV6_PRIVACY_PREFER_PUBLIC_IP(+) + * description: Configure IPv6 Privacy Extensions for SLAAC (RFC4941). + * ---end--- + */ g_object_class_install_property (object_class, PROP_IP6_PRIVACY, g_param_spec_int (NM_SETTING_IP6_CONFIG_IP6_PRIVACY, "", "", diff --git a/libnm-util/nm-setting-team-port.c b/libnm-util/nm-setting-team-port.c index ad9d8327ed..73cdf5c142 100644 --- a/libnm-util/nm-setting-team-port.c +++ b/libnm-util/nm-setting-team-port.c @@ -174,6 +174,13 @@ nm_setting_team_port_class_init (NMSettingTeamPortClass *setting_class) * directly to teamd. If not specified, the default configuration is * used. See man teamd.conf for the format details. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: config + * variable: TEAM_PORT_CONFIG + * description: Team port configuration in JSON. See man teamd.conf for details. + * ---end--- + */ g_object_class_install_property (object_class, PROP_CONFIG, g_param_spec_string (NM_SETTING_TEAM_PORT_CONFIG, "", "", diff --git a/libnm-util/nm-setting-team.c b/libnm-util/nm-setting-team.c index 046ce51129..3edeeefc17 100644 --- a/libnm-util/nm-setting-team.c +++ b/libnm-util/nm-setting-team.c @@ -228,6 +228,13 @@ nm_setting_team_class_init (NMSettingTeamClass *setting_class) * * The name of the virtual in-kernel team network interface **/ + /* plugins docs + * ---ifcfg-rh--- + * property: interface-name + * variable: DEVICE + * description: Teaming interface name. + * ---end--- + */ g_object_class_install_property (object_class, PROP_INTERFACE_NAME, g_param_spec_string (NM_SETTING_TEAM_INTERFACE_NAME, "", "", @@ -244,6 +251,13 @@ nm_setting_team_class_init (NMSettingTeamClass *setting_class) * the value is passed directly to teamd. If not specified, the default * configuration is used. See man teamd.conf for the format details. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: config + * variable: TEAM_CONFIG + * description: Team configuration in JSON. See man teamd.conf for details. + * ---end--- + */ g_object_class_install_property (object_class, PROP_CONFIG, g_param_spec_string (NM_SETTING_TEAM_CONFIG, "", "", diff --git a/libnm-util/nm-setting-vlan.c b/libnm-util/nm-setting-vlan.c index 21adfdb25d..b7a35fa3d8 100644 --- a/libnm-util/nm-setting-vlan.c +++ b/libnm-util/nm-setting-vlan.c @@ -750,6 +750,16 @@ nm_setting_vlan_class_init (NMSettingVlanClass *setting_class) * parent interface may be given by the #NMSettingVlan:parent property or by * the #NMSettingWired:mac-address property of an #NMSettingWired setting. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: interface-name + * variable: PHYSDEV and VLAN_ID, or DEVICE + * description: VLAN interface name. + * If all variables are set, parent device from PHYSDEV takes precedence over DEVICE, + * but VLAN id from DEVICE takes precedence over VLAN_ID. + * example: PHYSDEV=eth0, VLAN_ID=12; or DEVICE=eth0.12 + * ---end--- + */ g_object_class_install_property (object_class, PROP_INTERFACE_NAME, g_param_spec_string (NM_SETTING_VLAN_INTERFACE_NAME, "", "", @@ -767,6 +777,13 @@ nm_setting_vlan_class_init (NMSettingVlanClass *setting_class) * not specified, the connection must contain an #NMSettingWired setting * with a #NMSettingWired:mac-address property. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: parent + * variable: DEVICE or PHYSDEV + * description: Parent interface of the VLAN. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PARENT, g_param_spec_string (NM_SETTING_VLAN_PARENT, "", "", @@ -782,6 +799,13 @@ nm_setting_vlan_class_init (NMSettingVlanClass *setting_class) * The VLAN identifier that the interface created by this connection should * be assigned. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: id + * variable: VLAN_ID or DEVICE + * description: VLAN identifier. + * ---end--- + */ g_object_class_install_property (object_class, PROP_ID, g_param_spec_uint (NM_SETTING_VLAN_ID, "", "", @@ -800,6 +824,14 @@ nm_setting_vlan_class_init (NMSettingVlanClass *setting_class) * and %NM_VLAN_FLAG_LOOSE_BINDING (loose binding of the interface to its * master device's operating state). **/ + /* plugins docs + * ---ifcfg-rh--- + * property: flags + * variable: VLAN_FLAGS, REORDER_HDR + * values: "GVRP", "LOOSE_BINDING" for VLAN_FLAGS; 0 or 1 for REORDER_HDR + * description: Parent interface of the VLAN. + * ---end--- + */ g_object_class_install_property (object_class, PROP_FLAGS, g_param_spec_uint (NM_SETTING_VLAN_FLAGS, "", "", @@ -816,6 +848,14 @@ nm_setting_vlan_class_init (NMSettingVlanClass *setting_class) * SKB priorities. The mapping is given in the format "from:to" where both * "from" and "to" are unsigned integers, ie "7:3". **/ + /* plugins docs + * ---ifcfg-rh--- + * property: ingress-property-map + * variable: VLAN_INGRESS_PRIORITY_MAP + * description: Ingress priority mapping. + * example: VLAN_INGRESS_PRIORITY_MAP=4:2,3:5 + * ---end--- + */ g_object_class_install_property (object_class, PROP_INGRESS_PRIORITY_MAP, _nm_param_spec_specialized (NM_SETTING_VLAN_INGRESS_PRIORITY_MAP, "", "", @@ -831,6 +871,14 @@ nm_setting_vlan_class_init (NMSettingVlanClass *setting_class) * 802.1p priorities. The mapping is given in the format "from:to" where * both "from" and "to" are unsigned integers, ie "7:3". **/ + /* plugins docs + * ---ifcfg-rh--- + * property: egress-property-map + * variable: VLAN_EGRESS_PRIORITY_MAP + * description: Egress priority mapping. + * example: VLAN_EGRESS_PRIORITY_MAP=5:4,4:1,3:7 + * ---end--- + */ g_object_class_install_property (object_class, PROP_EGRESS_PRIORITY_MAP, _nm_param_spec_specialized (NM_SETTING_VLAN_EGRESS_PRIORITY_MAP, "", "", diff --git a/libnm-util/nm-setting-vpn.c b/libnm-util/nm-setting-vpn.c index 3afc4dd93c..be892da485 100644 --- a/libnm-util/nm-setting-vpn.c +++ b/libnm-util/nm-setting-vpn.c @@ -847,6 +847,15 @@ nm_setting_vpn_class_init (NMSettingVPNClass *setting_class) * Dictionary of key/value pairs of VPN plugin specific data. Both keys and * values must be strings. **/ + /* plugins docs + * ---keyfile--- + * property: data + * variable: separate variables named after keys of the dictionary + * description: The keys of the data dictionary are used as variable names directly + * under [vpn] section. + * example: remote=ovpn.corp.com cipher=AES-256-CBC username=joe + * ---end--- + */ g_object_class_install_property (object_class, PROP_DATA, _nm_param_spec_specialized (NM_SETTING_VPN_DATA, "", "", @@ -860,6 +869,15 @@ nm_setting_vpn_class_init (NMSettingVPNClass *setting_class) * Dictionary of key/value pairs of VPN plugin specific secrets like * passwords or private keys. Both keys and values must be strings. **/ + /* plugins docs + * ---keyfile--- + * property: secrets + * variable: separate variables named after keys of the dictionary + * description: The keys of the secrets dictionary are used as variable names directly + * under [vpn-secrets] section. + * example: password=Popocatepetl + * ---end--- + */ g_object_class_install_property (object_class, PROP_SECRETS, _nm_param_spec_specialized (NM_SETTING_VPN_SECRETS, "", "", diff --git a/libnm-util/nm-setting-wired.c b/libnm-util/nm-setting-wired.c index bc82bf3477..02cf7fbf32 100644 --- a/libnm-util/nm-setting-wired.c +++ b/libnm-util/nm-setting-wired.c @@ -872,6 +872,13 @@ nm_setting_wired_class_init (NMSettingWiredClass *setting_class) * Interface), "bnc" (Thin Ethernet) or "mii" (Media Independent Interface. * If the device supports only one port type, this setting is ignored. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: port + * variable: (none) + * description: The property is not saved by the plugin. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PORT, g_param_spec_string (NM_SETTING_WIRED_PORT, "", "", @@ -885,6 +892,13 @@ nm_setting_wired_class_init (NMSettingWiredClass *setting_class) * If non-zero, request that the device use only the specified speed. In * Mbit/s, ie 100 == 100Mbit/s. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: speed + * variable: (none) + * description: The property is not saved by the plugin. + * ---end--- + */ g_object_class_install_property (object_class, PROP_SPEED, g_param_spec_uint (NM_SETTING_WIRED_SPEED, "", "", @@ -899,6 +913,13 @@ nm_setting_wired_class_init (NMSettingWiredClass *setting_class) * If specified, request that the device only use the specified duplex mode. * Either "half" or "full". **/ + /* plugins docs + * ---ifcfg-rh--- + * property: duplex + * variable: (none) + * description: The property is not saved by the plugin. + * ---end--- + */ g_object_class_install_property (object_class, PROP_DUPLEX, g_param_spec_string (NM_SETTING_WIRED_DUPLEX, "", "", @@ -913,6 +934,13 @@ nm_setting_wired_class_init (NMSettingWiredClass *setting_class) * %FALSE, do not allow auto-negotiation, in which case the "speed" and * "duplex" properties should be set. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: auto-negotiate + * variable: (none) + * description: The property is not saved by the plugin. + * ---end--- + */ g_object_class_install_property (object_class, PROP_AUTO_NEGOTIATE, g_param_spec_boolean (NM_SETTING_WIRED_AUTO_NEGOTIATE, "", "", @@ -928,6 +956,21 @@ nm_setting_wired_class_init (NMSettingWiredClass *setting_class) * whose permanent MAC address matches. This property does not change the * MAC address of the device (i.e. MAC spoofing). **/ + /* plugins docs + * ---keyfile--- + * property: mac-address + * format: ususal hex-digits-and-colons notation + * description: MAC address in traditional hex-digits-and-colons notation + * (e.g. 00:22:68:12:79:A2), or semicolon separated list of 6 bytes (obsolete) + * (e.g. 0;34;104;18;121;162) + * ---end--- + * ---ifcfg-rh--- + * property: mac-address + * variable: HWADDR + * description: Hardware address of the device in traditional hex-digits-and-colons + * notation (e.g. 00:22:68:14:5A:05). + * ---end--- + */ g_object_class_install_property (object_class, PROP_MAC_ADDRESS, _nm_param_spec_specialized (NM_SETTING_WIRED_MAC_ADDRESS, "", "", @@ -942,6 +985,21 @@ nm_setting_wired_class_init (NMSettingWiredClass *setting_class) * If specified, request that the device use this MAC address instead of its * permanent MAC address. This is known as MAC cloning or spoofing. **/ + /* plugins docs + * ---keyfile--- + * property: cloned-mac-address + * format: ususal hex-digits-and-colons notation + * description: Cloned MAC address in traditional hex-digits-and-colons notation + * (e.g. 00:22:68:12:79:B2), or semicolon separated list of 6 bytes (obsolete) + * (e.g. 0;34;104;18;121;178). + * ---end--- + * ---ifcfg-rh--- + * property: cloned-mac-address + * variable: MACADDR + * description: Cloned (spoofed) MAC address in traditional hex-digits-and-colons + * notation (e.g. 00:22:68:14:5A:99). + * ---end--- + */ g_object_class_install_property (object_class, PROP_CLONED_MAC_ADDRESS, _nm_param_spec_specialized (NM_SETTING_WIRED_CLONED_MAC_ADDRESS, "", "", @@ -958,6 +1016,21 @@ nm_setting_wired_class_init (NMSettingWiredClass *setting_class) * address is in the standard hex-digits-and-colons notation * (00:11:22:33:44:55). **/ + /* plugins docs + * ---keyfile--- + * property: mac-address-blacklist + * format: list of MACs (separated with semicolons) + * description: MAC address blacklist. + * example: mac-address-blacklist= 00:22:68:12:79:A6;00:22:68:12:79:78 + * ---end--- + * ---ifcfg-rh--- + * property: mac-address-blacklist + * variable: HWADDR_BLACKLIST(+) + * description: It denies usage of the connection for any device whose address + * is listed. + * example: HWADDR_BLACKLIST="00:22:68:11:69:08 00:11:22:11:44:55" + * ---end--- + */ g_object_class_install_property (object_class, PROP_MAC_ADDRESS_BLACKLIST, _nm_param_spec_specialized (NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST, "", "", @@ -972,6 +1045,13 @@ nm_setting_wired_class_init (NMSettingWiredClass *setting_class) * If non-zero, only transmit packets of the specified size or smaller, * breaking larger packets up into multiple Ethernet frames. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: mtu + * variable: MTU + * description: MTU of the interface. + * ---end--- + */ g_object_class_install_property (object_class, PROP_MTU, g_param_spec_uint (NM_SETTING_WIRED_MTU, "", "", @@ -992,6 +1072,14 @@ nm_setting_wired_class_init (NMSettingWiredClass *setting_class) * and each string may only be composed of hexadecimal characters and the * period (.) character. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: s390-subchannels + * variable: SUBCHANNELS + * description: Subchannels for IBM S390 hosts. + * example: SUBCHANNELS=0.0.b00a,0.0.b00b,0.0.b00c + * ---end--- + */ g_object_class_install_property (object_class, PROP_S390_SUBCHANNELS, _nm_param_spec_specialized (NM_SETTING_WIRED_S390_SUBCHANNELS, "", "", @@ -1006,6 +1094,15 @@ nm_setting_wired_class_init (NMSettingWiredClass *setting_class) * s390 network device type; one of "qeth", "lcs", or "ctc", representing * the different types of virtual network devices available on s390 systems. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: s390-nettype + * variable: NETTYPE + * values: "qeth", "lcs" or "ctc" + * description: Network type of the S390 host. + * example: NETTYPE=qeth + * ---end--- + */ g_object_class_install_property (object_class, PROP_S390_NETTYPE, g_param_spec_string (NM_SETTING_WIRED_S390_NETTYPE, "", "", @@ -1022,6 +1119,14 @@ nm_setting_wired_class_init (NMSettingWiredClass *setting_class) * "portname", "protocol", among others. Key names must contain only * alphanumeric characters (ie, [a-zA-Z0-9]). **/ + /* plugins docs + * ---ifcfg-rh--- + * property: s390-options + * variable: OPTIONS and PORTNAME, CTCPROTO, + * description: S390 device options. All options go to OPTIONS, except for + * "portname" and "ctcprot" that have their own variables. + * ---end--- + */ g_object_class_install_property (object_class, PROP_S390_OPTIONS, _nm_param_spec_specialized (NM_SETTING_WIRED_S390_OPTIONS, "", "", diff --git a/libnm-util/nm-setting-wireless-security.c b/libnm-util/nm-setting-wireless-security.c index 2c46766476..70217e021c 100644 --- a/libnm-util/nm-setting-wireless-security.c +++ b/libnm-util/nm-setting-wireless-security.c @@ -1350,6 +1350,14 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting * WPA-PSK), or "wpa-eap" (WPA-Enterprise). This property must be set for * any Wi-Fi connection that uses security. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: key-mgmt + * variable: KEY_MGMT(+) + * values: IEEE8021X, WPA-PSK, WPA-EAP + * description: Key management menthod. + * ---end--- + */ g_object_class_install_property (object_class, PROP_KEY_MGMT, g_param_spec_string (NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "", "", @@ -1366,6 +1374,15 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting * (default key) through 3. Note that some consumer access points (like the * Linksys WRT54G) number the keys 1 - 4. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: wep-tx-keyidx + * variable: DEFAULTKEY + * values: 1, 2, 3, 4 + * default: 1 + * description: Index of active WEP key. + * ---end--- + */ g_object_class_install_property (object_class, PROP_WEP_TX_KEYIDX, g_param_spec_uint (NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX, "", "", @@ -1383,6 +1400,14 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting * using Cisco LEAP (ie, key-mgmt = "ieee8021x" and auth-alg = "leap") the * "leap-username" and "leap-password" properties must be specified. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: auth-alg + * variable: SECURITYMODE(+) + * values: restricted, open, leap + * description: Authentication algorithm for WEP. + * ---end--- + */ g_object_class_install_property (object_class, PROP_AUTH_ALG, g_param_spec_string (NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, "", "", @@ -1397,6 +1422,15 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting * Each element may be one "wpa" (allow WPA) or "rsn" (allow WPA2/RSN). If * not specified, both WPA and RSN connections are allowed. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: proto + * variable: WPA_ALLOW_WPA(+), WPA_ALLOW_WPA2(+) + * values: yes, no + * default: no + * description: Allowed WPA protocols, WPA and WPA2 (RSN). + * ---end--- + */ g_object_class_install_property (object_class, PROP_PROTO, _nm_param_spec_specialized (NM_SETTING_WIRELESS_SECURITY_PROTO, "", "", @@ -1412,6 +1446,15 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting * For maximum compatibility leave this property empty. Each list element * may be one of "tkip" or "ccmp". **/ + /* plugins docs + * ---ifcfg-rh--- + * property: pairwise + * variable: CIPHER_PAIRWISE(+) + * values: CCMP, TKIP + * description: Restrict pairwise encryption algorithms, specified as a space + * separated list. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PAIRWISE, _nm_param_spec_specialized (NM_SETTING_WIRELESS_SECURITY_PAIRWISE, "", "", @@ -1427,6 +1470,15 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting * in the list. For maximum compatibility leave this property empty. Each * list element may be one of "wep40", "wep104", "tkip", or "ccmp". **/ + /* plugins docs + * ---ifcfg-rh--- + * property: group + * variable: CIPHER_GROUP(+) + * values: CCMP, TKIP, WEP40, WEP104 + * description: Restrict group/broadcast encryption algorithms, specified as a space + * separated list. + * ---end--- + */ g_object_class_install_property (object_class, PROP_GROUP, _nm_param_spec_specialized (NM_SETTING_WIRELESS_SECURITY_GROUP, "", "", @@ -1440,6 +1492,13 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting * The login username for legacy LEAP connections (ie, key-mgmt = * "ieee8021x" and auth-alg = "leap"). **/ + /* plugins docs + * ---ifcfg-rh--- + * property: leap-username + * variable: IEEE_8021X_IDENTITY(+) + * description: Login name for LEAP. + * ---end--- + */ g_object_class_install_property (object_class, PROP_LEAP_USERNAME, g_param_spec_string (NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME, "", "", @@ -1453,6 +1512,13 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting * Index 0 WEP key. This is the WEP key used in most networks. See the * "wep-key-type" property for a description of how this key is interpreted. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: wep-key0 + * variable: KEY1, KEY_PASSPHRASE1(+) + * description: The first WEP key (used in most networks). See also DEFAULTKEY for key index. + * ---end--- + */ g_object_class_install_property (object_class, PROP_WEP_KEY0, g_param_spec_string (NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, "", "", @@ -1467,6 +1533,13 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting * Index 1 WEP key. This WEP index is not used by most networks. See the * "wep-key-type" property for a description of how this key is interpreted. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: wep-key1 + * variable: KEY2, KEY_PASSPHRASE2(+) + * description: WEP key with index 1. See also DEFAULTKEY for key index. + * ---end--- + */ g_object_class_install_property (object_class, PROP_WEP_KEY1, g_param_spec_string (NM_SETTING_WIRELESS_SECURITY_WEP_KEY1, "", "", @@ -1481,6 +1554,13 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting * Index 2 WEP key. This WEP index is not used by most networks. See the * "wep-key-type" property for a description of how this key is interpreted. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: wep-key2 + * variable: KEY3, KEY_PASSPHRASE3(+) + * description: WEP key with index 2. See also DEFAULTKEY for key index. + * ---end--- + */ g_object_class_install_property (object_class, PROP_WEP_KEY2, g_param_spec_string (NM_SETTING_WIRELESS_SECURITY_WEP_KEY2, "", "", @@ -1495,6 +1575,13 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting * Index 3 WEP key. This WEP index is not used by most networks. See the * "wep-key-type" property for a description of how this key is interpreted. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: wep-key3 + * variable: KEY4, KEY_PASSPHRASE4(+) + * description: WEP key with index 3. See also DEFAULTKEY for key index. + * ---end--- + */ g_object_class_install_property (object_class, PROP_WEP_KEY3, g_param_spec_string (NM_SETTING_WIRELESS_SECURITY_WEP_KEY3, "", "", @@ -1510,6 +1597,13 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting * #NMSettingWirelessSecurity:wep-key1, #NMSettingWirelessSecurity:wep-key2, * and #NMSettingWirelessSecurity:wep-key3 properties. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: wep-key-flags + * variable: WEP_KEY_FLAGS(+) + * description: Password flags for KEY, KEY_PASSPHRASE password. + * ---end--- + */ g_object_class_install_property (object_class, PROP_WEP_KEY_FLAGS, g_param_spec_uint (NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS, "", "", @@ -1529,6 +1623,13 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting * WPA passphrase, and is hashed to derive the actual WPA-PSK used when * connecting to the Wi-Fi network. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: psk + * variable: WPA_PSK + * description: Pre-Shared-Key for WPA networks. + * ---end--- + */ g_object_class_install_property (object_class, PROP_PSK, g_param_spec_string (NM_SETTING_WIRELESS_SECURITY_PSK, "", "", @@ -1543,6 +1644,14 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting * Flags indicating how to handle the #NMSettingWirelessSecurity:psk * property. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: psk-flags + * variable: WPA_PSK_FLAGS(+) + * description: Password flags for WPA_PSK_FLAGS. + * example: WPA_PSK_FLAGS=user + * ---end--- + */ g_object_class_install_property (object_class, PROP_PSK_FLAGS, g_param_spec_uint (NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS, "", "", @@ -1558,6 +1667,14 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting * The login password for legacy LEAP connections (ie, key-mgmt = * "ieee8021x" and auth-alg = "leap"). **/ + /* plugins docs + * ---ifcfg-rh--- + * property: leap-password + * variable: IEEE_8021X_PASSWORD(+) + * description: Password for LEAP. It can also go to "key-" + * lookaside file, or it can be owned by a secret agent. + * ---end--- + */ g_object_class_install_property (object_class, PROP_LEAP_PASSWORD, g_param_spec_string (NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD, "", "", @@ -1572,6 +1689,13 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting * Flags indicating how to handle the * #NMSettingWirelessSecurity:leap-password property. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: leap-password-flags + * variable: IEEE_8021X_PASSWORD_FLAGS(+) + * description: Password flags for IEEE_8021X_PASSWORD_FLAGS. + * ---end--- + */ g_object_class_install_property (object_class, PROP_LEAP_PASSWORD_FLAGS, g_param_spec_uint (NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS, "", "", @@ -1591,6 +1715,16 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting * as a string and will be hashed using the de-facto MD5 method to derive * the actual WEP key. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: wep-key-type + * variable: KEY or KEY_PASSPHRASE(+) + * description: KEY is used for "key" type (10 or 26 hexadecimal characters, + * or 5 or 13 character string prefixed with "s:"). KEY_PASSPHRASE is used + * for WEP passphrases. + * example: KEY1=s:ahoj, KEY1=0a1c45bc02, KEY_PASSPHRASE1=mysupersecretkey + * ---end--- + */ g_object_class_install_property (object_class, PROP_WEP_KEY_TYPE, g_param_spec_uint (NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, "", "", diff --git a/libnm-util/nm-setting-wireless.c b/libnm-util/nm-setting-wireless.c index 24fae397b3..bbb0c66449 100644 --- a/libnm-util/nm-setting-wireless.c +++ b/libnm-util/nm-setting-wireless.c @@ -1032,6 +1032,20 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class) * * SSID of the Wi-Fi network. Must be specified. **/ + /* plugins docs + * ---keyfile--- + * property: ssid + * format: string (or decimal-byte list - obsolete) + * description: SSID of Wi-Fi network. + * example: ssid=Quick Net + * ---end--- + * ---ifcfg-rh--- + * property: ssid + * variable: ESSID + * description: SSID of Wi-Fi network. + * example: ESSID="Quick Net" + * ---end--- + */ g_object_class_install_property (object_class, PROP_SSID, _nm_param_spec_specialized (NM_SETTING_WIRELESS_SSID, "", "", @@ -1045,6 +1059,14 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class) * Wi-Fi network mode; one of "infrastructure", "adhoc" or "ap". If blank, * infrastructure is assumed. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: mode + * variable: MODE + * values: Ad-Hoc, Managed (Auto) [case insensitive] + * description: Wi-Fi network mode. + * ---end--- + */ g_object_class_install_property (object_class, PROP_MODE, g_param_spec_string (NM_SETTING_WIRELESS_MODE, "", "", @@ -1062,6 +1084,14 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class) * settings are compatible. This setting depends on specific driver * capability and may not work with all drivers. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: band + * variable: CHANNEL + * description: Channels greater than 14 mean "a" band, otherwise the band is "bg". + * example: CHANNEL=6 + * ---end--- + */ g_object_class_install_property (object_class, PROP_BAND, g_param_spec_string (NM_SETTING_WIRELESS_BAND, "", "", @@ -1077,6 +1107,14 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class) * channel. Because channel numbers overlap between bands, this property * also requires the "band" property to be set. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: channel + * variable: CHANNEL + * description: Channel used for the Wi-Fi communication. + * example: CHANNEL=6 + * ---end--- + */ g_object_class_install_property (object_class, PROP_CHANNEL, g_param_spec_uint (NM_SETTING_WIRELESS_CHANNEL, "", "", @@ -1093,6 +1131,14 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class) * all devices. Note: this property does not control the BSSID used when * creating an Ad-Hoc network and is unlikely to in the future. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: bssid + * variable: BSSID(+) + * description: Restricts association only to a single AP. + * example: BSSID=00:1E:BD:64:83:21 + * ---end--- + */ g_object_class_install_property (object_class, PROP_BSSID, _nm_param_spec_specialized (NM_SETTING_WIRELESS_BSSID, "", "", @@ -1108,6 +1154,13 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class) * Mbit/s. This property is highly driver dependent and not all devices * support setting a static bitrate. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: rate + * variable: (none) + * description: This property is not handled by ifcfg-rh plugin. + * ---end--- + */ g_object_class_install_property (object_class, PROP_RATE, g_param_spec_uint (NM_SETTING_WIRELESS_RATE, "", "", @@ -1124,6 +1177,13 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class) * Units are dBm. This property is highly driver dependent and not all * devices support setting a static transmit power. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: tx-power + * variable: (none) + * description: This property is not handled by ifcfg-rh plugin. + * ---end--- + */ g_object_class_install_property (object_class, PROP_TX_POWER, g_param_spec_uint (NM_SETTING_WIRELESS_TX_POWER, "", "", @@ -1140,6 +1200,21 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class) * permanent MAC address matches. This property does not change the MAC * address of the device (i.e. MAC spoofing). **/ + /* plugins docs + * ---keyfile--- + * property: mac-address + * format: ususal hex-digits-and-colons notation + * description: MAC address in traditional hex-digits-and-colons notation + * (e.g. 00:22:68:12:79:A2), or semicolon separated list of 6 bytes (obsolete) + * (e.g. 0;34;104;18;121;162). + * ---end--- + * ---ifcfg-rh--- + * property: mac-address + * variable: HWADDR + * description: Hardware address of the device in traditional hex-digits-and-colons + * notation (e.g. 00:22:68:14:5A:05). + * ---end--- + */ g_object_class_install_property (object_class, PROP_MAC_ADDRESS, _nm_param_spec_specialized (NM_SETTING_WIRELESS_MAC_ADDRESS, "", "", @@ -1153,6 +1228,21 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class) * If specified, request that the Wi-Fi device use this MAC address instead * of its permanent MAC address. This is known as MAC cloning or spoofing. **/ + /* plugins docs + * ---keyfile--- + * property: cloned-mac-address + * format: ususal hex-digits-and-colons notation + * description: Cloned MAC address in traditional hex-digits-and-colons notation + * (e.g. 00:22:68:12:79:B2), or semicolon separated list of 6 bytes (obsolete) + * (e.g. 0;34;104;18;121;178). + * ---end--- + * ---ifcfg-rh--- + * property: cloned-mac-address + * variable: MACADDR + * description: Cloned (spoofed) MAC address in traditional hex-digits-and-colons + * notation (e.g. 00:22:68:14:5A:99). + * ---end--- + */ g_object_class_install_property (object_class, PROP_CLONED_MAC_ADDRESS, _nm_param_spec_specialized (NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS, "", "", @@ -1167,6 +1257,20 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class) * connection should never apply. Each MAC address should be given in the * standard hex-digits-and-colons notation (eg "00:11:22:33:44:55"). **/ + /* plugins docs + * ---keyfile--- + * property: mac-address-blacklist + * format: list of MACs (separated with semicolons) + * description: MAC address blacklist. + * example: mac-address-blacklist= 00:22:68:12:79:A6;00:22:68:12:79:78 + * ---end--- + * ---ifcfg-rh--- + * property: mac-address-blacklist + * variable: HWADDR_BLACKLIST(+) + * description: It denies usage of the connection for any device whose address + * is listed. + * ---end--- + */ g_object_class_install_property (object_class, PROP_MAC_ADDRESS_BLACKLIST, _nm_param_spec_specialized (NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST, "", "", @@ -1185,6 +1289,13 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class) * NetworkManager. The changes you make to this property will not be * preserved. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: seen-bssids + * variable: (none) + * description: This property is not handled by ifcfg-rh plugin. + * ---end--- + */ g_object_class_install_property (object_class, PROP_SEEN_BSSIDS, _nm_param_spec_specialized (NM_SETTING_WIRELESS_SEEN_BSSIDS, "", "", @@ -1199,6 +1310,13 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class) * If non-zero, only transmit packets of the specified size or smaller, * breaking larger packets up into multiple Ethernet frames. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: mtu + * variable: MTU + * description: MTU of the wireless interface. + * ---end--- + */ g_object_class_install_property (object_class, PROP_MTU, g_param_spec_uint (NM_SETTING_WIRELESS_MTU, "", "", @@ -1220,6 +1338,13 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class) * by the presence of a #NMSettingWirelessSecurity setting in the * connection. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: security + * variable: (none) + * description: This property is deprecated and not handled by ifcfg-rh-plugin. + * ---end--- + */ g_object_class_install_property (object_class, PROP_SEC, g_param_spec_string (NM_SETTING_WIRELESS_SEC, "", "", @@ -1236,6 +1361,13 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class) * these workarounds expose inherent insecurities with hidden SSID networks, * and thus hidden SSID networks should be used with caution. **/ + /* plugins docs + * ---ifcfg-rh--- + * property: hidden + * variable: SSID_HIDDEN(+) + * description: Whether the network hides the SSID. + * ---end--- + */ g_object_class_install_property (object_class, PROP_HIDDEN, g_param_spec_boolean (NM_SETTING_WIRELESS_HIDDEN, "", "", diff --git a/man/Makefile.am b/man/Makefile.am index 014e737971..376a8b42ac 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -34,6 +34,20 @@ nm-settings.xml: nm-settings.xsl $(top_builddir)/libnm-util/nm-setting-docs.xml --stringparam date "`date +'%d %B %Y'`" \ $^ +nm-settings-keyfile.xml: nm-settings-keyfile.xsl $(top_builddir)/libnm-util/nm-keyfile-docs.xml + $(AM_V_GEN) xsltproc \ + --output $@ \ + --stringparam version $(NM_VERSION) \ + --stringparam date "`date +'%d %B %Y'`" \ + $^ + +nm-settings-ifcfg-rh.xml: nm-settings-ifcfg-rh.xsl $(top_builddir)/libnm-util/nm-ifcfg-rh-docs.xml + $(AM_V_GEN) xsltproc \ + --output $@ \ + --stringparam version $(NM_VERSION) \ + --stringparam date "`date +'%d %B %Y'`" \ + $^ + endif configure_generated_man_pages = \ @@ -47,16 +61,24 @@ docbook_generated_man_pages = \ nmcli-examples.5 docbook_autogenerated_man_pages = \ - nm-settings.5 + nm-settings.5 \ + nm-settings-keyfile.5 \ + nm-settings-ifcfg-rh.5 EXTRA_DIST += \ nm-settings.xml \ nm-settings.xsl \ + nm-settings-keyfile.xml \ + nm-settings-keyfile.xsl \ + nm-settings-ifcfg-rh.xml \ + nm-settings-ifcfg-rh.xsl \ $(docbook_generated_man_pages:.%=.xml) \ $(docbook_autogenerated_man_pages) DISTCLEANFILES = \ - nm-settings.xml + nm-settings.xml \ + nm-settings-keyfile.xml \ + nm-settings-ifcfg-rh.xml man_MANS += $(configure_generated_man_pages) diff --git a/man/nm-settings-ifcfg-rh.xsl b/man/nm-settings-ifcfg-rh.xsl new file mode 100644 index 0000000000..5c7fbfae15 --- /dev/null +++ b/man/nm-settings-ifcfg-rh.xsl @@ -0,0 +1,362 @@ + + + + + + + + + + + + + + + + + + + nm-settings-ifcfg-rh + 5 + NetworkManager + Configuration + + + + nm-settings-ifcfg-rh + Description of ifcfg-rh settings plugin + + + DESCRIPTION + + NetworkManager is based on the concept of connection profiles that contain + network configuration (see nm-settings + 5 for details). The profiles can be + stored in various formats. NetworkManager uses plugins for reading and writing + the data. The plugins can be configured in + NetworkManager.conf5. + + + The ifcfg-rh plugin is used on the Fedora and Red Hat + Enterprise Linux distributions to read/write configuration from/to + the standard /etc/sysconfig/network-scripts/ifcfg-* files. + Each NetworkManager connection maps to one ifcfg-* file, with + possible usage of keys-* for passwords, route-* + for static IPv4 routes and route6-* for static IPv6 routes. + The plugin currently supports reading and writing Ethernet, Wi-Fi, InfiniBand, + VLAN, Bond, Bridge, and Team connections. Unsupported connection types (such as + (WWAN, PPPoE, VPN, or ADSL) are handled by keyfile plugin + (nm-settings-keyfile5). + The main reason for using ifcfg-rh plugin is the compatibility + with legacy configurations for ifup and ifdown + (initscripts). + + + + File Format + + The ifcfg-rh config format is a simple text file containing + VARIABLE="value" lines. The format is described in sysconfig.txt + of initscripts package. Note that the configuration files + may be sourced by initscripts, so they must be valid shell + scripts. That means, for instance, that # character can be used + for comments, strings with spaces must be quoted, special characters must be escaped, + etc. + + + Users can create or modify the ifcfg-rh connection files + manually, even if that is not the recommended way of managing the profiles. + However, if they choose to do that, they must inform NetworkManager about + their changes (see monitor-connection-file in + nm-settings5 + , and nmcli con (re)load). + + + Some <emphasis>ifcfg-rh</emphasis> configuration examples: + + + Simple DHCP ethernet configuration: +NAME=ethernet +UUID=1c4ddf70-01bf-46d6-b04f-47e842bd98da +TYPE=Ethernet +BOOTPROTO=dhcp +DEFROUTE=yes +PEERDNS=yes +PEERROUTES=yes +IPV4_FAILURE_FATAL=no +ONBOOT=yes + + + + + Simple ethernet configuration with static IP: +TYPE=Ethernet +BOOTPROTO=none +IPADDR=10.1.0.25 +PREFIX=24 +GATEWAY=10.1.0.1 +DEFROUTE=yes +IPV4_FAILURE_FATAL=no +IPV6INIT=yes +IPV6_AUTOCONF=yes +IPV6_DEFROUTE=yes +IPV6_PEERDNS=yes +IPV6_PEERROUTES=yes +IPV6_FAILURE_FATAL=no +NAME=ethernet-em2 +UUID=51bb3904-c0fc-4dfe-83b2-0a71e7928c13 +DEVICE=em2 +ONBOOT=yes + + + + + WPA2 Enterprise WLAN (TTLS with inner MSCHAPV2 authentication): +ESSID="CompanyWLAN" +MODE=Managed +KEY_MGMT=WPA-EAP +TYPE=Wireless +IEEE_8021X_EAP_METHODS=TTLS +IEEE_8021X_IDENTITY=joe +IEEE_8021X_PASSWORD_FLAGS=ask +IEEE_8021X_INNER_AUTH_METHODS=MSCHAPV2 +IEEE_8021X_CA_CERT=/home/joe/.cert/company.crt +BOOTPROTO=dhcp +DEFROUTE=yes +PEERDNS=yes +PEERROUTES=yes +IPV4_FAILURE_FATAL=no +IPV6INIT=no +NAME=MyCompany +UUID=f79848ff-11a6-4810-9e1a-99039dea84c4 +ONBOOT=yes + + + + + Team and team port configuration: +ifcfg-my_team0: +DEVICE=team0 +TEAM_CONFIG="{ \"device\": \"team0\", \"runner\": {\"name\": \"roundrobin\"}, \"ports\": {\"eth1\": {}, \"eth2\": {}} }" +DEVICETYPE=Team +BOOTPROTO=dhcp +NAME=team0-profile +UUID=1d3460a0-7b37-457f-a300-fe8d92da4807 +ONBOOT=yes + +ifcfg-my_team0_slave1: +NAME=team0-slave1 +UUID=d5aed298-c567-4cc1-b808-6d38ecef9e64 +DEVICE=eth0 +ONBOOT=yes +TEAM_MASTER=team0 +DEVICETYPE=TeamPort + + + + + + + Differences against initscripts + + The main differences of NetworkManager ifcfg-rh plugin and traditional + initscripts are: + + + NM_CONTROLLED=yes|no + + NM_CONTROLLED is NetworkManager-specific variable used by NetworkManager + for determining whether the device of the ifcfg file + should be managed. NM_CONTROLLED=yes is supposed if the variable is not + present in the file. + Note that if you have more ifcfg files for a single + device, NM_CONTROLLED=no in one of the files will cause the device not + to be managed. The profile may not even be the active one. + + + + New variables + + NetworkManager has introduced some new variable, not present in initscripts, + to be able to store data for its new features. The variables are marked + as extensions in the tables bellows. + + + + Semantic change of variables + + NetworkManager had to slightly change the semantic for a few variables. + + + PEERDNS - + initscripts interpret PEERDNS=no to mean "never touch resolv.conf". + NetworkManager interprets it to say "never add automatic (DHCP, PPP, VPN, etc.) + nameservers to resolv.conf". + + + ONBOOT - + initscripts use ONBOOT=yes to mark the devices that are to be activated + during boot. NetworkManager extents this to also mean that this profile + can be used for auto-connecting at any time. + + + + + + + + See the next section for detailed mapping of NetworkManager properties and + ifcfg-rh variables. Variable names, format and usage + differences in NetworkManager and initscripts are documented in the tables bellow. + + + + + DETAILS + + ifcfg-rh plugin variables marked with (+) + are NetworkManager specific extensions not understood by traditional initscripts. + + + + Secret flags + + Each secret property in a NetworkManager setting has an associated + flags property that describes how to handle that secret. + In the fcfg-rh plugin variables for secret flags have a + -FLAGS suffix. The variables contain one or more of the + folowing values (space separated). Missing (or empty) -FLAGS variable means + that the password is owned by NetworkManager. + + + + user - a user-session secret agent is responsible for providing + and storing this secret; when it is required, agents will be asked to provide it. + + + ask - the associated password is not saved but it will be + requested from the user each time it is required. + + + unused - in some situations it cannot be automatically determined + that a secret is required or not. This flag hints that the secret is not required and should + not be requested from the user. + + + + + + + AUTHOR + + + NetworkManager developers + + + + + FILES + /etc/sysconfig/network-scripts/ifcfg-* + /etc/sysconfig/network-scripts/keys-* + /etc/sysconfig/network-scripts/route-* + /etc/sysconfig/network-scripts/route6-* + /usr/share/doc/initscripts/sysconfig.txt + + + SEE ALSO + https://developer.gnome.org/NetworkManager/unstable/ref-settings.html + nm-settings(5), nm-settings-keyfile(5), NetworkManager(8), NetworkManager.conf(5), nmcli(1), nmcli-examples(5) + + + + + + + + + + <xsl:value-of select="@name"/> setting + + + + Property + Ifcfg-rh Variable + Default + Description + + + + + + +
+
+ + + + All DCB related configuration is a NetworkManager extention. DCB=yes must be + used explicitly to enable DCB so that the rest of the DCB_* variables can apply. + + + + + The following settings are not supported by ifcfg-rh plugin: + + +
+ + + + + + + + + + + + + + + + (see for _FLAGS values) + + + + +Example: + + + + +Allowed values: + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/man/nm-settings-keyfile.xsl b/man/nm-settings-keyfile.xsl new file mode 100644 index 0000000000..b6e01a2389 --- /dev/null +++ b/man/nm-settings-keyfile.xsl @@ -0,0 +1,308 @@ + + + + + + + + + + + + + + + nm-settings-keyfile + 5 + NetworkManager + Configuration + + + + nm-settings-keyfile + Description of keyfile settings plugin + + + DESCRIPTION + + NetworkManager is based on the concept of connection profiles that contain + network configuration (see nm-settings + 5 for details). The profiles can be + stored in various formats. NetworkManager uses plugins for reading and writing + the data. The plugins can be configured in + NetworkManager.conf5. + + + The keyfile plugin is the generic plugin that supports all + the connection types and capabilities that NetworkManager has. It writes files + out in a .ini-style format in /etc/NetworkManager/system-connections/. + This plugin is always enabled and will automatically be used to store + any connections that are not supported by any other active plugin. + For security, it will ignore files that are readable or writeable by any user + or group other than 'root' since private keys and passphrases may be stored + in plaintext inside the file. + + + + File Format + + The keyfile config format is a simple .ini-style + format. It consists of sections (groups) of key-value pairs. Each section + corresponds to a setting name as described in the settings specification + (nm-settings + 5). Each configuration key/value + pair in the section is one of the properties listed in the settings + specification. The majority of properties of the specification is written + in the same format into the keyfile too. However + some values are inconvenient for people to use. These are stored in the + files in more readable ways. These properties are described bellow. + An example could be IP addresses that are not written as integer arrays, + but more reasonably as "1.2.3.4/12 1.2.3.254". + More information of the generic key file format can be found at + + GLib key file format (Lines beginning with a '#' are comments, + lists are separated by character ; etc.). + + + Users can create or modify the keyfile connection files + manually, even if that is not the recommended way of managing the profiles. + However, if they choose to do that, they must inform NetworkManager about + their changes (see monitor-connection-file in + nm-settings5 + and nmcli con (re)load). + + + Examples of <emphasis>keyfile</emphasis> configuration + + + A sample configuration for an ethernet network: +[connection] +id=Main eth0 +uuid=27afa607-ee36-43f0-b8c3-9d245cdc4bb3 +type=802-3-ethernet +autoconnect=true + +[ipv4] +method=auto + +[802-3-ethernet] +mac-address=00:23:5a:47:1f:71 + + + + + A sample configuration for WPA-EAP (PEAP with MSCHAPv2) and always-ask secret: +[connection] +id=CompanyWIFI +uuid=cdac6154-a33b-4b15-9904-666772cfa5ee +type=wifi +autoconnect=false + +[wifi] +ssid=CorpWLAN +mode=infrastructure +security=802-11-wireless-security + +[wifi-security] +key-mgmt=wpa-eap + +[ipv4] +method=auto + +[ipv6] +method=auto + +[802-1x] +eap=peap; +identity=joe +ca-cert=/home/joe/.cert/corp.crt +phase1-peapver=1 +phase2-auth=mschapv2 +password-flags=2 + + + + + A sample configuration for openvpn: +[connection] +id=RedHat-openvpn +uuid=7f9b3356-b210-4c0e-8123-bd116c9c280f +type=vpn +timestamp=1385401165 + +[vpn] +service-type=org.freedesktop.NetworkManager.openvpn +connection-type=password +password-flags=3 +remote=ovpn.my-company.com +cipher=AES-256-CBC +reneg-seconds=0 +port=443 +username=joe +ca=/etc/openvpn/ISCA.pem +tls-remote=ovpn.my-company.com + +[ipv6] +method=auto + +[ipv4] +method=auto +ignore-auto-dns=true +never-default=true + + + + + A sample configuration for a bridge and a bridge port: +[connection] [connection] +id=MainBridge id=br-port-1 +uuid=171ae855-a0ab-42b6-bd0c-60f5812eea9d uuid=d6e8ae98-71f8-4b3d-9d2d-2e26048fe794 +interface-name=MainBridge interface-name=em1 +type=bridge type=ethernet + master=MainBridge +[bridge] slave-type=bridge +interface-name=MainBridge + + + + + A sample configuration for a VLAN: +[connection] +id=VLAN for building 4A +uuid=8ce1c9e0-ce7a-4d2c-aa28-077dda09dd7e +interface-name=VLAN-4A +type=vlan + +[vlan] +interface-name=VLAN-4A +parent=eth0 +id=4 + + + + + + + DETAILS + + keyfile plugin variables for the majority of NetworkManager + properties have one-to-one mapping. It means a NetworkManager property is stored + in the keyfile as a variable of the same name and in the same format. + There are several exceptions to this rule, mainly for making keyfile syntax easier + for humans. The exceptions handled specially by keyfile + plugin are listed bellow. Refer to + nm-settings5 + for all available settings and properties and their description. + + Name aliases + + Some of the NetworkManager setting names are somewhat hard to type or remember. Therefore + keyfile introduces aliases that can be used instead of the names. + + + setting name keyfile alias + 802-3-ethernet = ethernet + 802-11-wireless = wifi + 802-11-wireless-security = wifi-security + + + + + + Secret flags + + Each secret property in a NetworkManager setting has an associated flags + property that describes how to handle that secret. In the keyfile plugin, + the value of -flags variable is a decimal number (0 - 7) defined as a sum + of the following values: + + + + 0 - (NM owned) - the system is responsible for providing and storing this secret. + + + 1 - (agent-owned) - a user-session secret agent is responsible for providing + and storing this secret; when it is required, agents will be asked to provide it. + + + 2 - (not-saved) - this secret should not be saved but should be requested + from the user each time it is required. + + + 4 - (not-required) - in some situations it cannot be automatically determined + that a secret is required or not. This flag hints that the secret is not required + and should not be requested from the user. + + + + + + + AUTHOR + + + NetworkManager developers + + + + + FILES + /etc/NetworkManager/system-connections/* + + + SEE ALSO + https://developer.gnome.org/NetworkManager/unstable/ref-settings.html + nm-settings(5), nm-settings-ifcfg-rh(5), NetworkManager(8), NetworkManager.conf(5), nmcli(1), nmcli-examples(5) + + + + + + + + + <xsl:value-of select="@name"/> setting (section) + + + + Property + Keyfile Variable + Format + Description + + + + + + +
+
+
+ + + + + + + + + + + +Example: + + + + +Allowed values: + + + + + +
diff --git a/man/nm-settings.xsl b/man/nm-settings.xsl index 7d14d7860d..ae8e416af4 100644 --- a/man/nm-settings.xsl +++ b/man/nm-settings.xsl @@ -14,82 +14,82 @@ - + - nm-settings - 5 - NetworkManager - Configuration - + nm-settings + 5 + NetworkManager + Configuration + - nm-settings - Description of settings and properties of NetworkManager connection profiles + nm-settings + Description of settings and properties of NetworkManager connection profiles - DESCRIPTION - - NetworkManager is based on a concept of connection profiles, sometimes referred to as - connections only. These connection profiles contain a network configuration. When - NetworkManager activates a connection profile on a network device the configuration will - be applied and an active network connection will be established. Users are free to create - as many connection profiles as they see fit. Thus they are flexible in having various network - configurations for different networking needs. The connection profiles are handled by - NetworkManager via settings service and are exported on D-Bus - (/org/freedesktop/NetworkManager/Settings/<num> objects). - The conceptual objects can be described as follows: - - - Connection (profile) - - - A specific, encapsulated, independent group of settings describing - all the configuration required to connect to a specific network. - It is referred to by a unique identifier called the UUID. A connection - is tied to a one specific device type, but not necessarily a specific - hardware device. It is composed of one or more Settings - objects. - - - - - - - Setting - - - A group of related key/value pairs describing a specific piece of a - Connection (profile). Settings keys and allowed values are - described in the tables below. Keys are also reffered to as properties. - Developers can find the setting objects and their properties in the libnm-util - sources. Look for the class_init functions near the bottom of - each setting source file. - - - - - - - The settings and properties shown in tables below list all available connection - configuration options. However, note that not all settings are applicable to all - connection types. NetworkManager provides a command-line tool nmcli - that allows direct configuration of the settings and properties according to a connection - profile type. nmcli connection editor has also a built-in - describe command that can display description of particular settings - and properties of this page. - - - + DESCRIPTION + + NetworkManager is based on a concept of connection profiles, sometimes referred to as + connections only. These connection profiles contain a network configuration. When + NetworkManager activates a connection profile on a network device the configuration will + be applied and an active network connection will be established. Users are free to create + as many connection profiles as they see fit. Thus they are flexible in having various network + configurations for different networking needs. The connection profiles are handled by + NetworkManager via settings service and are exported on D-Bus + (/org/freedesktop/NetworkManager/Settings/<num> objects). + The conceptual objects can be described as follows: + + + Connection (profile) + + + A specific, encapsulated, independent group of settings describing + all the configuration required to connect to a specific network. + It is referred to by a unique identifier called the UUID. A connection + is tied to a one specific device type, but not necessarily a specific + hardware device. It is composed of one or more Settings + objects. + + + + + + + Setting + + + A group of related key/value pairs describing a specific piece of a + Connection (profile). Settings keys and allowed values are + described in the tables below. Keys are also reffered to as properties. + Developers can find the setting objects and their properties in the libnm-util + sources. Look for the class_init functions near the bottom of + each setting source file. + + + + + + + The settings and properties shown in tables below list all available connection + configuration options. However, note that not all settings are applicable to all + connection types. NetworkManager provides a command-line tool nmcli + that allows direct configuration of the settings and properties according to a connection + profile type. nmcli connection editor has also a built-in + describe command that can display description of particular settings + and properties of this page. + + + - - Secret flag types: - - Each secret property in a setting has an associated flags property - that describes how to handle that secret. The flags property is a bitfield - that contains zero or more of the following values logically OR-ed together. - - + + Secret flag types: + + Each secret property in a setting has an associated flags property + that describes how to handle that secret. The flags property is a bitfield + that contains zero or more of the following values logically OR-ed together. + + 0x0 (none) - the system is responsible for providing and storing this secret. @@ -106,26 +106,26 @@ 0x4 (not-required) - in some situations it cannot be automatically determined that a secret is required or not. This flag hints that the secret is not required and should not be requested from the user. - - + + - AUTHOR - - + AUTHOR + + NetworkManager developers - - + + - FILES - /etc/NetworkManager/system-connections - or distro plugin-specific location + FILES + /etc/NetworkManager/system-connections + or distro plugin-specific location - SEE ALSO - https://wiki.gnome.org/Projects/NetworkManager/ConfigurationSpecification - NetworkManager(8), nmcli(1), nmcli-examples(5), NetworkManager.conf(5) + SEE ALSO + https://wiki.gnome.org/Projects/NetworkManager/ConfigurationSpecification + NetworkManager(8), nmcli(1), nmcli-examples(5), NetworkManager.conf(5) @@ -134,17 +134,17 @@ <xsl:value-of select="@name"/> setting - - + + Key Name Value Type Default Value Value Description - - - - - + + + + +