### Local Variables: ***
### mode:perl ***
### comment-column:0 ***
### comment-start: "### " ***
### comment-end: "***" ***
### End: ***
#
# ****************DO NOT MOVE OR CHANGE LINES ABOVE THIS*********************
#
# The first set of lines runs perl from any shell. The second set of lines
# identifies the rest of the file as PERL for EMACS autoformatting.
# See end of copyright for more information.
#
#
# -------------------------------------------------------------------
# X-BONE
#
# http://www.isi.edu/xbone
# USC Information Sciences Institute (USC/ISI)
# Marina del Rey, California 90292, USA
# Copyright (c) 1998-2005
#
# -------------------------------------------------------------------
#
# Copyright (c) 1998-2005 by the University of Southern California.
# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software and
# its documentation in source and binary forms for non-commercial
# purposes and without fee is hereby granted, provided that the above
# copyright notice appear in all copies and that both the copyright
# notice and this permission notice appear in supporting
# documentation, and that any documentation, advertising materials,
# and other materials related to such distribution and use acknowledge
# that the software was developed by the University of Southern
# California, Information Sciences Institute. The name of the
# University may not be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THE UNIVERSITY OF SOUTHERN CALIFORNIA MAKES NO REPRESENTATIONS ABOUT
# THE SUITABILITY OF THIS SOFTWARE FOR ANY PURPOSE. THIS SOFTWARE IS
# PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES,
# INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
# Other copyrights might apply to parts of this software and are so
# noted when applicable.
#
# -------------------------------------------------------------------
#
# Effort partly sponsored by the Defense Advanced Research Projects
# Agency (DARPA) and Air Force Research Laboratory, Air Force Materiel
# Command, USAF, under agreement numbers F30602-98-1-0200 (X-Bone) and
# F30602-01-2-0529 (DynaBone). The views and conclusions contained
# herein are those of the authors and should not be interpreted as
# necessarily representing the official policies or endorsements,
# either expressed or implied, of the Defense Advanced Research
# Projects Agency (DARPA), the Air Force Research Laboratory, or the
# U.S. Government.
#
# This work was partly supported by the NSF STI-XTEND (ANI-0230789)
# and NETFS (ANI-0129689) projects. Any opinions, findings, and
# conclusions or recommendations expressed in this material are those
# of the authors and do not necessarily reflect the views of the
# National Science Foundation.
#
# -------------------------------------------------------------------
# $RCSfile: XB_Params.pm,v $
#
# $Revision: 1.68 $
# $Author: pingali $
# $Date: 2005/04/10 06:45:02 $
# $State: Exp $
# ----------------------------------------------------------------------------
#
# Description: Definition of default values for various options and
# parameters used in XBone
# Primary Authors: the XBone Group (xbone@isi.edu)
package XB_Params;
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw();
@EXPORT_OK = qw(
node_opts
CISCO_BUDDY_USERNAME
CISCO_BUDDY_PASSWORD CISCO_BUDDY_ENABLE_PASSWORD
NODEOS ALLOWED_NODEOS XBONE_NET
DNS_FILE_FORWARD DNS_FILE_REVERSE NAMED_PID XBONE_HOME
XBONE_PROTOCOL DNS_SERVER DNS_SERVER_SECONDARY
DNS_UPDATE_MODE SECURITY_CA_CERT SECURITY_SERVER_CERT
SECURITY_SERVER_KEY MAX_MCAST_RADIUS XB_CTL_PORT
MCAST_ADDR CA_EMAIL XB_API_PORT IPSEC_ENABLE_RANDOM_PADDING
NODEOS_LABEL IP_MULTICAST_IF IP_MULTICAST_TTL
IP_MULTICAST_LOOP IP_ADD_MEMBERSHIP IP_DROP_MEMBERSHIP
IP_MULTICAST_VIF SOL_IP NET_TIMEOUT SO_RCVBUF
ACTUATOR_MSG_LIMIT ACTUATOR_TIMEOUT
LOG_DEST LOG_MASK LOG_FILE DUPLICATE_DETECTION_INTERVAL
XBONE_RELEASE XBONE_OVLMGR_BACKCOMPAT XBONE_DAEMON_BACKCOMPAT
IPSEC_DISABLE_REPLAY_PROTECTION
LOOPBACK_IP_ADDRESS IP_ADDRESS_LENGTH REVISITATION
ENABLE_FIREWALL_FORWARDING NODE_ASSIGNMENT_POLICY);
use strict;
use sigtrap;
use FindBin;
use Config;
$XB_Params::XBONE_HOME = $FindBin::RealBin;
#=========================================================================
# XBone Versions & Dates
#=========================================================================
# XBone software & protocol versions: XBone API, CTL, XOL, & release
$XB_Params::api_ver = "2.0";
$XB_Params::ctl_ver = "2.0";
$XB_Params::xol_ver = "2.0";
$XB_Params::rel_ver = "3.0";
#=========================================================================
# XBone Node Options & States
#=========================================================================
# node_opts: XBone node parameters
%XB_Params::node_opts = ();
# node_state: XBone node state
%XB_Params::node_state = ();
# persistent socket: stores socket handles for persistent connections
%XB_Params::persistent_socks = ();
#=========================================================================
# Configuration Options
#-------------------------------------------------------------------------
#
# Default values for XBone node configuration options:
#
# o Options here could be set from either command line or conf file.
# o Precedence:
# [command line] > [configuration file] > [XB_Params (default)]
# o Do not change this file unless it's site- or network-specific.
# Use command line or configuration file to override default values
# with node-specific properties.
#=========================================================================
#= 0. Generic Options/Parameters =========================================
#Operational model: automatic or not?
$XB_Params::auto = "yes";
# conf: XBone node configuration file, full or relative path
$XB_Params::conf = "/usr/local/etc/xbone/xbone.conf";
$XB_Params::gui_conf = "/usr/local/etc/xbone/xbone-gui.conf";
# working directory: for state & log files, application deployment, etc.
$XB_Params::workdir = "/var/xbone";
# state: XBone state file
$XB_Params::state_file = "xbone.state";
# daemon type: types of a node in virtual networks
# host: host
# router: router
# node: host or router
# meta: meta nodes (overlay managers)
$XB_Params::daemon_type = "node";
#= 1. Node IP config parameters =============================================
# hostname
$XB_Params::hostname = "";
# address for control connection
$XB_Params::ctl_addr = "";
$XB_Params::ctl_addr6 = "";
# address for app/data connection
$XB_Params::app_addr = "";
$XB_Params::app_addr6 = "";
#= 2. XBone Network Parameters ==============================================
# IP protocol version support:
#
# ipproto control multicast overlay*
# =======================================
# ipv4 ipv4 ipv4 ipv4
#
# ipv6 ipv6 ipv6 ipv6
#
# / ipv4 --- ipv4 --- ipv4
# both ----
# \ ipv6 --- ipv6 --- ipv6
# =======================================
# * overlay net/link/phy
# ipv4 v4 / v4 / v4
# ipv6 v6 / v6 / v6
#
$XB_Params::ipproto = "both";
# old & legacy values: [TODO remove these once we cleanup]
$XB_Params::address_type = $XB_Params::ipproto;
$XB_Params::control_protocol = $XB_Params::ipproto;
# multicast address/group: http://www.iana.org
$XB_Params::xbone_mcast_addr = "224.192.0.1";
$XB_Params::xbone_mcast_addrv6 = "FF0c:0:0:0:0:0:0:6061";
# ports:
# xbone_api_port: XBone API -> manage virtual networks
# official IANA port: x-bone-api 2165
# xbone_ctl_port: XBone CTL -> configure nodes in a virtual network
# official IANA port: x-bone-ctl 265
$XB_Params::xbone_api_port = 2165;
$XB_Params::xbone_ctl_port = 265;
# RTT:
# Rough estimate on the timeout for RTT in seconds
# Note that all timeout values are derived from RTT.
$XB_Params::xbone_rtt = 10;
#= 3. Logging ===============================================================
# log_dest: log destination(s), combine the chosen ones with logic OR '|'
# operation: SYSLOG, ERR, OUT, FILE.
$XB_Params::SYSLOG = (2**0); # log to syslog
$XB_Params::ERR = (2**1); # log to STDERR
$XB_Params::OUT = (2**2); # log to STDOUT
$XB_Params::FILE = (2**3); # log to file
$XB_Params::log_dest = $XB_Params::FILE | $XB_Params::OUT;
# log_mask: log mask (copied from syslog(3)), list & suggested usages
# emerg: (panic)
# alert: (should be corrected immediately)
# crit: (critical conditions)
# err: errors
# warning: warning messages
# notice: not error conditions, but should be handled
# info: enter/exit subroutines
# debug: misc logs: stop points, traces, etc.
# debug0:
# debug1: general debugging info
# debug2: more detailed debugging info
# debug3: dump simple variables
# debug4: dump data structures
# debug5: dump pkts & messages
# ------------------------------------------------------
# debug6: dump parsed object hash
# debug7: dump messages
# debug8: misc debug messages & info
# debug9+: gory details not suitable for human being
$XB_Params::log_mask =
# For release:
"emerg alert crit err warning notice";
# --------------------------------------------------------------
# For development:
# "emerg alert crit err warning notice info debug debug0 debug1 ".
# "debug2 debug3 debug4 debug5 debug6 debug7 debug8";
# log_file: log file, only effective if FILE is included in LOG_DEST
$XB_Params::log_file = "xbone.log";
#= 4. X.509 certificate & key info ==========================================
# cert & key: node certificate & key files
$XB_Params::node_cert = "/usr/local/etc/xbone/cert/xbone-node-cert.pem";
$XB_Params::node_key = "/usr/local/etc/xbone/cert/xbone-node-key.pem";
# CAcert: CA cert file:
$XB_Params::ca_cert = "/usr/local/etc/xbone/cert/CAcert.pem";
$XB_Params::ca_path = "/usr/local/etc/xbone/cert";
#= 5. ACLs ==================================================================
# List of allowed parent Overlay Managers
@XB_Params::ovl_manager = ();
# List of user ACL
%XB_Params::user_acl = (
#acl num => <name-pattern> <capability> <tun-count> <uid>
50000 => '\S+ guest 0 nobody'
);
%XB_Params::shared_user_acl = ();
#= 6. Node Features & Capabilities ==========================================
# OS
$XB_Params::os = '';
$XB_Params::NODEOS = "";
# OS release version
$XB_Params::os_version = "";
# Kernel Version
$XB_Params::kern_version = "";
# System/CPU architecture
$XB_Params::node_arch = "";
# Routing
# - routing types: dynamic vs. static
# - routing daemons: [if dynamic] zebra, xorp, ...
# - routing algorithms: [if dynamic] RIP, iBGP, eBGP, OSPF, ...
# * currently, overload "routing" to mean the following:
# o static: static routing
# o dynamic: with zebra/rip, **the only combination XBone supports now**
$XB_Params::routing = "static";
# IPsec
$XB_Params::IPsec = "yes";
# QoS
$XB_Params::qos = "no";
#= 7. Address Server Parameters (Optional) ==================================
# addrserv: IP allocator / address server flag
$XB_Params::addrserv = 1;
# address blocks if ($XB_Params::addrserv)
$XB_Params::netv4 = "172.26.0.0/16";
$XB_Params::linkv4 = "172.27.0.0/16";
$XB_Params::netv6 = "fec0::/112";
$XB_Params::linkv6 = "fed0::/112";
# remote address server
$XB_Params::addr_server = '';
# temporary flag to use new IP allocation code: (default old)
# must have p5-NetAddr-IP-3.17 if set to 1
$XB_Params::new_alloc = 0;
#= 8. DNS Settings ==========================================================
#Enable/Disable DNS
$XB_Params::dns = "no";
# The node running the BIND Server
$XB_Params::name_server = "";
# this name has to match the specification in the
# named configuration files. If you are not sure, leave this
# as it is. These are the two values used during setup of the
# DNS.
# ***** NOTE REVERSE ZONE MUST BE CONSISTENT WITH XB_Params::netv4
$XB_Params::forward_zone = "xbone.overlay";
$XB_Params::reverse_zone = "26.172.IN-ADDR.ARPA";
$XB_Params::reverse_zone6 =
"0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.c.e.f.IP6.INT";
# File containing the shared key name and value for authenticated
# dynamic update. This is the name you use while setting up the
# named. Copy the K....+157+.....key file. make sure that the
# permissions are appropriately set.
$XB_Params::dns_key_file = "/usr/local/etc/xbone/Kkey-test.+157+32035.key";
#= 9. Dynamic Routing Settings =============================================
# Zebra home directory
$XB_Params::zebra_dir = "/usr/local/etc/zebra";
#=========================================================================
# XBone Runtime Parameters
# Some runtime parameters not configurable from command line or conf file
#=========================================================================
#= Timers ================================================================
# Timer/Timeout values in seconds
# o rtt_timeout: general timeout for network transactions (scale of RTT)
# o ovl_timeout: general timeout for overlay transactions (scale of web)
# o refresh: refresh message period
# o expire: expiration time for overlays in the absence of refresh msgs
# o period: period the node checks for sending refresh or expiring an ovl
$XB_Params::rtt_timeout = 3;
$XB_Params::ovl_timeout = 60;
$XB_Params::refresh = 60*15;
$XB_Params::expire = 60*120;
$XB_Params::period = 60*5;
# state_time: time of the state recorded in the state file
$XB_Params::state_time = time;
# Time period for refreshing shared data (CA, ACL)
$XB_Params::data_refresh_period = 3600;
#= Minimum OS versions for various features: XBone, IPsec, IPv6 ==========
%XB_Params::os_support =
(
freebsd => 470000,
linux => "2.4.18"
);
%XB_Params::IPsec_support =
(
freebsd => 450000,
linux => "2.5.47"
);
%XB_Params::IPv6_support =
(
freebsd => 450000,
linux => "2.6.x"
);
#= ACL ===================================================================
# authentication type
@XB_Params::auth_type = qw(x509);
# access level
%XB_Params::access_level = (
'deploy' =>
[
"create_overlay", "discover_daemons", "list_overlays",
"overlay_status", "destroy_overlay",
"select", "config", "status", "stop",
"invite", "release", "refresh", "discover"
],
'guest' =>
[
"discover_daemons", "list_overlays",
"overlay_status",
"status",
"discover"
]
);
# set default app deployment suid to highest allowd by ACL when not
# specified in overlay create request, otherwise, it'll always be 'nobody'
$XB_Params::HIGHEST_ACL_SUID = 0;
#= Misc. =================================================================
$XB_Params::DEBUGGING = 0; # main switch, turn on the following
$XB_Params::SSL_DEBUG = 1; # 0=none, 1=errors, 2=1+cipher
# 3=2+progress, 4=3+data
$XB_Params::NO_FORK = 0;
$XB_Params::PERSISTENT_SOCK = 0;
# APPEND_ERR_LOG:
# 0 => Record only the first "err" log.
# 1 => Accumulate (append) all "err" logs until it's cleared. (LOOOONG)
$XB_Params::APPEND_ERR_LOG = 0;
# XBone message delimiters
$XB_Params::msg_delimiter = "XBoneEOC";
# Flag to allow hosts using Guest Host certificate
$XB_Params::GUEST_OK = 0;
# Hostname on the Guest Host certificate
$XB_Params::guesthost = 'guest.xbone.overlay';
# Error reply: used to collect error message whenever XB_Log::log is called
# with "err" log mask. **Accummulative, must be clear after it's used.**
$XB_Params::error_reply = "";
# pid file.
$XB_Params::pidfile = "xbone.pid";
#= Used by Cisco. ============================================================
$XB_Params::CISCO_BUDDY_USERNAME = "";
$XB_Params::CISCO_BUDDY_PASSWORD = "";
$XB_Params::CISCO_BUDDY_ENABLE_PASSWORD = "";
#= Used by LDAP. =============================================================
# information on certificates is filled based on command line parameters,
# configuration file and default settings in XB_Params. There is duplication
# of parameters to allow us to access LDAP server before the entire
# command line and configuration file processing is completed.
%XB_Params::ldap = (
"registered" => "no", # registered already?
"enable" => "no",
"server" => "ldap.xbone.net",
"scope" => "local",
"port" => "636",
"version" => "3",
"instance" => "",
"userdn" => "cn=XBoneUser,ou=Users,ou=local,ou=xbone",
"hostname" => "",
"password" => "",
"ca_cert" => "", #To be filled later
"ca_path" => "", #To be filled later
"node_cert" => "", #To be filled later
"node_key" => "", #To be filled later
);
#= XBone World Wide Network===========================================
%XB_Params::register = (
"enable" => "no",
"variable" => "os, os_version, ipproto",
);
#------------------------------------------------------------------------------
# OLD OLD OLD OLD OLD OLD OLD OLD OLD OLD OLD OLD OLD OLD OLD OLD OLD OLD OLD
#------------------------------------------------------------------------------
############################################################
# The following are used only by xb-overlay-manager
# They are provided here because
# - xb-overlay-manager has no config file
# - this is the place for changeable constants
############################################################
$XB_Params::XBONE_OVERLAY_MANAGER = # Hostname used by the OM to
"www.xbone.net"; # identify itself in heartbeats
$XB_Params::SECURITY_SERVER_CERT = # used by the OM as its public key
"$XB_Params::XBONE_HOME/..."; # XXX no idea where this goes after reorg
$XB_Params::SECURITY_SERVER_KEY = # used by the OM as its private key
"$XB_Params::XBONE_HOME/..."; # XXX no idea where this goes after reorg
$XB_Params::DEMO_MODE = 0; # Flag for demo mode. Set this to 1 to
# force the OM to pick nodes in the
# reverse order. 0 is normal operation.
$XB_Params::XBONE_OVLMGR_BACKCOMPAT = # Overlay Manager is backward compatible
""; # with these XBONE_RELEASE release versions
# (separated by "|", eg, "1.3|1.2")
$XB_Params::OVLMGR_PING_INTERVAL = 60*15;
# Overlay Manager sweeps all hosts in
# all overlays, issuing heartbeat
# messages to each of them. This sweep
# is performed as once every interval.
# Value is seconds.
############################################################
# The following are used only by nearly everybody :-)
############################################################
$XB_Params::XBONE_VERSION_DATE = # Date this version was created.
# "30/10/2001"; # "<day_num>/<month_num>/<year_num>"
"01/01/2005"; # <- for development
$XB_Params::XBONE_OBSOLETE_LIMIT = # Seconds after the version date
60*60*24*30*6; # when the version should be obsolete.
$XB_Params::API_PROTOCOL = "2.0"; # Protocol version of the XBone API
$XB_Params::XBONE_PROTOCOL = "1.5"; # Protocol version of the XBone internal
# communication (OM <-> RD)
$XB_Params::XBONE_RELEASE = "3.0"; # Version number of the XBone software
# release
$XB_Params::XBONE_NET = # The domain name associated with this
"xbone.overlay"; # particular Xbone overlay network.
@XB_Params::ALLOWED_DNS_NODEOS = # List of allowed OS names for the one
qw(freebsd linux solaris sunos kame nist cisco); # RD host that manipulates the Xbone
# DNS domain.
$XB_Params::SYSLOG = (2**0);
$XB_Params::ERR = (2**1);
$XB_Params::OUT = (2**2);
$XB_Params::FILE = (2**3);
$XB_Params::LOG_DEST = # Log to both the log file and stderr.
# $XB_Params::FILE; # Also see XB_Log.pm.
$XB_Params::FILE|$XB_Params::OUT;
# Specify the set of things to log.
$XB_Params::LOG_MASK = # emerg, alert, crit, err, warning, notice
# info, debug0, debug1, ...
# For debugging, info, debug, & debug1 are
# useful, but very noisy.
# uncomment one of the following two groups for release or coding/debugging
# "emerg alert crit err warning notice"; # for release, log critical ones only
"emerg alert crit err warning ". # for internal coding/debugging, show
"notice info debug debug0 debug1 ". # everything
"debug2 debug3 debug4 debug5";
$XB_Params::LOG_FILE = # File name where logging data is written.
"/var/log/xbone.log"; # Use only when XB_Params::LOG_DEST & "FILE".
$XB_Params::DAEMON_CONF_FILE = "/usr/local/etc/xbone/Xbone_daemon.conf";
# location of Xbone daemon's configuration
$XB_Params::DAEMON_STATE_DIR = "/var/xbone";
$XB_Params::REVISITATION = 0; # Should revisitation be enabled?
#== XBone Runtime Directories =================================================
# - XBONE_RUN_DIR: Base for other XBone runtime directories. Must be
# configurable from command line & config file.
#==============================================================================
$XB_Params::XBONE_RUN_DIR = "/var/xbone";
$XB_Params::DAEMON_STATE_FILE = "$XB_Params::DAEMON_STATE_DIR/Xbone_daemon.state";
# File where Xbone daemon's overlay state
# is kept for daemon crash recovery.
%XB_Params::DAEMON_STATE = (); # Hash of Xbone daemon's current state
$XB_Params::ERASE_AT_STARTUP = 0; # Erase Xbone daemon's tunnel, IPSec
# and route state. NOTE: This should be
# non-zero only at ISI.
$XB_Params::DAEMON_STATE_TIME = 1; # Last time that the Xbone daemon's state
# was dumped out to the state file.
$XB_Params::OVERLAY_ALIVE_TIME = 60*120;
# Seconds that the resource daemon will
# allow an overlay to remain without
# receiving a keep-alive message from
# an overlay manager.
$XB_Params::OVERLAY_SWEEP_INTERVAL = 60*10;
# Seconds that resource daemon waits
# between sweeps, looking for overlays
# that have not been kept alive.
$XB_Params::NET_TIMEOUT = 120;
# Network timeout in seconds. Use one
# instead of 5 different timeouts before.
#------------------------------------------------------------
# OS dependent section to define NAMED_ZONE_PATH & NAMED_PID.
#------------------------------------------------------------
if ($Config{osname} eq "linux") {
$XB_Params::NAMED_ZONE_PATH="/var/named/xbone"; # NEED VERIFICATION!
if(-d "/var/run/named"){
$XB_Params::NAMED_PID="/var/run/named/named.pid";
}else{
$XB_Params::NAMED_PID="/var/run/named.pid";
}
}
if ($Config{osname} eq "solaris") {
$XB_Params::NAMED_ZONE_PATH="/var/adm/domain/xbone";
$XB_Params::NAMED_PID="/var/adm/domain/named.pid";
}
if ($Config{osname} eq "freebsd") {
$XB_Params::NAMED_ZONE_PATH="/etc/namedb/xbone";
$XB_Params::NAMED_PID="/var/run/named.pid";
}
$XB_Params::DNS_FILE_FORWARD = # Forward DNS database file for overlays.b
"$XB_Params::NAMED_ZONE_PATH/xbone-forward.zone";
$XB_Params::DNS_FILE_REVERSE = # Reverse DNS database file for overlays
"$XB_Params::NAMED_ZONE_PATH/xbone-reverse.zone";
$XB_Params::DNS_SERVER = # Primary Xbone DNS name server
"dns2.xbone.overlay";
$XB_Params::DNS_SERVER_SECONDARY = # Secondary Xbone DNS server
"dns2.xbone.overlay";
###################################################################
# The only allowed values for the DNS update mode are:
#
# $DNS_UPDATE_MODE = "update_both";
# Update both assumes that the DNS is running in two primaries
# mode and that the DNS system will not update the second primary
#
# $DNS_UPDATE_MODE = "update_1_hup_2";
# Update 1 hup 2 assumes that we have one primary and one secondary
# so we update the primary and hup the secondary to get an instantaneous
# update.
#
# The current decision is to run as update_1_hup_2
###################################################################
$XB_Params::DNS_UPDATE_MODE = # See above block comment.
"update_1_hup_2";
$XB_Params::DNS_TIMEOUT = 15; # Fifteen second DNS cache time.
# A value lower than 15 is undefined.
# used by both RD and OM when calling XB_SSL::init()
# XXX shouldn't this be kept where the conf file is kept? -- Lars
$XB_Params::SECURITY_CA_CERT =
"$XB_Params::XBONE_HOME/isi/ca/CAcert.pem";
# IPv6 peek: define mcast address
$XB_Params::MCAST_ADDR = # Multicast address used by XBONE
"224.192.0.1";
$XB_Params::XB_CTL_PORT = 3365; # Multicast port used by XBone and alos
# the unicast TCP and UDP ports used.
# Official IANA port: x-bone-ctl
$XB_Params::XB_API_PORT = 4365; # TCP port used by XBone API
# Official IANA port: x-bone-api
# IPv6 peek: define address blocks
$XB_Params::XB_IP_EXTERNAL_BLOCK = # IP block for releases, from RFC 1918
"172.26.0.0/16"; # (breaks rev DNS w/o RD using XB DNS)
$XB_Params::XB_IP_INTERNAL_BLOCK = # IP block for releases, from RFC 1918
"172.27.0.0/16"; # (breaks rev DNS w/o RD using XB DNS)
#$XB_Params::XB_IP_EXTERNAL_BLOCK = # IP block owned by X-Bone project, for
# "198.32.6.0/24"; # local ISI use
#$XB_Params::XB_IP_INTERNAL_BLOCK = # IP block owned by X-Bone project, for
# "198.32.7.0/24"; # local ISI use
# IPv6 peek: define subnet
$XB_Params::XB_OVL_SUBNET_BITS = 8;
$XB_Params::MAX_MCAST_RADIUS = 16; # The largest radius that should be used
$XB_Params::DUPLICATE_DETECTION_INTERVAL # time interval in seconds we should
= 120; # keep msgs to prevent duplicates
$XB_Params::ACTUATOR_MSG_LIMIT = # Maximum size of overlay mgr's reservation
65536; # datagram
$XB_Params::ACTUATOR_TIMEOUT = 15; # Time OM waits during resource discovery
$XB_Params::IP_MULTICAST_IF = 9;
$XB_Params::IP_MULTICAST_TTL = 10;
$XB_Params::IP_MULTICAST_LOOP = 11;
$XB_Params::IP_ADD_MEMBERSHIP = 12;
$XB_Params::IP_DROP_MEMBERSHIP = 13;
$XB_Params::IP_MULTICAST_VIF = 14;
########################################################
# getsockopt() and setsockopt layer for IP protocol.
# Needed due to bug in Perl version of getprotobyname().
########################################################
$XB_Params::SOL_IP = 0;
$XB_Params::SO_RCVBUF = 128*1024;
#######################################
# Global variables used across modules
#######################################
@XB_Params::DNS_ADD_FWD_PARMS = (); # Holds DNS forward addition parameters
@XB_Params::DNS_DEL_FWD_PARMS = (); # " " forward deletion "
#== Application Deployment ====================================================
$XB_Params::ENABLE_APP_DEPLOY = 1; # set to 1 to enable app deployment code
%XB_Params::APP_LIST = (); # hash: AppName -> [ AppFile, LastTime ]
$XB_Params::APP_RUN = # absolute path for application run-time
"$XB_Params::XBONE_RUN_DIR/apps"; # directory
@XB_Params::APP_KEYWORDS = # list of known keywords to replace
("REALHOST", "OVLHOST", "OVLNAME", "OVLSUFFIX", "REALIP", "IPLIST", "IP1",
"APPNAME", "APPSCRIPT");
#==============================================================================
# IPv6 peek: loopback
$XB_Params::LOOPBACK_IP_ADDRESS # IP Loopback address
= "127.0.0.1";
# IPv6 peek: define address length
$XB_Params::IP_ADDRESS_LENGTH # Length of IP Address
= 32;
$ENV{PATH} = "";
foreach my $thispath (qw(/usr/local/v6/ /usr/local/ / /usr/)) {
foreach my $subdir (qw(sbin bin)) {
if(-d $thispath.$subdir) { $ENV{PATH} .= ":".$thispath.$subdir; }
}
}
$ENV{PATH} =~ s/^://;
$XB_Params::TEMP_DIR = "/tmp/"; # Temporary Directory to use
$XB_Params::CA_EMAIL = # email address of the CA that signs
"X-Bone Certification Authority ".# certificates for this xbone installation
"<xbone\@isi.edu>"; # (this should go somewhere else)
1; # Insure TRUE return if module is interpreted.
syntax highlighted by Code2HTML, v. 0.9.1