vxlan: vxlan/vxlan.api API cleanup
[vpp.git] / extras / vom / vom / gbp_route_domain.hpp
index 0d133b3..dd09673 100644 (file)
@@ -16,6 +16,7 @@
 #ifndef __VOM_GBP_ROUTE_DOMAIN_H__
 #define __VOM_GBP_ROUTE_DOMAIN_H__
 
+#include "vom/gbp_types.hpp"
 #include "vom/interface.hpp"
 #include "vom/route_domain.hpp"
 #include "vom/singular_db.hpp"
@@ -30,19 +31,21 @@ class gbp_route_domain : public object_base
 {
 public:
   /**
-   * The key for a route_domain is the pari of EPG-IDs
+   * The key for a route_domain is the pair of EPG-IDs
    */
   typedef route_domain::key_t key_t;
 
   /**
    * Construct a GBP route_domain
    */
-  gbp_route_domain(const route_domain& rd);
+  gbp_route_domain(const route_domain& rd, scope_t scope);
 
   gbp_route_domain(const route_domain& rd,
+                   scope_t scope,
                    const interface& ip4_uu_fwd,
                    const interface& ip6_uu_fwd);
   gbp_route_domain(const route_domain& rd,
+                   scope_t scope,
                    const std::shared_ptr<interface> ip4_uu_fwd,
                    const std::shared_ptr<interface> ip6_uu_fwd);
 
@@ -64,7 +67,7 @@ public:
   /**
    * Return the route domain's VPP ID
    */
-  uint32_t id() const;
+  route::table_id_t id() const;
 
   /**
    * comparison operator
@@ -96,7 +99,12 @@ public:
    */
   std::string to_string() const;
 
+  /**
+   * Accessors for children
+   */
   const std::shared_ptr<route_domain> get_route_domain() const;
+  const std::shared_ptr<interface> get_ip4_uu_fwd() const;
+  const std::shared_ptr<interface> get_ip6_uu_fwd() const;
 
 private:
   /**
@@ -166,6 +174,7 @@ private:
   HW::item<uint32_t> m_id;
 
   std::shared_ptr<route_domain> m_rd;
+  scope_t m_scope;
   std::shared_ptr<interface> m_ip4_uu_fwd;
   std::shared_ptr<interface> m_ip6_uu_fwd;