chiark / gitweb /
wip new config
[hippotat.git] / README.config
1 -*- Fundamental -*-
2
3 Sections
4
5   [<servername> - <clientaddr>]
6   [<clientaddr>]
7   [<servername>]   usually [SERVER]
8   [DEFAULT]
9
10 Keys are looked up in that order.  <servername> must not
11 be a valid IPv4 or IPv6 address.
12
13 Exceptional settings:
14
15   server
16
17      Specifies <servername>.
18      Is looked up in [SERVER] and [DEFAULT] only.
19      If not specified there, it is SERVER.
20
21   password
22
23      Looked up in the usual way, but used by client to
24      determine its own <clientaddr>s.
25
26      The client will create a local interface, and try to communicate
27      with the server, for Each (<servername>,<clientaddr>) pair for
28      which the config search yields a password.
29
30      On the server: clients with no password are ignored.
31
32 Capped settings:
33
34      Values in <servername> are a cap (maximum) on those from the
35      other sections (including DEFAULT):
36
37   max_batch_down
38      Size limit for response payloads (server only) [65536 bytes]
39
40   max_queue_time
41      Discard downwards packets after this long (server only) [10 s]
42
43   http_timeout
44      (On server) return with empty payload any http request oustanding
45       for this long
46      (On client) give up on any http request outstanding for
47       for this long plus http_timeout_grace
48      Client's effective timeout must be at least server's (checked).
49      [30 s]
50
51   target_requests_outstanding   
52      (On server) whenever number of outstanding requests for
53       a client exceeds this, return oldest with empty payload
54      (On client) try to keep this many requests outstanding.
55      Must match between client and server (checked).  [3]
56
57 Ordinary settings, used by client and server:
58
59   ipif
60      Command to run to create and communicate with local network
61      interface.  Passed to sh -c.  Must speak SLIP on stdin/stdout.
62      The following additional interpolations aare substituted:
63                        %(local)s      %(peer)s       %(rnet)s
64           on server    <vaddr>        <vrelay>       <vnetwork>
65           on client    <client>       <vaddr>        <vroutes>
66      ["userv root ipif %(local)s,%(peer)s,%(mtu)s,slip %(rnets)s"]
67
68   addrs
69      Public IP (v4 or v6) address(es) of the server;
70      space-separated.
71      (On server) mandatory; used for bind.  No default.
72      (On client) used only to construct default url.
73
74   vnetwork
75      Private network range (<prefix>/<length>).  Must contain all
76      <client>s.  Must contain <vaddr> and <vrelay>, and used
77      to compute their defaults.  [172.24.230.192/28]
78
79   vaddr
80      Address of server's virtual interface.
81
82   vrelay
83      Virtual point-to-point address used for tunnel routing
84      (does not appear in packets).
85      [first host entry in <vnetwork> other than <vaddr>,
86       so 172.24.230.194]
87
88   port
89      Public port number of the server.  [80]
90      (On server) used for bind.
91      (On client) used only to construct default url.
92
93   mtu
94      Must match exactly.  (checked) [1500 bytes]
95
96 Ordinary settings, used by client only:
97
98   http_timeout_grace
99      See http_timeout.  [5 s]
100
101   max_requests_outstanding
102      Client will hold off sending more requests than this to
103      server even if it has data to send.  [6]
104
105   max_batch_up
106      Size limit for request payloads. [4000 bytes]
107
108   http_retry
109      If a request fails, wait this long before considering it
110      "finished" - to limit rate of futile requests.  [5 s]
111
112   url
113      Public url of server.
114      [http://<first-entry-in-addrs>:<port>/]
115
116   vroutes
117      Virtual addresses (in CIDR syntax) to be found at the server
118      end, space-separated.  Routes to those will be created on
119      the client.  [""]