diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index 73999d6d62dbdf8153026435b93d2e7917249f6f..9971e9f88ec1728066865d2e332f0dd4449221d1 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -50,6 +50,7 @@ CONFIGURATION FILE CHANGES (see man appropriate man page for details)
  -- Removed "cpusets" option from TaskPluginParam. Please use task/cgroup.
  -- Removed MsgAggregationParams.
  -- Removed Layouts.
+ -- Remove switch/generic plugin.
 
 COMMAND CHANGES (see man pages for details)
 ===========================================
diff --git a/configure b/configure
index cc4547381eee0019bc9e39e46f49891a0df15069..b17c598eb532a5d7dfe93bd1afa8c5383ad50e34 100755
--- a/configure
+++ b/configure
@@ -25052,7 +25052,7 @@ $as_echo "${x_ac_deprecated=no}" >&6; }
 
 
 
-ac_config_files="$ac_config_files Makefile auxdir/Makefile contribs/Makefile contribs/cray/Makefile contribs/cray/csm/Makefile contribs/cray/slurmsmwd/Makefile contribs/lua/Makefile contribs/mic/Makefile contribs/nss_slurm/Makefile contribs/pam/Makefile contribs/pam_slurm_adopt/Makefile contribs/perlapi/Makefile contribs/perlapi/libslurm/Makefile contribs/perlapi/libslurm/perl/Makefile.PL contribs/perlapi/libslurmdb/Makefile contribs/perlapi/libslurmdb/perl/Makefile.PL contribs/seff/Makefile contribs/torque/Makefile contribs/openlava/Makefile contribs/sgather/Makefile contribs/sgi/Makefile contribs/sjobexit/Makefile contribs/pmi/Makefile contribs/pmi2/Makefile doc/Makefile doc/man/Makefile doc/man/man1/Makefile doc/man/man3/Makefile doc/man/man5/Makefile doc/man/man8/Makefile doc/html/Makefile doc/html/configurator.html doc/html/configurator.easy.html etc/Makefile src/Makefile src/api/Makefile src/bcast/Makefile src/common/Makefile src/database/Makefile src/lua/Makefile src/sacct/Makefile src/sacctmgr/Makefile src/sreport/Makefile src/salloc/Makefile src/sbatch/Makefile src/sbcast/Makefile src/sattach/Makefile src/scancel/Makefile src/scontrol/Makefile src/sdiag/Makefile src/sinfo/Makefile src/slurmctld/Makefile src/slurmd/Makefile src/slurmd/common/Makefile src/slurmd/slurmd/Makefile src/slurmd/slurmstepd/Makefile src/slurmdbd/Makefile src/slurmrestd/Makefile src/slurmrestd/plugins/Makefile src/slurmrestd/plugins/auth/Makefile src/slurmrestd/plugins/auth/jwt/Makefile src/slurmrestd/plugins/auth/local/Makefile src/slurmrestd/plugins/openapi/Makefile src/slurmrestd/plugins/openapi/v0.0.35/Makefile src/slurmrestd/plugins/openapi/v0.0.36/Makefile src/sprio/Makefile src/squeue/Makefile src/srun/Makefile src/srun/libsrun/Makefile src/sshare/Makefile src/sstat/Makefile src/strigger/Makefile src/sview/Makefile src/plugins/Makefile src/plugins/accounting_storage/Makefile src/plugins/accounting_storage/common/Makefile src/plugins/accounting_storage/mysql/Makefile src/plugins/accounting_storage/none/Makefile src/plugins/accounting_storage/slurmdbd/Makefile src/plugins/acct_gather_energy/Makefile src/plugins/acct_gather_energy/cray_aries/Makefile src/plugins/acct_gather_energy/ibmaem/Makefile src/plugins/acct_gather_energy/ipmi/Makefile src/plugins/acct_gather_energy/none/Makefile src/plugins/acct_gather_energy/rapl/Makefile src/plugins/acct_gather_energy/rsmi/Makefile src/plugins/acct_gather_energy/xcc/Makefile src/plugins/acct_gather_interconnect/Makefile src/plugins/acct_gather_interconnect/ofed/Makefile src/plugins/acct_gather_interconnect/none/Makefile src/plugins/acct_gather_filesystem/Makefile src/plugins/acct_gather_filesystem/lustre/Makefile src/plugins/acct_gather_filesystem/none/Makefile src/plugins/acct_gather_profile/Makefile src/plugins/acct_gather_profile/hdf5/Makefile src/plugins/acct_gather_profile/hdf5/sh5util/Makefile src/plugins/acct_gather_profile/influxdb/Makefile src/plugins/acct_gather_profile/none/Makefile src/plugins/auth/Makefile src/plugins/auth/jwt/Makefile src/plugins/auth/munge/Makefile src/plugins/auth/none/Makefile src/plugins/burst_buffer/Makefile src/plugins/burst_buffer/common/Makefile src/plugins/burst_buffer/datawarp/Makefile src/plugins/burst_buffer/generic/Makefile src/plugins/cli_filter/Makefile src/plugins/cli_filter/common/Makefile src/plugins/cli_filter/lua/Makefile src/plugins/cli_filter/none/Makefile src/plugins/cli_filter/syslog/Makefile src/plugins/cli_filter/user_defaults/Makefile src/plugins/core_spec/Makefile src/plugins/core_spec/cray_aries/Makefile src/plugins/core_spec/none/Makefile src/plugins/cred/Makefile src/plugins/cred/munge/Makefile src/plugins/cred/none/Makefile src/plugins/ext_sensors/Makefile src/plugins/ext_sensors/rrd/Makefile src/plugins/ext_sensors/none/Makefile src/plugins/gpu/Makefile src/plugins/gpu/generic/Makefile src/plugins/gpu/nvml/Makefile src/plugins/gpu/rsmi/Makefile src/plugins/gres/Makefile src/plugins/gres/common/Makefile src/plugins/gres/gpu/Makefile src/plugins/gres/nic/Makefile src/plugins/gres/mic/Makefile src/plugins/gres/mps/Makefile src/plugins/jobacct_gather/Makefile src/plugins/jobacct_gather/common/Makefile src/plugins/jobacct_gather/linux/Makefile src/plugins/jobacct_gather/cgroup/Makefile src/plugins/jobacct_gather/none/Makefile src/plugins/jobcomp/Makefile src/plugins/jobcomp/elasticsearch/Makefile src/plugins/jobcomp/filetxt/Makefile src/plugins/jobcomp/lua/Makefile src/plugins/jobcomp/none/Makefile src/plugins/jobcomp/script/Makefile src/plugins/jobcomp/mysql/Makefile src/plugins/job_container/Makefile src/plugins/job_container/cncu/Makefile src/plugins/job_container/none/Makefile src/plugins/job_submit/Makefile src/plugins/job_submit/all_partitions/Makefile src/plugins/job_submit/cray_aries/Makefile src/plugins/job_submit/defaults/Makefile src/plugins/job_submit/logging/Makefile src/plugins/job_submit/lua/Makefile src/plugins/job_submit/partition/Makefile src/plugins/job_submit/pbs/Makefile src/plugins/job_submit/require_timelimit/Makefile src/plugins/job_submit/throttle/Makefile src/plugins/launch/Makefile src/plugins/launch/slurm/Makefile src/plugins/mcs/Makefile src/plugins/mcs/account/Makefile src/plugins/mcs/group/Makefile src/plugins/mcs/none/Makefile src/plugins/mcs/user/Makefile src/plugins/node_features/Makefile src/plugins/node_features/knl_cray/Makefile src/plugins/node_features/knl_generic/Makefile src/plugins/power/Makefile src/plugins/power/common/Makefile src/plugins/power/cray_aries/Makefile src/plugins/power/none/Makefile src/plugins/preempt/Makefile src/plugins/preempt/none/Makefile src/plugins/preempt/partition_prio/Makefile src/plugins/preempt/qos/Makefile src/plugins/priority/Makefile src/plugins/priority/basic/Makefile src/plugins/priority/multifactor/Makefile src/plugins/prep/Makefile src/plugins/prep/script/Makefile src/plugins/proctrack/Makefile src/plugins/proctrack/cray_aries/Makefile src/plugins/proctrack/cgroup/Makefile src/plugins/proctrack/pgid/Makefile src/plugins/proctrack/linuxproc/Makefile src/plugins/route/Makefile src/plugins/route/default/Makefile src/plugins/route/topology/Makefile src/plugins/sched/Makefile src/plugins/sched/backfill/Makefile src/plugins/sched/builtin/Makefile src/plugins/sched/hold/Makefile src/plugins/select/Makefile src/plugins/select/cons_common/Makefile src/plugins/select/cons_res/Makefile src/plugins/select/cons_tres/Makefile src/plugins/select/cray_aries/Makefile src/plugins/select/linear/Makefile src/plugins/select/other/Makefile src/plugins/site_factor/Makefile src/plugins/site_factor/none/Makefile src/plugins/slurmctld/Makefile src/plugins/slurmctld/nonstop/Makefile src/plugins/switch/Makefile src/plugins/switch/cray_aries/Makefile src/plugins/switch/generic/Makefile src/plugins/switch/none/Makefile src/plugins/mpi/Makefile src/plugins/mpi/cray_shasta/Makefile src/plugins/mpi/none/Makefile src/plugins/mpi/pmi2/Makefile src/plugins/mpi/pmix/Makefile src/plugins/task/Makefile src/plugins/task/affinity/Makefile src/plugins/task/cgroup/Makefile src/plugins/task/cray_aries/Makefile src/plugins/task/none/Makefile src/plugins/topology/Makefile src/plugins/topology/3d_torus/Makefile src/plugins/topology/hypercube/Makefile src/plugins/topology/none/Makefile src/plugins/topology/tree/Makefile testsuite/Makefile testsuite/expect/Makefile testsuite/slurm_unit/Makefile testsuite/slurm_unit/api/Makefile testsuite/slurm_unit/api/manual/Makefile testsuite/slurm_unit/common/Makefile testsuite/slurm_unit/common/slurm_protocol_pack/Makefile testsuite/slurm_unit/common/slurmdb_pack/Makefile testsuite/slurm_unit/common/bitstring/Makefile"
+ac_config_files="$ac_config_files Makefile auxdir/Makefile contribs/Makefile contribs/cray/Makefile contribs/cray/csm/Makefile contribs/cray/slurmsmwd/Makefile contribs/lua/Makefile contribs/mic/Makefile contribs/nss_slurm/Makefile contribs/pam/Makefile contribs/pam_slurm_adopt/Makefile contribs/perlapi/Makefile contribs/perlapi/libslurm/Makefile contribs/perlapi/libslurm/perl/Makefile.PL contribs/perlapi/libslurmdb/Makefile contribs/perlapi/libslurmdb/perl/Makefile.PL contribs/seff/Makefile contribs/torque/Makefile contribs/openlava/Makefile contribs/sgather/Makefile contribs/sgi/Makefile contribs/sjobexit/Makefile contribs/pmi/Makefile contribs/pmi2/Makefile doc/Makefile doc/man/Makefile doc/man/man1/Makefile doc/man/man3/Makefile doc/man/man5/Makefile doc/man/man8/Makefile doc/html/Makefile doc/html/configurator.html doc/html/configurator.easy.html etc/Makefile src/Makefile src/api/Makefile src/bcast/Makefile src/common/Makefile src/database/Makefile src/lua/Makefile src/sacct/Makefile src/sacctmgr/Makefile src/sreport/Makefile src/salloc/Makefile src/sbatch/Makefile src/sbcast/Makefile src/sattach/Makefile src/scancel/Makefile src/scontrol/Makefile src/sdiag/Makefile src/sinfo/Makefile src/slurmctld/Makefile src/slurmd/Makefile src/slurmd/common/Makefile src/slurmd/slurmd/Makefile src/slurmd/slurmstepd/Makefile src/slurmdbd/Makefile src/slurmrestd/Makefile src/slurmrestd/plugins/Makefile src/slurmrestd/plugins/auth/Makefile src/slurmrestd/plugins/auth/jwt/Makefile src/slurmrestd/plugins/auth/local/Makefile src/slurmrestd/plugins/openapi/Makefile src/slurmrestd/plugins/openapi/v0.0.35/Makefile src/slurmrestd/plugins/openapi/v0.0.36/Makefile src/sprio/Makefile src/squeue/Makefile src/srun/Makefile src/srun/libsrun/Makefile src/sshare/Makefile src/sstat/Makefile src/strigger/Makefile src/sview/Makefile src/plugins/Makefile src/plugins/accounting_storage/Makefile src/plugins/accounting_storage/common/Makefile src/plugins/accounting_storage/mysql/Makefile src/plugins/accounting_storage/none/Makefile src/plugins/accounting_storage/slurmdbd/Makefile src/plugins/acct_gather_energy/Makefile src/plugins/acct_gather_energy/cray_aries/Makefile src/plugins/acct_gather_energy/ibmaem/Makefile src/plugins/acct_gather_energy/ipmi/Makefile src/plugins/acct_gather_energy/none/Makefile src/plugins/acct_gather_energy/rapl/Makefile src/plugins/acct_gather_energy/rsmi/Makefile src/plugins/acct_gather_energy/xcc/Makefile src/plugins/acct_gather_interconnect/Makefile src/plugins/acct_gather_interconnect/ofed/Makefile src/plugins/acct_gather_interconnect/none/Makefile src/plugins/acct_gather_filesystem/Makefile src/plugins/acct_gather_filesystem/lustre/Makefile src/plugins/acct_gather_filesystem/none/Makefile src/plugins/acct_gather_profile/Makefile src/plugins/acct_gather_profile/hdf5/Makefile src/plugins/acct_gather_profile/hdf5/sh5util/Makefile src/plugins/acct_gather_profile/influxdb/Makefile src/plugins/acct_gather_profile/none/Makefile src/plugins/auth/Makefile src/plugins/auth/jwt/Makefile src/plugins/auth/munge/Makefile src/plugins/auth/none/Makefile src/plugins/burst_buffer/Makefile src/plugins/burst_buffer/common/Makefile src/plugins/burst_buffer/datawarp/Makefile src/plugins/burst_buffer/generic/Makefile src/plugins/cli_filter/Makefile src/plugins/cli_filter/common/Makefile src/plugins/cli_filter/lua/Makefile src/plugins/cli_filter/none/Makefile src/plugins/cli_filter/syslog/Makefile src/plugins/cli_filter/user_defaults/Makefile src/plugins/core_spec/Makefile src/plugins/core_spec/cray_aries/Makefile src/plugins/core_spec/none/Makefile src/plugins/cred/Makefile src/plugins/cred/munge/Makefile src/plugins/cred/none/Makefile src/plugins/ext_sensors/Makefile src/plugins/ext_sensors/rrd/Makefile src/plugins/ext_sensors/none/Makefile src/plugins/gpu/Makefile src/plugins/gpu/generic/Makefile src/plugins/gpu/nvml/Makefile src/plugins/gpu/rsmi/Makefile src/plugins/gres/Makefile src/plugins/gres/common/Makefile src/plugins/gres/gpu/Makefile src/plugins/gres/nic/Makefile src/plugins/gres/mic/Makefile src/plugins/gres/mps/Makefile src/plugins/jobacct_gather/Makefile src/plugins/jobacct_gather/common/Makefile src/plugins/jobacct_gather/linux/Makefile src/plugins/jobacct_gather/cgroup/Makefile src/plugins/jobacct_gather/none/Makefile src/plugins/jobcomp/Makefile src/plugins/jobcomp/elasticsearch/Makefile src/plugins/jobcomp/filetxt/Makefile src/plugins/jobcomp/lua/Makefile src/plugins/jobcomp/none/Makefile src/plugins/jobcomp/script/Makefile src/plugins/jobcomp/mysql/Makefile src/plugins/job_container/Makefile src/plugins/job_container/cncu/Makefile src/plugins/job_container/none/Makefile src/plugins/job_submit/Makefile src/plugins/job_submit/all_partitions/Makefile src/plugins/job_submit/cray_aries/Makefile src/plugins/job_submit/defaults/Makefile src/plugins/job_submit/logging/Makefile src/plugins/job_submit/lua/Makefile src/plugins/job_submit/partition/Makefile src/plugins/job_submit/pbs/Makefile src/plugins/job_submit/require_timelimit/Makefile src/plugins/job_submit/throttle/Makefile src/plugins/launch/Makefile src/plugins/launch/slurm/Makefile src/plugins/mcs/Makefile src/plugins/mcs/account/Makefile src/plugins/mcs/group/Makefile src/plugins/mcs/none/Makefile src/plugins/mcs/user/Makefile src/plugins/node_features/Makefile src/plugins/node_features/knl_cray/Makefile src/plugins/node_features/knl_generic/Makefile src/plugins/power/Makefile src/plugins/power/common/Makefile src/plugins/power/cray_aries/Makefile src/plugins/power/none/Makefile src/plugins/preempt/Makefile src/plugins/preempt/none/Makefile src/plugins/preempt/partition_prio/Makefile src/plugins/preempt/qos/Makefile src/plugins/priority/Makefile src/plugins/priority/basic/Makefile src/plugins/priority/multifactor/Makefile src/plugins/prep/Makefile src/plugins/prep/script/Makefile src/plugins/proctrack/Makefile src/plugins/proctrack/cray_aries/Makefile src/plugins/proctrack/cgroup/Makefile src/plugins/proctrack/pgid/Makefile src/plugins/proctrack/linuxproc/Makefile src/plugins/route/Makefile src/plugins/route/default/Makefile src/plugins/route/topology/Makefile src/plugins/sched/Makefile src/plugins/sched/backfill/Makefile src/plugins/sched/builtin/Makefile src/plugins/sched/hold/Makefile src/plugins/select/Makefile src/plugins/select/cons_common/Makefile src/plugins/select/cons_res/Makefile src/plugins/select/cons_tres/Makefile src/plugins/select/cray_aries/Makefile src/plugins/select/linear/Makefile src/plugins/select/other/Makefile src/plugins/site_factor/Makefile src/plugins/site_factor/none/Makefile src/plugins/slurmctld/Makefile src/plugins/slurmctld/nonstop/Makefile src/plugins/switch/Makefile src/plugins/switch/cray_aries/Makefile src/plugins/switch/none/Makefile src/plugins/mpi/Makefile src/plugins/mpi/cray_shasta/Makefile src/plugins/mpi/none/Makefile src/plugins/mpi/pmi2/Makefile src/plugins/mpi/pmix/Makefile src/plugins/task/Makefile src/plugins/task/affinity/Makefile src/plugins/task/cgroup/Makefile src/plugins/task/cray_aries/Makefile src/plugins/task/none/Makefile src/plugins/topology/Makefile src/plugins/topology/3d_torus/Makefile src/plugins/topology/hypercube/Makefile src/plugins/topology/none/Makefile src/plugins/topology/tree/Makefile testsuite/Makefile testsuite/expect/Makefile testsuite/slurm_unit/Makefile testsuite/slurm_unit/api/Makefile testsuite/slurm_unit/api/manual/Makefile testsuite/slurm_unit/common/Makefile testsuite/slurm_unit/common/slurm_protocol_pack/Makefile testsuite/slurm_unit/common/slurmdb_pack/Makefile testsuite/slurm_unit/common/bitstring/Makefile"
 
 
 cat >confcache <<\_ACEOF
@@ -26523,7 +26523,6 @@ do
     "src/plugins/slurmctld/nonstop/Makefile") CONFIG_FILES="$CONFIG_FILES src/plugins/slurmctld/nonstop/Makefile" ;;
     "src/plugins/switch/Makefile") CONFIG_FILES="$CONFIG_FILES src/plugins/switch/Makefile" ;;
     "src/plugins/switch/cray_aries/Makefile") CONFIG_FILES="$CONFIG_FILES src/plugins/switch/cray_aries/Makefile" ;;
-    "src/plugins/switch/generic/Makefile") CONFIG_FILES="$CONFIG_FILES src/plugins/switch/generic/Makefile" ;;
     "src/plugins/switch/none/Makefile") CONFIG_FILES="$CONFIG_FILES src/plugins/switch/none/Makefile" ;;
     "src/plugins/mpi/Makefile") CONFIG_FILES="$CONFIG_FILES src/plugins/mpi/Makefile" ;;
     "src/plugins/mpi/cray_shasta/Makefile") CONFIG_FILES="$CONFIG_FILES src/plugins/mpi/cray_shasta/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index 163c262a6a4845056c4228b556af5ed58dfd230c..66446baa6dad546e94a8743d36c1af9f8a920f9f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -580,7 +580,6 @@ AC_CONFIG_FILES([Makefile
 		 src/plugins/slurmctld/nonstop/Makefile
 		 src/plugins/switch/Makefile
 		 src/plugins/switch/cray_aries/Makefile
-		 src/plugins/switch/generic/Makefile
 		 src/plugins/switch/none/Makefile
 		 src/plugins/mpi/Makefile
 		 src/plugins/mpi/cray_shasta/Makefile
diff --git a/src/plugins/switch/Makefile.am b/src/plugins/switch/Makefile.am
index c58f51329dfe80680cea6e431d58fc8fe6d954fb..365f5b8d9332437ffbe34fefc54c4c7388e606cb 100644
--- a/src/plugins/switch/Makefile.am
+++ b/src/plugins/switch/Makefile.am
@@ -1,6 +1,6 @@
 # Makefile for switch plugins
 
-SUBDIRS = generic none
+SUBDIRS = none
 
 if WITH_SWITCH_CRAY_ARIES
 SUBDIRS += cray_aries
diff --git a/src/plugins/switch/Makefile.in b/src/plugins/switch/Makefile.in
index 325e5d3d1dce102d6c4ca534d896f11a4104391b..69b728b688d8d1a6f0fb484e531f061c9efa0c8f 100644
--- a/src/plugins/switch/Makefile.in
+++ b/src/plugins/switch/Makefile.in
@@ -199,7 +199,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
-DIST_SUBDIRS = generic none cray_aries
+DIST_SUBDIRS = none cray_aries
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
@@ -455,7 +455,7 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-SUBDIRS = generic none $(am__append_1)
+SUBDIRS = none $(am__append_1)
 all: all-recursive
 
 .SUFFIXES:
diff --git a/src/plugins/switch/generic/Makefile.am b/src/plugins/switch/generic/Makefile.am
deleted file mode 100644
index aa6d5dd4b72c224addf7f93254df31ac6ce71183..0000000000000000000000000000000000000000
--- a/src/plugins/switch/generic/Makefile.am
+++ /dev/null
@@ -1,13 +0,0 @@
-# Makefile for switch/generic plugin
-
-AUTOMAKE_OPTIONS = foreign
-
-PLUGIN_FLAGS = -module -avoid-version --export-dynamic
-
-AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/src/common
-
-pkglib_LTLIBRARIES = switch_generic.la
-
-# Null switch plugin.
-switch_generic_la_SOURCES = switch_generic.c
-switch_generic_la_LDFLAGS = $(PLUGIN_FLAGS)
diff --git a/src/plugins/switch/generic/Makefile.in b/src/plugins/switch/generic/Makefile.in
deleted file mode 100644
index beb7fc748b5f2faad65d63035b23f27e3428f7be..0000000000000000000000000000000000000000
--- a/src/plugins/switch/generic/Makefile.in
+++ /dev/null
@@ -1,807 +0,0 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-# Makefile for switch/generic plugin
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
-  if test -z '$(MAKELEVEL)'; then \
-    false; \
-  elif test -n '$(MAKE_HOST)'; then \
-    true; \
-  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
-    true; \
-  else \
-    false; \
-  fi; \
-}
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = src/plugins/switch/generic
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/auxdir/ax_check_compile_flag.m4 \
-	$(top_srcdir)/auxdir/ax_check_zlib.m4 \
-	$(top_srcdir)/auxdir/ax_gcc_builtin.m4 \
-	$(top_srcdir)/auxdir/ax_lib_hdf5.m4 \
-	$(top_srcdir)/auxdir/ax_pthread.m4 \
-	$(top_srcdir)/auxdir/libtool.m4 \
-	$(top_srcdir)/auxdir/ltoptions.m4 \
-	$(top_srcdir)/auxdir/ltsugar.m4 \
-	$(top_srcdir)/auxdir/ltversion.m4 \
-	$(top_srcdir)/auxdir/lt~obsolete.m4 \
-	$(top_srcdir)/auxdir/slurm.m4 \
-	$(top_srcdir)/auxdir/slurmrestd.m4 \
-	$(top_srcdir)/auxdir/x_ac_affinity.m4 \
-	$(top_srcdir)/auxdir/x_ac_c99.m4 \
-	$(top_srcdir)/auxdir/x_ac_cgroup.m4 \
-	$(top_srcdir)/auxdir/x_ac_cray.m4 \
-	$(top_srcdir)/auxdir/x_ac_curl.m4 \
-	$(top_srcdir)/auxdir/x_ac_databases.m4 \
-	$(top_srcdir)/auxdir/x_ac_debug.m4 \
-	$(top_srcdir)/auxdir/x_ac_deprecated.m4 \
-	$(top_srcdir)/auxdir/x_ac_dlfcn.m4 \
-	$(top_srcdir)/auxdir/x_ac_env.m4 \
-	$(top_srcdir)/auxdir/x_ac_freeipmi.m4 \
-	$(top_srcdir)/auxdir/x_ac_http_parser.m4 \
-	$(top_srcdir)/auxdir/x_ac_hwloc.m4 \
-	$(top_srcdir)/auxdir/x_ac_json.m4 \
-	$(top_srcdir)/auxdir/x_ac_jwt.m4 \
-	$(top_srcdir)/auxdir/x_ac_lua.m4 \
-	$(top_srcdir)/auxdir/x_ac_lz4.m4 \
-	$(top_srcdir)/auxdir/x_ac_man2html.m4 \
-	$(top_srcdir)/auxdir/x_ac_munge.m4 \
-	$(top_srcdir)/auxdir/x_ac_netloc.m4 \
-	$(top_srcdir)/auxdir/x_ac_nvml.m4 \
-	$(top_srcdir)/auxdir/x_ac_ofed.m4 \
-	$(top_srcdir)/auxdir/x_ac_pam.m4 \
-	$(top_srcdir)/auxdir/x_ac_pmix.m4 \
-	$(top_srcdir)/auxdir/x_ac_printf_null.m4 \
-	$(top_srcdir)/auxdir/x_ac_ptrace.m4 \
-	$(top_srcdir)/auxdir/x_ac_readline.m4 \
-	$(top_srcdir)/auxdir/x_ac_rrdtool.m4 \
-	$(top_srcdir)/auxdir/x_ac_rsmi.m4 \
-	$(top_srcdir)/auxdir/x_ac_setproctitle.m4 \
-	$(top_srcdir)/auxdir/x_ac_systemd.m4 \
-	$(top_srcdir)/auxdir/x_ac_ucx.m4 \
-	$(top_srcdir)/auxdir/x_ac_uid_gid_size.m4 \
-	$(top_srcdir)/auxdir/x_ac_x11.m4 \
-	$(top_srcdir)/auxdir/x_ac_yaml.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h $(top_builddir)/slurm/slurm.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__installdirs = "$(DESTDIR)$(pkglibdir)"
-LTLIBRARIES = $(pkglib_LTLIBRARIES)
-switch_generic_la_LIBADD =
-am_switch_generic_la_OBJECTS = switch_generic.lo
-switch_generic_la_OBJECTS = $(am_switch_generic_la_OBJECTS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-switch_generic_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
-	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
-	$(AM_CFLAGS) $(CFLAGS) $(switch_generic_la_LDFLAGS) $(LDFLAGS) \
-	-o $@
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -I$(top_builddir)/slurm
-depcomp = $(SHELL) $(top_srcdir)/auxdir/depcomp
-am__maybe_remake_depfiles = depfiles
-am__depfiles_remade = ./$(DEPDIR)/switch_generic.Plo
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
-	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-	$(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-SOURCES = $(switch_generic_la_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AR_FLAGS = @AR_FLAGS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CHECK_CFLAGS = @CHECK_CFLAGS@
-CHECK_LIBS = @CHECK_LIBS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CRAY_JOB_CPPFLAGS = @CRAY_JOB_CPPFLAGS@
-CRAY_JOB_LDFLAGS = @CRAY_JOB_LDFLAGS@
-CRAY_SELECT_CPPFLAGS = @CRAY_SELECT_CPPFLAGS@
-CRAY_SELECT_LDFLAGS = @CRAY_SELECT_LDFLAGS@
-CRAY_SWITCH_CPPFLAGS = @CRAY_SWITCH_CPPFLAGS@
-CRAY_SWITCH_LDFLAGS = @CRAY_SWITCH_LDFLAGS@
-CRAY_TASK_CPPFLAGS = @CRAY_TASK_CPPFLAGS@
-CRAY_TASK_LDFLAGS = @CRAY_TASK_LDFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATAWARP_CPPFLAGS = @DATAWARP_CPPFLAGS@
-DATAWARP_LDFLAGS = @DATAWARP_LDFLAGS@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DL_LIBS = @DL_LIBS@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-FREEIPMI_CPPFLAGS = @FREEIPMI_CPPFLAGS@
-FREEIPMI_LDFLAGS = @FREEIPMI_LDFLAGS@
-FREEIPMI_LIBS = @FREEIPMI_LIBS@
-GLIB_CFLAGS = @GLIB_CFLAGS@
-GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
-GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
-GLIB_LIBS = @GLIB_LIBS@
-GLIB_MKENUMS = @GLIB_MKENUMS@
-GOBJECT_QUERY = @GOBJECT_QUERY@
-GREP = @GREP@
-GTK_CFLAGS = @GTK_CFLAGS@
-GTK_LIBS = @GTK_LIBS@
-H5CC = @H5CC@
-H5FC = @H5FC@
-HAVEMYSQLCONFIG = @HAVEMYSQLCONFIG@
-HAVE_MAN2HTML = @HAVE_MAN2HTML@
-HDF5_CC = @HDF5_CC@
-HDF5_CFLAGS = @HDF5_CFLAGS@
-HDF5_CPPFLAGS = @HDF5_CPPFLAGS@
-HDF5_FC = @HDF5_FC@
-HDF5_FFLAGS = @HDF5_FFLAGS@
-HDF5_FLIBS = @HDF5_FLIBS@
-HDF5_LDFLAGS = @HDF5_LDFLAGS@
-HDF5_LIBS = @HDF5_LIBS@
-HDF5_TYPE = @HDF5_TYPE@
-HDF5_VERSION = @HDF5_VERSION@
-HTTP_PARSER_CPPFLAGS = @HTTP_PARSER_CPPFLAGS@
-HTTP_PARSER_LDFLAGS = @HTTP_PARSER_LDFLAGS@
-HWLOC_CPPFLAGS = @HWLOC_CPPFLAGS@
-HWLOC_LDFLAGS = @HWLOC_LDFLAGS@
-HWLOC_LIBS = @HWLOC_LIBS@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-JSON_CPPFLAGS = @JSON_CPPFLAGS@
-JSON_LDFLAGS = @JSON_LDFLAGS@
-JWT_CPPFLAGS = @JWT_CPPFLAGS@
-JWT_LDFLAGS = @JWT_LDFLAGS@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBCURL = @LIBCURL@
-LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIB_SLURM = @LIB_SLURM@
-LIB_SLURM_BUILD = @LIB_SLURM_BUILD@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-LZ4_CPPFLAGS = @LZ4_CPPFLAGS@
-LZ4_LDFLAGS = @LZ4_LDFLAGS@
-LZ4_LIBS = @LZ4_LIBS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-MUNGE_CPPFLAGS = @MUNGE_CPPFLAGS@
-MUNGE_DIR = @MUNGE_DIR@
-MUNGE_LDFLAGS = @MUNGE_LDFLAGS@
-MUNGE_LIBS = @MUNGE_LIBS@
-MYSQL_CFLAGS = @MYSQL_CFLAGS@
-MYSQL_LIBS = @MYSQL_LIBS@
-NETLOC_CPPFLAGS = @NETLOC_CPPFLAGS@
-NETLOC_LDFLAGS = @NETLOC_LDFLAGS@
-NETLOC_LIBS = @NETLOC_LIBS@
-NM = @NM@
-NMEDIT = @NMEDIT@
-NUMA_LIBS = @NUMA_LIBS@
-NVML_CPPFLAGS = @NVML_CPPFLAGS@
-NVML_LIBS = @NVML_LIBS@
-OBJCOPY = @OBJCOPY@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OFED_CPPFLAGS = @OFED_CPPFLAGS@
-OFED_LDFLAGS = @OFED_LDFLAGS@
-OFED_LIBS = @OFED_LIBS@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PAM_DIR = @PAM_DIR@
-PAM_LIBS = @PAM_LIBS@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
-PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
-PMIX_V1_CPPFLAGS = @PMIX_V1_CPPFLAGS@
-PMIX_V1_LDFLAGS = @PMIX_V1_LDFLAGS@
-PMIX_V2_CPPFLAGS = @PMIX_V2_CPPFLAGS@
-PMIX_V2_LDFLAGS = @PMIX_V2_LDFLAGS@
-PMIX_V3_CPPFLAGS = @PMIX_V3_CPPFLAGS@
-PMIX_V3_LDFLAGS = @PMIX_V3_LDFLAGS@
-PMIX_V4_CPPFLAGS = @PMIX_V4_CPPFLAGS@
-PMIX_V4_LDFLAGS = @PMIX_V4_LDFLAGS@
-PROJECT = @PROJECT@
-PTHREAD_CC = @PTHREAD_CC@
-PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
-PTHREAD_LIBS = @PTHREAD_LIBS@
-RANLIB = @RANLIB@
-READLINE_LIBS = @READLINE_LIBS@
-RELEASE = @RELEASE@
-RRDTOOL_CPPFLAGS = @RRDTOOL_CPPFLAGS@
-RRDTOOL_LDFLAGS = @RRDTOOL_LDFLAGS@
-RRDTOOL_LIBS = @RRDTOOL_LIBS@
-RSMI_CPPFLAGS = @RSMI_CPPFLAGS@
-RSMI_LDFLAGS = @RSMI_LDFLAGS@
-RSMI_LIBS = @RSMI_LIBS@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SLEEP_CMD = @SLEEP_CMD@
-SLURMCTLD_PORT = @SLURMCTLD_PORT@
-SLURMCTLD_PORT_COUNT = @SLURMCTLD_PORT_COUNT@
-SLURMDBD_PORT = @SLURMDBD_PORT@
-SLURMD_PORT = @SLURMD_PORT@
-SLURMRESTD_PORT = @SLURMRESTD_PORT@
-SLURM_API_AGE = @SLURM_API_AGE@
-SLURM_API_CURRENT = @SLURM_API_CURRENT@
-SLURM_API_MAJOR = @SLURM_API_MAJOR@
-SLURM_API_REVISION = @SLURM_API_REVISION@
-SLURM_API_VERSION = @SLURM_API_VERSION@
-SLURM_MAJOR = @SLURM_MAJOR@
-SLURM_MICRO = @SLURM_MICRO@
-SLURM_MINOR = @SLURM_MINOR@
-SLURM_PREFIX = @SLURM_PREFIX@
-SLURM_VERSION_NUMBER = @SLURM_VERSION_NUMBER@
-SLURM_VERSION_STRING = @SLURM_VERSION_STRING@
-STRIP = @STRIP@
-SUCMD = @SUCMD@
-SYSTEMD_TASKSMAX_OPTION = @SYSTEMD_TASKSMAX_OPTION@
-UCX_CPPFLAGS = @UCX_CPPFLAGS@
-UCX_LDFLAGS = @UCX_LDFLAGS@
-UCX_LIBS = @UCX_LIBS@
-UTIL_LIBS = @UTIL_LIBS@
-VERSION = @VERSION@
-YAML_CPPFLAGS = @YAML_CPPFLAGS@
-YAML_LDFLAGS = @YAML_LDFLAGS@
-ZLIB_CPPFLAGS = @ZLIB_CPPFLAGS@
-ZLIB_LDFLAGS = @ZLIB_LDFLAGS@
-ZLIB_LIBS = @ZLIB_LIBS@
-_libcurl_config = @_libcurl_config@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-ac_have_man2html = @ac_have_man2html@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-ax_pthread_config = @ax_pthread_config@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lua_CFLAGS = @lua_CFLAGS@
-lua_LIBS = @lua_LIBS@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-runstatedir = @runstatedir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-PLUGIN_FLAGS = -module -avoid-version --export-dynamic
-AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/src/common
-pkglib_LTLIBRARIES = switch_generic.la
-
-# Null switch plugin.
-switch_generic_la_SOURCES = switch_generic.c
-switch_generic_la_LDFLAGS = $(PLUGIN_FLAGS)
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/plugins/switch/generic/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign src/plugins/switch/generic/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
-	@$(NORMAL_INSTALL)
-	@list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
-	list2=; for p in $$list; do \
-	  if test -f $$p; then \
-	    list2="$$list2 $$p"; \
-	  else :; fi; \
-	done; \
-	test -z "$$list2" || { \
-	  echo " $(MKDIR_P) '$(DESTDIR)$(pkglibdir)'"; \
-	  $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" || exit 1; \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
-	}
-
-uninstall-pkglibLTLIBRARIES:
-	@$(NORMAL_UNINSTALL)
-	@list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
-	for p in $$list; do \
-	  $(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
-	done
-
-clean-pkglibLTLIBRARIES:
-	-test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
-	@list='$(pkglib_LTLIBRARIES)'; \
-	locs=`for p in $$list; do echo $$p; done | \
-	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
-	      sort -u`; \
-	test -z "$$locs" || { \
-	  echo rm -f $${locs}; \
-	  rm -f $${locs}; \
-	}
-
-switch_generic.la: $(switch_generic_la_OBJECTS) $(switch_generic_la_DEPENDENCIES) $(EXTRA_switch_generic_la_DEPENDENCIES) 
-	$(AM_V_CCLD)$(switch_generic_la_LINK) -rpath $(pkglibdir) $(switch_generic_la_OBJECTS) $(switch_generic_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/switch_generic.Plo@am__quote@ # am--include-marker
-
-$(am__depfiles_remade):
-	@$(MKDIR_P) $(@D)
-	@echo '# dummy' >$@-t && $(am__mv) $@-t $@
-
-am--depfiles: $(am__depfiles_remade)
-
-.c.o:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES)
-installdirs:
-	for dir in "$(DESTDIR)$(pkglibdir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \
-	mostlyclean-am
-
-distclean: distclean-am
-		-rm -f ./$(DEPDIR)/switch_generic.Plo
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-pkglibLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-		-rm -f ./$(DEPDIR)/switch_generic.Plo
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-pkglibLTLIBRARIES
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
-	clean-generic clean-libtool clean-pkglibLTLIBRARIES \
-	cscopelist-am ctags ctags-am distclean distclean-compile \
-	distclean-generic distclean-libtool distclean-tags dvi dvi-am \
-	html html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-pkglibLTLIBRARIES install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
-	uninstall-pkglibLTLIBRARIES
-
-.PRECIOUS: Makefile
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/plugins/switch/generic/switch_generic.c b/src/plugins/switch/generic/switch_generic.c
deleted file mode 100644
index 6e67aac9becd30db15e722243664e087d35ce460..0000000000000000000000000000000000000000
--- a/src/plugins/switch/generic/switch_generic.c
+++ /dev/null
@@ -1,960 +0,0 @@
-/*****************************************************************************\
- *  switch_generic.c - Library for managing a generic switch resources.
- *                     Can be used to optimize network communications for
- *                     parallel jobs.
- *****************************************************************************
- *  Copyright (C) 2013 SchedMD LLC
- *  Written by Morris Jette <jette@schedmd.com>
- *
- *  This file is part of Slurm, a resource management program.
- *  For details, see <https://slurm.schedmd.com/>.
- *  Please also read the included file: DISCLAIMER.
- *
- *  Slurm 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.
- *
- *  In addition, as a special exception, the copyright holders give permission
- *  to link the code of portions of this program with the OpenSSL library under
- *  certain conditions as described in each individual source file, and
- *  distribute linked combinations including the two. You must obey the GNU
- *  General Public License in all respects for all of the code used other than
- *  OpenSSL. If you modify file(s) with this exception, you may extend this
- *  exception to your version of the file(s), but you are not obligated to do
- *  so. If you do not wish to do so, delete this exception statement from your
- *  version.  If you delete this exception statement from all source files in
- *  the program, then also delete it here.
- *
- *  Slurm 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 Slurm; if not, write to the Free Software Foundation, Inc.,
- *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA.
-\*****************************************************************************/
-
-#include <arpa/inet.h>
-#include <ifaddrs.h>
-#include <netdb.h>
-#include <netinet/in.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-/* net/if.h must come after sys/types.h on NetBSD */
-#if !defined(__FreeBSD__)
-#include <net/if.h>
-#endif
-
-#include "slurm/slurm_errno.h"
-#include "src/common/slurm_xlator.h"
-#include "src/common/xmalloc.h"
-
-#define SW_GEN_HASH_MAX		1000
-#define SW_GEN_LIBSTATE_MAGIC	0x3b287d0c
-#define SW_GEN_NODE_INFO_MAGIC	0x3b38ac0c
-#define SW_GEN_STEP_INFO_MAGIC	0x58ae93cb
-
-/* Change GEN_STATE_VERSION value when changing the state save format */
-#define GEN_STATE_VERSION      "NRT001"
-
-typedef struct sw_gen_ifa {
-	char *ifa_name;		/* "eth0", "ib1", etc. */
-	char *ifa_family;	/* "AF_INET" or "AF_INET6" */
-	char *ifa_addr;		/* output from inet_ntop */
-} sw_gen_ifa_t;
-typedef struct sw_gen_node_info {
-	uint32_t magic;
-	uint16_t ifa_cnt;
-	sw_gen_ifa_t **ifa_array;
-	char *node_name;
-	struct sw_gen_node_info *next;	/* used for hash table */
-} sw_gen_node_info_t;
-
-typedef struct sw_gen_node {
-	char *node_name;
-	uint16_t ifa_cnt;
-	sw_gen_ifa_t **ifa_array;
-} sw_gen_node_t;
-typedef struct sw_gen_step_info {
-	uint32_t magic;
-	uint32_t node_cnt;
-	sw_gen_node_t **node_array;
-} sw_gen_step_info_t;
-
-typedef struct sw_gen_libstate {
-	uint32_t magic;
-	uint32_t node_count;
-	uint32_t hash_max;
-	sw_gen_node_info_t **hash_table;
-} sw_gen_libstate_t;
-
-/*
- * These variables are required by the generic plugin interface.  If they
- * are not found in the plugin, the plugin loader will ignore it.
- *
- * plugin_name - a string giving a human-readable description of the
- * plugin.  There is no maximum length, but the symbol must refer to
- * a valid string.
- *
- * plugin_type - a string suggesting the type of the plugin or its
- * applicability to a particular form of data or method of data handling.
- * If the low-level plugin API is used, the contents of this string are
- * unimportant and may be anything.  Slurm uses the higher-level plugin
- * interface which requires this string to be of the form
- *
- *      <application>/<method>
- *
- * where <application> is a description of the intended application of
- * the plugin (e.g., "switch" for Slurm switch) and <method> is a description
- * of how this plugin satisfies that application.  Slurm will only load
- * a switch plugin if the plugin_type string has a prefix of "switch/".
- *
- * plugin_version - an unsigned 32-bit integer containing the Slurm version
- * (major.minor.micro combined into a single number).
- */
-const char plugin_name[]        = "switch generic plugin";
-const char plugin_type[]        = "switch/generic";
-const uint32_t plugin_version   = SLURM_VERSION_NUMBER;
-const uint32_t plugin_id	= SWITCH_PLUGIN_GENERIC;
-
-pthread_mutex_t	global_lock = PTHREAD_MUTEX_INITIALIZER;
-sw_gen_libstate_t *libstate = NULL;
-
-extern int switch_p_free_node_info(switch_node_info_t **switch_node);
-extern int switch_p_alloc_node_info(switch_node_info_t **switch_node);
-
-static void
-_alloc_libstate(void)
-{
-	xassert(!libstate);
-
-	libstate = xmalloc(sizeof(sw_gen_libstate_t));
-	libstate->magic = SW_GEN_LIBSTATE_MAGIC;
-	libstate->node_count = 0;
-	libstate->hash_max = SW_GEN_HASH_MAX;
-	libstate->hash_table = xcalloc(libstate->hash_max,
-				       sizeof(sw_gen_node_info_t *));
-}
-
-static void
-_free_libstate(void)
-{
-	sw_gen_node_info_t *node_ptr, *next_node_ptr;
-	int i;
-
-	if (!libstate)
-		return;
-	xassert(libstate->magic == SW_GEN_LIBSTATE_MAGIC);
-	for (i = 0; i < libstate->hash_max; i++) {
-		node_ptr = libstate->hash_table[i];
-		while (node_ptr) {
-			next_node_ptr = node_ptr->next;
-			(void) switch_p_free_node_info((switch_node_info_t **)
-						       &node_ptr);
-			node_ptr = next_node_ptr;
-		}
-	}
-	libstate->magic = 0;
-	xfree(libstate->hash_table);
-	xfree(libstate);
-}
-
-/* The idea behind keeping the hash table was to avoid a linear
- * search of the node list each time we want to retrieve or
- * modify a node's data.  The _hash_index function translates
- * a node name to an index into the hash table.
- *
- * Used by: slurmctld
- */
-static int
-_hash_index(char *name)
-{
-	int index = 0;
-	int j;
-
-	xassert(name);
-
-	/* Multiply each character by its numerical position in the
-	 * name string to add a bit of entropy, because host names such
-	 * as cluster[0001-1000] can cause excessive index collisions.
-	 */
-	for (j = 1; *name; name++, j++)
-		index += (int)*name * j;
-	index %= libstate->hash_max;
-
-	return index;
-}
-
-/* Tries to find a node fast using the hash table
- *
- * Used by: slurmctld
- */
-static sw_gen_node_info_t *
-_find_node(char *node_name)
-{
-	int i;
-	sw_gen_node_info_t *n;
-	node_record_t *node_ptr;
-
-	if (node_name == NULL) {
-		error("%s: _find_node node name is NULL", plugin_type);
-		return NULL;
-	}
-	if (libstate->node_count == 0)
-		return NULL;
-	xassert(libstate->magic == SW_GEN_LIBSTATE_MAGIC);
-	if (libstate->hash_table) {
-		i = _hash_index(node_name);
-		n = libstate->hash_table[i];
-		while (n) {
-			xassert(n->magic == SW_GEN_NODE_INFO_MAGIC);
-			if (!xstrcmp(n->node_name, node_name))
-				return n;
-			n = n->next;
-		}
-	}
-
-	/* This code is only needed if NodeName and NodeHostName differ */
-	node_ptr = find_node_record(node_name);
-	if (node_ptr && libstate->hash_table) {
-		i = _hash_index(node_ptr->node_hostname);
-		n = libstate->hash_table[i];
-		while (n) {
-			xassert(n->magic == SW_GEN_NODE_INFO_MAGIC);
-			if (!xstrcmp(n->node_name, node_name))
-				return n;
-			n = n->next;
-		}
-	}
-
-	return NULL;
-}
-
-/* Add the hash entry for a newly created node record */
-static void
-_hash_add_nodeinfo(sw_gen_node_info_t *new_node_info)
-{
-	int index;
-
-	xassert(libstate);
-	xassert(libstate->hash_table);
-	xassert(libstate->hash_max >= libstate->node_count);
-	xassert(libstate->magic == SW_GEN_LIBSTATE_MAGIC);
-	if (!new_node_info->node_name || !new_node_info->node_name[0])
-		return;
-	index = _hash_index(new_node_info->node_name);
-	new_node_info->next = libstate->hash_table[index];
-	libstate->hash_table[index] = new_node_info;
-	libstate->node_count++;
-}
-
-/* Add the new node information to our libstate cache, making a copy if
- * information is new. Otherwise, swap the data and return to the user old
- * data, which is fine in this case since it is only deleted by slurmctld */
-static void _cache_node_info(sw_gen_node_info_t *new_node_info)
-{
-	sw_gen_node_info_t *old_node_info;
-	uint16_t ifa_cnt;
-	sw_gen_ifa_t **ifa_array;
-	struct sw_gen_node_info *next;
-	bool new_alloc;      /* True if this is new node to be added to cache */
-
-	slurm_mutex_lock(&global_lock);
-	old_node_info = _find_node(new_node_info->node_name);
-	new_alloc = (old_node_info == NULL);
-	if (new_alloc) {
-		(void) switch_p_alloc_node_info((switch_node_info_t **)
-						&old_node_info);
-		old_node_info->node_name = xstrdup(new_node_info->node_name);
-	}
-
-	/* Swap contents */
-	ifa_cnt   = old_node_info->ifa_cnt;
-	ifa_array = old_node_info->ifa_array;
-	next      = old_node_info->next;
-	old_node_info->ifa_cnt   = new_node_info->ifa_cnt;
-	old_node_info->ifa_array = new_node_info->ifa_array;
-	old_node_info->next      = new_node_info->next;
-	new_node_info->ifa_cnt   = ifa_cnt;
-	new_node_info->ifa_array = ifa_array;
-	new_node_info->next      = next;
-
-	if (new_alloc)
-		_hash_add_nodeinfo(old_node_info);
-	slurm_mutex_unlock(&global_lock);
-}
-
-/*
- * init() is called when the plugin is loaded, before any other functions
- * are called.  Put global initialization here.
- */
-int init(void)
-{
-	debug("%s loaded", plugin_name);
-	return SLURM_SUCCESS;
-}
-
-int fini(void)
-{
-	slurm_mutex_lock(&global_lock);
-	_free_libstate();
-	slurm_mutex_unlock(&global_lock);
-	return SLURM_SUCCESS;
-}
-
-extern int switch_p_reconfig(void)
-{
-	return SLURM_SUCCESS;
-}
-
-/*
- * switch functions for global state save/restore
- */
-int switch_p_libstate_save(char * dir_name)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	/* No state saved or restored for this plugin */
-	return SLURM_SUCCESS;
-}
-
-int switch_p_libstate_restore(char * dir_name, bool recover)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	/* No state saved or restored for this plugin, just initialize */
-	slurm_mutex_lock(&global_lock);
-	_alloc_libstate();
-	slurm_mutex_unlock(&global_lock);
-
-	return SLURM_SUCCESS;
-}
-
-int switch_p_libstate_clear(void)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-/*
- * switch functions for job step specific credential
- */
-int switch_p_alloc_jobinfo(switch_jobinfo_t **switch_job,
-			   uint32_t job_id, uint32_t step_id)
-{
-	sw_gen_step_info_t *gen_step_info;
-
-	log_flag(SWITCH, "%s() starting", __func__);
-	xassert(switch_job);
-	gen_step_info = xmalloc(sizeof(sw_gen_step_info_t));
-	gen_step_info->magic = SW_GEN_STEP_INFO_MAGIC;
-	*switch_job = (switch_jobinfo_t *) gen_step_info;
-
-	return SLURM_SUCCESS;
-}
-
-int switch_p_build_jobinfo(switch_jobinfo_t *switch_job,
-			   slurm_step_layout_t *step_layout, char *network)
-{
-	sw_gen_step_info_t *gen_step_info = (sw_gen_step_info_t *) switch_job;
-	sw_gen_node_info_t *gen_node_info;
-	sw_gen_node_t *node_ptr;
-	hostlist_t hl = NULL;
-	hostlist_iterator_t hi;
-	char *host = NULL;
-	int i, j;
-
-	log_flag(SWITCH, "%s() starting", __func__);
-	xassert(gen_step_info);
-	xassert(gen_step_info->magic == SW_GEN_STEP_INFO_MAGIC);
-	hl = hostlist_create(step_layout->node_list);
-	if (!hl)
-		fatal("hostlist_create(%s): %m", step_layout->node_list);
-	gen_step_info->node_cnt = hostlist_count(hl);
-	gen_step_info->node_array = xcalloc(gen_step_info->node_cnt,
-					    sizeof(sw_gen_node_t *));
-	hi = hostlist_iterator_create(hl);
-	for (i = 0; (host = hostlist_next(hi)); i++) {
-		node_ptr = xmalloc(sizeof(sw_gen_node_t));
-		gen_step_info->node_array[i] = node_ptr;
-		node_ptr->node_name = xstrdup(host);
-		gen_node_info = _find_node(host);
-		if (gen_node_info) {	/* Copy node info to this step */
-			node_ptr->ifa_cnt = gen_node_info->ifa_cnt;
-			node_ptr->ifa_array = xcalloc(node_ptr->ifa_cnt,
-						      sizeof(sw_gen_node_t *));
-			for (j = 0; j < node_ptr->ifa_cnt; j++) {
-				node_ptr->ifa_array[j] =
-					xmalloc(sizeof(sw_gen_node_t));
-				node_ptr->ifa_array[j]->ifa_addr = xstrdup(
-					gen_node_info->ifa_array[j]->ifa_addr);
-				node_ptr->ifa_array[j]->ifa_family = xstrdup(
-					gen_node_info->ifa_array[j]->ifa_family);
-				node_ptr->ifa_array[j]->ifa_name = xstrdup(
-					gen_node_info->ifa_array[j]->ifa_name);
-			}
-		}
-		free(host);
-	}
-	hostlist_iterator_destroy(hi);
-	hostlist_destroy(hl);
-
-	return SLURM_SUCCESS;
-}
-
-int switch_p_duplicate_jobinfo(switch_jobinfo_t *source,
-			       switch_jobinfo_t **dest)
-{
-	sw_gen_step_info_t *gen_step_info;
-
-	log_flag(SWITCH, "%s() starting", __func__);
-	/* FIXME: If this is ever needed please flesh this out! */
-
-	xassert(source);
-	switch_p_alloc_jobinfo((switch_jobinfo_t **)&gen_step_info,
-			       NO_VAL, NO_VAL);
-	*dest = (switch_jobinfo_t *) gen_step_info;
-
-	return SLURM_SUCCESS;
-}
-
-void switch_p_free_jobinfo(switch_jobinfo_t *switch_job)
-{
-	sw_gen_step_info_t *gen_step_info = (sw_gen_step_info_t *) switch_job;
-	sw_gen_node_t *node_ptr;
-	sw_gen_ifa_t *ifa_ptr;
-	int i, j;
-
-	log_flag(SWITCH, "%s() starting", __func__);
-	xassert(gen_step_info);
-	xassert(gen_step_info->magic == SW_GEN_STEP_INFO_MAGIC);
-	for (i = 0; i < gen_step_info->node_cnt; i++) {
-		node_ptr = gen_step_info->node_array[i];
-		xfree(node_ptr->node_name);
-		for (j = 0; j < node_ptr->ifa_cnt; j++) {
-			ifa_ptr = node_ptr->ifa_array[j];
-			xfree(ifa_ptr->ifa_addr);
-			xfree(ifa_ptr->ifa_family);
-			xfree(ifa_ptr->ifa_name);
-			xfree(ifa_ptr);
-		}
-		xfree(node_ptr);
-	}
-	xfree(gen_step_info->node_array);
-	xfree(gen_step_info);
-
-	return;
-}
-
-int switch_p_pack_jobinfo(switch_jobinfo_t *switch_job, Buf buffer,
-			  uint16_t protocol_version)
-{
-	sw_gen_step_info_t *gen_step_info = (sw_gen_step_info_t *) switch_job;
-	sw_gen_node_t *node_ptr;
-	sw_gen_ifa_t *ifa_ptr;
-	int i, j;
-
-	log_flag(SWITCH, "%s() starting", __func__);
-	xassert(gen_step_info);
-	xassert(gen_step_info->magic == SW_GEN_STEP_INFO_MAGIC);
-
-	pack32(gen_step_info->node_cnt, buffer);
-	for (i = 0; i < gen_step_info->node_cnt; i++) {
-		node_ptr = gen_step_info->node_array[i];
-		packstr(node_ptr->node_name, buffer);
-		pack16(node_ptr->ifa_cnt, buffer);
-		for (j = 0; j < node_ptr->ifa_cnt; j++) {
-			ifa_ptr = node_ptr->ifa_array[j];
-			log_flag(SWITCH, "node=%s name=%s family=%s addr=%s",
-				 node_ptr->node_name, ifa_ptr->ifa_name,
-				 ifa_ptr->ifa_family, ifa_ptr->ifa_addr);
-			packstr(ifa_ptr->ifa_addr, buffer);
-			packstr(ifa_ptr->ifa_family, buffer);
-			packstr(ifa_ptr->ifa_name, buffer);
-		}
-	}
-
-	return SLURM_SUCCESS;
-}
-
-int switch_p_unpack_jobinfo(switch_jobinfo_t **switch_job, Buf buffer,
-			    uint16_t protocol_version)
-{
-	sw_gen_step_info_t *gen_step_info;
-	sw_gen_node_t *node_ptr;
-	sw_gen_ifa_t *ifa_ptr;
-	uint32_t uint32_tmp;
-	int i, j;
-
-	switch_p_alloc_jobinfo(switch_job, 0, 0);
-	gen_step_info = (sw_gen_step_info_t *) *switch_job;
-
-	log_flag(SWITCH, "%s() starting", __func__);
-	safe_unpack32(&gen_step_info->node_cnt, buffer);
-	safe_xcalloc(gen_step_info->node_array, gen_step_info->node_cnt,
-		     sizeof(sw_gen_node_t *));
-	for (i = 0; i < gen_step_info->node_cnt; i++) {
-		node_ptr = xmalloc(sizeof(sw_gen_node_t));
-		gen_step_info->node_array[i] = node_ptr;
-		safe_unpackstr_xmalloc(&node_ptr->node_name, &uint32_tmp,
-				       buffer);
-		safe_unpack16(&node_ptr->ifa_cnt, buffer);
-		safe_xcalloc(node_ptr->ifa_array, node_ptr->ifa_cnt,
-			     sizeof(sw_gen_ifa_t *));
-		for (j = 0; j < node_ptr->ifa_cnt; j++) {
-			ifa_ptr = xmalloc(sizeof(sw_gen_ifa_t));
-			node_ptr->ifa_array[j] = ifa_ptr;
-			safe_unpackstr_xmalloc(&ifa_ptr->ifa_addr, &uint32_tmp,
-					       buffer);
-			safe_unpackstr_xmalloc(&ifa_ptr->ifa_family,
-					       &uint32_tmp, buffer);
-			safe_unpackstr_xmalloc(&ifa_ptr->ifa_name, &uint32_tmp,
-					       buffer);
-			log_flag(SWITCH, "node=%s name=%s family=%s addr=%s",
-				 node_ptr->node_name, ifa_ptr->ifa_name,
-				 ifa_ptr->ifa_family, ifa_ptr->ifa_addr);
-		}
-	}
-
-	return SLURM_SUCCESS;
-
-unpack_error:
-
-	switch_p_free_jobinfo((switch_jobinfo_t *)gen_step_info);
-	*switch_job = NULL;
-
-	return SLURM_ERROR;
-}
-
-void switch_p_print_jobinfo(FILE *fp, switch_jobinfo_t *jobinfo)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return;
-}
-
-char *switch_p_sprint_jobinfo(switch_jobinfo_t *switch_jobinfo, char *buf,
-			      size_t size)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	if ((buf != NULL) && size) {
-		buf[0] = '\0';
-		return buf;
-	}
-	return NULL;
-}
-
-/*
- * switch functions for job initiation
- */
-int switch_p_node_init(void)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-int switch_p_node_fini(void)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-int switch_p_job_preinit(switch_jobinfo_t *switch_job)
-{
-	sw_gen_step_info_t *gen_step_info = (sw_gen_step_info_t *) switch_job;
-	sw_gen_node_t *node_ptr;
-	sw_gen_ifa_t *ifa_ptr;
-	int i, j;
-
-	if (slurm_conf.debug_flags & DEBUG_FLAG_SWITCH) {
-		info("switch_p_job_preinit() starting");
-
-		for (i = 0; i < gen_step_info->node_cnt; i++) {
-			node_ptr = gen_step_info->node_array[i];
-			for (j = 0; j < node_ptr->ifa_cnt; j++) {
-				ifa_ptr = node_ptr->ifa_array[j];
-				info("node=%s name=%s family=%s addr=%s",
-				     node_ptr->node_name, ifa_ptr->ifa_name,
-				     ifa_ptr->ifa_family, ifa_ptr->ifa_addr);
-			}
-		}
-	}
-
-	return SLURM_SUCCESS;
-}
-
-extern int switch_p_job_init(stepd_step_rec_t *job)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-extern int switch_p_job_suspend_test(switch_jobinfo_t *jobinfo)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-extern void switch_p_job_suspend_info_get(switch_jobinfo_t *jobinfo,
-					  void **suspend_info)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return;
-}
-
-extern void switch_p_job_suspend_info_pack(void *suspend_info, Buf buffer,
-					   uint16_t protocol_version)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return;
-}
-
-extern int switch_p_job_suspend_info_unpack(void **suspend_info, Buf buffer,
-					    uint16_t protocol_version)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-extern void switch_p_job_suspend_info_free(void *suspend_info)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return;
-}
-
-extern int switch_p_job_suspend(void *suspend_info, int max_wait)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-extern int switch_p_job_resume(void *suspend_info, int max_wait)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-int switch_p_job_fini(switch_jobinfo_t *jobinfo)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-int switch_p_job_postfini(stepd_step_rec_t *job)
-{
-	uid_t pgid = job->jmgr_pid;
-	log_flag(SWITCH, "%s() starting", __func__);
-	/*
-	 *  Kill all processes in the job's session
-	 */
-	if (pgid) {
-		debug2("Sending SIGKILL to pgid %lu",
-			(unsigned long) pgid);
-		kill(-pgid, SIGKILL);
-	} else
-		debug("%ps: Bad pid valud %lu", &job->step_id,
-		      (unsigned long) pgid);
-
-	return SLURM_SUCCESS;
-}
-
-int switch_p_job_attach(switch_jobinfo_t *jobinfo, char ***env,
-			uint32_t nodeid, uint32_t procid, uint32_t nnodes,
-			uint32_t nprocs, uint32_t rank)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-/*
- * Allocates network information in resulting_data with xmalloc
- * String result of format : (nodename,(iface,IP_V{4,6},address)*)
- */
-extern int switch_p_get_jobinfo(switch_jobinfo_t *switch_job,
-								int key, void *resulting_data)
-{
-	int node_id = key;
-	sw_gen_step_info_t *stepinfo = (sw_gen_step_info_t*) switch_job;
-	sw_gen_node_t *node_ptr = stepinfo->node_array[node_id];
-	sw_gen_ifa_t *ifa_ptr;
-	int i, s;
-	int bufsize = 1024;
-	char *buf;
-
-#if defined(__FreeBSD__)
-#define IFNAMSIZ 16
-#endif
-	int triplet_len_max = IFNAMSIZ + INET6_ADDRSTRLEN + 5 + 5 + 1;
-
-	log_flag(SWITCH, "%s() starting", __func__);
-
-	if (!resulting_data) {
-		error("no pointer for resulting_data");
-		return SLURM_ERROR;
-	}
-
-	*(char **) resulting_data = NULL;
-
-	if (node_id < 0 || node_id >= stepinfo->node_cnt) {
-		error("node_id out of range");
-		return SLURM_ERROR;
-	}
-
-	buf = xmalloc(bufsize);
-	s = snprintf(buf, bufsize, "(%s", node_ptr->node_name);
-	/* appends in buf triplets (ifname,ipversion,address) */
-	for (i = 0; i < node_ptr->ifa_cnt; i++) {
-		ifa_ptr = node_ptr->ifa_array[i];
-		if (s + triplet_len_max > bufsize) {
-			bufsize *= 2;
-			xrealloc(buf, bufsize);
-		}
-		s += snprintf(buf+s, bufsize-s, ",(%s,%s,%s)",
-			      ifa_ptr->ifa_name, ifa_ptr->ifa_family,
-			      ifa_ptr->ifa_addr);
-	}
-	snprintf(buf+s, bufsize-s, ")");
-
-	*(char **)resulting_data = buf; /* return x-alloc'ed data */
-
-	return SLURM_SUCCESS;
-}
-
-/*
- * node switch state monitoring functions
- * required for IBM Federation switch
- */
-extern int switch_p_clear_node_state(void)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-extern int switch_p_alloc_node_info(switch_node_info_t **switch_node)
-{
-	sw_gen_node_info_t *gen_node_info;
-
-	log_flag(SWITCH, "%s() starting", __func__);
-	xassert(switch_node);
-	gen_node_info = xmalloc(sizeof(sw_gen_node_info_t));
-	gen_node_info->magic = SW_GEN_NODE_INFO_MAGIC;
-	*switch_node = (switch_node_info_t *) gen_node_info;
-
-	return SLURM_SUCCESS;
-}
-
-extern int switch_p_build_node_info(switch_node_info_t *switch_node)
-{
-	sw_gen_node_info_t *gen_node_info = (sw_gen_node_info_t *) switch_node;
-	struct ifaddrs *if_array = NULL, *if_rec;
-	sw_gen_ifa_t *ifa_ptr;
-	void *addr_ptr = NULL;
-	char addr_str[INET6_ADDRSTRLEN], *ip_family;
-	char hostname[256], *tmp;
-
-	log_flag(SWITCH, "%s() starting", __func__);
-	xassert(gen_node_info);
-	xassert(gen_node_info->magic == SW_GEN_NODE_INFO_MAGIC);
-	if (gethostname(hostname, sizeof(hostname)) < 0)
-		return SLURM_ERROR;
-	/* remove the domain portion, if necessary */
-	tmp = strstr(hostname, ".");
-	if (tmp)
-		*tmp = '\0';
-	gen_node_info->node_name = xstrdup(hostname);
-	if (getifaddrs(&if_array) == 0) {
-		for (if_rec = if_array; if_rec; if_rec = if_rec->ifa_next) {
-#if !defined(__FreeBSD__)
-	   		if (if_rec->ifa_flags & IFF_LOOPBACK)
-				continue;
-#endif
-			if (if_rec->ifa_addr->sa_family == AF_INET) {
-				addr_ptr = &((struct sockaddr_in *)
-						if_rec->ifa_addr)->sin_addr;
-				ip_family = "IP_V4";
-			} else if (if_rec->ifa_addr->sa_family == AF_INET6) {
-				addr_ptr = &((struct sockaddr_in6 *)
-						if_rec->ifa_addr)->sin6_addr;
-				ip_family = "IP_V6";
-			} else {
-				/* AF_PACKET (statistics) and others ignored */
-				continue;
-			}
-			(void) inet_ntop(if_rec->ifa_addr->sa_family,
-					 addr_ptr, addr_str, sizeof(addr_str));
-			xrealloc(gen_node_info->ifa_array,
-				 sizeof(sw_gen_ifa_t *) *
-				        (gen_node_info->ifa_cnt + 1));
-			ifa_ptr = xmalloc(sizeof(sw_gen_ifa_t));
-			ifa_ptr->ifa_addr   = xstrdup(addr_str);
-			ifa_ptr->ifa_family = xstrdup(ip_family);
-			ifa_ptr->ifa_name   = xstrdup(if_rec->ifa_name);
-			gen_node_info->ifa_array[gen_node_info->ifa_cnt++] =
-				ifa_ptr;
-			log_flag(SWITCH, "%s: name=%s ip_family=%s address=%s",
-				 plugin_type, if_rec->ifa_name, ip_family,
-				 addr_str);
-		}
-	}
-	freeifaddrs(if_array);
-
-	return SLURM_SUCCESS;
-}
-
-extern int switch_p_pack_node_info(switch_node_info_t *switch_node,
-				   Buf buffer, uint16_t protocol_version)
-{
-	sw_gen_node_info_t *gen_node_info = (sw_gen_node_info_t *) switch_node;
-	sw_gen_ifa_t *ifa_ptr;
-	int i;
-
-	log_flag(SWITCH, "%s() starting", __func__);
-	xassert(gen_node_info);
-	xassert(gen_node_info->magic == SW_GEN_NODE_INFO_MAGIC);
-	pack16(gen_node_info->ifa_cnt, buffer);
-	packstr(gen_node_info->node_name,    buffer);
-	for (i = 0; i < gen_node_info->ifa_cnt; i++) {
-		ifa_ptr = gen_node_info->ifa_array[i];
-		packstr(ifa_ptr->ifa_addr,   buffer);
-		packstr(ifa_ptr->ifa_family, buffer);
-		packstr(ifa_ptr->ifa_name,   buffer);
-	}
-
-	return SLURM_SUCCESS;
-}
-
-extern int switch_p_free_node_info(switch_node_info_t **switch_node)
-{
-	sw_gen_node_info_t *gen_node_info = (sw_gen_node_info_t *) *switch_node;
-	int i;
-
-	log_flag(SWITCH, "%s() starting", __func__);
-	xassert(gen_node_info);
-	xassert(gen_node_info->magic == SW_GEN_NODE_INFO_MAGIC);
-	for (i = 0; i < gen_node_info->ifa_cnt; i++) {
-		xfree(gen_node_info->ifa_array[i]->ifa_addr);
-		xfree(gen_node_info->ifa_array[i]->ifa_family);
-		xfree(gen_node_info->ifa_array[i]->ifa_name);
-		xfree(gen_node_info->ifa_array[i]);
-	}
-	xfree(gen_node_info->ifa_array);
-	xfree(gen_node_info->node_name);
-	xfree(gen_node_info);
-
-	return SLURM_SUCCESS;
-}
-
-extern int switch_p_unpack_node_info(switch_node_info_t **switch_node,
-				     Buf buffer, uint16_t protocol_version)
-{
-	sw_gen_node_info_t *gen_node_info;
-	sw_gen_ifa_t *ifa_ptr;
-	uint32_t uint32_tmp;
-	int i;
-
-	log_flag(SWITCH, "%s() starting", __func__);
-
-	switch_p_alloc_node_info(switch_node);
-	gen_node_info = (sw_gen_node_info_t *) *switch_node;
-
-	safe_unpack16(&gen_node_info->ifa_cnt, buffer);
-	safe_xcalloc(gen_node_info->ifa_array, gen_node_info->ifa_cnt,
-		     sizeof(sw_gen_ifa_t *));
-	safe_unpackstr_xmalloc(&gen_node_info->node_name, &uint32_tmp,
-			       buffer);
-	for (i = 0; i < gen_node_info->ifa_cnt; i++) {
-		ifa_ptr = xmalloc(sizeof(sw_gen_ifa_t));
-		gen_node_info->ifa_array[i] = ifa_ptr;
-		safe_unpackstr_xmalloc(&ifa_ptr->ifa_addr, &uint32_tmp, buffer);
-		safe_unpackstr_xmalloc(&ifa_ptr->ifa_family, &uint32_tmp,
-				       buffer);
-		safe_unpackstr_xmalloc(&ifa_ptr->ifa_name, &uint32_tmp, buffer);
-		log_flag(SWITCH, "%s: node=%s name=%s ip_family=%s address=%s",
-			 plugin_type, gen_node_info->node_name,
-			 ifa_ptr->ifa_name, ifa_ptr->ifa_family,
-			 ifa_ptr->ifa_addr);
-	}
-
-	_cache_node_info(gen_node_info);
-
-	return SLURM_SUCCESS;
-
-unpack_error:
-
-	switch_p_free_node_info(switch_node);
-
-	return SLURM_ERROR;
-}
-
-extern int switch_p_job_step_complete(switch_jobinfo_t *jobinfo,
-				      char *nodelist)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-extern int switch_p_job_step_part_comp(switch_jobinfo_t *jobinfo,
-				       char *nodelist)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-extern bool switch_p_part_comp(void)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return false;
-}
-
-extern int switch_p_job_step_allocated(switch_jobinfo_t *jobinfo,
-				       char *nodelist)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-extern int switch_p_slurmctld_init(void)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-extern int switch_p_slurmd_init(void)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-extern int switch_p_slurmd_step_init(void)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-extern int switch_p_job_step_pre_suspend(stepd_step_rec_t *job)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-extern int switch_p_job_step_post_suspend(stepd_step_rec_t *job)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-extern int switch_p_job_step_pre_resume(stepd_step_rec_t *job)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}
-
-extern int switch_p_job_step_post_resume(stepd_step_rec_t *job)
-{
-	log_flag(SWITCH, "%s() starting", __func__);
-	return SLURM_SUCCESS;
-}