First we need to understand why Diameter uses Attribute-Value pair data structure?
If we see any Seagull scenario file,the Diameter AVPs are defined in the form of XML tags.
1.XML is extensible and flexible by design, so there isn’t really a problem with being constrained by a fixed set of fields.
2.New XML elements and attributes can be invented and added as needed,
specifically to deal with variable and evolving data formats. Many applications use XML exactly for this reason.
Lets take a relational database example, you want to maintain peer table information
Name | Host | Port | State |
| SER_GX | 10.122.65.39 | 3869 | Up |
Same above information can be written using Attribute-Value pair:
Hope the above explanation gives you an idea of what AVP means.
Grouped AVP is nothing but an AVP within another AVP.
For example :
<avp name="Auth-Application-Id" value="4"> </avp>
<avp name="Subscription-Id-Type" value="0"> </avp>
<avp name="Subscription-Id-Data" value=""> </avp>