*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->FreeBSD man pages -> ifmib (4)              



NAME    [Toc]    [Back]

     ifmib -- Management Information Base for network interfaces

SYNOPSIS    [Toc]    [Back]

     #include <sys/types.h>
     #include <sys/socket.h>
     #include <sys/sysctl.h>
     #include <sys/time.h>
     #include <net/if.h>
     #include <net/if_mib.h>

DESCRIPTION    [Toc]    [Back]

     The ifmib facility is an application of the sysctl(3) interface to provide
 management information about network interfaces to client applications
 such as netstat(1), slstat(8), and SNMP management agents.  This
     information is structured as a table, where each row in the table represents
 a logical network interface (either a hardware device or a software
     pseudo-device like lo(4)).  There are two columns in the table, each containing
 a single structure: one column contains generic information relevant
 to all interfaces, and the other contains information specific to
     the particular class of interface.  (Generally the latter will implement
     the SNMP MIB defined for that particular interface class, if one exists
     and can be implemented in the kernel.)

     The ifmib facility is accessed via the ``net.link.generic'' branch of the
     sysctl(3) MIB.  The manifest constants for each level in the sysctl(3)
     name are defined in <net/if_mib.h>.  The index of the last row in the table
 is given by ``net.link.generic.system.ifcount'' (or, using the manifest
     IFMIB_IFCOUNT).  A management application searching for a particular
     interface should start with row 1 and continue through the table row-byrow
 until the desired interface is found, or the interface count is
     reached.  Note that the table may be sparse, i.e. a given row may not
     exist, indicated by an errno of ENOENT.  Such an error should be ignored,
     and the next row should be checked.

     The generic interface information, common to all interfaces, can be
     accessed via the following procedure:

	   get_ifmib_general(int row, struct ifmibdata *ifmd)
		   int name[6];
		   size_t len;

		   name[0] = CTL_NET;
		   name[1] = PF_LINK;
		   name[2] = NETLINK_GENERIC;
		   name[3] = IFMIB_IFDATA;
		   name[4] = row;
		   name[5] = IFDATA_GENERAL;

		   len = sizeof(*ifmd);

		   return sysctl(name, 6, ifmd, &len, (void *)0, 0);

     The fields in struct ifmibdata are as follows:

     ifmd_name	     (char []) the name of the interface, including the unit

     ifmd_pcount     (int) the number of promiscuous listeners

     ifmd_flags      (int) the interface's flags (defined in <net/if.h>)

     ifmd_snd_len    (int) the current instantaneous length of the send queue

     ifmd_snd_drops  (int) the number of packets dropped at this interface
		     because the send queue was full

     ifmd_data	     (struct if_data) more information from a structure
		     defined in <net/if.h> (see if_data(9))

     Class-specific information can be retrieved by examining the
     IFDATA_LINKSPECIFIC column instead.  Note that the form and length of the
     structure will depend on the class of interface.  For IFT_ETHER,
     IFT_ISO88023, and IFT_STARLAN interfaces, the structure is called
     ``struct ifmib_iso_8802_3'' (defined in <net/if_mib.h>), and implements a
     superset of the RFC 1650 MIB for Ethernet-like networks.  For IFT_SLIP,
     the structure is a ``struct sl_softc'' (<net/if_slvar.h>).

SEE ALSO    [Toc]    [Back]

     sysctl(3), intro(4), ifnet(9)

     F. Kastenholz, Definitions of Managed Objects for the Ethernet-like
     Interface Types Using SMIv2, August 1994, RFC 1650.

BUGS    [Toc]    [Back]

     Many Ethernet-like interfaces do not yet support the Ethernet MIB; the
     interfaces known to support it include ed(4) and de(4).  Regardless, all
     interfaces automatically support the generic MIB.

HISTORY    [Toc]    [Back]

     The ifmib interface first appeared in FreeBSD 2.2.

FreeBSD 5.2.1		       November 15, 1996		 FreeBSD 5.2.1
[ Back ]
 Similar pages
Name OS Title
ypcat Tru64 print values from an Network Information Service (NIS) data base
altq NetBSD kernel interfaces for manipulating output queues on network interfaces
altq OpenBSD kernel interfaces for manipulating output queues on network interfaces
if_data FreeBSD kernel interfaces for manipulating network interfaces
ifqueue FreeBSD kernel interfaces for manipulating network interfaces
ifaddr FreeBSD kernel interfaces for manipulating network interfaces
ifnet FreeBSD kernel interfaces for manipulating network interfaces
sigset Tru64 Compatibility interfaces for signal management
sighold Tru64 Compatibility interfaces for signal management
sigignore Tru64 Compatibility interfaces for signal management
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service