mirror of
https://github.com/cubixle/radius-rs.git
synced 2026-04-24 22:34:42 +01:00
Support RFC5607
This commit is contained in:
@@ -17,6 +17,7 @@ This supports the following RFC dictionaries at the moment:
|
||||
- [RFC3576](https://tools.ietf.org/html/rfc3576)
|
||||
- [RFC4072](https://tools.ietf.org/html/rfc4072)
|
||||
- [RFC5090](https://tools.ietf.org/html/rfc5090)
|
||||
- [RFC5607](https://tools.ietf.org/html/rfc5607)
|
||||
- [RFC6519](https://tools.ietf.org/html/rfc6519)
|
||||
- [RFC6677](https://tools.ietf.org/html/rfc6677)
|
||||
|
||||
@@ -44,7 +45,6 @@ Simple example implementations are here:
|
||||
- rfc5176
|
||||
- rfc5447
|
||||
- rfc5580
|
||||
- rfc5607
|
||||
- rfc5904
|
||||
- rfc6572
|
||||
- rfc6911
|
||||
|
||||
33
dicts/dictionary.rfc5607
Normal file
33
dicts/dictionary.rfc5607
Normal file
@@ -0,0 +1,33 @@
|
||||
# -*- text -*-
|
||||
# Copyright (C) 2020 The FreeRADIUS Server project and contributors
|
||||
# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
|
||||
# Version $Id$
|
||||
#
|
||||
# Attributes and values defined in RFC 5607.
|
||||
# http://www.ietf.org/rfc/rfc5607.txt
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
VALUE Service-Type Framed-Management 18
|
||||
|
||||
ATTRIBUTE Framed-Management 133 integer
|
||||
|
||||
VALUE Framed-Management SNMP 1
|
||||
VALUE Framed-Management Web-Based 2
|
||||
VALUE Framed-Management Netconf 3
|
||||
VALUE Framed-Management FTP 4
|
||||
VALUE Framed-Management TFTP 5
|
||||
VALUE Framed-Management SFTP 6
|
||||
VALUE Framed-Management RCP 7
|
||||
VALUE Framed-Management SCP 8
|
||||
|
||||
ATTRIBUTE Management-Transport-Protection 134 integer
|
||||
|
||||
VALUE Management-Transport-Protection No-Protection 1
|
||||
VALUE Management-Transport-Protection Integrity-Protection 2
|
||||
VALUE Management-Transport-Protection Integrity-Confidentiality-Protection 3
|
||||
|
||||
ATTRIBUTE Management-Policy-Id 135 string
|
||||
|
||||
ATTRIBUTE Management-Privilege-Level 136 integer
|
||||
@@ -10,6 +10,7 @@ pub mod rfc2868;
|
||||
pub mod rfc3576;
|
||||
pub mod rfc4072;
|
||||
pub mod rfc5090;
|
||||
pub mod rfc5607;
|
||||
pub mod rfc6519;
|
||||
pub mod rfc6677;
|
||||
pub mod tag;
|
||||
|
||||
113
radius/src/rfc5607.rs
Normal file
113
radius/src/rfc5607.rs
Normal file
@@ -0,0 +1,113 @@
|
||||
// Code generated by machine generator; DO NOT EDIT.
|
||||
|
||||
use crate::avp::{AVPError, AVPType, AVP};
|
||||
use crate::packet::Packet;
|
||||
|
||||
pub type FramedManagement = u32;
|
||||
pub const FRAMED_MANAGEMENT_SNMP: FramedManagement = 1;
|
||||
pub const FRAMED_MANAGEMENT_WEB_BASED: FramedManagement = 2;
|
||||
pub const FRAMED_MANAGEMENT_NETCONF: FramedManagement = 3;
|
||||
pub const FRAMED_MANAGEMENT_FTP: FramedManagement = 4;
|
||||
pub const FRAMED_MANAGEMENT_TFTP: FramedManagement = 5;
|
||||
pub const FRAMED_MANAGEMENT_SFTP: FramedManagement = 6;
|
||||
pub const FRAMED_MANAGEMENT_RCP: FramedManagement = 7;
|
||||
pub const FRAMED_MANAGEMENT_SCP: FramedManagement = 8;
|
||||
|
||||
pub type ManagementTransportProtection = u32;
|
||||
pub const MANAGEMENT_TRANSPORT_PROTECTION_NO_PROTECTION: ManagementTransportProtection = 1;
|
||||
pub const MANAGEMENT_TRANSPORT_PROTECTION_INTEGRITY_PROTECTION: ManagementTransportProtection = 2;
|
||||
pub const MANAGEMENT_TRANSPORT_PROTECTION_INTEGRITY_CONFIDENTIALITY_PROTECTION:
|
||||
ManagementTransportProtection = 3;
|
||||
|
||||
pub type ServiceType = u32;
|
||||
pub const SERVICE_TYPE_FRAMED_MANAGEMENT: ServiceType = 18;
|
||||
|
||||
pub const FRAMED_MANAGEMENT_TYPE: AVPType = 133;
|
||||
pub fn delete_framed_management(packet: &mut Packet) {
|
||||
packet.delete(FRAMED_MANAGEMENT_TYPE);
|
||||
}
|
||||
pub fn add_framed_management(packet: &mut Packet, value: FramedManagement) {
|
||||
packet.add(AVP::from_u32(FRAMED_MANAGEMENT_TYPE, value as u32));
|
||||
}
|
||||
pub fn lookup_framed_management(packet: &Packet) -> Option<Result<FramedManagement, AVPError>> {
|
||||
packet
|
||||
.lookup(FRAMED_MANAGEMENT_TYPE)
|
||||
.map(|v| Ok(v.encode_u32()? as FramedManagement))
|
||||
}
|
||||
pub fn lookup_all_framed_management(packet: &Packet) -> Result<Vec<FramedManagement>, AVPError> {
|
||||
let mut vec = Vec::new();
|
||||
for avp in packet.lookup_all(FRAMED_MANAGEMENT_TYPE) {
|
||||
vec.push(avp.encode_u32()? as FramedManagement)
|
||||
}
|
||||
Ok(vec)
|
||||
}
|
||||
|
||||
pub const MANAGEMENT_TRANSPORT_PROTECTION_TYPE: AVPType = 134;
|
||||
pub fn delete_management_transport_protection(packet: &mut Packet) {
|
||||
packet.delete(MANAGEMENT_TRANSPORT_PROTECTION_TYPE);
|
||||
}
|
||||
pub fn add_management_transport_protection(
|
||||
packet: &mut Packet,
|
||||
value: ManagementTransportProtection,
|
||||
) {
|
||||
packet.add(AVP::from_u32(
|
||||
MANAGEMENT_TRANSPORT_PROTECTION_TYPE,
|
||||
value as u32,
|
||||
));
|
||||
}
|
||||
pub fn lookup_management_transport_protection(
|
||||
packet: &Packet,
|
||||
) -> Option<Result<ManagementTransportProtection, AVPError>> {
|
||||
packet
|
||||
.lookup(MANAGEMENT_TRANSPORT_PROTECTION_TYPE)
|
||||
.map(|v| Ok(v.encode_u32()? as ManagementTransportProtection))
|
||||
}
|
||||
pub fn lookup_all_management_transport_protection(
|
||||
packet: &Packet,
|
||||
) -> Result<Vec<ManagementTransportProtection>, AVPError> {
|
||||
let mut vec = Vec::new();
|
||||
for avp in packet.lookup_all(MANAGEMENT_TRANSPORT_PROTECTION_TYPE) {
|
||||
vec.push(avp.encode_u32()? as ManagementTransportProtection)
|
||||
}
|
||||
Ok(vec)
|
||||
}
|
||||
|
||||
pub const MANAGEMENT_POLICY_ID_TYPE: AVPType = 135;
|
||||
pub fn delete_management_policy_id(packet: &mut Packet) {
|
||||
packet.delete(MANAGEMENT_POLICY_ID_TYPE);
|
||||
}
|
||||
pub fn add_management_policy_id(packet: &mut Packet, value: &str) {
|
||||
packet.add(AVP::from_string(MANAGEMENT_POLICY_ID_TYPE, value));
|
||||
}
|
||||
pub fn lookup_management_policy_id(packet: &Packet) -> Option<Result<String, AVPError>> {
|
||||
packet
|
||||
.lookup(MANAGEMENT_POLICY_ID_TYPE)
|
||||
.map(|v| v.encode_string())
|
||||
}
|
||||
pub fn lookup_all_management_policy_id(packet: &Packet) -> Result<Vec<String>, AVPError> {
|
||||
let mut vec = Vec::new();
|
||||
for avp in packet.lookup_all(MANAGEMENT_POLICY_ID_TYPE) {
|
||||
vec.push(avp.encode_string()?)
|
||||
}
|
||||
Ok(vec)
|
||||
}
|
||||
|
||||
pub const MANAGEMENT_PRIVILEGE_LEVEL_TYPE: AVPType = 136;
|
||||
pub fn delete_management_privilege_level(packet: &mut Packet) {
|
||||
packet.delete(MANAGEMENT_PRIVILEGE_LEVEL_TYPE);
|
||||
}
|
||||
pub fn add_management_privilege_level(packet: &mut Packet, value: u32) {
|
||||
packet.add(AVP::from_u32(MANAGEMENT_PRIVILEGE_LEVEL_TYPE, value));
|
||||
}
|
||||
pub fn lookup_management_privilege_level(packet: &Packet) -> Option<Result<u32, AVPError>> {
|
||||
packet
|
||||
.lookup(MANAGEMENT_PRIVILEGE_LEVEL_TYPE)
|
||||
.map(|v| v.encode_u32())
|
||||
}
|
||||
pub fn lookup_all_management_privilege_level(packet: &Packet) -> Result<Vec<u32>, AVPError> {
|
||||
let mut vec = Vec::new();
|
||||
for avp in packet.lookup_all(MANAGEMENT_PRIVILEGE_LEVEL_TYPE) {
|
||||
vec.push(avp.encode_u32()?)
|
||||
}
|
||||
Ok(vec)
|
||||
}
|
||||
Reference in New Issue
Block a user