4 #ifndef SRC_BGP_BGP_CONFIG_H__
5 #define SRC_BGP_BGP_CONFIG_H__
19 #include "schema/vnc_cfg_types.h"
47 typedef AuthenticationKeyChain::iterator
iterator;
768 typedef std::pair<RoutingPolicyMap::const_iterator,
771 typedef std::pair<InstanceMap::const_iterator,
774 typedef std::pair<NeighborMap::const_iterator,
792 const std::string &start_policy = std::string())
const = 0;
794 const std::string &start_instance = std::string())
const = 0;
796 const std::string &instance_name)
const = 0;
802 const std::string &name)
const = 0;
804 const std::string &name)
const = 0;
806 const std::string &instance_name)
const = 0;
808 const std::string &instance_name,
const std::string &name)
const = 0;
811 template <
typename BgpConfigObject>
boost::asio::ip::address IpAddress
boost::asio::ip::address_v4 Ip4Address
std::vector< RoutingPolicyAttachInfo > RoutingPolicyConfigList
std::vector< std::string > ProtocolList
std::vector< AuthenticationKey > AuthenticationKeyChain
std::vector< std::string > CommunityList
std::vector< as_t > AsnList
std::vector< PrefixMatchConfig > PrefixMatchConfigList
void set_key_type(KeyType in_type)
AuthenticationKeyChain::const_iterator const_iterator
std::vector< std::string > KeysToString() const
bool operator==(const AuthenticationData &rhs) const
std::vector< std::string > KeysToStringDetail() const
std::string KeyTypeToString() const
const AuthenticationKey * Find(int key_id) const
void AddKeyToKeyChain(const AuthenticationKey &key)
AuthenticationKeyChain key_chain_
AuthenticationKeyChain::iterator iterator
const_iterator begin() const
AuthenticationData & operator=(const AuthenticationData &rhs)
const_iterator end() const
void set_key_chain(const AuthenticationKeyChain &in_chain)
bool operator<(const AuthenticationData &rhs) const
const AuthenticationKeyChain & key_chain() const
virtual NeighborMapRange NeighborMapItems(const std::string &instance_name) const =0
virtual const BgpProtocolConfig * GetProtocolConfig(const std::string &instance_name) const =0
static const int kDefaultPort
std::map< std::string, BgpNeighborConfig * > NeighborMap
static const char * kMasterNetwork
static const char * kFabricInstance
void Notify(const BgpConfigObject *, EventType)
std::pair< NeighborMap::const_iterator, NeighborMap::const_iterator > NeighborMapRange
boost::function< void(const BgpInstanceConfig *, EventType)> BgpInstanceObserver
std::map< std::string, BgpInstanceConfig * > InstanceMap
boost::function< void(const BgpNeighborConfig *, EventType)> BgpNeighborObserver
virtual const std::string & localname() const =0
virtual const BgpRoutingPolicyConfig * FindRoutingPolicy(const std::string &name) const =0
virtual InstanceMapRange InstanceMapItems(const std::string &start_instance=std::string()) const =0
std::map< std::string, BgpRoutingPolicyConfig * > RoutingPolicyMap
virtual void ResetRoutingInstanceIndexBit(int index)=0
DISALLOW_COPY_AND_ASSIGN(BgpConfigManager)
void RegisterObservers(const Observers &obs)
virtual int NeighborCount(const std::string &instance_name) const =0
BgpConfigManager(BgpServer *server)
virtual ~BgpConfigManager()
static const uint32_t kDefaultAutonomousSystem
virtual RoutingPolicyMapRange RoutingPolicyMapItems(const std::string &start_policy=std::string()) const =0
const BgpServer * server()
static const char * kMasterInstance
std::pair< InstanceMap::const_iterator, InstanceMap::const_iterator > InstanceMapRange
virtual const BgpInstanceConfig * FindInstance(const std::string &name) const =0
std::pair< RoutingPolicyMap::const_iterator, RoutingPolicyMap::const_iterator > RoutingPolicyMapRange
std::vector< Observers > obs_
boost::function< void(const BgpProtocolConfig *, EventType)> BgpProtocolObserver
virtual void Terminate()=0
virtual const BgpNeighborConfig * FindNeighbor(const std::string &instance_name, const std::string &name) const =0
boost::function< void(const BgpGlobalQosConfig *, EventType)> BgpGlobalQosConfigObserver
boost::function< void(const BgpGlobalSystemConfig *, EventType)> BgpGlobalSystemConfigObserver
boost::function< void(const BgpRoutingPolicyConfig *, EventType)> BgpRoutingPolicyObserver
uint8_t analytics_dscp() const
void set_control_dscp(uint8_t value)
uint8_t control_dscp() const
uint64_t last_change_at() const
void set_analytics_dscp(uint8_t value)
DISALLOW_COPY_AND_ASSIGN(BgpGlobalQosConfig)
void set_last_change_at(uint64_t tstamp) const
bool all_tags_are_global() const
void set_xmpp_hold_time(uint8_t hold_time)
void set_all_tags_are_global(bool all_tags_are_global)
void set_end_of_rib_timeout(uint16_t time)
uint16_t bgpaas_port_start() const
uint16_t end_of_rib_timeout() const
uint16_t bgpaas_port_end() const
void set_rd_cluster_seed(uint16_t seed)
bool gr_bgp_helper() const
void set_last_change_at(uint32_t tstamp) const
void set_always_compare_med(bool always_compare_med)
uint16_t rd_cluster_seed() const
uint32_t llgr_time() const
bool enable_4byte_as() const
void set_gr_time(uint16_t gr_time)
static const int kEndOfRibTime
void set_fc_enabled(bool enable)
uint16_t bgpaas_port_start_
void set_llgr_time(uint64_t llgr_time)
bool always_compare_med() const
uint16_t end_of_rib_timeout_
void set_gr_bgp_helper(bool helper)
DISALLOW_COPY_AND_ASSIGN(BgpGlobalSystemConfig)
void set_nh_check_enabled(bool enable)
void set_bgpaas_port_end(uint16_t bgpaas_port_end)
uint16_t rd_cluster_seed_
uint32_t last_change_at() const
void set_bgpaas_port_start(uint16_t bgpaas_port_start)
uint8_t xmpp_hold_time() const
void set_gr_xmpp_helper(bool helper)
uint16_t bgpaas_port_end_
bool all_tags_are_global_
bool gr_xmpp_helper() const
bool nh_check_enabled() const
void set_gr_enable(bool enable)
void set_enable_4byte_as(bool as_4byte)
const RoutingPolicyConfigList & routing_policy_list() const
void set_index(int index)
int virtual_network_index_
const std::string & virtual_network() const
void set_virtual_network_allow_transit(bool allow_transit)
std::vector< AggregateRouteConfig > AggregateRouteList
int virtual_network_index() const
const RouteTargetList & export_list() const
void set_import_list(const RouteTargetList &import_list)
std::set< std::string > RouteTargetList
void set_virtual_network_pbb_evpn_enable(bool pbb_evpn)
void set_virtual_network(const std::string &virtual_network)
const RouteTargetList & import_list() const
std::string virtual_network_
const AggregateRouteList & aggregate_routes(Address::Family family) const
const std::string & name() const
std::set< std::string > NeighborList
void swap_routing_policy_list(RoutingPolicyConfigList *list)
void swap_service_chain_list(ServiceChainList *list)
bool virtual_network_allow_transit() const
RouteTargetList import_list_
RoutingPolicyConfigList routing_policies_
std::string routing_instance_vxlan_
StaticRouteList inet6_static_routes_
RouteTargetList export_list_
NeighborList neighbor_list_
BgpInstanceConfig(const std::string &name)
DISALLOW_COPY_AND_ASSIGN(BgpInstanceConfig)
StaticRouteList inet_static_routes_
void swap_static_routes(Address::Family family, StaticRouteList *list)
void add_neighbor(const std::string &neighbor)
void delete_neighbor(const std::string &neighbor)
const std::string & routing_instance_vxlan() const
const ServiceChainConfig * service_chain_info(SCAddress::Family family) const
AggregateRouteList inet_aggregate_routes_
void set_last_change_at(uint64_t tstamp) const
friend class BgpInstanceConfigTest
void set_vxlan_id(int vxlan_id)
void set_has_pnf(bool has_pnf)
void set_virtual_network_index(int virtual_network_index)
AggregateRouteList inet6_aggregate_routes_
bool virtual_network_pbb_evpn_enable() const
void swap_aggregate_routes(Address::Family family, AggregateRouteList *list)
void set_export_list(const RouteTargetList &export_list)
bool virtual_network_allow_transit_
void set_routing_instance_vxlan(const std::string &routing_instance_vxlan)
std::vector< ServiceChainConfig > ServiceChainList
bool virtual_network_pbb_evpn_enable_
const ServiceChainList & service_chain_list() const
ServiceChainList service_chain_list_
virtual ~BgpInstanceConfig()
uint64_t last_change_at() const
const NeighborList & neighbor_list() const
const StaticRouteList & static_routes(Address::Family family) const
std::set< StaticRouteConfig > StaticRouteList
AddressFamilyList GetAddressFamilies() const
const std::string & instance_name() const
uint64_t last_change_at() const
const OriginOverrideConfig & origin_override() const
void set_last_change_at(uint64_t tstamp) const
std::string AuthKeyTypeToString() const
uint32_t cluster_id() const
uint16_t source_port() const
void set_peer_as(uint32_t peer_as)
const AuthenticationData & auth_data() const
AuthenticationData auth_data_
uint32_t local_identifier() const
void set_keydata(const AuthenticationData &in_auth_data)
void set_hold_time(int hold_time)
std::string private_as_action_
std::vector< std::string > AuthKeysToString() const
void set_port(uint16_t port)
void set_group_name(const std::string &group_name)
int CompareTo(const BgpNeighborConfig &rhs) const
IpAddress inet_gateway_address_
void set_router_type(const std::string &router_type)
const std::string & uuid() const
void set_cluster_id(uint32_t cluster_id)
std::string router_type() const
void set_passive(bool passive)
const std::string & name() const
const IpAddress & gateway_address(Address::Family family) const
bool operator!=(const BgpNeighborConfig &rhs) const
OriginOverrideConfig origin_override_
uint32_t local_identifier_
std::vector< std::string > AddressFamilyList
TcpSession::Endpoint remote_endpoint_
void set_peer_address(const IpAddress &address)
std::string private_as_action() const
std::vector< BgpFamilyAttributesConfig > FamilyAttributesList
DISALLOW_COPY_AND_ASSIGN(BgpNeighborConfig)
void set_gateway_address(Address::Family family, const IpAddress &address)
uint8_t loop_count() const
void set_private_as_action(const std::string &private_as_action)
void set_local_as(uint32_t local_as)
const std::string & group_name() const
void set_family_attributes_list(const FamilyAttributesList &family_attributes_list)
void set_instance_name(const std::string &instance_name)
void set_peer_type(Type type)
void set_as_override(bool as_override)
std::string instance_name_
void set_source_port(uint16_t source_port)
void CopyValues(const BgpNeighborConfig &rhs)
const IpAddress & peer_address() const
void set_loop_count(uint8_t loop_count)
void SetOriginOverride(bool origin_override, std::string origin)
std::string peer_identifier_string() const
IpAddress inet6_gateway_address_
const FamilyAttributesList & family_attributes_list() const
uint32_t local_as() const
std::string peer_address_string() const
FamilyAttributesList family_attributes_list_
void set_peer_identifier(uint32_t identifier)
std::string local_identifier_string() const
void set_uuid(const std::string &uuid)
void set_local_identifier(uint32_t identifier)
void set_name(const std::string &name)
uint32_t peer_identifier() const
void set_admin_down(bool admin_down)
std::string instance_name_
const std::string & subcluster_name() const
void set_hold_time(uint32_t hold_time)
void set_cluster_id(uint32_t cluster_id)
uint32_t local_autonomous_system() const
void reset_subcluster_name()
uint32_t hold_time() const
void set_subcluster_name(const std::string &name)
DISALLOW_COPY_AND_ASSIGN(BgpProtocolConfig)
void reset_subcluster_id()
uint32_t cluster_id() const
std::string subcluster_name_
void set_admin_down(bool admin_down)
uint32_t autonomous_system() const
void set_autonomous_system(uint32_t autonomous_system)
BgpProtocolConfig(const std::string &instance_name)
uint64_t last_change_at() const
const std::string & instance_name() const
uint32_t autonomous_system_
void set_local_autonomous_system(uint32_t local_autonomous_system)
void set_identifier(uint32_t identifier)
void set_subcluster_id(uint32_t id)
void set_last_change_at(uint64_t tstamp) const
int CompareTo(const BgpProtocolConfig &rhs) const
uint32_t identifier() const
uint32_t local_autonomous_system_
uint32_t subcluster_id() const
const std::string & name() const
const RoutingPolicyTermList & terms() const
virtual ~BgpRoutingPolicyConfig()
void add_term(const RoutingPolicyTermConfig &term)
void set_last_change_at(uint64_t tstamp) const
std::vector< RoutingPolicyTermConfig > RoutingPolicyTermList
DISALLOW_COPY_AND_ASSIGN(BgpRoutingPolicyConfig)
RoutingPolicyTermList terms_
BgpRoutingPolicyConfig(const std::string &name)
boost::asio::ip::tcp::endpoint Endpoint
CommunityList ext_community_set
CommunityList ext_community_add
CommunityList community_set
CommunityList community_remove
CommunityList ext_community_remove
CommunityList community_add
bool operator<(const AuthenticationKey &rhs) const
bool operator==(const AuthenticationKey &rhs) const
BgpRoutingPolicyObserver policy
BgpNeighborObserver neighbor
BgpGlobalSystemConfigObserver system
BgpGlobalQosConfigObserver qos
BgpProtocolObserver protocol
BgpInstanceObserver instance
int operator()(const BgpFamilyAttributesConfig lhs, const BgpFamilyAttributesConfig rhs) const
std::vector< std::string > default_tunnel_encap_list
bool operator==(const BgpFamilyAttributesConfig &rhs) const
BgpFamilyAttributesConfig(const std::string &family)
bool operator<(const OriginOverrideConfig &rhs) const
std::string prefix_to_match
std::string prefix_match_type
PrefixMatchConfig(std::string to_match, std::string match_type)
std::string ToString() const
ProtocolList protocols_match
CommunityList community_match
std::string ToString() const
PrefixMatchConfigList prefixes_to_match
CommunityList ext_community_match
bool ext_community_match_all
RoutingPolicyMatchConfig match
RoutingPolicyActionConfig action
std::vector< std::string > prefix
std::string service_instance
std::string source_routing_instance
std::string service_chain_id
std::string service_chain_address
std::string routing_instance
bool operator<(const StaticRouteConfig &rhs) const
std::vector< std::string > route_targets
std::vector< std::string > communities
#define KEY_COMPARE(x, y)