// SCTP Conformance Test Suite Implementation // (C) Copyright Fujitsu Ltd. 2008, 2009 // // This file is part of the SCTP Conformance Test Suite implementation. // // The SCTP Conformance Test Suite implementation is free software; // you can redistribute it and/or modify it under the terms of // the GNU General Public License version 2 as published by // the Free Software Foundation. // // The SCTP Conformance Test Suite implementation is distributed in the // hope that it will be useful, but WITHOUT ANY WARRANTY; without even // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. See the GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with GNU CC; see the file COPYING. If not, write to // the Free Software Foundation, 59 Temple Place - Suite 330, // Boston, MA 02111-1307, USA. // // Please send any bug reports or fixes you make to the // email address(es): // networktest sctp // // Or submit a bug report through the following website: // http://networktest.sourceforge.net/ // // Written or modified by: // Hiroaki Kago // Wei Yongjun // // Any bugs reported given to us we will try to fix... any fixes shared will // be incorporated into the next SCTP release. // #define DEFAULT_DATA_LEN 1024 #include "../common/STD_PKT_COMMON.def" #ifndef SACK #define SACK 1 #endif #define DEFINE_DATA(INDEX) \ PKG_SCTP_SHORT_RECV( \ sctp_chunk_data_##INDEX, \ { \ chunk = chunk_data_##INDEX; \ } \ ) \ \ CHUNK_DATA chunk_data_##INDEX { \ UFlag = any; \ BFlag = 1; \ EFlag = 1; \ TSN = SACK + INDEX - 1; \ Identifier = any; \ SequenceNumber = any; \ Protocol = any; \ payload = any; \ } #define DEFINE_SACK(INDEX, START, END) \ PKG_SCTP_SHORT_SEND( \ sctp_chunk_sack_##INDEX, \ { \ chunk = chunk_sack_##INDEX; \ } \ ) \ \ CHUNK_SACK chunk_sack_##INDEX { \ ACK = SACK - 1; \ AdvRecvWindow = ARWND; \ NumOfGapAck = 1; \ NumOfDupTSN = 0; \ GapAckBlockStart = START; \ GapAckBlockEnd = END; \ } #define DEFINE_SACK_S(INDEX) \ PKG_SCTP_SHORT_SEND( \ sctp_chunk_sack_##INDEX, \ { \ chunk = chunk_sack_##INDEX; \ } \ ) \ \ CHUNK_SACK chunk_sack_##INDEX { \ ACK = SACK + INDEX - 1; \ AdvRecvWindow = ARWND; \ NumOfGapAck = 0; \ NumOfDupTSN = 0; \ } DEFINE_DATA(1) DEFINE_DATA(2) DEFINE_DATA(3) DEFINE_DATA(4) DEFINE_DATA(5) DEFINE_SACK(1, 2, 2) DEFINE_SACK(2, 2, 3) DEFINE_SACK(3, 2, 4) DEFINE_SACK_S(4) DEFINE_SACK_S(5)