[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Proposal: Capabilities Attribute
I agree that we need a capabilities function. But I would like to see
a relatively coarse granularity facility, rather than something that
sends data about individual attributes. For instance, I liked the
list that someone made up about prepaid, filtering capability,
redirection, etc. The right granularity to me appears to roughly
one RFC. I say roughly because I do want to prepare for the possibility
that, say, prepaid has a small number of different profiles*.
And yes, there can be capabilities that don't map nicely to
new attributes.
There seems to be a few different kinds of capabilities
negotiation, by the way. In Diameter, for instance, we have
hop-by-hop negotiation. The primary purpose of this scheme
is to ensure to provide information for routing purposes.
But another type of negotiation is something that occurs
end-to-end with a specific home system, and this is what
we attempt to address in the various proposals right
now. The primary purpose of this is to ensure whether
we can send an attribute or command or expect a behavior
relating to this specific user's session.
The difference between the two approaches is that
even if you know next-hop wise that FOO is supported,
you don't know if FOO is supported for the particular
user's session at a particular home domain. Note that
the end-to-end negotiation is typically limited to
the capabilities of the server that you currently
talk to; it may well be that even if FOO doesn't
exist on the authentication server it might exist
on the accounting server at the same domain. This
part is harder to solve, so I presume we are not
going to require it.
Anyway, here's my strawman approach to capabilities
negotiation:
1. End-to-end Capability Attribute
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Capabilities string ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
TBD for end-to-end capability attribute.
Length
The length.
Capabilities string
This field contains a variable length bit string. Each
bit position, if set to 1, indicates full compliance
with the respective feature specification.
An initial allocation of bits for different features
is listed below:
Bit 0 (NASREQ) Support for basic authentication and
authorization service [RFC 2865, I-D.NASREQ].
Mandatory in RADIUS.
Bit 1 (MOBILE IPv4) Support for Mobile IPv4 [I-D.MIPv4].
Bit 2 (PREPAID) Support for prepaid services [I-D.Prepaid-R,
I-D.Prepaid-D].
Bit 3 (ACCOUNTING) Support for accounting [RFC 2866, RFC 3855].
Bit 4 (FILTER-RULE) Support for generalized filters (mandatory
in Diameter nodes and optional for RADIUS
nodes).
Bit 5 (REDIRECT) Support for user-session redirection
feature (I-D.redirect).
Bit 6 (CUI) Support for the CUI functionality (I-D.CUI).
Bit 7 (LOCATION) Support for the location attributes (I-D.LOC).
Bit 128 (CX) Support for the 3GPP CX application.
Bit 129 (Sh) Support for the 3GPP Sh application.
Bit 130 (Rf/Ro) Support for the 3GPP Rf/Ro application.
2. Diameter Compatibility
This attribute functions in an equivalent manner in both
RADIUS and Diameter. In Diameter, the base protocol layer
may fill in the attribute values automatically based on its
knowledge of applications running on top of it.
Note that a single bit has been allocated for a feature
if it is expected that it is supported in the same manner
in RADIUS and Diameter and that translation rules exist.
In this situation the peer does not care whether Diameter
or RADIUS is used on the other side. Otherwise, separate
bits have been allocated.
3. IANA Considerations
IANA should create a new name space, Capabilities Bit.
The initial values in this name space include those
listed in Section 1. New values in the 0-128 range can
be allocated through IETF Consensus. Other values (upto
2023 i.e. 253 bytes times 8 bits) can be allocated
on a First-Come First Served basis with Specification
Required.
--Jari
*) I too dislike complexity in the prepaid scheme. But having
reviewed requirements and interest from various different
scenarios, I tend to agree with Avi that we can't make it
simpler.
--
to unsubscribe send a message to radiusext-request@ops.ietf.org with
the word 'unsubscribe' in a single line as the message text body.
archive: <http://psg.com/lists/radiusext/>