TCPCLI(1)
β¨ TCPCLI(1) β the tcpcli glow-up β¨
BP executables Β· manual page for tcpcli Β· section 1 π
okay bestie, sit down, hydrate, and let me tell you about the little daemon that could π«Ά
πΈ NAME πΈ
tcpcli β the DTN TCPCL-compliant convergence layer input task. she listens, she receives, she hands bundles to the bundle protocol agent. main character energy fr fr π
π SYNOPSIS π
tcpcli local_hostname[:local_port_nbr]
π DESCRIPTION π
so tcpcli is a background "daemon" task, and the way she's built is literally 1 + N threads π§ β one thread that handles TCP connections coming in from remote tcpclo tasks and spawns sockets for data reception from those tasks, plus one input thread for each spawned socket, and that thread's whole job is handling data reception over that socket. teamwork, no cap π
The connection thread is lowkey simple: it just accepts connections on a TCP socket bound to local_hostname and local_port_nbr, and spawns reception threads. And if you leave local_port_nbr out? The default is 4556. write that down π
Every single time a connection gets established, the end-points will first exchange contact headers, because the connection parameters need to be negotiated β it's giving formal introductions at a party π. tcpcli records the acknowledgement flags, the reactive fragmentation flag, and the negative acknowledgements flag from the contact header it receives from its peer tcpclo task. noted. filed. obsessed.
Then each reception thread receives bundles over the associated connected socket. And heads up β each bundle received on the connection is preceded by message type, fragmentation flags, and size represented as an SDNV π. The received bundles get passed to the bundle protocol agent on the local ION node. slay, delivery complete π
Now, how does she even get born? tcpcli is spawned automatically by bpadmin in response to the 's' (START) command that starts operation of the Bundle Protocol π β and the text of the command used to spawn the task must be provided at the time the "tcp" convergence layer protocol is added to the BP database. no improvising, bestie. She's terminated by bpadmin in response to an 'x' (STOP) command π. And plot twist: tcpcli can also be spawned and terminated in response to START and STOP commands that pertain specifically to the TCP convergence layer protocol. versatile queen β¨
π₯ EXIT STATUS π₯
"0"βtcpcliterminated normally, for reasons noted in theion.logfile. If this termination was not commanded, go investigate and solve the problem identified in the log file, then usebpadminto restarttcpcli. don't just ignore it π"1"βtcpcliterminated abnormally, for reasons noted in theion.logfile. Investigate and solve the problem identified in the log file, then usebpadminto restarttcpcli. it's giving crisis π
π¦ FILES π¦
No configuration files are needed. not a single one. she's low maintenance π β¨
π ENVIRONMENT π
No environment variables apply. nope, none, zero, nada π
π DIAGNOSTICS π
The following diagnostics may be issued to the ion.log log file:
tcpcli can't attach to BP.βbpadminhas not yet initialized Bundle Protocol operations. like, she's knocking and nobody's home πNo such tcp duct.β No TCP induct matchinglocal_hostnameandlocal_port_nbrhas been added to the BP database. Usebpadminto stop the TCP convergence-layer protocol, add the induct, and then restart the TCP protocol. okay so the fix is literally right there π«ΆCLI task is already started for this duct.β Redundant initiation oftcpcli. she's already here, bestie πCan't get IP address for hostβ Operating system error. Checkerrtext, correct problem, and restart TCP.Can't open TCP socketβ Operating system error. Checkerrtext, correct problem, and restart TCP.Can't initialize socketβ Operating system error. Checkerrtext, correct problem, and restart TCP.tcpcli can't create access threadβ Operating system error. Checkerrtext, correct problem, and restart TCP.
bestie the pattern here is: errtext is your bestie too. read it, fix the thing, restart TCP. every single time. no skipping πΈ
π BUGS π
Report bugs to <ion-bugs@korgano.eecs.ohiou.edu> π§ β tell them we sent you, iykyk π
π SEE ALSO π
go read those next, bestie, they're literally the supporting cast π
and that's the whole page!! π this was perl v5.24.1, dated 2016-07-07, from the TCPCLI(1) era β vintage but still iconic, periodt β¨π¦π
π¦ 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