kea-manage/lib/types/types.go

41 lines
961 B
Go
Raw Permalink Normal View History

2024-09-14 04:21:14 +00:00
package types
import "strings"
2024-09-14 04:21:14 +00:00
// Identifier as defined by the kea database entries. Values are hardcoded from
// a running instance of schema version 22.1
type Identifier int
func (i Identifier) Int() int {
return int(i)
}
//go:generate stringer -linecomment -type=Identifier
const (
HwAddress Identifier = 0 // hwaddr
DuID Identifier = 1 // duid
CircuitId Identifier = 2 // circuit-id
ClientId Identifier = 3 // client-id
FlexId Identifier = 4 // flex-id
Invalid Identifier = 255 // invalid
)
// TODO: is there a generator that can create the lookup table for me?
var types = map[string]Identifier{
"macaddr": HwAddress,
"hwaddr": HwAddress,
"duid": DuID,
"circuit-id": CircuitId,
"client-id": ClientId,
"flex-id": FlexId,
"invalid": Invalid,
}
func LookupIdentifier(rtype string) Identifier {
rtype = strings.ToLower(rtype)
if t, ok := types[rtype]; ok == true {
return t
}
return Invalid
}