Kea  1.9.9-git
isc::yang::TranslatorSharedNetwork Class Reference

Shared network translation between YANG and JSON. More...

#include <translator_shared_network.h>

+ Inheritance diagram for isc::yang::TranslatorSharedNetwork:

Public Member Functions

 TranslatorSharedNetwork (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorSharedNetwork ()
 Destructor. More...
 
isc::data::ElementPtr getSharedNetwork (const std::string &xpath)
 Get and translate a shared network from YANG to JSON. More...
 
void setSharedNetwork (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set shared network from JSON to YANG. More...
 
- Public Member Functions inherited from isc::yang::TranslatorSubnets
 TranslatorSubnets (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorSubnets ()
 Destructor. More...
 
isc::data::ElementPtr getSubnets (const std::string &xpath)
 Get and translate subnets from YANG to JSON. More...
 
void setSubnets (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set subnets from JSON to YANG. More...
 
- Public Member Functions inherited from isc::yang::TranslatorSubnet
 TranslatorSubnet (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorSubnet ()
 Destructor. More...
 
isc::data::ElementPtr getSubnet (const std::string &xpath)
 Get and translate a subnet from YANG to JSON. More...
 
void setSubnet (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set subnet from JSON to YANG. More...
 
- Public Member Functions inherited from isc::yang::TranslatorPools
 TranslatorPools (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorPools ()
 Destructor. More...
 
isc::data::ElementPtr getPools (const std::string &xpath)
 Get and translate pools from YANG to JSON. More...
 
void setPools (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set (address) pools from JSON to YANG. More...
 
- Public Member Functions inherited from isc::yang::TranslatorPool
 TranslatorPool (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorPool ()
 Destructor. More...
 
isc::data::ElementPtr getPool (const std::string &xpath)
 Get and translate a pool from YANG to JSON. More...
 
void setPool (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set (address) pool from JSON to YANG. More...
 
- Public Member Functions inherited from isc::yang::TranslatorOptionDataList
 TranslatorOptionDataList (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorOptionDataList ()
 Destructor. More...
 
isc::data::ConstElementPtr getOptionDataList (const std::string &xpath)
 Get and translate option data list from YANG to JSON. More...
 
void setOptionDataList (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set option data list from JSON to YANG. More...
 
- Public Member Functions inherited from isc::yang::TranslatorOptionData
 TranslatorOptionData (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorOptionData ()
 Destructor. More...
 
isc::data::ElementPtr getOptionData (const std::string &xpath)
 Get and translate an option data from YANG to JSON. More...
 
void setOptionData (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set option data from JSON to YANG. More...
 
- Public Member Functions inherited from isc::yang::TranslatorBasic
 TranslatorBasic (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorBasic ()
 Destructor. More...
 
void delItem (const std::string &xpath)
 Delete basic value from YANG. More...
 
isc::data::ElementPtr getItem (const std::string &xpath)
 Get and translate basic value from YANG to JSON. More...
 
isc::data::ElementPtr getItems (const std::string &xpath)
 Get and translate a list of basic values from YANG to JSON. More...
 
sysrepo::S_Iter_Value getIter (const std::string &xpath)
 List iterator methods keeping the session private. More...
 
std::string getNext (sysrepo::S_Iter_Value iter)
 Get xpath of the next YANG list item. More...
 
void setItem (const std::string &xpath, isc::data::ConstElementPtr elem, sr_type_t type)
 Translate and set basic value from JSON to YANG. More...
 
- Public Member Functions inherited from isc::yang::TranslatorPdPools
 TranslatorPdPools (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorPdPools ()
 Destructor. More...
 
isc::data::ElementPtr getPdPools (const std::string &xpath)
 Get and translate pd-pools from YANG to JSON. More...
 
void setPdPools (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set pd-pools from JSON to YANG. More...
 
- Public Member Functions inherited from isc::yang::TranslatorPdPool
 TranslatorPdPool (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorPdPool ()
 Destructor. More...
 
isc::data::ElementPtr getPdPool (const std::string &xpath)
 Get and translate a pd-pool from YANG to JSON. More...
 
void setPdPool (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set pd-pool from JSON to YANG. More...
 
- Public Member Functions inherited from isc::yang::TranslatorHosts
 TranslatorHosts (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorHosts ()
 Destructor. More...
 
isc::data::ElementPtr getHosts (const std::string &xpath)
 Get and translate host reservations from YANG to JSON. More...
 
void setHosts (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set (address) host reservations from JSON to YANG. More...
 
- Public Member Functions inherited from isc::yang::TranslatorHost
 TranslatorHost (sysrepo::S_Session session, const std::string &model)
 Constructor. More...
 
virtual ~TranslatorHost ()
 Destructor. More...
 
isc::data::ElementPtr getHost (const std::string &xpath)
 Get and translate a host reservation from YANG to JSON. More...
 
void setHost (const std::string &xpath, isc::data::ConstElementPtr elem)
 Translate and set host reservation from JSON to YANG. More...
 

Protected Member Functions

isc::data::ElementPtr getSharedNetworkKea (const std::string &xpath, const std::string &subsel)
 getSharedNetwork for kea-dhcp4-server and kea-dhcp6-server models More...
 
void setSharedNetworkKea (const std::string &xpath, isc::data::ConstElementPtr elem, const std::string &subsel)
 setSharedNetwork for kea-dhcp4-server and kea-dhcp6-server models More...
 
- Protected Member Functions inherited from isc::yang::TranslatorSubnets
isc::data::ElementPtr getSubnetsCommon (const std::string &xpath, const std::string &subsel)
 getSubnets common part. More...
 
void setSubnetsIetf6 (const std::string &xpath, isc::data::ConstElementPtr elem)
 setSubnets for ietf-dhcpv6-server. More...
 
void setSubnetsKea (const std::string &xpath, isc::data::ConstElementPtr elem, const std::string &subsel)
 setSubnets for kea-dhcp[46]-server. More...
 
- Protected Member Functions inherited from isc::yang::TranslatorSubnet
isc::data::ElementPtr getSubnetIetf6 (const std::string &xpath)
 getSubnet for ietf-dhcpv6-server. More...
 
isc::data::ElementPtr getSubnetKea (const std::string &xpath)
 getSubnet for kea-dhcp[46]-server. More...
 
void setSubnetIetf6 (const std::string &xpath, isc::data::ConstElementPtr elem)
 setSubnet for ietf-dhcpv6-server. More...
 
void setSubnetKea (const std::string &xpath, isc::data::ConstElementPtr elem)
 setSubnet for kea-dhcp[46]-server. More...
 
- Protected Member Functions inherited from isc::yang::TranslatorPools
isc::data::ElementPtr getPoolsIetf (const std::string &xpath)
 getPools for ietf-dhcpv6-server. More...
 
isc::data::ElementPtr getPoolsKea (const std::string &xpath)
 getPools for kea-dhcp[46]-server. More...
 
void setPoolsByAddresses (const std::string &xpath, isc::data::ConstElementPtr elem)
 setPools using address pair. More...
 
void setPoolsById (const std::string &xpath, isc::data::ConstElementPtr elem)
 setPools using pool-id. More...
 
- Protected Member Functions inherited from isc::yang::TranslatorPool
isc::data::ElementPtr getPoolIetf6 (const std::string &xpath)
 getPool for ietf-dhcpv6-server. More...
 
isc::data::ElementPtr getPoolKea (const std::string &xpath)
 getPool for kea-dhcp[46]-server. More...
 
void setPoolIetf6 (const std::string &xpath, isc::data::ConstElementPtr elem)
 setPool for ietf-dhcpv6-server. More...
 
void setPoolKea (const std::string &xpath, isc::data::ConstElementPtr elem)
 setPool for kea-dhcp[46]-server. More...
 
- Protected Member Functions inherited from isc::yang::TranslatorOptionDataList
isc::data::ConstElementPtr getOptionDataListKea (const std::string &xpath)
 getOptionDataList for kea-dhcp[46]. More...
 
void setOptionDataListKea (const std::string &xpath, isc::data::ConstElementPtr elem)
 setOptionDataList for kea-dhcp[46]. More...
 
- Protected Member Functions inherited from isc::yang::TranslatorOptionData
isc::data::ElementPtr getOptionDataKea (const std::string &xpath)
 getOptionData JSON for kea-dhcp[46]. More...
 
void setOptionDataKea (const std::string &xpath, isc::data::ConstElementPtr elem)
 setOptionData for kea-dhcp[46]. More...
 
- Protected Member Functions inherited from isc::yang::TranslatorPdPools
isc::data::ElementPtr getPdPoolsCommon (const std::string &xpath)
 getPdPools common part. More...
 
void setPdPoolsId (const std::string &xpath, isc::data::ConstElementPtr elem)
 setPdPools using pool-id. More...
 
void setPdPoolsPrefix (const std::string &xpath, isc::data::ConstElementPtr elem)
 setPdPools using prefix. More...
 
- Protected Member Functions inherited from isc::yang::TranslatorPdPool
isc::data::ElementPtr getPdPoolIetf6 (const std::string &xpath)
 getPdPool for ietf-dhcpv6-server. More...
 
isc::data::ElementPtr getPdPoolKea (const std::string &xpath)
 getPdPool for kea-dhcp6-server. More...
 
void setPdPoolIetf6 (const std::string &xpath, isc::data::ConstElementPtr elem)
 setPdPool for ietf-dhcpv6-server. More...
 
void setPdPoolKea (const std::string &xpath, isc::data::ConstElementPtr elem)
 setPdPool for kea-dhcp6-server. More...
 
- Protected Member Functions inherited from isc::yang::TranslatorHosts
void setHostsKea (const std::string &xpath, isc::data::ConstElementPtr elem)
 setHosts for kea-dhcp[46]. More...
 
- Protected Member Functions inherited from isc::yang::TranslatorHost
isc::data::ElementPtr getHostKea (const std::string &xpath)
 getHost for kea-dhcp[46]-server models. More...
 
void setHostKea (const std::string &xpath, isc::data::ConstElementPtr elem)
 setHost for kea-dhcp[46]-server models. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from isc::yang::TranslatorPool
static void getAddresses (const std::string &prefix, std::string &start_address, std::string &end_address)
 Get start and end addresses from prefix. More...
 
- Static Public Member Functions inherited from isc::yang::TranslatorBasic
static isc::data::ElementPtr value (sysrepo::S_Val s_val)
 Translate basic value from YANG to JSON. More...
 
static sysrepo::S_Val value (isc::data::ConstElementPtr elem, sr_type_t type)
 Translate basic value from JSON to YANG. More...
 
- Protected Attributes inherited from isc::yang::TranslatorBasic
std::string model_
 The model. More...
 
sysrepo::S_Session session_
 The sysrepo session. More...
 

Detailed Description

Shared network translation between YANG and JSON.

JSON syntax for kea-dhcp4 is:

{
"name": <name>,
"subnet4": <subnet list>,
"valid-lifetime": <valid lifetime>,
"min-valid-lifetime": <minimum valid lifetime>,
"max-valid-lifetime": <maximum valid lifetime>,
"renew-timer": <renew timer>,
"rebind-timer": <rebind timer>,
"calculate-tee-times": <calculate T1/T2 times>,
"t1-percent": <T1 percent>,
"t2-percent": <T2 percent>,
"option-data": [ <list of option data> ],
"interface": "<interface>",
"client-class": "<guard class name>",
"require-client-classes": [ <list of required class names> ],
"reservation-mode": <host reservation mode>,
"relay": <relay ip address(es)>,
"match-client-id": <match client id flag>,
"next-server": "<next server>",
"server-hostname": "<server hostname>",
"boot-file-name": "<boot file name>",
"authoritative": <authoritative flag>,
"user-context": { <json map> },
"comment": "<comment>"
}

JSON syntax for kea-dhcp6 is:

{
"name": <name>,
"subnet6": <subnet list>,
"preferred-lifetime": <preferred lifetime>,
"min-preferred-lifetime": <minimum preferred lifetime>,
"max-preferred-lifetime": <maximum preferred lifetime>,
"valid-lifetime": <valid lifetime>,
"min-valid-lifetime": <minimum valid lifetime>,
"max-valid-lifetime": <maximum valid lifetime>,
"renew-timer": <renew timer>,
"rebind-timer": <rebind timer>,
"calculate-tee-times": <calculate T1/T2 times>,
"t1-percent": <T1 percent>,
"t2-percent": <T2 percent>,
"option-data": [ <list of option data> ],
"interface": "<interface>",
"interface-id": "<interface id>",
"rapid-commit": <rapid commit flag>,
"client-class": "<guard class name>",
"require-client-classes": [ <list of required class names> ],
"reservation-mode": <host reservation mode>,
"relay": <relay ip address(es)>,
"user-context": { <json map> },
"comment": "<comment>"
}

YANG syntax for kea-dhcp[46]-server is with name as the list key:

+--rw name string
+--rw valid-lifetime? uint32
+--rw min-valid-lifetime? uint32
+--rw max-valid-lifetime? uint32
+--rw renew-timer? uint32
+--rw rebind-timer? uint32
+--rw calculate-tee-times? boolean
+--rw t1-percent? decimal64
+--rw t2-percent? decimal64
+--rw option-data*
+--rw interface? string
+--rw client-class? string
+--rw require-client-classes* string
+--rw reservation-mode? enumeration
+--rw relay ip-addresses*
+--rw user-context? string
(DHCPv4 only)
+--rw subnet4*
+--rw match-client-id? boolean
+--rw next-server? inet:ipv4-address
+--rw server-hostname? string
+--rw boot-file-name? string
+--rw authoritative? boolean
(DHCPv6 only)
+--rw subnet6*
+--rw preferred-lifetime? uint32
+--rw min-preferred-lifetime? uint32
+--rw max-preferred-lifetime? uint32
+--rw interface-id? string
+--rw rapid-commit? boolean

An example in JSON and YANG formats:

[
{
"name": "foo",
"subnet6":
[
{
"subnet": "2001:db8::/48",
"id": 123
}
]
}
]
/kea-dhcp6-server:config (container)
/kea-dhcp6-server:config/shared-network[name='foo'] (list instance)
/kea-dhcp6-server:config/shared-network[name='foo']/name = foo
/kea-dhcp6-server:config/shared-network[name='foo']/
subnet6[id='123'] (list instance)
/kea-dhcp6-server:config/shared-network[name='foo']/
subnet6[id='123']/id = 123
/kea-dhcp6-server:config/shared-network[name='foo']/
subnet6[id='123']/subnet = 2001:db8::/48

A translator class for converting a shared network between YANG and JSON.

Currently supports the following models:

  • kea-dhcp4-server
  • kea-dhcp6-server

Definition at line 144 of file translator_shared_network.h.

Constructor & Destructor Documentation

isc::yang::TranslatorSharedNetwork::TranslatorSharedNetwork ( sysrepo::S_Session  session,
const std::string &  model 
)

Constructor.

Parameters
sessionSysrepo session.
modelModel name.

Definition at line 23 of file translator_shared_network.cc.

isc::yang::TranslatorSharedNetwork::~TranslatorSharedNetwork ( )
virtual

Destructor.

Definition at line 38 of file translator_shared_network.cc.

Member Function Documentation

ElementPtr isc::yang::TranslatorSharedNetwork::getSharedNetwork ( const std::string &  xpath)

Get and translate a shared network from YANG to JSON.

Parameters
xpathThe xpath of the shared network.
Returns
JSON representation of the shared network.
Exceptions
SysrepoErrorwhen sysrepo raises an error.

Definition at line 42 of file translator_shared_network.cc.

References getSharedNetworkKea(), isc_throw, isc::yang::TranslatorBasic::model_, and isc::Exception::what().

Referenced by isc::yang::TranslatorSharedNetworks::getSharedNetworks().

+ Here is the call graph for this function:

ElementPtr isc::yang::TranslatorSharedNetwork::getSharedNetworkKea ( const std::string &  xpath,
const std::string &  subsel 
)
protected

getSharedNetwork for kea-dhcp4-server and kea-dhcp6-server models

Parameters
xpathThe xpath of the shared network.
subselThe subnet list name (either "subnet4" or "subnet6").
Returns
JSON representation of the shared network.

Definition at line 59 of file translator_shared_network.cc.

References isc::yang::TranslatorBasic::getItem(), isc::yang::TranslatorBasic::getItems(), isc::yang::TranslatorOptionDataList::getOptionDataList(), isc::yang::TranslatorSubnets::getSubnets(), and isc_throw.

Referenced by getSharedNetwork().

+ Here is the call graph for this function:

void isc::yang::TranslatorSharedNetwork::setSharedNetwork ( const std::string &  xpath,
isc::data::ConstElementPtr  elem 
)

Translate and set shared network from JSON to YANG.

Parameters
xpathThe xpath of the shared network.
elemThe JSON element.

Definition at line 184 of file translator_shared_network.cc.

References isc_throw, isc::yang::TranslatorBasic::model_, setSharedNetworkKea(), and isc::Exception::what().

Referenced by isc::yang::TranslatorSharedNetworks::setSharedNetworksKea().

+ Here is the call graph for this function:

void isc::yang::TranslatorSharedNetwork::setSharedNetworkKea ( const std::string &  xpath,
isc::data::ConstElementPtr  elem,
const std::string &  subsel 
)
protected

setSharedNetwork for kea-dhcp4-server and kea-dhcp6-server models

Parameters
xpathThe xpath of the shared network.
elemThe JSON element.
subselThe subnet list name (either "subnet4" or "subnet6").

Definition at line 204 of file translator_shared_network.cc.

References isc::yang::Adaptor::getContext(), isc::yang::TranslatorBasic::setItem(), isc::yang::TranslatorOptionDataList::setOptionDataList(), and isc::yang::TranslatorSubnets::setSubnets().

Referenced by setSharedNetwork().

+ Here is the call graph for this function:


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