Loading ttcn/AtsDSlite/AtsDSLite_TestCases.ttcn3 +88 −7 Original line number Diff line number Diff line Loading @@ -818,7 +818,7 @@ module AtsDSLite_TestCases { c_ipv4Hdr, PX_AFTR_GW_ADDRESS, // containing destination address indicating IPv6 AFTR GW address ?, v_firstFragment // containing fragment 1 v_firstFragment // containing first fragment )) { log("*** " & __SCOPE__ & ": First fragmented packet received. ***"); tc_ac.stop; Loading Loading @@ -862,7 +862,6 @@ module AtsDSLite_TestCases { function f_TC_DSLITE_B4_FRAG_BV_001_host(in integer p_hostId, in template(value) Ipv4Packet p_ipv4Packet) runs on HostComponent { // Local variables var Ipv4Packet v_ipv4Packet; // Preamble // Clause 'Initial conditions' Loading Loading @@ -919,7 +918,14 @@ module AtsDSLite_TestCases { testcase TC_DSLITE_B4_FRAG_BV_002() runs on DSLiteComponent system TestAdapter { // Local variables var integer v_host; var integer v_host := 0; var template (value) TcpPacket v_tcpMsg := m_tcp_packet(50000, 80, { httpPayload := int2oct(0, PX_DS_MTU) }); //leads to 2 fragments //TODO adapt values? var template(value) Ipv4Packet v_ipv4Packet := m_ipv4Packet_df(1, PX_HOST_V4_LIST_B4[v_host].srcAddress, PX_HOST_V4_LIST_B4[v_host].dstAddress, v_tcpMsg); f_finalyzeIpv4Packet( v_ipv4Packet, v_ipv4Packet ); // Test control Loading @@ -931,8 +937,8 @@ module AtsDSLite_TestCases { // Test adapter configuration // Start all components vc_aftrComponent.start(f_TC_DSLITE_B4_FRAG_BV_002_aftr()); vc_hostComponents[0].start(f_TC_DSLITE_B4_FRAG_BV_002_host(v_host)); vc_aftrComponent.start(f_TC_DSLITE_B4_FRAG_BV_001_aftr(v_ipv4Packet)); vc_hostComponents[0].start(f_TC_DSLITE_B4_FRAG_BV_001_host(v_host, v_ipv4Packet)); // Test Body // Clause 'when': Loading @@ -949,9 +955,15 @@ module AtsDSLite_TestCases { group f_TC_DSLITE_B4_FRAG_BV_002 { function f_TC_DSLITE_B4_FRAG_BV_002_aftr() runs on AFTRComponent { function f_TC_DSLITE_B4_FRAG_BV_002_aftr(in template(value) Ipv4Packet p_ipv4Packet) runs on AFTRComponent { // Local variables var boolean v_firstReceived := false; var boolean v_lastReceived := false; var template(present) Ipv4Packet v_firstFragment; var octetstring v_firstPart; var octetstring v_lastPart; var Ipv6Packet v_ipv6Packet; // Preamble // Clause 'Initial conditions' Loading @@ -961,6 +973,73 @@ module AtsDSLite_TestCases { // Test Body // Clause 'when': //construct encapsulated fragments v_firstFragment := p_ipv4Packet; v_firstFragment.ipv4Payload.rawPacket := ?; //receive encapsulated fragments tc_ac.start; alt { [v_firstReceived==false] aftrPort.receive( mdw_generalIpv6_extHdr_dst_ipv4Payload( c_fragHdr, PX_AFTR_GW_ADDRESS, // containing destination address indicating IPv6 AFTR GW address m_extHdrList_1Elem ( m_extHdr_fragmentHeader ( c_icmpHdr, c_fragOffset0, c_moreFragments, c_fragmentId1 ) ), v_firstFragment // containing first fragment )) -> value ipv6Packet { log("*** " & __SCOPE__ & ": First fragmented packet received. ***"); tc_ac.stop; v_firstReceived := true; v_firstPart := v_ipv6Packet.ipv6Payload.ipv4Packet.ipv4Payload.rawPacket; if (v_lastReceived == false) { tc_ac.start; repeat; } } [v_lastReceived==false] aftrPort.receive( m_generalIpv6_extHdr_data( c_fragHdr, PX_AFTR_GW_ADDRESS, // containing destination address indicating IPv6 AFTR GW address m_extHdrList_1Elem ( m_extHdr_fragmentHeader ( c_noNextHdr, c_fragOffset2, c_noMoreFragments, c_fragmentId1 ) ), ? // containing last fragment )) -> value ipv6Packet { log("*** " & __SCOPE__ & ": Last fragmented packet received. ***"); tc_ac.stop; v_lastReceived := true; v_lastPart := v_ipv6Packet.ipv6Payload.octetstringMsg; if (v_firstReceived == false) { tc_ac.start; repeat; } } [] tc_ac.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); log("*** " & __SCOPE__ & ": INCONC: Message was not received in time. ***"); } } if (match(v_firstPart & v_lastPart, p_ipv4Packet.ipv4Payload.rawPacket)) { f_selfOrClientSyncAndVerdict(c_tbDone, e_success); log("*** " & __SCOPE__ & ": PASS: IUT correctly forwarded fragmented packets. ***"); } else { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); log("*** " & __SCOPE__ & ": FAIL: IUT did not correctly forward fragmented packets. ***"); } // Postamble f_postamble_aftr(); Loading @@ -969,7 +1048,7 @@ module AtsDSLite_TestCases { } // End of fucntion f_TC_DSLITE_B4_FRAG_BV_002_aftr function f_TC_DSLITE_B4_FRAG_BV_002_host(in integer p_hostId) runs on HostComponent { function f_TC_DSLITE_B4_FRAG_BV_002_host(in integer p_hostId, in template(value) Ipv4Packet p_ipv4Packet) runs on HostComponent { // Local variables Loading @@ -981,6 +1060,8 @@ module AtsDSLite_TestCases { // Test Body // Clause 'when': ipv4Port.send(p_ipv4Packet); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_postamble_host(); Loading Loading
ttcn/AtsDSlite/AtsDSLite_TestCases.ttcn3 +88 −7 Original line number Diff line number Diff line Loading @@ -818,7 +818,7 @@ module AtsDSLite_TestCases { c_ipv4Hdr, PX_AFTR_GW_ADDRESS, // containing destination address indicating IPv6 AFTR GW address ?, v_firstFragment // containing fragment 1 v_firstFragment // containing first fragment )) { log("*** " & __SCOPE__ & ": First fragmented packet received. ***"); tc_ac.stop; Loading Loading @@ -862,7 +862,6 @@ module AtsDSLite_TestCases { function f_TC_DSLITE_B4_FRAG_BV_001_host(in integer p_hostId, in template(value) Ipv4Packet p_ipv4Packet) runs on HostComponent { // Local variables var Ipv4Packet v_ipv4Packet; // Preamble // Clause 'Initial conditions' Loading Loading @@ -919,7 +918,14 @@ module AtsDSLite_TestCases { testcase TC_DSLITE_B4_FRAG_BV_002() runs on DSLiteComponent system TestAdapter { // Local variables var integer v_host; var integer v_host := 0; var template (value) TcpPacket v_tcpMsg := m_tcp_packet(50000, 80, { httpPayload := int2oct(0, PX_DS_MTU) }); //leads to 2 fragments //TODO adapt values? var template(value) Ipv4Packet v_ipv4Packet := m_ipv4Packet_df(1, PX_HOST_V4_LIST_B4[v_host].srcAddress, PX_HOST_V4_LIST_B4[v_host].dstAddress, v_tcpMsg); f_finalyzeIpv4Packet( v_ipv4Packet, v_ipv4Packet ); // Test control Loading @@ -931,8 +937,8 @@ module AtsDSLite_TestCases { // Test adapter configuration // Start all components vc_aftrComponent.start(f_TC_DSLITE_B4_FRAG_BV_002_aftr()); vc_hostComponents[0].start(f_TC_DSLITE_B4_FRAG_BV_002_host(v_host)); vc_aftrComponent.start(f_TC_DSLITE_B4_FRAG_BV_001_aftr(v_ipv4Packet)); vc_hostComponents[0].start(f_TC_DSLITE_B4_FRAG_BV_001_host(v_host, v_ipv4Packet)); // Test Body // Clause 'when': Loading @@ -949,9 +955,15 @@ module AtsDSLite_TestCases { group f_TC_DSLITE_B4_FRAG_BV_002 { function f_TC_DSLITE_B4_FRAG_BV_002_aftr() runs on AFTRComponent { function f_TC_DSLITE_B4_FRAG_BV_002_aftr(in template(value) Ipv4Packet p_ipv4Packet) runs on AFTRComponent { // Local variables var boolean v_firstReceived := false; var boolean v_lastReceived := false; var template(present) Ipv4Packet v_firstFragment; var octetstring v_firstPart; var octetstring v_lastPart; var Ipv6Packet v_ipv6Packet; // Preamble // Clause 'Initial conditions' Loading @@ -961,6 +973,73 @@ module AtsDSLite_TestCases { // Test Body // Clause 'when': //construct encapsulated fragments v_firstFragment := p_ipv4Packet; v_firstFragment.ipv4Payload.rawPacket := ?; //receive encapsulated fragments tc_ac.start; alt { [v_firstReceived==false] aftrPort.receive( mdw_generalIpv6_extHdr_dst_ipv4Payload( c_fragHdr, PX_AFTR_GW_ADDRESS, // containing destination address indicating IPv6 AFTR GW address m_extHdrList_1Elem ( m_extHdr_fragmentHeader ( c_icmpHdr, c_fragOffset0, c_moreFragments, c_fragmentId1 ) ), v_firstFragment // containing first fragment )) -> value ipv6Packet { log("*** " & __SCOPE__ & ": First fragmented packet received. ***"); tc_ac.stop; v_firstReceived := true; v_firstPart := v_ipv6Packet.ipv6Payload.ipv4Packet.ipv4Payload.rawPacket; if (v_lastReceived == false) { tc_ac.start; repeat; } } [v_lastReceived==false] aftrPort.receive( m_generalIpv6_extHdr_data( c_fragHdr, PX_AFTR_GW_ADDRESS, // containing destination address indicating IPv6 AFTR GW address m_extHdrList_1Elem ( m_extHdr_fragmentHeader ( c_noNextHdr, c_fragOffset2, c_noMoreFragments, c_fragmentId1 ) ), ? // containing last fragment )) -> value ipv6Packet { log("*** " & __SCOPE__ & ": Last fragmented packet received. ***"); tc_ac.stop; v_lastReceived := true; v_lastPart := v_ipv6Packet.ipv6Payload.octetstringMsg; if (v_firstReceived == false) { tc_ac.start; repeat; } } [] tc_ac.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); log("*** " & __SCOPE__ & ": INCONC: Message was not received in time. ***"); } } if (match(v_firstPart & v_lastPart, p_ipv4Packet.ipv4Payload.rawPacket)) { f_selfOrClientSyncAndVerdict(c_tbDone, e_success); log("*** " & __SCOPE__ & ": PASS: IUT correctly forwarded fragmented packets. ***"); } else { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); log("*** " & __SCOPE__ & ": FAIL: IUT did not correctly forward fragmented packets. ***"); } // Postamble f_postamble_aftr(); Loading @@ -969,7 +1048,7 @@ module AtsDSLite_TestCases { } // End of fucntion f_TC_DSLITE_B4_FRAG_BV_002_aftr function f_TC_DSLITE_B4_FRAG_BV_002_host(in integer p_hostId) runs on HostComponent { function f_TC_DSLITE_B4_FRAG_BV_002_host(in integer p_hostId, in template(value) Ipv4Packet p_ipv4Packet) runs on HostComponent { // Local variables Loading @@ -981,6 +1060,8 @@ module AtsDSLite_TestCases { // Test Body // Clause 'when': ipv4Port.send(p_ipv4Packet); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_postamble_host(); Loading