OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
segment_health_check.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2017 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #ifndef vnsw_agent_segment_health_check_hpp
6 #define vnsw_agent_segment_health_check_hpp
7 
8 #include "diag/diag.h"
9 #include "diag/diag_types.h"
10 #include "pkt/control_interface.h"
11 
13 
15 public:
16  enum Status {
19  };
20  static const int kBufferSize = 1024;
21 
24  virtual ~SegmentHealthCheckPkt();
25 
26  virtual void SendRequest();
27  void RequestTimedOut(uint32_t seqno);
28  virtual void HandleReply(DiagPktHandler *handler);
29  virtual void Retry();
30  virtual bool IsDone() {
31  /* Keep sending health-check packets until this object is removed.
32  * We remove this object when an explicit delete request is received
33  */
34  return false;
35  }
36  virtual bool ResendOnTimerExpiry() { return false; }
38  service_ = svc;
39  }
40  void StopDelayTimer();
42 
43 private:
44  void FillDiagHeader(AgentDiagPktData *data) const;
45  void Notify(Status status);
46  bool RetryHandler();
47  int GetTimeout(const HealthCheckInstanceService *svc) const;
48  int GetDelay(const HealthCheckInstanceService *svc) const;
49 
52  int delay_msecs_; //delay/interval in milliseconds
54 };
55 
56 #endif
void UpdateService(HealthCheckInstanceService *service)
static const int kBufferSize
virtual void HandleReply(DiagPktHandler *handler)
void RequestTimedOut(uint32_t seqno)
virtual bool ResendOnTimerExpiry()
void set_service(HealthCheckInstanceService *svc)
void FillDiagHeader(AgentDiagPktData *data) const
HealthCheckInstanceService * service_
int GetTimeout(const HealthCheckInstanceService *svc) const
int GetDelay(const HealthCheckInstanceService *svc) const
SegmentHealthCheckPkt(HealthCheckInstanceService *service, DiagTable *diag_table)
DiagTable * diag_table() const
Definition: diag.h:48
Definition: diag.h:21
Definition: timer.h:54
void Notify(Status status)