A Discrete-Event Network Simulator
API
service-flow-record.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2007,2008 INRIA
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Jahanzeb Farooq <jahanzeb.farooq@sophia.inria.fr>
19  */
20 
21 #ifndef SERVICE_FLOW_RECORD_H
22 #define SERVICE_FLOW_RECORD_H
23 
24 #include <stdint.h>
25 #include "ns3/nstime.h"
26 #include "bs-uplink-scheduler.h"
27 #include "bs-net-device.h"
28 #include "ns3/ptr.h"
29 
30 namespace ns3 {
31 
37 {
38 public:
39  ServiceFlowRecord (void);
40  ~ServiceFlowRecord (void);
41 
46  void SetGrantSize (uint32_t grantSize);
50  uint32_t GetGrantSize (void) const;
56  void SetGrantTimeStamp (Time grantTimeStamp);
60  Time GetGrantTimeStamp (void) const;
65  void SetDlTimeStamp (Time dlTimeStamp);
69  Time GetDlTimeStamp (void) const;
74  void SetPktsSent (uint32_t pktsSent);
79  void UpdatePktsSent (uint32_t pktsSent);
83  uint32_t GetPktsSent (void) const;
88  void SetPktsRcvd (uint32_t pktsRcvd);
93  void UpdatePktsRcvd (uint32_t pktsRcvd);
97  uint32_t GetPktsRcvd (void) const;
102  void SetBytesSent (uint32_t bytesSent);
107  void UpdateBytesSent (uint32_t bytesSent);
111  uint32_t GetBytesSent (void) const;
116  void SetBytesRcvd (uint32_t bytesRcvd);
121  void UpdateBytesRcvd (uint32_t bytesRcvd);
125  uint32_t GetBytesRcvd (void) const;
126 
131  void SetRequestedBandwidth (uint32_t requestedBandwidth);
136  void UpdateRequestedBandwidth (uint32_t requestedBandwidth);
140  uint32_t GetRequestedBandwidth (void);
141 
146  void SetGrantedBandwidth (uint32_t grantedBandwidth);
151  void UpdateGrantedBandwidth (uint32_t grantedBandwidth);
155  uint32_t GetGrantedBandwidth (void);
156 
161  void SetGrantedBandwidthTemp (uint32_t grantedBandwidthTemp);
166  void UpdateGrantedBandwidthTemp (uint32_t grantedBandwidthTemp);
170  uint32_t GetGrantedBandwidthTemp (void);
171 
176  void SetBwSinceLastExpiry (uint32_t bwSinceLastExpiry);
181  void UpdateBwSinceLastExpiry (uint32_t bwSinceLastExpiry);
185  uint32_t GetBwSinceLastExpiry (void);
186 
191  void SetLastGrantTime (Time grantTime);
195  Time GetLastGrantTime (void) const;
196 
201  void SetBacklogged (uint32_t backlogged);
206  void IncreaseBacklogged (uint32_t backlogged);
210  uint32_t GetBacklogged (void) const;
211 
216  void SetBackloggedTemp (uint32_t backloggedTemp);
221  void IncreaseBackloggedTemp (uint32_t backloggedTemp);
225  uint32_t GetBackloggedTemp (void) const;
226 
227 private:
228  uint32_t m_grantSize;
231 
232  // stats members
233  uint32_t m_pktsSent;
234  uint32_t m_pktsRcvd;
235 
236  uint32_t m_bytesSent;
237  uint32_t m_bytesRcvd;
238 
242 
247  int32_t m_backlogged;
249 
250 };
251 
252 } // namespace ns3
253 
254 #endif /* SERVICE_FLOW_RECORD_H */
uint32_t m_requestedBandwidth
requested bandwidth
void SetBackloggedTemp(uint32_t backloggedTemp)
set temporary back logged
uint32_t GetBytesSent(void) const
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:103
void UpdateBwSinceLastExpiry(uint32_t bwSinceLastExpiry)
update BW since last expiry
Time GetGrantTimeStamp(void) const
uint32_t GetRequestedBandwidth(void)
uint32_t m_bytesSent
bytes sent
this class implements a structure to manage some parameters and statistics related to a service flow ...
void SetRequestedBandwidth(uint32_t requestedBandwidth)
set the requested bandwidth
uint32_t GetPktsSent(void) const
void UpdateRequestedBandwidth(uint32_t requestedBandwidth)
update the requested bandwidth
void SetGrantedBandwidth(uint32_t grantedBandwidth)
set the granted bandwidth
Time m_lastGrantTime
last grant time
uint32_t GetGrantSize(void) const
void IncreaseBackloggedTemp(uint32_t backloggedTemp)
increase temporary back logged
uint32_t m_pktsSent
packets sent
uint32_t m_grantSize
only used for UGS flow
uint32_t GetBacklogged(void) const
Time m_dlTimeStamp
time when this service flow&#39;s traffic was last sent
int32_t m_backlogged
back logged
void UpdateGrantedBandwidthTemp(uint32_t grantedBandwidthTemp)
update the temporary granted bandwidth
uint32_t m_bwSinceLastExpiry
bandwidth granted since last expiry of minimum reserved traffic rate interval, only for nrtPS...
uint32_t m_grantedBandwidth
granted badnwidth
uint32_t GetBwSinceLastExpiry(void)
void SetGrantTimeStamp(Time grantTimeStamp)
Set the grant time stamp.
void SetGrantSize(uint32_t grantSize)
Set the grant size (only for UGS service flows)
void UpdatePktsRcvd(uint32_t pktsRcvd)
update the number of received packets by adding pktsRcvd
Time GetLastGrantTime(void) const
Every class exported by the ns3 library is enclosed in the ns3 namespace.
uint32_t GetPktsRcvd(void) const
uint32_t GetGrantedBandwidthTemp(void)
int32_t m_backloggedTemp
back logged temp
void SetGrantedBandwidthTemp(uint32_t grantedBandwidthTemp)
set the temporary granted bandwidth
uint32_t m_bytesRcvd
bytes received
void SetDlTimeStamp(Time dlTimeStamp)
Set the DlTimeStamp.
uint32_t m_grantedBandwidthTemp
Temporary variable used to sort list. Necessary to keep original order.
void SetBytesRcvd(uint32_t bytesRcvd)
Set the number of received bytes.
void SetBwSinceLastExpiry(uint32_t bwSinceLastExpiry)
set BW since last expiry
void SetLastGrantTime(Time grantTime)
set last grant time
Time GetDlTimeStamp(void) const
uint32_t m_pktsRcvd
packets received
void UpdateGrantedBandwidth(uint32_t grantedBandwidth)
update the granted bandwidth
void SetBacklogged(uint32_t backlogged)
set backlogged
uint32_t GetGrantedBandwidth(void)
void UpdateBytesSent(uint32_t bytesSent)
update the number of sent bytes by adding bytesSent
uint32_t GetBackloggedTemp(void) const
void SetPktsRcvd(uint32_t pktsRcvd)
Set the number of received packets.
void IncreaseBacklogged(uint32_t backlogged)
increase backlogged
uint32_t GetBytesRcvd(void) const
void SetBytesSent(uint32_t bytesSent)
Set the number of sent bytes.
Time m_grantTimeStamp
allocation (for data) for UGS flows and unicast poll (for bandwidth requests) for non-UGS flows ...
void UpdatePktsSent(uint32_t pktsSent)
update the number of sent packets by adding pktsSent
void SetPktsSent(uint32_t pktsSent)
set the number of sent packets in this service flow
void UpdateBytesRcvd(uint32_t bytesRcvd)
update the number of received bytes by adding bytesRcvd