OpenSDN source code
ping.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #ifndef vnsw_agent_diag_ping_hpp
6 #define vnsw_agent_diag_ping_hpp
7 
8 #include "diag/diag.h"
9 #include "diag/diag_types.h"
10 #include "pkt/control_interface.h"
11 
12 class DiagTable;
13 
14 class Ping: public DiagEntry {
15 public:
16  static const uint32_t KPingUdpHdr = sizeof(struct ether_header) +
17  sizeof(struct ip) + sizeof(udphdr);
18  static const uint32_t KPingTcpHdr = sizeof(struct ether_header) +
19  sizeof(struct ip) + sizeof(tcphdr);
20  static const uint32_t KPing6UdpHdr = sizeof(struct ether_header) +
21  sizeof(struct ip6_hdr) + sizeof(udphdr);
22  static const uint32_t KPing6TcpHdr = sizeof(struct ether_header) +
23  sizeof(struct ip6_hdr) + sizeof(tcphdr);
24  Ping(const PingReq *pr,DiagTable *diag_table);
25  virtual ~Ping();
26  virtual void SendRequest();
27  virtual void HandleReply(DiagPktHandler *handler);
28  virtual void RequestTimedOut(uint32_t seq_no);
29  virtual void SendSummary();
33 
34  static void HandleRequest(DiagPktHandler *);
35 
36 private:
37  uint16_t data_len_;
38  uint16_t len_; //Length including tcp, ip, agent headers + outer eth
39  std::string context_;
40  boost::posix_time::time_duration avg_rtt_;
41  uint32_t pkt_lost_count_;
42 };
43 
44 #endif
Definition: agent.h:360
Definition: diag.h:21
DiagTable * diag_table() const
Definition: diag.h:48
Definition: ping.h:14
static void HandleRequest(DiagPktHandler *)
DiagPktHandler * CreateTcpPkt(Agent *agent)
Definition: ping.cc:44
uint32_t pkt_lost_count_
Definition: ping.h:41
static const uint32_t KPing6UdpHdr
Definition: ping.h:20
virtual ~Ping()
Definition: ping.cc:31
Ping(const PingReq *pr, DiagTable *diag_table)
Definition: ping.cc:21
virtual void SendSummary()
Definition: ping.cc:248
boost::posix_time::time_duration avg_rtt_
Definition: ping.h:40
virtual void RequestTimedOut(uint32_t seq_no)
Definition: ping.cc:202
virtual void HandleReply(DiagPktHandler *handler)
Definition: ping.cc:228
uint16_t data_len_
Definition: ping.h:37
DiagPktHandler * CreateUdpPkt(Agent *agent)
Definition: ping.cc:100
virtual void SendRequest()
Definition: ping.cc:154
std::string context_
Definition: ping.h:39
uint16_t len_
Definition: ping.h:38
static const uint32_t KPingUdpHdr
Definition: ping.h:16
static const uint32_t KPingTcpHdr
Definition: ping.h:18
static const uint32_t KPing6TcpHdr
Definition: ping.h:22
void FillAgentHeader(AgentDiagPktData *pkt)
Definition: ping.cc:35