DDP (4)
Linux AppleTalk protocol implementation
SYNOPSIS
#include <sys/socket.h>
#include <netatalk/at.h>
ddp_socket " = socket(PF_APPLETALK, SOCK_DGRAM, 0);"
raw_socket " = socket(PF_APPLETALK, SOCK_RAW, " protocol ");"
DESCRIPTION
Linux implements the Appletalk protocols described in
Inside Appletalk.
Only the DDP layer and AARP are present in
the kernel. They are designed to be used via the
netatalk
protocol
libraries. This page documents the interface for those who wish or need to
use the DDP layer directly.
The communication between Appletalk and the user program works using a
BSD-compatible socket interface. For more information on sockets, see
socket (4).
An AppleTalk socket is created by calling the
socket (2)
function with a
PF_APPLETALK
socket family argument. Valid socket types are
SOCK_DGRAM
to open a
ddp
socket or
SOCK_RAW
to open a
raw
socket.
protocol
is the Appletalk protocol to be received or sent. For
SOCK_RAW
you must specify
ATPROTO_DDP .
Raw sockets may be only opened by a process with effective user id 0 or when the process has the
CAP_NET_RAW
capability.
ADDRESS FORMAT
An Appletalk socket address is defined as a combination of a network number,
a node number, and a port number.
4n 20n 32n
struct at_addr {
u_short s_net;
u_char s_node;
};
struct sockaddr_atalk {
sa_family_t sat_family; /* address family */
u_char sat_port; /* port */
struct at_addr sat_addr; /* net/node */
};
sat_family
is always set to
AF_APPLETALK.
sat_port
contains the port. The port numbers below 129 are known as
reserved ports.
Only processes with the effective user id 0 or the
CAP_NET_BIND_SERVICE
attribute
set may
bind (2)
to these sockets.
sat_addr
is the host address.
The
net
member of
struct at_addr
contains the host network in network byte order. The value of
AT_ANYNET
is a
wildcard and also implies \(lqthis network.\(rq
The
node
member of
struct at_addr
contains the host node number. The value of
AT_ANYNODE
is a
wildcard and also implies \(lqthis node.\(rq The value of
ATADDR_BCAST
is a link
local broadcast address.
|