;; script is good for Linux hosts.
ifup = /usr/sbin/tripe-ifup
-;; every: interval for checking that this connection is alive.
-every = 2m
-
-;; timeout: how long to wait for a ping response before giving up.
-timeout = 10s
-
-;; retries: how many ping attempts to make before declaring the connection
-;; dead.
-retries = 5
-
;;;--------------------------------------------------------------------------
;;; Active-peers defaults.
;;;
;; the remote peer.
peer = INET $[$(host)] $(port)
+;; ephemeral: whether to send the peer a disconnection notification, or
+;; react to one from the peer.
+ephemeral = nil
+
+;;;--------------------------------------------------------------------------
+;;; Temporary association defaults.
+;;;
+;;; These are settings common to both dynamic and passive peers.
+
+[@WATCH]
+@inherit = @GLOBAL
+
+;; watch: whether to watch this connection and drop it if it dies.
+watch = t
+
+;; timeout: how long to wait for a ping response before giving up.
+timeout = 10s
+
+;; retries: how many ping attempts to make before declaring the connection
+;; dead.
+retries = 5
+
;;;--------------------------------------------------------------------------
;;; Dynamic-peers defaults.
;;;
;;; The parameters here affect peers to whom dynamic connections are made.
;;; The user and connect parameters probably need customizing.
+[@EPHEMERAL]
+@inherit = @ACTIVE, @WATCH
+
+;; ephemeral: whether to send the peer a disconnection notification, or
+;; react to one from the peer.
+ephemeral = t
+
+;; every: interval for checking that this connection is alive.
+every = 30s
+
+[@KNOCK]
+@inherit = @EPHEMERAL
+
+;; keepalive: how often to send NOP packets to keep the connection alive, at
+;; least in the minds of intermediate stateful firewalls and NAT routers.
+keepalive = 2m
+
+;; knock: peer-name string to send to the peer.
+knock = $(myhost)
+
[@DYNAMIC]
-@inherit = @ACTIVE
+@inherit = @EPHEMERAL
;; cork: whether to wait for a key-exchange packet from the peer before
;; sending one of our own.
;; connect: shell command to use to wake up the remote peer and establish the
;; connection.
-connect = ssh -q $(ssh-user)@$[$(host)]
+connect = ssh -q $(ssh-user)@$[$(host)] hello
+
+;; disconnect: shell command to use to shut the remote peer down.
+disconnect = ssh -q $(ssh-user)@$[$(host)] goodbye
;; keepalive: how often to send NOP packets to keep the connection alive, at
;; least in the minds of intermediate stateful firewalls and NAT routers.
keepalive = 2m
-;; watch: whether to watch this connection and retry it if it drops.
-watch = t
-
;;;--------------------------------------------------------------------------
;;; Passive-peers defaults.
;;;
;;; of the parameters and these defaults are probably pretty good.
[@PASSIVE]
-@inherit = @GLOBAL
+@inherit = @WATCH
;; peer: mark this entry as being a passive peer.
peer = PASSIVE
+;; mobile: mark this peer as likely to change its external address without
+;; warning.
+mobile = t
+
;; user: the string which the dynamic peer's connect command will present to
;; the CONNECT service.
user = $(name)
-;; watch: whether to watch this connection and drop it if it dies.
-watch = t
+;; every: interval for checking that this connection is alive: should be at
+;; least twice as long as the dynamic peer interval.
+every = 5m
;;;----- That's all, folks --------------------------------------------------