DADSuccess_DADPostSendNS - check if NUT does not detect address duplication
in state DADPostSendNS(after
sending out first DAD NS)
Host and Router
DADSuccess_DADPostSendNS.seq [-tooloption ...] -pkt <packetdef> [addrconf=<addrconfname>] [init=<initname>,<initname>...] [send=<sendname>] [sd=<sdopt>]
-tooloption : v6eval tool option <packetdef> : packet definition file (v6eval tool option) <addrconfname>: how to configure address on NUT; boot/manual+/ra <initname> : how to initialize NUT; DADSuccess_boot/DADFail_boot/ra <sendname> : send packet or not when NUT performs DAD; none/send <sdopt> : debug options
detail of v6eval tool option: see perldoc V6evalTool.pm, perldoc V6evalRemote.pm detail of parameters: see Test sequence for IPv6 Stateless Address Autoconfiguration.
detail of Initialization: see Test sequence for IPv6 Stateless Address Autoconfiguration.
The following tests are prepared in this test package. See INDEX file.
Test for a Host and Router
DAD Success when NUT received no packet on Stateless Link-local address autoconfiguration DAD Success when NUT received Invalid NS (Dst addr is Allnodes) on Stateless Link-local address autoconfiguration DAD Success when NUT received Invalid NS (Dst addr is Tentative) on Stateless Link-local address autoconfiguration DAD Success when NUT received Invalid NS (Hoplimit != 255) on Stateless Link-local address autoconfiguration DAD Success when NUT received Invalid NS (Include SLL opt) on Stateless Link-local address autoconfiguration DAD Success when NUT received NS (Src addr is Unicast) on Stateless Link-local address autoconfiguration DAD Success when NUT received Invalid NA (Hoplimit != 255) on Stateless Link-local address autoconfiguration DAD Success when NUT received Invalid NA (S flag == 1) on Stateless Link-local address autoconfiguration DAD Success when NUT received NA (Dst addr is unicast) on Stateless Link-local address autoconfiguration
DAD Success when NUT received no packet on Manual Link-local address configuration DAD Success when NUT received no packet on Manual Global address configuration DAD Success when NUT received Invalid NS (Dst addr is Allnodes) on Manual Global address configuration DAD Success when NUT received Invalid NS (Dst addr is Tentative) on Manual Global address configuration
Test sequence
TN(or X) NUT ------------------------------ Initialize NUT (see ...)
Configure address of NUT (boot or manual or ra, see ...)
TN wait the DAD NS sends from NUT <=== Judgement #1: DAD NS ==== name: dadns_from_NUT
Immediately (within $RetransTimerSec [sec]) send strange DAD Packet to NUT to check if NUT ignore this. ==== Action #1: DAD NS ====> name: dadpkt_to_NUT
Wait for NUT to finish DAD. (sleep $RetransTimerSec [sec])
Check if NUT's address is configured ==== Action #2: DAD NS ====> name: chkconf_dadns_to_NUT
DAD NA come from NUT because NUT does not detect address duplication and address is configured. <=== Judgement #2: DAD NA ==== name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router)
Test for a Host and Router
DAD Success when NUT received no packet on Stateless Link-local address autoconfiguration
-pkt LLOCAL.def addrconf=boot send=none
Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration. name: dadns_from_NUT src: ::0 dst: solnode[NUT's tentative Link-local address] TargetAddress: NUT's tentative Link-local address
Action #1. Send No Packet to NUT (NUT does not detect address duplication).
Action #2. Send DAD NS to check if NUT's address is configured name: chkconf_dadns_to_NUT src: ::0 dst: solnode[NUT's Link-local address] TargetAddress: NUT's Link-local address
Judgement #2. DAD NA must come from NUT because NUT does not detect address duplication. name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router) src: NUT's Link-local address dst: allnodes multicast TargetAddress: NUT's Link-local address OFlag: 1 RFlag: 0 ( if NUT is a Router then 1)
DAD Success when NUT received Invalid NS (Dst addr is Allnodes) on Stateless Link-local address autoconfiguration
-pkt LLOCAL_invalNS_dst_allnodes.def addrconf=boot
Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration. name: dadns_from_NUT src: ::0 dst: solnode[NUT's tentative Link-local address] TargetAddress: NUT's tentative Link-local address
Action #1. Send Invalid DAD NS to NUT to check if NUT ignore this. name: dadpkt_to_NUT src: ::0 dst: allnodes multicast (invalid, it must be solnode) TargetAddress: NUT's Link-local address
Action #2. Send DAD NS to check if NUT's address is not configured name: chkconf_dadns_to_NUT src: ::0 dst: solnode[NUT's Link-local address] TargetAddress: NUT's Link-local address
Judgement #2. DAD NA must not come from NUT because NUT detect address duplication. name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router) src: NUT's Link-local address dst: allnodes multicast TargetAddress: NUT's Link-local address OFlag: 1 RFlag: 0 ( if NUT is a Router then 1)
DAD Success when NUT received Invalid NS (Dst addr is Tentative) on Stateless Link-local address autoconfiguration
-pkt LLOCAL_invalNS_dst_tentative.def addrconf=boot
Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration. name: dadns_from_NUT src: ::0 dst: solnode[NUT's tentative Link-local address] TargetAddress: NUT's tentative Link-local address
Action #1. Send Invalid DAD NS to NUT to check if NUT ignore this. name: dadpkt_to_NUT src: ::0 dst: NUT's tentative address (invalid, it must be solnode) TargetAddress: NUT's tentative Link-local address
Action #2. Send DAD NS to check if NUT's address is configured name: chkconf_dadns_to_NUT src: ::0 dst: solnode[NUT's Link-local address] TargetAddress: NUT's Link-local address
Judgement #2. DAD NA must come from NUT because NUT does not detect address duplication. name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router) src: NUT's Link-local address dst: allnodes multicast TargetAddress: NUT's Link-local address OFlag: 1 RFlag: 0 ( if NUT is a Router then 1)
DAD Success when NUT received Invalid NS (Hoplimit != 255) on Stateless Link-local address autoconfiguration
-pkt LLOCAL_invalNS_hoplimit.def addrconf=boot
Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration. name: dadns_from_NUT src: ::0 dst: solnode[NUT's tentative Link-local address] TargetAddress: NUT's tentative Link-local address
Action #1. Send Invalid DAD NS to NUT to check if NUT ignore this. name: dadpkt_to_NUT src: ::0 dst: solnode[NUT's tentative Link-local address] hoplimit: 64 (invalid, it must be 255) TargetAddress: NUT's tentative Link-local address
Action #2. Send DAD NS to check if NUT's address is configured name: chkconf_dadns_to_NUT src: ::0 dst: solnode[NUT's Link-local address] TargetAddress: NUT's Link-local address
Judgement #2. DAD NA must come from NUT because NUT does not detect address duplication. name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router) src: NUT's Link-local address dst: allnodes multicast TargetAddress: NUT's Link-local address OFlag: 1 RFlag: 0 ( if NUT is a Router then 1)
DAD Success when NUT received Invalid NS (Include SLL opt) on Stateless Link-local address autoconfiguration
-pkt LLOCAL_invalNS_sllopt.def addrconf=boot
Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration. name: dadns_from_NUT src: ::0 dst: solnode[NUT's tentative Link-local address] TargetAddress: NUT's tentative Link-local address
Action #1. Send Invalid DAD NS to NUT to check if NUT ignore this. name: dadpkt_to_NUT src: ::0 dst: solnode[NUT's tentative Link-local address] TargetAddress: NUT's tentative Link-local address SLL option exists (invalid, it must not exists SLL option)
Action #2. Send DAD NS to check if NUT's address is configured name: chkconf_dadns_to_NUT src: ::0 dst: solnode[NUT's Link-local address] TargetAddress: NUT's Link-local address
Judgement #2. DAD NA must come from NUT because NUT does not detect address duplication. name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router) src: NUT's Link-local address dst: allnodes multicast TargetAddress: NUT's Link-local address OFlag: 1 RFlag: 0 ( if NUT is a Router then 1)
DAD Success when NUT received NS (Src addr is Unicast) on Stateless Link-local address autoconfiguration
-pkt LLOCAL_irregNS_src_ucast.def addrconf=boot
Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration. name: dadns_from_NUT src: ::0 dst: solnode[NUT's tentative Link-local address] TargetAddress: NUT's tentative Link-local address
Action #1. Send strange DAD NS to NUT to check if NUT ignore this. name: dadpkt_to_NUT src: unicast address (NUT's tentative address) (invalid, it must be ::0) dst: solnode[NUT's tentative Link-local address] TargetAddress: NUT's tentative Link-local address
Action #2. Send DAD NS to check if NUT's address is configured name: chkconf_dadns_to_NUT src: ::0 dst: solnode[NUT's Link-local address] TargetAddress: NUT's Link-local address
Judgement #2. DAD NA come from NUT because NUT does not detect address duplication. name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router) src: NUT's Link-local address dst: allnodes multicast TargetAddress: NUT's Link-local address OFlag: 1 RFlag: 0 ( if NUT is a Router then 1)
DAD Success when NUT received Invalid NA (Hoplimit != 255) on Stateless Link-local address autoconfiguration
-pkt LLOCAL_invalNA_hoplimit.def addrconf=boot
Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration. name: dadns_from_NUT src: ::0 dst: solnode[NUT's tentative Link-local address] TargetAddress: NUT's tentative Link-local address
Action #1. Send Invalid DAD NA to NUT to check if NUT ignore this. name: dadpkt_to_NUT ether src: different as NUT's MAC address src: NUT's tentative Link-local address dst: allnodes multicast TargetAddress: NUT's tentative Link-local address hoplimit: 64 (invalid, it must be 255)
Action #2. Send DAD NS to check if NUT's address is configured name: chkconf_dadns_to_NUT src: ::0 dst: solnode[NUT's Link-local address] TargetAddress: NUT's Link-local address
Judgement #2. DAD NA come from NUT because NUT does not detect address duplication. name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router) src: NUT's Link-local address dst: allnodes multicast TargetAddress: NUT's Link-local address OFlag: 1 RFlag: 0 ( if NUT is a Router then 1)
DAD Success when NUT received Invalid NA (S flag == 1) on Stateless Link-local address autoconfiguration
-pkt LLOCAL_invalNA_sflag1.def addrconf=boot
Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration. name: dadns_from_NUT src: ::0 dst: solnode[NUT's tentative Link-local address] TargetAddress: NUT's tentative Link-local address
Action #1. Send Invalid DAD NA to NUT to check if NUT ignore this. name: dadpkt_to_NUT ether src: different as NUT's MAC address src: NUT's tentative Link-local address dst: allnodes multicast TargetAddress: NUT's tentative Link-local address SFlag: 1 ( invalid, must be zero if DestinationAddress is a multicast)
Action #2. Send DAD NS to check if NUT's address is configured name: chkconf_dadns_to_NUT src: ::0 dst: solnode[NUT's Link-local address] TargetAddress: NUT's Link-local address
Judgement #2. DAD NA come from NUT because NUT does not detect address duplication. name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router) src: NUT's Link-local address dst: allnodes multicast TargetAddress: NUT's Link-local address OFlag: 1 RFlag: 0 ( if NUT is a Router then 1)
DAD Success when NUT received NA (Dst addr is unicast) on Stateless Link-local address autoconfiguration
-pkt LLOCAL_unspecNA_dst_ucast.def addrconf=boot
Judgement #1. DAD NS must come from NUT on Link-local address autoconfiguration. name: dadns_from_NUT src: ::0 dst: solnode[NUT's tentative Link-local address] TargetAddress: NUT's tentative Link-local address
Action #1. Send strange DAD NA to NUT to check if NUT ignore this. name: dadpkt_to_NUT ether src: different as NUT's MAC address src: NUT's Link-local address dst: NUT's Link-local address ... Regularly dst is allnodes multicast. At this point, NUT doesnot assign the address, so NUT cannot accept the packet and cannot detect address duplication. It's not specified in RFC but looks like natural. TargetAddress: NUT's tentative Link-local address
Action #2. Send DAD NS to check if NUT's address is configured name: chkconf_dadns_to_NUT src: ::0 dst: solnode[NUT's Link-local address] TargetAddress: NUT's Link-local address
Judgement #2. DAD NA come from NUT because NUT does not detect address duplication. name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router) src: NUT's Link-local address dst: allnodes multicast TargetAddress: NUT's Link-local address OFlag: 1 RFlag: 0 ( if NUT is a Router then 1)
DAD Success when NUT received no packet on Manual Link-local address configuration
-pkt LLOCAL0A0N.def addrconf=manual+_LLOCAL0A0N_UCAST init=DADSuccess_boot send=none
Judgement #1. DAD NS must come from NUT on Manual Link-local address configuration. name: dadns_from_NUT src: ::0 dst: solnode[NUT's tentative _LLOCAL0A0N_UCAST_ADDR] TargetAddress: NUT's tentative _LLOCAL0A0N_UCAST_ADDR
Action #1. Send No Packet to NUT (NUT does not detect address duplication).
Action #2. Send DAD NS to check if NUT's address is configured name: chkconf_dadns_to_NUT src: ::0 dst: solnode[NUT's _LLOCAL0A0N_UCAST_ADDR] TargetAddress: NUT's _LLOCAL0A0N_UCAST_ADDR
Judgement #2. DAD NA must come from NUT because NUT does not detect address duplication. name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router) src: NUT's _LLOCAL0A0N_UCAST_ADDR dst: allnodes multicast TargetAddress: NUT's _LLOCAL0A0N_UCAST_ADDR OFlag: 1 RFlag: 0 ( if NUT is a Router then 1)
DAD Success when NUT received no packet on Manual Global address configuration
-pkt GLOBAL0A0N.def addrconf=manual+_GLOBAL0A0N_UCAST init=DADSuccess_boot send=none
Judgement #1. DAD NS must come from NUT on Manual Link-local address configuration. name: dadns_from_NUT src: ::0 dst: solnode[NUT's tentative _GLOBAL0A0N_UCAST_ADDR] TargetAddress: NUT's tentative _GLOBAL0A0N_UCAST_ADDR
Action #1. Send No Packet to NUT (NUT does not detect address duplication).
Action #2. Send DAD NS to check if NUT's address is configured name: chkconf_dadns_to_NUT src: ::0 dst: solnode[NUT's _GLOBAL0A0N_UCAST_ADDR] TargetAddress: NUT's _GLOBAL0A0N_UCAST_ADDR
Judgement #2. DAD NA must come from NUT because NUT does not detect address duplication. name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router) src: NUT's _GLOBAL0A0N_UCAST_ADDR dst: allnodes multicast TargetAddress: NUT's _GLOBAL0A0N_UCAST_ADDR OFlag: 1 RFlag: 0 ( if NUT is a Router then 1)
DAD Success when NUT received Invalid NS (Dst addr is Allnodes) on Manual Global address configuration
-pkt GLOBAL0A0N_invalNS_dst_allnodes.def addrconf=manual+_GLOBAL0A0N_UCAST init=DADSuccess_boot
Judgement #1. DAD NS must come from NUT on Manual Link-local address configuration. name: dadns_from_NUT src: ::0 dst: solnode[NUT's tentative _GLOBAL0A0N_UCAST_ADDR] TargetAddress: NUT's tentative _GLOBAL0A0N_UCAST_ADDR
Action #1. Send Invalid DAD NS to NUT to check if NUT ignore this. name: dadpkt_to_NUT src: ::0 dst: allnodes multicast (invalid, it must be solnode) TargetAddress: NUT's tentative _GLOBAL0A0N_UCAST_ADDR
Action #2. Send DAD NS to check if NUT's address is configured name: chkconf_dadns_to_NUT src: ::0 dst: solnode[NUT's _GLOBAL0A0N_UCAST_ADDR] TargetAddress: NUT's _GLOBAL0A0N_UCAST_ADDR
Judgement #2. DAD NA must come from NUT because NUT does not detect address duplication. name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router) src: NUT's _GLOBAL0A0N_UCAST_ADDR dst: allnodes multicast TargetAddress: NUT's _GLOBAL0A0N_UCAST_ADDR OFlag: 1 RFlag: 0 ( if NUT is a Router then 1)
DAD Success when NUT received Invalid NS (Dst addr is Tentative) on Manual Global address configuration
-pkt GLOBAL0A0N_invalNS_dst_tentative.def addrconf=manual+_GLOBAL0A0N_UCAST init=DADSuccess_boot
Judgement #1. DAD NS must come from NUT on Manual Link-local address configuration. name: dadns_from_NUT src: ::0 dst: solnode[NUT's tentative _GLOBAL0A0N_UCAST_ADDR] TargetAddress: NUT's tentative _GLOBAL0A0N_UCAST_ADDR
Action #1. Send Invalid DAD NS to NUT to check if NUT ignore this. name: dadpkt_to_NUT src: ::0 dst: NUT's tentative address _GLOBAL0A0N_UCAST_ADDR (invalid, it must be solnode) TargetAddress: NUT's tentative _GLOBAL0A0N_UCAST_ADDR
Action #2. Send DAD NS to check if NUT's address is configured name: chkconf_dadns_to_NUT src: ::0 dst: solnode[NUT's _GLOBAL0A0N_UCAST_ADDR] TargetAddress: NUT's _GLOBAL0A0N_UCAST_ADDR
Judgement #2. DAD NA must come from NUT because NUT does not detect address duplication. name: chkconf_dadna_from_NUT (or chkconf_dadna_from_NUT_rf1 if NUT is a Router) src: NUT's _GLOBAL0A0N_UCAST_ADDR dst: allnodes multicast TargetAddress: NUT's _GLOBAL0A0N_UCAST_ADDR OFlag: 1 RFlag: 0 ( if NUT is a Router then 1)
detail of v6eval tool option: see perldoc V6evalTool.pm, perldoc V6evalRemote.pm detail of parameters: see Test sequence for IPv6 Stateless Address Autoconfiguration.