[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Draft of extensions format



On Thu, 2 Sep 2010, Alan DeKok wrote:

The underlying question for me: Is this just a solution in search of a
problem?  With my recommendation the same underlying goal is met and the
dot naming exercise is unnecessary.

 The dot naming exercise *also* allows for naming and allocation of
nested TLVs.  Without it, a TLV "1" could be seen as being in conflict
with attribute "1".

 Your solution has a problem (conflict) that this solution does not
have.  It provides for allocation of ~8K attributes which you say here

I think this boils down to my advocating for a flat model where each item stands alone while the draft is advocating a hierarchical model where each items identity is strictly dependent on its parent.

When draft says TBD.1 it means attribute 'TBD.1'

When I say TBD.1 it means User-Name (Type 1) encoded in whatever TBD is. (TLV, Extension..etc)

For example lets say I have two TLVs (Containers) labeled Input and Output.

Input
- Octets
- Packets

Output
- Octets
- Packets

Under the drafts scheme the attributes defined would be:

Input
Output
Input.Octets
Input.Packets
Output.Octets
Output.Packets

Under my recommendation the attribute picture is flattened:

Input (TLV Attribute)
Output (TLV Attribute)
Octets (Attribute)
Packets (Attribute)

On the wire the basic structure of the packet is the same with octets and packet data encapsulated within input and output TLVs.

This boils down to a classic flat vs hierarchical schema argument.

As I see it the benefits of my recommendation are:

1. More flexibility. Existing attributes that were never labeled as groupable can be grouped. For example I could create a generic TLV container labeled 'suspect' containing all attributes that an intermediate proxy does not like.

2. "Like" attributes within TLVs can be reused. In the example above Octets and Packets need only be defined once and then apply to Input, Output and maybe a future "Combined" TLV container. To some extent this is just a schema/definition argument.

3. The standard VSA space can be extended with less complexity/wholesale change to existing infrastructure as every attribute definition stands alone and is therefore fully compatible with the current model.

I think its important to recognize there are two separate issues: Extension of standard attribute space and introduction of TLV (Container). The two address separate concerns. It may not be in everyones best interest to marry them.

Disadvantages of my recommendation:

1. What is allowed in a group may or may not simply be defined by declaration in a dictionary. Need a concept to declare constraints (LDAP "object classes"). I would argue you would need this anyway if there was interest in for example declaring minimum required sub attributes for a specific TLV.

2. There is a strange aspect in that the additional space has to be "bootstrapped". Either hardwired or configuration to say standard space
2^8 goes to a TBD extension attribute along the same lines as
Vendor-Specific (26) in the implementation.


Anyway after looking over the draft again I have some (un)related comments:

I think fragmentation support for 'jumbo' attribute values is a good thing however with the draft there does not seem to be a way to do both TLV grouping and attributes with large payloads at the same time. IIRC wimax VSAs support this. Could perhaps just get rid of TLV format and reuse the extended type as TLV?

In RADIUS everything is a "TLV" .. If it were labeled Container TLV or something similar to disambiguate the data types actual intended use it would be less confusing (to me).

2.4.3

"to the number of the encapsulating
   attribute ("241.1"), to yeild "245.1.1".  "
                           ^^^^^ should be yield

               ^^^ should be 245?

isn't necessary.  And even if it was necessary, our proposal can address
that problem, too.  If your solution allows for TLVs, a "dot naming"
scheme is *also* necessary for it, too.

To the extent relationship between TLVs and attributes need to be defined your correct. At the same time however it's not required when TLVs are not used. In my view an important difference.

 On the "plus" side, I don't see a lot of differences between the two
solutions.  On the "negative" side, there are issues with your proposal
that our document does not have.

I would think the wire format is similar either way.

regards,
Peter

--
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/>