.\" 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 "OWLTTB 1" .TH OWLTTB 1 "2014-07-08" "perl v5.20.1" "ICI 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" owlttb \- one\-way light time transmission delay simulator .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBowlttb\fR \fIown_uplink_port#\fR \fIown_downlink_port#\fR \fIdest_uplink_IP_address\fR \fIdest_uplink_port#\fR \fIdest_downlink_IP_address\fR \fIdest_downlink_port#\fR \fIowlt_sec.\fR [\-v] .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBowlttb\fR delays delivery of data between an \s-1NTTI\s0 and a NetAcquire box (or two, one for uplink and one for downlink) by a specified length of time, simulating the signal propagation delay imposed by distance between the nodes. .PP Its operation is configured by the command-line parameters, except that the delay interval itself may be changed while the program is running. \fBowlttb\fR offers a command prompt (:), and when a new value of one-way light time is entered at this prompt the new delay interval takes effect immediately. .IP "\fIown_uplink_port#\fR identifies the port on \fBowlttb\fR accepts the \s-1NTTI\s0's \s-1TCP\s0 connection for uplink traffic (i.e., data destined for the NetAcquire box)." 4 .IX Item "own_uplink_port# identifies the port on owlttb accepts the NTTI's TCP connection for uplink traffic (i.e., data destined for the NetAcquire box)." .PD 0 .IP "\fIown_downlink_port#\fR identifies the port on \fBowlttb\fR accepts the \s-1NTTI\s0's \s-1TCP\s0 connection for downlink traffic (i.e., data issued by the NetAcquire box)." 4 .IX Item "own_downlink_port# identifies the port on owlttb accepts the NTTI's TCP connection for downlink traffic (i.e., data issued by the NetAcquire box)." .IP "\fIdest_uplink_IP_address\fR is the \s-1IP\s0 address (a dotted string) identifying the NetAcquire box to which \fBowlttb\fR will transmit uplink traffic." 4 .IX Item "dest_uplink_IP_address is the IP address (a dotted string) identifying the NetAcquire box to which owlttb will transmit uplink traffic." .IP "\fIdest_uplink_port#\fR identifies the \s-1TCP\s0 port to which \fBowlttb\fR will connect in order to transmit uplink traffic to NetAcquire." 4 .IX Item "dest_uplink_port# identifies the TCP port to which owlttb will connect in order to transmit uplink traffic to NetAcquire." .IP "\fIdest_downlink_IP_address\fR is the \s-1IP\s0 address (a dotted string) identifying the NetAcquire box from which \fBowlttb\fR will receive downlink traffic." 4 .IX Item "dest_downlink_IP_address is the IP address (a dotted string) identifying the NetAcquire box from which owlttb will receive downlink traffic." .IP "\fIdest_downlink_port#\fR identifies the \s-1TCP\s0 port to which \fBowlttb\fR will connect in order to receive downlink traffic from NetAcquire." 4 .IX Item "dest_downlink_port# identifies the TCP port to which owlttb will connect in order to receive downlink traffic from NetAcquire." .IP "\fIowlt\fR specifies the number of seconds to wait before forwarding each received segment of \s-1TCP\s0 traffic." 4 .IX Item "owlt specifies the number of seconds to wait before forwarding each received segment of TCP traffic." .PD .PP The optional \fB\-v\fR (\*(L"verbose\*(R") parameter causes \fBowlttb\fR to print a message whenever it receives, sends, or discards (due to absence of a connected downlink client) a segment of \s-1TCP\s0 traffic. .PP \&\fBowlttb\fR is designed to run indefinitely. To terminate the program, just use control-C to kill it or enter \*(L"q\*(R" at the prompt. .SH "EXIT STATUS" .IX Header "EXIT STATUS" .ie n .IP """0"" Nominal termination." 4 .el .IP "``0'' Nominal termination." 4 .IX Item "0 Nominal termination." .PD 0 .ie n .IP """1"" Termination due to an error condition, as noted in printed messages." 4 .el .IP "``1'' Termination due to an error condition, as noted in printed messages." 4 .IX Item "1 Termination due to an error condition, as noted in printed messages." .PD .SH "EXAMPLES" .IX Header "EXAMPLES" Here is a sample owlttb command: .IP "owlttb 2901 2902 137.7.8.19 10001 137.7.8.19 10002 75" 4 .IX Item "owlttb 2901 2902 137.7.8.19 10001 137.7.8.19 10002 75" .PP This command indicates that \fBowlttb\fR will accept an uplink traffic connection on port 2901, forwarding the received uplink traffic to port 10001 on the NetAcquire box at 137.7.8.19, and it will accept a downlink traffic connection on port 2902, delivering over that connection all downlink traffic that it receives from connecting to port 10002 on the NetAcquire box at 137.7.8.19. 75 seconds of delay (simulating a distance of 75 light seconds) will be imposed on this transmission activity. .SH "FILES" .IX Header "FILES" Not applicable. .SH "ENVIRONMENT" .IX Header "ENVIRONMENT" No environment variables apply. .SH "DIAGNOSTICS" .IX Header "DIAGNOSTICS" The following diagnostics may be printed to stdout: .IP "owlttb can't spawn uplink thread" 4 .IX Item "owlttb can't spawn uplink thread" The program terminates. .IP "owlttb can't spawn uplink sender thread" 4 .IX Item "owlttb can't spawn uplink sender thread" The program terminates. .IP "owlttb can't spawn downlink thread" 4 .IX Item "owlttb can't spawn downlink thread" The program terminates. .IP "owlttb can't spawn downlink receiver thread" 4 .IX Item "owlttb can't spawn downlink receiver thread" The program terminates. .IP "owlttb can't spawn downlink sender thread" 4 .IX Item "owlttb can't spawn downlink sender thread" The program terminates. .IP "owlttb fgets failed" 4 .IX Item "owlttb fgets failed" The program terminates. .IP "owlttb out of memory." 4 .IX Item "owlttb out of memory." The program terminates. .IP "owlttb lost uplink client." 4 .IX Item "owlttb lost uplink client." This is an informational message. The \s-1NTTI\s0 may reconnect at any time. .IP "owlttb lost downlink client" 4 .IX Item "owlttb lost downlink client" This is an informational message. The \s-1NTTI\s0 may reconnect at any time. .IP "owlttb can't open \s-1TCP\s0 socket to NetAcquire" 4 .IX Item "owlttb can't open TCP socket to NetAcquire" The program terminates. .IP "owlttb can't connect \s-1TCP\s0 socket to NetAcquire" 4 .IX Item "owlttb can't connect TCP socket to NetAcquire" The program terminates. .IP "owlttb \fIwrite()\fR error on socket" 4 .IX Item "owlttb write() error on socket" The program terminates if it was writing to NetAcquire; otherwise it simply recognizes that the client \s-1NTTI\s0 has disconnected. .IP "owlttb \fIread()\fR error on socket" 4 .IX Item "owlttb read() error on socket" The program terminates. .IP "owlttb can't open uplink dialup socket" 4 .IX Item "owlttb can't open uplink dialup socket" The program terminates. .IP "owlttb can't initialize uplink dialup socket" 4 .IX Item "owlttb can't initialize uplink dialup socket" The program terminates. .IP "owlttb can't open downlink dialup socket" 4 .IX Item "owlttb can't open downlink dialup socket" The program terminates. .IP "owlttb can't initialize downlink dialup socket" 4 .IX Item "owlttb can't initialize downlink dialup socket" The program terminates. .IP "owlttb \fIaccept()\fR failed" 4 .IX Item "owlttb accept() failed" The program terminates. .SH "BUGS" .IX Header "BUGS" Report bugs to