home | help
ng_atmpif(4)		     Kernel Interfaces Manual		    ng_atmpif(4)

NAME
     ng_atmpif -- netgraph HARP/ATM Virtual Physical Interface

SYNOPSIS
     #include <netgraph/netgraph.h>
     #include <netgraph/atm/ng_atmpif.h>

DESCIPTION
     The  ng_atmpif  netgraph  node  type  allows  the	emulation of atm(8) (ne-
     tatm/HARP) Physical devices (PIF) to be connected to the  netgraph(4)  net-
     working  subsystem.  Moreover it includes protection of the PDU against du-
     plication 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  ng_atmpif 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 Net-
     graph node. For example, in order to test the HARP stack over UDP,  it  can
     be connected on a ksocket(4) node.

CONTROL MESSAGES
     This node type supports the generic messages plus the following:

     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_NONEdisable debugging
		VATMPIF_DEBUG_PACKETenable debugging

     NGM_ATMPIF_GET_LINK_STATUS    getlinkstatus
	  Returns the last received sequence number, the last sent sequence num-
	  ber 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 */
	  };

     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 re-
	  set 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 detected */
	       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 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 with CRC/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 with CRC errors */
	       uint32_t     aal5_pdu_errs;  /* CS layer protocol errors */
	       uint32_t     aal5_pdu_drops; /* CS PDUs dropped */
	  };

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

AUTHORS
     Harti Brandt <harti@freebsd.org>
     Vincent Jardin <vjardin@wanadoo.fr>

FreeBSD 			 August 7, 2003 		    ng_atmpif(4)

home | help