/*
* Title: CloudSim Toolkit
* Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds
* Licence: GPL - http://www.gnu.org/copyleft/gpl.html
*
* Copyright (c) 2009-2012, The University of Melbourne, Australia
*/
package org.cloudbus.cloudsim.network.datacenter;
/**
* NewtorkPacket represents the packet which travel from one server to another. Each packet contains
* IDs of the sender and receiver VM which are communicating, time at which it is sent and received,
* type and virtual IDs of tasks.
*
* <br/>Please refer to following publication for more details:<br/>
* <ul>
* <li><a href="http://dx.doi.org/10.1109/UCC.2011.24">Saurabh Kumar Garg and Rajkumar Buyya, NetworkCloudSim: Modelling Parallel Applications in Cloud
* Simulations, Proceedings of the 4th IEEE/ACM International Conference on Utility and Cloud
* Computing (UCC 2011, IEEE CS Press, USA), Melbourne, Australia, December 5-7, 2011.</a>
* </ul>
*
* @author Saurabh Kumar Garg
* @since CloudSim Toolkit 1.0
* @todo Attributes should be private
*/
public class NetworkPacket {
/**
* Information about the virtual send and receiver entities of the packet.
*/
HostPacket pkt;
/**
* Id of the sender host.
*/
int senderhostid;
/**
* Id of the receiver host.
*/
int recieverhostid;
/**
* Id of the sender VM.
* @todo Isn't this data at {@link #pkt}?
*/
int sendervmid;
/**
* Id of the receiver VM.
* @todo Isn't this data at {@link #pkt}?
*/
int recievervmid;
/**
* Id of the sender cloudlet.
* @todo This field is not needed, since its value is being
* get from a {@link HostPacket} instance at {@link NetworkHost#sendpackets()}.
* So, such a data can be got form the {@link #pkt} attribute.
*/
int cloudletid;
/** Time when the packet was sent. */
double stime;
/** Time when the packet was received. */
double rtime;
public NetworkPacket(int id, HostPacket pkt2, int vmid, int cloudletid) {
pkt = pkt2;
sendervmid = vmid;
this.cloudletid = cloudletid;
senderhostid = id;
stime = pkt.sendtime;
recievervmid = pkt2.reciever;
}
}