diff --git a/tncattach.8 b/tncattach.8
new file mode 100644
index 0000000..f41390f
--- /dev/null
+++ b/tncattach.8
@@ -0,0 +1,165 @@
+.TH tncattach 8 "September 12, 2020"
+
+.SH NAME
+.
+.
+tncattach \- Attach TNC devices as system network interfaces
+
+.SH SYNOPSIS
+.
+.
+\f[B]tncattach\f[R] [OPTION...] port baudrate
+
+.SH DESCRIPTION
+Attach KISS TNC devices as network interfaces in Linux. This program allows you to attach TNCs or any KISS-compatible device as a network interface. This program does not need any kernel modules, and has no external dependencies outside the standard Linux and GNU C libraries.
+
+.SH OPTIONS
+.
+.
+.TP
+.BI \-m, \-\-mtu=MTU
+.
+Specify interface MTU
+.
+.
+.TP
+.BI \-e, \-\-ethernet
+Create a full ethernet device
+.
+.
+.TP
+.BI \-i, \-\-ipv4=IP_ADDRESS
+Configure an IPv4 address on interface
+.
+.
+.TP
+.BI \-n, \-\-noipv6
+Filter IPv6 traffic from reaching TNC
+.
+.
+.TP
+.BI \-\-noup
+Only create interface, don't bring it up
+.
+.
+.TP
+.BI \-T, \-\-kisstcp
+Use KISS over TCP instead of serial port
+.
+.
+.TP
+.BI \-H, \-\-tcphost=TCP_HOST
+Host to connect to when using KISS over TCP
+.
+.
+.TP
+.BI \-P, \-\-tcpport=TCP_PORT
+TCP port when using KISS over TCP
+.
+.
+.TP
+.BI \-t, \-\-interval=SECONDS
+Maximum interval between station identifications
+.
+.
+.TP
+.B \-s, \-\-id=CALLSIGN
+Station identification data
+.
+.
+.TP
+.BI \-d, \-\-daemon
+Run tncattach as a daemon
+.
+.
+.TP
+.BI \-v, \-\-verbose
+Enable verbose output
+.
+.
+.TP
+.BI \-?, \-\-help
+Show help
+.
+.
+.TP
+.BI \-\-usage
+Give a short usage message
+.
+.
+.TP
+.BI \-V, \-\-version
+Print program version
+.
+.
+
+.SH USAGE
+The program supports attaching TNCs as point-to-point tunnel devices, or generic ethernet devices. The ethernet mode is suitable for point-to-multipoint setups, and can be enabled with the corresponding command line switch. If you only need point-to-point links, it is advisable to just use the standard point-to-point mode, since it doesn't incur the ethernet header overhead on each packet.
+.P
+If you want to connect to a virtual KISS TNC over a TCP connection, you can use the -T option, along with the -H and -P options to specify the host and port.
+.P
+Additionally, it is worth noting that tncattach can filter out IPv6 packets from reaching the TNC. Most operating systems attempts to autoconfigure IPv6 when an interface is brought up, which results in a substantial amount of IPv6 traffic generated by router solicitations and similar, which is usually unwanted for packet radio links and similar.
+.P
+If you intend to use tncattach on a system with mDNS services enabled (avahi-daemon, for example), you may want to consider modifying your mDNS setup to exclude TNC interfaces, or turning it off entirely, since it will generate a lot of traffic that might be unwanted.
+
+.SH STATION IDENTIFICATION
+
+You can configure tncattach to automatically transmit station identification beacons according to a given interval, by using the --id and --interval options. Identification will be transmitted as raw data frames with whatever content has been specified in the --id option. Useful for amateur radio use, or other areas where station identification is necessary.
+.P
+Identification beacons will be transmitted when:
+.P
+.IP
+There is outgoing data to send, and the specified interval has elapsed.
+.IP
+The specified interval elapses, and data has been sent since the last ID beacon.
+.IP
+The program exits, if any data frames have been transmitted since the last ID beacon.
+.P
+The above methodology should comply with station identification rules for amateur radio in most parts of the world, and complies with US Part 97 rules.
+
+.SH EXAMPLES
+.
+Create an ethernet device with a USB-connected TNC, set the MTU, filter IPv6 traffic, and set an IPv4 address:
+.IP
+sudo tncattach /dev/ttyUSB0 115200 --ethernet --mtu 576 --noipv6 --ipv4 10.92.0.10/24
+.P
+Create an ethernet device with a TCP-connected TNC, set the MTU, filter IPv6 traffic, and set an IPv4 address:
+.IP
+sudo tncattach -T -H localhost -P 8001 --ethernet --mtu 576 --noipv6 --ipv4 10.92.0.10/24
+.P
+You can interact with the interface like any other using the ip or ifconfig utilities.
+.p
+Check interface is running:
+.P
+# ifconfig
+.br
+tnc0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 400
+.br
+        inet 10.93.0.1  netmask 255.255.255.255  destination 10.93.0.2
+.br
+        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
+.br
+        RX packets 0  bytes 0 (0.0 B)
+.br
+        RX errors 0  dropped 0  overruns 0  frame 0
+.br
+        TX packets 0  bytes 0 (0.0 B)
+.br
+        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
+.P
+.SH WORTH KNOWING ON RASPBIAN
+On some versions of Raspbian (and probably other operating systems), the DHCP client daemon dhcpcd interferes with TNC interfaces, by overriding their MTU and trying to auto-configure link-local addresses. You probably don't want this, and it can be disabled by editing the /etc/dhcpcd.conf file, adding a statement telling dhcpcd to ignore your TNC interface:
+.P
+# Add the following statement somewhere at the beginning
+.br
+# of /etc/dhcpcd.conf to prevent dhcpcd from changing MTU
+.br
+denyinterfaces tnc0
+
+.SH SEE ALSO
+
+rnodeconfigutil(8)
+
+.SH AUTHOR
+
+Mark Qvist