On 3/11/2020 11:24 AM, Richard Cochran wrote:
> Unfortunately the SNMP code still has issues like not passing the
> valgrind test, and no one is able to finish this up right now.  This
> patch removes the SNMP program so that the upcoming release does not
> contain unfinished work, potentially misleading end users about the
> scope and completeness of the features.
> 
> Signed-off-by: Richard Cochran <[email protected]>

Makes sense. It can always be revived.

Reviewed-by: Jacob Keller <[email protected]>

> ---
>  makefile        |  14 ----
>  snmp4lptp.8     | 119 ------------------------------
>  snmp4lptp.c     | 192 ------------------------------------------------
>  snmp4lptp_mib.h |  30 --------
>  snmpflg.sh      |  42 -----------
>  5 files changed, 397 deletions(-)
>  delete mode 100644 snmp4lptp.8
>  delete mode 100644 snmp4lptp.c
>  delete mode 100644 snmp4lptp_mib.h
>  delete mode 100755 snmpflg.sh
> 
> diff --git a/makefile b/makefile
> index e1dd3fa..a23945a 100644
> --- a/makefile
> +++ b/makefile
> @@ -38,16 +38,9 @@ SRC        = $(OBJECTS:.o=.c)
>  DEPEND       = $(OBJECTS:.o=.d)
>  srcdir       := $(dir $(lastword $(MAKEFILE_LIST)))
>  incdefs := $(shell $(srcdir)/incdefs.sh)
> -snmpflg      := $(shell $(srcdir)/snmpflg.sh)
>  version := $(shell $(srcdir)/version.sh $(srcdir))
>  VPATH        = $(srcdir)
>  
> -ifneq (,$(findstring -DHAVE_NET_SNMP,$(snmpflg)))
> -PRG  += snmp4lptp
> -OBJECTS      += snmp4lptp.o
> -snmplib      := $(shell net-snmp-config --netsnmp-agent-libs)
> -endif
> -
>  prefix       = /usr/local
>  sbindir      = $(prefix)/sbin
>  mandir       = $(prefix)/man
> @@ -71,13 +64,6 @@ hwstamp_ctl: hwstamp_ctl.o version.o
>  
>  phc_ctl: phc_ctl.o phc.o sk.o util.o clockadj.o sysoff.o print.o version.o
>  
> -snmp4lptp: config.o hash.o interface.o msg.o phc.o pmc_common.o print.o sk.o 
> \
> - snmp4lptp.o tlv.o $(TRANSP) util.o
> -     $(CC) $^ $(LDFLAGS) $(LOADLIBES) $(LDLIBS) $(snmplib) -o $@
> -
> -snmp4lptp.o: snmp4lptp.c
> -     $(CC) $(CPPFLAGS) $(CFLAGS) $(snmpflg) -c $<
> -
>  timemaster: phc.o print.o rtnl.o sk.o timemaster.o util.o version.o
>  
>  version.o: .version version.sh $(filter-out version.d,$(DEPEND))
> diff --git a/snmp4lptp.8 b/snmp4lptp.8
> deleted file mode 100644
> index 7dda4d0..0000000
> --- a/snmp4lptp.8
> +++ /dev/null
> @@ -1,119 +0,0 @@
> -.TH SNMP4LPTP 8 "September 2018" "linuxptp"
> -.SH NAME
> -snmp4lptp - SNMP sub agent
> -
> -.SH SYNOPSIS
> -.B snmp4lptp
> -[
> -.BI \-f " config-file"
> -] [
> -.B \-m
> -] [
> -.B \-q
> -] [
> -.I long-options
> -]
> -
> -.SH DESCRIPTION
> -.B snmp4lptp
> -is an implementation of a sub agent for handling SNMP requests on
> -the device running ptp4l. Via the UDS port, the sub agent retrieves
> -management information from ptp4l and translates the information to
> -or from an SNMP-specific form. 
> -
> -.SH OPTIONS
> -.TP
> -.BI \-f " file"
> -Specify the path to the \fBsnmp4lptp\fR configuration file.
> -.TP
> -.B \-h
> -Display a help message.
> -.TP
> -.B \-m
> -Print messages to the standard output.
> -.TP
> -.B \-q
> -Don't send messages to the system logger.
> -
> -.SH LONG OPTIONS
> -
> -Each and every configuration file option (see below in sections
> -.BR PROGRAM\ OPTIONS
> -and
> -.BR PORT\ OPTIONS )
> -may also appear
> -as a "long" style command line argument. For example, the transportSpecific
> -option may be set using either of these two forms:
> -
> -.RS
> -\f(CW\-\-transportSpecific 1   \-\-transportSpecific=1\fP
> -.RE
> -
> -Option values given on the command line override values in the global
> -section of the configuration file (which, in turn, overrides default
> -values).
> -
> -.SH CONFIGURATION FILE
> -
> -The configuration file is divided into sections. Each section starts with a
> -line containing its name enclosed in brackets and it follows with settings.
> -Each setting is placed on a separate line, it contains the name of the
> -option and the value separated by whitespace characters. Empty lines and 
> lines
> -starting with # are ignored.
> -
> -The global section (indicated as
> -.BR [global] )
> -sets the global program options as well as the default port specific options.
> -Other sections are port specific sections and they override the default port
> -options. The name of the section is the name of the configured port (e.g.
> -.BR [eth0]
> -). Currently no port specific options other than default are considered.
> -
> -.SH PROGRAM OPTIONS
> -.TP
> -.B domainNumber
> -The domain attribute of the local clock.
> -The default is 0.
> -.TP
> -.B logging_level
> -The maximum logging level of messages which should be printed.
> -The default is 6 (LOG_INFO).
> -.TP
> -.B message_tag
> -The tag which is added to all messages printed to the standard output or 
> system
> -log.
> -The default is an empty string (which cannot be set in the configuration file
> -as the option requires an argument).
> -.TP
> -.B use_syslog
> -Print messages to the system log if enabled.
> -The default is 1 (enabled).
> -.TP
> -.B verbose
> -Print messages to the standard output if enabled.
> -The default is 0 (disabled).
> -.TP
> -.B uds_address
> -Specifies the address of the server's UNIX domain socket.
> -The default is /var/run/ptp4l.
> -
> -.SH PORT OPTIONS
> -.TP
> -.B transportSpecific
> -The transport specific field. Must be in the range 0 to 255.
> -The default is 0.
> -
> -.SH WARNING
> -
> -Be cautious when the same configuration file is used for both ptp4l
> -and snmp4lptp. Keep in mind that values specified in the configuration
> -file take precedence over their default values. If a certain option which
> -is common to ptp4l and snmp4lptp is specified to a non-default value in
> -the configuration file (e.g. for ptp4l), then this non-default value
> -applies also for snmp4lptp. This might be not what is expected.
> -
> -To avoid securely these unexpected behaviour, different configuration files
> -for ptp4l and snmp4lptp are recommended.
> -
> -.SH SEE ALSO
> -.BR ptp4l (8)
> diff --git a/snmp4lptp.c b/snmp4lptp.c
> deleted file mode 100644
> index e06f212..0000000
> --- a/snmp4lptp.c
> +++ /dev/null
> @@ -1,192 +0,0 @@
> -/**
> - * @file snmp4lptp.c
> - * @brief Implements SNMP sub agent program for linuxptp
> - * @note Copyright (C) 2018 Anders Selhammer <[email protected]>
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License as published by
> - * the Free Software Foundation; either version 2 of the License, or
> - * (at your option) any later version.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License along
> - * with this program; if not, write to the Free Software Foundation, Inc.,
> - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> - */
> -#include <errno.h>
> -#include <poll.h>
> -
> -#include <net-snmp/net-snmp-config.h>
> -#include <net-snmp/net-snmp-includes.h>
> -#include <net-snmp/agent/net-snmp-agent-includes.h>
> -
> -#include "config.h"
> -#include "pmc_common.h"
> -#include "print.h"
> -#include "snmp4lptp_mib.h"
> -#include "util.h"
> -
> -#define SNMP_NFD 1
> -static struct pmc *pmc;
> -
> -struct ptp_message* snmp4lptp_run_pmc(char *cmd)
> -{
> -     struct pollfd pollfd[SNMP_NFD];
> -     int cnt, tmo = 100;
> -
> -     pollfd[0].fd = pmc_get_transport_fd(pmc);
> -     pollfd[0].events = POLLIN | POLLPRI;
> -
> -     if (cmd && pmc_do_command(pmc, cmd)) {
> -             pr_err("bad command: %s", cmd);
> -     }
> -
> -     while (is_running()) {
> -             cnt = poll(pollfd, SNMP_NFD, tmo);
> -             if (cnt < 0) {
> -                     if (EINTR == errno) {
> -                             continue;
> -                     } else {
> -                             pr_emerg("poll failed");
> -                             break;
> -                     }
> -             } else if (!cnt) {
> -                     break;
> -             }
> -
> -             if (pollfd[0].revents & (POLLIN|POLLPRI)) {
> -                     return pmc_recv(pmc);
> -             }
> -     }
> -     return NULL;
> -}
> -
> -static int open_pmc(struct config *cfg)
> -{
> -     char uds_local[MAX_IFNAME_SIZE + 1];
> -     snprintf(uds_local, sizeof(uds_local), "/var/run/snmp4lptp.%d", 
> getpid());
> -
> -     pmc = pmc_create(cfg, TRANS_UDS, uds_local, 0,
> -                      config_get_int(cfg, NULL, "domainNumber"),
> -                      config_get_int(cfg, NULL, "transportSpecific") << 4,
> -                      1);
> -
> -     return pmc ? 0 : -1;
> -}
> -
> -static int open_snmp()
> -{
> -     snmp_enable_calllog();
> -     netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID,
> -                            NETSNMP_DS_AGENT_ROLE, 1);
> -     init_agent("linuxptpAgent");
> -
> -     init_snmp("linuxptpAgent");
> -
> -     return 0;
> -}
> -
> -static void usage(char *progname)
> -{
> -     fprintf(stderr,
> -             "\nusage: %s [options]\n\n"
> -             " -f [file] read configuration from 'file'\n"
> -             " -h        prints this message and exits\n"
> -             " -m        print messages to stdout\n"
> -             " -q        do not print messages to the syslog\n"
> -             "\n",
> -             progname);
> -}
> -
> -int main(int argc, char *argv[])
> -{
> -     char *config = NULL, *progname;
> -     int c, err = 0, index;
> -     struct option *opts;
> -     struct config *cfg;
> -
> -     if (handle_term_signals()) {
> -             return -1;
> -     }
> -
> -     cfg = config_create();
> -     if (!cfg) {
> -             return -1;
> -     }
> -
> -     opts = config_long_options(cfg);
> -     print_set_verbose(1);
> -     print_set_syslog(0);
> -
> -     /* Process the command line arguments. */
> -     progname = strrchr(argv[0], '/');
> -     progname = progname ? 1+progname : argv[0];
> -     while (EOF != (c = getopt_long(argc, argv, "f:hmq", opts, &index))) {
> -             switch (c) {
> -             case 0:
> -                     if (config_parse_option(cfg, opts[index].name, optarg)) 
> {
> -                             config_destroy(cfg);
> -                             return -1;
> -                     }
> -                     break;
> -             case 'f':
> -                     config = optarg;
> -                     break;
> -             case 'h':
> -                     usage(progname);
> -                     err = -1;
> -                     goto out;
> -             case 'm':
> -                     config_set_int(cfg, "verbose", 1);
> -                     break;
> -             case 'q':
> -                     config_set_int(cfg, "use_syslog", 0);
> -                     break;
> -             case '?':
> -             default:
> -                     usage(progname);
> -                     err = -1;
> -                     goto out;
> -             }
> -     }
> -
> -     if (config && (err = config_read(config, cfg))) {
> -             err = -1;
> -             goto out;
> -     }
> -
> -     print_set_progname(progname);
> -     print_set_tag(config_get_string(cfg, NULL, "message_tag"));
> -     print_set_verbose(config_get_int(cfg, NULL, "verbose"));
> -     print_set_syslog(config_get_int(cfg, NULL, "use_syslog"));
> -     print_set_level(config_get_int(cfg, NULL, "logging_level"));
> -
> -
> -     if (open_pmc(cfg)) {
> -             err = -1;
> -             goto pmc_out;
> -     }
> -
> -     if (open_snmp()) {
> -             err = -1;
> -             goto snmp_out;
> -     }
> -
> -     while (is_running()) {
> -             agent_check_and_process(1);
> -     }
> -
> -     snmp_shutdown("linuxptpAgent");
> -
> -snmp_out:
> -     pmc_destroy(pmc);
> -     msg_cleanup();
> -pmc_out:
> -out:
> -     config_destroy(cfg);
> -     return err;
> -}
> diff --git a/snmp4lptp_mib.h b/snmp4lptp_mib.h
> deleted file mode 100644
> index f135006..0000000
> --- a/snmp4lptp_mib.h
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -/**
> - * @file snmp4lptp_mib.h
> - * @brief Common header file for all supported mibs in linuxptp
> - * @note Copyright (C) 2018 Anders Selhammer <[email protected]>
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License as published by
> - * the Free Software Foundation; either version 2 of the License, or
> - * (at your option) any later version.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License along
> - * with this program; if not, write to the Free Software Foundation, Inc.,
> - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> - */
> -#ifndef HAVE_SNMP4LPTP_MIB_H
> -#define HAVE_SNMP4LPTP_MIB_H
> -
> -#include "msg.h"
> -
> -/*
> - * function declarations
> - */
> -struct ptp_message* snmp4lptp_run_pmc(char *cmd);
> -
> -#endif /* HAVE_SNMP4LPTP_MIB_H */
> diff --git a/snmpflg.sh b/snmpflg.sh
> deleted file mode 100755
> index 3c58bcb..0000000
> --- a/snmpflg.sh
> +++ /dev/null
> @@ -1,42 +0,0 @@
> -#!/bin/sh
> -#
> -# Discover the SNMP CFLAGS to use during compilation.
> -#
> -# Copyright (C) 2018 Anders Selhammer <[email protected]>
> -#
> -# This program is free software; you can redistribute it and/or modify
> -# it under the terms of the GNU General Public License as published by
> -# the Free Software Foundation; either version 2 of the License, or
> -# (at your option) any later version.
> -#
> -# This program is distributed in the hope that it will be useful,
> -# but WITHOUT ANY WARRANTY; without even the implied warranty of
> -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> -# GNU General Public License for more details.
> -#
> -# You should have received a copy of the GNU General Public License along
> -# with this program; if not, write to the Free Software Foundation, Inc.,
> -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> -
> -#
> -# Look for libsnmp presence.  When cross compiling, the user will
> -# specify the include path in EXTRA_CFLAGS.
> -#
> -snmp_flags()
> -{
> -     # Get list of directories searched for header files.
> -     dirs=$(echo "" | ${CROSS_COMPILE}cpp ${EXTRA_CFLAGS} -Wp,-v 2>&1 
> >/dev/null | grep ^" /")
> -
> -     # Look for libsnmp presence
> -     for d in $dirs; do
> -             files=$(find $d -type f -name net-snmp-agent-includes.h)
> -             for f in $files; do
> -                     if grep -q NET_SNMP_AGENT_INCLUDES_H $f; then
> -                             printf " -DHAVE_NET_SNMP `net-snmp-config 
> --cflags`"
> -                             break 2
> -                     fi
> -             done
> -     done
> -}
> -
> -echo "$(snmp_flags)"
> 


_______________________________________________
Linuxptp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to