22 {
"any", HWAddr::HWADDR_SOURCE_ANY },
23 {
"raw", HWAddr::HWADDR_SOURCE_RAW },
24 {
"duid", HWAddr::HWADDR_SOURCE_DUID },
25 {
"ipv6-link-local", HWAddr::HWADDR_SOURCE_IPV6_LINK_LOCAL },
26 {
"client-link-addr-option", HWAddr::HWADDR_SOURCE_CLIENT_ADDR_RELAY_OPTION },
27 {
"rfc6939", HWAddr::HWADDR_SOURCE_CLIENT_ADDR_RELAY_OPTION },
28 {
"remote-id", HWAddr::HWADDR_SOURCE_REMOTE_ID },
29 {
"rfc4649", HWAddr::HWADDR_SOURCE_REMOTE_ID },
30 {
"subscriber-id", HWAddr::HWADDR_SOURCE_SUBSCRIBER_ID },
31 {
"rfc4580", HWAddr::HWADDR_SOURCE_SUBSCRIBER_ID },
32 {
"docsis-cmts", HWAddr::HWADDR_SOURCE_DOCSIS_CMTS },
33 {
"docsis-modem", HWAddr::HWADDR_SOURCE_DOCSIS_MODEM }
48 for (
unsigned i = 0; i <
sizeof(sources)/
sizeof(sources[0]); ++i) {
49 if (name.compare(sources[i].name) == 0) {
50 return (sources[i].type);
58 for (CfgMACSources::const_iterator it =
mac_sources_.begin();
62 <<
"' specified twice.");
70 for (CfgMACSources::const_iterator source =
mac_sources_.cbegin();
73 for (
unsigned i = 0; i <
sizeof(sources)/
sizeof(sources[0]); ++i) {
74 if (sources[i].type == *source) {
75 name = sources[i].name;
A generic exception that is thrown if a parameter given to a method is considered invalid in that con...
A generic exception that is thrown if a parameter given to a method or function is considered invalid...
static ElementPtr create(const Position &pos=ZERO_POSITION())
static ElementPtr createList(const Position &pos=ZERO_POSITION())
Creates an empty ListElement type ElementPtr.
void add(uint32_t source)
Adds additional MAC/hardware address acquisition.
virtual isc::data::ElementPtr toElement() const
Unparse a configuration object.
CfgMACSource()
Default constructor.
CfgMACSources mac_sources_
Actual MAC sources storage.
static uint32_t MACSourceFromText(const std::string &name)
Attempts to convert known hardware address sources to uint32_t.
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
static const uint32_t HWADDR_SOURCE_ANY
Not really a type, only used in getMAC() calls.
boost::shared_ptr< Element > ElementPtr
Defines the logger used by the top-level component of kea-lfc.