#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 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 */