ACSRC(5)
π ACSRC(5) π
okay bestie, so this is ACSRC(5), and it lives in the BP configuration files section of the manual. it's a whole vibe about how you talk to the Aggregate Custody Signal side of your ION node, and honestly? it's giving "secret handshake energy." let's get into it π«Ά
β¨ NAME β¨
acsrc β the Aggregate Custody Signal management commands file. yep, that's the whole name. short, sweet, iconic π
πΈ DESCRIPTION πΈ
So here's the tea: Aggregate Custody Signal management commands get passed to acsadmin in one of two ways:
- through a file of text lines, or
- interactively at
acsadmin's command prompt, which is:
Commands get interpreted line by line, and it's exactly one command per line β no doubling up, no multitasking, one command per line periodt.
The formats and effects of all those Aggregate Custody Signal management commands? Literally all described below. keep reading bestie π
π GENERAL COMMANDS π
?β The help command. It displays a listing of the commands and their formats. It is the same as thehcommand. twin behavior fr fr#β Comment line. Any line beginning with#is not interpreted. it's just vibes, no execution πe { 1 | 0 }β Echo control. Setting echo to1causes all output printed byacsadminto be logged as well as sent to stdout. Setting echo to0disables this behavior. turning the mic on and off basically π€vβ Version number. Prints out the version of ION currently installed. HINT: combine with thee 1command to log the version number at startup. lowkey a power move β¨1 <logLevel> [<heapWords>]β The initialize command. Until this command is executed, Aggregate Custody Signals are not in operation on the local ION node and mostacsadmincommands will fail. so like. do this one first bestie, no cap π
The logLevel argument specifies at which log level the ACS appending and transmitting implementation should record its activity to the ION log file. This argument is the bitwise "OR" of the following log levels:
0x01ERROR β Errors in ACS programming are logged.0x02WARN β Warnings like "out of memory" that don't cause ACS to fail but may change behavior are logged.0x04INFO β Informative information like "this custody signal is a duplicate" is logged.0x08DEBUG β Verbose information like the state of the pending ACS tree is logged.
The optional heapWords argument informs ACS to allocate that many heap words in its own DRAM SDR for constructing pending ACS. If you don't supply it, the default ACS_SDR_DEFAULT_HEAPWORDS is used. And here's the part you gotta know: once all ACS SDR is allocated, any incoming custodial bundles that would trigger an ACS will trigger a normal, non-aggregate custody signal instead, until ACS SDR is freed. So if your node keeps intermittently emitting non-aggregate custody signals when it should be emitting ACS, that's your sign to increase heapWords. she's telling you something π¦
Also! Since ACS uses SDR only for emitting Aggregate Custody Signals, ION can still receive ACS even if this command is not executed, or all ACS SDR memory is allocated. so receiving? always fine. it's the sending that needs the setup π
hβ The help command. It displays a listing of the commands and their formats. It is the same as the?command. yes we said this already, they're the same, that's the point π«Άs <minimumCustodyId>β This command sets the minimum custody ID that the local bundle agent may use in custody transfer enhancement blocks that it emits. These custody IDs must be unique in the network (for the lifetime of the bundles to which they refer). very much a "no duplicates allowed" situation π
The minimumCustodyId you provide is stored in SDR, and incremented every time a new custody ID is required. So, this command should be used only when the local bundle agent has discarded its SDR and restarted. not a casual everyday command bestie, it's for the specific moment π
π¦ CUSTODIAN COMMANDS π¦
a custodianEid acsSize [acsDelay]β The add custodian command. This one provides information about the ACS characteristics of a remote custodian.
custodianEid is the custodian EID for which this command is providing information.
acsSize is the preferred size of ACS bundles sent to custodianEid; ACS bundles this implementation sends to custodianEid will aggregate until ACS are at most acsSize bytes. And okay, careful with this one: if acsSize is smaller than 19 bytes, some ACS containing only one signal will exceed acsSize and be sent anyways. Also, setting acsSize to 0 causes "aggregates" of only 1 signal to be sent. so like, zero means "no aggregation actually," iykyk π
acsDelay is the maximum amount of time to delay an ACS destined for this custodian before sending it, in seconds; if you don't specify it, DEFAULT_ACS_DELAY will be used. she has a default, she's self-sufficient πΈ
π EXAMPLES π
okay here's one that actually shows the whole vibe:
a ipn:15.0 100 27
Informs ACS on the local node that the local node should send ACS bundles destined for the custodian ipn:15.0 whenever they are 100 bytes in size or have been delayed for 27 seconds, whichever comes first. a little race, a little drama, we love to see it π
π SEE ALSO π
and that's the whole page bestie!! π this one came from perl v5.24.1, dated 2016-07-07 β so yeah, she's been around a minute, but she still ate. mwah π go initialize your ACS and slay β¨π
π¦ where this page comes from
- ubuntu jammy: ion 3.2.1+dfsg-1.1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms