Add support for RROCE(v2) over IPv4 (without UDP).

This isn't standard but has been seen in the wild, see:
https://ask.wireshark.org/questions/58521/cannot-decode-rocev2-traffic

With this change users can Decode-As an IP Protocol as RROCE (by selecting
Infiniband (IB) as the protocol).

Change-Id: Iec865478d056f687f2f66124d6e936f67707d2c4
Reviewed-on: https://code.wireshark.org/review/19572
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Jeff Morriss 2017-01-06 10:10:27 -05:00 committed by Anders Broman
parent ea7440481e
commit ae5dbe1b63
1 changed files with 6 additions and 2 deletions

View File

@ -8047,12 +8047,16 @@ void proto_reg_handoff_infiniband(void)
{
dissector_delete_uint("udp.port", prev_rroce_udp_port, rroce_handle);
}
/*we are saving the previous value of rroce udp port so we will be able to remove the dissector
/* We are saving the previous value of rroce udp port so we will be able to remove the dissector
* the next time user pref is updated and we get called back to proto_reg_handoff_infiniband.
"Auto" preference not used because port isn't for infiniband protocol itself */
* "Auto" preference not used because port isn't for the Infiniband protocol itself.
*/
prev_rroce_udp_port = pref_rroce_udp_port;
dissector_add_uint("udp.port", pref_rroce_udp_port, rroce_handle);
/* RROCE over IPv4 isn't standardized but it's been seen in the wild */
dissector_add_for_decode_as("ip.proto", rroce_handle);
dissector_add_uint("wtap_encap", WTAP_ENCAP_INFINIBAND, ib_handle);
heur_dissector_add("infiniband.payload", dissect_mellanox_eoib, "Mellanox EoIB", "mellanox_eoib", proto_mellanox_eoib, HEURISTIC_ENABLE);