.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BRSCCLA 1" .TH BRSCCLA 1 "2014-07-08" "perl v5.20.1" "BP executables" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" brsccla \- BRSC\-based BP convergence layer adapter (input and output) task .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBbrsccla\fR \fIserver_hostname\fR[:\fIserver_port_nbr\fR]_\fIown_node_nbr\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\s-1BRSC\s0 is the \*(L"client\*(R" side of the Bundle Relay Service (\s-1BRS\s0) convergence layer protocol for \s-1BP. \s0 It is complemented by \s-1BRSS,\s0 the \*(L"server\*(R" side of the \s-1BRS\s0 convergence layer protocol for \s-1BP. BRS\s0 clients send bundles directly only to the server, regardless of their final destinations, and the server forwards them to other clients as necessary. .PP \&\fBbrsccla\fR is a background \*(L"daemon\*(R" task comprising three threads: one that connects to the \s-1BRS\s0 server, spawns the other threads, and then handles \s-1BRSC\s0 protocol output by transmitting bundles over the connected socket to the \s-1BRS\s0 server; one that simply sends periodic \*(L"keepalive\*(R" messages over the connected socket to the server (to assure that local inactivity doesn't cause the connection to be lost); and one that handles \s-1BRSC\s0 protocol input from the connected server. .PP The output thread connects to the server's \s-1TCP\s0 socket at \fIserver_hostname\fR and \fIserver_port_nbr\fR, sends over the connected socket the client's \&\fIown_node_nbr\fR (in \s-1SDNV\s0 representation) followed by a 32\-bit time tag and a 160\-bit \s-1HMAC\-SHA1\s0 digest of that time tag, to authenticate itself; checks the authenticity of the 160\-bit countersign returned by the server; spawns the keepalive and receiver threads; and then begins extracting bundles from the queues of bundles ready for transmission via \s-1BRSC\s0 and transmitting those bundles over the connected socket to the server. Each transmitted bundle is preceded by its length, a 32\-bit unsigned integer in network byte order. The default value for \&\fIserver_port_nbr\fR, if omitted, is 80. .PP The reception thread receives bundles over the connected socket and passes them to the bundle protocol agent on the local \s-1ION\s0 node. Each bundle received on the connection is preceded by its length, a 32\-bit unsigned integer in network byte order. .PP The keepalive thread simply sends a \*(L"bundle length\*(R" value of zero (a 32\-bit unsigned integer in network byte order) to the server once every 15 seconds. .PP Note that \fBbrsccla\fR is not a \*(L"promiscuous\*(R" convergence layer daemon: it can transmit bundles only to the \s-1BRS\s0 server to which it is connected, so scheme configuration directives that cite this outduct need only provide the protocol name and the \s-1BRSC\s0 outduct name as specified on the command line when \fBbrsccla\fR is started. .PP \&\fBbrsccla\fR is spawned automatically by \fBbpadmin\fR in response to the 's' (\s-1START\s0) command that starts operation of the Bundle Protocol, and it is terminated by \fBbpadmin\fR in response to an 'x' (\s-1STOP\s0) command. \fBbrsccla\fR can also be spawned and terminated in response to \s-1START\s0 and \s-1STOP\s0 commands that pertain specifically to the \s-1BRSC\s0 convergence layer protocol. .SH "EXIT STATUS" .IX Header "EXIT STATUS" .ie n .IP """0""" 4 .el .IP "``0''" 4 .IX Item "0" \&\fBbrsccla\fR terminated normally, for reasons noted in the \fBion.log\fR file. If this termination was not commanded, investigate and solve the problem identified in the log file and use \fBbpadmin\fR to restart the \s-1BRSC\s0 protocol. .ie n .IP """1""" 4 .el .IP "``1''" 4 .IX Item "1" \&\fBbrsccla\fR terminated abnormally, for reasons noted in the \fBion.log\fR file. Investigate and solve the problem identified in the log file, then use \&\fBbpadmin\fR to restart the \s-1BRSC\s0 protocol. .SH "FILES" .IX Header "FILES" No configuration files are needed. .SH "ENVIRONMENT" .IX Header "ENVIRONMENT" No environment variables apply. .SH "DIAGNOSTICS" .IX Header "DIAGNOSTICS" The following diagnostics may be issued to the \fBion.log\fR log file: .IP "brsccla can't attach to \s-1BP.\s0" 4 .IX Item "brsccla can't attach to BP." \&\fBbpadmin\fR has not yet initialized Bundle Protocol operations. .IP "No such brsc induct." 4 .IX Item "No such brsc induct." No \s-1BRSC\s0 induct with duct name matching \fIserver_hostname\fR, \fIown_node_nbr\fR, and \fIserver_port_nbr\fR has been added to the \s-1BP\s0 database. Use \fBbpadmin\fR to stop the \s-1BRSC\s0 convergence-layer protocol, add the induct, and then restart the \s-1BRSC\s0 protocol. .IP "\s-1CLI\s0 task is already started for this duct." 4 .IX Item "CLI task is already started for this duct." Redundant initiation of \fBbrsccla\fR. .IP "No such brsc outduct." 4 .IX Item "No such brsc outduct." No \s-1BRSC\s0 outduct with duct name matching \fIserver_hostname\fR, \fIown_node_nbr\fR, and \fIserver_port_nbr\fR has been added to the \s-1BP\s0 database. Use \fBbpadmin\fR to stop the \s-1BRSC\s0 convergence-layer protocol, add the outduct, and then restart the \s-1BRSC\s0 protocol. .IP "Can't connect to server." 4 .IX Item "Can't connect to server." Operating system error. Check errtext, correct problem, and restart \s-1BRSC.\s0 .IP "Can't register with server." 4 .IX Item "Can't register with server." Configuration error. Authentication has failed, probably because (a) the client and server are using different \s-1HMAC/SHA1\s0 keys or (b) the clocks of the client and server differ by more than 5 seconds. Update security policy database(s), as necessary, and assure that the clocks are synchronized. .IP "brsccla can't create receiver thread" 4 .IX Item "brsccla can't create receiver thread" Operating system error. Check errtext, correct problem, and restart \s-1BRSC.\s0 .IP "brsccla can't create keepalive thread" 4 .IX Item "brsccla can't create keepalive thread" Operating system error. Check errtext, correct problem, and restart \s-1BRSC.\s0 .SH "BUGS" .IX Header "BUGS" Report bugs to .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbpadmin\fR\|(1), \fIbprc\fR\|(5), \fIbrsscla\fR\|(1)