8 Specifies ``<servername>``.
9 Is looked up in ``[SERVER]`` and ``[COMMON]`` only.
10 If not specified there, it is ``SERVER``.
12 Used by server to select the appropriate parts of the
13 rest of the configuration. Ignored by the client.
16 Looked up in the usual way, but used by client and server to
17 determine which possible peerings to try to set up, and which to
20 We define the sets of putative clients and servers, as follows:
21 all those, for which there is any section (even an empty one)
22 whose name is based on ``<client>`` or ``<servername>`` (as applicable).
23 (``LIMIT`` sections do not count.)
25 The server queue packets for, and accept requests from, each
26 putative client for which the config search yields a secret.
28 Each client will create a local interface, and try to communicate
29 with the server, for each possible pair (putative server,
30 putative client) for which the config search yields a secret.
32 The value is a string, fed directly into HMAC.
35 Command to run to create and communicate with local network
36 interface. Passed to sh -c. Must speak SLIP on stdin/stdout.
37 The following interpolations aare substituted:
39 ============== ============ ============ =============== =================
40 Input ``%{local}`` ``%{peer}`` ``%{rnets}`` ``%{ifname}``
41 ============== ============ ============ =============== =================
42 **on server** ``vaddr`` ``vrelay`` ``vnetwork`` ``ifname_server``
43 **on client** ``client`` ``vaddr`` ``vroutes`` ``ifname_client``
44 ============== ============ ============ =============== =================
46 **Always:** ``%{mtu}``, and ``%%`` to indicate a literal ``%``.
48 (For compatibility with older hippotat, ``%(var)s`` is supported too
49 but this is deprecated since the extra ``s`` is confusing.)
51 On server: applies to all clients; not looked up in client-specific sections.
52 On client: may be different for different servers.
54 [string; ``userv root ipif %{local},%{peer},%{mtu},slip '%{rnets}'``]
60 Values in ``[<server> LIMIT]`` and ``[LIMIT]`` are a cap (maximum) on
61 those from the other sections (including ``COMMON``). If a larger
62 value is obtained, it is (silently) reduced to the limit value.
66 Size limit for response payloads.
68 On client, incoming response bodies are limited to this plus
69 a fixed constant metadata overhead of 10000 bytes.
70 Server uses minimum of client and server value (old servers
71 just uses server's value).
73 [``65536`` (bytes); ``LIMIT``: ``262144``]
76 Discard packets after they have been queued this long
79 On server: setting applies to downward packets.
80 On client: setting applies to upward packets.
82 [``10`` (s); ``LIMIT``: ``121``]
85 On server: return with empty payload any http request oustanding
88 On client: give up on any http request outstanding for
89 for this long plus ``http_timeout_grace``.
91 Warning messages about link problems, printed by the client,
92 are rate limited to no more than one per effective timeout.
94 Client's effective timeout must be at least server's (checked).
96 [``30`` (s); ``LIMIT``: ``121``]
98 target_requests_outstanding
99 On client: try to keep this many requests outstanding, to
100 allow for downbound data transfer.
101 On server: whenever number of outstanding requests for
102 a client exceeds this, returns oldest with empty payload.
103 Must match between client and server (checked).
104 [``3``; ``LIMIT``: ``10``]
107 Ordinary settings, used by both, not client-specific
108 ----------------------------------------------------
110 These are not looked up in the client-specific config sections.
113 Public IP (v4 or v6) address(es) of the server; space-separated.
114 On server: mandatory; used for bind.
115 On client: used only to construct default ``url``.
119 Private network range. Must contain all
120 ``<client>``s. Must contain ``vaddr`` and ``vrelay``, and is used
121 to compute their defaults. [CIDR syntax (``<prefix>/<length>``);
122 ``172.24.230.192/28``]
125 Address of server's virtual interface.
126 [default: first host entry in ``vnetwork``, so ``172.24.230.193``]
129 Virtual point-to-point address used for tunnel routing
130 (does not appear in packets).
131 [default: first host entry in ``vnetwork`` other than ``vaddr``,
132 so ``172.24.230.194``]
135 Public port number of the server.
136 On server: used for bind.
137 On client: used only to construct default url.
141 Of virtual interface.
142 Must match exactly at each end - *this is not checked*.
146 | Virtual interface name on the server. [``shippo%d``]
147 | Any ``%d`` is interpolated (by the kernel).
150 | Virtual interface name on the client. [``hippo%d``]
151 | Any ``%d`` is interpolated (by the kernel).
154 Ordinary settings, used by server only
155 --------------------------------------
158 Permissible clock skew between client and server.
159 Hippotat will not work if clock skew is more than this.
160 Conversely: when moving client from one public network to
161 another, the first network can deny service to the client for
162 this period after the client leaves the first network.
166 Ordinary settings, used by client only
167 --------------------------------------
169 ``http_timeout_grace``
170 See ``http_timeout``. [``5`` (s)]
172 ``max_requests_outstanding``
173 Client will hold off sending more requests than this to
174 server even if it has data to send. [``6``]
177 Size limit for request upbound payloads. [``4000`` (bytes)]
179 ``success_report_interval``
180 If nonzero, report success periodically. Otherwise just
181 report it when we first have success. [``3600`` (s)]
184 If a request fails, wait this long before considering it
185 "finished" - to limit rate of futile requests (and also
186 to limit rate of moaning on stderr). [``5`` s]
189 Public url of server.
190 [``http://<first-entry-in-addrs>:<port>/``]
193 Additional virtual addresses to be found at the server
194 end, space-separated. Routes to those will be created on
195 the client. ``vrelay`` is included implicitly.
196 [CIDR syntax, space separated; default: none]