diff options
-rw-r--r-- | 3rd_party/collectd-ves-plugin/ves_plugin/ves_plugin.py | 2 | ||||
-rw-r--r-- | docs/release/userguide/feature.userguide.rst | 91 | ||||
-rw-r--r-- | mibs/Intel-Bios.txt | 67 | ||||
-rw-r--r-- | mibs/Intel-Common-MIB.mib.txt | 113 | ||||
-rw-r--r-- | mibs/Intel-Mcelog.txt | 115 | ||||
-rw-r--r-- | mibs/Intel-Rdt.txt | 128 | ||||
-rw-r--r-- | mibs/Intel-SA.txt | 10 | ||||
-rw-r--r-- | src/collectd/collectd_sample_configs/dpdkevents.conf | 35 | ||||
-rw-r--r-- | src/dpdk/Makefile | 3 |
9 files changed, 525 insertions, 39 deletions
diff --git a/3rd_party/collectd-ves-plugin/ves_plugin/ves_plugin.py b/3rd_party/collectd-ves-plugin/ves_plugin/ves_plugin.py index a9715ad7..3e300893 100644 --- a/3rd_party/collectd-ves-plugin/ves_plugin/ves_plugin.py +++ b/3rd_party/collectd-ves-plugin/ves_plugin/ves_plugin.py @@ -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 '', diff --git a/docs/release/userguide/feature.userguide.rst b/docs/release/userguide/feature.userguide.rst index 2f4077bc..f5bb6a72 100644 --- a/docs/release/userguide/feature.userguide.rst +++ b/docs/release/userguide/feature.userguide.rst @@ -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 index 00000000..824cd09f --- /dev/null +++ b/mibs/Intel-Bios.txt @@ -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 index 00000000..92c766ff --- /dev/null +++ b/mibs/Intel-Common-MIB.mib.txt @@ -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 index 00000000..90f4398b --- /dev/null +++ b/mibs/Intel-Mcelog.txt @@ -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 index 00000000..8eb93d0a --- /dev/null +++ b/mibs/Intel-Rdt.txt @@ -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 index 00000000..6e7dd87b --- /dev/null +++ b/mibs/Intel-SA.txt @@ -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 index 00000000..fdb6f3db --- /dev/null +++ b/src/collectd/collectd_sample_configs/dpdkevents.conf @@ -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> diff --git a/src/dpdk/Makefile b/src/dpdk/Makefile index b8524322..a23a6290 100644 --- a/src/dpdk/Makefile +++ b/src/dpdk/Makefile @@ -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" |