summaryrefslogtreecommitdiffstats
path: root/contrib/ngatm/snmp_atm/snmp_atm.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ngatm/snmp_atm/snmp_atm.h')
-rw-r--r--contrib/ngatm/snmp_atm/snmp_atm.h102
1 files changed, 102 insertions, 0 deletions
diff --git a/contrib/ngatm/snmp_atm/snmp_atm.h b/contrib/ngatm/snmp_atm/snmp_atm.h
new file mode 100644
index 0000000..50784cc
--- /dev/null
+++ b/contrib/ngatm/snmp_atm/snmp_atm.h
@@ -0,0 +1,102 @@
+/*
+ * 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.h,v 1.2 2004/08/06 17:30:40 brandt Exp $
+ */
+#ifndef _BSNMP_SNMP_ATM_H
+#define _BSNMP_SNMP_ATM_H
+
+enum atmif_notify {
+ ATMIF_NOTIFY_DESTROY, /* interface has been destroyed */
+ ATMIF_NOTIFY_CARRIER, /* carriere change */
+ ATMIF_NOTIFY_VCC /* VCC change */
+};
+
+enum atmif_carrier_state {
+ ATMIF_CARRIER_ON = 1,
+ ATMIF_CARRIER_OFF = 2,
+ ATMIF_CARRIER_UNKNOWN = 3,
+ ATMIF_CARRIER_NONE = 4
+};
+
+enum atmif_suni_mode {
+ ATMIF_SUNI_MODE_SONET = 1,
+ ATMIF_SUNI_MODE_SDH = 2,
+ ATMIF_SUNI_MODE_UNKNOWN = 3
+};
+
+/* forward declaration */
+struct atmif;
+typedef void (*atmif_event_f)(struct atmif *, enum atmif_notify, uintptr_t,
+ void *);
+
+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 */
+};
+
+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 */
+};
+
+/* find an ATM interface by name */
+struct atmif *atm_find_if_name(const char *);
+
+/* get the interface from the interface index */
+struct atmif *atm_find_if(u_int);
+
+/* register for notifications */
+void *atm_notify_aif(struct atmif *, const struct lmodule *mod,
+ atmif_event_f, void *);
+void atm_unnotify_aif(void *);
+
+/* return the If for a system-specific node number */
+struct atmif *atm_node2if(u_int);
+
+/* return the node id for the if */
+u_int atm_if2node(struct atmif *);
+
+#endif
OpenPOWER on IntegriCloud