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

RE: RADIUS Design Guidelines [SEQUENCE]



One more requirement:

SEQUENCE or (fixed encoding as I call it) does not support the notion
where an element may repeat.

 

> -----Original Message-----
> From: owner-radiusext@ops.ietf.org 
> [mailto:owner-radiusext@ops.ietf.org] On Behalf Of Nelson, David
> Sent: Tuesday, August 29, 2006 11:51 AM
> To: radiusext@ops.ietf.org
> Subject: RE: RADIUS Design Guidelines [SEQUENCE]
> 
> Avi Lior writes...
> 
> >Had to start a new thread.
> 
> Thanks for getting back to the subject that I'd originally 
> wanted to discuss.
> 
> > Sequence as you propose does not work.
> > 
> > It only works when all members of a sequence are required 
> except the 
> > last one which can be optional --
> 
> Well, I think that packet formats that have [dynamically] 
> optional data parts are more complicated, and definitely 
> outside the RADIUS design paradigm of the TLV.  One type, one 
> length, one value.
> 
> > .. or that if an element in the sequence is not required 
> its value is 
> > still sent (as a zero)
> 
> Assuming we were to accept that certain fields in a complex 
> data type are optional, that would probably be the way to go.
>  
> > As well the sequence does not work for variable length fields.
> 
> I'd indicated the caveats around that in my initial post.
> 
> > A sequence of TLVs will work.  Since the Type field allows us to 
> > identify the attribute resolving the first problem.
> 
> What comes around, goes around.  Three years later, it looks 
> as if you are one again suggesting "sub-types", i.e. 
> sequences of TLVs, potentially nested in other TLVs.
> 
> > If we are going to do this lets do it right!
> 
> Well, I'm sure that there are multiple definitions of "right".
> 
> The WG consensus on this issue, to date, is that we do not 
> want to redefine the RADIUS data model, even though we 
> acknowledge that it is very informal and rather limited.  
> Rather than change the current practices in on-the-wire 
> encodings in any substantial way, I was looking for a method 
> of designing attributes and documenting current practices in 
> a way that leads itself to a more formal and regular (read 
> modular) construction.  I believe this will enhance the 
> ability for data dictionary driven implementations to embrace 
> the extended attributes.
> 
> The current RADIUS data model is TLV, for single-valued, 
> atomic data elements.  We are currently discussing how to 
> embrace structured forms of data elements (V). Over the 
> years, the practice has developed of declaring the V as a 
> String type (or worse yet, failing to declare its type at 
> all), and defining the sub-elements of the string as "packed 
> fields" using the textual descriptions.
> 
> This makes it hard(er) to implement using a data dictionary.  
> I say this because there is no standard set of data types 
> that can be referenced.
> If the String data type is seen to be composed of a SEQUENCE OF other
> (base) data types, it is much easier.
> 
> You make the point that string fields need a length.  
> Absolutely.  I think it is not an unreasonable assumption to 
> make that the RADIUS String and Text data types *do* include 
> a length, the L in the TLV.
> Sicne RADIUS only describes single-valued TLVs, there was no 
> reason to associate the L with the string V.  One L was 
> always sufficient.  It is logical, I think, to assume that if 
> a TLV contains a SEQUENCE of string Vs, that the string Vs 
> will each have associated Ls.
> 
> OTOH, as you suggest, it is not a large step to further 
> extend this to allowing nested TLVs.  I don't think that 
> nested TLVs are needed simply to express multi-part data 
> values.  That would only be necessary for variable-content 
> structures.  I think that it is only necessary for us to be 
> able to work with fixed-content structures.  That will 
> certainly solve the 85% problem.
> 
> 
> --
> 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/>
> 

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