RAMSGATE(1)

πŸ“¦ version 3.2.1, in ubuntu jammy

πŸ’– RAMSGATE(1) πŸ’–

okay bestie, buckle up, this is the ramsgate page from the AMS executables section of the manual β€” and she's a whole vibe. remote gateway daemon core. let's get into it ✨


🌸 NAME 🌸

ramsgate β€” Remote AMS gateway daemon. that's it, that's the girl πŸ’…


✨ SYNOPSIS ✨

ramsgate application_name authority_name [bundles_TTL]

πŸ¦‹ DESCRIPTION πŸ¦‹

ramsgate is a background "daemon" task (yes she lives in the background, main character but make it mysterious) that functions as a Remote AMS gateway.

application_name and authority_name must identify an AMS venture that is known to operate in the local continuum, as noted in the MIB for the ramsgate application module. no random ventures, she has a guest list πŸ“‹

ramsgate will register as an application module in the root unit of the indicated venture. so that means a configuration server for the local continuum AND a registrar for the root unit of the indicated venture β€” and yes, those two can both be instantiated in a single amsd daemon task β€” must be running in order for ramsgate to commence operations. no servers, no service. simple as πŸ’€

ramsgate will communicate with other RAMS gateway modules in other continua by means of the RAMS network protocol noted in the RAMS gateway endpoint ID for the local continuum, as identified (explicitly or implicitly) in the MIB. pen pals across the multiverse fr fr 🌈

If the RAMS network protocol is "bp" (i.e., the DTN Bundle Protocol), then two things are non-negotiable:

  • an ION Bundle Protocol node must be operating on the local computer, and
  • that node must be registered in the BP endpoint identified by the RAMS gateway endpoint ID for the local continuum.

Moreover, in this case the value of bundles_TTL β€” if specified β€” will be taken as the lifetime in seconds that is to be declared for all "bundles" issued by ramsgate. and if you omit it? bundles_TTL defaults to 86400 seconds (one day). a full 24 hours of bundle lifetime, we love a generous queen πŸ‘‘


πŸŽ€ EXIT STATUS πŸŽ€

  • "0" β€” ramsgate terminated normally. she did what she had to do 🫢
  • "1" β€” ramsgate failed, for reasons noted in the ion.log file; the task terminated. not her fault, check the log 😭

πŸ“ FILES πŸ“

A MIB initialization file with the applicable default name (see amsrc(5)) must be present. non-negotiable, she needs her paperwork.

ramsgate records all "petitions" (requests for data on behalf of AMS modules in other continua) in a file named "petition.log".

At startup, the ramsgate daemon automatically reads and processes all petitions in the petition.log file just as if they were received in real time. note that this means you can cause petitions to be, in effect, "pre-received" by simply editing this file prior to startup. yes really, just edit the file, that's the hack 🌟

This can be an especially effective way to configure a RAMS network in which long signal propagation times would otherwise retard real-time petitioning and thus delay the onset of fully functional message exchange. space is big, light is slow, the file is fast. iykyk 🧚


πŸ’œ ENVIRONMENT πŸ’œ

No environment variables apply. nothing to export, nothing to source. a clean, unbothered existence ✨


πŸ”₯ DIAGNOSTICS πŸ”₯

The following diagnostics may be issued to the ion.log log file:

  • ramsgate can't run. β€” RAMS gateway functionality failed, for reasons noted in the ion.log file. she tried, bestie. the log knows why 😭

πŸ’€ BUGS πŸ’€

Note that the AMS design principle of receiving messages immediately and enqueuing them for eventual ingestion by the application module β€” rather than imposing application-layer flow control on AMS message traffic β€” enables high performance but makes ramsgate vulnerable to message spikes. highkey a tradeoff.

Since production and transmission of bundles is typically slower than AMS message reception over TCP service, the ION working memory and/or heap space available for AMS event insertion and/or bundle production can be quickly exhausted if a high rate of application message production is sustained for a long enough time. it's giving firehose into a teacup πŸ«–

Mechanisms for defending against this sort of failure are under study, but for now the best mitigations are simply to:

  1. build with compiler option -DAMS_INDUSTRIAL=1
  2. allocate as much space as possible to ION working memory and SDR heap (see ionconfig(5))
  3. limit the rate of AMS message issuance
fr fr do all three. this is not a drill, this is a sustained-high-rate-application-message-production situation and she will run out of room πŸ’…

Report bugs to <ion-bugs@korgano.eecs.ohiou.edu>


πŸ‘‘ SEE ALSO πŸ‘‘

amsrc(5), petition_log(5)


and that's the whole page, bestie 🩷 this one shipped as part of perl v5.24.1, dated 2016-07-07 β€” vintage but still iconic, periodt. go configure your RAMS network, you got this πŸ’–βœ¨

πŸ“¦ where this page comes from