mirror of
https://github.com/cubixle/radius-rs.git
synced 2026-04-24 21:14:44 +01:00
Cosmetic change
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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<String, String> = 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::<HashSet<&String>>();
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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<Vec<String>, 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;
|
||||
|
||||
@@ -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<Vec<u32>, 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;
|
||||
|
||||
@@ -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<Vec<u32>,
|
||||
}
|
||||
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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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<Vec<String>, 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;
|
||||
|
||||
@@ -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<Vec<ErrorCause>, 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;
|
||||
|
||||
@@ -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<u8>> {
|
||||
}
|
||||
vec
|
||||
}
|
||||
|
||||
pub type IngressFilters = u32;
|
||||
pub const INGRESS_FILTERS_ENABLED: IngressFilters = 1;
|
||||
pub const INGRESS_FILTERS_DISABLED: IngressFilters = 2;
|
||||
|
||||
@@ -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<Vec<u32>
|
||||
}
|
||||
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;
|
||||
|
||||
@@ -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<Vec<EapLowerLayer>,
|
||||
}
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user