aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-infiniband.h
diff options
context:
space:
mode:
authorParav Pandit <paravpandit@yahoo.com>2016-10-30 04:20:48 -0400
committerMichael Mann <mmann78@netscape.net>2016-11-02 01:22:37 +0000
commit8ba444b8438395efe352da8c66dd64e9449c60bb (patch)
tree06dedfa905748b10d5e08bd2cd45c7b8392f76c1 /epan/dissectors/packet-infiniband.h
parentb0eac84840567f2e535faf01816e3c1a87473213 (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.h10
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