#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"
{
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);
/**
* Return the route domain's VPP ID
*/
- uint32_t id() const;
+ route::table_id_t id() const;
/**
* comparison operator
*/
std::string to_string() const;
- const std::shared_ptr<route_domain> get_route_domain();
+ /**
+ * 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:
/**
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;