The RADIUS attribute picker is driven by a curated dictionary that the UI fetches from the RADIUS service. It includes standard RFC attributes, common vendor-specific attributes, and Altostrat system attributes used for quota behavior.
Use the picker in the UI as the source of truth. It shows the current attribute name, vendor, description, tags, input type, select options, validation type, and allowed operators.
Dictionary Coverage
The current dictionary exposes 51 attributes across these vendors:
| Vendor | Count | Common uses |
|---|
| Standard | 25 | Session timers, IP assignment, framed routes, service type, VLAN assignment, passwords, access control, and reply messages. |
| MikroTik | 4 | Rate limits, address lists, MikroTik groups, and delegated IPv6 pools. |
| WISPr | 2 | Bandwidth limits for wireless and hotspot environments. |
| Ubiquiti | 1 | Egress VLAN assignment. |
| Cisco | 1 | Cisco AVPair policy values. |
| Aruba | 3 | User role, user VLAN, and captive portal URL. |
| Ruckus | 3 | SSID and uplink/downlink rate limits. |
| Juniper | 5 | Local usernames, DNS, ingress policy, and egress policy. |
| Microsoft | 2 | Primary and secondary DNS server attributes. |
| System | 5 | Altostrat quota attributes. |
Standard Attributes
Standard attributes include:
Session-Timeout
Idle-Timeout
Acct-Interim-Interval
Termination-Action
Framed-IP-Address
Framed-IP-Netmask
Framed-Route
Framed-Pool
Delegated-IPv6-Prefix
Framed-Protocol
Framed-MTU
Service-Type
NAS-Port-Type
Port-Limit
Tunnel-Private-Group-Id
Tunnel-Type
Tunnel-Medium-Type
Filter-Id
Reply-Message
Class
Login-LAT-Service
User-Password
CHAP-Password
Cleartext-Password
Code
Code is a response-control attribute used by the platform response flow. Most customer policy work uses the session, IP, service, VLAN, filtering, and vendor-specific attributes rather than editing Code directly.
Vendor Attributes
| Vendor | Attributes |
|---|
| MikroTik | Mikrotik-Rate-Limit, Mikrotik-Address-List, Mikrotik-Group, Mikrotik-Delegated-IPv6-Pool |
| WISPr | WISPr-Bandwidth-Max-Down, WISPr-Bandwidth-Max-Up |
| Ubiquiti | Egress-VLANID |
| Cisco | Cisco-AVPair |
| Aruba | Aruba-User-Role, Aruba-User-Vlan, Aruba-Captive-Portal-URL |
| Ruckus | Ruckus-SSID, Ruckus-Downlink-Rate-Limit, Ruckus-Uplink-Rate-Limit |
| Juniper | Juniper-Local-User-Name, Juniper-Primary-DNS, Juniper-Secondary-DNS, Juniper-Ingress-Policy-Name, Juniper-Egress-Policy-Name |
| Microsoft | MS-Primary-DNS-Server, MS-Secondary-DNS-Server |
System Quota Attributes
Altostrat system attributes are used for quota-aware policy:
X-Octet-Quota
X-Quota-TTL
X-Quota-Reset-After
X-Quota-Carry-Over-Cycles
X-Quota-Expire-TTL
Quota attributes belong on groups, not individual users. The quota service reads group attributes, uses the lowest quota when multiple groups define one, and applies top-ups when calculating the effective allowance.
| Attribute | Purpose |
|---|
X-Octet-Quota | Data quota in bytes. |
X-Quota-TTL | Hours after which a quota resets. |
X-Quota-Reset-After | Cron expression for the quota reset schedule. |
X-Quota-Carry-Over-Cycles | Number of cycles unused quota can carry over. |
X-Quota-Expire-TTL | Hours after usage begins before the quota expires entirely. |
Operators
The UI supports these RADIUS operators where allowed by the selected attribute:
| Operator | Typical meaning |
|---|
:= | Set or replace the attribute value. |
== | Match the request attribute value. |
+= | Add another value for multi-value attributes. |
!= | Match when a value is not equal. |
> | Match greater-than values. |
>= | Match greater-than-or-equal values. |
< | Match less-than values. |
<= | Match less-than-or-equal values. |
The picker limits the operator list to what the selected attribute supports.
Attributes render with an input type that matches their expected value:
- Text.
- Number.
- Password.
- IP address.
- Select dropdown.
- Duration in seconds.
- Bandwidth in bps or kbps.
- Storage in bytes.
- URL.
For enumerated attributes such as Service-Type, NAS-Port-Type, Tunnel-Type, and Tunnel-Medium-Type, the UI shows friendly labels while storing the configured value.
Validation Limits
The picker and API enforce type checks and selected range checks. Current notable limits include:
| Attribute | Accepted range |
|---|
Session-Timeout | 60 to 604800 seconds. |
Idle-Timeout | 60 to 7200 seconds. |
WISPr-Bandwidth-Max-Up and WISPr-Bandwidth-Max-Down | 8000 to 1000000000 bps. |
Ruckus-Uplink-Rate-Limit and Ruckus-Downlink-Rate-Limit | 8 to 1000000 kbps. |
Tunnel-Private-Group-Id, Aruba-User-Vlan, and Egress-VLANID | VLAN ID 1 to 4094. |
X-Octet-Quota | 0 to 10995116277760 bytes. |
X-Quota-TTL and X-Quota-Expire-TTL | 1 to 8760 hours. |
X-Quota-Carry-Over-Cycles | 0 to 12 cycles. |
Attributes are tagged for filtering and discovery. Current tags include session, accounting, ISP, IP, DHCP, routing, IPv6, network, service, authentication, NAS, access, limitation, Wi-Fi, VLAN, filtering, user experience, bandwidth, policy, firewall, hotspot, QoS, DNS, and quota.
Attribute Validation
The API validates attributes before saving users or groups. If an attribute is not in the supported dictionary, uses an unsupported operator, or has a value that does not match the expected type, the save request is rejected.
Password-related attributes are supported for RADIUS protocol compatibility, but normal user credential changes should use the credential fields and reset flows in the UI. Do not use metadata or ad hoc attributes as a shared secret store.
When translating an existing FreeRADIUS deployment, create one group per reusable policy first. Then use the picker to recreate the check and reply attributes with the correct vendor dictionary and operator.