Kea 2.5.8
classify.h File Reference

Defines elements for storing the names of client classes. More...

#include <cc/data.h>
#include <boost/multi_index_container.hpp>
#include <boost/multi_index/member.hpp>
#include <boost/multi_index/hashed_index.hpp>
#include <boost/multi_index/identity.hpp>
#include <boost/multi_index/ordered_index.hpp>
#include <boost/multi_index/sequenced_index.hpp>
#include <string>
+ Include dependency graph for classify.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  isc::dhcp::ClassNameTag
 Tag for the name index. More...
 
struct  isc::dhcp::ClassSequenceTag
 Tag for the sequence index. More...
 
class  isc::dhcp::ClientClasses
 Container for storing client class names. More...
 
struct  isc::dhcp::SubClassRelation
 Defines a subclass to template class relation. More...
 
struct  isc::dhcp::TemplateClassNameTag
 Tag for the name index. More...
 
struct  isc::dhcp::TemplateClassSequenceTag
 Tag for the sequence index. More...
 

Namespaces

namespace  isc
 Defines the logger used by the top-level component of kea-lfc.
 
namespace  isc::dhcp
 

Typedefs

typedef std::string isc::dhcp::ClientClass
 Defines a single class name.
 
typedef boost::multi_index_container< ClientClass, boost::multi_index::indexed_by< boost::multi_index::sequenced< boost::multi_index::tag< ClassSequenceTag > >, boost::multi_index::hashed_unique< boost::multi_index::tag< ClassNameTag >, boost::multi_index::identity< ClientClass > > > > isc::dhcp::ClientClassContainer
 the client class multi-index.
 
typedef boost::multi_index_container< SubClassRelation, boost::multi_index::indexed_by< boost::multi_index::sequenced< boost::multi_index::tag< TemplateClassSequenceTag > >, boost::multi_index::hashed_unique< boost::multi_index::tag< TemplateClassNameTag >, boost::multi_index::member< SubClassRelation, ClientClass, &SubClassRelation::class_def_ > > > > isc::dhcp::SubClassRelationContainer
 the subclass multi-index.
 

Detailed Description

Defines elements for storing the names of client classes.

This file defines common elements used to track the client classes that may be associated with a given packet. In order to minimize the exposure of the DHCP library to server side concepts such as client classification the classes herein provide a mechanism to maintain lists of class names, rather than the classes they represent. It is the upper layers' prerogative to use these names as they see fit.

Todo:
This file should be moved to dhcpsrv eventually as the classification is server side concept. Client has no notion of classifying incoming server messages as it usually talks to only one server. That move is not possible yet, as the Pkt4 and Pkt6 classes have server-side implementation, even though they reside in the dhcp directory.

Definition in file classify.h.