:man| Alphabetical   Categories   About us 
NG_ATMPIF (4) | Special files and drivers | Unix Manual Pages | :man


ng_atmpif - netgraph HARP/ATM Virtual Physical Interface


Control Messages
See Also


.In sys/types.h
.In netatm/atm_if.h
.In netgraph/atm/ng_atmpif.h


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 provided. 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 available 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.


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.


This node type supports the generic messages plus the following:

Configures the debugging features of the node and a virtual Peak Cell Rate (PCR). It uses the same structure as NGM_ATMPIF_GET_CONFIG.

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

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 sequence number */
uint32_t cur_pcr; /* slot’s reserved PCR */

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_tng_errseq; /* Duplicate or out of order */
uint32_tng_lostpdu;/* PDU lost detected */
uint32_tng_badpdu; /* Unknown PDU type */
uint32_tng_rx_novcc; /* Draining PDU on closed VCC */
uint32_tng_rx_iqfull; /* PDU drops no room in atm_intrq */
uint32_tng_tx_rawcell; /* PDU raw cells transmitted */
uint32_tng_rx_rawcell; /* PDU raw cells received */
uint64_tng_tx_pdu; /* PDU transmitted */
uint64_tng_rx_pdu; /* PDU received */
struct hva_stats_atm {
uint64_tatm_xmit; /* Cells transmitted */
uint64_tatm_rcvd; /* Cells received */
struct hva_stats_aal5 {
uint64_taal5_xmit; /* Cells transmitted */
uint64_taal5_rcvd; /* Cells received */
uint32_taal5_crc_len; /* Cells with CRC/length errors */
uint32_taal5_drops;/* Cell drops */
uint64_taal5_pdu_xmit; /* CS PDUs transmitted */
uint64_taal5_pdu_rcvd; /* CS PDUs received */
uint32_taal5_pdu_crc; /* CS PDUs with CRC errors */
uint32_taal5_pdu_errs; /* CS layer protocol errors */
uint32_taal5_pdu_drops; /* CS PDUs dropped */


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


Created by Blin Media, 2008-2013