Merge "ipmi doc: build OpenIPMI lib from sources"
authorMaryam Tahhan <maryam.tahhan@intel.com>
Sun, 26 Mar 2017 16:10:13 +0000 (16:10 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Sun, 26 Mar 2017 16:10:13 +0000 (16:10 +0000)
3rd_party/collectd-ves-plugin/ves_plugin/ves_plugin.py
docs/release/userguide/feature.userguide.rst
mibs/Intel-Bios.txt [new file with mode: 0644]
mibs/Intel-Common-MIB.mib.txt [new file with mode: 0644]
mibs/Intel-Mcelog.txt [new file with mode: 0644]
mibs/Intel-Rdt.txt [new file with mode: 0644]
mibs/Intel-SA.txt [new file with mode: 0644]
src/collectd/collectd_sample_configs/dpdkevents.conf [new file with mode: 0644]
src/dpdk/Makefile

index a9715ad..3e30089 100644 (file)
@@ -277,7 +277,7 @@ class VESPlugin(object):
 
     def event_send(self, event):
         """Send event to VES"""
-        server_url = "http{}://{}:{}/{}eventListener/v1{}".format(
+        server_url = "http{}://{}:{}/{}eventListener/v3{}".format(
             's' if self.__plugin_config['UseHttps'] else '', self.__plugin_config['Domain'],
             int(self.__plugin_config['Port']), '{}/'.format(
             '/{}'.format(self.__plugin_config['Path'])) if (len(self.__plugin_config['Path']) > 0) else '',
index 2f4077b..f5bb6a7 100644 (file)
@@ -38,26 +38,23 @@ Barometer has enabled the following collectd plugins:
   and free hugepages on a platform as well as what is available in terms of
   hugepages per socket.
 
-* *RDT plugin*: A read plugin that provides the last level cache utilitzation and
-  memory bandwidth utilization
-
 * *Open vSwitch events Plugin*: A read plugin that retrieves events from OVS.
 
+* *Open vSwitch stats Plugin*: A read plugin that retrieve flow and interface
+  stats from OVS.
+
 * *mcelog plugin*: A read plugin that uses mcelog client protocol to check for
   memory Machine Check Exceptions and sends the stats for reported exceptions
 
+* *RDT plugin*: A read plugin that provides the last level cache utilization and
+  memory bandwidth utilization
+
 All the plugins above are available on the collectd master, except for the
 ceilometer plugin as it's a python based plugin and only C plugins are accepted
 by the collectd community. The ceilometer plugin lives in the OpenStack
 repositories.
 
-Other plugins under development or existing as a pull request into collectd master:
-
-* *dpdkevents*:  A read plugin that retrieves DPDK link status and DPDK
-  forwarding cores liveliness status (DPDK Keep Alive).
-
-* *Open vSwitch stats Plugin*: A read plugin that retrieve flow and interface
-  stats from OVS.
+Other plugins existing as a pull request into collectd master:
 
 * *SNMP Agent*: A write plugin that will act as a AgentX subagent that receives
   and handles queries from SNMP master agent and returns the data collected
@@ -70,6 +67,7 @@ Other plugins under development or existing as a pull request into collectd mast
   fanspeed, current, flow, power etc. Also, the plugin monitors Intelligent
   Platform Management Interface (IPMI) System Event Log (SEL) and sends the
 
+
 **Plugins included in the Danube release:**
 
 * Hugepages
@@ -82,20 +80,22 @@ collectd capabilities and usage
 .. Describe the specific capabilities and usage for <XYZ> feature.
 .. Provide enough information that a user will be able to operate the feature on a deployed scenario.
 
-**NOTE** Plugins included in the OPNFV D release will be built-in to the fuel
-plugin and available in the /opt/opnfv directory on the fuel master. You don't
-need to clone the barometer/collectd repos to use these, but you can configure
-them as shown in the examples below. Please note, the collectd plugins in OPNFV
-are configured with reasonable defaults, but can be overriden.
+.. note:: Plugins included in the OPNFV D release will be built-in to the fuel
+ plugin and available in the /opt/opnfv directory on the fuel master. You don't
+ need to clone the barometer/collectd repos to use these, but you can configure
+ them as shown in the examples below.
+
+ The collectd plugins in OPNFV are configured with reasonable defaults, but can
+ be overridden.
 
 Building all Barometer upstreamed plugins from scratch
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 The plugins that have been merged to the collectd master branch can all be
 built and configured through the barometer repository.
 
-**NOTE: sudo permissions are required to install collectd.**
-
-**NOTE: These are instructions for Ubuntu 16.04.**
+.. note::
+ * sudo permissions are required to install collectd.
+ * These are instructions for Ubuntu 16.04
 
 To build and install these dependencies, clone the barometer repo:
 
@@ -116,29 +116,37 @@ To install collectd as a service and install all it's dependencies:
     $ cd barometer/src && sudo make && sudo make install
 
 This will install collectd as a service and the base install directory
-is /opt/collectd.
+will be /opt/collectd.
 
 Sample configuration files can be found in '/opt/collectd/etc/collectd.conf.d'
 
-**Note**: Exec plugin requires non-root user to execute scripts. By default,
-`collectd_exec` user is used. Barometer scripts do *not* create this user. It
-needs to be manually added or exec plugin configuration has to be changed to use
-other, existing user before starting collectd service.
+.. note::
+  - If you plan on using the Exec plugin, the plugin requires non-root
+    user to execute scripts. By default, `collectd_exec` user is used. Barometer
+    scripts do *not* create this user. It needs to be manually added or exec plugin
+    configuration has to be changed to use other, existing user before starting
+    collectd service.
 
-Please note if you are using any Open vSwitch plugins you need to run:
+  - If you don't want to use one of the Barometer plugins, simply remove the
+    sample config file from '/opt/collectd/etc/collectd.conf.d'
 
+  - If you are using any Open vSwitch plugins you need to run:
 
 .. code:: bash
 
     $ sudo ovs-vsctl set-manager ptcp:6640
 
+
+Below is the per plugin installation and configuration guide, if you only want
+to install some/particular plugins.
+
 DPDK statistics plugin
 ^^^^^^^^^^^^^^^^^^^^^^
 Repo: https://github.com/collectd/collectd
 
 Branch: master
 
-Dependencies: DPDK (http://dpdk.org/)
+Dependencies: DPDK (http://dpdk.org/) Min_Version: 16.04
 
 To build and install DPDK to /usr please see:
 https://github.com/collectd/collectd/blob/master/docs/BUILD.dpdkstat.md
@@ -178,12 +186,18 @@ include:
 For more information on the plugin parameters, please see:
 https://github.com/collectd/collectd/blob/master/src/collectd.conf.pod
 
-Please also note that if you are not building and installing DPDK system-wide
-you will need to specify the specific paths to the header files and libraries
-using LIBDPDK_CPPFLAGS and LIBDPDK_LDFLAGS. You will also need to add the DPDK
-library symbols to the shared library path using ldconfig. Note that this
-update to the shared library path is not persistant (i.e. it will not survive a
-reboot).
+.. note:: If you are not building and installing DPDK system-wide
+ you will need to specify the specific paths to the header files and libraries
+ using LIBDPDK_CPPFLAGS and LIBDPDK_LDFLAGS. You will also need to add the DPDK
+ library symbols to the shared library path using ldconfig. Note that this
+ update to the shared library path is not persistent (i.e. it will not survive a
+ reboot).
+
+.. note:: Plugin initialization time depends on read interval. It requires
+ 5 read cycles to set up internal buffers and states. During that time
+ no statistics are submitted. Also if plugin is running and the number of DPDK
+ ports is increased, internal buffers are resized. That requires 3 read cycles
+ and no port statistics are submitted in that time.
 
 DPDK events plugin
 ^^^^^^^^^^^^^^^^^^^^^^
@@ -200,7 +214,7 @@ Building and installing collectd:
 
 .. code:: bash
 
-    $ git clone https://github.com/maryamtahhan/collectd.git
+    $ git clone https://github.com/collectd/collectd.git
     $ cd collectd
     $ ./build.sh
     $ ./configure --enable-syslog --enable-logfile --enable-debug
@@ -240,12 +254,13 @@ include:
 
 For more information on the plugin parameters, please see:
 https://github.com/collectd/collectd/blob/master/src/collectd.conf.pod
-Please also note that if you are not building and installing DPDK system-wide
-you will need to specify the specific paths to the header files and libraries
-using LIBDPDK_CPPFLAGS and LIBDPDK_LDFLAGS. You will also need to add the DPDK
-library symbols to the shared library path using ldconfig. Note that this
-update to the shared library path is not persistant (i.e. it will not survive a
-reboot).
+
+.. note:: If you are not building and installing DPDK system-wide
+ you will need to specify the specific paths to the header files and libraries
+ using LIBDPDK_CPPFLAGS and LIBDPDK_LDFLAGS. You will also need to add the DPDK
+ library symbols to the shared library path using ldconfig. Note that this
+ update to the shared library path is not persistent (i.e. it will not survive a
+ reboot).
 
 .. code:: bash
 
diff --git a/mibs/Intel-Bios.txt b/mibs/Intel-Bios.txt
new file mode 100644 (file)
index 0000000..824cd09
--- /dev/null
@@ -0,0 +1,67 @@
+INTEL-BIOS-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE
+        FROM SNMPv2-SMI
+
+    hostAssist
+        FROM Intel-SA-MIB
+
+    DisplayString
+        FROM SNMPv2-TC;
+
+--*****************************************************************************
+--
+-- MODULE IDENTITY AND REVISION GROUP
+--
+--*****************************************************************************
+
+intelBios           MODULE-IDENTITY
+    LAST-UPDATED    "201610241700Z" -- coordinated universal time UTC format is YYMMDDHHmmZ
+    ORGANIZATION    "Intel, Server Management Software"
+    CONTACT-INFO    " "
+    DESCRIPTION     "This SNMP MIB module retrieves System Management BIOS (SMBIOS)
+                    information from DMI table using dmidecode.
+
+                    Version:  1.0   10/24/2016
+
+                    Intel copyright information 2016"
+                    ::= { hostAssist 2 }
+
+-------------------------------------------------------------------------------
+-- BIOS scalars
+-------------------------------------------------------------------------------
+
+biosVendor  OBJECT-TYPE
+    SYNTAX      DisplayString (SIZE (0..128))
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The textual string describes the bios vendor."
+    ::= { intelBios 1 }
+
+biosVersion  OBJECT-TYPE
+    SYNTAX      DisplayString (SIZE (0..128))
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The textual string describes the bios version."
+    ::= { intelBios 2 }
+
+biosReleaseDate  OBJECT-TYPE
+    SYNTAX      DisplayString (SIZE (0..128))
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The textual string describes the bios release date."
+    ::= { intelBios 3 }
+
+biosRevision  OBJECT-TYPE
+    SYNTAX      DisplayString (SIZE (0..128))
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The textual string describes the bios revision."
+    ::= { intelBios 4 }
+
+END
diff --git a/mibs/Intel-Common-MIB.mib.txt b/mibs/Intel-Common-MIB.mib.txt
new file mode 100644 (file)
index 0000000..92c766f
--- /dev/null
@@ -0,0 +1,113 @@
+Intel-Common-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    enterprises FROM RFC1155-SMI;
+
+-- Categories
+
+intel               OBJECT IDENTIFIER ::=   { enterprises 343 }
+
+--
+-- Intel Private space divides into 3 branches at the top. They are
+-- identifiers, products, and experimental.
+--
+-- 'identifers' branch typically contains objects which are used as
+-- constants.  For example, if a mib contained an object identifier
+-- "appliance-type", somewhere down under identifiers would be a list
+-- containing OIDs for "refrigerator", "toaster", etc.  Currently
+-- there are 3 groups under identifiers; systems, objects and
+-- comm-methods.
+-- 'systems' contains objects for system type such as PCs, hubs, etc.
+-- 'objects' contains identifiers for component pieces.
+-- 'comm-methods' refers to the transmission medium used in
+-- proxy-to-agent conversation.
+--
+-- 'products' branch contains objects which are specifically Intel
+-- products.  Under this branch go all MIBs for Intel products.
+--
+-- 'experimental' is for exactly what the name implies.
+--
+-- 'information-technology' encompasses the work of the Information
+-- Technology (IT) group within Intel.
+--
+-- For example, an identifier for a toaster would exist under
+-- 'identifiers.systems.toasters' while another identifier for an
+-- Intel specific toaster MIB would live under 'products.appliances'.
+--
+
+identifiers         OBJECT IDENTIFIER ::=   { intel 1 }
+products            OBJECT IDENTIFIER ::=   { intel 2 }
+experimental        OBJECT IDENTIFIER ::=   { intel 3 }
+information-technology  OBJECT IDENTIFIER ::=   { intel 4 }
+sysProducts         OBJECT IDENTIFIER ::=   { intel 5 }
+mib2ext             OBJECT IDENTIFIER ::=   { intel 6 }
+hw                  OBJECT IDENTIFIER ::=   { intel 7 }
+wekiva              OBJECT IDENTIFIER ::=  { intel 111 }
+-- Groups under 'identifiers'
+
+systems             OBJECT IDENTIFIER ::=   { identifiers 1 }
+objects             OBJECT IDENTIFIER ::=   { identifiers 2 }
+comm-methods        OBJECT IDENTIFIER ::=   { identifiers 3 }
+
+pc-systems          OBJECT IDENTIFIER ::=   { systems 1 }
+proxy-systems       OBJECT IDENTIFIER ::=   { systems 2 }
+hub-systems         OBJECT IDENTIFIER ::=   { systems 3 }
+switch-systems      OBJECT IDENTIFIER ::=   { systems 4 }
+
+local-proxy-1       OBJECT IDENTIFIER ::=   { comm-methods 1 }
+pc-novell-1         OBJECT IDENTIFIER ::=   { comm-methods 2 }
+
+-- Identifiers for 'hub-systems'
+-- Note: These items match the definitions for moduleType
+--       in intelhub.mib.
+
+express10-100Stack  OBJECT IDENTIFIER ::=   { hub-systems 1 }
+express12TX         OBJECT IDENTIFIER ::=   { hub-systems 2 }
+express24TX         OBJECT IDENTIFIER ::=   { hub-systems 3 }
+expressReserved     OBJECT IDENTIFIER ::=   { hub-systems 4 }
+expressBridge       OBJECT IDENTIFIER ::=   { hub-systems 6 }
+express210-12       OBJECT IDENTIFIER ::=   { hub-systems 7 }
+express210-24       OBJECT IDENTIFIER ::=   { hub-systems 8 }
+express220-12       OBJECT IDENTIFIER ::=   { hub-systems 9 }
+express220-24       OBJECT IDENTIFIER ::=   { hub-systems 10 }
+express300Stack     OBJECT IDENTIFIER ::=   { hub-systems 11 }
+express320-16       OBJECT IDENTIFIER ::=   { hub-systems 12 }
+express320-24       OBJECT IDENTIFIER ::=   { hub-systems 13 }
+
+-- Groups under 'products'
+
+pc-products         OBJECT IDENTIFIER ::=   { products 1 }
+hub-products        OBJECT IDENTIFIER ::=   { products 2 }
+proxy               OBJECT IDENTIFIER ::=   { products 3 }
+print-products      OBJECT IDENTIFIER ::=   { products 4 }
+network-products    OBJECT IDENTIFIER ::=   { products 5 }
+snmp-agents         OBJECT IDENTIFIER ::=   { products 6 }
+nic-products        OBJECT IDENTIFIER ::=   { products 7 }
+server-management   OBJECT IDENTIFIER ::=   { products 10 }
+switch-products     OBJECT IDENTIFIER ::=   { products 11 }
+i2o                 OBJECT IDENTIFIER ::=   { products 120 }
+-- Groups under 'hub-products'
+
+express110          OBJECT IDENTIFIER ::=   { hub-products 1 }
+
+-- Groups under 'print-products'
+
+netport-1           OBJECT IDENTIFIER ::=   { print-products 1 }
+netport-2           OBJECT IDENTIFIER ::=   { print-products 2 }
+netport-express     OBJECT IDENTIFIER ::=   { print-products 3 }
+
+-- Groups under 'network-products'
+
+lanDesk             OBJECT IDENTIFIER ::=   { network-products 1 }
+ld-alarms           OBJECT IDENTIFIER ::=   { lanDesk 1 }
+internetServer-2    OBJECT IDENTIFIER ::=   { network-products 2 }
+iS-alarms           OBJECT IDENTIFIER ::=   { internetServer-2 1 }
+
+-- Groups under 'experimental'
+
+-- <none>
+
+--
+
+END
+
diff --git a/mibs/Intel-Mcelog.txt b/mibs/Intel-Mcelog.txt
new file mode 100644 (file)
index 0000000..90f4398
--- /dev/null
@@ -0,0 +1,115 @@
+INTEL-MCELOG-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE, Integer32
+        FROM SNMPv2-SMI
+
+    hostAssist
+        FROM Intel-SA-MIB
+
+    DisplayString
+        FROM SNMPv2-TC;
+
+--*****************************************************************************
+--
+-- MODULE IDENTITY AND REVISION GROUP
+--
+--*****************************************************************************
+
+intelMcelog         MODULE-IDENTITY
+    LAST-UPDATED    "201610241700Z" -- coordinated universal time UTC format is YYMMDDHHmmZ
+    ORGANIZATION    "Intel, Server Management Software"
+    CONTACT-INFO    " "
+    DESCRIPTION     "This SNMP MIB module logs and accounts machine memory, IO, and CPU
+                    hardware errors on modern x86 Linux systems.
+
+                    Version:  1.0   10/24/2016
+
+                    Intel copyright information 2016"
+                    ::= { hostAssist 3 }
+
+OneBasedIndex       ::= Integer32(1..2147483647)
+
+-------------------------------------------------------------------------------
+-- Intel Mcelog Table
+-------------------------------------------------------------------------------
+
+memoryTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF MemoryTableEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+            "This Group defines the Intel RDT Groups Table."
+    ::= { intelMcelog 2 }
+
+memoryTableEntry OBJECT-TYPE
+    SYNTAX      MemoryTableEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION "This Group defines the Mcelog Memory Table Entry."
+    INDEX       { memoryGroupIndex }
+    ::= { memoryTable 1 }
+
+MemoryTableEntry                             ::= SEQUENCE {
+    memoryGroupIndex                         OneBasedIndex,
+    memoryGroupDescr                         DisplayString,
+    memoryCorrectedErrors                    Integer32,
+    memoryCorrectedTimedErrors               Integer32,
+    memoryUncorrectedErrors                  Integer32,
+    memoryUncorrectedTimedErrors             Integer32
+}
+
+memoryGroupIndex OBJECT-TYPE
+    SYNTAX      OneBasedIndex
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "This attribute defines the index of the Mcelog memory group."
+    ::= { memoryTableEntry 1 }
+
+memoryGroupDescr OBJECT-TYPE
+    SYNTAX      DisplayString (SIZE (0..255))
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "A textual string containing information about the socket and
+            DMI name (*TODO*)."
+   ::= { memoryTableEntry 2 }
+
+memoryCorrectedErrors OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "This counter defines the total number of corrected errors."
+    ::= { memoryTableEntry 3 }
+
+memoryCorrectedTimedErrors OBJECT-TYPE
+    SYNTAX      Integer32
+    UNITS       "in 24h"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "This counter defines the number of corrected errors in
+            last 24 hours."
+    ::= { memoryTableEntry 4 }
+
+memoryUncorrectedErrors OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "This counter defines the total number of uncorrected errors."
+    ::= { memoryTableEntry 5 }
+
+memoryUncorrectedTimedErrors OBJECT-TYPE
+    SYNTAX      Integer32
+    UNITS       "in 24h"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "This counter defines the number of uncorrected errors in
+            last 24 hours."
+    ::= { memoryTableEntry 6 }
+
+END
diff --git a/mibs/Intel-Rdt.txt b/mibs/Intel-Rdt.txt
new file mode 100644 (file)
index 0000000..8eb93d0
--- /dev/null
@@ -0,0 +1,128 @@
+INTEL-RDT-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE, Integer32, Counter64
+        FROM SNMPv2-SMI
+
+    hostAssist
+        FROM Intel-SA-MIB
+
+    DisplayString
+        FROM SNMPv2-TC;
+
+--*****************************************************************************
+--
+-- MODULE IDENTITY AND REVISION GROUP
+--
+--*****************************************************************************
+
+intelRdt            MODULE-IDENTITY
+    LAST-UPDATED    "201610241700Z" -- coordinated universal time UTC format is YYMMDDHHmmZ
+    ORGANIZATION    "Intel, Server Management Software"
+    CONTACT-INFO    " "
+    DESCRIPTION     "This SNMP MIB module supports the Intel RDT SNMP subagent for monitoring
+                    information provided by monitoring features of Intel Resource Director
+                    Technology (Intel(R) RDT) like Cache Monitoring Technology (CMT),
+                    Memory Bandwidth Monitoring (MBM). These features provide information about
+                    utilization of shared resources like last level cache occupancy, local
+                    memory bandwidth usage, remote memory bandwidth usage, instructions per clock.
+
+                    Version:  1.0   10/24/2016
+
+                    Intel copyright information 2016"
+                    ::= { hostAssist 1 }
+
+OneBasedIndex       ::= Integer32(1..2147483647)
+
+-------------------------------------------------------------------------------
+-- Intel RDT Table
+-------------------------------------------------------------------------------
+
+rdtGroupNumber  OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "The number of network interfaces (regardless of their
+            current state) present on this system."
+    ::= { intelRdt 1 }
+
+rdtTable                                    OBJECT-TYPE
+    SYNTAX      SEQUENCE OF RdtTableEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+            "This Group defines the Intel RDT Groups Table."
+    ::= { intelRdt 2 }
+
+rdtTableEntry                               OBJECT-TYPE
+    SYNTAX      RdtTableEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION "This Group defines the Intel RDT Groups Table Entry."
+    INDEX       { rdtGroupIndex }
+    ::= { rdtTable 1 }
+
+RdtTableEntry                                      ::= SEQUENCE {
+    rdtGroupIndex                                  OneBasedIndex,
+    rdtGroupDescr                                  DisplayString,
+    rdtLlc                                         Counter64,
+    rdtIpc                                         Counter64,
+    rdtMbmRemote                                   Counter64,
+    rdtMbmLocal                                    Counter64
+}
+
+rdtGroupIndex OBJECT-TYPE
+    SYNTAX      OneBasedIndex
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "This attribute defines the index of the Intel RDT group."
+    ::= { rdtTableEntry 1 }
+
+rdtGroupDescr OBJECT-TYPE
+    SYNTAX      DisplayString (SIZE (0..255))
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "A textual string containing information about the groups of cores
+             on which to monitor supported events."
+    ::= { rdtTableEntry 2 }
+
+rdtLlc OBJECT-TYPE
+    SYNTAX      Counter64
+    UNITS       "bytes"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "This counter defines the last level cache occupancy."
+    ::= { rdtTableEntry 3 }
+
+rdtIpc OBJECT-TYPE
+    SYNTAX      DisplayString
+    UNITS       "ipc"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "This counter defines the instructions per clock."
+    ::= { rdtTableEntry 4 }
+
+rdtMbmRemote OBJECT-TYPE
+    SYNTAX      Counter64
+    UNITS       "bytes/sec"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "This counter defines the Remote (Socket) memory bandwidth usage."
+    ::= { rdtTableEntry 5 }
+
+rdtMbmLocal OBJECT-TYPE
+    SYNTAX      Counter64
+    UNITS       "bytes/sec"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+            "This counter defines the Local (Socket) memory bandwidth usage."
+    ::= { rdtTableEntry 6 }
+
+END
diff --git a/mibs/Intel-SA.txt b/mibs/Intel-SA.txt
new file mode 100644 (file)
index 0000000..6e7dd87
--- /dev/null
@@ -0,0 +1,10 @@
+Intel-SA-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    server-management FROM Intel-Common-MIB;
+
+software            OBJECT IDENTIFIER ::= { server-management 3 }
+baseboardGroup      OBJECT IDENTIFIER ::= { software 5 }
+hostAssist          OBJECT IDENTIFIER ::= { baseboardGroup 1 }
+
+END
diff --git a/src/collectd/collectd_sample_configs/dpdkevents.conf b/src/collectd/collectd_sample_configs/dpdkevents.conf
new file mode 100644 (file)
index 0000000..fdb6f3d
--- /dev/null
@@ -0,0 +1,35 @@
+# Copyright 2017 OPNFV
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+<LoadPlugin dpdkevents>
+  Interval 1
+</LoadPlugin>
+
+<Plugin "dpdkevents">
+  <EAL>
+#    Coremask "0x1"
+#    MemoryChannels "4"
+#    FilePrefix "rte"
+  </EAL>
+  <Event "link_status">
+    SendEventsOnUpdate false
+    EnabledPortMask 0xffff
+    SendNotification true
+  </Event>
+  <Event "keep_alive">
+    SendEventsOnUpdate false
+    LCoreMask "0xf"
+    KeepAliveShmName "/dpdk_keepalive_shm_name"
+    SendNotification true
+  </Event>
+</Plugin>
index b852432..a23a629 100644 (file)
@@ -44,6 +44,7 @@ INSTALL_TARGET = force_make
 force_make: $(TAG_DONE_FLAG)
        $(AT)cd $(WORK_DIR) && git pull $(DPDK_URL) $(DPDK_TAG)
        $(AT)sed -i -e 's/CONFIG_RTE_BUILD_SHARED_LIB=./CONFIG_RTE_BUILD_SHARED_LIB=y/g' $(CONFIG_FILE_LINUXAPP)
+       $(AT)sed -i -e 's/CONFIG_RTE_EAL_PMD_PATH=.*/CONFIG_RTE_EAL_PMD_PATH=\"\/usr\/lib\/dpdk-pmd\/\"/g' $(CONFIG_FILE_LINUXAPP)
        $(AT)sed -i -e 's/CONFIG_RTE_LIBRTE_KNI=./CONFIG_RTE_LIBRTE_KNI=n/g' $(CONFIG_FILE_LINUXAPP)
        $(AT)cd $(WORK_DIR); make config T=$(DPDK_TARGET) -j; make -j
        $(AT)cd `dirname $(CONFIG_FILE_LINUXAPP)` && git checkout `basename $(CONFIG_FILE_LINUXAPP)` && cd -
@@ -51,6 +52,8 @@ force_make: $(TAG_DONE_FLAG)
 
 install: $(INSTALL_TARGET)
        $(AT)cd $(WORK_DIR); sudo make -j install prefix=/usr; cd -
+       $(AT)sudo mkdir -p /usr/lib/dpdk-pmd
+       $(AT)find /usr/lib -type f -name 'librte_pmd*' | while read path; do sudo ln -fs $$path /usr/lib/dpdk-pmd/$$(echo $$path | grep -o 'librte_.*so'); done
        $(AT)sudo cp -a $(WORK_DIR)/build/kmod $(INSTALL_DIR)/lib/modules/$(KERNEL_VERSION)
        @echo "install done"