OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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
DiagPktHandler * CreateUdpPkt(Agent *agent)
Definition: ping.cc:100
uint16_t data_len_
Definition: ping.h:37
uint16_t len_
Definition: ping.h:38
static const uint32_t KPing6TcpHdr
Definition: ping.h:22
static const uint32_t KPingTcpHdr
Definition: ping.h:18
static const uint32_t KPingUdpHdr
Definition: ping.h:16
Ping(const PingReq *pr, DiagTable *diag_table)
Definition: ping.cc:21
Definition: agent.h:358
virtual ~Ping()
Definition: ping.cc:31
Definition: ping.h:14
DiagTable * diag_table() const
Definition: diag.h:48
virtual void HandleReply(DiagPktHandler *handler)
Definition: ping.cc:228
DiagPktHandler * CreateTcpPkt(Agent *agent)
Definition: ping.cc:44
virtual void RequestTimedOut(uint32_t seq_no)
Definition: ping.cc:202
boost::posix_time::time_duration avg_rtt_
Definition: ping.h:40
Definition: diag.h:21
static void HandleRequest(DiagPktHandler *)
uint32_t pkt_lost_count_
Definition: ping.h:41
virtual void SendRequest()
Definition: ping.cc:154
static const uint32_t KPing6UdpHdr
Definition: ping.h:20
void FillAgentHeader(AgentDiagPktData *pkt)
Definition: ping.cc:35
std::string context_
Definition: ping.h:39
virtual void SendSummary()
Definition: ping.cc:248