OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
traceroute.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #ifndef vnsw_agent_diag_trace_route_hpp
6 #define vnsw_agent_diag_trace_route_hpp
7 
8 #include "diag/diag.h"
9 #include "diag/diag_types.h"
10 #include "pkt/control_interface.h"
11 
12 class DiagTable;
13 class TraceRoute: public DiagEntry {
14 public:
15  static const int kBufferSize = 1024;
16 
17  TraceRoute(const TraceRouteReq *req, DiagTable *diag_table);
18  virtual ~TraceRoute();
19 
20  virtual void SendRequest();
21  void RequestTimedOut(uint32_t seqno);
22  virtual void HandleReply(DiagPktHandler *handler);
23  void ReplyLocalHop();
24  void SendSummary();
25  virtual bool IsDone();
26 
27  static void HandleRequest(DiagPktHandler *);
28 
29  static void SendSandeshReply(const std::string &address,
30  const std::string &context, bool more);
31 private:
32  void FillHeader(AgentDiagPktData *data);
33  void IncrementTtl();
34 
35  bool done_;
36  uint8_t ttl_; // ttl value set in the msg sent out
37  uint16_t max_ttl_; // max ttl upto which requests are sent
38  std::string context_;
39 };
40 
41 #endif
std::string context_
Definition: traceroute.h:38
virtual void HandleReply(DiagPktHandler *handler)
Definition: traceroute.cc:194
void IncrementTtl()
Definition: traceroute.cc:216
void SendSummary()
Definition: traceroute.cc:209
static const int kBufferSize
Definition: traceroute.h:15
TraceRoute(const TraceRouteReq *req, DiagTable *diag_table)
Definition: traceroute.cc:33
void RequestTimedOut(uint32_t seqno)
Definition: traceroute.cc:181
virtual void SendRequest()
Definition: traceroute.cc:56
void ReplyLocalHop()
Definition: traceroute.cc:204
uint16_t max_ttl_
Definition: traceroute.h:37
virtual ~TraceRoute()
Definition: traceroute.cc:45
DiagTable * diag_table() const
Definition: diag.h:48
virtual bool IsDone()
Definition: traceroute.cc:212
uint8_t ttl_
Definition: traceroute.h:36
bool done_
Definition: traceroute.h:35
static void SendSandeshReply(const std::string &address, const std::string &context, bool more)
Definition: traceroute.cc:22
Definition: diag.h:21
void FillHeader(AgentDiagPktData *data)
Definition: traceroute.cc:48
static void HandleRequest(DiagPktHandler *)