最近项目开发需要,数据转发组同事写了一个lua插件,来解析mac in mac的内部协议上送的报文,在老的wireshark中使用是没有问题的,但是在新的wireshark版本中,解析到内层mac时就挂,看了下lua脚本,定位出是二层mac解析出错,下载了最新wireshark版本的源代码,对比了源代码中的lua插件的接口api,发现外层mac解析时是需要进行Ethernet的fcs检查的,而内层的mac是不需要的,所以内层解析mac二层信息时需要注意没有fcs信息,调用的是eth_withoutfcs,问题解决!
下附wireshark的lua开发手册:https://www.wireshark.org/docs/wsdg_html_chunked/lua_module_Proto.html,有需要开发lua插件的可以参考开发手册。
最后附上我们项目的lua脚本,解析data-plane和control-plane通过internal口上送下发的报文:
--[[
Wireshark解析DPTUN报文的脚本
struct dptunhdr{
uint64_t dp_cookie;
uint16_t exec_type;
uint16_t blade_id;
uint32_t ifindex;
uint32_t vxlanid;
uint16_t dptun_proto;
uint16_t payload_len;
} __attribute_