Date: Wed, 17 Oct 2007 15:22:55 -0400 From: Jeff Royle <lists@qwirky.net> To: Hartmut Brandt <hartmut.brandt@dlr.de> Cc: FreeBSD-Questions <freebsd-questions@freebsd.org> Subject: Re: FreeBSD 6.2 + my gensnmptree issue Message-ID: <4716610F.7090302@qwirky.net> In-Reply-To: <20071017173108.E80702@knop-beagle.kn.op.dlr.de> References: <47161438.3030109@qwirky.net> <20071017173108.E80702@knop-beagle.kn.op.dlr.de>
next in thread | previous in thread | raw e-mail | index | archive | help
Hartmut Brandt wrote: > On Wed, 17 Oct 2007, Jeff Royle wrote: > > JR>I am having an issue which is most likely my lack of understanding and not a > JR>problem with 6.2 itself. > JR> > JR>The system is running 6.2-RELEASE and I use bsnmpd. Here is the uname > JR>output. > JR> > JR>FreeBSD lucky.orisit 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Wed Oct 10 10:40:51 > JR>EDT 2007 > JR> > JR>What I am trying to do is get bsnmp to respond to new MIBs, specifically > JR>UCD-SNMP-MIB. > JR> > JR>After reading the manpages for bsnmp and gensnmptree I believe gensnmptree is > JR>the command I need to use. > JR> > JR>This is where I get into trouble. The gensnmptree command doesn't give me > JR>any results no matter what I do. Even using a bug report example of > JR>gensnmptree -e sysName gives me no results. > JR> > JR>So I proceeded to do some more google searching and noticed gensnmpdef was > JR>referenced several times as the program which may be what I need to use. > JR> > JR>I found the code for this in /usr/src/contrib/bsnmp/gensnmpdef without a > JR>makefile. There is no gensnmpdef in /usr/sbin on the system but it is in > JR>the /usr/ports/net-mgt/bsnmpd/pkg-plist. > JR> > JR>So I guess I need some guidance. Can I use gensnmptree to get this MIB into > JR>the bsnmp system? If so how is this done? -or- Is there a problem with the > JR>6.2 release for gensnmpdef and that is in fact the program I am suppose to be > JR>using? > JR> > JR>Any assistance would be appreciated. > > Well, yes that would be the tool, but things are more complicated. BSNMP > uses a special file format (the .def files) to automatically create some > tables and #defines when you implement a MIB. If you invent your own MIB, > you normally write the .def file from scratch. It basically contains the > same info as the MIB file, but in a less baroque and more machine-parsable > format. If you're going to implement a MIB for which you already have a > MIB file you can shorten the time to write the .def file by feeding the > MIB file into gensnmpdef. It will create you an initial .def file, which, > in most cases, you have to edit, though. > But having the .def file is only the start of implementing. Because then > you must write the action routines that actually implement the MIB > behaviour. You might look under /usr/src/contrib/bsnmp/snmp_mibII. Here > you find an example .def file the contents of which you might find > familiar. The .c files there implement the semantic of the standard MIB-2. > > gensnmpdef is not built automatically, because it requires libsmi which > you need to install from ports. > This explains much about what I was confused with. Thank you for the quick response. It was fairly simple to get the port installed and get /usr/src/contrib/bsnmp/gensnmpdef compiled and installed. From there I went and built my ucd_tree.def file using gensnmpdef which I had to edit as you said. I see after doing this and looking into the examples you suggested this would be a bit more involved then I initially thought. I was able to generate some .c/.h files using gensnmptree but from there the legwork goes beyond me a bit. Looks like I have to look into this deeper. I do have one remaining question. How is the gensnmptree -l command used exactly? Something like cat ucd_tree.c | gensnmptree -l ?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4716610F.7090302>