Path: blob/main/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.h
106216 views
/*1* Copyright (c) 2001-20032* Fraunhofer Institute for Open Communication Systems (FhG Fokus).3* All rights reserved.4*5* Author: Harti Brandt <[email protected]>6*7* Redistribution of this software and documentation and use in source and8* binary forms, with or without modification, are permitted provided that9* the following conditions are met:10*11* 1. Redistributions of source code or documentation must retain the above12* copyright notice, this list of conditions and the following disclaimer.13* 2. Redistributions in binary form must reproduce the above copyright14* notice, this list of conditions and the following disclaimer in the15* documentation and/or other materials provided with the distribution.16*17* THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY FRAUNHOFER FOKUS18* AND ITS CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,19* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND20* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL21* FRAUNHOFER FOKUS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,22* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT23* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,24* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF25* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING26* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,27* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.28*29* Netgraph interface for SNMPd. Exported stuff.30*/31#ifndef SNMP_NETGRAPH_H_32#define SNMP_NETGRAPH_H_3334#include <netgraph/ng_message.h>3536extern ng_ID_t snmp_node;37extern u_char *snmp_nodename;3839typedef void ng_cookie_f(const struct ng_mesg *, const char *, ng_ID_t, void *);40typedef void ng_hook_f(const char *, const u_char *, size_t, void *);4142void *ng_register_cookie(const struct lmodule *, u_int32_t cookie,43ng_ID_t, ng_cookie_f *, void *);44void ng_unregister_cookie(void *reg);4546void *ng_register_hook(const struct lmodule *, const char *,47ng_hook_f *, void *);48void ng_unregister_hook(void *reg);4950void ng_unregister_module(const struct lmodule *);5152int ng_output(const char *path, u_int cookie, u_int opcode,53const void *arg, size_t arglen);54int ng_output_node(const char *node, u_int cookie, u_int opcode,55const void *arg, size_t arglen);56int ng_output_id(ng_ID_t node, u_int cookie, u_int opcode,57const void *arg, size_t arglen);5859struct ng_mesg *ng_dialog(const char *path, u_int cookie, u_int opcode,60const void *arg, size_t arglen);61struct ng_mesg *ng_dialog_node(const char *node, u_int cookie, u_int opcode,62const void *arg, size_t arglen);63struct ng_mesg *ng_dialog_id(ng_ID_t id, u_int cookie, u_int opcode,64const void *arg, size_t arglen);6566int ng_send_data(const char *hook, const void *sndbuf, size_t sndlen);6768ng_ID_t ng_mkpeer_id(ng_ID_t, const char *name, const char *type,69const char *hook, const char *peerhook);70int ng_connect_node(const char *node, const char *ourhook, const char *peerhook);71int ng_connect_id(ng_ID_t id, const char *ourhook, const char *peerhook);72int ng_connect2_id(ng_ID_t id, ng_ID_t peer, const char *ourhook,73const char *peerhook);74int ng_connect2_tee_id(ng_ID_t id, ng_ID_t peer, const char *ourhook,75const char *peerhook);76int ng_rmhook(const char *ourhook);77int ng_rmhook_id(ng_ID_t, const char *);78int ng_rmhook_tee_id(ng_ID_t, const char *);79int ng_shutdown_id(ng_ID_t);8081ng_ID_t ng_next_node_id(ng_ID_t node, const char *type, const char *hook);82ng_ID_t ng_node_id(const char *path);83ng_ID_t ng_node_id_node(const char *node);84ng_ID_t ng_node_name(ng_ID_t, char *);85ng_ID_t ng_node_type(ng_ID_t, char *);86int ng_peer_hook_id(ng_ID_t, const char *, char *);8788#endif899091