* Downloading service: DownloadService
* Git::
* Multimedia streaming: Multimedia
+* Serial connection: PPP
@end menu
@include integration/freqindex.texi
@include integration/download.texi
@include integration/git.texi
@include integration/multimedia.texi
+@include integration/ppp.texi
--- /dev/null
+@node PPP
+@section Serial connection
+
+It is not trivial to run online @command{nncp-daemon},
+@command{nncp-call} and @command{nncp-caller} commands over the serial
+link, because it is link without built-in error detection. For efficient
+usage you have to use some kind of window-sliding error correction
+protocol, like Kermit, ZMODEM, UUCP's g-protocol and similar well known
+ones.
+
+However TCP is already satisfying and existing protocol for the same
+purposes. So it would be more easier to bring up the IP interconnection
+and use TCP over it. Most distributions already have
+@url{https://en.wikipedia.org/wiki/Point-to-point_protocol, PPP}
+protocol out-of-box.
+
+Ordinary man page for @command{ppp} in FreeBSD is enough for being able
+to setup it:
+
+@itemize
+
+@item Enable PPP-aware default terminal to run @command{ppplogin} script:
+
+@example
+/etc/gettytab:
+ default:pp=/usr/local/bin/ppplogin:...
+@end example
+
+@example
+/usr/local/bin/ppplogin:
+ #!/bin/sh
+ exec /usr/sbin/ppp -direct incoming
+@end example
+
+@item Enable listening on necessary UART:
+
+@example
+/etc/ttys:
+ ttyU0 "/usr/libexec/getty 3wire.115200" vt100 on
+@end example
+
+@item
+Create @code{incoming} PPP profile, allowing authenticated @code{ppp}
+user to log in:
+
+@example
+/etc/ppp/ppp.conf:
+ incoming:
+ allow ppp
+ disable deflate pred1 mppe protocomp vjcomp ipcp dns
+ enable lqr # null-modem cables might not have carrier detection
+/etc/ppp/ppp.secret:
+ ppp PASSWORD
+@end example
+
+@item
+Configure PPP client to access that server:
+
+@example
+/etc/ppp/ppp.conf:
+ outgoing:
+ set device /dev/cuaU0
+ set speed 115200
+ set dial
+ set login
+ set authname ppp
+ set authkey PASSWORD
+ disable deflate pred1 mppe protocomp vjcomp ipcp dns
+ enable lqr
+@end example
+
+@end itemize
+
+That configuration does not negotiate any kind of IPv4 addresses,
+routing or DNS servers. Also all compression is turned off, because
+NNCP's traffic is encrypted and uncompressible. Only IPV6CP will
+negotiate IPv6 link-local addresses, on which you can run @ref{MCD,
+multicast discovered} daemons for simplicity.