Files
eden-sim/contrib/tsn/model/psfp-flow-meter-instance.h

62 lines
1.2 KiB
C
Raw Normal View History

2025-12-01 15:56:02 +01:00
#ifndef FLOW_METER_INSTANCE_H
#define FLOW_METER_INSTANCE_H
#include "ns3/object.h"
#include "ns3/nstime.h"
#include "ns3/packet.h"
#include "ns3/data-rate.h"
namespace ns3
{
class FlowMeterInstance: public Object
{
public:
/**
* \brief Get the TypeId
*
* \return The TypeId for this class
*/
static TypeId GetTypeId();
/**
* \brief Create a FlowMeterInstance
*/
FlowMeterInstance();
/**
* Destroy a FlowMeterInstance
*
* This is the destructor for the Tas.
*/
~FlowMeterInstance();
// Delete copy constructor and assignment operator to avoid misuse
FlowMeterInstance& operator=(const FlowMeterInstance&) = delete;
FlowMeterInstance(const FlowMeterInstance&) = delete;
void updateTokenBuckets();
bool Test(Ptr<Packet>);
protected:
private:
DataRate m_cir;
uint32_t m_cbs;
DataRate m_eir;
uint32_t m_ebs;
bool m_cf;
bool m_dropOnYellow;
bool m_markAllFramesRedEnable;
bool m_markAllFramesRed;
Time m_lastTokenUpdateTime;
double m_committedToken = 0;
double m_excessToken = 0;
};
}
#endif /* FLOW_METER_INSTANCE_H */