OpenSDN source code
community.h File Reference
#include <boost/array.hpp>
#include <boost/intrusive_ptr.hpp>
#include <boost/system/error_code.hpp>
#include <tbb/atomic.h>
#include <set>
#include <string>
#include <vector>
#include "base/parse_object.h"
#include "base/util.h"
#include "bgp/bgp_attr_base.h"
#include "bgp/bgp_common.h"
#include "bgp/extended-community/types.h"
Include dependency graph for community.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  CommunitySpec
 
class  Community
 
struct  CommunityCompare
 
class  CommunityDB
 
class  ExtCommunitySpec
 
class  ExtCommunity
 
struct  ExtCommunityCompare
 
class  ExtCommunityDB
 
class  LargeCommunitySpec
 This class encapsulates the wire-format representation of a BGP Large Community attribute and provides encoding, comparison, and canonicalization functions for Large Community attributes. More...
 
class  LargeCommunity
 This class represents an array of BGP Large Community values. A LargeCommunity consists of one or more 12-byte tuples. This class provides manipulation (append, remove, set), comparison, hashing, and conversion to/from human-readable formats. More...
 
struct  LargeCommunityCompare
 A structure to compare order LargeCommunity objects. More...
 
class  LargeCommunityDB
 This class represents a database for managing LargeCommunity objects. It is used to store, deduplicate, and retrieve canonical instances of LargeCommunity. More...
 

Typedefs

typedef boost::intrusive_ptr< const CommunityCommunityPtr
 
typedef boost::intrusive_ptr< const ExtCommunityExtCommunityPtr
 
typedef boost::intrusive_ptr< const LargeCommunityLargeCommunityPtr
 Defines a type for automatic storage of a LargeCommunity instance. More...
 

Functions

int intrusive_ptr_add_ref (const Community *ccomm)
 
int intrusive_ptr_del_ref (const Community *ccomm)
 
void intrusive_ptr_release (const Community *ccomm)
 
int intrusive_ptr_add_ref (const ExtCommunity *cextcomm)
 
int intrusive_ptr_del_ref (const ExtCommunity *cextcomm)
 
void intrusive_ptr_release (const ExtCommunity *cextcomm)
 
int intrusive_ptr_add_ref (const LargeCommunity *clargecomm)
 Increment reference count atomically. More...
 
int intrusive_ptr_del_ref (const LargeCommunity *clargecomm)
 Decrement reference count of given large community. More...
 
void intrusive_ptr_release (const LargeCommunity *clargecomm)
 Release a LargeCommunity instance when the reference count reaches zero. More...
 

Typedef Documentation

◆ CommunityPtr

typedef boost::intrusive_ptr<const Community> CommunityPtr

Definition at line 110 of file community.h.

◆ ExtCommunityPtr

typedef boost::intrusive_ptr<const ExtCommunity> ExtCommunityPtr

Definition at line 449 of file community.h.

◆ LargeCommunityPtr

typedef boost::intrusive_ptr<const LargeCommunity> LargeCommunityPtr

Defines a type for automatic storage of a LargeCommunity instance.

Definition at line 667 of file community.h.

Function Documentation

◆ intrusive_ptr_add_ref() [1/3]

int intrusive_ptr_add_ref ( const Community ccomm)
inline

Definition at line 92 of file community.h.

◆ intrusive_ptr_add_ref() [2/3]

int intrusive_ptr_add_ref ( const ExtCommunity cextcomm)
inline

Definition at line 431 of file community.h.

◆ intrusive_ptr_add_ref() [3/3]

int intrusive_ptr_add_ref ( const LargeCommunity clargecomm)
inline

Increment reference count atomically.

Definition at line 645 of file community.h.

◆ intrusive_ptr_del_ref() [1/3]

int intrusive_ptr_del_ref ( const Community ccomm)
inline

Definition at line 96 of file community.h.

◆ intrusive_ptr_del_ref() [2/3]

int intrusive_ptr_del_ref ( const ExtCommunity cextcomm)
inline

Definition at line 435 of file community.h.

◆ intrusive_ptr_del_ref() [3/3]

int intrusive_ptr_del_ref ( const LargeCommunity clargecomm)
inline

Decrement reference count of given large community.

Decrement reference count of an clargecomm.

Definition at line 650 of file community.h.

◆ intrusive_ptr_release() [1/3]

void intrusive_ptr_release ( const Community ccomm)
inline

Definition at line 100 of file community.h.

◆ intrusive_ptr_release() [2/3]

void intrusive_ptr_release ( const ExtCommunity cextcomm)
inline

Definition at line 439 of file community.h.

◆ intrusive_ptr_release() [3/3]

void intrusive_ptr_release ( const LargeCommunity clargecomm)
inline

Release a LargeCommunity instance when the reference count reaches zero.

Definition at line 656 of file community.h.