LLA_DAD_NAPostDAD_HL254 - check the process when NUT receives invalid DAD
NA(HopLimit==254)
with same Target address after sending DAD
NS.
All Node
LLA_DAD_NAPostDAD_HL254.seq [-tooloption ...] -pkt <packetdef> [addrconf=<addrconfname>]
-tooloption : v6eval tool option <packetdef> : packet definition file (v6eval tool option) <addrconfname>: how to configure address on NUT; boot/reboot
detail of v6eval tool option: see perldoc V6evalTool.pm, perldoc V6evalRemote.pm
Reboot NUT or Initialize interface of NUT or Initialize IPv6 stack of NUT.
The following tests are prepared in this test package. See INDEX file.
Test for all node
NUT assignes autoconfigured address, even though NUT receives invalid (HopLimit==254) DAD NA for same target address as NUT, while DAD process (after transmitting DAD NS).
Test sequence
TN NUT --------------------------------- Initialize NUT
Configure address of NUT (reboot or interface initialization etc...)
TN wait the DAD NS sent from NUT <=== Judgement #1: DAD NS ======= name: DADNS_from_NUT
==== Action #1: DAD NA =========> name: DADNA_from_TN_HL254
Wait for DupAddrDetectTransmits*RetransTimer
Check if NUT's address is configured ==== Action #2: SOL NS =========> name: NS_from_TN_SameTgt
<=== Judgement #2: SOL NA ======= name: NA_from_NUT, NA_from_NUT_woTLL
Test for all NODE
NUT performs Stateless Address Autoconfiguration(Link-local) on its interface
Judgement #1. NUT MUST transmit DAD NS for its autoconfigured Link-local address. name: DADNS_from_NUT src: ::0 dst: solnode[NUT's tentative Link-local] TargetAddress: NUT's tentative Link-local
Action #1. TN transmits invalid DAD NA which contains 254 as HopLimit name: DADNA_from_TN_HL254 src: TN's Link-local dst: allnode Hoplimit: 254 TargetAddress: NUT's Link-local RFlag: 0 SFlag: 0 OFlag: 1 TLLOPT: TN's MAC address
Action #2. TN transmits SOL NS to check if NUT's address is configured name: SOLNS_from_TN_SameTgt src: TN's Link-Local dst: solnode[NUT's Link-local] TargetAddress: NUT's Link-local
Judgement #2. NUT MUST transmit SOL NA for its autoconfigured Link-local address. name: NA_from_NUT, NA_from_NUT_woTLL src: NUT's Link-local dst: TN's Link-local TargetAddress: NUT's Link-local RFlag: 0 ( if NUT is a Router then 1) SFlag: 1 OFlag: 1 TLLOPT: NUT's MAC address
RFC2462
(omit)
5.4.1. Message Validation
A node MUST silently discard any Neighbor Solicitation or Advertisement message that does not pass the validity checks specified in [DISCOVERY]. A solicitation that passes these validity checks is called a valid solicitation or valid advertisement.
(omit)
RFC2461
(omit)
7.1.2. Validation of Neighbor Advertisements
A node MUST silently discard any received Neighbor Advertisement messages that do not satisfy all of the following validity checks:
- The IP Hop Limit field has a value of 255, i.e., the packet could not possibly have been forwarded by a router.
- If the message includes an IP Authentication Header, the message authenticates correctly.
- ICMP Checksum is valid.
- ICMP Code is 0.
- ICMP length (derived from the IP length) is 24 or more octets.
- Target Address is not a multicast address.
- If the IP Destination Address is a multicast address the Solicited flag is zero.
- All included options have a length that is greater than zero.
The contents of the Reserved field, and of any unrecognized options, MUST be ignored. Future, backward-compatible changes to the protocol may specify the contents of the Reserved field or add new options; backward-incompatible changes may use different Code values.
The contents of any defined options that are not specified to be used with Neighbor Advertisement messages MUST be ignored and the packet processed as normal. The only defined option that may appear is the Target Link-Layer Address option.
A Neighbor Advertisements that passes the validity checks is called a "valid advertisement".
(omit)
detail of v6eval tool option: see perldoc V6evalTool.pm, perldoc V6evalRemote.pm