DTN2RC(5)
π DTN2RC β the dtn scheme configuration commands file π
okay bestie, welcome to dtn2rc(5) β yes it's a section 5 page, yes that means "file formats", yes we're doing this. it lives under BP configuration files and it's literally just the rules for how you tell the dtn scheme where stuff goes. let's get into it π¦
β¨ NAME β¨
dtn2rc β the "dtn" scheme configuration commands file. that's the whole name. short, sweet, iconic π
πΈ DESCRIPTION πΈ
so, "dtn" scheme configuration commands get handed to dtn2admin in one of two ways: either as a file full of text lines, or interactively right at dtn2admin's command prompt, which is the : character. either way, commands are interpreted line by line, with exactly one command per line. no cramming, no multitasking, one vibe per line periodt.
what are these commands for, you ask? mostly they establish static routing rules for forwarding bundles to "dtn"-scheme destination endpoints β and those endpoints get identified by node names and demux names. iykyk.
static routes are expressed as plans in the "dtn"-scheme routing database. a plan that's established for a given node name associates a default routing directive with that named node, and that default directive can be overridden by more narrowly scoped rules in specific circumstances: a different directive may apply when the destination endpoint ID specifies a particular demux name. so like, the general plan is the main character, and the rules are the plot twists π
each directive is a string, and it comes in one of two possible forms:
f endpoint_ID
β¦orβ¦
x protocol_name/outduct_name[,destination_induct_name],
(yes, that trailing comma is really there, we don't ask questions, we copy faithfully π«Ά)
the former form means the bundle is to be forwarded to the indicated endpoint β and that requires it be re-queued for processing by the forwarder for that endpoint. note that this endpoint might be identified by another "dtn"-scheme endpoint IDβ¦ but it doesn't have to be. flexible queen behavior.
the latter form means the bundle is to be queued for transmission via the indicated convergence layer protocol outduct. and here's the tea: destination_induct_name must be provided when the indicated outduct is "promiscuous" β i.e., not configured for transmission only to a single neighboring node. this is protocol-specific, so don't come for me, it's not my rule π
now. the node names and demux names cited in dtn2rc plans and overriding rules may be "wild-carded". here's how that works: when the last character of a node name is either '*' or '~' β and bestie, these two wild-card characters are equivalent for this purpose, they're the same girl β the plan or rule applies to all nodes whose names are identical to the wild-carded node name up to the wild-card character. wild-carded demux names function in the exact same way. slay.
for example: a bundle whose destination EID's node name is "//foghorn" would be routed by plans citing the following node names:
"//foghorn""//fogh*""//fog~""//*"
and when multiple plans are all applicable to the same destination EID? the one citing the longest (i.e., most narrowly targeted) node name gets applied. same energy for rules: when multiple rules overriding the same plan are all applicable to the same destination EID, the one citing the longest demux name gets applied. most specific wins, always. it's giving precision π
the formats and effects of the DTN scheme configuration commands are described below. buckle up π
π GENERAL COMMANDS π
?β the help command. this will display a listing of the commands and their formats. it is the same as thehcommand. twins fr fr.#β comment line. lines beginning with#are not interpreted. say whatever you want, nobody's reading it. πe { 1 | 0 }β echo control. setting echo to1causes all output printed bydtn2adminto be logged as well as sent to stdout. setting echo to0disables this behavior. two places at once, multitasking icon.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 pro move.hβ the help command. this will display a listing of the commands and their formats. it is the same as the?command. yes, again. they're the same. we love a duo. β¨
π PLAN COMMANDS π
a plan node_name default_directiveβ the add plan command. this establishes a static route for the bundles destined for the node identified bynode_name. heads up: a general plan must be in place for a node before any more specific routing rules are declared. foundation first, bestie π§±d plan node_nameβ the delete plan command. this deletes the static route for the node identified bynode_name, including all associated rules. it's a package deal, the rules go down with the ship πi plan node_nameβ this command will print information (the default directive and all specific rules) about the static route for the node identified bynode_name. the full tea βl planβ this command lists all static routes established in the DTN database for the local node. the whole roster π
β RULE COMMANDS β
a rule node_name demux_name directiveβ the add rule command. this establishes a rule, i.e., a directive that overrides the default directive of the plan for the node identified bynode_namein the event that the demux name of the subject bundle's destination endpoint ID matchesdemux_name. exception clause, activated πc rule node_name demux_name directiveβ the change rule command. this changes the directive for the indicated rule. glow up πd rule node_name demux_nameβ the delete rule command. this deletes the rule identified bynode_nameanddemux_name. bye bye π¦i rule node_name demux_nameβ this command will print information (the directive) about the rule identified bynode_nameanddemux_name. receipts πl rule node_nameβ this command lists all rules in the plan for the indicated node. the receipts, but all of them πΈ
π₯ EXAMPLES π₯
okay real talk, examples are where it clicks. here we go:
a plan //bbn2 f ipn:8.41
declares a static route from the local node to node "//bbn2". by default, any bundle destined for any endpoint whose node name is "//bbn2" will be forwarded to endpoint "ipn:8.41". cute, simple, effective π
a plan //mitre1 x ltp/6
declares a static route from the local node to node "//mitre1". by default, any bundle destined for any endpoint whose node name is "mitre1" will be queued for transmission on LTP outduct 6. (yes, the description says "mitre1" without the slashes, that's the original's wording, we don't touch it π)
a rule //mitre1 fwd x ltp/18
declares an overriding static routing rule for any bundle destined for node "//mitre1" whose destination demux name is "fwd". each such bundle must be queued for transmission on LTP outduct 18 rather than the default (LTP outduct 6). it's giving "actually, no, this one goes here" π
π«Ά SEE ALSO π«Ά
and that's the whole page, bestie. no cap, you now know more about dtn scheme configuration than 99% of people. go forth and route responsibly π
this page ships with perl v5.24.1, dated 2016-07-07 β vintage, but she still ate πβ¨
π¦ 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