/* nmcli - command-line tool to control NetworkManager * * 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 2010 - 2015 Red Hat, Inc. */ #include "nm-default.h" #include "settings.h" #include #include #include "nm-common-macros.h" #include "utils.h" #include "common.h" #include "nm-vpn-helpers.h" /* Forward declarations */ static char *wep_key_type_to_string (NMWepKeyType type); typedef enum { NMC_PROPERTY_GET_PRETTY, NMC_PROPERTY_GET_PARSABLE, } NmcPropertyGetType; /* Helper macro to define fields */ #define SETTING_FIELD(setting) { setting, N_(setting), 0, NULL, FALSE, FALSE, 0 } /* Available fields for NM_SETTING_CONNECTION_SETTING_NAME */ NmcOutputField nmc_fields_setting_connection[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_CONNECTION_ID), /* 1 */ SETTING_FIELD (NM_SETTING_CONNECTION_UUID), /* 2 */ SETTING_FIELD (NM_SETTING_CONNECTION_STABLE_ID), /* 3 */ SETTING_FIELD (NM_SETTING_CONNECTION_INTERFACE_NAME), /* 4 */ SETTING_FIELD (NM_SETTING_CONNECTION_TYPE), /* 5 */ SETTING_FIELD (NM_SETTING_CONNECTION_AUTOCONNECT), /* 6 */ SETTING_FIELD (NM_SETTING_CONNECTION_AUTOCONNECT_PRIORITY), /* 7 */ SETTING_FIELD (NM_SETTING_CONNECTION_AUTOCONNECT_RETRIES), /* 8 */ SETTING_FIELD (NM_SETTING_CONNECTION_TIMESTAMP), /* 9 */ SETTING_FIELD (NM_SETTING_CONNECTION_READ_ONLY), /* 10 */ SETTING_FIELD (NM_SETTING_CONNECTION_PERMISSIONS), /* 11 */ SETTING_FIELD (NM_SETTING_CONNECTION_ZONE), /* 12 */ SETTING_FIELD (NM_SETTING_CONNECTION_MASTER), /* 13 */ SETTING_FIELD (NM_SETTING_CONNECTION_SLAVE_TYPE), /* 14 */ SETTING_FIELD (NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES), /* 15 */ SETTING_FIELD (NM_SETTING_CONNECTION_SECONDARIES), /* 16 */ SETTING_FIELD (NM_SETTING_CONNECTION_GATEWAY_PING_TIMEOUT), /* 17 */ SETTING_FIELD (NM_SETTING_CONNECTION_METERED), /* 18 */ SETTING_FIELD (NM_SETTING_CONNECTION_LLDP), /* 19 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_CONNECTION_ALL "name"","\ NM_SETTING_CONNECTION_ID","\ NM_SETTING_CONNECTION_UUID","\ NM_SETTING_CONNECTION_STABLE_ID","\ NM_SETTING_CONNECTION_INTERFACE_NAME","\ NM_SETTING_CONNECTION_TYPE","\ NM_SETTING_CONNECTION_AUTOCONNECT","\ NM_SETTING_CONNECTION_AUTOCONNECT_PRIORITY","\ NM_SETTING_CONNECTION_AUTOCONNECT_RETRIES","\ NM_SETTING_CONNECTION_TIMESTAMP","\ NM_SETTING_CONNECTION_READ_ONLY","\ NM_SETTING_CONNECTION_PERMISSIONS","\ NM_SETTING_CONNECTION_ZONE","\ NM_SETTING_CONNECTION_MASTER","\ NM_SETTING_CONNECTION_SLAVE_TYPE","\ NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES","\ NM_SETTING_CONNECTION_SECONDARIES","\ NM_SETTING_CONNECTION_GATEWAY_PING_TIMEOUT","\ NM_SETTING_CONNECTION_METERED","\ NM_SETTING_CONNECTION_LLDP /* Available fields for NM_SETTING_WIRED_SETTING_NAME */ NmcOutputField nmc_fields_setting_wired[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_WIRED_PORT), /* 1 */ SETTING_FIELD (NM_SETTING_WIRED_SPEED), /* 2 */ SETTING_FIELD (NM_SETTING_WIRED_DUPLEX), /* 3 */ SETTING_FIELD (NM_SETTING_WIRED_AUTO_NEGOTIATE), /* 4 */ SETTING_FIELD (NM_SETTING_WIRED_MAC_ADDRESS), /* 5 */ SETTING_FIELD (NM_SETTING_WIRED_CLONED_MAC_ADDRESS), /* 6 */ SETTING_FIELD (NM_SETTING_WIRED_GENERATE_MAC_ADDRESS_MASK), /* 7 */ SETTING_FIELD (NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST), /* 8 */ SETTING_FIELD (NM_SETTING_WIRED_MTU), /* 9 */ SETTING_FIELD (NM_SETTING_WIRED_S390_SUBCHANNELS), /* 10 */ SETTING_FIELD (NM_SETTING_WIRED_S390_NETTYPE), /* 11 */ SETTING_FIELD (NM_SETTING_WIRED_S390_OPTIONS), /* 12 */ SETTING_FIELD (NM_SETTING_WIRED_WAKE_ON_LAN), /* 13 */ SETTING_FIELD (NM_SETTING_WIRED_WAKE_ON_LAN_PASSWORD), /* 14 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_WIRED_ALL "name"","\ NM_SETTING_WIRED_PORT","\ NM_SETTING_WIRED_SPEED","\ NM_SETTING_WIRED_DUPLEX","\ NM_SETTING_WIRED_AUTO_NEGOTIATE","\ NM_SETTING_WIRED_MAC_ADDRESS","\ NM_SETTING_WIRED_CLONED_MAC_ADDRESS","\ NM_SETTING_WIRED_GENERATE_MAC_ADDRESS_MASK","\ NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST","\ NM_SETTING_WIRED_MTU","\ NM_SETTING_WIRED_S390_SUBCHANNELS","\ NM_SETTING_WIRED_S390_NETTYPE","\ NM_SETTING_WIRED_S390_OPTIONS","\ NM_SETTING_WIRED_WAKE_ON_LAN","\ NM_SETTING_WIRED_WAKE_ON_LAN_PASSWORD /* Available fields for NM_SETTING_802_1X_SETTING_NAME */ NmcOutputField nmc_fields_setting_8021X[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_802_1X_EAP), /* 1 */ SETTING_FIELD (NM_SETTING_802_1X_IDENTITY), /* 2 */ SETTING_FIELD (NM_SETTING_802_1X_ANONYMOUS_IDENTITY), /* 3 */ SETTING_FIELD (NM_SETTING_802_1X_PAC_FILE), /* 4 */ SETTING_FIELD (NM_SETTING_802_1X_CA_CERT), /* 5 */ SETTING_FIELD (NM_SETTING_802_1X_CA_CERT_PASSWORD), /* 6 */ SETTING_FIELD (NM_SETTING_802_1X_CA_CERT_PASSWORD_FLAGS), /* 7 */ SETTING_FIELD (NM_SETTING_802_1X_CA_PATH), /* 8 */ SETTING_FIELD (NM_SETTING_802_1X_SUBJECT_MATCH), /* 9 */ SETTING_FIELD (NM_SETTING_802_1X_ALTSUBJECT_MATCHES), /* 10 */ SETTING_FIELD (NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH), /* 11 */ SETTING_FIELD (NM_SETTING_802_1X_CLIENT_CERT), /* 12 */ SETTING_FIELD (NM_SETTING_802_1X_CLIENT_CERT_PASSWORD), /* 13 */ SETTING_FIELD (NM_SETTING_802_1X_CLIENT_CERT_PASSWORD_FLAGS), /* 14 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE1_PEAPVER), /* 15 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE1_PEAPLABEL), /* 16 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING), /* 17 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE1_AUTH_FLAGS), /* 18 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE2_AUTH), /* 19 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE2_AUTHEAP), /* 20 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD), /* 21 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD_FLAGS), /* 22 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE2_CA_CERT), /* 23 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE2_CA_PATH), /* 24 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH), /* 25 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES), /* 26 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE2_DOMAIN_SUFFIX_MATCH), /* 27 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE2_CLIENT_CERT), /* 28 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD), /* 29 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD_FLAGS), /* 30 */ SETTING_FIELD (NM_SETTING_802_1X_PASSWORD), /* 31 */ SETTING_FIELD (NM_SETTING_802_1X_PASSWORD_FLAGS), /* 32 */ SETTING_FIELD (NM_SETTING_802_1X_PASSWORD_RAW), /* 33 */ SETTING_FIELD (NM_SETTING_802_1X_PASSWORD_RAW_FLAGS), /* 34 */ SETTING_FIELD (NM_SETTING_802_1X_PRIVATE_KEY), /* 35 */ SETTING_FIELD (NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD), /* 36 */ SETTING_FIELD (NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS), /* 37 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE2_PRIVATE_KEY), /* 38 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD), /* 39 */ SETTING_FIELD (NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS), /* 40 */ SETTING_FIELD (NM_SETTING_802_1X_PIN), /* 41 */ SETTING_FIELD (NM_SETTING_802_1X_PIN_FLAGS), /* 42 */ SETTING_FIELD (NM_SETTING_802_1X_SYSTEM_CA_CERTS), /* 43 */ SETTING_FIELD (NM_SETTING_802_1X_AUTH_TIMEOUT), /* 44 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_802_1X_ALL "name"","\ NM_SETTING_802_1X_EAP","\ NM_SETTING_802_1X_IDENTITY","\ NM_SETTING_802_1X_ANONYMOUS_IDENTITY","\ NM_SETTING_802_1X_PAC_FILE","\ NM_SETTING_802_1X_CA_CERT","\ NM_SETTING_802_1X_CA_CERT_PASSWORD","\ NM_SETTING_802_1X_CA_CERT_PASSWORD_FLAGS","\ NM_SETTING_802_1X_CA_PATH","\ NM_SETTING_802_1X_SUBJECT_MATCH","\ NM_SETTING_802_1X_ALTSUBJECT_MATCHES","\ NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH","\ NM_SETTING_802_1X_CLIENT_CERT","\ NM_SETTING_802_1X_CLIENT_CERT_PASSWORD","\ NM_SETTING_802_1X_CLIENT_CERT_PASSWORD_FLAGS","\ NM_SETTING_802_1X_PHASE1_PEAPVER","\ NM_SETTING_802_1X_PHASE1_PEAPLABEL","\ NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING","\ NM_SETTING_802_1X_PHASE1_AUTH_FLAGS","\ NM_SETTING_802_1X_PHASE2_AUTH","\ NM_SETTING_802_1X_PHASE2_AUTHEAP","\ NM_SETTING_802_1X_PHASE2_CA_CERT","\ NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD","\ NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD_FLAGS","\ NM_SETTING_802_1X_PHASE2_CA_PATH","\ NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH","\ NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES","\ NM_SETTING_802_1X_PHASE2_DOMAIN_SUFFIX_MATCH","\ NM_SETTING_802_1X_PHASE2_CLIENT_CERT","\ NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD","\ NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD_FLAGS","\ NM_SETTING_802_1X_PASSWORD","\ NM_SETTING_802_1X_PASSWORD_FLAGS","\ NM_SETTING_802_1X_PASSWORD_RAW","\ NM_SETTING_802_1X_PASSWORD_RAW_FLAGS","\ NM_SETTING_802_1X_PRIVATE_KEY","\ NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD","\ NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS","\ NM_SETTING_802_1X_PHASE2_PRIVATE_KEY","\ NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD","\ NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS","\ NM_SETTING_802_1X_PIN","\ NM_SETTING_802_1X_PIN_FLAGS","\ NM_SETTING_802_1X_SYSTEM_CA_CERTS","\ NM_SETTING_802_1X_AUTH_TIMEOUT /* Available fields for NM_SETTING_WIRELESS_SETTING_NAME */ NmcOutputField nmc_fields_setting_wireless[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_WIRELESS_SSID), /* 1 */ SETTING_FIELD (NM_SETTING_WIRELESS_MODE), /* 2 */ SETTING_FIELD (NM_SETTING_WIRELESS_BAND), /* 3 */ SETTING_FIELD (NM_SETTING_WIRELESS_CHANNEL), /* 4 */ SETTING_FIELD (NM_SETTING_WIRELESS_BSSID), /* 5 */ SETTING_FIELD (NM_SETTING_WIRELESS_RATE), /* 6 */ SETTING_FIELD (NM_SETTING_WIRELESS_TX_POWER), /* 7 */ SETTING_FIELD (NM_SETTING_WIRELESS_MAC_ADDRESS), /* 8 */ SETTING_FIELD (NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS), /* 9 */ SETTING_FIELD (NM_SETTING_WIRELESS_GENERATE_MAC_ADDRESS_MASK), /* 10 */ SETTING_FIELD (NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST), /* 11 */ SETTING_FIELD (NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION), /* 12 */ SETTING_FIELD (NM_SETTING_WIRELESS_MTU), /* 13 */ SETTING_FIELD (NM_SETTING_WIRELESS_SEEN_BSSIDS), /* 14 */ SETTING_FIELD (NM_SETTING_WIRELESS_HIDDEN), /* 15 */ SETTING_FIELD (NM_SETTING_WIRELESS_POWERSAVE), /* 16 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_WIRELESS_ALL "name"","\ NM_SETTING_WIRELESS_SSID","\ NM_SETTING_WIRELESS_MODE","\ NM_SETTING_WIRELESS_BAND","\ NM_SETTING_WIRELESS_CHANNEL","\ NM_SETTING_WIRELESS_BSSID","\ NM_SETTING_WIRELESS_RATE","\ NM_SETTING_WIRELESS_TX_POWER","\ NM_SETTING_WIRELESS_MAC_ADDRESS","\ NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS","\ NM_SETTING_WIRELESS_GENERATE_MAC_ADDRESS_MASK","\ NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST","\ NM_SETTING_WIRELESS_MAC_ADDRESS_RANDOMIZATION","\ NM_SETTING_WIRELESS_MTU","\ NM_SETTING_WIRELESS_SEEN_BSSIDS","\ NM_SETTING_WIRELESS_HIDDEN"," \ NM_SETTING_WIRELESS_POWERSAVE /* Available fields for NM_SETTING_WIRELESS_SECURITY_SETTING_NAME */ NmcOutputField nmc_fields_setting_wireless_security[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_WIRELESS_SECURITY_KEY_MGMT), /* 1 */ SETTING_FIELD (NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX), /* 2 */ SETTING_FIELD (NM_SETTING_WIRELESS_SECURITY_AUTH_ALG), /* 3 */ SETTING_FIELD (NM_SETTING_WIRELESS_SECURITY_PROTO), /* 4 */ SETTING_FIELD (NM_SETTING_WIRELESS_SECURITY_PAIRWISE), /* 5 */ SETTING_FIELD (NM_SETTING_WIRELESS_SECURITY_GROUP), /* 6 */ SETTING_FIELD (NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME), /* 7 */ SETTING_FIELD (NM_SETTING_WIRELESS_SECURITY_WEP_KEY0), /* 8 */ SETTING_FIELD (NM_SETTING_WIRELESS_SECURITY_WEP_KEY1), /* 9 */ SETTING_FIELD (NM_SETTING_WIRELESS_SECURITY_WEP_KEY2), /* 10 */ SETTING_FIELD (NM_SETTING_WIRELESS_SECURITY_WEP_KEY3), /* 11 */ SETTING_FIELD (NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS), /* 12 */ SETTING_FIELD (NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE), /* 13 */ SETTING_FIELD (NM_SETTING_WIRELESS_SECURITY_PSK), /* 14 */ SETTING_FIELD (NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS), /* 15 */ SETTING_FIELD (NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD), /* 16 */ SETTING_FIELD (NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS), /* 17 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_WIRELESS_SECURITY_ALL "name"","\ NM_SETTING_WIRELESS_SECURITY_KEY_MGMT","\ NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX","\ NM_SETTING_WIRELESS_SECURITY_AUTH_ALG","\ NM_SETTING_WIRELESS_SECURITY_PROTO","\ NM_SETTING_WIRELESS_SECURITY_PAIRWISE","\ NM_SETTING_WIRELESS_SECURITY_GROUP","\ NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME","\ NM_SETTING_WIRELESS_SECURITY_WEP_KEY0","\ NM_SETTING_WIRELESS_SECURITY_WEP_KEY1","\ NM_SETTING_WIRELESS_SECURITY_WEP_KEY2","\ NM_SETTING_WIRELESS_SECURITY_WEP_KEY3","\ NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS","\ NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE","\ NM_SETTING_WIRELESS_SECURITY_PSK","\ NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS","\ NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD","\ NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS /* Available fields for NM_SETTING_IP4_CONFIG_SETTING_NAME */ NmcOutputField nmc_fields_setting_ip4_config[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_METHOD), /* 1 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_DNS), /* 2 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_DNS_SEARCH), /* 3 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_DNS_OPTIONS), /* 4 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_DNS_PRIORITY), /* 5 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_ADDRESSES), /* 6 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_GATEWAY), /* 7 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_ROUTES), /* 8 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_ROUTE_METRIC), /* 9 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES), /* 10 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS), /* 11 */ SETTING_FIELD (NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID), /* 12 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_DHCP_TIMEOUT), /* 13 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME), /* 14 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_DHCP_HOSTNAME), /* 15 */ SETTING_FIELD (NM_SETTING_IP4_CONFIG_DHCP_FQDN), /* 16 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_NEVER_DEFAULT), /* 17 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_MAY_FAIL), /* 18 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_DAD_TIMEOUT), /* 19 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_IP4_CONFIG_ALL "name"","\ NM_SETTING_IP_CONFIG_METHOD","\ NM_SETTING_IP_CONFIG_DNS","\ NM_SETTING_IP_CONFIG_DNS_SEARCH","\ NM_SETTING_IP_CONFIG_DNS_OPTIONS","\ NM_SETTING_IP_CONFIG_DNS_PRIORITY","\ NM_SETTING_IP_CONFIG_ADDRESSES","\ NM_SETTING_IP_CONFIG_GATEWAY","\ NM_SETTING_IP_CONFIG_ROUTES","\ NM_SETTING_IP_CONFIG_ROUTE_METRIC","\ NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES","\ NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS","\ NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID","\ NM_SETTING_IP_CONFIG_DHCP_TIMEOUT","\ NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME","\ NM_SETTING_IP_CONFIG_DHCP_HOSTNAME","\ NM_SETTING_IP4_CONFIG_DHCP_FQDN","\ NM_SETTING_IP_CONFIG_NEVER_DEFAULT","\ NM_SETTING_IP_CONFIG_MAY_FAIL","\ NM_SETTING_IP_CONFIG_DAD_TIMEOUT /* Available fields for NM_SETTING_IP6_CONFIG_SETTING_NAME */ NmcOutputField nmc_fields_setting_ip6_config[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_METHOD), /* 1 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_DNS), /* 2 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_DNS_SEARCH), /* 3 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_DNS_OPTIONS), /* 4 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_DNS_PRIORITY), /* 5 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_ADDRESSES), /* 6 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_GATEWAY), /* 7 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_ROUTES), /* 8 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_ROUTE_METRIC), /* 9 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES), /* 10 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS), /* 11 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_NEVER_DEFAULT), /* 12 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_MAY_FAIL), /* 13 */ SETTING_FIELD (NM_SETTING_IP6_CONFIG_IP6_PRIVACY), /* 14 */ SETTING_FIELD (NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE), /* 15 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME), /* 16 */ SETTING_FIELD (NM_SETTING_IP_CONFIG_DHCP_HOSTNAME), /* 17 */ SETTING_FIELD (NM_SETTING_IP6_CONFIG_TOKEN), /* 18 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_IP6_CONFIG_ALL "name"","\ NM_SETTING_IP_CONFIG_METHOD","\ NM_SETTING_IP_CONFIG_DNS","\ NM_SETTING_IP_CONFIG_DNS_SEARCH","\ NM_SETTING_IP_CONFIG_DNS_OPTIONS","\ NM_SETTING_IP_CONFIG_DNS_PRIORITY","\ NM_SETTING_IP_CONFIG_ADDRESSES","\ NM_SETTING_IP_CONFIG_GATEWAY","\ NM_SETTING_IP_CONFIG_ROUTES","\ NM_SETTING_IP_CONFIG_ROUTE_METRIC","\ NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES","\ NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS","\ NM_SETTING_IP_CONFIG_NEVER_DEFAULT","\ NM_SETTING_IP_CONFIG_MAY_FAIL","\ NM_SETTING_IP6_CONFIG_IP6_PRIVACY","\ NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE","\ NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME","\ NM_SETTING_IP_CONFIG_DHCP_HOSTNAME","\ NM_SETTING_IP6_CONFIG_TOKEN /* Available fields for NM_SETTING_SERIAL_SETTING_NAME */ NmcOutputField nmc_fields_setting_serial[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_SERIAL_BAUD), /* 1 */ SETTING_FIELD (NM_SETTING_SERIAL_BITS), /* 2 */ SETTING_FIELD (NM_SETTING_SERIAL_PARITY), /* 3 */ SETTING_FIELD (NM_SETTING_SERIAL_STOPBITS), /* 4 */ SETTING_FIELD (NM_SETTING_SERIAL_SEND_DELAY), /* 5 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_SERIAL_ALL "name"","\ NM_SETTING_SERIAL_BAUD","\ NM_SETTING_SERIAL_BITS","\ NM_SETTING_SERIAL_PARITY","\ NM_SETTING_SERIAL_STOPBITS","\ NM_SETTING_SERIAL_SEND_DELAY /* Available fields for NM_SETTING_PPP_SETTING_NAME */ NmcOutputField nmc_fields_setting_ppp[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_PPP_NOAUTH), /* 1 */ SETTING_FIELD (NM_SETTING_PPP_REFUSE_EAP), /* 2 */ SETTING_FIELD (NM_SETTING_PPP_REFUSE_PAP), /* 3 */ SETTING_FIELD (NM_SETTING_PPP_REFUSE_CHAP), /* 4 */ SETTING_FIELD (NM_SETTING_PPP_REFUSE_MSCHAP), /* 5 */ SETTING_FIELD (NM_SETTING_PPP_REFUSE_MSCHAPV2), /* 6 */ SETTING_FIELD (NM_SETTING_PPP_NOBSDCOMP), /* 7 */ SETTING_FIELD (NM_SETTING_PPP_NODEFLATE), /* 8 */ SETTING_FIELD (NM_SETTING_PPP_NO_VJ_COMP), /* 9 */ SETTING_FIELD (NM_SETTING_PPP_REQUIRE_MPPE), /* 10 */ SETTING_FIELD (NM_SETTING_PPP_REQUIRE_MPPE_128), /* 11 */ SETTING_FIELD (NM_SETTING_PPP_MPPE_STATEFUL), /* 12 */ SETTING_FIELD (NM_SETTING_PPP_CRTSCTS), /* 13 */ SETTING_FIELD (NM_SETTING_PPP_BAUD), /* 14 */ SETTING_FIELD (NM_SETTING_PPP_MRU), /* 15 */ SETTING_FIELD (NM_SETTING_PPP_MTU), /* 16 */ SETTING_FIELD (NM_SETTING_PPP_LCP_ECHO_FAILURE), /* 17 */ SETTING_FIELD (NM_SETTING_PPP_LCP_ECHO_INTERVAL), /* 18 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_PPP_ALL "name"","\ NM_SETTING_PPP_NOAUTH","\ NM_SETTING_PPP_REFUSE_EAP","\ NM_SETTING_PPP_REFUSE_PAP","\ NM_SETTING_PPP_REFUSE_CHAP","\ NM_SETTING_PPP_REFUSE_MSCHAP","\ NM_SETTING_PPP_REFUSE_MSCHAPV2","\ NM_SETTING_PPP_NOBSDCOMP","\ NM_SETTING_PPP_NODEFLATE","\ NM_SETTING_PPP_NO_VJ_COMP","\ NM_SETTING_PPP_REQUIRE_MPPE","\ NM_SETTING_PPP_REQUIRE_MPPE_128","\ NM_SETTING_PPP_MPPE_STATEFUL","\ NM_SETTING_PPP_CRTSCTS","\ NM_SETTING_PPP_BAUD","\ NM_SETTING_PPP_MRU","\ NM_SETTING_PPP_MTU","\ NM_SETTING_PPP_LCP_ECHO_FAILURE","\ NM_SETTING_PPP_LCP_ECHO_INTERVAL /* Available fields for NM_SETTING_PPPOE_SETTING_NAME */ NmcOutputField nmc_fields_setting_pppoe[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_PPPOE_SERVICE), /* 1 */ SETTING_FIELD (NM_SETTING_PPPOE_USERNAME), /* 2 */ SETTING_FIELD (NM_SETTING_PPPOE_PASSWORD), /* 3 */ SETTING_FIELD (NM_SETTING_PPPOE_PASSWORD_FLAGS), /* 4 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_PPPOE_ALL "name"","\ NM_SETTING_PPPOE_SERVICE","\ NM_SETTING_PPPOE_USERNAME","\ NM_SETTING_PPPOE_PASSWORD","\ NM_SETTING_PPPOE_PASSWORD_FLAGS /* Available fields for NM_SETTING_ADSL_SETTING_NAME */ NmcOutputField nmc_fields_setting_adsl[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_ADSL_USERNAME), /* 1 */ SETTING_FIELD (NM_SETTING_ADSL_PASSWORD), /* 2 */ SETTING_FIELD (NM_SETTING_ADSL_PASSWORD_FLAGS), /* 3 */ SETTING_FIELD (NM_SETTING_ADSL_PROTOCOL), /* 4 */ SETTING_FIELD (NM_SETTING_ADSL_ENCAPSULATION), /* 5 */ SETTING_FIELD (NM_SETTING_ADSL_VPI), /* 6 */ SETTING_FIELD (NM_SETTING_ADSL_VCI), /* 7 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_ADSL_ALL "name"","\ NM_SETTING_ADSL_USERNAME","\ NM_SETTING_ADSL_PASSWORD","\ NM_SETTING_ADSL_PASSWORD_FLAGS","\ NM_SETTING_ADSL_PROTOCOL","\ NM_SETTING_ADSL_ENCAPSULATION","\ NM_SETTING_ADSL_VPI","\ NM_SETTING_ADSL_VCI /* Available fields for NM_SETTING_GSM_SETTING_NAME */ NmcOutputField nmc_fields_setting_gsm[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_GSM_NUMBER), /* 1 */ SETTING_FIELD (NM_SETTING_GSM_USERNAME), /* 2 */ SETTING_FIELD (NM_SETTING_GSM_PASSWORD), /* 3 */ SETTING_FIELD (NM_SETTING_GSM_PASSWORD_FLAGS), /* 4 */ SETTING_FIELD (NM_SETTING_GSM_APN), /* 5 */ SETTING_FIELD (NM_SETTING_GSM_NETWORK_ID), /* 6 */ SETTING_FIELD (NM_SETTING_GSM_PIN), /* 7 */ SETTING_FIELD (NM_SETTING_GSM_PIN_FLAGS), /* 8 */ SETTING_FIELD (NM_SETTING_GSM_HOME_ONLY), /* 9 */ SETTING_FIELD (NM_SETTING_GSM_DEVICE_ID), /* 10 */ SETTING_FIELD (NM_SETTING_GSM_SIM_ID), /* 11 */ SETTING_FIELD (NM_SETTING_GSM_SIM_OPERATOR_ID), /* 12 */ SETTING_FIELD (NM_SETTING_GSM_MTU), /* 13 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_GSM_ALL "name"","\ NM_SETTING_GSM_NUMBER","\ NM_SETTING_GSM_USERNAME","\ NM_SETTING_GSM_PASSWORD","\ NM_SETTING_GSM_PASSWORD_FLAGS","\ NM_SETTING_GSM_APN","\ NM_SETTING_GSM_NETWORK_ID","\ NM_SETTING_GSM_PIN","\ NM_SETTING_GSM_PIN_FLAGS","\ NM_SETTING_GSM_HOME_ONLY","\ NM_SETTING_GSM_DEVICE_ID","\ NM_SETTING_GSM_SIM_ID","\ NM_SETTING_GSM_SIM_OPERATOR_ID","\ NM_SETTING_GSM_MTU /* Available fields for NM_SETTING_CDMA_SETTING_NAME */ NmcOutputField nmc_fields_setting_cdma[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_CDMA_NUMBER), /* 1 */ SETTING_FIELD (NM_SETTING_CDMA_USERNAME), /* 2 */ SETTING_FIELD (NM_SETTING_CDMA_PASSWORD), /* 3 */ SETTING_FIELD (NM_SETTING_CDMA_PASSWORD_FLAGS), /* 4 */ SETTING_FIELD (NM_SETTING_CDMA_MTU), /* 5 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_CDMA_ALL "name"","\ NM_SETTING_CDMA_NUMBER","\ NM_SETTING_CDMA_USERNAME","\ NM_SETTING_CDMA_PASSWORD","\ NM_SETTING_CDMA_PASSWORD_FLAGS","\ NM_SETTING_CDMA_MTU /* Available fields for NM_SETTING_BLUETOOTH_SETTING_NAME */ NmcOutputField nmc_fields_setting_bluetooth[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_BLUETOOTH_BDADDR), /* 1 */ SETTING_FIELD (NM_SETTING_BLUETOOTH_TYPE), /* 2 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_BLUETOOTH_ALL "name"","\ NM_SETTING_BLUETOOTH_BDADDR","\ NM_SETTING_BLUETOOTH_TYPE /* Available fields for NM_SETTING_OLPC_MESH_SETTING_NAME */ NmcOutputField nmc_fields_setting_olpc_mesh[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_OLPC_MESH_SSID), /* 1 */ SETTING_FIELD (NM_SETTING_OLPC_MESH_CHANNEL), /* 2 */ SETTING_FIELD (NM_SETTING_OLPC_MESH_DHCP_ANYCAST_ADDRESS), /* 3 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_OLPC_MESH_ALL "name"","\ NM_SETTING_OLPC_MESH_SSID","\ NM_SETTING_OLPC_MESH_CHANNEL","\ NM_SETTING_OLPC_MESH_DHCP_ANYCAST_ADDRESS /* Available fields for NM_SETTING_VPN_SETTING_NAME */ NmcOutputField nmc_fields_setting_vpn[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_VPN_SERVICE_TYPE), /* 1 */ SETTING_FIELD (NM_SETTING_VPN_USER_NAME), /* 2 */ SETTING_FIELD (NM_SETTING_VPN_DATA), /* 3 */ SETTING_FIELD (NM_SETTING_VPN_SECRETS), /* 4 */ SETTING_FIELD (NM_SETTING_VPN_PERSISTENT), /* 5 */ SETTING_FIELD (NM_SETTING_VPN_TIMEOUT), /* 6 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_VPN_ALL "name"","\ NM_SETTING_VPN_SERVICE_TYPE","\ NM_SETTING_VPN_USER_NAME","\ NM_SETTING_VPN_DATA","\ NM_SETTING_VPN_SECRETS","\ NM_SETTING_VPN_PERSISTENT","\ NM_SETTING_VPN_TIMEOUT /* Available fields for NM_SETTING_WIMAX_SETTING_NAME */ NmcOutputField nmc_fields_setting_wimax[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_WIMAX_MAC_ADDRESS), /* 1 */ SETTING_FIELD (NM_SETTING_WIMAX_NETWORK_NAME), /* 2 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_WIMAX_ALL "name"","\ NM_SETTING_WIMAX_MAC_ADDRESS","\ NM_SETTING_WIMAX_NETWORK_NAME /* Available fields for NM_SETTING_INFINIBAND_SETTING_NAME */ NmcOutputField nmc_fields_setting_infiniband[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_INFINIBAND_MAC_ADDRESS), /* 1 */ SETTING_FIELD (NM_SETTING_INFINIBAND_MTU), /* 2 */ SETTING_FIELD (NM_SETTING_INFINIBAND_TRANSPORT_MODE), /* 3 */ SETTING_FIELD (NM_SETTING_INFINIBAND_P_KEY), /* 4 */ SETTING_FIELD (NM_SETTING_INFINIBAND_PARENT), /* 5 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_INFINIBAND_ALL "name"","\ NM_SETTING_INFINIBAND_MAC_ADDRESS","\ NM_SETTING_INFINIBAND_MTU"," \ NM_SETTING_INFINIBAND_TRANSPORT_MODE"," \ NM_SETTING_INFINIBAND_P_KEY"," \ NM_SETTING_INFINIBAND_PARENT /* Available fields for NM_SETTING_BOND_SETTING_NAME */ NmcOutputField nmc_fields_setting_bond[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_BOND_OPTIONS), /* 1 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_BOND_ALL "name"","\ NM_SETTING_BOND_OPTIONS /* Available fields for NM_SETTING_VLAN_SETTING_NAME */ NmcOutputField nmc_fields_setting_vlan[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_VLAN_PARENT), /* 1 */ SETTING_FIELD (NM_SETTING_VLAN_ID), /* 2 */ SETTING_FIELD (NM_SETTING_VLAN_FLAGS), /* 3 */ SETTING_FIELD (NM_SETTING_VLAN_INGRESS_PRIORITY_MAP), /* 4 */ SETTING_FIELD (NM_SETTING_VLAN_EGRESS_PRIORITY_MAP), /* 5 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_VLAN_ALL "name"","\ NM_SETTING_VLAN_PARENT","\ NM_SETTING_VLAN_ID","\ NM_SETTING_VLAN_FLAGS","\ NM_SETTING_VLAN_INGRESS_PRIORITY_MAP","\ NM_SETTING_VLAN_EGRESS_PRIORITY_MAP /* Available fields for NM_SETTING_BRIDGE_SETTING_NAME */ NmcOutputField nmc_fields_setting_bridge[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_BRIDGE_MAC_ADDRESS), /* 1 */ SETTING_FIELD (NM_SETTING_BRIDGE_STP), /* 2 */ SETTING_FIELD (NM_SETTING_BRIDGE_PRIORITY), /* 3 */ SETTING_FIELD (NM_SETTING_BRIDGE_FORWARD_DELAY), /* 4 */ SETTING_FIELD (NM_SETTING_BRIDGE_HELLO_TIME), /* 5 */ SETTING_FIELD (NM_SETTING_BRIDGE_MAX_AGE), /* 6 */ SETTING_FIELD (NM_SETTING_BRIDGE_AGEING_TIME), /* 7 */ SETTING_FIELD (NM_SETTING_BRIDGE_MULTICAST_SNOOPING), /* 8 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_BRIDGE_ALL "name"","\ NM_SETTING_BRIDGE_MAC_ADDRESS","\ NM_SETTING_BRIDGE_STP","\ NM_SETTING_BRIDGE_PRIORITY","\ NM_SETTING_BRIDGE_FORWARD_DELAY","\ NM_SETTING_BRIDGE_HELLO_TIME","\ NM_SETTING_BRIDGE_MAX_AGE","\ NM_SETTING_BRIDGE_AGEING_TIME","\ NM_SETTING_BRIDGE_MULTICAST_SNOOPING /* Available fields for NM_SETTING_BRIDGE_PORT_SETTING_NAME */ NmcOutputField nmc_fields_setting_bridge_port[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_BRIDGE_PORT_PRIORITY), /* 1 */ SETTING_FIELD (NM_SETTING_BRIDGE_PORT_PATH_COST), /* 2 */ SETTING_FIELD (NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE), /* 3 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_BRIDGE_PORT_ALL "name"","\ NM_SETTING_BRIDGE_PORT_PRIORITY","\ NM_SETTING_BRIDGE_PORT_PATH_COST","\ NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE /* Available fields for NM_SETTING_TEAM_SETTING_NAME */ NmcOutputField nmc_fields_setting_team[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_TEAM_CONFIG), /* 1 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_TEAM_ALL "name"","\ NM_SETTING_TEAM_CONFIG /* Available fields for NM_SETTING_TEAM_PORT_SETTING_NAME */ NmcOutputField nmc_fields_setting_team_port[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_TEAM_PORT_CONFIG), /* 1 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_TEAM_PORT_ALL "name"","\ NM_SETTING_TEAM_PORT_CONFIG /* Available fields for NM_SETTING_DCB_SETTING_NAME */ NmcOutputField nmc_fields_setting_dcb[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_DCB_APP_FCOE_FLAGS), /* 1 */ SETTING_FIELD (NM_SETTING_DCB_APP_FCOE_PRIORITY), /* 2 */ SETTING_FIELD (NM_SETTING_DCB_APP_FCOE_MODE), /* 3 */ SETTING_FIELD (NM_SETTING_DCB_APP_ISCSI_FLAGS), /* 4 */ SETTING_FIELD (NM_SETTING_DCB_APP_ISCSI_PRIORITY), /* 5 */ SETTING_FIELD (NM_SETTING_DCB_APP_FIP_FLAGS), /* 6 */ SETTING_FIELD (NM_SETTING_DCB_APP_FIP_PRIORITY), /* 7 */ SETTING_FIELD (NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS), /* 8 */ SETTING_FIELD (NM_SETTING_DCB_PRIORITY_FLOW_CONTROL), /* 9 */ SETTING_FIELD (NM_SETTING_DCB_PRIORITY_GROUP_FLAGS), /* 10 */ SETTING_FIELD (NM_SETTING_DCB_PRIORITY_GROUP_ID), /* 11 */ SETTING_FIELD (NM_SETTING_DCB_PRIORITY_GROUP_BANDWIDTH), /* 12 */ SETTING_FIELD (NM_SETTING_DCB_PRIORITY_BANDWIDTH), /* 13 */ SETTING_FIELD (NM_SETTING_DCB_PRIORITY_STRICT_BANDWIDTH), /* 14 */ SETTING_FIELD (NM_SETTING_DCB_PRIORITY_TRAFFIC_CLASS), /* 15 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_DCB_ALL "name"","\ NM_SETTING_DCB_APP_FCOE_FLAGS","\ NM_SETTING_DCB_APP_FCOE_PRIORITY","\ NM_SETTING_DCB_APP_FCOE_MODE","\ NM_SETTING_DCB_APP_ISCSI_FLAGS","\ NM_SETTING_DCB_APP_ISCSI_PRIORITY","\ NM_SETTING_DCB_APP_FIP_FLAGS","\ NM_SETTING_DCB_APP_FIP_PRIORITY","\ NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS","\ NM_SETTING_DCB_PRIORITY_FLOW_CONTROL","\ NM_SETTING_DCB_PRIORITY_GROUP_FLAGS","\ NM_SETTING_DCB_PRIORITY_GROUP_ID","\ NM_SETTING_DCB_PRIORITY_GROUP_BANDWIDTH","\ NM_SETTING_DCB_PRIORITY_BANDWIDTH","\ NM_SETTING_DCB_PRIORITY_STRICT_BANDWIDTH","\ NM_SETTING_DCB_PRIORITY_TRAFFIC_CLASS /* Available fields for NM_SETTING_DUMMY_SETTING_NAME */ NmcOutputField nmc_fields_setting_dummy[] = { SETTING_FIELD ("name"), /* 0 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_DUMMY_ALL "name" /* Available fields for NM_SETTING_TUN_SETTING_NAME */ NmcOutputField nmc_fields_setting_tun[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_TUN_MODE), /* 1 */ SETTING_FIELD (NM_SETTING_TUN_OWNER), /* 2 */ SETTING_FIELD (NM_SETTING_TUN_GROUP), /* 3 */ SETTING_FIELD (NM_SETTING_TUN_PI), /* 4 */ SETTING_FIELD (NM_SETTING_TUN_VNET_HDR), /* 5 */ SETTING_FIELD (NM_SETTING_TUN_MULTI_QUEUE), /* 6 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_TUN_ALL "name"","\ NM_SETTING_TUN_MODE","\ NM_SETTING_TUN_OWNER","\ NM_SETTING_TUN_GROUP","\ NM_SETTING_TUN_PI","\ NM_SETTING_TUN_VNET_HDR","\ NM_SETTING_TUN_MULTI_QUEUE /* Available fields for NM_SETTING_IP_TUNNEL_SETTING_NAME */ NmcOutputField nmc_fields_setting_ip_tunnel[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_IP_TUNNEL_MODE), /* 1 */ SETTING_FIELD (NM_SETTING_IP_TUNNEL_PARENT), /* 2 */ SETTING_FIELD (NM_SETTING_IP_TUNNEL_LOCAL), /* 3 */ SETTING_FIELD (NM_SETTING_IP_TUNNEL_REMOTE), /* 4 */ SETTING_FIELD (NM_SETTING_IP_TUNNEL_TTL), /* 5 */ SETTING_FIELD (NM_SETTING_IP_TUNNEL_TOS), /* 6 */ SETTING_FIELD (NM_SETTING_IP_TUNNEL_PATH_MTU_DISCOVERY), /* 7 */ SETTING_FIELD (NM_SETTING_IP_TUNNEL_INPUT_KEY), /* 8 */ SETTING_FIELD (NM_SETTING_IP_TUNNEL_OUTPUT_KEY), /* 9 */ SETTING_FIELD (NM_SETTING_IP_TUNNEL_ENCAPSULATION_LIMIT), /* 10 */ SETTING_FIELD (NM_SETTING_IP_TUNNEL_FLOW_LABEL), /* 11 */ SETTING_FIELD (NM_SETTING_IP_TUNNEL_MTU), /* 12 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_IP_TUNNEL_ALL "name"","\ NM_SETTING_IP_TUNNEL_MODE","\ NM_SETTING_IP_TUNNEL_PARENT","\ NM_SETTING_IP_TUNNEL_LOCAL","\ NM_SETTING_IP_TUNNEL_REMOTE","\ NM_SETTING_IP_TUNNEL_TTL","\ NM_SETTING_IP_TUNNEL_TOS","\ NM_SETTING_IP_TUNNEL_PATH_MTU_DISCOVERY","\ NM_SETTING_IP_TUNNEL_INPUT_KEY","\ NM_SETTING_IP_TUNNEL_OUTPUT_KEY","\ NM_SETTING_IP_TUNNEL_ENCAPSULATION_LIMIT","\ NM_SETTING_IP_TUNNEL_FLOW_LABEL","\ NM_SETTING_IP_TUNNEL_MTU /* Available fields for NM_SETTING_MACSEC_SETTING_NAME */ NmcOutputField nmc_fields_setting_macsec[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_MACSEC_PARENT), /* 1 */ SETTING_FIELD (NM_SETTING_MACSEC_MODE), /* 2 */ SETTING_FIELD (NM_SETTING_MACSEC_ENCRYPT), /* 3 */ SETTING_FIELD (NM_SETTING_MACSEC_MKA_CAK), /* 4 */ SETTING_FIELD (NM_SETTING_MACSEC_MKA_CAK_FLAGS), /* 5 */ SETTING_FIELD (NM_SETTING_MACSEC_MKA_CKN), /* 6 */ SETTING_FIELD (NM_SETTING_MACSEC_PORT), /* 7 */ SETTING_FIELD (NM_SETTING_MACSEC_VALIDATION), /* 8 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_MACSEC_ALL "name"","\ NM_SETTING_MACSEC_PARENT","\ NM_SETTING_MACSEC_MODE","\ NM_SETTING_MACSEC_ENCRYPT","\ NM_SETTING_MACSEC_MKA_CAK","\ NM_SETTING_MACSEC_MKA_CAK_FLAGS","\ NM_SETTING_MACSEC_MKA_CKN","\ NM_SETTING_MACSEC_PORT","\ NM_SETTING_MACSEC_VALIDATION /* Available fields for NM_SETTING_MACVLAN_SETTING_NAME */ NmcOutputField nmc_fields_setting_macvlan[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_MACVLAN_PARENT), /* 1 */ SETTING_FIELD (NM_SETTING_MACVLAN_MODE), /* 2 */ SETTING_FIELD (NM_SETTING_MACVLAN_PROMISCUOUS), /* 3 */ SETTING_FIELD (NM_SETTING_MACVLAN_TAP), /* 4 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_MACVLAN_ALL "name"","\ NM_SETTING_MACVLAN_PARENT","\ NM_SETTING_MACVLAN_MODE","\ NM_SETTING_MACVLAN_PROMISCUOUS","\ NM_SETTING_MACVLAN_TAP /* Available fields for NM_SETTING_VXLAN_SETTING_NAME */ NmcOutputField nmc_fields_setting_vxlan[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_VXLAN_PARENT), /* 1 */ SETTING_FIELD (NM_SETTING_VXLAN_ID), /* 2 */ SETTING_FIELD (NM_SETTING_VXLAN_LOCAL), /* 3 */ SETTING_FIELD (NM_SETTING_VXLAN_REMOTE), /* 4 */ SETTING_FIELD (NM_SETTING_VXLAN_SOURCE_PORT_MIN), /* 5 */ SETTING_FIELD (NM_SETTING_VXLAN_SOURCE_PORT_MAX), /* 6 */ SETTING_FIELD (NM_SETTING_VXLAN_DESTINATION_PORT), /* 7 */ SETTING_FIELD (NM_SETTING_VXLAN_TOS), /* 8 */ SETTING_FIELD (NM_SETTING_VXLAN_TTL), /* 9 */ SETTING_FIELD (NM_SETTING_VXLAN_AGEING), /* 10 */ SETTING_FIELD (NM_SETTING_VXLAN_LIMIT), /* 11 */ SETTING_FIELD (NM_SETTING_VXLAN_LEARNING), /* 12 */ SETTING_FIELD (NM_SETTING_VXLAN_PROXY), /* 13 */ SETTING_FIELD (NM_SETTING_VXLAN_RSC), /* 14 */ SETTING_FIELD (NM_SETTING_VXLAN_L2_MISS), /* 15 */ SETTING_FIELD (NM_SETTING_VXLAN_L3_MISS), /* 16 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_VXLAN_ALL "name"","\ NM_SETTING_VXLAN_PARENT","\ NM_SETTING_VXLAN_ID","\ NM_SETTING_VXLAN_LOCAL","\ NM_SETTING_VXLAN_REMOTE","\ NM_SETTING_VXLAN_SOURCE_PORT_MIN","\ NM_SETTING_VXLAN_SOURCE_PORT_MAX","\ NM_SETTING_VXLAN_DESTINATION_PORT","\ NM_SETTING_VXLAN_TOS","\ NM_SETTING_VXLAN_TTL","\ NM_SETTING_VXLAN_AGEING","\ NM_SETTING_VXLAN_LIMIT","\ NM_SETTING_VXLAN_LEARNING","\ NM_SETTING_VXLAN_PROXY","\ NM_SETTING_VXLAN_RSC","\ NM_SETTING_VXLAN_L2_MISS","\ NM_SETTING_VXLAN_L3_MISS /* Available fields for NM_SETTING_PROXY_SETTING_NAME */ NmcOutputField nmc_fields_setting_proxy[] = { SETTING_FIELD ("name"), /* 0 */ SETTING_FIELD (NM_SETTING_PROXY_METHOD), /* 1 */ SETTING_FIELD (NM_SETTING_PROXY_BROWSER_ONLY), /* 2 */ SETTING_FIELD (NM_SETTING_PROXY_PAC_URL), /* 3 */ SETTING_FIELD (NM_SETTING_PROXY_PAC_SCRIPT), /* 4 */ {NULL, NULL, 0, NULL, FALSE, FALSE, 0} }; #define NMC_FIELDS_SETTING_PROXY_ALL "name"","\ NM_SETTING_PROXY_METHOD","\ NM_SETTING_PROXY_BROWSER_ONLY","\ NM_SETTING_PROXY_PAC_URL","\ NM_SETTING_PROXY_PAC_SCRIPT /*----------------------------------------------------------------------------*/ static char * wep_key_type_to_string (NMWepKeyType type) { switch (type) { case NM_WEP_KEY_TYPE_KEY: return g_strdup_printf (_("%d (key)"), type); case NM_WEP_KEY_TYPE_PASSPHRASE: return g_strdup_printf (_("%d (passphrase)"), type); case NM_WEP_KEY_TYPE_UNKNOWN: default: return g_strdup_printf (_("%d (unknown)"), type); } } static char * bytes_to_string (GBytes *bytes) { const guint8 *data; gsize len; GString *cert = NULL; int i; if (!bytes) return NULL; data = g_bytes_get_data (bytes, &len); cert = g_string_new (NULL); for (i = 0; i < len; i++) g_string_append_printf (cert, "%02X", data[i]); return g_string_free (cert, FALSE); } static char * vlan_flags_to_string (guint32 flags, NmcPropertyGetType get_type) { GString *flag_str; if (get_type == NMC_PROPERTY_GET_PARSABLE) return g_strdup_printf ("%u", flags); if (flags == 0) return g_strdup (_("0 (NONE)")); flag_str = g_string_new (NULL); g_string_printf (flag_str, "%d (", flags); if (flags & NM_VLAN_FLAG_REORDER_HEADERS) g_string_append (flag_str, _("REORDER_HEADERS, ")); if (flags & NM_VLAN_FLAG_GVRP) g_string_append (flag_str, _("GVRP, ")); if (flags & NM_VLAN_FLAG_LOOSE_BINDING) g_string_append (flag_str, _("LOOSE_BINDING, ")); if (flags & NM_VLAN_FLAG_MVRP) g_string_append (flag_str, _("MVRP, ")); if (flag_str->str[flag_str->len-1] == '(') g_string_append (flag_str, _("unknown")); else g_string_truncate (flag_str, flag_str->len-2); /* chop off trailing ', ' */ g_string_append_c (flag_str, ')'); return g_string_free (flag_str, FALSE); } static char * vlan_priorities_to_string (NMSettingVlan *s_vlan, NMVlanPriorityMap map) { GString *priorities; int i; priorities = g_string_new (NULL); for (i = 0; i < nm_setting_vlan_get_num_priorities (s_vlan, map); i++) { guint32 from, to; if (nm_setting_vlan_get_priority (s_vlan, map, i, &from, &to)) g_string_append_printf (priorities, "%d:%d,", from, to); } if (priorities->len) g_string_truncate (priorities, priorities->len-1); /* chop off trailing ',' */ return g_string_free (priorities, FALSE); } static char * ip6_privacy_to_string (NMSettingIP6ConfigPrivacy ip6_privacy, NmcPropertyGetType get_type) { if (get_type == NMC_PROPERTY_GET_PARSABLE) return g_strdup_printf ("%d", ip6_privacy); switch (ip6_privacy) { case NM_SETTING_IP6_CONFIG_PRIVACY_DISABLED: return g_strdup_printf (_("%d (disabled)"), ip6_privacy); case NM_SETTING_IP6_CONFIG_PRIVACY_PREFER_PUBLIC_ADDR: return g_strdup_printf (_("%d (enabled, prefer public IP)"), ip6_privacy); case NM_SETTING_IP6_CONFIG_PRIVACY_PREFER_TEMP_ADDR: return g_strdup_printf (_("%d (enabled, prefer temporary IP)"), ip6_privacy); default: return g_strdup_printf (_("%d (unknown)"), ip6_privacy); } } static char * autoconnect_slaves_to_string (NMSettingConnectionAutoconnectSlaves autoconnect_slaves, NmcPropertyGetType get_type) { if (get_type == NMC_PROPERTY_GET_PARSABLE) return g_strdup_printf ("%d", autoconnect_slaves); switch (autoconnect_slaves) { case NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES_NO: return g_strdup_printf (_("%d (no)"), autoconnect_slaves); case NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES_YES: return g_strdup_printf (_("%d (yes)"), autoconnect_slaves); case NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES_DEFAULT: default: return g_strdup_printf (_("%d (default)"), autoconnect_slaves); } } static char * secret_flags_to_string (guint32 flags, NmcPropertyGetType get_type) { GString *flag_str; if (get_type == NMC_PROPERTY_GET_PARSABLE) return g_strdup_printf ("%u", flags); if (flags == 0) return g_strdup (_("0 (none)")); flag_str = g_string_new (NULL); g_string_printf (flag_str, "%u (", flags); if (flags & NM_SETTING_SECRET_FLAG_AGENT_OWNED) g_string_append (flag_str, _("agent-owned, ")); if (flags & NM_SETTING_SECRET_FLAG_NOT_SAVED) g_string_append (flag_str, _("not saved, ")); if (flags & NM_SETTING_SECRET_FLAG_NOT_REQUIRED) g_string_append (flag_str, _("not required, ")); if (flag_str->str[flag_str->len-1] == '(') g_string_append (flag_str, _("unknown")); else g_string_truncate (flag_str, flag_str->len-2); /* chop off trailing ', ' */ g_string_append_c (flag_str, ')'); return g_string_free (flag_str, FALSE); } static void vpn_data_item (const char *key, const char *value, gpointer user_data) { GString *ret_str = (GString *) user_data; if (ret_str->len != 0) g_string_append (ret_str, ", "); g_string_append_printf (ret_str, "%s = %s", key, value); } /* generic helper macros for property functions */ #define DEFINE_GETTER(func_name, property_name) \ static char * \ func_name (NMSetting *setting, NmcPropertyGetType get_type) \ { \ char *s; \ GValue val = G_VALUE_INIT; \ g_value_init (&val, G_TYPE_STRING); \ g_object_get_property (G_OBJECT (setting), property_name, &val); \ s = g_value_dup_string (&val); \ g_value_unset (&val); \ return s; \ } #define DEFINE_GETTER_WITH_DEFAULT(func_name, property_name, check_is_default) \ static char * \ func_name (NMSetting *setting, NmcPropertyGetType get_type) \ { \ const char *s; \ char *s_full; \ GValue val = G_VALUE_INIT; \ \ if ((check_is_default)) { \ if (get_type == NMC_PROPERTY_GET_PARSABLE) \ return g_strdup (""); \ return g_strdup (_("(default)")); \ } \ \ g_value_init (&val, G_TYPE_STRING); \ g_object_get_property (G_OBJECT (setting), property_name, &val); \ s = g_value_get_string (&val); \ if (get_type == NMC_PROPERTY_GET_PARSABLE) \ s_full = g_strdup (s && *s ? s : " "); \ else \ s_full = s ? g_strdup_printf ("\"%s\"", s) : g_strdup (""); \ g_value_unset (&val); \ return s_full; \ } #define DEFINE_SECRET_FLAGS_GETTER(func_name, property_name) \ static char * \ func_name (NMSetting *setting, NmcPropertyGetType get_type) \ { \ guint v; \ GValue val = G_VALUE_INIT; \ g_value_init (&val, G_TYPE_UINT); \ g_object_get_property (G_OBJECT (setting), property_name, &val); \ v = g_value_get_uint (&val); \ g_value_unset (&val); \ return secret_flags_to_string (v, get_type); \ } #define DEFINE_SETTER_STR_LIST_MULTI(def_func, s_macro, set_func) \ static gboolean \ def_func (NMSetting *setting, \ const char *prop, \ const char *val, \ const char **valid_strv, \ GError **error) \ { \ char **strv = NULL, **iter; \ const char *item; \ g_return_val_if_fail (error == NULL || *error == NULL, FALSE); \ strv = nmc_strsplit_set (val, " \t,", 0); \ for (iter = strv; iter && *iter; iter++) { \ if (!(item = nmc_string_is_valid (g_strstrip (*iter), valid_strv, error))) { \ g_strfreev (strv); \ return FALSE; \ } \ set_func (s_macro (setting), item); \ } \ g_strfreev (strv); \ return TRUE; \ } #define DEFINE_SETTER_OPTIONS(def_func, s_macro, s_type, add_func, valid_func1, valid_func2) \ static gboolean \ def_func (NMSetting *setting, const char *prop, const char *val, GError **error) \ { \ char **strv = NULL, **iter; \ const char **(*valid_func1_p) (s_type *) = valid_func1; \ const char * (*valid_func2_p) (const char *, const char *, GError **) = valid_func2; \ const char *opt_name, *opt_val; \ \ g_return_val_if_fail (error == NULL || *error == NULL, FALSE); \ \ strv = nmc_strsplit_set (val, ",", 0); \ for (iter = strv; iter && *iter; iter++) { \ char *left = g_strstrip (*iter); \ char *right = strchr (left, '='); \ if (!right) { \ g_set_error (error, 1, 0, _("'%s' is not valid; use