Hi Milan,

No worries about the questions.

For my subagent (binary/executable) I doctored an existing 'main' that I
had from when I'd created a subagent with mib2c - its just like your
example below:
 - init_agent
   - etc etc
 - register your handler here
 - loop (agent_check_and_process)
 - etc etc

Cheers
Graeme
 

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
> Sent: 08 August 2007 14:47
> To: Graeme Wilson
> Cc: net-snmp-users@lists.sourceforge.net
> Subject: RE: Newbie question: writing a simple agent
> 
> Hello Graeme,
> 
> I went through your code and it seems it is exactly what I need.
> 
> I am just confused about one thing: how does it plug into snmpd?
> 
> I understand that I need to do in agent main() registration 
> (and un-registration at agent finish)  but what do I actually 
> generate?
> 
> Should I create a binary like in MFD example and loop using
> agent_check_and_process() or snmp_select_info() or should I 
> create some kind of .so that does mere regsitration and finishes?
> 
> In the former case the scenario is
> - init_agent
> - init_snmp
> - init_master_agent();
> - register handler
> - loop
> - un-register handler
> - snmp_shutdown
> 
> or am I missing something?
> 
> Sorry for asking you newbie trivial questions :-)
> 
> Thanks.
> 
> Milan
> 
> 
> 
> 
> 
> On Wed, August 8, 2007 11:11 am, Graeme Wilson wrote:
> >
> 
> > Hi,
> >
> >
> > I have done something similar recently (I provide some sample code 
> > below
> > - but note that ultimately everything is still done within 
> the agent).
> > My Agent simply registers the root OID of the MIB it will 
> handle and 
> > some other function knows all about the data and the specific OIDs 
> > that the Agent handles.
> > I just registered a generic handler for the root oid and 
> then when it 
> > is called, the handler make appropriate calls to handle the 
> request.  
> > I guess in your case you could then request the data (if 
> any) from the 
> > process/thread that holds the Data and OIDS.
> >
> > Hope that helps.
> > Graeme
> > -------------
> > /* In your main/initialise function */
> > netsnmp_mib_handler* handler = netsnmp_create_handler( 
> > "GenericOIDHandler", &genericOidHandler );
> >
> >
> > netsnmp_handler_registration* reg = 
> > netsnmp_handler_registration_create(
> > "GenericHandler",
> > handler, root_oid, OID_LENGTH(root_oid), 0 );
> >
> > netsnmp_register_handler( reg );
> >
> >
> >
> > /* Generic function which will be called for all OIDs below 
> the root 
> > one registered above */ int genericOidHandler( netsnmp_mib_handler 
> > *handler, netsnmp_handler_registration *reginfo, 
> > netsnmp_agent_request_info *reqinfo, netsnmp_request_info 
> *requests ) 
> > { int ret = SNMP_ERR_NOERROR;
> >
> > switch(reqinfo->mode) {
> > case MODE_GET: /* Call some other code to process the 'requests' 
> > argument */ ret = myData->getData( requests ); break; case 
> > MODE_GETNEXT: /* Call some other code to process the 'requests' 
> > argument */ ret =
> > myData->getNextData( requests ); break; default:
> > /* we should never get here in my code */ iRet = SNMP_ERR_GENERR; 
> > break; } return ret; }
> >
> >
> >
> >
> >> -----Original Message-----
> >> From: [EMAIL PROTECTED]
> >> [mailto:[EMAIL PROTECTED] On Behalf Of 
> >> [EMAIL PROTECTED]
> >> Sent: 08 August 2007 06:51
> >> To: Mike Ayers
> >> Cc: net-snmp-users@lists.sourceforge.net
> >> Subject: RE: Newbie question: writing a simple agent
> >>
> >>
> >> Hello Mike,
> >>
> >>
> >> thanks for replying to my question.
> >>
> >> I understand that a standard approach is to register the 
> agent for a 
> >> range of OISs and to let the agent to be OID aware while the other 
> >> process should take care of the underlaying data.
> >>
> >> However, I was asked to write an agent that would NOT be 
> OID-aware. 
> >> All it would know it is responsible for a range of OIDs without 
> >> knowing any details. It would forward complete OIDs to the other 
> >> process that would take care about OID 
> disassembly/translation, data 
> >> manipulation etc.
> >>
> >> I am wondering if this is possible within the Net SNMP API, at all.
> >>
> >>
> >> If so, where should I start?
> >>
> >>
> >> Thanks.
> >>
> >>
> >> Milan
> >>
> >>
> >> On Tue, August 7, 2007 11:44 pm, Mike Ayers wrote:
> >>
> >>>
> >>
> >>>> From: [EMAIL PROTECTED]
> >>>> [mailto:[EMAIL PROTECTED] On 
> Behalf Of 
> >>>> [EMAIL PROTECTED]
> >>>>
> >>>>
> >>>
> >>>
> >>>> The agent itself will not be aware of individual OIDs and their 
> >>>> meaning. This will be done by the other process that also
> >> holds the
> >>>> actual data.
> >>>
> >>> This is a bit of a design problem as stated.  The (sub)agent is 
> >>> responsible for managing its OID range, and therefore it is not 
> >>> possible to have a subagent completely unaware of the OIDs.
> >> This does
> >>
> >>> not, however, mean that the subagent needs to be aware of 
> the data 
> >>> underlying the MIB.
> >>>
> >>> A common paradigm is to have the subagent register for 
> the range of 
> >>> values (table, MIB, whatever) that it will manage, and 
> have the OP 
> >>> (other
> >>> process) manage the data within the range.  The agent does OID 
> >>> assembly/disassembly (i.e. breaking OIDs into range part
> >> and specific
> >>> part), possibly reformat the specific part to make it more 
> >>> understandable to the OP (thus only the subagent need be
> >> MIB aware).
> >>
> >>> The OP returns the values for the requested data, then 
> the subagent 
> >>> formats and assembles the response.
> >>>
> >>>
> >>> HTH,
> >>>
> >>>
> >>>
> >>> Mike
> >>>
> >>>
> >>>
> >>>
> >> 
> ---------------------------------------------------------------------
> >> -
> >>
> >>> ---  This SF.net email is sponsored by: Splunk Inc.
> >>> Still grepping through log files to find problems?  Stop.
> >>> Now Search log events and configuration files using AJAX
> >>>
> >> and a browser.
> >>> Download your FREE copy of Splunk now >>  http://get.splunk.com/ 
> >>> _______________________________________________
> >>> Net-snmp-users mailing list
> >>> Net-snmp-users@lists.sourceforge.net
> >>> Please see the following page to unsubscribe or change
> >>>
> >> other options:
> >>> https://lists.sourceforge.net/lists/listinfo/net-snmp-users
> >>>
> >>>
> >>>
> >>>
> >>
> >>
> >>
> >> --------------------------------------------------------------
> >> -----------
> >> This SF.net email is sponsored by: Splunk Inc.
> >> Still grepping through log files to find problems?  Stop.
> >> Now Search log events and configuration files using AJAX and a 
> >> browser. Download your FREE copy of Splunk now >> 
> >> http://get.splunk.com/ 
> >> _______________________________________________
> >> Net-snmp-users mailing list
> >> Net-snmp-users@lists.sourceforge.net
> >> Please see the following page to unsubscribe or change 
> other options:
> >> https://lists.sourceforge.net/lists/listinfo/net-snmp-users
> >>
> >>
> >>
> >
> >
> > 
> ----------------------------------------------------------------------
> > ---  This SF.net email is sponsored by: Splunk Inc.
> > Still grepping through log files to find problems?  Stop.
> > Now Search log events and configuration files using AJAX 
> and a browser.
> > Download your FREE copy of Splunk now >>  http://get.splunk.com/ 
> > _______________________________________________
> > Net-snmp-users mailing list
> > Net-snmp-users@lists.sourceforge.net
> > Please see the following page to unsubscribe or change 
> other options:
> > https://lists.sourceforge.net/lists/listinfo/net-snmp-users
> >
> >
> >
> 
> 
> 
> 


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Net-snmp-users mailing list
Net-snmp-users@lists.sourceforge.net
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users

Reply via email to