ng_atmpif(4)

NAME

ng_atmpif - netgraph HARP/ATM Virtual Physical Interface

SYNOPSIS

#include <sys/types.h>
#include <netatm/atm_if.h>
#include <netgraph/atm/ng_atmpif.h>

DESCRIPTION

The atmpif netgraph node type allows the emulation of atm(8) (netatm/HARP) Physical devices (PIF) to be connected to the
netgraph(4)
networking subsystem. Moreover, it includes protection of
the PDU
against duplication and desequencement. It supports up to
65535 VCs and
up to 255 VPs. AAL0, AAL3/4 and AAL5 emulation are provid
ed. In order
to optimize CPU, this node does not emulate the SAR layer.
The purpose of this node is to help in debugging and testing
the HARP
stack when one does not have an ATM board or when the avail
able boards do
not have enough features.
When a node is created, a PIF is created automatically. It
is named
hvaX. It has the same features as any other HARP devices.
The PIF is
removed when the node is removed.

HOOKS

There is only one hook: link. This hook can be connected to
any other
Netgraph node. For example, in order to test the HARP stack
over UDP, it
can be connected on a ng_ksocket(4) node.

CONTROL MESSAGES

This node type supports the generic messages plus the fol
lowing:
NGM_ATMPIF_SET_CONFIG (setconfig)
Configures the debugging features of the node and a
virtual Peak
Cell Rate (PCR). It uses the same structure as
NGM_ATMPIF_GET_CONFIG.
NGM_ATMPIF_GET_CONFIG (getconfig)
Returns a structure defining the configuration of
the interface:
struct ng_vatmpif_config {
uint8_t debug; /* debug bit
field (see below) */
uint32_t pcr; /* peak cell
rate */
Mac_addr macaddr; /* Mac Address
*/
};
Note that the following debugging flags can be used:

VATMPIF_DEBUG_NONE disable debugging
VATMPIF_DEBUG_PACKET enable debugging
NGM_ATMPIF_GET_LINK_STATUS (getlinkstatus)
Returns the last received sequence number, the last
sent sequence
number and the current total PCR that is reserved
among all the
VCCs of the interface.
struct ng_atmpif_link_status {
uint32_t InSeq; /* last received se
quence number + 1 */
uint32_t OutSeq; /* last sent sequence
number */
uint32_t cur_pcr; /* slot's reserved PCR
*/
};
NGM_ATMPIF_GET_STATS (getstats)
NGM_ATMPIF_CLR_STATS (clrstats)
NGM_ATMPIF_GETCLR_STATS (getclrstats)
It returns the node's statistics, it clears them or
it returns
and resets their values to 0. The following stats
are provided.
struct hva_stats_ng {
uint32_t ng_errseq; /* Duplicate or
out of order */
uint32_t ng_lostpdu; /* PDU lost de
tected */
uint32_t ng_badpdu; /* Unknown PDU
type */
uint32_t ng_rx_novcc; /* Draining PDU on
closed VCC */
uint32_t ng_rx_iqfull; /* PDU drops no
room in atm_intrq */
uint32_t ng_tx_rawcell; /* PDU raw cells
transmitted */
uint32_t ng_rx_rawcell; /* PDU raw cells
received */
uint64_t ng_tx_pdu; /* PDU transmitted
*/
uint64_t ng_rx_pdu; /* PDU received */
};
struct hva_stats_atm {
uint64_t atm_xmit; /* Cells transmit
ted */
uint64_t atm_rcvd; /* Cells received
*/
};
struct hva_stats_aal5 {
uint64_t aal5_xmit; /* Cells transmit
ted */
uint64_t aal5_rcvd; /* Cells received
*/
uint32_t aal5_crc_len; /* Cells with
CRC/length errors */
uint32_t aal5_drops; /* Cell drops */
uint64_t aal5_pdu_xmit; /* CS PDUs trans
mitted */
uint64_t aal5_pdu_rcvd; /* CS PDUs re
ceived */
uint32_t aal5_pdu_crc; /* CS PDUs with
CRC errors */
uint32_t aal5_pdu_errs; /* CS layer proto
col errors */
uint32_t aal5_pdu_drops; /* CS PDUs dropped
*/
};

SEE ALSO

natm(4), netgraph(4), ng_ksocket(4), ngctl(8)

AUTHORS

Harti Brandt <harti@FreeBSD.org>
Vincent Jardin <vjardin@wanadoo.fr>
BSD August 7, 2003
Copyright © 2010-2024 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout