278 lines
13 KiB
Text
278 lines
13 KiB
Text
![]() |
# Copyright (c) 2021, Dell Inc. or its subsidiaries. All rights reserved.
|
||
|
# SPDX-License-Identifier: Apache-2.0
|
||
|
# See the LICENSE file for details.
|
||
|
#
|
||
|
# This file is part of NVMe STorage Appliance Services (nvme-stas).
|
||
|
|
||
|
# ==============================================================================
|
||
|
# STorage Appliance Finder Daemon (stafd) - configuration file
|
||
|
#
|
||
|
# In this file, options that are commented represent the default values used.
|
||
|
# Uncommented options override the default value.
|
||
|
|
||
|
|
||
|
[Global]
|
||
|
# tron: Trace-ON. Enable additional debug info
|
||
|
# Type: boolean
|
||
|
# Range: [false, true]
|
||
|
#tron=false
|
||
|
|
||
|
# hdr-digest: Protocol Data Unit (PDU) Header Digest. NVMe/TCP facilitates an
|
||
|
# optional PDU Header digest. Digests are calculated using the
|
||
|
# CRC32C algorithm.
|
||
|
# Type: boolean
|
||
|
# Range: [false, true]
|
||
|
#hdr-digest=false
|
||
|
|
||
|
# data-digest: Protocol Data Unit (PDU) Data Digest. NVMe/TCP facilitates an
|
||
|
# optional PDU Data digest. Digests are calculated using the
|
||
|
# CRC32C algorithm.
|
||
|
# Type: boolean
|
||
|
# Range: [false, true]
|
||
|
#data-digest=false
|
||
|
|
||
|
# kato: Keep Alive Timeout (KATO): This field specifies the timeout value
|
||
|
# for the Keep Alive feature in seconds. The default value for this
|
||
|
# field is 30 seconds.
|
||
|
# Type: Unsigned integer
|
||
|
# Range: 0..N
|
||
|
# Unit: Seconds
|
||
|
#kato=30
|
||
|
|
||
|
# queue-size: Overrides the default number of elements in the I/O queues
|
||
|
# created by the driver.
|
||
|
# Type: Unsigned integer
|
||
|
# Range: 16..1024
|
||
|
# Default: 128
|
||
|
#queue-size=128
|
||
|
|
||
|
# reconnect-delay: Overrides the default delay, in seconds, before reconnect
|
||
|
# is attempted after a connect loss.
|
||
|
# Type: Unsigned integer
|
||
|
# Range: 1..N
|
||
|
# Unit: Seconds
|
||
|
# Default: 10 (retry to connect every 10 seconds)
|
||
|
#reconnect-delay=10
|
||
|
|
||
|
# ctrl-loss-tmo: Overrides the default controller loss timeout period in
|
||
|
# seconds.
|
||
|
# Type: Unsigned integer
|
||
|
# Range: -1, 0..N where -1 means retry forever
|
||
|
# Unit: Seconds
|
||
|
# Default: 600 (retry to connect for up to 10 minutes)
|
||
|
#ctrl-loss-tmo=600
|
||
|
|
||
|
# disable-sqflow: Disables SQ flow control to omit head doorbell update for
|
||
|
# submission queues when sending nvme completions.
|
||
|
# Type: boolean
|
||
|
# Range: [false, true]
|
||
|
# Default: false
|
||
|
#disable-sqflow=false
|
||
|
|
||
|
# ignore-iface: This option controls whether connections with Discovery
|
||
|
# Controllers (DC) will be forced on a specific interface or
|
||
|
# will rely on the routing tables to determine the interface.
|
||
|
#
|
||
|
# See the man pages for details: man stafd.conf
|
||
|
#
|
||
|
# Type: boolean
|
||
|
# Range: [false, true]
|
||
|
# Default: true
|
||
|
#ignore-iface=false
|
||
|
|
||
|
# ip-family: With this you can specify whether stafd will support IPv4, IPv6,
|
||
|
# or both when connecting to Discovery Controllers (DC).
|
||
|
#
|
||
|
# See the man pages for details: man stafd.conf
|
||
|
#
|
||
|
# Type: String
|
||
|
# Range: [ipv4, ipv6, ipv4+ipv6]
|
||
|
# Default: ipv4+ipv6
|
||
|
#ip-family=ipv4+ipv6
|
||
|
|
||
|
# pleo: Port Local Entries Only. If enabled and supported, when connected to a
|
||
|
# Direct Discovery Controller (DDC), stafd will ask the DDC to return
|
||
|
# records for only NVM subsystem ports that are presented through the same
|
||
|
# NVM subsystem port that received the Get Log Page command. When disabled
|
||
|
# or not supported by the DDC, the DDC may return NVM subsystems that are
|
||
|
# not even reachable by the host, including those using a transport
|
||
|
# different from the transport used for the Get Log Page command (e.g. Get
|
||
|
# Log Page using TCP and receiving FC subsystems). This configuration
|
||
|
# parameter has no effect if the DDC does not support PLEO (see PLEOS).
|
||
|
#
|
||
|
# Type: String
|
||
|
# Range: [disabled, enabled]
|
||
|
# Default: enabled
|
||
|
#pleo=enabled
|
||
|
|
||
|
# ==============================================================================
|
||
|
[Service Discovery]
|
||
|
# zeroconf: Control whether DNS-SD/mDNS automatic discovery is enabled. This is
|
||
|
# used to enable or disable automatic discovery of Discovery
|
||
|
# Controllers using DNS-SD/mDNS.
|
||
|
#
|
||
|
# Type: String
|
||
|
# Range: [disabled, enabled]
|
||
|
# Default: enabled
|
||
|
#zeroconf=enabled
|
||
|
|
||
|
# ==============================================================================
|
||
|
[Discovery controller connection management]
|
||
|
# persistent-connections: Whether connections to Discovery Controllers (DC)
|
||
|
# are persistent. If stafd is stopped, the connections
|
||
|
# will persists. When this is set to false, stafd will
|
||
|
# disconnect from all DCs it is connected to when stafd
|
||
|
# is stopped.
|
||
|
# Type: boolean
|
||
|
# Range: [false, true]
|
||
|
#persistent-connections=true
|
||
|
|
||
|
# zeroconf-connections-persistence: DCs that are discovered with mDNS service
|
||
|
# discovery which are later lost (i.e. no mDNS
|
||
|
# and TCP connection fails), will be purged from
|
||
|
# the configuration after this amount of time.
|
||
|
# Type: Time specs.
|
||
|
# Unit: Takes a unit-less value in seconds,
|
||
|
# or a time span (TS) value such as
|
||
|
# "3 days 5 hours".
|
||
|
# Range: -1, 0, TS.
|
||
|
# With "-1" equal to "no timeout" and
|
||
|
# 0 equal to timeout immediately.
|
||
|
# Default: 72 hours (3 days)
|
||
|
#zeroconf-connections-persistence=72hours
|
||
|
|
||
|
# ==============================================================================
|
||
|
[Controllers]
|
||
|
# controller: Discovery Controllers (DC) are specified with this keyword.
|
||
|
#
|
||
|
# Syntax:
|
||
|
# controller = transport=[trtype];traddr=[traddr];trsvcid=[trsvcid];host-traddr=[traddr];host-iface=[iface];nqn=<dcnqn>
|
||
|
#
|
||
|
# transport=<trtype> [MANDATORY]
|
||
|
# This field specifies the network fabric being used for a NVMe-over-
|
||
|
# Fabrics network. Current string values include:
|
||
|
#
|
||
|
# Value Definition
|
||
|
# ------- -----------------------------------------------------------
|
||
|
# rdma The network fabric is an rdma network (RoCE, iWARP,
|
||
|
# Infiniband, basic rdma, etc)
|
||
|
# fc The network fabric is a Fibre Channel network.
|
||
|
# tcp The network fabric is a TCP/IP network.
|
||
|
# loop Connect to a NVMe over Fabrics target on the local host
|
||
|
#
|
||
|
# traddr=<traddr> [MANDATORY]
|
||
|
# This field specifies the network address of the Controller. For
|
||
|
# transports using IP addressing (e.g. rdma) this should be an IP-
|
||
|
# based address (ex. IPv4, IPv6). It could also be a resolvable host
|
||
|
# name (e.g. localhost).
|
||
|
#
|
||
|
# nqn=<dcnqn> [OPTIONAL]
|
||
|
# This field specifies the Discovery Controller's NVMe Qualified
|
||
|
# Name. If not specified, this will default to the well-known DC
|
||
|
# NQN: "nqn.2014-08.org.nvmexpress.discovery".
|
||
|
#
|
||
|
# trsvcid=<trsvcid> [OPTIONAL]
|
||
|
# This field specifies the transport service id. For transports using
|
||
|
# IP addressing (e.g. rdma) this field is the port number.
|
||
|
#
|
||
|
# Depending on the transport type, this field will default to either
|
||
|
# 8009 or 4420 as follows.
|
||
|
#
|
||
|
# UDP port 4420 and TCP port 4420 have been assigned by IANA
|
||
|
# for use by NVMe over Fabrics. NVMe/RoCEv2 controllers use UDP port
|
||
|
# 4420 by default. NVMe/iWARP controllers use TCP port 4420 by
|
||
|
# default.
|
||
|
#
|
||
|
# TCP port 4420 has been assigned for use by NVMe over Fabrics and TCP
|
||
|
# port 8009 has been assigned by IANA for use by NVMe over Fabrics
|
||
|
# discovery. TCP port 8009 is the default TCP port for NVMe/TCP
|
||
|
# discovery controllers. There is no default TCP port for NVMe/TCP I/O
|
||
|
# controllers, the Transport Service Identifier (TRSVCID) field in the
|
||
|
# Discovery Log Entry indicates the TCP port to use.
|
||
|
#
|
||
|
# The TCP ports that may be used for NVMe/TCP I/O controllers include
|
||
|
# TCP port 4420, and the Dynamic and/or Private TCP ports (i.e., ports
|
||
|
# in the TCP port number range from 49152 to 65535). NVMe/TCP I/O
|
||
|
# controllers should not use TCP port 8009. TCP port 4420 shall not be
|
||
|
# used for both NVMe/iWARP and NVMe/TCP at the same IP address on the
|
||
|
# same network.
|
||
|
#
|
||
|
# Ref: https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=nvme
|
||
|
#
|
||
|
# host-traddr=<traddr> [OPTIONAL]
|
||
|
# This field specifies the network address used on the host to connect
|
||
|
# to the Controller. For TCP, this sets the source address on the
|
||
|
# socket.
|
||
|
#
|
||
|
# host-iface=<iface> [OPTIONAL]
|
||
|
# This field specifies the network interface used on the host to
|
||
|
# connect to the Controller (e.g. IP eth1, enp2s0, enx78e7d1ea46da).
|
||
|
# This forces the connection to be made on a specific interface
|
||
|
# instead of letting the system decide.
|
||
|
#
|
||
|
# hdr-digest [OPTIONAL]
|
||
|
# See definition in [Global] section. This is used to override
|
||
|
# the value specified in the [Global] section.
|
||
|
#
|
||
|
# data-digest [OPTIONAL]
|
||
|
# See definition in [Global] section. This is used to override
|
||
|
# the value specified in the [Global] section.
|
||
|
#
|
||
|
# kato [OPTIONAL]
|
||
|
# See definition in [Global] section. This is used to override
|
||
|
# the value specified in the [Global] section.
|
||
|
#
|
||
|
# reconnect-delay [OPTIONAL]
|
||
|
# See definition in [Global] section. This is used to override
|
||
|
# the value specified in the [Global] section.
|
||
|
#
|
||
|
# ctrl-loss-tmo [OPTIONAL]
|
||
|
# See definition in [Global] section. This is used to override
|
||
|
# the value specified in the [Global] section.
|
||
|
#
|
||
|
# disable-sqflow [OPTIONAL]
|
||
|
# See definition in [Global] section. This is used to override
|
||
|
# the value specified in the [Global] section.
|
||
|
#
|
||
|
# Multiple DCs may be specified on separate lines like this (this is
|
||
|
# just an example and does not represent default values):
|
||
|
#
|
||
|
# controller = transport=tcp;traddr=localhost;trsvcid=8009
|
||
|
# controller = transport=tcp;traddr=2001:db8::370:7334;host-iface=enp0s8
|
||
|
# controller = transport=fc;traddr=nn-0x204600a098cbcac6:pn-0x204700a098cbcac6
|
||
|
# ...
|
||
|
#
|
||
|
# Type: String
|
||
|
#
|
||
|
# Default: There is no default controller. STAF will not try to
|
||
|
# connect to a default Discovery Controller.
|
||
|
#controller=
|
||
|
|
||
|
|
||
|
# exclude: Excluded controllers. Using mDNS to automatically detect
|
||
|
# and connect controllers, can result in unintentional connections
|
||
|
# being made. This keyword allows configuring the controllers that
|
||
|
# should not be connected to (whatever the reason may be).
|
||
|
#
|
||
|
# The syntax is the same as for "controller=", except that the key
|
||
|
# host-traddr does not apply. Multiple "exclude=" keywords may
|
||
|
# appear in the config file to define the exclusion list.
|
||
|
#
|
||
|
# Note 1: A minimal match approach is used to eliminate unwanted
|
||
|
# controllers. That is, you do not need to specify all the
|
||
|
# parameters to identify a controller. Just specifying the
|
||
|
# host-iface, for example, can be used to exclude all controllers
|
||
|
# on an interface.
|
||
|
#
|
||
|
# Note 2: "exclude=" takes precedence over "controller=". A
|
||
|
# controller specified by the "controller=" keyword, can be
|
||
|
# eliminated by the "exclude=" keyword.
|
||
|
#
|
||
|
# Syntax: Same as "controller=" above.
|
||
|
# Type: String
|
||
|
#
|
||
|
# Example:
|
||
|
# exclude = transport=tcp;traddr=fe80::2c6e:dee7:857:26bb # Eliminate a specific address
|
||
|
# exclude = host-iface=enp0s8 # Eliminate everything on this interface
|
||
|
#exclude=
|