Appearance
Appearance
Gog****Extra 必须有一个 On=...; avp,用于说明应从哪种 gop 类型复制这些 avps。
如果一个 Gog 的 Gops 在一段时间内没有再被分配任何 pdus,则应释放该 Gog。
Gop 应在其创建后经过一定时间后自动释放自身。
每当某个 gog 发生变化,并且它的某些键碰巧与另一个或多个 gog 匹配时,将所有这些 gogs 合并为一个 gog。
GopDef、GopStop 和 GopExtra 的属性,用于指示一旦 GopStop 到达就应移除该键,这样就不会再有匹配 Gop****Key 的 Pdus 被分配给该 Gop。
✅ 每当一个 Pdu 匹配某个尚未被显式赋予 GopStart 的 Gop 的 GopKey,并且该键已经作为 GogKey 存在时,该 Pdu 应成为一个自动启动的 Gop 的一部分,该 Gop 会自动属于拥有该 GogKey 的 Gog。
待办:这些 Gops 的生命周期应与其所属的 Gog 相同,而不是无限期。
应存在一种映射版本的 transforms,其中一组固定的匹配键通过哈希映射到一组固定的 AVPLs,用于 Inserted 或 Replace 匹配集。对于非常长的转换序列,这将节省大量时间。
为 Transform 的 insert/replace 部分创建一组操作。
append .operand>str;
prepend .operand<str;
insert .operand^pos^string;
slice .operand[-pos1,pos2-pos3,pos4,pos5-];
replace .operand~str1~str2;
convert to number and operate .operand(+5,*8,-attr_a); -- (integer only and RPN)
"rename" AVP .new$old;
用于节省空间并加速 avpl ops 的内部优化。它也能简化内存管理。
应限制 mate 允许使用的内存量;一旦 mate 达到该限制,它就应在创建较新的项目时开始销毁最旧的项目。这对于在长时间运行的 tshark 嗅探中使用 mate 至关重要,但如果在 wireshark 中以交互方式使用,它可能会造成严重问题。
这其实并不是一个 BUG。这是最初为了避免 AVPL 匹配操作变得过于复杂而有意作出的选择。这可能会令人厌烦。但事实就是如此。如果不能拥有多个副本是个问题,那么你的配置必须绕过它。
示例变通方法:当两个端口相等且只有一个 port; 被插入 AVPL 时,添加 port=0;。
# transformations stop at the fisrt good match# do nothing (insert an empty avpl) if both ports are defined Action=Transform; Name=Fix_same_port; Mode=Insert; Match=Strict; port; port;# insert a port=0; so that both ports are defined Action=Transform; Name=Fix_same_port; Mode=Insert; Match=Every; port; .port=0;Action=PduTransform; For=xxx_pdu; Name=Fix_same_port;它在第一次运行时工作正常,但在后续运行中无法正常工作。
变通方法:重启 wireshark。
✅ 修复:已在 Git commit c3440553 中修复。
在某些情况下,对空 AVPL 执行操作可能会导致 wireshark 崩溃。
变通方法:避免在配置中将空 AVPLs 作为操作数。(插入一个空 AVPL 可以正常工作)
修复:我们需要能够复现该条件(所用配置和抓包文件)。
如果配置正确,它工作正常。但在某些情况下,你会得到崩溃报告,而不是错误消息。
变通方法:没有已知方法。无论如何你都得修复那个配置,不是吗?
✅ 修复:已在 Git commit c3440553 中修复。
重新初始化后,没有 GopStart 的 Gops 可能会被创建,也可能不会;这似乎以随机方式发生(有些会被创建,有些不会,而且并不总是同一批)。
变通方法:没有已知方法。
修复:尚无。
Imported from https://wiki.wireshark.org/Mate/Discussion on 2020-08-11 23:16:30 UTC