rfc2765_4.1_trafficclass.seq - Verify IPv6 <-> IPv4 header translation in accordance with RFC2765 [SIIT]
Router
rfc2765_4.1_trafficclass.seq [-tooloption ...] -p rfc2765_4.1_trafficclass.def
Before this test starts, run initialize.seq.
This test verifies that NUT translates IPv6 Traffic Class to IPv4 TOS. Network Topology
Link0 -------------------------- | | TN NUT | | -------------------------- Link1
TN -- (Link0) -- NUT NUT -- (Link1) -- TN --------------------- ------------------------
1.[1-4] ===================> ICMPv6 Echo Request IPv6 Header src address : TN LINK1 IPv4 embedded IPv6 address dst address : TN LINK0 IPv4 embedded IPv6 address Traffic Class = 0,15,63,255 (4 tests) ICMPv6 echo request 1.[1-4] <<JUDGMENT>> ===================> ICMPv4 Echo request IPv4 Header src address : TN LINK1 IPv4 address dst address : TN LINK0 IPv4 address Don't Fragment = 1 More fragments = 0 Offset = 0 TOS = 0,15,63,255 or 0,0,0,0 ICMPv4 echo request
<< PASS >> TN (Link1) receive four ICMPv4 echo requests, with TOS field same as IPv6 Traffic class. << WARN >> TN (Link1) receive four ICMPv4 echo requests, with TOS = 0. << FAIL >> TN (Link0) does not receive four ICMPv4 echo requests, with TOS field = 0 or same as IPv6 Traffic class.
RFC2765
4.1. Translating IPv6 Headers into IPv4 Headers
If there is no IPv6 Fragment header the IPv4 header fields are set as follows:
Version: 4
Internet Header Length: 5 (no IPv4 options)
Type of Service and Precedence: By default, copied from the IPv6 Traffic Class (all 8 bits). According to [DIFFSERV] the semantics of the bits are identical in IPv4 and IPv6. However, in some IPv4 environments these bits might be used with the old semantics of "Type Of Service and Precedence". An implementation of a translator SHOULD provide the ability to ignore the IPv6 traffic class and always set the IPv4 "TOS" to zero.
perldoc V6evalTool