#!/usr/bin/perl # # $Copyright$ # # $TAHI: ct/mip6-cn-19/BU_SEQ_A0.seq,v 1.5 2003/01/12 08:00:54 akisada Exp $ # ################################################################ BEGIN {$V6evalTool::TestVersion = '$Name: $';} use V6evalTool; use MIP6; my $IF0 = 'Link0'; my $NutType = $V6evalTool::NutDef{'Type'}; vCapture($IF0); #--------------------------------------------------------------# vLogHTML('INITIALIZATION
'); vClear($IF0); vLogHTML('Update care-of address - LinkY
'); MIP6_UpdateCoA('./MIP6.work', 'CAREOFADDR0'); vClear($IF0); vLogHTML('Check Reachability
'); if(MIP6_CheckReachability($IF0) < 0) { vLogHTML('Can\'t get Echo Reply
'); exit($V6evalTool::exitFail); } vClear($IF0); vLogHTML('Return Routability Procedure
'); my %rr = MIP6_ReturnRoutability($IF0); if($rr{'status'} < 0) { vLogHTML('Can\'t complete RR
'); exit($V6evalTool::exitFail); } # 0 - 8191 # 8192 - 16383 # 16384 - 32767 # 32768 - 49151 # 49152 - 57343 # 57344 - 65535 vClear($IF0); vLogHTML('Requests to Cache a Binding
'); my $sn = 16384; my $a = 0; my $lt = 0xffff; if(MIP6_ProcessingBindingsNoAck($IF0, $sn, $a, $lt, %rr) < 0) { vLogHTML('BA SHOULD NOT be sent.
'); exit($V6evalTool::exitWarn); } vClear($IF0); vLogHTML('Check Binding Cache
'); if(MIP6_CheckBindingCache($IF0) < 0) { vLogHTML('Can\'t get Echo Reply
'); exit($V6evalTool::exitFail); } #--------------------------------------------------------------# vLogHTML('TEST PROCEDURE
'); vClear($IF0); vLogHTML('Update care-of address - LinkZ
'); MIP6_UpdateCoA('./MIP6.work', 'CAREOFADDR1'); $pktdesc{'echorequest_hao'} = ' Send Echo Request w/ HaO: MN\'\' (LinkZ) -> NUT (Link0) (global)'; $pktdesc{'echoreply_rh'} = ' Recv Echo Reply w/ RH: NUT (Link0) -> MN\'\' (LinkZ) (global)'; $pktdesc{'CoTI'} = ' Send CoTI: MN\'\' (LinkZ) -> NUT (Link0) (global)'; $pktdesc{'CoT'} = ' Recv CoT: NUT (Link0) -> MN\'\' (LinkZ) (global)'; $pktdesc{'BU'} = ' Send BU: MN\'\' (LinkZ) -> NUT (Link0) (global)'; $pktdesc{'BA'} = ' Recv BA: NUT (Link0) -> MN\'\' (LinkZ) (global)'; $pktdesc{'BE_NoBinding'} = ' Recv BE Status=1: NUT (Link0) -> MN\'\' (LinkZ) (global)'; vClear($IF0); vLogHTML('Return Routability Procedure
'); my %rr = MIP6_ReturnRoutability($IF0); if($rr{'status'} < 0) { vLogHTML('Can\'t complete RR
'); exit($V6evalTool::exitFail); } vClear($IF0); vLogHTML('Requests to Cache a Binding
'); $sn = 32768; $a = 0; $lt = 0xffff; if(MIP6_ProcessingBindingsNoAck($IF0, $sn, $a, $lt, %rr) < 0) { vLogHTML('Can\'t get BA
'); exit($V6evalTool::exitFail); } vClear($IF0); vLogHTML('Check Binding Cache
'); if(MIP6_CheckBindingCache($IF0) < 0) { vLogHTML('Can\'t get Echo Reply
'); exit($V6evalTool::exitFail); } vStop($IF0); vLogHTML('PASS
'); exit($V6evalTool::exitPass); # # perldoc # ################################################################ __END__ =head1 NAME BU_SEQ_A0 - Valid sequence number A=0 =head1 TARGET =begin html
Host/Router
=end html =head1 SYNOPSIS =begin html
BU_SEQ_A0.seq [-tooloption ...] -pkt BU_SEQ_A0.def
-tooloption: v6eval tool option
=end html =head1 TOPOLOGY =begin html
                                        MN''
                                        |
                        --------+-------+------- LinkZ
                                |
                                R2      MN'
                                |       |
                --------+-------+-------+------- LinkY
                        |
                        R1              MN
                        |               |
        --------+-------+---------------+------- LinkX
                |
       NUT      R0
        |       |
--------+-------+------------------------------- Link0
Link0 global 3ffe:501:ffff:100::/64  
LinkX global 3ffe:501:ffff:102::/64 home link
LinkY global 3ffe:501:ffff:103::/64 foreign link
LinkZ global 3ffe:501:ffff:104::/64 foreign link
R0(Link0) global 3ffe:501:ffff:100::a0a0  
link-local fe80::200:ff:fe00:a0a0
ether 00:00:00:00:a0:a0
MN global 3ffe:501:ffff:102:200:ff:fe00:10 home address
MN' global 3ffe:501:ffff:103:200:ff:fe00:10 care-of address
MN'' global 3ffe:501:ffff:104:200:ff:fe00:10 care-of address
=end html =head1 INITIALIZATION =begin html
NUT      MN      MN'
 |       |       |
 | <------------ | Echo Request
 | ------------> | Echo Reply
 |       |       |
 | <---- |       | HoTI
 | <------------ | CoTI
 | ----> |       | HoT
 | ------------> | CoT
 |       |       |
 | <------------ | BU (SN: 16384)
 | --X   |       | no response
 |       |       |
 | <------------ | Echo Request w/ HaO
 | ------------> | Echo Reply w/ RH
 |       |       |

 1. Send Echo Request
 2. Wait Echo Reply
 3. Receive Echo Reply
 4. Send HoTI & CoTI
 5. Wait HoT & CoT
 6. Receive HoT & CoT
 7. Send BU
 8. No response
 9. Send Echo Request w/ HaO
10. Wait Echo Reply w/ RH
11. Receive Echo Reply w/ RH
=end html =head1 TEST PROCEDURE =begin html
NUT      MN      MN''
 |       |       |
 | <---- |       | HoTI
 | <------------ | CoTI
 | ----> |       | HoT (*1)
 | ------------> | CoT (*2)
 |       |       |
 | <------------ | BU (BU: 32768)
 | --X   |       | no response (*3)
 |       |       |
 | <------------ | Echo Request w/ HaO
 | ------------> | Echo Reply w/ RH (*4)
 |       |       |

1. Send HoTI & CoTI
2. Wait HoT & CoT
3. Receive HoT & CoT (*1) (*2)
4. Send BU
5. No response (*3)
6. Send Echo Request w/ HaO
7. Wait Echo Request w/ HaO
8. Receive Echo Request w/ HaO (*4)
=end html =head1 JUDGEMENT =begin html
(*1) PASS: MN receives HoT
(*2) PASS: MN'' receives CoT
(*3) PASS: no response
     WARN: MN'' receives BA
     FAIL: Lifetime is grater than MAX_RR_BINDING_LIFE
     FAIL: Recv unexpect packets
(*4) PASS: MN'' receives Echo Request w/ HaO
=end html =head1 SEE ALSO =begin html
MIP6.pm
MIP6.def
=end html =cut