// // $Copyright$ // // $TAHI: ct/mip6/CN_IncorrectSeqNoAck.def,v 1.1.2.3 2001/12/25 04:40:19 akisada Exp $ // #define CAREOFADDR "3ffe:501:ffff:103:200:ff:fe00:000c" #define HOMEADDR "3ffe:501:ffff:102:200:ff:fe00:000c" #define CAREOFADDR1 "3ffe:501:ffff:104:200:ff:fe00:000c" #define CAREOFADDR2 "3ffe:501:ffff:105:200:ff:fe00:000c" #include "CN_Common.def" //================================================================ // Echo Request (Binding Update Option - SeqNumber is 0) FEM_icmp6_echo_request_exth( echorequest0, _HETHER_r12nut, { _SRC(v6(CAREOFADDR)); _DST(nut2v6(_GLOBAL0_UCAST_PRFX, 64)); }, { header = _HDR_IPV6_NAME(echorequest0); exthdr = ext_homeaddress; exthdr = ext_bindingupdate0; upper = _ICMPV6_NAME(echorequest0); }, { payload = data8; } ) Hdr_Destination ext_bindingupdate0 { option = opt_bindingupdate0; option = opt_pad4; } Opt_MIPBindingUpdate opt_bindingupdate0 { Lifetime = 0xffffffff; } //================================================================ // Echo Request (Binding Update Option - SeqNumber is 1) FEM_icmp6_echo_request_exth( echorequest1, _HETHER_r12nut, { _SRC(v6(CAREOFADDR1)); _DST(nut2v6(_GLOBAL0_UCAST_PRFX, 64)); }, { header = _HDR_IPV6_NAME(echorequest1); exthdr = ext_homeaddress; exthdr = ext_bindingupdate1; upper = _ICMPV6_NAME(echorequest1); }, { SequenceNumber = 1; payload = data8; } ) Hdr_Destination ext_bindingupdate1 { option = opt_bindingupdate1; option = opt_pad4; } Opt_MIPBindingUpdate opt_bindingupdate1 { SequenceNumber = 1; Lifetime = 0xffffffff; } //================================================================ // Binding Update Option - SeqNumber is 0 FEM_upp_no_next_header_exth( bindingupdate, _HETHER_r12nut, { _SRC(v6(CAREOFADDR2)); _DST(nut2v6(_GLOBAL0_UCAST_PRFX, 64)); }, { header = _HDR_IPV6_NAME(bindingupdate); exthdr = ext_homeaddress; exthdr = ext_bindingupdate0; upper = _UPP_NONEXT_NAME(bindingupdate); }, {} ) //================================================================ // Echo Reply from NUT to MN (with Binding Cache entry) FEM_icmp6_echo_reply_exth( echoreply0, _HETHER_nut2r1, { _SRC(nut2v6(_GLOBAL0_UCAST_PRFX, 64)); _DST(v6(CAREOFADDR)); }, { header = _HDR_IPV6_NAME(echoreply0); exthdr = ext_routing; upper = _ICMPV6_NAME(echoreply0); }, { payload = data8; } ) //================================================================ // Echo Reply from NUT to MN (with Binding Cache entry) FEM_icmp6_echo_reply_exth( echoreply1, _HETHER_nut2r1, { _SRC(nut2v6(_GLOBAL0_UCAST_PRFX, 64)); _DST(v6(CAREOFADDR1)); }, { header = _HDR_IPV6_NAME(echoreply1); exthdr = ext_routing; upper = _ICMPV6_NAME(echoreply1); }, { SequenceNumber = 1; payload = data8; } ) //================================================================ // Binding Acknowledgement FEM_upp_no_next_header_exth( bindingacknowledgement, _HETHER_nut2r1, { _SRC(nut2v6(_GLOBAL0_UCAST_PRFX, 64)); _DST(v6(CAREOFADDR2)); }, { header = _HDR_IPV6_NAME(bindingacknowledgement); exthdr = ext_routing; exthdr = ext_bindingacknowledgement; upper = _UPP_NONEXT_NAME(bindingacknowledgement); }, {} ) Hdr_Destination ext_bindingacknowledgement { option = opt_pad1; option = opt_bindingacknowledgement; } Opt_MIPBindingAck opt_bindingacknowledgement { Status = 141; SequenceNumber = 1; Lifetime = any; Refresh = any; }