#ifndef ACTIVE_DEST_MAC_VLAN_STREAM_IDENTIFICATION_FUNCTION_H #define ACTIVE_DEST_MAC_VLAN_STREAM_IDENTIFICATION_FUNCTION_H #include "stream-identification-function.h" #include "ns3/mac48-address.h" #include "ns3/packet.h" namespace ns3 { class ActiveDestMacVlanStreamIdentificationFunction : public StreamIdentificationFunction { public: /** * \brief Get the TypeId * * \return The TypeId for this class */ static TypeId GetTypeId(); /** * \brief Create a ActiveDestMacVlanStreamIdentificationFunction */ ActiveDestMacVlanStreamIdentificationFunction(); /** * Destroy a ActiveDestMacVlanStreamIdentificationFunction * * This is the destructor for the ActiveDestMacVlanStreamIdentificationFunction. */ ~ActiveDestMacVlanStreamIdentificationFunction(); // Delete copy constructor and assignment operator to avoid misuse ActiveDestMacVlanStreamIdentificationFunction& operator=(const ActiveDestMacVlanStreamIdentificationFunction&) = delete; ActiveDestMacVlanStreamIdentificationFunction(const ActiveDestMacVlanStreamIdentificationFunction&) = delete; bool Match(Ptr p) override; void GetActiveUpdate(Ptr p) override; protected: private: Address m_destAddress; uint16_t m_vid; Address m_updateDestAddress; uint16_t m_updateVid; uint8_t m_updatePcp; }; } #endif /* ACTIVE_DEST_MAC_VLAN_STREAM_IDENTIFICATION_FUNCTION_H */