FD.io VPP  v18.11-rc0-18-g2a3fb1a
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 key_t &key, const HW::item< handle_t > &item)
 
static void remove (const HW::item< handle_t > &item)
 

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 61 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 67 of file acl_list.hpp.

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

Copy Constructor.

Definition at line 77 of file acl_list.hpp.

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

Destructor.

Definition at line 87 of file acl_list.hpp.

Member Function Documentation

template<typename RULE>
static void VOM::ACL::list< RULE >::add ( const key_t key,
const HW::item< handle_t > &  item 
)
inlinestatic

Definition at line 145 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 101 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 135 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 140 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 133 of file acl_list.hpp.

+ Here is the call 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 123 of file acl_list.hpp.

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

Definition at line 159 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 166 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 128 of file acl_list.hpp.

+ Here is the caller graph for this function:

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

Definition at line 154 of file acl_list.hpp.

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

Definition at line 161 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 96 of file acl_list.hpp.

+ Here is the caller graph for this function:

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 106 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 239 of file acl_list.hpp.

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

Definition at line 234 of file acl_list.hpp.


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