FD.io VPP  v18.01-8-g0eacf49
Vector Packet Processing
VOM::ACL::list< RULE > Class Template Reference

An ACL list comprises a set of match actions rules to be applied to packets. More...

+ Inheritance diagram for VOM::ACL::list< RULE >:
+ Collaboration diagram for VOM::ACL::list< RULE >:

Public Types

typedef std::string key_t
 The KEY can be used to uniquely identify the ACL. More...
 
typedef std::multiset< RULE > rules_t
 The rule container type. More...
 

Public Member Functions

 list (const key_t &key)
 Construct a new object matching the desried state. More...
 
 list (const handle_t &hdl, const key_t &key)
 
 list (const key_t &key, const rules_t &rules)
 
 list (const list &o)
 Copy Constructor. More...
 
 ~list ()
 Destructor. More...
 
std::shared_ptr< listsingular () const
 Return the 'sigular instance' of the ACL that matches this object. More...
 
std::string to_string () const
 convert to string format for debug purposes More...
 
void insert (const RULE &rule)
 Insert priority sorted a rule into the list. More...
 
void remove (const RULE &rule)
 Remove a rule from the list. More...
 
const handle_thandle () const
 Return the VPP assign handle. More...
 
const key_tkey () const
 
const rules_trules () const
 
bool operator== (const list &l) const
 Comparison operator - for UT. More...
 

Static Public Member Functions

static void dump (std::ostream &os)
 Dump all ACLs into the stream provided. More...
 
static std::shared_ptr< listfind (const handle_t &handle)
 
static std::shared_ptr< listfind (const key_t &key)
 
static void add (const handle_t &handle, std::shared_ptr< list > sp)
 
static void remove (const handle_t &handle)
 

Friends

class VOM::OM
 
class singular_db< key_t, list >
 It's the VOM::singular_db class that calls replay() More...
 

Additional Inherited Members

- Protected Member Functions inherited from VOM::object_base
 object_base ()=default
 Constructable by derived classes only. More...
 
virtual ~object_base ()=default
 Destructor. More...
 

Detailed Description

template<typename RULE>
class VOM::ACL::list< RULE >

An ACL list comprises a set of match actions rules to be applied to packets.

A list is bound to a given interface.

Definition at line 37 of file acl_list.hpp.

Member Typedef Documentation

template<typename RULE>
typedef std::string VOM::ACL::list< RULE >::key_t

The KEY can be used to uniquely identify the ACL.

(other choices for keys, like the summation of the properties of the rules, are rather too cumbersome to use

Definition at line 45 of file acl_list.hpp.

template<typename RULE>
typedef std::multiset<RULE> VOM::ACL::list< RULE >::rules_t

The rule container type.

Definition at line 50 of file acl_list.hpp.

Constructor & Destructor Documentation

template<typename RULE>
VOM::ACL::list< RULE >::list ( const key_t key)
inline

Construct a new object matching the desried state.

Definition at line 55 of file acl_list.hpp.

template<typename RULE>
VOM::ACL::list< RULE >::list ( const handle_t hdl,
const key_t key 
)
inline

Definition at line 60 of file acl_list.hpp.

template<typename RULE>
VOM::ACL::list< RULE >::list ( const key_t key,
const rules_t rules 
)
inline

Definition at line 66 of file acl_list.hpp.

template<typename RULE>
VOM::ACL::list< RULE >::list ( const list< RULE > &  o)
inline

Copy Constructor.

Definition at line 76 of file acl_list.hpp.

template<typename RULE>
VOM::ACL::list< RULE >::~list ( )
inline

Destructor.

Definition at line 86 of file acl_list.hpp.

Member Function Documentation

template<typename RULE>
static void VOM::ACL::list< RULE >::add ( const handle_t handle,
std::shared_ptr< list< RULE > >  sp 
)
inlinestatic

Definition at line 144 of file acl_list.hpp.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename RULE>
static void VOM::ACL::list< RULE >::dump ( std::ostream &  os)
inlinestatic

Dump all ACLs into the stream provided.

Definition at line 100 of file acl_list.hpp.

template<typename RULE>
static std::shared_ptr<list> VOM::ACL::list< RULE >::find ( const handle_t handle)
inlinestatic

Definition at line 134 of file acl_list.hpp.

+ Here is the caller graph for this function:

template<typename RULE>
static std::shared_ptr<list> VOM::ACL::list< RULE >::find ( const key_t key)
inlinestatic

Definition at line 139 of file acl_list.hpp.

template<typename RULE>
const handle_t& VOM::ACL::list< RULE >::handle ( ) const
inline

Return the VPP assign handle.

Definition at line 132 of file acl_list.hpp.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename RULE>
void VOM::ACL::list< RULE >::insert ( const RULE &  rule)
inline

Insert priority sorted a rule into the list.

Definition at line 122 of file acl_list.hpp.

template<typename RULE>
const key_t& VOM::ACL::list< RULE >::key ( ) const
inline

Definition at line 151 of file acl_list.hpp.

+ Here is the caller graph for this function:

template<typename RULE>
bool VOM::ACL::list< RULE >::operator== ( const list< RULE > &  l) const
inline

Comparison operator - for UT.

Definition at line 158 of file acl_list.hpp.

+ Here is the call graph for this function:

template<typename RULE>
void VOM::ACL::list< RULE >::remove ( const RULE &  rule)
inline

Remove a rule from the list.

Definition at line 127 of file acl_list.hpp.

template<typename RULE>
static void VOM::ACL::list< RULE >::remove ( const handle_t handle)
inlinestatic

Definition at line 149 of file acl_list.hpp.

+ Here is the call graph for this function:

template<typename RULE>
const rules_t& VOM::ACL::list< RULE >::rules ( ) const
inline

Definition at line 153 of file acl_list.hpp.

+ Here is the caller graph for this function:

template<typename RULE>
std::shared_ptr<list> VOM::ACL::list< RULE >::singular ( ) const
inline

Return the 'sigular instance' of the ACL that matches this object.

Definition at line 95 of file acl_list.hpp.

template<typename RULE>
std::string VOM::ACL::list< RULE >::to_string ( void  ) const
inlinevirtual

convert to string format for debug purposes

Implements VOM::object_base.

Definition at line 105 of file acl_list.hpp.

+ Here is the call graph for this function:

Friends And Related Function Documentation

template<typename RULE>
friend class singular_db< key_t, list >
friend

It's the VOM::singular_db class that calls replay()

Definition at line 229 of file acl_list.hpp.

template<typename RULE>
friend class VOM::OM
friend

Definition at line 224 of file acl_list.hpp.


The documentation for this class was generated from the following files: