#!/usr/bin/perl # # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Yokogawa Electric Corporation. # 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. # # 5. The copyrighters, the project and the contributors may prohibit # the use of this software at any time. # # 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: ct/nd.p2/V6LC_2_2_14_C.seq,v 1.5 2005/04/11 08:54:41 akisada Exp $ # ######################################################################## use rdisc; BEGIN {} END {} if($V6evalTool::NutDef{'Type'} ne 'router') { exitRouterOnly($Link0); #NOTREACHED } vCapture($Link0); $pktdesc{'local_ra'} = ' Send RA (rltime=0, rtime=10000) w/o SLL: '. 'TR1 (link-local) -> all-nodes multicast address'; unless(v6LC_2_2_14_C($Link0)) { exitFail($Link0); #NOTREACHED } exitPass($Link0); #NOTREACHED # # perldoc # ######################################################################## __END__ =head1 NAME =begin html
V6LC_2_2_14_C - Reachable Time Configuration (Routers Only) =end html =begin html=end html =head1 TARGET =begin html
Router=end html =head1 TOPOLOGY =begin html
=end html =head1 SETUP =begin htmlTN1 RUT | | ----+-------+--- Link0
Link0 global 3ffe:501:ffff:100::/64 link-local fe80::/64 RUT global 3ffe:501:ffff:100::<NutDef.Link0_addr> link-local fe80::<NutDef.Link0_addr> ether <NutDef.Link0_addr> TN1 global 3ffe:501:ffff:100::<TnDef.Link0_addr> link-local fe80::<TnDef.Link0_addr> ether <TnDef.Link0_addr>
=end html =head1 TEST PROCEDURE =begin html
- Verify that a host updates its BaseReachableTime variable and re-computes its ReachableTime variable upon receipt of a Router Advertisement with a specified Reachable Time.=end html =head1 JUDGEMENT =begin html
TN1 RUT | | | * Configure the RUT to transmit Router Advertisements with a Router Lifetime value of 0 seconds and a Reachable Time of 10 seconds. | | | ----> | Echo Request | <-- | NS (multicast) [Judgment #1] | ----> | NA | <---- | Echo Reply [Judgment #1] | | /// /// ReachableTime expires | | | ----> | Echo Request | <---- | Echo Reply | | | * Wait (DELAY_FIRST_PROBE_TIME) | | | <---- | NS [Judgment #2] | <---- | NS | <---- | NS | | V V
1. Configure the RUT to transmit Router Advertisements with a Router Lifetime value of 0 seconds and a Reachable Time of 10 seconds.2. Send Echo RequestIPv6 header source = TN1 (link-local) destination = RUT (link-local) Echo Request3. Observe NSIPv6 header hop limit = 255 source = RUT (link-local) destination = TN1 (solicited-node multicast address) NS target = TN1 (link-local) SLL option4. Send NAIPv6 header hop limit = 255 source = TN1 (link-local) destination = RUT (link-local) NA R = 0 S = 1 O = 1 target = TN1 (link-local) TLL option5. Observe Echo ReplyIPv6 header hop limit = 64 source = RUT (link-local) destination = TN1 (link-local) Echo Reply6. Repeat steps 2 through 5 for 40 seconds.7. Send Echo RequestIPv6 header source = TN1 (link-local) destination = RUT (link-local) Echo Request8. Observe Echo ReplyIPv6 header source = RUT (link-local) destination = TN1 (link-local) Echo Reply9. Wait (DELAY_FIRST_PROBE_TIME)Node constants: DELAY_FIRST_PROBE_TIME: 5 seconds10. Observe MAX_UNICAST_SOLICIT NSsIPv6 header hop limit = 255 source = RUT (link-local) destination = TN1 (link-local) NS target = TN1 (link-local) SLL optionNode constants: MAX_UNICAST_SOLICIT: 3 transmissions
[Judgment #1] The RUT should solicit for TN1's link-local address and transmit an Echo Reply.=end html =head1 CLEANUP =begin html
[Judgment #2] The RUT should transmit a Neighbor Solicitation with a Target Address of TN1's link-local address at an interval between 5 and 15 seconds.
The Cleanup procedure should cause the NUT to transition Neighbor Cache entries created in this test to state INCOMPLETE and remove any entries from its Default Router and Prefix Lists.=end html =cut # =head1 REFERENCE # # =begin html #
## # =end html # =pod =head1 REFERENCE =begin html# 6.3.2. Host Variables ### A host maintains certain Neighbor Discovery related variables in # addition to the data structures defined in Section 5.1. The specific # variable names are used for demonstration purposes only, and an # p implementation is not required to have them, so long as its external # behavior is consistent with that described in this document. ### These variables have default values that are overridden by # information received in Router Advertisement messages. The default # values are used when there is no router on the link or when all # received Router Advertisements have left a particular value # unspecified. ### The default values in this specification may be overridden by # specific documents that describe how IP operates over different link # layers. This rule allows Neighbor Discovery to operate over links # with widely varying performance characteristics. ### For each interface: ### LinkMTU The MTU of the link. # Default: The valued defined in the specific # document that describes how IPv6 operates over # the particular link layer (e.g., [IPv6-ETHER]). ### CurHopLimit The default hop limit to be used when sending # (unicast) IP packets. # Default: The value specified in the "Assigned # Numbers" RFC [ASSIGNED] that was in effect at the # time of implementation. ### BaseReachableTime # A base value used for computing the random # ReachableTime value. # Default: REACHABLE_TIME milliseconds. ### ReachableTime The time a neighbor is considered reachable after # receiving a reachability confirmation. # This value should be a uniformly-distributed # random value between MIN_RANDOM_FACTOR and # MAX_RANDOM_FACTOR times BaseReachableTime # milliseconds. A new random value should be # calculated when BaseReachableTime changes (due to # Router Advertisements) or at least every few # hours even if no Router Advertisements are # received. ### RetransTimer The time between retransmissions of Neighbor # Solicitation messages to a neighbor when # resolving the address or when probing the # reachability of a neighbor. # Default: RETRANS_TIMER milliseconds ##
=end html =cutRFC 2461 - Neighbor Discovery for IPv6