4.2. Basic AVP Data Formats
Data 字段是零个或多个八位字节,包含特定于属性的信息。Data 字段的格式和长度由 AVP Code 和 AVP Length 字段确定。Data 字段的格式必须 (MUST) 是以下基本数据类型之一或从基本数据类型派生的数据类型。如果需要新的基本 AVP 数据格式,则必须 (MUST) 创建此 RFC 的新版本。
OctetString
数据包含可变长度的任意数据。除非另有说明,否则 AVP Length 字段必须 (MUST) 设置为至少 8 (如果启用了 'V' 位则为 12)。此类型的 AVP 值如果长度不是 4 个八位字节的倍数,则后跟必要的填充,以便下一个 AVP (如果有) 将从 32 位边界开始。
Integer32
32 位有符号值,以网络字节序表示。AVP Length 字段必须 (MUST) 设置为 12 (如果启用了 'V' 位则为 16)。
Integer64
64 位有符号值,以网络字节序表示。AVP Length 字段必须 (MUST) 设置为 16 (如果启用了 'V' 位则为 20)。
Unsigned32
32 位无符号值,以网络字节序表示。AVP Length 字段必须 (MUST) 设置为 12 (如果启用了 'V' 位则为 16)。
Unsigned64
64 位无符号值,以网络字节序表示。AVP Length 字段必须 (MUST) 设置为 16 (如果启用了 'V' 位则为 20)。
Float32
这表示 [FLOATPOINT] 描述的单精度浮点值。32 位值以网络字节序传输。AVP Length 字段必须 (MUST) 设置为 12 (如果启用了 'V' 位则为 16)。
Float64
这表示 [FLOATPOINT] 描述的双精度浮点值。64 位值以网络字节序传输。AVP Length 字段必须 (MUST) 设置为 16 (如果启用了 'V' 位则为 20)。
Grouped
Data 字段被指定为 AVP 序列。这些 AVP 按照指定的顺序连接 (包括它们的头部和填充),结果封装在 Data 字段中。AVP Length 字段设置为 8 (如果启用了 'V' 位则为 12) 加上所有包含的 AVP 的总长度,包括它们的头部和填充。因此,Grouped 类型的 AVP 的 AVP Length 字段始终是 4 的倍数。