rubick/rubick/schemas/neutron_server/neutron_server.conf.yml

635 lines
27 KiB
YAML

- version: '2013.2.1'
checkpoint: true
added:
- name: verbose
type: string
default: 'False'
help: 'Default log level is INFO verbose and debug has the same result. One of them will set DEBUG log level output'
comment: 'New param'
- name: state_path
type: string
default: '/var/lib/neutron'
help: 'Where to store Neutron state files. This directory must be writable by the user executing the agent.'
comment: 'New param'
- name: lock_path
type: string
default: '$state_path/lock'
help: 'Where to store lock files'
comment: 'New param'
- name: log_format
type: string
default: '%(asctime)s %(levelname)8s [%(name)s] %(message)s'
comment: 'New param'
- name: log_date_format
type: string
default: '%Y-%m-%d %H:%M:%S'
comment: 'New param'
- name: use_syslog
type: string
default: 'False'
comment: 'New param'
- name: syslog_log_facility
type: string
default: 'LOG_USER'
comment: 'New param'
- name: use_stderr
type: string
default: 'True'
comment: 'New param'
- name: publish_errors
type: string
default: 'False'
comment: 'New param'
- name: bind_host
type: host
default: '0.0.0.0'
help: 'Address to bind the API server'
comment: 'New param'
- name: bind_port
type: string
default: '9696'
help: 'Port the bind the API server to'
comment: 'New param'
- name: api_extensions_path
type: string
default: ''
help: "Path to the extensions. Note that this can be a colon-separated list of paths. For example: api_extensions_path = extensions:/path/to/more/extensions:/even/more/extensions The __path__ of neutron.extensions is appended to this, so if your extensions are in there you don't need to specify them here"
comment: 'New param'
- name: core_plugin
type: string
default: ''
help: 'Neutron plugin provider module'
comment: 'New param'
- name: service_plugins
type: string
default: ''
help: 'Advanced service modules'
comment: 'New param'
- name: api_paste_config
type: string
default: 'api-paste.ini'
help: 'Paste configuration file'
comment: 'New param'
- name: auth_strategy
type: string
default: 'keystone'
help: "The strategy to be used for auth. Supported values are 'keystone'(default), 'noauth'."
comment: 'New param'
- name: mac_generation_retries
type: string
default: '16'
help: 'Maximum amount of retries to generate a unique MAC address'
comment: 'New param'
- name: dhcp_lease_duration
type: string
default: '86400'
help: 'DHCP Lease duration (in seconds)'
comment: 'New param'
- name: dhcp_agent_notification
type: string
default: 'True'
help: 'Allow sending resource operation notification to DHCP agent'
comment: 'New param'
- name: allow_bulk
type: string
default: 'True'
help: 'Enable or disable bulk create/update/delete operations'
comment: 'New param'
- name: allow_pagination
type: string
default: 'False'
help: 'Enable or disable bulk create/update/delete operations Enable or disable pagination'
comment: 'New param'
- name: allow_sorting
type: string
default: 'False'
help: 'Enable or disable bulk create/update/delete operations Enable or disable pagination Enable or disable sorting'
comment: 'New param'
- name: allow_overlapping_ips
type: string
default: 'False'
help: 'Enable or disable bulk create/update/delete operations Enable or disable pagination Enable or disable sorting Enable or disable overlapping IPs for subnets Attention: the following parameter MUST be set to False if Neutron is being used in conjunction with nova security groups'
comment: 'New param'
- name: force_gateway_on_subnet
type: string
default: 'False'
help: 'Enable or disable bulk create/update/delete operations Enable or disable pagination Enable or disable sorting Enable or disable overlapping IPs for subnets Attention: the following parameter MUST be set to False if Neutron is being used in conjunction with nova security groups Ensure that configured gateway is on subnet'
comment: 'New param'
- name: rpc_backend
type: string
default: 'neutron.openstack.common.rpc.impl_zmq'
help: 'ZMQ'
comment: 'New param'
- name: rpc_thread_pool_size
type: string
default: '64'
help: 'RPC configuration options. Defined in rpc __init__ The messaging module to use, defaults to kombu. Size of RPC thread pool'
comment: 'New param'
- name: rpc_conn_pool_size
type: string
default: '30'
help: 'RPC configuration options. Defined in rpc __init__ The messaging module to use, defaults to kombu. Size of RPC thread pool Size of RPC connection pool'
comment: 'New param'
- name: rpc_response_timeout
type: string
default: '60'
help: 'RPC configuration options. Defined in rpc __init__ The messaging module to use, defaults to kombu. Size of RPC thread pool Size of RPC connection pool Seconds to wait for a response from call or multicall'
comment: 'New param'
- name: rpc_cast_timeout
type: string
default: '30'
help: 'RPC configuration options. Defined in rpc __init__ The messaging module to use, defaults to kombu. Size of RPC thread pool Size of RPC connection pool Seconds to wait for a response from call or multicall Seconds to wait before a cast expires (TTL). Only supported by impl_zmq.'
comment: 'New param'
- name: allowed_rpc_exception_modules
type: string
default: 'neutron.openstack.common.exception, nova.exception'
help: 'RPC configuration options. Defined in rpc __init__ The messaging module to use, defaults to kombu. Size of RPC thread pool Size of RPC connection pool Seconds to wait for a response from call or multicall Seconds to wait before a cast expires (TTL). Only supported by impl_zmq. Modules of exceptions that are permitted to be recreated upon receiving exception data from an rpc call.'
comment: 'New param'
- name: control_exchange
type: string
default: 'neutron'
help: 'RPC configuration options. Defined in rpc __init__ The messaging module to use, defaults to kombu. Size of RPC thread pool Size of RPC connection pool Seconds to wait for a response from call or multicall Seconds to wait before a cast expires (TTL). Only supported by impl_zmq. Modules of exceptions that are permitted to be recreated upon receiving exception data from an rpc call. AMQP exchange to connect to if using RabbitMQ or QPID'
comment: 'New param'
- name: fake_rabbit
type: string
default: 'False'
help: 'If passed, use a fake RabbitMQ provider'
comment: 'New param'
- name: kombu_ssl_version
type: string
default: ''
help: 'Configuration options if sending notifications via kombu rpc (these are the defaults) SSL version to use (valid only if SSL enabled)'
comment: 'New param'
- name: kombu_ssl_keyfile
type: string
default: ''
help: 'Configuration options if sending notifications via kombu rpc (these are the defaults) SSL version to use (valid only if SSL enabled) SSL key file (valid only if SSL enabled)'
comment: 'New param'
- name: kombu_ssl_certfile
type: string
default: ''
help: 'Configuration options if sending notifications via kombu rpc (these are the defaults) SSL version to use (valid only if SSL enabled) SSL key file (valid only if SSL enabled) SSL cert file (valid only if SSL enabled)'
comment: 'New param'
- name: kombu_ssl_ca_certs
type: string
default: ''
help: "Configuration options if sending notifications via kombu rpc (these are the defaults) SSL version to use (valid only if SSL enabled) SSL key file (valid only if SSL enabled) SSL cert file (valid only if SSL enabled) SSL certification authority file (valid only if SSL enabled)'"
comment: 'New param'
- name: rabbit_host
type: host
default: 'localhost'
help: "Configuration options if sending notifications via kombu rpc (these are the defaults) SSL version to use (valid only if SSL enabled) SSL key file (valid only if SSL enabled) SSL cert file (valid only if SSL enabled) SSL certification authority file (valid only if SSL enabled)' IP address of the RabbitMQ installation"
comment: 'New param'
- name: rabbit_password
type: string
default: 'guest'
help: "Configuration options if sending notifications via kombu rpc (these are the defaults) SSL version to use (valid only if SSL enabled) SSL key file (valid only if SSL enabled) SSL cert file (valid only if SSL enabled) SSL certification authority file (valid only if SSL enabled)' IP address of the RabbitMQ installation Password of the RabbitMQ server"
comment: 'New param'
- name: rabbit_port
type: string
default: '5672'
help: "Configuration options if sending notifications via kombu rpc (these are the defaults) SSL version to use (valid only if SSL enabled) SSL key file (valid only if SSL enabled) SSL cert file (valid only if SSL enabled) SSL certification authority file (valid only if SSL enabled)' IP address of the RabbitMQ installation Password of the RabbitMQ server Port where RabbitMQ server is running/listening"
comment: 'New param'
- name: rabbit_hosts
type: string
default: 'localhost:5672'
help: "Configuration options if sending notifications via kombu rpc (these are the defaults) SSL version to use (valid only if SSL enabled) SSL key file (valid only if SSL enabled) SSL cert file (valid only if SSL enabled) SSL certification authority file (valid only if SSL enabled)' IP address of the RabbitMQ installation Password of the RabbitMQ server Port where RabbitMQ server is running/listening RabbitMQ single or HA cluster (host:port pairs i.e: host1:5672, host2:5672) rabbit_hosts is defaulted to '$rabbit_host:$rabbit_port'"
comment: 'New param'
- name: rabbit_userid
type: string
default: 'guest'
help: "Configuration options if sending notifications via kombu rpc (these are the defaults) SSL version to use (valid only if SSL enabled) SSL key file (valid only if SSL enabled) SSL cert file (valid only if SSL enabled) SSL certification authority file (valid only if SSL enabled)' IP address of the RabbitMQ installation Password of the RabbitMQ server Port where RabbitMQ server is running/listening RabbitMQ single or HA cluster (host:port pairs i.e: host1:5672, host2:5672) rabbit_hosts is defaulted to '$rabbit_host:$rabbit_port' User ID used for RabbitMQ connections"
comment: 'New param'
- name: rabbit_virtual_host
type: string
default: '/'
help: "Configuration options if sending notifications via kombu rpc (these are the defaults) SSL version to use (valid only if SSL enabled) SSL key file (valid only if SSL enabled) SSL cert file (valid only if SSL enabled) SSL certification authority file (valid only if SSL enabled)' IP address of the RabbitMQ installation Password of the RabbitMQ server Port where RabbitMQ server is running/listening RabbitMQ single or HA cluster (host:port pairs i.e: host1:5672, host2:5672) rabbit_hosts is defaulted to '$rabbit_host:$rabbit_port' User ID used for RabbitMQ connections Location of a virtual RabbitMQ installation."
comment: 'New param'
- name: rabbit_max_retries
type: string
default: '0'
help: "Configuration options if sending notifications via kombu rpc (these are the defaults) SSL version to use (valid only if SSL enabled) SSL key file (valid only if SSL enabled) SSL cert file (valid only if SSL enabled) SSL certification authority file (valid only if SSL enabled)' IP address of the RabbitMQ installation Password of the RabbitMQ server Port where RabbitMQ server is running/listening RabbitMQ single or HA cluster (host:port pairs i.e: host1:5672, host2:5672) rabbit_hosts is defaulted to '$rabbit_host:$rabbit_port' User ID used for RabbitMQ connections Location of a virtual RabbitMQ installation. Maximum retries with trying to connect to RabbitMQ (the default of 0 implies an infinite retry count)"
comment: 'New param'
- name: rabbit_retry_interval
type: string
default: '1'
help: "Configuration options if sending notifications via kombu rpc (these are the defaults) SSL version to use (valid only if SSL enabled) SSL key file (valid only if SSL enabled) SSL cert file (valid only if SSL enabled) SSL certification authority file (valid only if SSL enabled)' IP address of the RabbitMQ installation Password of the RabbitMQ server Port where RabbitMQ server is running/listening RabbitMQ single or HA cluster (host:port pairs i.e: host1:5672, host2:5672) rabbit_hosts is defaulted to '$rabbit_host:$rabbit_port' User ID used for RabbitMQ connections Location of a virtual RabbitMQ installation. Maximum retries with trying to connect to RabbitMQ (the default of 0 implies an infinite retry count) RabbitMQ connection retry interval"
comment: 'New param'
- name: rabbit_ha_queues
type: boolean
default: false
help: "Configuration options if sending notifications via kombu rpc (these are the defaults) SSL version to use (valid only if SSL enabled) SSL key file (valid only if SSL enabled) SSL cert file (valid only if SSL enabled) SSL certification authority file (valid only if SSL enabled)' IP address of the RabbitMQ installation Password of the RabbitMQ server Port where RabbitMQ server is running/listening RabbitMQ single or HA cluster (host:port pairs i.e: host1:5672, host2:5672) rabbit_hosts is defaulted to '$rabbit_host:$rabbit_port' User ID used for RabbitMQ connections Location of a virtual RabbitMQ installation. Maximum retries with trying to connect to RabbitMQ (the default of 0 implies an infinite retry count) RabbitMQ connection retry interval Use HA queues in RabbitMQ (x-ha-policy: all).You need to wipe RabbitMQ database when changing this option. "
comment: 'New param'
- name: qpid_hostname
type: string
default: 'localhost'
help: 'QPID Qpid broker hostname'
comment: 'New param'
- name: qpid_port
type: string
default: '5672'
help: 'QPID Qpid broker hostname Qpid broker port'
comment: 'New param'
- name: qpid_hosts
type: string
default: 'localhost:5672'
help: "QPID Qpid broker hostname Qpid broker port Qpid single or HA cluster (host:port pairs i.e: host1:5672, host2:5672) qpid_hosts is defaulted to '$qpid_hostname:$qpid_port'"
comment: 'New param'
- name: qpid_username
type: string
default: "''"
help: "QPID Qpid broker hostname Qpid broker port Qpid single or HA cluster (host:port pairs i.e: host1:5672, host2:5672) qpid_hosts is defaulted to '$qpid_hostname:$qpid_port' Username for qpid connection"
comment: 'New param'
- name: qpid_password
type: string
default: "''"
help: "QPID Qpid broker hostname Qpid broker port Qpid single or HA cluster (host:port pairs i.e: host1:5672, host2:5672) qpid_hosts is defaulted to '$qpid_hostname:$qpid_port' Username for qpid connection Password for qpid connection"
comment: 'New param'
- name: qpid_sasl_mechanisms
type: string
default: "''"
help: "QPID Qpid broker hostname Qpid broker port Qpid single or HA cluster (host:port pairs i.e: host1:5672, host2:5672) qpid_hosts is defaulted to '$qpid_hostname:$qpid_port' Username for qpid connection Password for qpid connection Space separated list of SASL mechanisms to use for auth"
comment: 'New param'
- name: qpid_heartbeat
type: string
default: '60'
help: "QPID Qpid broker hostname Qpid broker port Qpid single or HA cluster (host:port pairs i.e: host1:5672, host2:5672) qpid_hosts is defaulted to '$qpid_hostname:$qpid_port' Username for qpid connection Password for qpid connection Space separated list of SASL mechanisms to use for auth Seconds between connection keepalive heartbeats"
comment: 'New param'
- name: qpid_protocol
type: string
default: 'tcp'
help: "QPID Qpid broker hostname Qpid broker port Qpid single or HA cluster (host:port pairs i.e: host1:5672, host2:5672) qpid_hosts is defaulted to '$qpid_hostname:$qpid_port' Username for qpid connection Password for qpid connection Space separated list of SASL mechanisms to use for auth Seconds between connection keepalive heartbeats Transport to use, either 'tcp' or 'ssl'"
comment: 'New param'
- name: qpid_tcp_nodelay
type: string
default: 'True'
help: "QPID Qpid broker hostname Qpid broker port Qpid single or HA cluster (host:port pairs i.e: host1:5672, host2:5672) qpid_hosts is defaulted to '$qpid_hostname:$qpid_port' Username for qpid connection Password for qpid connection Space separated list of SASL mechanisms to use for auth Seconds between connection keepalive heartbeats Transport to use, either 'tcp' or 'ssl' Disable Nagle algorithm"
comment: 'New param'
- name: rpc_zmq_bind_address
type: string
default: '*'
help: "ZMQ ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or IP. The 'host' option should point or resolve to this address."
comment: 'New param'
- name: notification_driver
type: string
default: 'neutron.openstack.common.notifier.rpc_notifier'
help: 'Notification_driver can be defined multiple times Do nothing driver notification_driver = neutron.openstack.common.notifier.no_op_notifier Logging driver notification_driver = neutron.openstack.common.notifier.log_notifier RPC driver. DHCP agents needs it.'
comment: 'New param'
- name: default_notification_level
type: string
default: 'INFO'
help: 'default_notification_level is used to form actual topic name(s) or to set logging level'
comment: 'New param'
- name: host
type: string
default: 'myhost.com'
help: 'default_publisher_id is a part of the notification payload'
comment: 'New param'
- name: default_publisher_id
type: string
default: '$host'
help: 'default_publisher_id is a part of the notification payload'
comment: 'New param'
- name: notification_topics
type: string
default: 'notifications'
help: 'Defined in rpc_notifier, can be comma separated values. The actual topic names will be %s.%(default_notification_level)s'
comment: 'New param'
- name: pagination_max_limit
type: string
default: '-1'
help: 'Default maximum number of items returned in a single response, value == infinite and value < 0 means no max limit, and value must greater than 0. If the number of items requested is greater than pagination_max_limit, server will just return pagination_max_limit of number of items.'
comment: 'New param'
- name: max_dns_nameservers
type: string
default: '5'
help: 'Maximum number of DNS nameservers per subnet'
comment: 'New param'
- name: max_subnet_host_routes
type: string
default: '20'
help: 'Maximum number of host routes per subnet'
comment: 'New param'
- name: max_fixed_ips_per_port
type: string
default: '5'
help: 'Maximum number of fixed ips per port'
comment: 'New param'
- name: agent_down_time
type: string
default: '5'
help: '=========== items for agent management extension ============= Seconds to regard the agent as down.'
comment: 'New param'
- name: network_scheduler_driver
type: string
default: 'neutron.scheduler.dhcp_agent_scheduler.ChanceScheduler'
help: '=========== items for agent scheduler extension ============= Driver to use for scheduling network to DHCP agent'
comment: 'New param'
- name: router_scheduler_driver
type: string
default: 'neutron.scheduler.l3_agent_scheduler.ChanceScheduler'
help: '=========== items for agent scheduler extension ============= Driver to use for scheduling network to DHCP agent Driver to use for scheduling router to a default L3 agent'
comment: 'New param'
- name: loadbalancer_pool_scheduler_driver
type: string
default: 'neutron.services.loadbalancer.agent_scheduler.ChanceScheduler'
help: '=========== items for agent scheduler extension ============= Driver to use for scheduling network to DHCP agent Driver to use for scheduling router to a default L3 agent Driver to use for scheduling a loadbalancer pool to an lbaas agent'
comment: 'New param'
- name: network_auto_schedule
type: string
default: 'True'
help: 'Allow auto scheduling networks to DHCP agent. It will schedule non-hosted networks to first DHCP agent which sends get_active_networks message to neutron server'
comment: 'New param'
- name: router_auto_schedule
type: string
default: 'True'
help: 'Allow auto scheduling routers to L3 agent. It will schedule non-hosted routers to first L3 agent which sends sync_routers message to neutron server'
comment: 'New param'
- name: dhcp_agents_per_network
type: string
default: '1'
help: 'Number of DHCP agents scheduled to host a network. This enables redundant DHCP agents for configured networks.'
comment: 'New param'
- name: tcp_keepidle
type: string
default: '600'
help: '=========== WSGI parameters related to the API server ============== Sets the value of TCP_KEEPIDLE in seconds to use for each server socket when starting API server. Not supported on OS X.'
comment: 'New param'
- name: retry_until_window
type: string
default: '30'
help: 'Number of seconds to keep retrying to listen'
comment: 'New param'
- name: backlog
type: string
default: '4096'
help: 'Number of backlog requests to configure the socket with.'
comment: 'New param'
- name: use_ssl
type: string
default: 'False'
help: 'Enable SSL on the API server'
comment: 'New param'
- name: ssl_cert_file
type: string
default: '/path/to/certfile'
help: 'Certificate file to use when starting API server securely'
comment: 'New param'
- name: ssl_key_file
type: string
default: '/path/to/keyfile'
help: 'Private key file to use when starting API server securely'
comment: 'New param'
- name: ssl_ca_file
type: string
default: '/path/to/cafile'
help: 'CA certificate file to use when starting API server securely to verify connecting clients. This is an optional parameter only required if API clients need to authenticate to the API server using SSL certificates signed by a trusted CA'
comment: 'New param'
- name: quotas.quota_items
type: string
default: 'network,subnet,port'
help: 'resource name(s) that are supported in quota features'
comment: 'New param'
- name: quotas.default_quota
type: string
default: '-1'
help: 'default number of resource allowed per tenant, minus for unlimited'
comment: 'New param'
- name: quotas.quota_network
type: string
default: '10'
help: 'number of networks allowed per tenant, and minus means unlimited'
comment: 'New param'
- name: quotas.quota_subnet
type: string
default: '10'
help: 'number of subnets allowed per tenant, and minus means unlimited'
comment: 'New param'
- name: quotas.quota_port
type: string
default: '50'
help: 'number of ports allowed per tenant, and minus means unlimited'
comment: 'New param'
- name: quotas.quota_security_group
type: string
default: '10'
help: 'number of security groups allowed per tenant, and minus means unlimited'
comment: 'New param'
- name: quotas.quota_security_group_rule
type: string
default: '100'
help: 'number of security group rules allowed per tenant, and minus means unlimited'
comment: 'New param'
- name: quotas.quota_driver
type: string
default: 'neutron.db.quota_db.DbQuotaDriver'
help: 'default driver to use for quota checks'
comment: 'New param'
- name: agent.root_helper
type: string
default: 'sudo'
help: "Use 'sudo neutron-rootwrap /etc/neutron/rootwrap.conf' to use the real root filter facility. Change to 'sudo' to skip the filtering and just run the comand directly"
comment: 'New param'
- name: agent.report_interval
type: string
default: '4'
help: '=========== items for agent management extension ============= seconds between nodes reporting state to server, should be less than agent_down_time'
comment: 'New param'
- name: keystone_authtoken.auth_host
type: host
default: '127.0.0.1'
comment: 'New param'
- name: keystone_authtoken.auth_port
type: string
default: '35357'
comment: 'New param'
- name: keystone_authtoken.auth_protocol
type: string
default: 'http'
comment: 'New param'
- name: keystone_authtoken.admin_tenant_name
type: string
default: '%SERVICE_TENANT_NAME%'
comment: 'New param'
- name: keystone_authtoken.admin_user
type: string
default: '%SERVICE_USER%'
comment: 'New param'
- name: keystone_authtoken.admin_password
type: string
default: '%SERVICE_PASSWORD%'
comment: 'New param'
- name: keystone_authtoken.signing_dir
type: string
default: '$state_path/keystone-signing'
comment: 'New param'
- name: database.connection
type: string
default: 'mysql://root:pass@127.0.0.1:3306/neutron'
help: 'This line MUST be changed to actually run the plugin. Example:'
comment: 'New param'
- name: database.slave_connection
type: string
default: ''
help: 'The SQLAlchemy connection string used to connect to the slave database'
comment: 'New param'
- name: database.max_retries
type: string
default: '10'
help: 'Database reconnection retry times - in event connectivity is lost set to -1 implies an infinite retry count'
comment: 'New param'
- name: database.retry_interval
type: string
default: '10'
help: 'Database reconnection interval in seconds - if the initial connection to the database fails'
comment: 'New param'
- name: database.min_pool_size
type: string
default: '1'
help: 'Minimum number of SQL connections to keep open in a pool'
comment: 'New param'
- name: database.max_pool_size
type: string
default: '10'
help: 'Maximum number of SQL connections to keep open in a pool'
comment: 'New param'
- name: database.idle_timeout
type: string
default: '3600'
help: 'Timeout in seconds before idle sql connections are reaped'
comment: 'New param'
- name: database.max_overflow
type: string
default: '20'
help: 'If set, use this value for max_overflow with sqlalchemy'
comment: 'New param'
- name: database.connection_debug
type: string
default: '0'
help: 'Verbosity of SQL debugging information. 0=None, 100=Everything'
comment: 'New param'
- name: database.connection_trace
type: string
default: 'False'
help: 'Add python stack traces to SQL as comment strings'
comment: 'New param'
- name: database.pool_timeout
type: string
default: '10'
help: 'If set, use this value for pool_timeout with sqlalchemy'
comment: 'New param'
- name: service_providers.service_provider
type: string
default: 'LOADBALANCER:Haproxy:neutron.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default'
help: 'Specify service providers (drivers) for advanced services like loadbalancer, VPN, Firewall. Must be in form: service_provider=<service_type>:<name>:<driver>[:default] List of allowed service type include LOADBALANCER, FIREWALL, VPN Combination of <service type> and <name> must be unique; <driver> must also be unique this is multiline option, example for default provider: service_provider=LOADBALANCER:name:lbaas_plugin_driver_path:default example of non-default provider: service_provider=FIREWALL:name2:firewall_driver_path --- Reference implementations ---'
comment: 'New param'
# ====================================================