Download this file

ControlPDU.msg    94 lines (71 with data), 2.1 kB

//
// Copyright © 2014 PRISTINE Consortium (http://ict-pristine.eu)
// 
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// 
// This program 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 this program.  If not, see http://www.gnu.org/licenses/.
// 

cplusplus {{
#include "PDU.h"
}}
packet PDU;

packet ControlPDU extends PDU{
    unsigned int controlSeqNum;
}

packet FlowControlPDU extends ControlPDU {
    
	
    unsigned int rateLen;
    unsigned int timeUnit;
    unsigned int myLeftWinEdge;
    unsigned int myRightWinEdge;
    unsigned int myRcvRate;
}

packet NAckPDU extends ControlPDU{
    unsigned int ackNackSeqNum;
    type = -1;
}

packet AckOnlyPDU extends NAckPDU{
    type = ACK_ONLY_PDU;
}

packet NackOnlyPDU extends NAckPDU{
    type = NACK_ONLY_PDU;
}
packet NAck extends NAckPDU{
    
}

packet NAckFlow extends FlowControlPDU{
    
}

packet AckFlowPDU extends NAckFlow{
    type = ACK_FLOW_PDU;
}

packet NackFlowPDU extends NAckFlow{
    type = NACK_FLOW_PDU;
}

packet FlowControlOnlyPDU extends FlowControlPDU{
    type = FLOW_ONLY_PDU;
}


packet SelectiveNAckFlow extends FlowControlPDU{
    unsigned int newLeftWinEdge;
    unsigned int newRightWinEdge;
    
    unsigned int nackListLen;
    unsigned int nackList [];
}

packet SelectiveAckFlowPDU extends SelectiveNAckFlow{
    type = SELECT_ACK_FLOW_PDU;
}

packet SelectiveNackFlowPDU extends SelectiveNAckFlow{
    type = SELECT_NACK_FLOW_PDU;
}

packet SelectiveAckPDU extends SelectiveNAckFlow{
    type = SELECT_ACK_PDU;
}

packet SelectiveNackPDU extends SelectiveNAckFlow{
    type = SELECT_NACK_PDU;
}