summaryrefslogtreecommitdiffstats
path: root/contrib/ngatm/snmp_atm/snmp_atm.3
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ngatm/snmp_atm/snmp_atm.3')
-rw-r--r--contrib/ngatm/snmp_atm/snmp_atm.3217
1 files changed, 217 insertions, 0 deletions
diff --git a/contrib/ngatm/snmp_atm/snmp_atm.3 b/contrib/ngatm/snmp_atm/snmp_atm.3
new file mode 100644
index 0000000..7fe2f46
--- /dev/null
+++ b/contrib/ngatm/snmp_atm/snmp_atm.3
@@ -0,0 +1,217 @@
+.\"
+.\" Copyright (c) 2001-2002
+.\" Fraunhofer Institute for Open Communication Systems (FhG Fokus).
+.\" All rights reserved.
+.\" Copyright (c) 2003-2004
+.\" Hartmut Brandt.
+.\" All rights reserved.
+.\"
+.\" Author: Hartmut Brandt <harti@freebsd.org>
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $Begemot: libunimsg/snmp_atm/snmp_atm.3,v 1.1 2004/07/20 16:30:03 brandt Exp $
+.\"
+.Dd July 20, 2004
+.Dt snmp_atm 3
+.Os
+.Sh NAME
+.Nm atmif_event_f ,
+.Nm atm_find_if_name ,
+.Nm atm_find_if ,
+.Nm atm_notify_aif ,
+.Nm atm_unnotify_aif
+.Nd "ATM driver module for snmpd.
+.Sh LIBRARY
+.Pq begemotSnmpdModulePath."netgraph" = "@MODPATH@snmp_netgraph.so" (FreeBSD)
+.Pq begemotSnmpdModulePath."mibII" = "@MODPATH@snmp_mibII.so"
+.Pq begemotSnmpdModulePath."atm" = "@MODPATH@snmp_atm.so"
+.Sh SYNOPSIS
+.In bsnmp/snmpmod.h
+.In bsnmp/snmp_mibII.h
+.In bsnmp/snmp_atm.h
+.Ft typedef void
+.Fn (*atmif_event_f) "struct atmif *aif" "enum atmif_notify event" "uintptr_t data" "void *uarg"
+.Ft struct atmif *
+.Fn atm_find_if_name "const char *name"
+.Ft struct atmif *
+.Fn atm_find_if "u_int ifindex"
+.Ft void *
+.Fn atm_notify_aif "struct atmif *aif" "const struct lmodule *mod" "atmif_event_f func" "void *uarg"
+.Ft void
+.Fn atm_unnotify_aif "void *not"
+.Sh DESCRIPTION
+The
+.Nm snmp_atm
+module implements a number of tables and scalars that enable remote access to
+the ATM devices in the system. It also exports a number of
+functions, that allow other modules to easily access ATM devices.
+.Pp
+The module maintains an extension to the interface structure exported by
+.Xr snmp_mibII 3
+for all ATM devices. This structure has the following fields:
+.Bd -literal -offset indent
+struct atmif {
+ struct mibif *ifp; /* common interface data */
+ struct atmif_mib *mib; /* ATM MIB */
+ enum atmif_carrier_state carrier;
+ enum atmif_suni_mode mode; /* SUNI mode SDH or SONET */
+};
+.Ed
+.Pp
+The fields have the following meaning:
+.Bl -tag -width XXX
+.It Fa ifp
+The field points to the
+.Xr snmp_mibII 3
+interface structure.
+.It Fa mib
+The special ATM interface MIB (see below).
+.It Fa carrier
+The current state of the carrier. One of the following:
+.Bl -tag -width XXX
+.It Dv ATMIF_CARRIER_ON
+carrier detected,
+.It Dv ATMIF_CARRIER_OFF
+no carrier,
+.It Dv ATMIF_CARRIER_UNKNOWN
+the state of the carrier is unknown,
+.It Dv ATMIF_CARRIER_NONE
+the device has no notion of carrier or is not able to sense it.
+.El
+.It Fa mode
+For ATM devices with a SUNI chip this is the current mode of the interface:
+.Bl -tag -width XXX
+.It Dv ATMIF_SUNI_MODE_SONET
+The interface is in SONET mode.
+.It Dv ATMIF_SUNI_MODE_SDH
+The interface is in SDH mode.
+.It Dv ATMIF_SUNI_MODE_UNKNOWN
+The interface either has no SUNI interface or the mode is unknown (for example,
+interface is down).
+.El
+.El
+.Pp
+An ATM interface can be found by name or by SNMP interface index (see
+.Xr snmp_mibII 3
+for a discussion of interface indexes).
+The function
+.Fn atm_find_if_name
+searches an interface given a name.
+The function
+.Fn atm_find_if
+searches an interface by its interface index.
+Both functions return NULL if an interface cannot be found.
+.Pp
+The ATM MIB contains the following fields:
+.Bd -literal -offset indent
+struct atmif_mib {
+ u_int version; /* currently 0 */
+
+ u_int device; /* type of hardware (system specific) */
+ u_int serial; /* card serial number (device specific) */
+ u_int hw_version; /* card version (device specific) */
+ u_int sw_version; /* firmware version (device specific) */
+ u_int media; /* physical media (see MIB) */
+
+ u_char esi[6]; /* end system identifier (MAC) */
+ u_int pcr; /* supported peak cell rate */
+ u_int vpi_bits; /* number of used bits in VPI field */
+ u_int vci_bits; /* number of used bits in VCI field */
+ u_int max_vpcs; /* maximum number of VPCs */
+ u_int max_vccs; /* maximum number of VCCs */
+};
+.Ed
+.Ss NOTIFICATIONS
+An other module can register with
+.Nm
+to receive notifications when certain events happen on the ATM interface.
+The registration is done with
+.Fn atm_notify_aif
+which takes a pointer to the interface, the calling module pointer, a callback
+function and a user argument that is passed to the callback function.
+The callback function is called with the interface pointer, a notification
+code, a notification argument and the user argument. The following
+notifications are defined:
+.Bl -tag -width XXX
+.It Dv ATMIF_NOTIFY_DESTROY
+The interface is destroyed. The notification argument is not used.
+.It Dv ATMIF_NOTIFY_CARRIER
+The carrier state on the interface has changed. The argument is the
+.Em old
+state of the carrier. The new state can be obtained from the interface
+structure.
+.It Dv ATMIF_NOTIFY_VCC
+A permanent VCC has been created or destroyed. The argument is an u_int that
+can be decoded as follows:
+.Bd -literal -offset indent
+vpi = (arg >> 24) & 0xff;
+vci = (arg >> 8) & 0xffff;
+state = arg & 1;
+.Ed
+.Pp
+.Va state
+is 0 if the VCC was destroyed and 1 if it was created.
+.El
+The registration for notification can be undone by passing the return
+value from
+.Fn atm_notify_aif
+to
+.Fn atm_unnotify_aif .
+The registrations is automatically removed if the interface is destroyed.
+.Ss MIB
+The MIB implemented by the module is defined in
+.Pa BEGEMOT-ATM.txt .
+In the generic part there are two tables and one scalar, there is also
+a system specific group:
+.Bl -tag -width XXX
+.It Va begemotAtmIfTable
+This table is an extension of
+.Va ifTable .
+It contains a row for each ATM interface and is index with
+.Va ifIndex .
+All fields are read-only except the
+.Va begemotAtmIfMode
+column.
+.It Va begemotAtmIfTableLastChange
+Contains the tick when a row was created or destroyed in the above table or
+0, if the table did not change since start of the SNMP agent.
+.It Va begemotAtmHWTable
+Is also indexed by
+.Va ifIndex
+and contains hardware specific information. This table is read-only.
+.El
+.Sh FILES
+.Bl -tag -width "XXXXXXXXX"
+.It Pa @DEFPATH@atm_tree.def
+The description of the MIB tree implemented by
+.Nm .
+.It Pa @MIBSPATH@BEGEMOT-ATM.txt
+This is the MIB that is implemented by this module.
+.Sh SEE ALSO
+.Xr bsnmpd 1 ,
+.Xr snmpmod 3 ,
+.Xr snmp_mibII 3 ,
+.Xr snmp_netgraph 3 ,
+.Xr gensnmptree 1
+.Sh AUTHORS
+.An Hartmut Brandt Aq harti@freebsd.org
OpenPOWER on IntegriCloud