DGRCLA(1)

πŸ“¦ version 3.2.1, in ubuntu jammy

πŸ’– DGRCLA β€” bestie edition πŸ’–

okay so this is dgrcla(1) from the BP executables manual, and it's a whole vibe. buckle up πŸŽ€


✨ NAME ✨

dgrcla β€” the DGR-based BP convergence layer adapter (input and output) task. she does both. she contains multitudes. πŸ’…


🌸 SYNOPSIS 🌸

dgrcla local_hostname[:local_port_nbr]

that's it. that's the whole invocation. short queen. πŸ‘‘


πŸ¦‹ DESCRIPTION πŸ¦‹

so dgrcla is a background "daemon" task, and the way that it works is it spawns two threads β€” like, two little workers, main character energy each:

  1. one thread handles DGR convergence layer protocol input
  2. the other handles DGR convergence layer protocol output

the input thread receives DGR messages over a UDP socket that's bound to local_hostname and local_port_nbr, pulls the bundles out of those messages, and hands them over to the bundle protocol agent on the local ION node. also, quick heads up: local_port_nbr defaults to 1113 if you don't specify it. no cap. ✨

the output thread goes the other direction β€” it pulls bundles out of the queues of bundles that are ready to be transmitted via DGR to remote bundle protocol agents, wraps them up in DGR messages, and sends those messages off to the right remote UDP sockets. which sockets, you ask? the ones indicated by the host names and UDP port numbers (destination induct names) that the routing daemons attached to those bundles when they enqueued them. the routing daemons did the addressing, she just ships it. 🚚

🫢 important lil note: dgrcla is a "promiscuous" convergence layer daemon β€” she's able to transmit bundles to any DGR destination induct. her duct name is the name of the corresponding induct, not the induct name of any single DGR destination induct she might be dedicated to. so scheme configuration directives that cite this outduct must provide destination induct IDs. for the DGR convergence-layer protocol, destination induct IDs are literally identical to induct names, i.e. they look like local_hostname[:local_port_nbr]. same thing, fr fr.

and the lifecycle? dgrcla gets spawned automatically by bpadmin when you hit the 's' (START) command that starts operation of the Bundle Protocol, and she gets terminated by bpadmin when you hit 'x' (STOP). she can also be spawned and terminated in response to START and STOP commands that pertain specifically to the DGR convergence layer protocol. flexible icon behavior. πŸ’œ


πŸ”₯ EXIT STATUS πŸ”₯

  • "0" β€” dgrcla terminated normally, for reasons noted in the ion.log file. but bestie, if this termination was not commanded, go investigate and solve the problem identified in the log file and use bpadmin to restart dgrcla. don't just ignore her. 😭
  • "1" β€” dgrcla terminated abnormally, for reasons noted in the ion.log file. investigate and solve the problem identified in the log file, then use bpadmin to restart dgrcla. that's the whole to-do list. πŸ’€

πŸŽ€ FILES πŸŽ€

no configuration files are needed. zero. none. we love a low-maintenance queen. πŸ™ˆ


🌈 ENVIRONMENT 🌈

no environment variables apply. nothing to set, nothing to export, go touch some grass instead. 🌸


⭐ DIAGNOSTICS ⭐

the following diagnostics may be issued to the ion.log log file β€” think of it as her little diary of complaints:

  • dgrcla can't attach to BP. bpadmin has not yet initialized Bundle Protocol operations. like, she showed up to the party and nobody set up the party. 😭
  • No such dgr induct. no DGR induct with a duct name matching local_hostname and local_port_nbr has been added to the BP database. use bpadmin to stop the DGR convergence-layer protocol, add the induct, and then restart the DGR protocol. do the steps in that order bestie, in that order. ✨
  • CLI task is already started for this engine. redundant initiation of dgrcla. she's already here. you're being extra. πŸ™ˆ
  • No such dgr induct. no DGR outduct with a duct name matching local_hostname and local_port_nbr has been added to the BP database. use bpadmin to stop the DGR convergence-layer protocol, add the outduct, and then restart the DGR protocol. (yes, this one says the same thing as the other one but it's about the outduct β€” the manual really said copy-paste, and I respect the honesty. πŸ’…)
  • Can't get IP address for host operating system error. check errtext, correct the problem, and restart DGR. 🌟
  • dgrcla can't open DGR service access point. DGR system error. check prior messages in the ion.log log file, correct the problem, and then stop and restart the DGR protocol. read the log, she left receipts. πŸ”
  • dgrcla can't create sender thread operating system error. check errtext, correct the problem, and restart DGR. 🧡
  • dgrcla can't create receiver thread operating system error. check errtext, correct the problem, and restart DGR. 🧡

πŸ’€ BUGS πŸ’€

report bugs to <ion-bugs@korgano.eecs.ohiou.edu>. tell them everything. they want to know. 🫢


πŸ‘‘ SEE ALSO πŸ‘‘


okay that's the whole page, you absolutely ate that read πŸ’– and a lil cute sign-off for the credits: this one comes from the perl v5.24.1 era, dated 2016-07-07. vintage. iconic. slay. βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from