52 lines
1.2 KiB
C
52 lines
1.2 KiB
C
|
|
#ifndef FRER_VECTOR_RECOVERY_FUNCTION_H
|
||
|
|
#define FRER_VECTOR_RECOVERY_FUNCTION_H
|
||
|
|
|
||
|
|
#include "ns3/frer-base-recovery-function.h"
|
||
|
|
|
||
|
|
|
||
|
|
namespace ns3
|
||
|
|
{
|
||
|
|
|
||
|
|
class VectorRecoveryFunction : public BaseRecoveryFunction
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
/**
|
||
|
|
* \brief Get the TypeId
|
||
|
|
*
|
||
|
|
* \return The TypeId for this class
|
||
|
|
*/
|
||
|
|
static TypeId GetTypeId();
|
||
|
|
|
||
|
|
/**
|
||
|
|
* \brief Create a VectorRecoveryFunction
|
||
|
|
*/
|
||
|
|
VectorRecoveryFunction();
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Destroy a VectorRecoveryFunction
|
||
|
|
*
|
||
|
|
* This is the destructor for the VectorRecoveryFunction.
|
||
|
|
*/
|
||
|
|
~VectorRecoveryFunction();
|
||
|
|
|
||
|
|
// Delete copy constructor and assignment operator to avoid misuse
|
||
|
|
VectorRecoveryFunction& operator=(const VectorRecoveryFunction&) = delete;
|
||
|
|
VectorRecoveryFunction(const VectorRecoveryFunction&) = delete;
|
||
|
|
|
||
|
|
bool DoRecovery(uint16_t seqNumber) override;
|
||
|
|
|
||
|
|
protected:
|
||
|
|
|
||
|
|
|
||
|
|
private:
|
||
|
|
std::vector<bool> m_sequenceHistory; //802.1CB-2017 : 7.4.3.2.2
|
||
|
|
int m_frerSeqRcvyHistoryLenght; //802.1CB-2017 : 10.4.1.6
|
||
|
|
uint m_frerCpsSeqRcvyRoguePackets = 0; //802.1CB-2017 : 10.8.4
|
||
|
|
|
||
|
|
uint16_t m_maxFrerSeqRcvyHistoryLenght;
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
}
|
||
|
|
#endif /* FRER_VECTOR_RECOVERY_FUNCTION_H */
|