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)
|
- [RFC3576](https://tools.ietf.org/html/rfc3576)
|
||||||
- [RFC4072](https://tools.ietf.org/html/rfc4072)
|
- [RFC4072](https://tools.ietf.org/html/rfc4072)
|
||||||
- [RFC5090](https://tools.ietf.org/html/rfc5090)
|
- [RFC5090](https://tools.ietf.org/html/rfc5090)
|
||||||
|
- [RFC5607](https://tools.ietf.org/html/rfc5607)
|
||||||
- [RFC6519](https://tools.ietf.org/html/rfc6519)
|
- [RFC6519](https://tools.ietf.org/html/rfc6519)
|
||||||
- [RFC6677](https://tools.ietf.org/html/rfc6677)
|
- [RFC6677](https://tools.ietf.org/html/rfc6677)
|
||||||
|
|
||||||
@@ -44,7 +45,6 @@ Simple example implementations are here:
|
|||||||
- rfc5176
|
- rfc5176
|
||||||
- rfc5447
|
- rfc5447
|
||||||
- rfc5580
|
- rfc5580
|
||||||
- rfc5607
|
|
||||||
- rfc5904
|
- rfc5904
|
||||||
- rfc6572
|
- rfc6572
|
||||||
- rfc6911
|
- 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 rfc3576;
|
||||||
pub mod rfc4072;
|
pub mod rfc4072;
|
||||||
pub mod rfc5090;
|
pub mod rfc5090;
|
||||||
|
pub mod rfc5607;
|
||||||
pub mod rfc6519;
|
pub mod rfc6519;
|
||||||
pub mod rfc6677;
|
pub mod rfc6677;
|
||||||
pub mod tag;
|
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