diff options
author | Parav Pandit <paravpandit@yahoo.com> | 2016-10-30 04:20:48 -0400 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2016-11-02 01:22:37 +0000 |
commit | 8ba444b8438395efe352da8c66dd64e9449c60bb (patch) | |
tree | 06dedfa905748b10d5e08bd2cd45c7b8392f76c1 /epan/dissectors/packet-infiniband.h | |
parent | b0eac84840567f2e535faf01816e3c1a87473213 (diff) |
packet-infiniband: Fixed IP based connections & other minor fixes
1. Fixed setting right address type instead of AT_IB for RoCE and RRoCE
depending on address type given by pinfo where address type would be
IPv4 or IPV6.
Fail to do so was resulting into infiniband dissector adding
conversation info based on AT_IB type vs payload dissectors dissecting
based on pinfo. Fixing this allows to add/search based on right
address type.
(Tested for Infiniband and RRoCE)
2. Added support to pass already parsed CM attribute id from infiniand to
other mad private data dissectors so that right dissection of private data
can be done based on CM attribute id (message type).
Moved CM attribute id definitions to header file so that private data
dissectors based on CM attribute id can reuse these values without
duplicate defines.
(Tested for Infiniband and RRoCE)
3. Added direction client to server/server to client, (active/passive) to
conversation_data for payload dissectors which cannot dissect only based
on payload content without knowing the direction.
(Tested for RRoCE)
4. Fixed IP CM to claim all 92 bytes of private data (including consumer
private data), instead of just 36 bytes of header because its part of IP
CM private data.
(Tested for Infiniband and RRoCE)
5. Fixed MAD header to claim all 232 (256-24) bytes of data as it belongs
to it in the tree.
(Tested for Infiniband and RRoCE)
6. Fixed getting ip version by performing AND operation first to extract IP
version field.
(Tested for RRoCE-IPV4 and Infiniband)
Change-Id: I37daca6a089784b61c25e10cdc8f3cf028ca8c58
Tested-by: paravpandit@yahoo.com
Reviewed-on: https://code.wireshark.org/review/18573
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-infiniband.h')
-rw-r--r-- | epan/dissectors/packet-infiniband.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/epan/dissectors/packet-infiniband.h b/epan/dissectors/packet-infiniband.h index 87a2505f2b..7b9d95a1e5 100644 --- a/epan/dissectors/packet-infiniband.h +++ b/epan/dissectors/packet-infiniband.h @@ -31,6 +31,7 @@ /* infiniband-specific information for conversations */ typedef struct { guint64 service_id; /* service id specified when the (RC) channel was set-up */ + gboolean client_to_server; /* message direction */ } conversation_infiniband_data; /* OpCodeValues @@ -108,12 +109,21 @@ typedef struct { #define UC_RDMA_WRITE_ONLY 42 /*0x00101010 */ #define UC_RDMA_WRITE_ONLY_IMM 43 /*0x00101011 */ +/* ComMgt class Attributes */ +#define ATTR_CM_REQ 0x0010 +#define ATTR_CM_REJ 0x0012 +#define ATTR_CM_REP 0x0013 +#define ATTR_CM_RTU 0x0014 +#define ATTR_CM_DREQ 0x0015 +#define ATTR_CM_DRSP 0x0016 + /* * Private data passed from the infiniband dissector to payload subdissectors. */ struct infinibandinfo { guint8 opCode; /* OpCode from BTH header. */ gboolean dctConnect; /* indicator for DCT connect/disconnect */ + guint16 cm_attribute_id; /* attribute id for CM messages */ }; #endif |