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 bitfield (see below) */
uint32_t pcr; /* peak cellrate */
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 sequence number + 1 */
uint32_t OutSeq; /* last sent sequencenumber */
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 orout of order */
uint32_t ng_lostpdu; /* PDU lost detected */
uint32_t ng_badpdu; /* Unknown PDUtype */
uint32_t ng_rx_novcc; /* Draining PDU onclosed VCC */
uint32_t ng_rx_iqfull; /* PDU drops noroom in atm_intrq */
uint32_t ng_tx_rawcell; /* PDU raw cellstransmitted */
uint32_t ng_rx_rawcell; /* PDU raw cellsreceived */
uint64_t ng_tx_pdu; /* PDU transmitted*/
uint64_t ng_rx_pdu; /* PDU received */ - };
struct hva_stats_atm {uint64_t atm_xmit; /* Cells transmitted */
uint64_t atm_rcvd; /* Cells received*/ - };
struct hva_stats_aal5 {uint64_t aal5_xmit; /* Cells transmitted */
uint64_t aal5_rcvd; /* Cells received*/
uint32_t aal5_crc_len; /* Cells withCRC/length errors */
uint32_t aal5_drops; /* Cell drops */
uint64_t aal5_pdu_xmit; /* CS PDUs transmitted */
uint64_t aal5_pdu_rcvd; /* CS PDUs received */
uint32_t aal5_pdu_crc; /* CS PDUs withCRC errors */
uint32_t aal5_pdu_errs; /* CS layer protocol 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