summaryrefslogtreecommitdiff
path: root/man7/ddp.7
diff options
context:
space:
mode:
authorMichael Kerrisk <mtk.manpages@gmail.com>2008-08-08 16:41:48 +0000
committerMichael Kerrisk <mtk.manpages@gmail.com>2008-08-08 16:41:48 +0000
commit77117f4fc55addbb657d1c87e2f86911d7e432c9 (patch)
tree5a1c4291dea39575e350a55242d246c04b25e821 /man7/ddp.7
parent10874173dba2edf045eebd9e85945970182dbaf6 (diff)
Reverting blunder in commit 4699
Diffstat (limited to 'man7/ddp.7')
-rw-r--r--man7/ddp.7259
1 files changed, 251 insertions, 8 deletions
diff --git a/man7/ddp.7 b/man7/ddp.7
index 9b672eb86..0831993fb 100644
--- a/man7/ddp.7
+++ b/man7/ddp.7
@@ -1,8 +1,251 @@
-.TH DDP 7 2008-08-07 "Linux" "Linux Programmer's Manual"
-.TH DDP 7 2008-08-07 "Linux" "Linux Programmer's Manual"
-.TH DDP 7 2008-08-07 "Linux" "Linux Programmer's Manual"
-.TH DDP 7 2008-08-07 "Linux" "Linux Programmer's Manual"
-.TH DDP 7 2008-08-07 "Linux" "Linux Programmer's Manual"
-.TH DDP 7 2008-08-07 "Linux" "Linux Programmer's Manual"
-.TH DDP 7 2008-08-07 "Linux" "Linux Programmer's Manual"
-.TH DDP 7 2008-08-07 "Linux" "Linux Programmer's Manual"
+.\" This man page is Copyright (C) 1998 Alan Cox.
+.\" Permission is granted to distribute possibly modified copies
+.\" of this page provided the header is included verbatim,
+.\" and in case of nontrivial modification author and date
+.\" of the modification is added to the header.
+.\" $Id: ddp.7,v 1.3 1999/05/13 11:33:22 freitag Exp $
+.TH DDP 7 1999-05-01 "Linux" "Linux Programmer's Manual"
+.SH NAME
+ddp \- Linux AppleTalk protocol implementation
+.SH SYNOPSIS
+.B #include <sys/socket.h>
+.br
+.B #include <netatalk/at.h>
+.sp
+.IB ddp_socket " = socket(PF_APPLETALK, SOCK_DGRAM, 0);"
+.br
+.IB raw_socket " = socket(PF_APPLETALK, SOCK_RAW, " protocol ");"
+.SH DESCRIPTION
+Linux implements the Appletalk protocols described in
+.IR "Inside Appletalk" .
+Only the DDP layer and AARP are present in
+the kernel.
+They are designed to be used via the
+.B netatalk
+protocol
+libraries.
+This page documents the interface for those who wish or need to
+use the DDP layer directly.
+.PP
+The communication between Appletalk and the user program works using a
+BSD-compatible socket interface.
+For more information on sockets, see
+.BR socket (7).
+.PP
+An AppleTalk socket is created by calling the
+.BR socket (2)
+function with a
+.B PF_APPLETALK
+socket family argument.
+Valid socket types are
+.B SOCK_DGRAM
+to open a
+.B ddp
+socket or
+.B SOCK_RAW
+to open a
+.B raw
+socket.
+.I protocol
+is the Appletalk protocol to be received or sent.
+For
+.B SOCK_RAW
+you must specify
+.BR ATPROTO_DDP .
+.PP
+Raw sockets may be only opened by a process with effective user ID 0
+or when the process has the
+.B CAP_NET_RAW
+capability.
+.SS "Address Format"
+An Appletalk socket address is defined as a combination of a network number,
+a node number, and a port number.
+.PP
+.in +4n
+.nf
+struct at_addr {
+ unsigned short s_net;
+ unsigned char s_node;
+};
+
+struct sockaddr_atalk {
+ sa_family_t sat_family; /* address family */
+ unsigned char sat_port; /* port */
+ struct at_addr sat_addr; /* net/node */
+};
+.fi
+.in
+.PP
+.I sat_family
+is always set to
+.BR AF_APPLETALK .
+.I sat_port
+contains the port.
+The port numbers below 129 are known as
+.I reserved ports.
+Only processes with the effective user ID 0 or the
+.B CAP_NET_BIND_SERVICE
+capability may
+.BR bind (2)
+to these sockets.
+.I sat_addr
+is the host address.
+The
+.I net
+member of
+.I struct at_addr
+contains the host network in network byte order.
+The value of
+.B AT_ANYNET
+is a
+wildcard and also implies \(lqthis network.\(rq
+The
+.I node
+member of
+.I struct at_addr
+contains the host node number.
+The value of
+.B AT_ANYNODE
+is a
+wildcard and also implies \(lqthis node.\(rq The value of
+.B ATADDR_BCAST
+is a link
+local broadcast address.
+.\" FIXME this doesn't make sense [johnl]
+.SS "Socket Options"
+No protocol-specific socket options are supported.
+.SS Sysctls
+IP supports a sysctl interface to configure some global AppleTalk
+parameters.
+The sysctls can be accessed by reading or writing the
+.I /proc/sys/net/atalk/*
+files or with the
+.BR sysctl (2)
+interface.
+.TP
+.B aarp-expiry-time
+The time interval (in seconds) before an AARP cache entry expires.
+.TP
+.B aarp-resolve-time
+The time interval (in seconds) before an AARP cache entry is resolved.
+.TP
+.B aarp-retransmit-limit
+The number of retransmissions of an AARP query before the node is declared
+dead.
+.TP
+.B aarp-tick-time
+The timer rate (in seconds) for the timer driving AARP.
+.PP
+The default values match the specification and should never need to be
+changed.
+.SS Ioctls
+All ioctls described in
+.BR socket (7)
+apply to ddp.
+.\" FIXME Add a section about multicasting
+.SH ERRORS
+.\" FIXME document all errors. We should really fix the kernels to
+.\" give more uniform error returns (ENOMEM vs ENOBUFS, EPERM vs
+.\" EACCES etc.)
+.TP
+.B EACCES
+The user tried to execute an operation without the necessary permissions.
+These include sending to a broadcast address without
+having the broadcast flag set,
+and trying to bind to a reserved port without effective user ID 0 or
+.BR CAP_NET_BIND_SERVICE .
+.TP
+.B EADDRINUSE
+Tried to bind to an address already in use.
+.TP
+.B EADDRNOTAVAIL
+A nonexistent interface was requested or the requested source address was
+not local.
+.TP
+.B EAGAIN
+Operation on a non-blocking socket would block.
+.TP
+.B EALREADY
+A connection operation on a non-blocking socket is already in progress.
+.TP
+.B ECONNABORTED
+A connection was closed during an
+.BR accept (2).
+.TP
+.B EHOSTUNREACH
+No routing table entry matches the destination address.
+.TP
+.B EINVAL
+Invalid argument passed.
+.TP
+.B EISCONN
+.BR connect (2)
+was called on an already connected socket.
+.TP
+.B EMSGSIZE
+Datagram is bigger than the DDP MTU.
+.TP
+.B ENODEV
+Network device not available or not capable of sending IP.
+.TP
+.B ENOENT
+.B SIOCGSTAMP
+was called on a socket where no packet arrived.
+.TP
+.BR ENOMEM " and " ENOBUFS
+Not enough memory available.
+.TP
+.B ENOPKG
+A kernel subsystem was not configured.
+.TP
+.BR ENOPROTOOPT " and " EOPNOTSUPP
+Invalid socket option passed.
+.TP
+.B ENOTCONN
+The operation is only defined on a connected socket, but the socket wasn't
+connected.
+.TP
+.B EPERM
+User doesn't have permission to set high priority,
+make a configuration change,
+or send signals to the requested process or group,
+.TP
+.B EPIPE
+The connection was unexpectedly closed or shut down by the other end.
+.TP
+.B ESOCKTNOSUPPORT
+The socket was unconfigured, or an unknown socket type was requested.
+.SH VERSIONS
+Appletalk is supported by Linux 2.0 or higher.
+The
+.B sysctl
+interface is
+new in Linux 2.2.
+.SH NOTES
+Be very careful with the
+.B SO_BROADCAST
+option \- it is not privileged in Linux.
+It is easy to overload the network
+with careless sending to broadcast addresses.
+.SS Compatibility
+The basic AppleTalk socket interface is compatible with
+.B netatalk
+on BSD-derived systems.
+Many BSD systems fail to check
+.B SO_BROADCAST
+when sending broadcast frames; this can lead to compatibility problems.
+.PP
+The
+raw
+socket mode is unique to Linux and exists to support the alternative CAP
+package and AppleTalk monitoring tools more easily.
+.SH BUGS
+There are too many inconsistent error values.
+.PP
+The ioctls used to configure routing tables, devices,
+AARP tables and other devices are not yet described.
+.SH "SEE ALSO"
+.BR recvmsg (2),
+.BR sendmsg (2),
+.BR capabilities (7),
+.BR socket (7)