OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
overlay_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_overlay_ping_hpp
6 #define vnsw_agent_diag_overlay_ping_hpp
7 
8 #include "diag/diag.h"
9 #include "diag/diag_types.h"
10 #include "pkt/control_interface.h"
11 #include <netinet/udp.h>
12 #include <oper/tunnel_nh.h>
13 
14 class DiagTable;
15 
16 class OverlayPing : public DiagEntry {
17 public:
18  static const uint32_t kOverlayUdpHdrLength =
19  2 * (sizeof(struct ether_header) + sizeof(struct ip) + sizeof(udphdr)) +
20  sizeof(VxlanHdr);
21  static const uint32_t kVxlanRABit = 0x01000000;
22  static const uint32_t kVxlanIBit = 0x08000000;
23  static const MacAddress in_dst_mac_;
24  static const MacAddress in_source_mac_;
25 
26  OverlayPing(const OverlayPingReq *req, DiagTable *diag_table);
27  virtual ~OverlayPing();
28  virtual void SendRequest();
29  virtual void HandleReply(DiagPktHandler *handler);
30  virtual void RequestTimedOut(uint32_t seq_no);
31  virtual void SendSummary();
32  static BridgeRouteEntry *L2RouteGet(VxLanId* vxlan, string remotemac,
33  Agent *agent);
34 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::ptime senttime_;
41  boost::posix_time::time_duration avg_rtt_;
42  uint32_t pkt_lost_count_;
43 };
44 
45 #endif
virtual void RequestTimedOut(uint32_t seq_no)
OverlayPing(const OverlayPingReq *req, DiagTable *diag_table)
Definition: overlay_ping.cc:18
static const uint32_t kVxlanRABit
Definition: overlay_ping.h:21
boost::uuids::uuid vn_uuid_
Definition: overlay_ping.h:35
boost::posix_time::time_duration avg_rtt_
Definition: overlay_ping.h:41
boost::uuids::uuid uuid
MacAddress remote_vm_mac_
Definition: overlay_ping.h:36
Definition: vxlan.h:14
virtual void SendSummary()
virtual ~OverlayPing()
Definition: agent.h:358
uint16_t data_len_
Definition: overlay_ping.h:37
static const MacAddress in_dst_mac_
Definition: overlay_ping.h:23
std::string context_
Definition: overlay_ping.h:39
uint32_t pkt_lost_count_
Definition: overlay_ping.h:42
DiagTable * diag_table() const
Definition: diag.h:48
static const uint32_t kVxlanIBit
Definition: overlay_ping.h:22
boost::posix_time::ptime senttime_
Definition: overlay_ping.h:40
Definition: diag.h:21
virtual void SendRequest()
static const uint32_t kOverlayUdpHdrLength
Definition: overlay_ping.h:18
virtual void HandleReply(DiagPktHandler *handler)
uint16_t len_
Definition: overlay_ping.h:38
static BridgeRouteEntry * L2RouteGet(VxLanId *vxlan, string remotemac, Agent *agent)
Definition: overlay_ping.cc:34
static const MacAddress in_source_mac_
Definition: overlay_ping.h:24