From b7f1a735fb0df9ab90905cd3e5271af359435a29 Mon Sep 17 00:00:00 2001 From: Chris Hills Date: Sat, 29 Nov 2025 20:40:02 +0000 Subject: [PATCH] Add vendor files for Arista --- vendors/arista/dictionary.arista | 38 + vendors/arista/generate.go | 3 + vendors/arista/generated.go | 1794 ++++++++++++++++++++++++++++++ 3 files changed, 1835 insertions(+) create mode 100644 vendors/arista/dictionary.arista create mode 100644 vendors/arista/generate.go create mode 100644 vendors/arista/generated.go diff --git a/vendors/arista/dictionary.arista b/vendors/arista/dictionary.arista new file mode 100644 index 0000000..df160a0 --- /dev/null +++ b/vendors/arista/dictionary.arista @@ -0,0 +1,38 @@ +VENDOR arista 30065 +BEGIN-VENDOR arista + +ATTRIBUTE AVPair 1 string +ATTRIBUTE User-Priv-Level 2 integer +ATTRIBUTE User-Role 3 string +ATTRIBUTE CVP-Role 4 string +ATTRIBUTE Command 5 string +ATTRIBUTE WebAuth 6 integer +ATTRIBUTE BlockMac 7 string +ATTRIBUTE UnblockMac 8 string +ATTRIBUTE PortFlap 9 integer +ATTRIBUTE Captive-Portal 10 string +ATTRIBUTE Segment-Id 11 string +ATTRIBUTE Origin-Identifier 12 string +ATTRIBUTE PeriodicIdentity 13 integer +ATTRIBUTE Dynamic-HostMode 14 integer +ATTRIBUTE DeviceType 15 integer +ATTRIBUTE Action 16 integer +ATTRIBUTE Device-Profiling 17 string +ATTRIBUTE Port-Shutdown 18 integer +ATTRIBUTE Mvrp 19 integer +ATTRIBUTE Tenant-Id 20 integer +ATTRIBUTE Interface-Profile 21 string + +VALUE Action reauthenticate 1 +VALUE DeviceType none 0 +VALUE DeviceType phone 1 +VALUE Dynamic-HostMode disabled 0 +VALUE Dynamic-HostMode multi-host 1 +VALUE PeriodicIdentity stop 0 +VALUE PeriodicIdentity start 1 +VALUE Mvrp disable 0 +VALUE Mvrp enable 1 +VALUE WebAuth start 1 +VALUE WebAuth complete 2 + +END-VENDOR arista diff --git a/vendors/arista/generate.go b/vendors/arista/generate.go new file mode 100644 index 0000000..60a2949 --- /dev/null +++ b/vendors/arista/generate.go @@ -0,0 +1,3 @@ +//go:generate go run ../../cmd/radius-dict-gen/main.go -package arista -output generated.go dictionary.arista + +package arista diff --git a/vendors/arista/generated.go b/vendors/arista/generated.go new file mode 100644 index 0000000..9525ba8 --- /dev/null +++ b/vendors/arista/generated.go @@ -0,0 +1,1794 @@ +// Code generated by radius-dict-gen. DO NOT EDIT. + +package arista + +import ( + "strconv" + + "layeh.com/radius" + "layeh.com/radius/rfc2865" +) + +const ( + _Arista_VendorID = 30065 +) + +func _Arista_AddVendor(p *radius.Packet, typ byte, attr radius.Attribute) (err error) { + var vsa radius.Attribute + vendor := make(radius.Attribute, 2+len(attr)) + vendor[0] = typ + vendor[1] = byte(len(vendor)) + copy(vendor[2:], attr) + vsa, err = radius.NewVendorSpecific(_Arista_VendorID, vendor) + if err != nil { + return + } + p.Add(rfc2865.VendorSpecific_Type, vsa) + return +} + +func _Arista_GetsVendor(p *radius.Packet, typ byte) (values []radius.Attribute) { + for _, avp := range p.Attributes { + if avp.Type != rfc2865.VendorSpecific_Type { + continue + } + attr := avp.Attribute + vendorID, vsa, err := radius.VendorSpecific(attr) + if err != nil || vendorID != _Arista_VendorID { + continue + } + for len(vsa) >= 3 { + vsaTyp, vsaLen := vsa[0], vsa[1] + if int(vsaLen) > len(vsa) || vsaLen < 3 { + break + } + if vsaTyp == typ { + values = append(values, vsa[2:int(vsaLen)]) + } + vsa = vsa[int(vsaLen):] + } + } + return +} + +func _Arista_LookupVendor(p *radius.Packet, typ byte) (attr radius.Attribute, ok bool) { + for _, avp := range p.Attributes { + if avp.Type != rfc2865.VendorSpecific_Type { + continue + } + attr := avp.Attribute + vendorID, vsa, err := radius.VendorSpecific(attr) + if err != nil || vendorID != _Arista_VendorID { + continue + } + for len(vsa) >= 3 { + vsaTyp, vsaLen := vsa[0], vsa[1] + if int(vsaLen) > len(vsa) || vsaLen < 3 { + break + } + if vsaTyp == typ { + return vsa[2:int(vsaLen)], true + } + vsa = vsa[int(vsaLen):] + } + } + return +} + +func _Arista_SetVendor(p *radius.Packet, typ byte, attr radius.Attribute) (err error) { + for i := 0; i < len(p.Attributes); { + avp := p.Attributes[i] + if avp.Type != rfc2865.VendorSpecific_Type { + i++ + continue + } + vendorID, vsa, err := radius.VendorSpecific(avp.Attribute) + if err != nil || vendorID != _Arista_VendorID { + i++ + continue + } + for j := 0; len(vsa[j:]) >= 3; { + vsaTyp, vsaLen := vsa[0], vsa[1] + if int(vsaLen) > len(vsa[j:]) || vsaLen < 3 { + i++ + break + } + if vsaTyp == typ { + vsa = append(vsa[:j], vsa[j+int(vsaLen):]...) + } + j += int(vsaLen) + } + if len(vsa) > 0 { + copy(avp.Attribute[4:], vsa) + i++ + } else { + p.Attributes = append(p.Attributes[:i], p.Attributes[i+i:]...) + } + } + return _Arista_AddVendor(p, typ, attr) +} + +func _Arista_DelVendor(p *radius.Packet, typ byte) { +vsaLoop: + for i := 0; i < len(p.Attributes); { + avp := p.Attributes[i] + if avp.Type != rfc2865.VendorSpecific_Type { + i++ + continue + } + vendorID, vsa, err := radius.VendorSpecific(avp.Attribute) + if err != nil || vendorID != _Arista_VendorID { + i++ + continue + } + offset := 0 + for len(vsa[offset:]) >= 3 { + vsaTyp, vsaLen := vsa[offset], vsa[offset+1] + if int(vsaLen) > len(vsa) || vsaLen < 3 { + continue vsaLoop + } + if vsaTyp == typ { + copy(vsa[offset:], vsa[offset+int(vsaLen):]) + vsa = vsa[:len(vsa)-int(vsaLen)] + } else { + offset += int(vsaLen) + } + } + if offset == 0 { + p.Attributes = append(p.Attributes[:i], p.Attributes[i+1:]...) + } else { + i++ + } + } + return +} + +func AVPair_Add(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 1, a) +} + +func AVPair_AddString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 1, a) +} + +func AVPair_Get(p *radius.Packet) (value []byte) { + value, _ = AVPair_Lookup(p) + return +} + +func AVPair_GetString(p *radius.Packet) (value string) { + value, _ = AVPair_LookupString(p) + return +} + +func AVPair_Gets(p *radius.Packet) (values [][]byte, err error) { + var i []byte + for _, attr := range _Arista_GetsVendor(p, 1) { + i = radius.Bytes(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func AVPair_GetStrings(p *radius.Packet) (values []string, err error) { + var i string + for _, attr := range _Arista_GetsVendor(p, 1) { + i = radius.String(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func AVPair_Lookup(p *radius.Packet) (value []byte, err error) { + a, ok := _Arista_LookupVendor(p, 1) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.Bytes(a) + return +} + +func AVPair_LookupString(p *radius.Packet) (value string, err error) { + a, ok := _Arista_LookupVendor(p, 1) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.String(a) + return +} + +func AVPair_Set(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 1, a) +} + +func AVPair_SetString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 1, a) +} + +func AVPair_Del(p *radius.Packet) { + _Arista_DelVendor(p, 1) +} + +type UserPrivLevel uint32 + +var UserPrivLevel_Strings = map[UserPrivLevel]string{} + +func (a UserPrivLevel) String() string { + if str, ok := UserPrivLevel_Strings[a]; ok { + return str + } + return "UserPrivLevel(" + strconv.FormatUint(uint64(a), 10) + ")" +} + +func UserPrivLevel_Add(p *radius.Packet, value UserPrivLevel) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_AddVendor(p, 2, a) +} + +func UserPrivLevel_Get(p *radius.Packet) (value UserPrivLevel) { + value, _ = UserPrivLevel_Lookup(p) + return +} + +func UserPrivLevel_Gets(p *radius.Packet) (values []UserPrivLevel, err error) { + var i uint32 + for _, attr := range _Arista_GetsVendor(p, 2) { + i, err = radius.Integer(attr) + if err != nil { + return + } + values = append(values, UserPrivLevel(i)) + } + return +} + +func UserPrivLevel_Lookup(p *radius.Packet) (value UserPrivLevel, err error) { + a, ok := _Arista_LookupVendor(p, 2) + if !ok { + err = radius.ErrNoAttribute + return + } + var i uint32 + i, err = radius.Integer(a) + if err != nil { + return + } + value = UserPrivLevel(i) + return +} + +func UserPrivLevel_Set(p *radius.Packet, value UserPrivLevel) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_SetVendor(p, 2, a) +} + +func UserPrivLevel_Del(p *radius.Packet) { + _Arista_DelVendor(p, 2) +} + +func UserRole_Add(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 3, a) +} + +func UserRole_AddString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 3, a) +} + +func UserRole_Get(p *radius.Packet) (value []byte) { + value, _ = UserRole_Lookup(p) + return +} + +func UserRole_GetString(p *radius.Packet) (value string) { + value, _ = UserRole_LookupString(p) + return +} + +func UserRole_Gets(p *radius.Packet) (values [][]byte, err error) { + var i []byte + for _, attr := range _Arista_GetsVendor(p, 3) { + i = radius.Bytes(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func UserRole_GetStrings(p *radius.Packet) (values []string, err error) { + var i string + for _, attr := range _Arista_GetsVendor(p, 3) { + i = radius.String(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func UserRole_Lookup(p *radius.Packet) (value []byte, err error) { + a, ok := _Arista_LookupVendor(p, 3) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.Bytes(a) + return +} + +func UserRole_LookupString(p *radius.Packet) (value string, err error) { + a, ok := _Arista_LookupVendor(p, 3) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.String(a) + return +} + +func UserRole_Set(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 3, a) +} + +func UserRole_SetString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 3, a) +} + +func UserRole_Del(p *radius.Packet) { + _Arista_DelVendor(p, 3) +} + +func CVPRole_Add(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 4, a) +} + +func CVPRole_AddString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 4, a) +} + +func CVPRole_Get(p *radius.Packet) (value []byte) { + value, _ = CVPRole_Lookup(p) + return +} + +func CVPRole_GetString(p *radius.Packet) (value string) { + value, _ = CVPRole_LookupString(p) + return +} + +func CVPRole_Gets(p *radius.Packet) (values [][]byte, err error) { + var i []byte + for _, attr := range _Arista_GetsVendor(p, 4) { + i = radius.Bytes(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func CVPRole_GetStrings(p *radius.Packet) (values []string, err error) { + var i string + for _, attr := range _Arista_GetsVendor(p, 4) { + i = radius.String(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func CVPRole_Lookup(p *radius.Packet) (value []byte, err error) { + a, ok := _Arista_LookupVendor(p, 4) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.Bytes(a) + return +} + +func CVPRole_LookupString(p *radius.Packet) (value string, err error) { + a, ok := _Arista_LookupVendor(p, 4) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.String(a) + return +} + +func CVPRole_Set(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 4, a) +} + +func CVPRole_SetString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 4, a) +} + +func CVPRole_Del(p *radius.Packet) { + _Arista_DelVendor(p, 4) +} + +func Command_Add(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 5, a) +} + +func Command_AddString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 5, a) +} + +func Command_Get(p *radius.Packet) (value []byte) { + value, _ = Command_Lookup(p) + return +} + +func Command_GetString(p *radius.Packet) (value string) { + value, _ = Command_LookupString(p) + return +} + +func Command_Gets(p *radius.Packet) (values [][]byte, err error) { + var i []byte + for _, attr := range _Arista_GetsVendor(p, 5) { + i = radius.Bytes(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func Command_GetStrings(p *radius.Packet) (values []string, err error) { + var i string + for _, attr := range _Arista_GetsVendor(p, 5) { + i = radius.String(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func Command_Lookup(p *radius.Packet) (value []byte, err error) { + a, ok := _Arista_LookupVendor(p, 5) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.Bytes(a) + return +} + +func Command_LookupString(p *radius.Packet) (value string, err error) { + a, ok := _Arista_LookupVendor(p, 5) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.String(a) + return +} + +func Command_Set(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 5, a) +} + +func Command_SetString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 5, a) +} + +func Command_Del(p *radius.Packet) { + _Arista_DelVendor(p, 5) +} + +type WebAuth uint32 + +const ( + WebAuth_Value_Start WebAuth = 1 + WebAuth_Value_Complete WebAuth = 2 +) + +var WebAuth_Strings = map[WebAuth]string{ + WebAuth_Value_Start: "start", + WebAuth_Value_Complete: "complete", +} + +func (a WebAuth) String() string { + if str, ok := WebAuth_Strings[a]; ok { + return str + } + return "WebAuth(" + strconv.FormatUint(uint64(a), 10) + ")" +} + +func WebAuth_Add(p *radius.Packet, value WebAuth) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_AddVendor(p, 6, a) +} + +func WebAuth_Get(p *radius.Packet) (value WebAuth) { + value, _ = WebAuth_Lookup(p) + return +} + +func WebAuth_Gets(p *radius.Packet) (values []WebAuth, err error) { + var i uint32 + for _, attr := range _Arista_GetsVendor(p, 6) { + i, err = radius.Integer(attr) + if err != nil { + return + } + values = append(values, WebAuth(i)) + } + return +} + +func WebAuth_Lookup(p *radius.Packet) (value WebAuth, err error) { + a, ok := _Arista_LookupVendor(p, 6) + if !ok { + err = radius.ErrNoAttribute + return + } + var i uint32 + i, err = radius.Integer(a) + if err != nil { + return + } + value = WebAuth(i) + return +} + +func WebAuth_Set(p *radius.Packet, value WebAuth) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_SetVendor(p, 6, a) +} + +func WebAuth_Del(p *radius.Packet) { + _Arista_DelVendor(p, 6) +} + +func BlockMac_Add(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 7, a) +} + +func BlockMac_AddString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 7, a) +} + +func BlockMac_Get(p *radius.Packet) (value []byte) { + value, _ = BlockMac_Lookup(p) + return +} + +func BlockMac_GetString(p *radius.Packet) (value string) { + value, _ = BlockMac_LookupString(p) + return +} + +func BlockMac_Gets(p *radius.Packet) (values [][]byte, err error) { + var i []byte + for _, attr := range _Arista_GetsVendor(p, 7) { + i = radius.Bytes(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func BlockMac_GetStrings(p *radius.Packet) (values []string, err error) { + var i string + for _, attr := range _Arista_GetsVendor(p, 7) { + i = radius.String(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func BlockMac_Lookup(p *radius.Packet) (value []byte, err error) { + a, ok := _Arista_LookupVendor(p, 7) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.Bytes(a) + return +} + +func BlockMac_LookupString(p *radius.Packet) (value string, err error) { + a, ok := _Arista_LookupVendor(p, 7) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.String(a) + return +} + +func BlockMac_Set(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 7, a) +} + +func BlockMac_SetString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 7, a) +} + +func BlockMac_Del(p *radius.Packet) { + _Arista_DelVendor(p, 7) +} + +func UnblockMac_Add(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 8, a) +} + +func UnblockMac_AddString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 8, a) +} + +func UnblockMac_Get(p *radius.Packet) (value []byte) { + value, _ = UnblockMac_Lookup(p) + return +} + +func UnblockMac_GetString(p *radius.Packet) (value string) { + value, _ = UnblockMac_LookupString(p) + return +} + +func UnblockMac_Gets(p *radius.Packet) (values [][]byte, err error) { + var i []byte + for _, attr := range _Arista_GetsVendor(p, 8) { + i = radius.Bytes(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func UnblockMac_GetStrings(p *radius.Packet) (values []string, err error) { + var i string + for _, attr := range _Arista_GetsVendor(p, 8) { + i = radius.String(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func UnblockMac_Lookup(p *radius.Packet) (value []byte, err error) { + a, ok := _Arista_LookupVendor(p, 8) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.Bytes(a) + return +} + +func UnblockMac_LookupString(p *radius.Packet) (value string, err error) { + a, ok := _Arista_LookupVendor(p, 8) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.String(a) + return +} + +func UnblockMac_Set(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 8, a) +} + +func UnblockMac_SetString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 8, a) +} + +func UnblockMac_Del(p *radius.Packet) { + _Arista_DelVendor(p, 8) +} + +type PortFlap uint32 + +var PortFlap_Strings = map[PortFlap]string{} + +func (a PortFlap) String() string { + if str, ok := PortFlap_Strings[a]; ok { + return str + } + return "PortFlap(" + strconv.FormatUint(uint64(a), 10) + ")" +} + +func PortFlap_Add(p *radius.Packet, value PortFlap) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_AddVendor(p, 9, a) +} + +func PortFlap_Get(p *radius.Packet) (value PortFlap) { + value, _ = PortFlap_Lookup(p) + return +} + +func PortFlap_Gets(p *radius.Packet) (values []PortFlap, err error) { + var i uint32 + for _, attr := range _Arista_GetsVendor(p, 9) { + i, err = radius.Integer(attr) + if err != nil { + return + } + values = append(values, PortFlap(i)) + } + return +} + +func PortFlap_Lookup(p *radius.Packet) (value PortFlap, err error) { + a, ok := _Arista_LookupVendor(p, 9) + if !ok { + err = radius.ErrNoAttribute + return + } + var i uint32 + i, err = radius.Integer(a) + if err != nil { + return + } + value = PortFlap(i) + return +} + +func PortFlap_Set(p *radius.Packet, value PortFlap) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_SetVendor(p, 9, a) +} + +func PortFlap_Del(p *radius.Packet) { + _Arista_DelVendor(p, 9) +} + +func CaptivePortal_Add(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 10, a) +} + +func CaptivePortal_AddString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 10, a) +} + +func CaptivePortal_Get(p *radius.Packet) (value []byte) { + value, _ = CaptivePortal_Lookup(p) + return +} + +func CaptivePortal_GetString(p *radius.Packet) (value string) { + value, _ = CaptivePortal_LookupString(p) + return +} + +func CaptivePortal_Gets(p *radius.Packet) (values [][]byte, err error) { + var i []byte + for _, attr := range _Arista_GetsVendor(p, 10) { + i = radius.Bytes(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func CaptivePortal_GetStrings(p *radius.Packet) (values []string, err error) { + var i string + for _, attr := range _Arista_GetsVendor(p, 10) { + i = radius.String(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func CaptivePortal_Lookup(p *radius.Packet) (value []byte, err error) { + a, ok := _Arista_LookupVendor(p, 10) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.Bytes(a) + return +} + +func CaptivePortal_LookupString(p *radius.Packet) (value string, err error) { + a, ok := _Arista_LookupVendor(p, 10) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.String(a) + return +} + +func CaptivePortal_Set(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 10, a) +} + +func CaptivePortal_SetString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 10, a) +} + +func CaptivePortal_Del(p *radius.Packet) { + _Arista_DelVendor(p, 10) +} + +func SegmentID_Add(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 11, a) +} + +func SegmentID_AddString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 11, a) +} + +func SegmentID_Get(p *radius.Packet) (value []byte) { + value, _ = SegmentID_Lookup(p) + return +} + +func SegmentID_GetString(p *radius.Packet) (value string) { + value, _ = SegmentID_LookupString(p) + return +} + +func SegmentID_Gets(p *radius.Packet) (values [][]byte, err error) { + var i []byte + for _, attr := range _Arista_GetsVendor(p, 11) { + i = radius.Bytes(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func SegmentID_GetStrings(p *radius.Packet) (values []string, err error) { + var i string + for _, attr := range _Arista_GetsVendor(p, 11) { + i = radius.String(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func SegmentID_Lookup(p *radius.Packet) (value []byte, err error) { + a, ok := _Arista_LookupVendor(p, 11) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.Bytes(a) + return +} + +func SegmentID_LookupString(p *radius.Packet) (value string, err error) { + a, ok := _Arista_LookupVendor(p, 11) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.String(a) + return +} + +func SegmentID_Set(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 11, a) +} + +func SegmentID_SetString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 11, a) +} + +func SegmentID_Del(p *radius.Packet) { + _Arista_DelVendor(p, 11) +} + +func OriginIdentifier_Add(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 12, a) +} + +func OriginIdentifier_AddString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 12, a) +} + +func OriginIdentifier_Get(p *radius.Packet) (value []byte) { + value, _ = OriginIdentifier_Lookup(p) + return +} + +func OriginIdentifier_GetString(p *radius.Packet) (value string) { + value, _ = OriginIdentifier_LookupString(p) + return +} + +func OriginIdentifier_Gets(p *radius.Packet) (values [][]byte, err error) { + var i []byte + for _, attr := range _Arista_GetsVendor(p, 12) { + i = radius.Bytes(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func OriginIdentifier_GetStrings(p *radius.Packet) (values []string, err error) { + var i string + for _, attr := range _Arista_GetsVendor(p, 12) { + i = radius.String(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func OriginIdentifier_Lookup(p *radius.Packet) (value []byte, err error) { + a, ok := _Arista_LookupVendor(p, 12) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.Bytes(a) + return +} + +func OriginIdentifier_LookupString(p *radius.Packet) (value string, err error) { + a, ok := _Arista_LookupVendor(p, 12) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.String(a) + return +} + +func OriginIdentifier_Set(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 12, a) +} + +func OriginIdentifier_SetString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 12, a) +} + +func OriginIdentifier_Del(p *radius.Packet) { + _Arista_DelVendor(p, 12) +} + +type PeriodicIdentity uint32 + +const ( + PeriodicIdentity_Value_Stop PeriodicIdentity = 0 + PeriodicIdentity_Value_Start PeriodicIdentity = 1 +) + +var PeriodicIdentity_Strings = map[PeriodicIdentity]string{ + PeriodicIdentity_Value_Stop: "stop", + PeriodicIdentity_Value_Start: "start", +} + +func (a PeriodicIdentity) String() string { + if str, ok := PeriodicIdentity_Strings[a]; ok { + return str + } + return "PeriodicIdentity(" + strconv.FormatUint(uint64(a), 10) + ")" +} + +func PeriodicIdentity_Add(p *radius.Packet, value PeriodicIdentity) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_AddVendor(p, 13, a) +} + +func PeriodicIdentity_Get(p *radius.Packet) (value PeriodicIdentity) { + value, _ = PeriodicIdentity_Lookup(p) + return +} + +func PeriodicIdentity_Gets(p *radius.Packet) (values []PeriodicIdentity, err error) { + var i uint32 + for _, attr := range _Arista_GetsVendor(p, 13) { + i, err = radius.Integer(attr) + if err != nil { + return + } + values = append(values, PeriodicIdentity(i)) + } + return +} + +func PeriodicIdentity_Lookup(p *radius.Packet) (value PeriodicIdentity, err error) { + a, ok := _Arista_LookupVendor(p, 13) + if !ok { + err = radius.ErrNoAttribute + return + } + var i uint32 + i, err = radius.Integer(a) + if err != nil { + return + } + value = PeriodicIdentity(i) + return +} + +func PeriodicIdentity_Set(p *radius.Packet, value PeriodicIdentity) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_SetVendor(p, 13, a) +} + +func PeriodicIdentity_Del(p *radius.Packet) { + _Arista_DelVendor(p, 13) +} + +type DynamicHostMode uint32 + +const ( + DynamicHostMode_Value_Disabled DynamicHostMode = 0 + DynamicHostMode_Value_MultiHost DynamicHostMode = 1 +) + +var DynamicHostMode_Strings = map[DynamicHostMode]string{ + DynamicHostMode_Value_Disabled: "disabled", + DynamicHostMode_Value_MultiHost: "multi-host", +} + +func (a DynamicHostMode) String() string { + if str, ok := DynamicHostMode_Strings[a]; ok { + return str + } + return "DynamicHostMode(" + strconv.FormatUint(uint64(a), 10) + ")" +} + +func DynamicHostMode_Add(p *radius.Packet, value DynamicHostMode) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_AddVendor(p, 14, a) +} + +func DynamicHostMode_Get(p *radius.Packet) (value DynamicHostMode) { + value, _ = DynamicHostMode_Lookup(p) + return +} + +func DynamicHostMode_Gets(p *radius.Packet) (values []DynamicHostMode, err error) { + var i uint32 + for _, attr := range _Arista_GetsVendor(p, 14) { + i, err = radius.Integer(attr) + if err != nil { + return + } + values = append(values, DynamicHostMode(i)) + } + return +} + +func DynamicHostMode_Lookup(p *radius.Packet) (value DynamicHostMode, err error) { + a, ok := _Arista_LookupVendor(p, 14) + if !ok { + err = radius.ErrNoAttribute + return + } + var i uint32 + i, err = radius.Integer(a) + if err != nil { + return + } + value = DynamicHostMode(i) + return +} + +func DynamicHostMode_Set(p *radius.Packet, value DynamicHostMode) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_SetVendor(p, 14, a) +} + +func DynamicHostMode_Del(p *radius.Packet) { + _Arista_DelVendor(p, 14) +} + +type DeviceType uint32 + +const ( + DeviceType_Value_None DeviceType = 0 + DeviceType_Value_Phone DeviceType = 1 +) + +var DeviceType_Strings = map[DeviceType]string{ + DeviceType_Value_None: "none", + DeviceType_Value_Phone: "phone", +} + +func (a DeviceType) String() string { + if str, ok := DeviceType_Strings[a]; ok { + return str + } + return "DeviceType(" + strconv.FormatUint(uint64(a), 10) + ")" +} + +func DeviceType_Add(p *radius.Packet, value DeviceType) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_AddVendor(p, 15, a) +} + +func DeviceType_Get(p *radius.Packet) (value DeviceType) { + value, _ = DeviceType_Lookup(p) + return +} + +func DeviceType_Gets(p *radius.Packet) (values []DeviceType, err error) { + var i uint32 + for _, attr := range _Arista_GetsVendor(p, 15) { + i, err = radius.Integer(attr) + if err != nil { + return + } + values = append(values, DeviceType(i)) + } + return +} + +func DeviceType_Lookup(p *radius.Packet) (value DeviceType, err error) { + a, ok := _Arista_LookupVendor(p, 15) + if !ok { + err = radius.ErrNoAttribute + return + } + var i uint32 + i, err = radius.Integer(a) + if err != nil { + return + } + value = DeviceType(i) + return +} + +func DeviceType_Set(p *radius.Packet, value DeviceType) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_SetVendor(p, 15, a) +} + +func DeviceType_Del(p *radius.Packet) { + _Arista_DelVendor(p, 15) +} + +type Action uint32 + +const ( + Action_Value_Reauthenticate Action = 1 +) + +var Action_Strings = map[Action]string{ + Action_Value_Reauthenticate: "reauthenticate", +} + +func (a Action) String() string { + if str, ok := Action_Strings[a]; ok { + return str + } + return "Action(" + strconv.FormatUint(uint64(a), 10) + ")" +} + +func Action_Add(p *radius.Packet, value Action) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_AddVendor(p, 16, a) +} + +func Action_Get(p *radius.Packet) (value Action) { + value, _ = Action_Lookup(p) + return +} + +func Action_Gets(p *radius.Packet) (values []Action, err error) { + var i uint32 + for _, attr := range _Arista_GetsVendor(p, 16) { + i, err = radius.Integer(attr) + if err != nil { + return + } + values = append(values, Action(i)) + } + return +} + +func Action_Lookup(p *radius.Packet) (value Action, err error) { + a, ok := _Arista_LookupVendor(p, 16) + if !ok { + err = radius.ErrNoAttribute + return + } + var i uint32 + i, err = radius.Integer(a) + if err != nil { + return + } + value = Action(i) + return +} + +func Action_Set(p *radius.Packet, value Action) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_SetVendor(p, 16, a) +} + +func Action_Del(p *radius.Packet) { + _Arista_DelVendor(p, 16) +} + +func DeviceProfiling_Add(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 17, a) +} + +func DeviceProfiling_AddString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 17, a) +} + +func DeviceProfiling_Get(p *radius.Packet) (value []byte) { + value, _ = DeviceProfiling_Lookup(p) + return +} + +func DeviceProfiling_GetString(p *radius.Packet) (value string) { + value, _ = DeviceProfiling_LookupString(p) + return +} + +func DeviceProfiling_Gets(p *radius.Packet) (values [][]byte, err error) { + var i []byte + for _, attr := range _Arista_GetsVendor(p, 17) { + i = radius.Bytes(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func DeviceProfiling_GetStrings(p *radius.Packet) (values []string, err error) { + var i string + for _, attr := range _Arista_GetsVendor(p, 17) { + i = radius.String(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func DeviceProfiling_Lookup(p *radius.Packet) (value []byte, err error) { + a, ok := _Arista_LookupVendor(p, 17) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.Bytes(a) + return +} + +func DeviceProfiling_LookupString(p *radius.Packet) (value string, err error) { + a, ok := _Arista_LookupVendor(p, 17) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.String(a) + return +} + +func DeviceProfiling_Set(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 17, a) +} + +func DeviceProfiling_SetString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 17, a) +} + +func DeviceProfiling_Del(p *radius.Packet) { + _Arista_DelVendor(p, 17) +} + +type PortShutdown uint32 + +var PortShutdown_Strings = map[PortShutdown]string{} + +func (a PortShutdown) String() string { + if str, ok := PortShutdown_Strings[a]; ok { + return str + } + return "PortShutdown(" + strconv.FormatUint(uint64(a), 10) + ")" +} + +func PortShutdown_Add(p *radius.Packet, value PortShutdown) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_AddVendor(p, 18, a) +} + +func PortShutdown_Get(p *radius.Packet) (value PortShutdown) { + value, _ = PortShutdown_Lookup(p) + return +} + +func PortShutdown_Gets(p *radius.Packet) (values []PortShutdown, err error) { + var i uint32 + for _, attr := range _Arista_GetsVendor(p, 18) { + i, err = radius.Integer(attr) + if err != nil { + return + } + values = append(values, PortShutdown(i)) + } + return +} + +func PortShutdown_Lookup(p *radius.Packet) (value PortShutdown, err error) { + a, ok := _Arista_LookupVendor(p, 18) + if !ok { + err = radius.ErrNoAttribute + return + } + var i uint32 + i, err = radius.Integer(a) + if err != nil { + return + } + value = PortShutdown(i) + return +} + +func PortShutdown_Set(p *radius.Packet, value PortShutdown) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_SetVendor(p, 18, a) +} + +func PortShutdown_Del(p *radius.Packet) { + _Arista_DelVendor(p, 18) +} + +type Mvrp uint32 + +const ( + Mvrp_Value_Disable Mvrp = 0 + Mvrp_Value_Enable Mvrp = 1 +) + +var Mvrp_Strings = map[Mvrp]string{ + Mvrp_Value_Disable: "disable", + Mvrp_Value_Enable: "enable", +} + +func (a Mvrp) String() string { + if str, ok := Mvrp_Strings[a]; ok { + return str + } + return "Mvrp(" + strconv.FormatUint(uint64(a), 10) + ")" +} + +func Mvrp_Add(p *radius.Packet, value Mvrp) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_AddVendor(p, 19, a) +} + +func Mvrp_Get(p *radius.Packet) (value Mvrp) { + value, _ = Mvrp_Lookup(p) + return +} + +func Mvrp_Gets(p *radius.Packet) (values []Mvrp, err error) { + var i uint32 + for _, attr := range _Arista_GetsVendor(p, 19) { + i, err = radius.Integer(attr) + if err != nil { + return + } + values = append(values, Mvrp(i)) + } + return +} + +func Mvrp_Lookup(p *radius.Packet) (value Mvrp, err error) { + a, ok := _Arista_LookupVendor(p, 19) + if !ok { + err = radius.ErrNoAttribute + return + } + var i uint32 + i, err = radius.Integer(a) + if err != nil { + return + } + value = Mvrp(i) + return +} + +func Mvrp_Set(p *radius.Packet, value Mvrp) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_SetVendor(p, 19, a) +} + +func Mvrp_Del(p *radius.Packet) { + _Arista_DelVendor(p, 19) +} + +type TenantID uint32 + +var TenantID_Strings = map[TenantID]string{} + +func (a TenantID) String() string { + if str, ok := TenantID_Strings[a]; ok { + return str + } + return "TenantID(" + strconv.FormatUint(uint64(a), 10) + ")" +} + +func TenantID_Add(p *radius.Packet, value TenantID) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_AddVendor(p, 20, a) +} + +func TenantID_Get(p *radius.Packet) (value TenantID) { + value, _ = TenantID_Lookup(p) + return +} + +func TenantID_Gets(p *radius.Packet) (values []TenantID, err error) { + var i uint32 + for _, attr := range _Arista_GetsVendor(p, 20) { + i, err = radius.Integer(attr) + if err != nil { + return + } + values = append(values, TenantID(i)) + } + return +} + +func TenantID_Lookup(p *radius.Packet) (value TenantID, err error) { + a, ok := _Arista_LookupVendor(p, 20) + if !ok { + err = radius.ErrNoAttribute + return + } + var i uint32 + i, err = radius.Integer(a) + if err != nil { + return + } + value = TenantID(i) + return +} + +func TenantID_Set(p *radius.Packet, value TenantID) (err error) { + a := radius.NewInteger(uint32(value)) + return _Arista_SetVendor(p, 20, a) +} + +func TenantID_Del(p *radius.Packet) { + _Arista_DelVendor(p, 20) +} + +func InterfaceProfile_Add(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 21, a) +} + +func InterfaceProfile_AddString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_AddVendor(p, 21, a) +} + +func InterfaceProfile_Get(p *radius.Packet) (value []byte) { + value, _ = InterfaceProfile_Lookup(p) + return +} + +func InterfaceProfile_GetString(p *radius.Packet) (value string) { + value, _ = InterfaceProfile_LookupString(p) + return +} + +func InterfaceProfile_Gets(p *radius.Packet) (values [][]byte, err error) { + var i []byte + for _, attr := range _Arista_GetsVendor(p, 21) { + i = radius.Bytes(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func InterfaceProfile_GetStrings(p *radius.Packet) (values []string, err error) { + var i string + for _, attr := range _Arista_GetsVendor(p, 21) { + i = radius.String(attr) + if err != nil { + return + } + values = append(values, i) + } + return +} + +func InterfaceProfile_Lookup(p *radius.Packet) (value []byte, err error) { + a, ok := _Arista_LookupVendor(p, 21) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.Bytes(a) + return +} + +func InterfaceProfile_LookupString(p *radius.Packet) (value string, err error) { + a, ok := _Arista_LookupVendor(p, 21) + if !ok { + err = radius.ErrNoAttribute + return + } + value = radius.String(a) + return +} + +func InterfaceProfile_Set(p *radius.Packet, value []byte) (err error) { + var a radius.Attribute + a, err = radius.NewBytes(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 21, a) +} + +func InterfaceProfile_SetString(p *radius.Packet, value string) (err error) { + var a radius.Attribute + a, err = radius.NewString(value) + if err != nil { + return + } + return _Arista_SetVendor(p, 21, a) +} + +func InterfaceProfile_Del(p *radius.Packet) { + _Arista_DelVendor(p, 21) +}