6 #include <boost/foreach.hpp>
15 using std::ostringstream;
16 using std::ostream_iterator;
23 "default-domain:default-project:ip-fabric";
25 "default-domain:default-project:ip-fabric:__default__";
27 "default-domain:default-project:ip-fabric:ip-fabric";
54 key_type_(type), key_chain_(chain) {
69 for (
size_t ocnt = 0; ocnt < rhs.
key_chain().size(); ++ocnt) {
71 for (
size_t icnt = 0; icnt <
key_chain_.size(); ++icnt) {
97 for (
size_t i = 0; i <
key_chain_.size(); ++i) {
99 if (item->
id == key_id) {
133 AuthenticationKeyChain::const_iterator iter;
134 vector<string> auth_keys;
144 AuthenticationKeyChain::const_iterator iter;
145 vector<string> auth_keys;
154 : origin_override(false), origin(
"IGP") {
162 return origin < rhs.
origin;
257 std::string origin) {
286 family_list.push_back(family_config.family);
288 sort(family_list.begin(), family_list.end());
310 : instance_name_(instance_name),
313 autonomous_system_(0),
314 local_autonomous_system_(0),
334 virtual_network_index_(0),
335 virtual_network_allow_transit_(false),
336 virtual_network_pbb_evpn_enable_(false),
383 if (it->family == family)
384 return it.operator->();
423 oss <<
"from {" << endl;
425 oss <<
" protocol [ ";
427 oss << protocol <<
",";
429 oss.seekp(-1, oss.cur);
434 oss <<
" community (all) [ ";
436 oss <<
" community (any) [ ";
439 oss << community <<
",";
441 oss.seekp(-1, oss.cur);
446 oss <<
" prefix " << match.prefix_to_match <<
" "
447 << match.prefix_match_type << endl;
455 copy(list.begin(), list.end(), ostream_iterator<uint16_t>(*oss,
","));
456 oss->seekp(-1, oss->cur);
460 copy(list.begin(), list.end(), ostream_iterator<string>(*oss,
","));
461 oss->seekp(-1, oss->cur);
466 oss <<
"then {" << endl;
468 oss <<
" as-path expand [ ";
473 oss <<
" community set [ ";
478 oss <<
" community add [ ";
483 oss <<
" community remove [ ";
495 oss <<
" accept" << endl;
497 oss <<
" reject" << endl;
499 oss <<
" next-term" << endl;
513 void BgpConfigManager::Notify<BgpInstanceConfig>(
516 for (
auto obs : obs_) {
518 (obs.instance)(config, event);
524 void BgpConfigManager::Notify<BgpRoutingPolicyConfig>(
527 for (
auto obs : obs_) {
529 (obs.policy)(config, event);
535 void BgpConfigManager::Notify<BgpProtocolConfig>(
538 for (
auto obs : obs_) {
540 (obs.protocol)(config, event);
546 void BgpConfigManager::Notify<BgpNeighborConfig>(
549 for (
auto obs : obs_) {
551 (obs.neighbor)(config, event);
557 void BgpConfigManager::Notify<BgpGlobalSystemConfig>(
560 for (
auto obs : obs_) {
562 (obs.system)(config, event);
568 void BgpConfigManager::Notify<BgpGlobalQosConfig>(
571 for (
auto obs : obs_) {
573 (obs.qos)(config, event);
std::string virtual_network_
const OriginOverrideConfig & origin_override() const
std::vector< std::string > AddressFamilyList
RouteTargetList import_list_
ServiceChainList service_chain_list_
BgpRoutingPolicyConfig(const std::string &name)
void set_gateway_address(Address::Family family, const IpAddress &address)
RoutingPolicyTermList terms_
int CompareTo(const BgpProtocolConfig &rhs) const
std::vector< AuthenticationKey > AuthenticationKeyChain
std::string KeyTypeToString() const
#define KEY_COMPARE(x, y)
static const char * kMasterInstance
bool virtual_network_allow_transit_
BgpConfigManager(BgpServer *server)
void swap_aggregate_routes(Address::Family family, AggregateRouteList *list)
boost::asio::ip::address IpAddress
const AuthenticationKeyChain & key_chain() const
PrefixMatchConfigList prefixes_to_match
void set_key_chain(const AuthenticationKeyChain &in_chain)
std::string instance_name_
CommunityList community_match
BgpInstanceConfig(const std::string &name)
std::vector< AggregateRouteConfig > AggregateRouteList
virtual ~BgpRoutingPolicyConfig()
int CompareTo(const BgpNeighborConfig &rhs) const
StaticRouteList inet6_static_routes_
static void PutCommunityList(ostringstream *oss, const CommunityList &list)
std::set< StaticRouteConfig > StaticRouteList
std::vector< std::string > KeysToString() const
uint32_t local_identifier_
AuthenticationKeyChain key_chain_
uint32_t autonomous_system_
StaticRouteList inet_static_routes_
uint8_t loop_count() const
const AuthenticationKey * Find(int key_id) const
ProtocolList protocols_match
std::vector< std::string > KeysToStringDetail() const
CommunityList community_remove
void SetOriginOverride(bool origin_override, std::string origin)
BgpProtocolConfig(const std::string &instance_name)
std::vector< std::string > default_tunnel_encap_list
void set_key_type(KeyType in_type)
static const std::string integerToString(const NumberType &num)
IpAddress inet_gateway_address_
bool operator==(const AuthenticationData &rhs) const
#define BOOL_KEY_COMPARE(x, y)
const ServiceChainConfig * service_chain_info(SCAddress::Family family) const
static const char * kMasterNetwork
void swap_static_routes(Address::Family family, StaticRouteList *list)
bool operator==(const BgpFamilyAttributesConfig &rhs) const
FamilyAttributesList family_attributes_list_
bool virtual_network_pbb_evpn_enable_
std::vector< std::string > AuthKeysToString() const
std::string ToString() const
bool operator<(const StaticRouteConfig &rhs) const
CommunityList community_add
std::vector< std::string > CommunityList
bool operator<(const AuthenticationKey &rhs) const
std::string AuthKeyTypeToString() const
std::string ToString() const
AggregateRouteList inet6_aggregate_routes_
std::vector< as_t > AsnList
int STLSortedCompare(InputIterator first1, InputIterator last1, InputIterator first2, InputIterator last2, CompareOp op)
AddressFamilyList GetAddressFamilies() const
RouteTargetList export_list_
const AggregateRouteList & aggregate_routes(Address::Family family) const
const IpAddress & gateway_address(Address::Family family) const
int virtual_network_index_
virtual ~BgpInstanceConfig()
static uint64_t UTCTimestampUsec()
IpAddress inet6_gateway_address_
AggregateRouteList inet_aggregate_routes_
bool operator<(const OriginOverrideConfig &rhs) const
AuthenticationData auth_data_
static const char * kFabricInstance
std::string private_as_action_
static const int kDefaultPort
OriginOverrideConfig origin_override_
static int CompareTo(const AuthenticationKey &lhs, const AuthenticationKey &rhs)
void AddKeyToKeyChain(const AuthenticationKey &key)
bool operator==(const AuthenticationKey &rhs) const
AuthenticationData & operator=(const AuthenticationData &rhs)
virtual ~BgpConfigManager()
CommunityList community_set
void CopyValues(const BgpNeighborConfig &rhs)
std::string instance_name_
bool operator<(const AuthenticationData &rhs) const
const StaticRouteList & static_routes(Address::Family family) const
static void PutAsnList(ostringstream *oss, const AsnList &list)
static const uint32_t kDefaultAutonomousSystem