components/net-snmp-57/patches/038.16032482.kernel_sunos5.patch
author Gowtham Thommandra <Gowtham.Thommandra@Oracle.COM>
Fri, 11 Dec 2015 03:49:26 -0800
changeset 5867 445e2cf1c845
parent 1748 components/net-snmp/patches/038.16032482.kernel_sunos5.patch@5b1802fcf350
permissions -rw-r--r--
PSARC/2014/169 Net-snmp upgrade to version 5.7.2.1 15685782 SUNBT7005330 NET-SNMP upgrade to 5.7.2.1 15705167 SUNBT7030994 find memory leaks for snmp-notify after doing libfmnotif
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5867
445e2cf1c845 PSARC/2014/169 Net-snmp upgrade to version 5.7.2.1
Gowtham Thommandra <Gowtham.Thommandra@Oracle.COM>
parents: 1748
diff changeset
     1
# Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
445e2cf1c845 PSARC/2014/169 Net-snmp upgrade to version 5.7.2.1
Gowtham Thommandra <Gowtham.Thommandra@Oracle.COM>
parents: 1748
diff changeset
     2
# Due to networking changes in Solaris 11 and above, we need to use dladm/dlpi calls from
445e2cf1c845 PSARC/2014/169 Net-snmp upgrade to version 5.7.2.1
Gowtham Thommandra <Gowtham.Thommandra@Oracle.COM>
parents: 1748
diff changeset
     3
# net-snmp to fetch the interface names to be used in the kstat calls.
445e2cf1c845 PSARC/2014/169 Net-snmp upgrade to version 5.7.2.1
Gowtham Thommandra <Gowtham.Thommandra@Oracle.COM>
parents: 1748
diff changeset
     4
#
445e2cf1c845 PSARC/2014/169 Net-snmp upgrade to version 5.7.2.1
Gowtham Thommandra <Gowtham.Thommandra@Oracle.COM>
parents: 1748
diff changeset
     5
# Developed in-house. Bug submitted upstream
445e2cf1c845 PSARC/2014/169 Net-snmp upgrade to version 5.7.2.1
Gowtham Thommandra <Gowtham.Thommandra@Oracle.COM>
parents: 1748
diff changeset
     6
# https://sourceforge.net/p/net-snmp/bugs/2590/
445e2cf1c845 PSARC/2014/169 Net-snmp upgrade to version 5.7.2.1
Gowtham Thommandra <Gowtham.Thommandra@Oracle.COM>
parents: 1748
diff changeset
     7
#
445e2cf1c845 PSARC/2014/169 Net-snmp upgrade to version 5.7.2.1
Gowtham Thommandra <Gowtham.Thommandra@Oracle.COM>
parents: 1748
diff changeset
     8
--- net-snmp-5.7.2.1/snmplib/Makefile.in	Thu Oct 30 02:07:41 2014
445e2cf1c845 PSARC/2014/169 Net-snmp upgrade to version 5.7.2.1
Gowtham Thommandra <Gowtham.Thommandra@Oracle.COM>
parents: 1748
diff changeset
     9
+++ net-snmp-5.7.2.1/snmplib/Makefile.in	Thu Oct 30 02:08:06 2014
445e2cf1c845 PSARC/2014/169 Net-snmp upgrade to version 5.7.2.1
Gowtham Thommandra <Gowtham.Thommandra@Oracle.COM>
parents: 1748
diff changeset
    10
@@ -222,7 +222,7 @@
1748
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    11
 TOBJS=$(LOBJS)
5867
445e2cf1c845 PSARC/2014/169 Net-snmp upgrade to version 5.7.2.1
Gowtham Thommandra <Gowtham.Thommandra@Oracle.COM>
parents: 1748
diff changeset
    12
 
1748
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    13
 # To satisfy -zdefs
5867
445e2cf1c845 PSARC/2014/169 Net-snmp upgrade to version 5.7.2.1
Gowtham Thommandra <Gowtham.Thommandra@Oracle.COM>
parents: 1748
diff changeset
    14
-LIB_LD_ADD =-lnsl -lsocket -L$(libdir)
445e2cf1c845 PSARC/2014/169 Net-snmp upgrade to version 5.7.2.1
Gowtham Thommandra <Gowtham.Thommandra@Oracle.COM>
parents: 1748
diff changeset
    15
+LIB_LD_ADD =-lnsl -lsocket -ldladm -L$(libdir)
445e2cf1c845 PSARC/2014/169 Net-snmp upgrade to version 5.7.2.1
Gowtham Thommandra <Gowtham.Thommandra@Oracle.COM>
parents: 1748
diff changeset
    16
 
445e2cf1c845 PSARC/2014/169 Net-snmp upgrade to version 5.7.2.1
Gowtham Thommandra <Gowtham.Thommandra@Oracle.COM>
parents: 1748
diff changeset
    17
 FEATUREFILE     = $(top_builddir)/include/net-snmp/library/features.h
445e2cf1c845 PSARC/2014/169 Net-snmp upgrade to version 5.7.2.1
Gowtham Thommandra <Gowtham.Thommandra@Oracle.COM>
parents: 1748
diff changeset
    18
 
1748
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    19
--- net-snmp-5.4.1.old/agent/mibgroup/kernel_sunos5.c	2014-02-25 06:04:49.253524010 -0500
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    20
+++ net-snmp-5.4.1/agent/mibgroup/kernel_sunos5.c	2014-02-26 05:32:10.697219080 -0500
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    21
@@ -60,6 +60,8 @@
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    22
 #include <net/if.h>
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    23
 #include <netinet/in.h>
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    24
 
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    25
+#include <libdladm.h>
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    26
+#include <libdllink.h>
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    27
 /*-
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    28
  * Includes of local application header files 
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    29
  */
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    30
@@ -172,7 +174,7 @@
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    31
 set_if_info(mib2_ifEntry_t *ifp, unsigned index, char *name, uint64_t flags,
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    32
             boolean_t flags_unknown, int mtu);
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    33
 static int get_if_stats(mib2_ifEntry_t *ifp);
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    34
-
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    35
+static int link_to_phydev(char *link, char *phy_devname);
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    36
 #if defined(HAVE_IF_NAMEINDEX) && defined(NETSNMP_INCLUDE_IFTABLE_REWRITES)
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    37
 static int _dlpi_open(const char *devname);
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    38
 static int _dlpi_get_phys_address(int fd, char *paddr, int maxlen,
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    39
@@ -1724,11 +1726,155 @@
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    40
 }
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    41
 #endif /*defined(HAVE_IF_NAMEINDEX)&&defined(NETSNMP_INCLUDE_IFTABLE_REWRITES)*/
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    42
 
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    43
+int link_to_phydev(char *link, char *phy_devname)
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    44
+{
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    45
+        char *key = NULL;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    46
+        datalink_id_t linkid;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    47
+        dladm_phys_attr_t dpa;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    48
+        dladm_handle_t handle;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    49
+
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    50
+        if (dladm_open(&handle, NULL) != DLADM_STATUS_OK) {
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    51
+            DEBUGMSGTL(("kernel_sunos5","dladm_open failed "
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    52
+                       "with errno=%d\n",errno));
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    53
+            return (-1);
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    54
+        }
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    55
+
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    56
+        if (dladm_name2info(handle, link, &linkid, NULL, NULL, NULL) !=
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    57
+            DLADM_STATUS_OK) {
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    58
+                DEBUGMSGTL(("kernel_sunos5","dladm_name2info failed "
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    59
+                           "with errno=%d\n",errno));
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    60
+                dladm_close(handle);
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    61
+                return (-1);
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    62
+        }
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    63
+
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    64
+        /*
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    65
+         * Get the device name of the link, which will be used as the door
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    66
+         * file name used to communicate with the driver.
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    67
+         */
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    68
+        if (dladm_phys_info(handle, linkid, &dpa, DLADM_OPT_ACTIVE) !=
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    69
+            DLADM_STATUS_OK) {
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    70
+                DEBUGMSGTL(("kernel_sunos5","dladm_phys_info failed "
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    71
+                           "with errno=%d\n",errno));
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    72
+                dladm_close(handle);
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    73
+                return (-1);
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    74
+        }
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    75
+
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    76
+        if(dpa.dp_dev == NULL) {
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    77
+            DEBUGMSGTL(("kernel_sunos5","device name from "
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    78
+                       "dladm_phys_info = NULL\n")); 
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    79
+            dladm_close(handle);
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    80
+            return -1;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    81
+        
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    82
+        }
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    83
+        strcpy(phy_devname, dpa.dp_dev);
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    84
+        dladm_close(handle); 
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    85
+        
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    86
+        return 0;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    87
+}
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    88
+
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    89
+
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    90
+static int getKstatIntInstance(const char *classname, int instance,
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    91
+                               const char *statname, const char *varname,
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    92
+                               int *value)
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    93
+{
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    94
+    kstat_ctl_t    *ksc;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    95
+    kstat_t        *ks;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    96
+    kid_t           kid;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    97
+    kstat_named_t  *named;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    98
+
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
    99
+    int             ret = -1;        /* fail unless ... */
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   100
+    int             lookup_stat = 0;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   101
+    
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   102
+    DEBUGMSGTL(("kernel_sunos5","\n Inside getKstatIntInstance: variable = %s",
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   103
+               varname));
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   104
+
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   105
+    if (kstat_fd == 0) {
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   106
+        kstat_fd = kstat_open();
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   107
+        if (kstat_fd == 0) {
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   108
+            snmp_log_perror("kstat_open");
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   109
+        }
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   110
+    }
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   111
+    if ((ksc = kstat_fd) == NULL) {
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   112
+        goto Return;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   113
+    }
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   114
+
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   115
+    ks = kstat_lookup(ksc, classname, instance, statname);
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   116
+    if (ks == NULL) {
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   117
+        DEBUGMSGTL(("kernel_sunos5","\nclass %s, stat %s not found\n",
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   118
+                   classname ? classname : "NULL",
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   119
+                   statname ? statname : "NULL"));
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   120
+        goto Return;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   121
+    }
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   122
+
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   123
+    kid = kstat_read(ksc, ks, NULL);
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   124
+    if (kid == -1) {
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   125
+        DEBUGMSGTL(("kernel_sunos5","\ncannot read class %s stats %s\n",
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   126
+                   classname ? classname : "NULL", 
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   127
+                   statname ? statname : "NULL"));
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   128
+        goto Return;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   129
+    }
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   130
+
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   131
+    named = kstat_data_lookup(ks, varname);
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   132
+    if (named == NULL) {
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   133
+         DEBUGMSGTL(("kernel_sunos5","\nno var %s for class %s stat %s\n",
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   134
+                    varname, classname ? classname : "NULL",
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   135
+                    statname ? statname : "NULL"));
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   136
+         goto Return;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   137
+    }
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   138
+    ret = 0;                /* maybe successful */
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   139
+    switch (named->data_type) {
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   140
+#ifdef KSTAT_DATA_INT32         /* Solaris 2.6 and up */
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   141
+    case KSTAT_DATA_INT32:
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   142
+        DEBUGMSGTL(("kernel_sunos5"," value: %d\n", named->value.i32));
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   143
+        *value = named->value.i32; 
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   144
+        break;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   145
+    case KSTAT_DATA_UINT32:
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   146
+        DEBUGMSGTL(("kernel_sunos5"," value: %u\n", named->value.ui32));
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   147
+        *value = named->value.ui32; 
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   148
+        break;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   149
+    case KSTAT_DATA_INT64:
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   150
+        DEBUGMSGTL(("kernel_sunos5"," value: %ld\n", named->value.i64));
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   151
+        *value = named->value.i64;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   152
+        break;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   153
+    case KSTAT_DATA_UINT64:
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   154
+        DEBUGMSGTL(("kernel_sunos5"," value: %llu\n", named->value.ui64));
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   155
+        *value = named->value.ui64; 
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   156
+        break;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   157
+#else
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   158
+    case KSTAT_DATA_LONG:
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   159
+        DEBUGMSGTL(("kernel_sunos5"," value: %ld\n", named->value.l));
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   160
+        *value = named->value.l; 
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   161
+        break;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   162
+    case KSTAT_DATA_ULONG:
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   163
+        DEBUGMSGTL(("kernel_sunos5"," value: %lu\n", named->value.ul));
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   164
+        *value = named->value.ul; 
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   165
+        break;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   166
+    case KSTAT_DATA_LONGLONG:
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   167
+        DEBUGMSGTL(("kernel_sunos5"," value: %lld\n", (long) named->value.ll));
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   168
+        *value = (long)named->value.ll;  
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   169
+        break;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   170
+    case KSTAT_DATA_ULONGLONG:
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   171
+        DEBUGMSGTL(("kernel_sunos5"," value: %llu\n",
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   172
+                   (unsigned long) named->value.ull));
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   173
+        *value = (unsigned long)named->value.ull;  
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   174
+        break;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   175
+#endif
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   176
+    default:
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   177
+        ret = -1;            /* fail */
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   178
+        break;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   179
+    }
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   180
+ Return:
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   181
+    return ret;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   182
+}
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   183
+
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   184
 static void
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   185
 set_if_info(mib2_ifEntry_t *ifp, unsigned index, char *name, uint64_t flags,
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   186
             boolean_t flags_unknown, int mtu)
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   187
 { 
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   188
     boolean_t havespeed = B_FALSE;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   189
+    char phydevname[100];
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   190
+    char devbasename[100];
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   191
+    int instance = -1;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   192
 
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   193
     /*
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   194
      * Set basic information 
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   195
@@ -1770,6 +1916,16 @@
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   196
         /* only UPed interfaces get correct link status - if any */
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   197
         if (getKstatInt(NULL, name,"link_up",&i_tmp) == 0) {
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   198
             ifp->ifOperStatus = i_tmp ? 1 : 2;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   199
+        } else if(link_to_phydev(name, phydevname) == 0) {
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   200
+                 strcpy(devbasename, phydevname);
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   201
+                 DEBUGMSGTL(("kernel_sunos5","phydevname = %s\n", phydevname));
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   202
+                 _dlpi_parse_devname(devbasename, &instance);
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   203
+                 DEBUGMSGTL(("kernel_sunos5","devbasename = %s, "
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   204
+                            "instance= %d\n", devbasename, instance));
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   205
+                 if(getKstatIntInstance(devbasename, instance, "phys",
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   206
+                                        "link_up", &i_tmp) == 0) {
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   207
+                     ifp->ifOperStatus = i_tmp ? 1 : 2;
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   208
+                 } 
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   209
 #ifdef IFF_FAILED
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   210
         } else if (flags & IFF_FAILED) {
5b1802fcf350 16032482 Net-SNMP ifOperStatus on solaris11 VM guest domain is not correct.
Lijo George - Oracle Corporation - Bangalore India <lijo.x.george@oracle.com>
parents:
diff changeset
   211
             /*