OpenSDN source code
|
#include <service_chaining.h>
Classes | |
class | DeleteActor |
struct | PendingChainState |
Public Types | |
typedef T::RouteT | RouteT |
typedef T::PrefixT | PrefixT |
typedef T::AddressT | AddressT |
typedef ServiceChain< T > | ServiceChainT |
typedef ServiceChainRequest< T > | ServiceChainRequestT |
Private Types | |
typedef std::map < RoutingInstance *, ServiceChainPtr > | ServiceChainMap |
typedef std::map < RoutingInstance *, PendingChainState > | PendingChainList |
typedef boost::ptr_map < std::string, ServiceChainGroup > | GroupMap |
typedef std::set < ServiceChainGroup * > | GroupSet |
Private Attributes | |
BgpServer * | server_ |
tbb::mutex | mutex_ |
BgpConditionListener * | listener_ |
boost::scoped_ptr< TaskTrigger > | resolve_trigger_ |
boost::scoped_ptr< WorkQueue < ServiceChainRequestT * > > | process_queue_ |
ServiceChainMap | chain_set_ |
PendingChainList | pending_chains_ |
boost::scoped_ptr< TaskTrigger > | group_trigger_ |
GroupMap | group_map_ |
GroupSet | group_set_ |
bool | aggregate_host_route_ |
int | id_ |
int | registration_id_ |
boost::scoped_ptr< DeleteActor > | deleter_ |
LifetimeRef< ServiceChainMgr > | server_delete_ref_ |
Static Private Attributes | |
static int | service_chain_task_id_ |
Friends | |
template<typename U > | |
class | ServiceChainIntegrationTest |
template<typename U > | |
class | ServiceChainTest |
Definition at line 38 of file service_chaining.h.
typedef T::AddressT ServiceChainMgr< T >::AddressT |
Definition at line 323 of file service_chaining.h.
|
private |
Definition at line 391 of file service_chaining.h.
|
private |
Definition at line 392 of file service_chaining.h.
|
private |
Definition at line 389 of file service_chaining.h.
typedef T::PrefixT ServiceChainMgr< T >::PrefixT |
Definition at line 322 of file service_chaining.h.
typedef T::RouteT ServiceChainMgr< T >::RouteT |
Definition at line 321 of file service_chaining.h.
|
private |
Definition at line 382 of file service_chaining.h.
typedef ServiceChainRequest<T> ServiceChainMgr< T >::ServiceChainRequestT |
Definition at line 325 of file service_chaining.h.
typedef ServiceChain<T> ServiceChainMgr< T >::ServiceChainT |
Definition at line 324 of file service_chaining.h.
|
explicit |
|
virtual |
Definition at line 1449 of file service_chaining.cc.
|
inlineprivate |
Definition at line 404 of file service_chaining.h.
|
inlineprivate |
Definition at line 432 of file service_chaining.h.
|
inlineprivate |
Definition at line 409 of file service_chaining.h.
|
private |
|
privatevirtual |
Implements IServiceChainMgr.
Definition at line 2014 of file service_chaining.cc.
|
inlineprivatevirtual |
Implements IServiceChainMgr.
Definition at line 445 of file service_chaining.h.
|
privatevirtual |
Implements IServiceChainMgr.
Definition at line 2004 of file service_chaining.cc.
|
private |
|
privatevirtual |
Implements IServiceChainMgr.
Definition at line 2019 of file service_chaining.cc.
|
inlineprivatevirtual |
Implements IServiceChainMgr.
Definition at line 446 of file service_chaining.h.
|
privatevirtual |
Implements IServiceChainMgr.
Definition at line 2009 of file service_chaining.cc.
void ServiceChainMgr< T >::Enqueue | ( | ServiceChainRequestT * | req | ) |
void ServiceChainMgr< T >::Enqueue | ( | ServiceChainRequestT * | req | ) |
Definition at line 1618 of file service_chaining.cc.
|
virtual |
Implements IServiceChainMgr.
Definition at line 1646 of file service_chaining.cc.
|
private |
|
private |
Definition at line 1831 of file service_chaining.cc.
|
privatevirtual |
Implements IServiceChainMgr.
Definition at line 1486 of file service_chaining.cc.
|
privatevirtual |
Implements IServiceChainMgr.
Address::Family ServiceChainMgr< T >::GetConnectedFamily | ( | ) | const |
Address::Family ServiceChainMgr< ServiceChainInet >::GetConnectedFamily | ( | ) | const |
Connected Table Family. For EVPN, it is INET or INET6.
Definition at line 1574 of file service_chaining.cc.
Address::Family ServiceChainMgr< ServiceChainInet6 >::GetConnectedFamily | ( | ) | const |
Definition at line 1579 of file service_chaining.cc.
Address::Family ServiceChainMgr< ServiceChainEvpn >::GetConnectedFamily | ( | ) | const |
Definition at line 1584 of file service_chaining.cc.
Address::Family ServiceChainMgr< ServiceChainEvpn6 >::GetConnectedFamily | ( | ) | const |
Definition at line 1589 of file service_chaining.cc.
|
virtual |
Implements IServiceChainMgr.
Definition at line 2024 of file service_chaining.cc.
Address::Family ServiceChainMgr< T >::GetFamily | ( | ) | const |
Address::Family ServiceChainMgr< ServiceChainInet >::GetFamily | ( | ) | const |
Address Family - used for GetTable().
Definition at line 1551 of file service_chaining.cc.
Address::Family ServiceChainMgr< ServiceChainInet6 >::GetFamily | ( | ) | const |
Definition at line 1556 of file service_chaining.cc.
Address::Family ServiceChainMgr< ServiceChainEvpn >::GetFamily | ( | ) | const |
Definition at line 1561 of file service_chaining.cc.
Address::Family ServiceChainMgr< ServiceChainEvpn6 >::GetFamily | ( | ) | const |
Definition at line 1566 of file service_chaining.cc.
|
virtual |
Get appropriate listener for watching routes. For EVPN connected table, listener will depend on the connected AF
addr | - service-chain address |
is_conn_table | - "true" indicates connected table |
Definition at line 1240 of file service_chaining.cc.
|
inlineprivate |
Definition at line 412 of file service_chaining.h.
SCAddress::Family ServiceChainMgr< T >::GetSCFamily | ( | ) | const |
SCAddress::Family ServiceChainMgr< ServiceChainInet >::GetSCFamily | ( | ) | const |
Service Chain Family
Definition at line 1597 of file service_chaining.cc.
SCAddress::Family ServiceChainMgr< ServiceChainInet6 >::GetSCFamily | ( | ) | const |
Definition at line 1602 of file service_chaining.cc.
SCAddress::Family ServiceChainMgr< ServiceChainEvpn >::GetSCFamily | ( | ) | const |
Definition at line 1607 of file service_chaining.cc.
SCAddress::Family ServiceChainMgr< ServiceChainEvpn6 >::GetSCFamily | ( | ) | const |
Definition at line 1612 of file service_chaining.cc.
|
inlinevirtual |
Implements IServiceChainMgr.
Definition at line 350 of file service_chaining.h.
|
virtual |
Get the BGP Tables to add condition For EVPN, connected table will be INET/INET6 depending on whether prefix carried is v4/v6.
Implements IServiceChainMgr.
Definition at line 1664 of file service_chaining.cc.
|
private |
Definition at line 1505 of file service_chaining.cc.
|
virtual |
Implements IServiceChainMgr.
Definition at line 1465 of file service_chaining.cc.
bool ServiceChainMgr< T >::MayDelete | ( | ) | const |
Definition at line 1470 of file service_chaining.cc.
|
private |
|
inlinevirtual |
Implements IServiceChainMgr.
Definition at line 347 of file service_chaining.h.
|
private |
|
private |
|
inlinevirtual |
Implements IServiceChainMgr.
Definition at line 348 of file service_chaining.h.
|
private |
void ServiceChainMgr< T >::RetryDelete | ( | ) |
Definition at line 1479 of file service_chaining.cc.
|
private |
Definition at line 1862 of file service_chaining.cc.
|
private |
Definition at line 36 of file service_chaining.cc.
|
private |
Definition at line 38 of file service_chaining.cc.
|
private |
Definition at line 40 of file service_chaining.cc.
|
private |
Definition at line 42 of file service_chaining.cc.
|
virtual |
Implements IServiceChainMgr.
Definition at line 1623 of file service_chaining.cc.
|
virtual |
Implements IServiceChainMgr.
Definition at line 1636 of file service_chaining.cc.
|
inlineprivatevirtual |
Implements IServiceChainMgr.
Definition at line 433 of file service_chaining.h.
|
private |
Definition at line 1868 of file service_chaining.cc.
|
virtual |
Implements IServiceChainMgr.
Definition at line 1886 of file service_chaining.cc.
|
private |
Definition at line 1875 of file service_chaining.cc.
void ServiceChainMgr< T >::Terminate | ( | ) |
|
virtual |
Implements IServiceChainMgr.
Definition at line 1919 of file service_chaining.cc.
|
virtual |
Implements IServiceChainMgr.
Definition at line 1520 of file service_chaining.cc.
|
private |
|
friend |
Definition at line 363 of file service_chaining.h.
|
friend |
Definition at line 364 of file service_chaining.h.
|
private |
Definition at line 459 of file service_chaining.h.
|
private |
Definition at line 454 of file service_chaining.h.
|
private |
Definition at line 462 of file service_chaining.h.
|
private |
Definition at line 457 of file service_chaining.h.
|
private |
Definition at line 458 of file service_chaining.h.
|
private |
Definition at line 456 of file service_chaining.h.
|
private |
Definition at line 460 of file service_chaining.h.
|
private |
Definition at line 451 of file service_chaining.h.
|
private |
Definition at line 450 of file service_chaining.h.
|
private |
Definition at line 455 of file service_chaining.h.
|
private |
Definition at line 453 of file service_chaining.h.
|
private |
Definition at line 461 of file service_chaining.h.
|
private |
Definition at line 452 of file service_chaining.h.
|
private |
Definition at line 449 of file service_chaining.h.
|
private |
Definition at line 463 of file service_chaining.h.
|
staticprivate |
Definition at line 365 of file service_chaining.h.