From 1e03c42d59edbcc2aee875ae91ed5b4cc5d52a0b Mon Sep 17 00:00:00 2001 From: moznion Date: Thu, 10 Dec 2020 00:09:02 +0900 Subject: [PATCH] Cosmetic change --- README.md | 1 - code-generator/src/main.rs | 16 +++- radius/src/rfc2865.rs | 148 ++++++++++++++++++------------------- radius/src/rfc2866.rs | 70 +++++++++--------- radius/src/rfc2867.rs | 16 ++-- radius/src/rfc2868.rs | 64 ++++++++-------- radius/src/rfc2869.rs | 18 ++--- radius/src/rfc3576.rs | 40 +++++----- radius/src/rfc4675.rs | 8 +- radius/src/rfc5607.rs | 38 +++++----- radius/src/rfc6677.rs | 22 +++--- 11 files changed, 224 insertions(+), 217 deletions(-) diff --git a/README.md b/README.md index e0d53f7..17e4c70 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,6 @@ This supports the following RFC dictionaries at the moment: ## Roadmap -- retransmission feature on the client - Support the following RFC dictionaries: - rfc4679 - rfc5447 diff --git a/code-generator/src/main.rs b/code-generator/src/main.rs index ea553ff..c6ad83a 100644 --- a/code-generator/src/main.rs +++ b/code-generator/src/main.rs @@ -1,4 +1,4 @@ -use std::collections::{BTreeMap, HashSet}; +use std::collections::{BTreeMap, HashMap, HashSet}; use std::fs::File; use std::io::{BufRead, BufWriter, Write}; use std::path::Path; @@ -118,7 +118,7 @@ fn main() { }; let out_dir = Path::new(&out_dir_str); - let dict_file_paths: Vec<&Path> = matches + let mut dict_file_paths: Vec<&Path> = matches .free .iter() .map(|file_path_str| Path::new(file_path_str)) @@ -129,21 +129,29 @@ fn main() { true }) .collect(); + dict_file_paths.sort(); + + let mut attribute_name_to_rfc_name: HashMap = HashMap::new(); for dict_file_path in dict_file_paths { let (radius_attributes, radius_attribute_to_values_map) = parse_dict_file(dict_file_path).unwrap(); + let rfc_name = dict_file_path.extension().unwrap().to_str().unwrap(); + + for attr in &radius_attributes { + attribute_name_to_rfc_name.insert(attr.name.clone(), rfc_name.to_owned()); + } + let value_defined_attributes_set = radius_attribute_to_values_map .keys() .collect::>(); - let rfc_name = dict_file_path.extension().unwrap().to_str().unwrap(); let mut w = BufWriter::new(File::create(out_dir.join(format!("{}.rs", rfc_name))).unwrap()); generate_header(&mut w); - generate_values_code(&mut w, &radius_attribute_to_values_map); generate_attributes_code(&mut w, &radius_attributes, &value_defined_attributes_set); + generate_values_code(&mut w, &radius_attribute_to_values_map); } } diff --git a/radius/src/rfc2865.rs b/radius/src/rfc2865.rs index de384d7..98e91e3 100644 --- a/radius/src/rfc2865.rs +++ b/radius/src/rfc2865.rs @@ -5,80 +5,6 @@ use std::net::Ipv4Addr; use crate::avp::{AVPError, AVPType, AVP}; use crate::packet::Packet; -pub type FramedCompression = u32; -pub const FRAMED_COMPRESSION_NONE: FramedCompression = 0; -pub const FRAMED_COMPRESSION_VAN_JACOBSON_TCP_IP: FramedCompression = 1; -pub const FRAMED_COMPRESSION_IPX_HEADER_COMPRESSION: FramedCompression = 2; -pub const FRAMED_COMPRESSION_STAC_LZS: FramedCompression = 3; - -pub type FramedProtocol = u32; -pub const FRAMED_PROTOCOL_PPP: FramedProtocol = 1; -pub const FRAMED_PROTOCOL_SLIP: FramedProtocol = 2; -pub const FRAMED_PROTOCOL_ARAP: FramedProtocol = 3; -pub const FRAMED_PROTOCOL_GANDALF_SLML: FramedProtocol = 4; -pub const FRAMED_PROTOCOL_XYLOGICS_IPX_SLIP: FramedProtocol = 5; -pub const FRAMED_PROTOCOL_X_75_SYNCHRONOUS: FramedProtocol = 6; - -pub type FramedRouting = u32; -pub const FRAMED_ROUTING_NONE: FramedRouting = 0; -pub const FRAMED_ROUTING_BROADCAST: FramedRouting = 1; -pub const FRAMED_ROUTING_LISTEN: FramedRouting = 2; -pub const FRAMED_ROUTING_BROADCAST_LISTEN: FramedRouting = 3; - -pub type LoginService = u32; -pub const LOGIN_SERVICE_TELNET: LoginService = 0; -pub const LOGIN_SERVICE_RLOGIN: LoginService = 1; -pub const LOGIN_SERVICE_TCP_CLEAR: LoginService = 2; -pub const LOGIN_SERVICE_PORT_MASTER: LoginService = 3; -pub const LOGIN_SERVICE_LAT: LoginService = 4; -pub const LOGIN_SERVICE_X25_PAD: LoginService = 5; -pub const LOGIN_SERVICE_X25_T3POS: LoginService = 6; -pub const LOGIN_SERVICE_TCP_CLEAR_QUIET: LoginService = 8; - -pub type LoginTCPPort = u32; -pub const LOGIN_TCP_PORT_TELNET: LoginTCPPort = 23; -pub const LOGIN_TCP_PORT_RLOGIN: LoginTCPPort = 513; -pub const LOGIN_TCP_PORT_RSH: LoginTCPPort = 514; - -pub type NasPortType = u32; -pub const NAS_PORT_TYPE_ASYNC: NasPortType = 0; -pub const NAS_PORT_TYPE_SYNC: NasPortType = 1; -pub const NAS_PORT_TYPE_ISDN: NasPortType = 2; -pub const NAS_PORT_TYPE_ISDN_V120: NasPortType = 3; -pub const NAS_PORT_TYPE_ISDN_V110: NasPortType = 4; -pub const NAS_PORT_TYPE_VIRTUAL: NasPortType = 5; -pub const NAS_PORT_TYPE_PIAFS: NasPortType = 6; -pub const NAS_PORT_TYPE_HDLC_CLEAR_CHANNEL: NasPortType = 7; -pub const NAS_PORT_TYPE_X_25: NasPortType = 8; -pub const NAS_PORT_TYPE_X_75: NasPortType = 9; -pub const NAS_PORT_TYPE_G_3_FAX: NasPortType = 10; -pub const NAS_PORT_TYPE_SDSL: NasPortType = 11; -pub const NAS_PORT_TYPE_ADSL_CAP: NasPortType = 12; -pub const NAS_PORT_TYPE_ADSL_DMT: NasPortType = 13; -pub const NAS_PORT_TYPE_IDSL: NasPortType = 14; -pub const NAS_PORT_TYPE_ETHERNET: NasPortType = 15; -pub const NAS_PORT_TYPE_X_DSL: NasPortType = 16; -pub const NAS_PORT_TYPE_CABLE: NasPortType = 17; -pub const NAS_PORT_TYPE_WIRELESS_OTHER: NasPortType = 18; -pub const NAS_PORT_TYPE_WIRELESS_802_11: NasPortType = 19; - -pub type ServiceType = u32; -pub const SERVICE_TYPE_LOGIN_USER: ServiceType = 1; -pub const SERVICE_TYPE_FRAMED_USER: ServiceType = 2; -pub const SERVICE_TYPE_CALLBACK_LOGIN_USER: ServiceType = 3; -pub const SERVICE_TYPE_CALLBACK_FRAMED_USER: ServiceType = 4; -pub const SERVICE_TYPE_OUTBOUND_USER: ServiceType = 5; -pub const SERVICE_TYPE_ADMINISTRATIVE_USER: ServiceType = 6; -pub const SERVICE_TYPE_NAS_PROMPT_USER: ServiceType = 7; -pub const SERVICE_TYPE_AUTHENTICATE_ONLY: ServiceType = 8; -pub const SERVICE_TYPE_CALLBACK_NAS_PROMPT: ServiceType = 9; -pub const SERVICE_TYPE_CALL_CHECK: ServiceType = 10; -pub const SERVICE_TYPE_CALLBACK_ADMINISTRATIVE: ServiceType = 11; - -pub type TerminationAction = u32; -pub const TERMINATION_ACTION_DEFAULT: TerminationAction = 0; -pub const TERMINATION_ACTION_RADIUS_REQUEST: TerminationAction = 1; - pub const USER_NAME_TYPE: AVPType = 1; pub fn delete_user_name(packet: &mut Packet) { packet.delete(USER_NAME_TYPE); @@ -855,3 +781,77 @@ pub fn lookup_all_login_lat_port(packet: &Packet) -> Result, AVPErro } Ok(vec) } + +pub type FramedCompression = u32; +pub const FRAMED_COMPRESSION_NONE: FramedCompression = 0; +pub const FRAMED_COMPRESSION_VAN_JACOBSON_TCP_IP: FramedCompression = 1; +pub const FRAMED_COMPRESSION_IPX_HEADER_COMPRESSION: FramedCompression = 2; +pub const FRAMED_COMPRESSION_STAC_LZS: FramedCompression = 3; + +pub type FramedProtocol = u32; +pub const FRAMED_PROTOCOL_PPP: FramedProtocol = 1; +pub const FRAMED_PROTOCOL_SLIP: FramedProtocol = 2; +pub const FRAMED_PROTOCOL_ARAP: FramedProtocol = 3; +pub const FRAMED_PROTOCOL_GANDALF_SLML: FramedProtocol = 4; +pub const FRAMED_PROTOCOL_XYLOGICS_IPX_SLIP: FramedProtocol = 5; +pub const FRAMED_PROTOCOL_X_75_SYNCHRONOUS: FramedProtocol = 6; + +pub type FramedRouting = u32; +pub const FRAMED_ROUTING_NONE: FramedRouting = 0; +pub const FRAMED_ROUTING_BROADCAST: FramedRouting = 1; +pub const FRAMED_ROUTING_LISTEN: FramedRouting = 2; +pub const FRAMED_ROUTING_BROADCAST_LISTEN: FramedRouting = 3; + +pub type LoginService = u32; +pub const LOGIN_SERVICE_TELNET: LoginService = 0; +pub const LOGIN_SERVICE_RLOGIN: LoginService = 1; +pub const LOGIN_SERVICE_TCP_CLEAR: LoginService = 2; +pub const LOGIN_SERVICE_PORT_MASTER: LoginService = 3; +pub const LOGIN_SERVICE_LAT: LoginService = 4; +pub const LOGIN_SERVICE_X25_PAD: LoginService = 5; +pub const LOGIN_SERVICE_X25_T3POS: LoginService = 6; +pub const LOGIN_SERVICE_TCP_CLEAR_QUIET: LoginService = 8; + +pub type LoginTCPPort = u32; +pub const LOGIN_TCP_PORT_TELNET: LoginTCPPort = 23; +pub const LOGIN_TCP_PORT_RLOGIN: LoginTCPPort = 513; +pub const LOGIN_TCP_PORT_RSH: LoginTCPPort = 514; + +pub type NasPortType = u32; +pub const NAS_PORT_TYPE_ASYNC: NasPortType = 0; +pub const NAS_PORT_TYPE_SYNC: NasPortType = 1; +pub const NAS_PORT_TYPE_ISDN: NasPortType = 2; +pub const NAS_PORT_TYPE_ISDN_V120: NasPortType = 3; +pub const NAS_PORT_TYPE_ISDN_V110: NasPortType = 4; +pub const NAS_PORT_TYPE_VIRTUAL: NasPortType = 5; +pub const NAS_PORT_TYPE_PIAFS: NasPortType = 6; +pub const NAS_PORT_TYPE_HDLC_CLEAR_CHANNEL: NasPortType = 7; +pub const NAS_PORT_TYPE_X_25: NasPortType = 8; +pub const NAS_PORT_TYPE_X_75: NasPortType = 9; +pub const NAS_PORT_TYPE_G_3_FAX: NasPortType = 10; +pub const NAS_PORT_TYPE_SDSL: NasPortType = 11; +pub const NAS_PORT_TYPE_ADSL_CAP: NasPortType = 12; +pub const NAS_PORT_TYPE_ADSL_DMT: NasPortType = 13; +pub const NAS_PORT_TYPE_IDSL: NasPortType = 14; +pub const NAS_PORT_TYPE_ETHERNET: NasPortType = 15; +pub const NAS_PORT_TYPE_X_DSL: NasPortType = 16; +pub const NAS_PORT_TYPE_CABLE: NasPortType = 17; +pub const NAS_PORT_TYPE_WIRELESS_OTHER: NasPortType = 18; +pub const NAS_PORT_TYPE_WIRELESS_802_11: NasPortType = 19; + +pub type ServiceType = u32; +pub const SERVICE_TYPE_LOGIN_USER: ServiceType = 1; +pub const SERVICE_TYPE_FRAMED_USER: ServiceType = 2; +pub const SERVICE_TYPE_CALLBACK_LOGIN_USER: ServiceType = 3; +pub const SERVICE_TYPE_CALLBACK_FRAMED_USER: ServiceType = 4; +pub const SERVICE_TYPE_OUTBOUND_USER: ServiceType = 5; +pub const SERVICE_TYPE_ADMINISTRATIVE_USER: ServiceType = 6; +pub const SERVICE_TYPE_NAS_PROMPT_USER: ServiceType = 7; +pub const SERVICE_TYPE_AUTHENTICATE_ONLY: ServiceType = 8; +pub const SERVICE_TYPE_CALLBACK_NAS_PROMPT: ServiceType = 9; +pub const SERVICE_TYPE_CALL_CHECK: ServiceType = 10; +pub const SERVICE_TYPE_CALLBACK_ADMINISTRATIVE: ServiceType = 11; + +pub type TerminationAction = u32; +pub const TERMINATION_ACTION_DEFAULT: TerminationAction = 0; +pub const TERMINATION_ACTION_RADIUS_REQUEST: TerminationAction = 1; diff --git a/radius/src/rfc2866.rs b/radius/src/rfc2866.rs index 7b35bdc..fcdf4d7 100644 --- a/radius/src/rfc2866.rs +++ b/radius/src/rfc2866.rs @@ -3,41 +3,6 @@ use crate::avp::{AVPError, AVPType, AVP}; use crate::packet::Packet; -pub type AcctAuthentic = u32; -pub const ACCT_AUTHENTIC_RADIUS: AcctAuthentic = 1; -pub const ACCT_AUTHENTIC_LOCAL: AcctAuthentic = 2; -pub const ACCT_AUTHENTIC_REMOTE: AcctAuthentic = 3; -pub const ACCT_AUTHENTIC_DIAMETER: AcctAuthentic = 4; - -pub type AcctStatusType = u32; -pub const ACCT_STATUS_TYPE_START: AcctStatusType = 1; -pub const ACCT_STATUS_TYPE_STOP: AcctStatusType = 2; -pub const ACCT_STATUS_TYPE_ALIVE: AcctStatusType = 3; -pub const ACCT_STATUS_TYPE_INTERIM_UPDATE: AcctStatusType = 3; -pub const ACCT_STATUS_TYPE_ACCOUNTING_ON: AcctStatusType = 7; -pub const ACCT_STATUS_TYPE_ACCOUNTING_OFF: AcctStatusType = 8; -pub const ACCT_STATUS_TYPE_FAILED: AcctStatusType = 15; - -pub type AcctTerminateCause = u32; -pub const ACCT_TERMINATE_CAUSE_USER_REQUEST: AcctTerminateCause = 1; -pub const ACCT_TERMINATE_CAUSE_LOST_CARRIER: AcctTerminateCause = 2; -pub const ACCT_TERMINATE_CAUSE_LOST_SERVICE: AcctTerminateCause = 3; -pub const ACCT_TERMINATE_CAUSE_IDLE_TIMEOUT: AcctTerminateCause = 4; -pub const ACCT_TERMINATE_CAUSE_SESSION_TIMEOUT: AcctTerminateCause = 5; -pub const ACCT_TERMINATE_CAUSE_ADMIN_RESET: AcctTerminateCause = 6; -pub const ACCT_TERMINATE_CAUSE_ADMIN_REBOOT: AcctTerminateCause = 7; -pub const ACCT_TERMINATE_CAUSE_PORT_ERROR: AcctTerminateCause = 8; -pub const ACCT_TERMINATE_CAUSE_NAS_ERROR: AcctTerminateCause = 9; -pub const ACCT_TERMINATE_CAUSE_NAS_REQUEST: AcctTerminateCause = 10; -pub const ACCT_TERMINATE_CAUSE_NAS_REBOOT: AcctTerminateCause = 11; -pub const ACCT_TERMINATE_CAUSE_PORT_UNNEEDED: AcctTerminateCause = 12; -pub const ACCT_TERMINATE_CAUSE_PORT_PREEMPTED: AcctTerminateCause = 13; -pub const ACCT_TERMINATE_CAUSE_PORT_SUSPENDED: AcctTerminateCause = 14; -pub const ACCT_TERMINATE_CAUSE_SERVICE_UNAVAILABLE: AcctTerminateCause = 15; -pub const ACCT_TERMINATE_CAUSE_CALLBACK: AcctTerminateCause = 16; -pub const ACCT_TERMINATE_CAUSE_USER_ERROR: AcctTerminateCause = 17; -pub const ACCT_TERMINATE_CAUSE_HOST_REQUEST: AcctTerminateCause = 18; - pub const ACCT_STATUS_TYPE_TYPE: AVPType = 40; pub fn delete_acct_status_type(packet: &mut Packet) { packet.delete(ACCT_STATUS_TYPE_TYPE); @@ -277,3 +242,38 @@ pub fn lookup_all_acct_link_count(packet: &Packet) -> Result, AVPError> } Ok(vec) } + +pub type AcctAuthentic = u32; +pub const ACCT_AUTHENTIC_RADIUS: AcctAuthentic = 1; +pub const ACCT_AUTHENTIC_LOCAL: AcctAuthentic = 2; +pub const ACCT_AUTHENTIC_REMOTE: AcctAuthentic = 3; +pub const ACCT_AUTHENTIC_DIAMETER: AcctAuthentic = 4; + +pub type AcctStatusType = u32; +pub const ACCT_STATUS_TYPE_START: AcctStatusType = 1; +pub const ACCT_STATUS_TYPE_STOP: AcctStatusType = 2; +pub const ACCT_STATUS_TYPE_ALIVE: AcctStatusType = 3; +pub const ACCT_STATUS_TYPE_INTERIM_UPDATE: AcctStatusType = 3; +pub const ACCT_STATUS_TYPE_ACCOUNTING_ON: AcctStatusType = 7; +pub const ACCT_STATUS_TYPE_ACCOUNTING_OFF: AcctStatusType = 8; +pub const ACCT_STATUS_TYPE_FAILED: AcctStatusType = 15; + +pub type AcctTerminateCause = u32; +pub const ACCT_TERMINATE_CAUSE_USER_REQUEST: AcctTerminateCause = 1; +pub const ACCT_TERMINATE_CAUSE_LOST_CARRIER: AcctTerminateCause = 2; +pub const ACCT_TERMINATE_CAUSE_LOST_SERVICE: AcctTerminateCause = 3; +pub const ACCT_TERMINATE_CAUSE_IDLE_TIMEOUT: AcctTerminateCause = 4; +pub const ACCT_TERMINATE_CAUSE_SESSION_TIMEOUT: AcctTerminateCause = 5; +pub const ACCT_TERMINATE_CAUSE_ADMIN_RESET: AcctTerminateCause = 6; +pub const ACCT_TERMINATE_CAUSE_ADMIN_REBOOT: AcctTerminateCause = 7; +pub const ACCT_TERMINATE_CAUSE_PORT_ERROR: AcctTerminateCause = 8; +pub const ACCT_TERMINATE_CAUSE_NAS_ERROR: AcctTerminateCause = 9; +pub const ACCT_TERMINATE_CAUSE_NAS_REQUEST: AcctTerminateCause = 10; +pub const ACCT_TERMINATE_CAUSE_NAS_REBOOT: AcctTerminateCause = 11; +pub const ACCT_TERMINATE_CAUSE_PORT_UNNEEDED: AcctTerminateCause = 12; +pub const ACCT_TERMINATE_CAUSE_PORT_PREEMPTED: AcctTerminateCause = 13; +pub const ACCT_TERMINATE_CAUSE_PORT_SUSPENDED: AcctTerminateCause = 14; +pub const ACCT_TERMINATE_CAUSE_SERVICE_UNAVAILABLE: AcctTerminateCause = 15; +pub const ACCT_TERMINATE_CAUSE_CALLBACK: AcctTerminateCause = 16; +pub const ACCT_TERMINATE_CAUSE_USER_ERROR: AcctTerminateCause = 17; +pub const ACCT_TERMINATE_CAUSE_HOST_REQUEST: AcctTerminateCause = 18; diff --git a/radius/src/rfc2867.rs b/radius/src/rfc2867.rs index be6669c..c9671b1 100644 --- a/radius/src/rfc2867.rs +++ b/radius/src/rfc2867.rs @@ -3,14 +3,6 @@ use crate::avp::{AVPError, AVPType, AVP}; use crate::packet::Packet; -pub type AcctStatusType = u32; -pub const ACCT_STATUS_TYPE_TUNNEL_START: AcctStatusType = 9; -pub const ACCT_STATUS_TYPE_TUNNEL_STOP: AcctStatusType = 10; -pub const ACCT_STATUS_TYPE_TUNNEL_REJECT: AcctStatusType = 11; -pub const ACCT_STATUS_TYPE_TUNNEL_LINK_START: AcctStatusType = 12; -pub const ACCT_STATUS_TYPE_TUNNEL_LINK_STOP: AcctStatusType = 13; -pub const ACCT_STATUS_TYPE_TUNNEL_LINK_REJECT: AcctStatusType = 14; - pub const ACCT_TUNNEL_CONNECTION_TYPE: AVPType = 68; pub fn delete_acct_tunnel_connection(packet: &mut Packet) { packet.delete(ACCT_TUNNEL_CONNECTION_TYPE); @@ -50,3 +42,11 @@ pub fn lookup_all_acct_tunnel_packets_lost(packet: &Packet) -> Result, } Ok(vec) } + +pub type AcctStatusType = u32; +pub const ACCT_STATUS_TYPE_TUNNEL_START: AcctStatusType = 9; +pub const ACCT_STATUS_TYPE_TUNNEL_STOP: AcctStatusType = 10; +pub const ACCT_STATUS_TYPE_TUNNEL_REJECT: AcctStatusType = 11; +pub const ACCT_STATUS_TYPE_TUNNEL_LINK_START: AcctStatusType = 12; +pub const ACCT_STATUS_TYPE_TUNNEL_LINK_STOP: AcctStatusType = 13; +pub const ACCT_STATUS_TYPE_TUNNEL_LINK_REJECT: AcctStatusType = 14; diff --git a/radius/src/rfc2868.rs b/radius/src/rfc2868.rs index ef51643..b9bd993 100644 --- a/radius/src/rfc2868.rs +++ b/radius/src/rfc2868.rs @@ -4,38 +4,6 @@ use crate::avp::{AVPError, AVPType, AVP}; use crate::packet::Packet; use crate::tag::Tag; -pub type TunnelMediumType = u32; -pub const TUNNEL_MEDIUM_TYPE_IP: TunnelMediumType = 1; -pub const TUNNEL_MEDIUM_TYPE_I_PV_4: TunnelMediumType = 1; -pub const TUNNEL_MEDIUM_TYPE_I_PV_6: TunnelMediumType = 2; -pub const TUNNEL_MEDIUM_TYPE_NSAP: TunnelMediumType = 3; -pub const TUNNEL_MEDIUM_TYPE_HDLC: TunnelMediumType = 4; -pub const TUNNEL_MEDIUM_TYPE_BBN_1822: TunnelMediumType = 5; -pub const TUNNEL_MEDIUM_TYPE_IEEE_802: TunnelMediumType = 6; -pub const TUNNEL_MEDIUM_TYPE_E_163: TunnelMediumType = 7; -pub const TUNNEL_MEDIUM_TYPE_E_164: TunnelMediumType = 8; -pub const TUNNEL_MEDIUM_TYPE_F_69: TunnelMediumType = 9; -pub const TUNNEL_MEDIUM_TYPE_X_121: TunnelMediumType = 10; -pub const TUNNEL_MEDIUM_TYPE_IPX: TunnelMediumType = 11; -pub const TUNNEL_MEDIUM_TYPE_APPLETALK: TunnelMediumType = 12; -pub const TUNNEL_MEDIUM_TYPE_DEC_NET_IV: TunnelMediumType = 13; -pub const TUNNEL_MEDIUM_TYPE_BANYAN_VINES: TunnelMediumType = 14; -pub const TUNNEL_MEDIUM_TYPE_E_164_NSAP: TunnelMediumType = 15; - -pub type TunnelType = u32; -pub const TUNNEL_TYPE_PPTP: TunnelType = 1; -pub const TUNNEL_TYPE_L2F: TunnelType = 2; -pub const TUNNEL_TYPE_L2TP: TunnelType = 3; -pub const TUNNEL_TYPE_ATMP: TunnelType = 4; -pub const TUNNEL_TYPE_VTP: TunnelType = 5; -pub const TUNNEL_TYPE_AH: TunnelType = 6; -pub const TUNNEL_TYPE_IP: TunnelType = 7; -pub const TUNNEL_TYPE_MIN_IP: TunnelType = 8; -pub const TUNNEL_TYPE_ESP: TunnelType = 9; -pub const TUNNEL_TYPE_GRE: TunnelType = 10; -pub const TUNNEL_TYPE_DVS: TunnelType = 11; -pub const TUNNEL_TYPE_IP_IN_IP: TunnelType = 12; - pub const TUNNEL_TYPE_TYPE: AVPType = 64; pub fn delete_tunnel_type(packet: &mut Packet) { packet.delete(TUNNEL_TYPE_TYPE); @@ -306,3 +274,35 @@ pub fn lookup_all_tunnel_server_auth_id( } Ok(vec) } + +pub type TunnelMediumType = u32; +pub const TUNNEL_MEDIUM_TYPE_IP: TunnelMediumType = 1; +pub const TUNNEL_MEDIUM_TYPE_I_PV_4: TunnelMediumType = 1; +pub const TUNNEL_MEDIUM_TYPE_I_PV_6: TunnelMediumType = 2; +pub const TUNNEL_MEDIUM_TYPE_NSAP: TunnelMediumType = 3; +pub const TUNNEL_MEDIUM_TYPE_HDLC: TunnelMediumType = 4; +pub const TUNNEL_MEDIUM_TYPE_BBN_1822: TunnelMediumType = 5; +pub const TUNNEL_MEDIUM_TYPE_IEEE_802: TunnelMediumType = 6; +pub const TUNNEL_MEDIUM_TYPE_E_163: TunnelMediumType = 7; +pub const TUNNEL_MEDIUM_TYPE_E_164: TunnelMediumType = 8; +pub const TUNNEL_MEDIUM_TYPE_F_69: TunnelMediumType = 9; +pub const TUNNEL_MEDIUM_TYPE_X_121: TunnelMediumType = 10; +pub const TUNNEL_MEDIUM_TYPE_IPX: TunnelMediumType = 11; +pub const TUNNEL_MEDIUM_TYPE_APPLETALK: TunnelMediumType = 12; +pub const TUNNEL_MEDIUM_TYPE_DEC_NET_IV: TunnelMediumType = 13; +pub const TUNNEL_MEDIUM_TYPE_BANYAN_VINES: TunnelMediumType = 14; +pub const TUNNEL_MEDIUM_TYPE_E_164_NSAP: TunnelMediumType = 15; + +pub type TunnelType = u32; +pub const TUNNEL_TYPE_PPTP: TunnelType = 1; +pub const TUNNEL_TYPE_L2F: TunnelType = 2; +pub const TUNNEL_TYPE_L2TP: TunnelType = 3; +pub const TUNNEL_TYPE_ATMP: TunnelType = 4; +pub const TUNNEL_TYPE_VTP: TunnelType = 5; +pub const TUNNEL_TYPE_AH: TunnelType = 6; +pub const TUNNEL_TYPE_IP: TunnelType = 7; +pub const TUNNEL_TYPE_MIN_IP: TunnelType = 8; +pub const TUNNEL_TYPE_ESP: TunnelType = 9; +pub const TUNNEL_TYPE_GRE: TunnelType = 10; +pub const TUNNEL_TYPE_DVS: TunnelType = 11; +pub const TUNNEL_TYPE_IP_IN_IP: TunnelType = 12; diff --git a/radius/src/rfc2869.rs b/radius/src/rfc2869.rs index c0a41db..65d00df 100644 --- a/radius/src/rfc2869.rs +++ b/radius/src/rfc2869.rs @@ -5,15 +5,6 @@ use chrono::{DateTime, Utc}; use crate::avp::{AVPError, AVPType, AVP}; use crate::packet::Packet; -pub type ArapZoneAccess = u32; -pub const ARAP_ZONE_ACCESS_DEFAULT_ZONE: ArapZoneAccess = 1; -pub const ARAP_ZONE_ACCESS_ZONE_FILTER_INCLUSIVE: ArapZoneAccess = 2; -pub const ARAP_ZONE_ACCESS_ZONE_FILTER_EXCLUSIVE: ArapZoneAccess = 4; - -pub type Prompt = u32; -pub const PROMPT_NO_ECHO: Prompt = 0; -pub const PROMPT_ECHO: Prompt = 1; - pub const ACCT_INPUT_GIGAWORDS_TYPE: AVPType = 52; pub fn delete_acct_input_gigawords(packet: &mut Packet) { packet.delete(ACCT_INPUT_GIGAWORDS_TYPE); @@ -372,3 +363,12 @@ pub fn lookup_all_framed_pool(packet: &Packet) -> Result, AVPError> } Ok(vec) } + +pub type ArapZoneAccess = u32; +pub const ARAP_ZONE_ACCESS_DEFAULT_ZONE: ArapZoneAccess = 1; +pub const ARAP_ZONE_ACCESS_ZONE_FILTER_INCLUSIVE: ArapZoneAccess = 2; +pub const ARAP_ZONE_ACCESS_ZONE_FILTER_EXCLUSIVE: ArapZoneAccess = 4; + +pub type Prompt = u32; +pub const PROMPT_NO_ECHO: Prompt = 0; +pub const PROMPT_ECHO: Prompt = 1; diff --git a/radius/src/rfc3576.rs b/radius/src/rfc3576.rs index 494c4a3..34bebd0 100644 --- a/radius/src/rfc3576.rs +++ b/radius/src/rfc3576.rs @@ -3,26 +3,6 @@ use crate::avp::{AVPError, AVPType, AVP}; use crate::packet::Packet; -pub type ErrorCause = u32; -pub const ERROR_CAUSE_RESIDUAL_CONTEXT_REMOVED: ErrorCause = 201; -pub const ERROR_CAUSE_INVALID_EAP_PACKET: ErrorCause = 202; -pub const ERROR_CAUSE_UNSUPPORTED_ATTRIBUTE: ErrorCause = 401; -pub const ERROR_CAUSE_MISSING_ATTRIBUTE: ErrorCause = 402; -pub const ERROR_CAUSE_NAS_IDENTIFICATION_MISMATCH: ErrorCause = 403; -pub const ERROR_CAUSE_INVALID_REQUEST: ErrorCause = 404; -pub const ERROR_CAUSE_UNSUPPORTED_SERVICE: ErrorCause = 405; -pub const ERROR_CAUSE_UNSUPPORTED_EXTENSION: ErrorCause = 406; -pub const ERROR_CAUSE_ADMINISTRATIVELY_PROHIBITED: ErrorCause = 501; -pub const ERROR_CAUSE_PROXY_REQUEST_NOT_ROUTABLE: ErrorCause = 502; -pub const ERROR_CAUSE_SESSION_CONTEXT_NOT_FOUND: ErrorCause = 503; -pub const ERROR_CAUSE_SESSION_CONTEXT_NOT_REMOVABLE: ErrorCause = 504; -pub const ERROR_CAUSE_PROXY_PROCESSING_ERROR: ErrorCause = 505; -pub const ERROR_CAUSE_RESOURCES_UNAVAILABLE: ErrorCause = 506; -pub const ERROR_CAUSE_REQUEST_INITIATED: ErrorCause = 507; - -pub type ServiceType = u32; -pub const SERVICE_TYPE_AUTHORIZE_ONLY: ServiceType = 17; - pub const ERROR_CAUSE_TYPE: AVPType = 101; pub fn delete_error_cause(packet: &mut Packet) { packet.delete(ERROR_CAUSE_TYPE); @@ -42,3 +22,23 @@ pub fn lookup_all_error_cause(packet: &Packet) -> Result, AVPErr } Ok(vec) } + +pub type ErrorCause = u32; +pub const ERROR_CAUSE_RESIDUAL_CONTEXT_REMOVED: ErrorCause = 201; +pub const ERROR_CAUSE_INVALID_EAP_PACKET: ErrorCause = 202; +pub const ERROR_CAUSE_UNSUPPORTED_ATTRIBUTE: ErrorCause = 401; +pub const ERROR_CAUSE_MISSING_ATTRIBUTE: ErrorCause = 402; +pub const ERROR_CAUSE_NAS_IDENTIFICATION_MISMATCH: ErrorCause = 403; +pub const ERROR_CAUSE_INVALID_REQUEST: ErrorCause = 404; +pub const ERROR_CAUSE_UNSUPPORTED_SERVICE: ErrorCause = 405; +pub const ERROR_CAUSE_UNSUPPORTED_EXTENSION: ErrorCause = 406; +pub const ERROR_CAUSE_ADMINISTRATIVELY_PROHIBITED: ErrorCause = 501; +pub const ERROR_CAUSE_PROXY_REQUEST_NOT_ROUTABLE: ErrorCause = 502; +pub const ERROR_CAUSE_SESSION_CONTEXT_NOT_FOUND: ErrorCause = 503; +pub const ERROR_CAUSE_SESSION_CONTEXT_NOT_REMOVABLE: ErrorCause = 504; +pub const ERROR_CAUSE_PROXY_PROCESSING_ERROR: ErrorCause = 505; +pub const ERROR_CAUSE_RESOURCES_UNAVAILABLE: ErrorCause = 506; +pub const ERROR_CAUSE_REQUEST_INITIATED: ErrorCause = 507; + +pub type ServiceType = u32; +pub const SERVICE_TYPE_AUTHORIZE_ONLY: ServiceType = 17; diff --git a/radius/src/rfc4675.rs b/radius/src/rfc4675.rs index 0a7b03c..0b79816 100644 --- a/radius/src/rfc4675.rs +++ b/radius/src/rfc4675.rs @@ -3,10 +3,6 @@ use crate::avp::{AVPError, AVPType, AVP}; use crate::packet::Packet; -pub type IngressFilters = u32; -pub const INGRESS_FILTERS_ENABLED: IngressFilters = 1; -pub const INGRESS_FILTERS_DISABLED: IngressFilters = 2; - pub const EGRESS_VLANID_TYPE: AVPType = 56; pub fn delete_egress_vlanid(packet: &mut Packet) { packet.delete(EGRESS_VLANID_TYPE); @@ -84,3 +80,7 @@ pub fn lookup_all_user_priority_table(packet: &Packet) -> Vec> { } vec } + +pub type IngressFilters = u32; +pub const INGRESS_FILTERS_ENABLED: IngressFilters = 1; +pub const INGRESS_FILTERS_DISABLED: IngressFilters = 2; diff --git a/radius/src/rfc5607.rs b/radius/src/rfc5607.rs index c588a14..84086ba 100644 --- a/radius/src/rfc5607.rs +++ b/radius/src/rfc5607.rs @@ -3,25 +3,6 @@ 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); @@ -111,3 +92,22 @@ pub fn lookup_all_management_privilege_level(packet: &Packet) -> Result } Ok(vec) } + +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; diff --git a/radius/src/rfc6677.rs b/radius/src/rfc6677.rs index 4f7ae4f..ba14947 100644 --- a/radius/src/rfc6677.rs +++ b/radius/src/rfc6677.rs @@ -3,17 +3,6 @@ use crate::avp::{AVPError, AVPType, AVP}; use crate::packet::Packet; -pub type EapLowerLayer = u32; -pub const EAP_LOWER_LAYER_WIRED_IEEE_802_1X: EapLowerLayer = 1; -pub const EAP_LOWER_LAYER_IEEE_802_1X_NO_PREAUTH: EapLowerLayer = 2; -pub const EAP_LOWER_LAYER_IEEE_802_1X_PREAUTH: EapLowerLayer = 3; -pub const EAP_LOWER_LAYER_IEEE_802_1_6E: EapLowerLayer = 4; -pub const EAP_LOWER_LAYER_IK_EV_2: EapLowerLayer = 5; -pub const EAP_LOWER_LAYER_PPP: EapLowerLayer = 6; -pub const EAP_LOWER_LAYER_PANA_NO_PREAUTH: EapLowerLayer = 7; -pub const EAP_LOWER_LAYER_GSS_API: EapLowerLayer = 8; -pub const EAP_LOWER_LAYER_PANA_PREAUTH: EapLowerLayer = 9; - pub const EAP_LOWER_LAYER_TYPE: AVPType = 163; pub fn delete_eap_lower_layer(packet: &mut Packet) { packet.delete(EAP_LOWER_LAYER_TYPE); @@ -33,3 +22,14 @@ pub fn lookup_all_eap_lower_layer(packet: &Packet) -> Result, } Ok(vec) } + +pub type EapLowerLayer = u32; +pub const EAP_LOWER_LAYER_WIRED_IEEE_802_1X: EapLowerLayer = 1; +pub const EAP_LOWER_LAYER_IEEE_802_1X_NO_PREAUTH: EapLowerLayer = 2; +pub const EAP_LOWER_LAYER_IEEE_802_1X_PREAUTH: EapLowerLayer = 3; +pub const EAP_LOWER_LAYER_IEEE_802_1_6E: EapLowerLayer = 4; +pub const EAP_LOWER_LAYER_IK_EV_2: EapLowerLayer = 5; +pub const EAP_LOWER_LAYER_PPP: EapLowerLayer = 6; +pub const EAP_LOWER_LAYER_PANA_NO_PREAUTH: EapLowerLayer = 7; +pub const EAP_LOWER_LAYER_GSS_API: EapLowerLayer = 8; +pub const EAP_LOWER_LAYER_PANA_PREAUTH: EapLowerLayer = 9;