]> Cypherpunks.ru repositories - nncp.git/blobdiff - doc/call.texi
Add various documentation indices
[nncp.git] / doc / call.texi
index 509da59e213c7c1c582cb4053a8a54bb99b63358..388f041a553fd483da7111a8350d221bcbf10e8f 100644 (file)
@@ -1,25 +1,42 @@
 @node Call
+@cindex call
+@vindex calls
 @unnumbered Call configuration
 
-Call is a rule when and how node can be called.
+Call is a rule when and how node can be called by @ref{nncp-caller}.
 
 Example list of call structures:
 
 @verbatim
-calls:
-  -
-    cron: "*/1 * * * 0-4"
-    onlinedeadline: 3600
-    nice: 64
-  -
-    cron: "30 * * * 5-6"
-    onlinedeadline: 1800
-    maxonlinetime: 1750
-    nice: 64
-  -
-    cron: "0 * * * 5-6"
-    xx: rx
-    addr: lan
+calls: [
+    {
+        cron: "*/1 * * * MON-FRI"
+        onlinedeadline: 3600
+        nice: PRIORITY+10
+
+        autotoss: true
+        autotoss-doseen: true
+    }
+    {
+        cron: "30 * * * SAT,SUN"
+        onlinedeadline: 1800
+        maxonlinetime: 1750
+        nice: NORMAL
+        rxrate: 10
+        txrate: 20
+    }
+    {
+        cron: "0 * * * SAT,SUN"
+        xx: rx
+        addr: lan
+    }
+    {
+        cron: "*/5 * * * * * *"
+        when-tx-exists: true
+        nock: true
+        mcd-ignore: true
+    }
+]
 @end verbatim
 
 tells that on work days of the week call that node every minute,
@@ -36,137 +53,32 @@ It contains the following fields (only @emph{cron} is required):
 
 @table @emph
 
+@vindex cron
 @item cron
-This is copy-pasted documentation from
-@code{github.com/gorhill/cronexpr} library used there.
-
-@multitable @columnfractions .2 .1 .2 .5
-@headitem Field name @tab Mandatory? @tab Allowed values @tab Allowed special characters
-
-@item Seconds @tab No @tab 0-59 @tab @verb{|* / , -|}
-@item Minutes @tab Yes @tab 0-59 @tab @verb{|* / , -|}
-@item Hours @tab Yes @tab 0-23 @tab @verb{|* / , -|}
-@item Day of month @tab Yes @tab 1-31 @tab @verb{|* / , - L W|}
-@item Month @tab Yes @tab 1-12 or JAN-DEC @tab @verb{|* / , -|}
-@item Day of week @tab Yes @tab 0-6 or SUN-SAT @tab @verb{|* / , - L #|}
-@item Year @tab No @tab 1970–2099 @tab @verb{|* / , -|}
-
-@end multitable
-
-@table @asis
-
-@item Asterisk (@verb{|*|})
-
-The asterisk indicates that the cron expression matches for all values
-of the field. E.g., using an asterisk in the 4th field (month) indicates
-every month.
-
-@item Slash (@verb{|/|})
-
-Slashes describe increments of ranges. For example @verb{|3-59/15|} in
-the minute field indicate the third minute of the hour and every 15
-minutes thereafter. The form @verb{|*/...|} is equivalent to the form
-"first-last/...", that is, an increment over the largest possible range
-of the field.
-
-@item Comma (@verb{|,|})
-
-Commas are used to separate items of a list. For example, using
-@verb{|MON,WED,FRI|} in the 5th field (day of week) means Mondays,
-Wednesdays and Fridays.
-
-@item Hyphen (@verb{|-|})
-
-Hyphens define ranges. For example, 2000-2010 indicates every year
-between 2000 and 2010 AD, inclusive.
-
-@item L
-
-@verb{|L|} stands for "last". When used in the day-of-week field, it
-allows you to specify constructs such as "the last Friday" (@verb{|5L|})
-of a given month. In the day-of-month field, it specifies the last day
-of the month.
-
-@item W
-
-The @verb{|W|} character is allowed for the day-of-month field. This
-character is used to specify the business day (Monday-Friday) nearest
-the given day. As an example, if you were to specify @verb{|15W|} as the
-value for the day-of-month field, the meaning is: "the nearest business
-day to the 15th of the month."
-
-So, if the 15th is a Saturday, the trigger fires on Friday the 14th. If
-the 15th is a Sunday, the trigger fires on Monday the 16th. If the 15th
-is a Tuesday, then it fires on Tuesday the 15th. However if you specify
-@verb{|1W|} as the value for day-of-month, and the 1st is a Saturday,
-the trigger fires on Monday the 3rd, as it does not 'jump' over the
-boundary of a month's days.
-
-The @verb{|W|} character can be specified only when the day-of-month is
-a single day, not a range or list of days.
-
-The @verb{|W|} character can also be combined with @verb{|L|}, i.e.
-@verb{|LW|} to mean "the last business day of the month."
-
-@item Hash (@verb{|#|})
-
-@verb{|#|} is allowed for the day-of-week field, and must be followed by
-a number between one and five. It allows you to specify constructs such
-as "the second Friday" of a given month.
-
-@end table
-
-Predefined cron expressions:
-
-@multitable @columnfractions .1 .75 .15
-@headitem Entry @tab Description @tab Equivalent to
-@item @verb{|@annually|} @tab
-    Run once a year at midnight in the morning of January 1 @tab
-    @verb{|0 0 0 1 1 * *|}
-@item @verb{|@yearly|} @tab
-    Run once a year at midnight in the morning of January 1 @tab
-    @verb{|0 0 0 1 1 * *|}
-@item @verb{|@monthly|} @tab
-    Run once a month at midnight in the morning of the first of the month @tab
-    @verb{|0 0 0 1 * * *|}
-@item @verb{|@weekly|} @tab
-    Run once a week at midnight in the morning of Sunday @tab
-    @verb{|0 0 0 * * 0 *|}
-@item @verb{|@daily|} @tab
-    Run once a day at midnight @tab
-    @verb{|0 0 0 * * * *|}
-@item @verb{|@hourly|} @tab
-    Run once an hour at the beginning of the hour @tab
-    @verb{|0 0 * * * * *|}
-@end multitable
-
-@itemize
-@item
-If only six fields are present, a @verb{|0|} second field is prepended,
-that is, @verb{|* * * * * 2013|} internally become
-@verb{|0 * * * * * 2013|}.
-@item
-If only five fields are present, a @verb{|0|} second field is prepended
-and a wildcard year field is appended, that is, @verb{|* * * * Mon|}
-internally become @verb{|0 * * * * Mon *|}.
-@item
-Domain for day-of-week field is [0-7] instead of [0-6], 7 being Sunday
-(like 0). This to comply with @url{http://linux.die.net/man/5/crontab}.
-@end itemize
+@include cronexpr.texi
 
+@vindex nice
 @item nice
 Optional. Use that @ref{Niceness, niceness} during the call (255 is used
 otherwise).
 
+@vindex xx
+@vindex rx
+@vindex tx
 @item xx
 Optional. Either @verb{|rx|} or @verb{|tx|}. Tells only to either to
 receive or to transmit data during that call.
 
+@vindex addr
 @item addr
 Optional. Call only that address, instead of trying all from
 @ref{CfgAddrs, @emph{addrs}} configuration option. It can be either key
 from @emph{addrs} dictionary, or an ordinary @option{addr:port}.
 
+@item rxrate/txrate
+Optional. Override @ref{CfgXxRate, @emph{rxrate/txrate}} configuration
+option when calling.
+
 @item onlinedeadline
 Optional. Override @ref{CfgOnlineDeadline, @emph{onlinedeadline}}
 configuration option when calling.
@@ -175,4 +87,35 @@ configuration option when calling.
 Optional. Override @ref{CfgMaxOnlineTime, @emph{maxonlinetime}}
 configuration option when calling.
 
+@vindex autotoss
+@item autotoss, -doseen, -nofile, -nofreq, -noexec, -notrns
+Optionally enable auto tossing: run tosser on node's spool every second
+during the call. You can control either are @file{seen/} files must be
+created, or skip any kind of packet processing.
+
+@vindex when-tx-exists
+@item when-tx-exists
+Call only if packets for sending exists. The check of outbound packets
+existence is performed @strong{every} time we are going to make a call,
+but @emph{when-tx-exists} does not influence @emph{cron}. When
+@emph{cron} configuration decides that it is time to make a call, with
+@emph{when-tx-exists} option it checks packets existence first.
+
+@vindex nock
+@anchor{CfgNoCK}
+@item nock
+NoCK (no-checksumming) tells not to do checksumming of received files,
+assuming that it will be done for example with @ref{nncp-check} command
+later. That can help minimizing time spent online, because HDD won't do
+simultaneous reading of the data for checksumming and writing of the
+received one, but just sequential writing of the file. Pay attention
+that you have to make a call to remote node after checksumming is done,
+to send notification about successful packet reception.
+
+@vindex mcd-ignore
+@anchor{CfgMCDIgnore}
+@item mcd-ignore
+Ignore @ref{MCD} announcements: do not add MCD addresses for possible
+connection attempts.
+
 @end table