#!/usr/bin/perl
#
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
# Yokogawa Electric Corporation, YDC Corporation,
# IPA (Information-technology Promotion Agency, Japan).
# All rights reserved.
# 
# Redistribution and use of this software in source and binary forms, with 
# or without modification, are permitted provided that the following 
# conditions and disclaimer are agreed and accepted by the user:
# 
# 1. Redistributions of source code must retain the above copyright 
# notice, this list of conditions and the following disclaimer.
# 
# 2. Redistributions in binary form must reproduce the above copyright 
# notice, this list of conditions and the following disclaimer in the 
# documentation and/or other materials provided with the distribution.
# 
# 3. Neither the names of the copyrighters, the name of the project which 
# is related to this software (hereinafter referred to as "project") nor 
# the names of the contributors may be used to endorse or promote products 
# derived from this software without specific prior written permission.
# 
# 4. No merchantable use may be permitted without prior written 
# notification to the copyrighters. However, using this software for the 
# purpose of testing or evaluating any products including merchantable 
# products may be permitted without any notification to the copyrighters.
# 
# 
# 
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHTERS, THE PROJECT AND 
# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING 
# BUT NOT LIMITED THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
# FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.  IN NO EVENT SHALL THE 
# COPYRIGHTERS, THE PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
# CONTRACT,STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 
# THE POSSIBILITY OF SUCH DAMAGE.
#
# $TAHI: v6eval/bin/remotes/manual/rtadvd.rmt,v 1.10 2010/03/24 02:42:35 mario Exp $
#
########################################################################
use V6evalRemote;
use File::Basename;

rArg() || goto error;

$type=rType();

my $basename	= basename($0, '.rmt');
my $prompt	= "$basename> ";

print "\n";

#
if($rOpt_Start && !$rOpt_link0 && !$rOpt_link1) {
    print "lio_start". "\n";
    print STDERR $prompt . "Specify link0=XXX and/or link1=XXX\n";
    print "lio_stop". "\n";
    goto error;
}

#
$rOpt_timeout=5
    if ! defined($rOpt_timeout);
#
$rOpt_maxinterval=600
    if ! defined($rOpt_maxinterval);
$rOpt_mininterval=$rOpt_maxinterval*0.33
    if ! defined($rOpt_mininterval);

#
$rOpt_chlim=64
    if ! defined($rOpt_chlim);
$rOpt_raflag=0
    if ! defined($rOpt_raflag);
$rOpt_rltime=$rOpt_maxinterval*3
    if ! defined($rOpt_rltime);
$rOpt_rtime=0
    if ! defined($rOpt_rtime);
$rOpt_retrans=0
    if ! defined($rOpt_retrans);
#
$rOpt_pinfoflags=192
    if ! defined($rOpt_pinfoflags);
$rOpt_vltime=2592000
    if ! defined($rOpt_vltime);
$rOpt_pltime=604800
    if ! defined($rOpt_pltime);
#
$rOpt_mtu=1500
    if ! defined($rOpt_mtu);

#
$rtadv_tmpl="$type".".rtadvd.tmpl";
$rtadv_conf="$type".".rtadvd.conf";
$rtadv_rmt="/tmp/rtadvd.conf";
$put_timeout=180;

#
print "lio_start". "\n";
print $prompt . "start/stop router advertisement ".
	"of NUT($type) manually, \n";
print $prompt . "then press enter key.\a\n";
print "lio_stop". "\n";
    <STDIN>;


exit($V6evalRemote::exitPass);

error:
    exit($V6evalRemote::exitFail);

########################################################################
__END__

=head1 NAME

B<rtadv.rmt> - start/stop router advertisement

=head1 SYNOPSIS

B<rtadvd.rmt> [-commonoption ...] start
              link0=LINK0_DEV link1=LINK1_DEV
              [timeout=SEC_VALUE]
              [maxinterval=MaxRtrAdvInterval]
              [mininterval=MinRtrAdvInterval]
              [chlim=AdvCurHopLimit]
              [raflag=AdvManagedFlag&AdvOtherConfigFlag]
              [rltime=AdvDefaultLifetime]
              [rtime=AdvReachableTime]
              [retrans=AdvRetransTimer]
              [pinfoflags=AdvOnlinkFlag&AdvAutonomousFlag]
              [vltime=AdvValidLifetime] 
              [pltime=AdvPerferredLifetime]
              [mtu=AdvLinkMTU]

B<rtadvd.rmt> [-commonoption ...] stop  [timeout=SEC_VALUE]

=head1 DESCRIPTION

B<rtadv.rmt start> starts to send router advertisements.
B<timeout>: Default timeout value is five seconds.
B<common options>: Please see ``preldoc V6evalRemote''.
B<link0> and B<link1>: NUT's network i/f names for Link0 and Link1.
B<rtadv.rmt start> can specifies the following RA parameters whose
values are depend on rtadvd of kame-freebsd now.

  ------------+----------------------------------
  left value   right value
  ------------+----------------------------------
  maxinterval  MaxRtrAdvInterval
  mininterval  MinRtrAdvInterval
  chlim        AdvCurHopLimit
  raflag       AdvManagedFlag&AdvOtherConfigFlag
  rltime       AdvDefaultLifetime
  rtime        AdvReachableTime
  retrans      AdvRetransTimer
  pinfoflags   AdvOnlinkFlag&AdvAutonomousFlag
  vltime       AdvValidLifetime
  pltime       AdvPerferredLifetime
  mtu          AdvLinkMTU
  ------------+----------------------------------

B<rtadv.rmt stop> stop to send router advertisements.
B<timeout>: Default timeout value is five seconds.
B<common options>: Please see ``preldoc V6evalRemote''.

=head1 RETURN VALUES

B<rtadv.rmt> exits with one of the following values:
 0      command completed successfully
 not 0  command failed

=head1 BUGS

B<rtadv.rmt> can run for kame-freebsd and hitachi-nr60 only.
Current version of the command needs B<kame-freebsd.rtadvd.tmpl>
and B<hitachi-nr60.rtadvd.tmpl> on the current directory.

=head1 SEE ALSO

 perldoc V6evalRemote
 rtadvd.conf(5) for kame-freebsd
 RFC2461(6.2.1 Router Configration Variables)

=cut
