10d63ce2bSvenki /* 20d63ce2bSvenki * CDDL HEADER START 30d63ce2bSvenki * 40d63ce2bSvenki * The contents of this file are subject to the terms of the 50d63ce2bSvenki * Common Development and Distribution License (the "License"). 60d63ce2bSvenki * You may not use this file except in compliance with the License. 70d63ce2bSvenki * 80d63ce2bSvenki * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 90d63ce2bSvenki * or http://www.opensolaris.org/os/licensing. 100d63ce2bSvenki * See the License for the specific language governing permissions 110d63ce2bSvenki * and limitations under the License. 120d63ce2bSvenki * 130d63ce2bSvenki * When distributing Covered Code, include this CDDL HEADER in each 140d63ce2bSvenki * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 150d63ce2bSvenki * If applicable, add the following below this CDDL HEADER, with the 160d63ce2bSvenki * fields enclosed by brackets "[]" replaced with your own identifying 170d63ce2bSvenki * information: Portions Copyright [yyyy] [name of copyright owner] 180d63ce2bSvenki * 190d63ce2bSvenki * CDDL HEADER END 200d63ce2bSvenki */ 210d63ce2bSvenki 220d63ce2bSvenki /* 23*817697f4SKelly Moyer * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 240d63ce2bSvenki * Use is subject to license terms. 250d63ce2bSvenki */ 260d63ce2bSvenki 270d63ce2bSvenki #ifndef _SNMPLIB_H 280d63ce2bSvenki #define _SNMPLIB_H 290d63ce2bSvenki 300d63ce2bSvenki #ifdef __cplusplus 310d63ce2bSvenki extern "C" { 320d63ce2bSvenki #endif 330d63ce2bSvenki 340d63ce2bSvenki #ifdef USE_SOCKETS 350d63ce2bSvenki #include <sys/types.h> 360d63ce2bSvenki #include <sys/socket.h> 370d63ce2bSvenki #include <netinet/in.h> 380d63ce2bSvenki #include <arpa/inet.h> 390d63ce2bSvenki #endif 400d63ce2bSvenki 410d63ce2bSvenki /* 420d63ce2bSvenki * Groups of OIDs are registered with the picl snmp library to provide 430d63ce2bSvenki * the library with a hint as to the set of OIDs to do GETBULK requests 440d63ce2bSvenki */ 450d63ce2bSvenki typedef struct oidgroup { 460d63ce2bSvenki struct oidgroup *next; 470d63ce2bSvenki char *oidstrs; 480d63ce2bSvenki int n_oids; 490d63ce2bSvenki int is_volatile; 500d63ce2bSvenki } oidgroup_t; 510d63ce2bSvenki 520d63ce2bSvenki /* 530d63ce2bSvenki * Private (opaque to clients) handle to manage per-client snmp data 540d63ce2bSvenki */ 550d63ce2bSvenki struct picl_snmphdl { 560d63ce2bSvenki oidgroup_t *group; 570d63ce2bSvenki #ifdef USE_SOCKETS 580d63ce2bSvenki struct sockaddr_in agent_addr; 590d63ce2bSvenki #endif 600d63ce2bSvenki int fd; 610d63ce2bSvenki }; 620d63ce2bSvenki 630d63ce2bSvenki #define MIBCACHE_BLK_SZ 256 640d63ce2bSvenki #define MIBCACHE_BLK_SHIFT 8 65*817697f4SKelly Moyer #define REFRESHQ_BLK_SZ 256 66*817697f4SKelly Moyer #define REFRESHQ_BLK_SHIFT 8 67*817697f4SKelly Moyer 68*817697f4SKelly Moyer #define HRTIME_SCALE 10LL /* internal time in 10s of seconds */ 69*817697f4SKelly Moyer #define MAX_INCACHE_TIME (300 / HRTIME_SCALE) 700d63ce2bSvenki #define MAX_INT_LEN 16 /* #chars to print */ 710d63ce2bSvenki 720d63ce2bSvenki #define DS_SNMP_DRIVER "/devices/pseudo/ds_snmp@0:ds_snmp" 730d63ce2bSvenki 740d63ce2bSvenki #ifdef __cplusplus 750d63ce2bSvenki } 760d63ce2bSvenki #endif 770d63ce2bSvenki 780d63ce2bSvenki #endif /* _SNMPLIB_H */ 79