---
name: "ionrc"
section: "5"
platform: "linux"
package: "ion"
version: "3.2.1+dfsg-1.1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/ionrc"
---

# ionrc(5)

ION node management commands file

## NAME

ionrc - ION node management commands file

## DESCRIPTION

ION node management commands are passed to **ionadmin** either in a file of text lines or interactively at **ionadmin**'s command prompt (:).  Commands are interpreted line-by line, with exactly one command per line.  The formats and effects of the ION node management commands are described below.

## TIME REPRESENTATION

For many ION node management commands, time values must be passed as arguments.  Every time value may be represented in either of two formats. Absolute time is expressed as:

*yyyy*/*mm*/*dd*-*hh*:*mm*:*ss*

Relative time (a number of seconds following the current *reference time*, which defaults to the current time at the moment *ionadmin* began execution but which can be overridden by the **at** command described below) is expressed as:

\+*ss*

## COMMANDS

- **?**

  The **help** command.  This will display a listing of the commands and their formats.  It is the same as the **h** command.

- **#**

  Comment line.  Lines beginning with **#** are not interpreted.

- **e** { 1 \| 0 }

  Echo control.  Setting echo to 1 causes all output printed by ionadmin to be logged as well as sent to stdout.  Setting echo to 0 disables this behavior.

- **v**

  Version number.  Prints out the version of ION currently installed.  HINT: combine with **e 1** command to log the version number at startup.

- **1** *node\_number* { *ion\_config\_filename* \| '' }

  The **initialize** command.  Until this command is executed, the local ION node does not exist and most *ionadmin* commands will fail.

  The command configures the local node to be identified by *node\_number*, a CBHE node number which uniquely identifies the node in the delay-tolerant network.  It also configures ION's data store (SDR) and shared working-memory region using either the settings found in the *ion\_config\_filename* file or, if '' is supplied as the *ion\_config\_filename*, a set of default settings.  Please see [*ionconfig*(5)](/ionconfig/5.md) for details.

  For example:

  ```
          1 19 ''
  ```

  would initialize ION on the local computer, assigning the local ION node the node number 19 and using default values to configure the data store and shared working-memory region.

- **@** *time*

  The **at** command.  This is used to set the reference time that will be used for interpreting relative time values from now until the next revision of reference time.  Note that the new reference time can be a relative time, i.e., an offset beyond the current reference time.

- **a contact** *start\_time* *stop\_time* *source\_node* *dest\_node* *xmit\_data\_rate*

  The **add contact** command.  This command schedules a period of data transmission from *source\_node* to *dest\_node*.  The period of transmission will begin at *start\_time* and end at *stop\_time*, and the rate of data transmission will be *xmit\_data\_rate* bytes/second.

- **d contact** *start\_time* *source\_node* *dest\_node*

  The **delete contact** command.  This command deletes the scheduled period of data transmission from *source\_node* to *dest\_node* starting at *start\_time*.  To delete all contacts between some pair of nodes, use '\*' as *start\_time*.

- **i contact** *start\_time* *source\_node* *dest\_node*

  This command will print information (the stop time and data rate) about the scheduled period of transmission from *source\_node* to *dest\_node* that starts at *start\_time*.

- **l contact**

  This command lists all scheduled periods of data transmission.

- **a range** *start\_time* *stop\_time* *one\_node* *the\_other\_node* *distance*

  The **add range** command.  This command predicts a period of time during which the distance from *one\_node* to *the\_other\_node* will be constant to within one light second.  The period will begin at *start\_time* and end at *stop\_time*, and the distance between the nodes during that time will be *distance* light seconds.

- **d range** *start\_time* *one\_node* *the\_other\_node*

  The **delete range** command.  This command deletes the predicted period of constant distance between *one\_node* and *the\_other\_node* starting at *start\_time*.  To delete all ranges between some pair of nodes, use '\*' as *start\_time*.

- **i range** *start\_time* *one\_node* *the\_other\_node*

  This command will print information (the stop time and range) about the predicted period of constant distance between *one\_node* and *the\_other\_node* that starts at *start\_time*.

- **l range**

  This command lists all predicted periods of constant distance.

- **m utcdelta** *local\_time\_sec\_after\_UTC*

  This management command sets ION's understanding of the current difference between correct UTC time and the time values reported by the clock for the local ION node's computer.  This delta is automatically applied to locally obtained time values whenever ION needs to know the current time.  For machines that use UTC natively and are synchronized by NTP, the value of this delta should be 0, the default.

- **m clockerr** *known\_maximum\_clock\_error*

  This management command sets ION's understanding of the accuracy of the scheduled start and stop times of planned contacts, in seconds.  The default value is 1.  When revising local data transmission and reception rates, *ionadmin* will adjust contact start and stop times by this interval to be sure not to send bundles that arrive before the neighbor expects data arrival or to discard bundles that arrive slightly before they were expected.

- **m clocksync** \[ { 1 \| 0 } \]

  This management command reports whether or not the computer on which the local ION node is running has a synchronized clock, as discussed in the description of the *ionClockIsSynchronized()* function ([*ion*(3)](/ion/3.md)).

  If a Boolean argument is provided when the command is executed, the characterization of the machine's clock is revised to conform with the asserted value.  The default value is 1.

- **m production** *planned\_data\_production\_rate*

  This management command sets ION's expectation of the mean rate of continuous data origination by local BP applications throughout the period of time over which congestion forecasts are computed.  For nodes that function only as routers this variable will normally be zero.  A value of -1, which is the default, indicates that the rate of local data production is unknown; in that case local data production is not considered in the computation of congestion forecasts.

- **m consumption** *planned\_data\_consumption\_rate*

  This management command sets ION's expectation of the mean rate of continuous data delivery to local BP applications throughout the period of time over which congestion forecasts are computed.  For nodes that function only as routers this variable will normally be zero.  A value of -1, which is the default, indicates that the rate of local data consumption is unknown; in that case local data consumption is not considered in the computation of congestion forecasts.

- **m occupancy** *heap\_occupancy\_limit* \[*file\_system\_occupancy\_limit*\]

  This management command sets the maximum number of megabytes of storage space in ION's SDR non-volatile heap, and/or in the local file system, that can be used for the storage of zero-copy objects.  A value of -1 for either limit signifies "leave unchanged".  The default heap limit is 60% of the SDR data store's total heap size.  The default file system limit is 1 Terabyte.

- **m horizon** { 0 \| *end\_time\_for\_congestion\_forecasts* }

  This management command sets the end time for computed congestion forecasts.  Setting congestion forecast horizon to zero sets the congestion forecast end time to infinite time in the future: if there is any predicted net growth in bundle storage space occupancy at all, following the end of the last scheduled contact, then eventual congestion will be predicted.  The default value is zero, i.e., no end time.

- **m alarm** '*congestion\_alarm\_command*'

  This management command establishes a command which will automatically be executed whenever *ionadmin* predicts that the node will become congested at some future time.  By default, there is no alarm command.

- **m usage**

  This management command simply prints ION's current data store occupancy (the number of megabytes of space in the SDR non-volatile heap and file system that are occupied by bundles), the limit on occupancy, and the maximum level of occupancy predicted by the most recent *ionadmin* congestion forecast computation.

- **r** '*command\_text*'

  The **run** command.  This command will execute *command\_text* as if it had been typed at a console prompt.  It is used to, for example, run another administrative program.

- **s**

  The **start** command.  This command starts the *rfxclock* task on the local ION node.

- **x**

  The **stop** command.  This command stops the *rfxclock* task on the local ION node.

- **h**

  The **help** command.  This will display a listing of the commands and their formats.  It is the same as the **?** command.

## EXAMPLES

- @ 2008/10/05-11:30:00

  Sets the reference time to 1130 (UTC) on 5 October 2008.

- a range +1 2009/01/01-00:00:00 1 2 12

  Predicts that the distance between nodes 1 and 2 (endpoint IDs ipn:1.0 and ipn:2.0) will remain constant at 12 light seconds over the interval that begins 1 second after the reference time and ends at the end of calendar year 2009.

- a contact +60 +7260 1 2 10000

  Schedules a period of transmission at 10,000 bytes/second from node 1 to node 2, starting 60 seconds after the reference time and ending exactly two hours (7200 seconds) after it starts.

## SEE ALSO

[*ionadmin*(1)](/ionadmin/1.md), [*rfxclock*(1)](/rfxclock/1.md), [*ion*(3)](/ion/3.md)
