GBP: per-group EP retention policy
[vpp.git] / extras / vom / vom / gbp_endpoint_group.hpp
index b60b155..d6af570 100644 (file)
@@ -36,6 +36,26 @@ typedef uint32_t epg_id_t;
 class gbp_endpoint_group : public object_base
 {
 public:
+  /**
+   * Endpoint Retention Policy Settings
+   */
+  struct retention_t
+  {
+    retention_t();
+    retention_t(uint32_t remote_ep_timeout);
+
+    retention_t(const retention_t&) = default;
+    retention_t& operator=(const retention_t&) = default;
+
+    bool operator==(const retention_t& o) const;
+    std::string to_string() const;
+
+    /**
+     * Remote Endpoint timeout/ageing
+     */
+    uint32_t remote_ep_timeout;
+  };
+
   /**
    * The key for a GBP endpoint group is its ID
    */
@@ -114,6 +134,8 @@ public:
   const std::shared_ptr<gbp_route_domain> get_route_domain() const;
   const std::shared_ptr<gbp_bridge_domain> get_bridge_domain() const;
 
+  void set(const retention_t& retention);
+
 private:
   /**
    * Class definition for listeners to OM events
@@ -206,6 +228,11 @@ private:
    */
   std::shared_ptr<gbp_bridge_domain> m_bd;
 
+  /**
+   * The Group's EP retention Policy
+   */
+  retention_t m_retention;
+
   /**
    * A map of all bridge_domains
    */