Line data Source code
1 : /* 2 : * Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. 3 : * Copyright Contributors to the OpenSDN project 4 : */ 5 : 6 : #ifndef vnsw_agent_diag_overlay_trace_route_hpp 7 : #define vnsw_agent_diag_overlay_trace_route_hpp 8 : 9 : #include "diag/diag.h" 10 : #include "diag/diag_types.h" 11 : #include "pkt/control_interface.h" 12 : 13 : class DiagTable; 14 : 15 : class OverlayTraceRoute: public DiagEntry { 16 : public: 17 : OverlayTraceRoute(const OverlayTraceReq *req, DiagTable *diag_table); 18 : virtual ~OverlayTraceRoute(); 19 : virtual void SendRequest(); 20 : void RequestTimedOut(uint32_t seqno); 21 : virtual void HandleReply(DiagPktHandler *handler); 22 : void ReplyLocalHop(); 23 0 : virtual bool IsDone() { return done_;} 24 : 25 : private: 26 : void IncrementTtl(); 27 : boost::uuids::uuid vn_uuid_; 28 : MacAddress remote_vm_mac_; 29 : uint8_t ttl_; 30 : bool done_; 31 : uint16_t max_ttl_; 32 : uint32_t len_; 33 : std::string context_; 34 : }; 35 : #endif