我正在尝试添加所有输入/输出八位字节 AVP 来计算针对每个评级组使用的总数据。问题是,并非所有输入/输出八位字节 AVP 都会出现在每个服务数据容器 AVP 中。在使用带有 Tfields 或 Tjson 选项的 tshark 命令时,输出会丢失原始层次结构,从而无法确定哪个 Octet AVP 与哪个 Rating-Group 相关联。
这是 Rf ACR 数据包的简单快照:
Diameter>
Service-Information>
PS--Information>
Service-Data-Container>
Accounting-Input-Octets=1000
Accounting-Output-Octets=2000
Rating-Group=1111
...
...
Service-Data-Container>
Accounting-Output-Octets=7000
Rating-Group=1111
...
...
Service-Data-Container>
Accounting-Input-Octets=4000
Rating-Group=2222
...
...
Service-Data-Container>
Accounting-Input-Octets=6000
Accounting-Output-Octets=5000
Rating-Group=2222
...
...
在上面的示例中,如果我添加,对于 Rating-Group=1111,总 Accounting-Input-Octets 为 1000,Accounting-Output-Octets 为 9000。同样,对于 Rating-Group=2222,总 Accounting-Input-Octets 为 10000 和会计输出八位字节为 5000。
我使用以下选项运行 tshark:
tshark -r <file.pcap> -Y <diameter_filter> -Tjson -e diameter.Rating-Group -e diameter.Accounting-Input-Octets -e diameter.Accounting-Output-Octets
[
{
"_index": "packets-2019-08-12",
"_type": "pcap_file",
"_score": null,
"_source": {
"layers": {
"diameter.Rating-Group": [
"1111",
"1111",
"2222",
"2222"
],
"diameter.Accounting-Input-Octets": [
"1000",
"4000",
"6000"
],
"diameter.Accounting-Output-Octets": [
"2000",
"7000",
"5000"
]
}
}
}
]
如您所见,不可能将八位组与评级组进行聚合。
我正在寻找一个选项,我可以在其中获得更好的数据包层次结构,如下所示:
[
{
"Service-Data-Container":
{
"Accounting-Input-Octets":1000
"Accounting-Output-Octets":2000
"Rating-Group"=1111
}
},
{
"Service-Data-Container":
{
"Accounting-Output-Octets":7000
"Rating-Group"=1111
}
},
{
"Service-Data-Container":
{
"Accounting-Input-Octets":4000
"Rating-Group"=2222
}
},
{
"Service-Data-Container":
{
"Accounting-Input-Octets":6000
"Accounting-Output-Octets":5000
"Rating-Group"=2222
}
}
]