NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
ndn::security::v2::validator_config::Rule Class Reference

#include <rule.hpp>

Inheritance diagram for ndn::security::v2::validator_config::Rule:
Collaboration diagram for ndn::security::v2::validator_config::Rule:

Public Member Functions

 Rule (const std::string &id, uint32_t pktType)
 
const std::string & getId () const
 
uint32_t getPktType () const
 
void addFilter (unique_ptr< Filter > filter)
 
void addChecker (unique_ptr< Checker > checker)
 
bool match (uint32_t pktType, const Name &pktName, const shared_ptr< ValidationState > &state) const
 check if the packet name matches rule's filter More...
 
bool check (uint32_t pktType, tlv::SignatureTypeValue sigType, const Name &pktName, const Name &klName, const shared_ptr< ValidationState > &state) const
 Check if packet satisfies rule's condition. More...
 

Static Public Member Functions

static unique_ptr< Rulecreate (const ConfigSection &configSection, const std::string &configFilename)
 create a rule from configuration section More...
 

Public Attributes

NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PRIVATE __pad0__: std::string m_id
 
uint32_t m_pktType
 
std::vector< unique_ptr< Filter > > m_filters
 
std::vector< unique_ptr< Checker > > m_checkers
 

Detailed Description

Definition at line 36 of file rule.hpp.

Constructor & Destructor Documentation

◆ Rule()

ndn::security::v2::validator_config::Rule::Rule ( const std::string &  id,
uint32_t  pktType 
)

Definition at line 35 of file rule.cpp.

Member Function Documentation

◆ getId()

const std::string& ndn::security::v2::validator_config::Rule::getId ( ) const
inline

Definition at line 42 of file rule.hpp.

◆ getPktType()

uint32_t ndn::security::v2::validator_config::Rule::getPktType ( ) const
inline

◆ addFilter()

void ndn::security::v2::validator_config::Rule::addFilter ( unique_ptr< Filter filter)

Definition at line 42 of file rule.cpp.

References m_filters, and nonstd::optional_lite::std11::move().

Referenced by getPktType().

◆ addChecker()

void ndn::security::v2::validator_config::Rule::addChecker ( unique_ptr< Checker checker)

Definition at line 48 of file rule.cpp.

References m_checkers, and nonstd::optional_lite::std11::move().

Referenced by getPktType().

◆ match()

bool ndn::security::v2::validator_config::Rule::match ( uint32_t  pktType,
const Name pktName,
const shared_ptr< ValidationState > &  state 
) const

check if the packet name matches rule's filter

If no filters were added, the rule matches everything.

Parameters
pktTypetlv::Interest or tlv::Data
pktNamepacket name, for signed Interests the last two components are not removed
stateThe associated validation state
Return values
trueIf at least one filter matches pktName
falseIf none of the filters match pktName
Exceptions
Errorthe supplied pktType doesn't match one for which the rule is designed

Definition at line 54 of file rule.cpp.

References m_filters, m_pktType, NDN_LOG_TRACE, NDN_THROW, and ndn::to_string().

Referenced by getPktType().

◆ check()

bool ndn::security::v2::validator_config::Rule::check ( uint32_t  pktType,
tlv::SignatureTypeValue  sigType,
const Name pktName,
const Name klName,
const shared_ptr< ValidationState > &  state 
) const

Check if packet satisfies rule's condition.

Parameters
pktTypetlv::Interest or tlv::Data
sigTypeSignature type
pktNamepacket name, for signed Interests the last two components are not removed
klNameKeyLocator name
stateValidation state
Return values
falsepacket violates all checkers. fail() will have been called on state with proper code and message.
truepacket satisfies at least one checker, further validation is needed.
Exceptions
Errorthe supplied pktType doesn't match one for which the rule is designed.

Definition at line 77 of file rule.cpp.

References m_checkers, m_pktType, nonstd::optional_lite::std11::move(), NDN_LOG_TRACE, NDN_THROW, ndn::security::v2::ValidationError::POLICY_ERROR, and ndn::to_string().

Referenced by getPktType().

◆ create()

unique_ptr< Rule > ndn::security::v2::validator_config::Rule::create ( const ConfigSection configSection,
const std::string &  configFilename 
)
static

create a rule from configuration section

Parameters
configSectionThe section containing the definition of checker.
configFilenameThe configuration file name.
Returns
a rule created from configuration

Definition at line 107 of file rule.cpp.

References ndn::security::v2::validator_config::Filter::create(), ndn::security::v2::validator_config::Checker::create(), ndn::tlv::Data, ndn::tlv::Interest, and NDN_THROW.

Referenced by getPktType(), and ndn::security::v2::validator_config::ValidationPolicyConfig::load().

Member Data Documentation

◆ __pad0__

NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PRIVATE ndn::security::v2::validator_config::Rule::__pad0__

Definition at line 106 of file rule.hpp.

◆ m_pktType

uint32_t ndn::security::v2::validator_config::Rule::m_pktType

Definition at line 107 of file rule.hpp.

Referenced by check(), getPktType(), and match().

◆ m_filters

std::vector<unique_ptr<Filter> > ndn::security::v2::validator_config::Rule::m_filters

Definition at line 108 of file rule.hpp.

Referenced by addFilter(), and match().

◆ m_checkers

std::vector<unique_ptr<Checker> > ndn::security::v2::validator_config::Rule::m_checkers

Definition at line 109 of file rule.hpp.

Referenced by addChecker(), and check().


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