Annotation of embedaddon/strongswan/conf/strongswan.conf.5.head.in, revision 1.1.1.1

1.1       misho       1: .TH STRONGSWAN.CONF 5 "" "@PACKAGE_VERSION@" "strongSwan"
                      2: .SH NAME
                      3: strongswan.conf \- strongSwan configuration file
                      4: .SH DESCRIPTION
                      5: While the
                      6: .IR ipsec.conf (5)
                      7: configuration file is well suited to define IPsec related configuration
                      8: parameters, it is not useful for other strongSwan applications to read options
                      9: from this file.
                     10: The file is hard to parse and only
                     11: .I ipsec starter
                     12: is capable of doing so. As the number of components of the strongSwan project
                     13: is continually growing, a more flexible configuration file was needed, one that
                     14: is easy to extend and can be used by all components. With strongSwan 4.2.1
                     15: .IR strongswan.conf (5)
                     16: was introduced which meets these requirements.
                     17: 
                     18: .SH SYNTAX
                     19: The format of the strongswan.conf file consists of hierarchical
                     20: .B sections
                     21: and a list of
                     22: .B key/value pairs
                     23: in each section. Each section has a name, followed by C-Style curly brackets
                     24: defining the section body. Each section body contains a set of subsections
                     25: and key/value pairs:
                     26: .PP
                     27: .EX
                     28:        settings := (section|keyvalue)*
                     29:        section  := name { settings }
                     30:        keyvalue := key = value\\n
                     31: .EE
                     32: .PP
                     33: Values must be terminated by a newline.
                     34: .PP
                     35: Comments are possible using the \fB#\fP-character.
                     36: .PP
                     37: Section names and keys may contain any printable character except:
                     38: .PP
                     39: .EX
                     40:        . , : { } = " # \\n \\t space
                     41: .EE
                     42: .PP
                     43: An example file in this format might look like this:
                     44: .PP
                     45: .EX
                     46:        a = b
                     47:        section-one {
                     48:                somevalue = asdf
                     49:                subsection {
                     50:                        othervalue = xxx
                     51:                }
                     52:                # yei, a comment
                     53:                yetanother = zz
                     54:        }
                     55:        section-two {
                     56:                x = 12
                     57:        }
                     58: .EE
                     59: .PP
                     60: Indentation is optional, you may use tabs or spaces.
                     61: 
                     62: 
                     63: .SH REFERENCING OTHER SECTIONS
                     64: It is possible to inherit settings and sections from another section. This
                     65: feature is mainly useful in swanctl.conf (which uses the same file format).
                     66: The syntax is as follows:
                     67: .PP
                     68: .EX
                     69:        section    := name : references { settings }
                     70:        references := absname[, absname]*
                     71:        absname    := name[.name]*
                     72: .EE
                     73: .PP
                     74: All key/value pairs and all subsections of the referenced sections will be
                     75: inherited by the section that references them via their absolute name. Values
                     76: may be overridden in the section or any of its sub-sections (use an empty
                     77: assignment to clear a value so its default value, if any, will apply). It is
                     78: currently not possible to limit the inclusion level or clear/remove inherited
                     79: sub-sections.
                     80: 
                     81: If the order is important (e.g. for auth rounds in a connection, if \fIround\fR
                     82: is not used), it should be noted that inherited settings/sections will follow
                     83: those defined in the current section (if multiple sections are referenced, their
                     84: settings are enumerated left to right).
                     85: 
                     86: References are evaluated dynamically at runtime, so referring to sections later
                     87: in the config file or included via other files is no problem.
                     88: 
                     89: Here is an example of how this might look like:
                     90: .PP
                     91: .EX
                     92:        conn-defaults {
                     93:                # default settings for all conns (e.g. a cert, or IP pools)
                     94:        }
                     95:        eap-defaults {
                     96:                # defaults if eap is used (e.g. a remote auth round)
                     97:        }
                     98:        child-defaults {
                     99:                # defaults for child configs (e.g. traffic selectors)
                    100:        }
                    101:        connections {
                    102:                conn-a : conn-defaults, eap-defaults {
                    103:                        # set/override stuff specific to this connection
                    104:                        children {
                    105:                                child-a : child-defaults {
                    106:                                        # set/override stuff specific to this child
                    107:                                }
                    108:                        }
                    109:                }
                    110:                conn-b : conn-defaults {
                    111:                        # set/override stuff specific to this connection
                    112:                        children {
                    113:                                child-b : child-defaults {
                    114:                                        # set/override stuff specific to this child
                    115:                                }
                    116:                        }
                    117:                }
                    118:                conn-c : connections.conn-a {
                    119:                        # everything is inherited, including everything conn-a
                    120:                        # already inherits from the sections it and its
                    121:                        # sub-section reference
                    122:                }
                    123:        }
                    124: .EE
                    125: .PP
                    126: 
                    127: .SH INCLUDING FILES
                    128: Using the
                    129: .B include
                    130: statement it is possible to include other files into strongswan.conf, e.g.
                    131: .PP
                    132: .EX
                    133:        include /some/path/*.conf
                    134: .EE
                    135: .PP
                    136: If the file name is not an absolute path, it is considered to be relative
                    137: to the directory of the file containing the include statement. The file name
                    138: may include shell wildcards (see
                    139: .IR sh (1)).
                    140: Also, such inclusions can be nested.
                    141: .PP
                    142: Sections loaded from included files
                    143: .I extend
                    144: previously loaded sections; already existing values are
                    145: .IR replaced .
                    146: It is important to note that settings are added relative to the section the
                    147: include statement is in.
                    148: .PP
                    149: As an example, the following three files result in the same final
                    150: config as the one given above:
                    151: .PP
                    152: .EX
                    153:        a = b
                    154:        section-one {
                    155:                somevalue = before include
                    156:                include include.conf
                    157:        }
                    158:        include other.conf
                    159: 
                    160: include.conf:
                    161:        # settings loaded from this file are added to section-one
                    162:        # the following replaces the previous value
                    163:        somevalue = asdf
                    164:        subsection {
                    165:                othervalue = yyy
                    166:        }
                    167:        yetanother = zz
                    168: 
                    169: other.conf:
                    170:        # this extends section-one and subsection
                    171:        section-one {
                    172:                subsection {
                    173:                        # this replaces the previous value
                    174:                        othervalue = xxx
                    175:                }
                    176:        }
                    177:        section-two {
                    178:                x = 12
                    179:        }
                    180: .EE
                    181: 
                    182: .SH READING VALUES
                    183: Values are accessed using a dot-separated section list and a key.
                    184: With reference to the example above, accessing
                    185: .B section-one.subsection.othervalue
                    186: will return
                    187: .BR xxx .
                    188: 
                    189: .SH DEFINED KEYS
                    190: The following keys are currently defined (using dot notation). The default
                    191: value (if any) is listed in brackets after the key.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>