so they are not indicated as Method: Unknown under
MAD Header - Common Management Datagram
Change-Id: I8e8fe918eea86e7095967d0b82772a813eafe2a5
Signed-off-by: Hal Rosenstock <hal.rosenstock@gmail.com>
Reviewed-on: https://code.wireshark.org/review/24228
Reviewed-by: Anders Broman <a.broman58@gmail.com>
to be consistent with IBA volume 1 spec
IsOptionalIPDSupported
IsCommunicationManagementSupported
Change-Id: I55b29b7f291f49a9d0c3e104bda4d7d7aa78b42b
Signed-off-by: Hal Rosenstock <hal.rosenstock@gmail.com>
Reviewed-on: https://code.wireshark.org/review/24227
Reviewed-by: Anders Broman <a.broman58@gmail.com>
RMPP flags 7 indicates that packet is both first and last
packet in transfer
Change-Id: Idf0e8783372296a7c276c8c0c80e4905afbe6c9a
Signed-off-by: Hal Rosenstock <hal.rosenstock@gmail.com>
Reviewed-on: https://code.wireshark.org/review/24226
Reviewed-by: Anders Broman <a.broman58@gmail.com>
LinkSpeedWidthPairsTable is 0x001C
SMInfo is 0x0020
VendorDiag is 0x0030
LedInfo is 0x0031
Change-Id: I93197590930a97c8538ef69d08213b1076a9f66a
Signed-off-by: Hal Rosenstock <hal.rosenstock@gmail.com>
Reviewed-on: https://code.wireshark.org/review/24225
Reviewed-by: Anders Broman <a.broman58@gmail.com>
rather than MCMembersRecord
Change-Id: I96bf3ac45255295cf85b9faf0547df4df26f11c3
Signed-off-by: Hal Rosenstock <hal.rosenstock@gmail.com>
Reviewed-on: https://code.wireshark.org/review/24222
Reviewed-by: Anders Broman <a.broman58@gmail.com>
SMA is acronym for Subnet Management Agent not Subnet Administration
so change this from SMA to SA
Change-Id: I1a293fff5de4796fe337daa133943bfa059cc9ff
Signed-off-by: Hal Rosenstock <hal.rosenstock@gmail.com>
Reviewed-on: https://code.wireshark.org/review/24224
Reviewed-by: Anders Broman <a.broman58@gmail.com>
as it is not parameter in these APIs
Also, fixed commentary typo
Change-Id: I1ce53b9aae9837688e756b2e665f3b1df74b572c
Signed-off-by: Hal Rosenstock <hal.rosenstock@gmail.com>
Reviewed-on: https://code.wireshark.org/review/24223
Reviewed-by: Anders Broman <a.broman58@gmail.com>
For the moment this mirrors the port_type enumeration (PT_XXX), but the
intent is to move away from using "port types", eliminating most (if not
all)
Added conversation_pt_to_endpoint_type() so that conversations deal with the
correct enumeration. This is for dissector that use pinfo->ptype as input
to conversation APIs. Explicit use of port types are converted to using
ENDPOINT_XXX type.
Change-Id: Ia0bf553a3943b702c921f185407e03ce93ebf0ef
Reviewed-on: https://code.wireshark.org/review/24166
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot
Reviewed-by: Michael Mann <mmann78@netscape.net>
That allows a parallel typedef of ws_in4_addr for guint32.
Change-Id: I03b230247065e0e3840eb87635315a8e523ef562
Reviewed-on: https://code.wireshark.org/review/24073
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Expose the PSN (packet sequence number) and the RETH DMA length
to protocol's dissectors.
Change-Id: Ied53a8964d7cd5c3d148ec7c7642017951e56118
Reviewed-on: https://code.wireshark.org/review/23886
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Make string mapping for UC_RDMA_WRITE_MIDDLE consistent with
all other mappings in the OpCodeMap table.
Remove extra blank lines in the OpCodeMap table.
Change-Id: Ifb3e242a89458103f3db3b5718d5d939dffb6dae
Reviewed-on: https://code.wireshark.org/review/23867
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
For protocols that have don't have a unique identifier for their
payload, have register_decode_as_next_proto be a one stop shop to
create Decode As functionality and a dissector table of type FT_NONE.
Change-Id: Ic1f2e9ed0aee0554a4eb8f232630b99c0604dfc0
Reviewed-on: https://code.wireshark.org/review/22575
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Change-Id: I34d631ac913620dbc661b9d56d4e34502c9b7d35
Reviewed-on: https://code.wireshark.org/review/23459
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Change-Id: I8bd9e76e44254c45be26c616bf22f712bcf50881
Reviewed-on: https://code.wireshark.org/review/23456
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Bug: 13998
Change-Id: Idd369e364bd2464b278fb4abcc1e77a0f8892641
Reviewed-on: https://code.wireshark.org/review/23452
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Issue reported by Yao Lin
Ping-Bug: 13997
Change-Id: Ia90e58826c228500da0177fa2b8b90ec9ec2ff74
Reviewed-on: https://code.wireshark.org/review/23237
Reviewed-by: Michael Mann <mmann78@netscape.net>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Follow the order of spec
This reverts commit 4b8fee9da8.
Change-Id: Ifeaf2c68813f8c452b6ab0247cd7a4313c95f619
Reviewed-on: https://code.wireshark.org/review/23236
Reviewed-by: Michael Mann <mmann78@netscape.net>
Issue reported by Yao Lin
Bug: 14002
Change-Id: Ib49f74edbaac4830340fb9d7dba5105f0bdeb2f1
Reviewed-on: https://code.wireshark.org/review/23200
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Issue reported by Yao Lin
Ping-Bug: 13997
Change-Id: I84fbf70b1871ce740f52b1b9dd9c1b8ed2af41e3
Reviewed-on: https://code.wireshark.org/review/23183
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Many dissectors don't have an identifier to pass to a dissector table.
When using Decode As they all have a "value" function that returns 0
just so something is returned.
A first step to a cleaner refactor of the functionality is to allow
dissectors to provide a "prompt" function when registering Decode As
with register_decode_as_next_proto() so that the text exposed in
the GUI can vary, but the function that returns 0 (nothing) can be
consolidated under decode as registration functionality. This casts
a wider net for register_decode_as_next_proto() use.
Change-Id: I2995b3c251dae70f5f529b672473d25c6288ed5c
Reviewed-on: https://code.wireshark.org/review/22562
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
RETH remote key might be needed in protocol's dissectors.
Remote access key is shared out of band usually via RDMA
send operation. This key sharing is upper layer protocol specific
and protocol dissector knows about the key.
infiniband layer do not know about which rkey is shared.
For protocol dissectors to associate data packets with past
command packets, infiniband needs to provide the rkey.
Change-Id: I927116d649ed2b01c388afbcdb924cb7e5128e12
Signed-off-by: Nitzan Carmi <nitzanc@mellanox.com>
Reviewed-by: Parav Pandit <parav@mellanox.com>
Tested-by: Nitzan Carmi <nitzanc@mellanox.com>
Reviewed-on: https://code.wireshark.org/review/22123
Reviewed-by: Michael Mann <mmann78@netscape.net>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Change-Id: Iba6238988ded675cba328ab512232d1919d93b4a
Reviewed-on: https://code.wireshark.org/review/20415
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
This patch passes RDMA read request packets to ULP dissectors similar to
other RDMA packets so that ULP dissector can have opportunity to show as
upper layer protocol instead of IB or RRoCE.
Change-Id: I594d8eada858b7f77fc94be44e3639526789779e
Tested-by: paravpandit@yahoo.com
Reviewed-on: https://code.wireshark.org/review/19619
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
I97b82fb53fd63d9107ee5d4c64b94840e743fc72 changed the default but not the
help text.
Change-Id: I05375c44c01703e36686d0a16a094cb8d6b3dcd2
Reviewed-on: https://code.wireshark.org/review/19557
Reviewed-by: Michael Mann <mmann78@netscape.net>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Maybe there was an issue on Windows back in the old days, when 1) we
didn't have a shared libwireshark library from which to import functions
and data variables and thus you couldn't get variables such as
etype_vals in a plugin and 2) the Infiniband dissector was a plugin, but
neither of those are the case any more.
Change-Id: Id8b82886317bd36a32ad1e1591673623696d4808
Reviewed-on: https://code.wireshark.org/review/19530
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Given by gcc-4.9.2 on arm:
epan/dissectors/packet-infiniband.c:2708:9: error: variable ‘offset’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]
int offset = 0;
^
cc1: all warnings being treated as errors
Change-Id: I12066031093c1fa638792ff8be8f3f5457e3feda
Reviewed-on: https://code.wireshark.org/review/19515
Petri-Dish: Dario Lombardo <lomato@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
The "infiniband.payload" heuristic dissector was converted to use the base
of the packet tree so that subdissectors could show their protocol as the
base layer. Since many of the subdissectors use the same dissection function
for both "infiniband.payload" and "infiniband.mad.cm.private", ensure that
both use the same "tree level", but still pass in the "payload tree" as part
of the dissector data in case a subdissector wants to use it (currently used
by InfinibandSDP)
Ping-Bug: 13259
Change-Id: I899e8348f6b23d8eee9e74764d8ca32d7bf6e625
Tested-by: paravpandit@yahoo.com
Reviewed-on: https://code.wireshark.org/review/19441
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Reviewed-by: Parav Pandit <paravpandit@yahoo.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Add preference in Infiniband dissector to distinguish between
heuristic and non-heuristic dissection (that uses Decode As).
Remove all of the preferences in the Infiniband subdissectors that
tried to put in "manual" heuristics and direct users to just use
Decode As. Most subdissectors still kept some basic heuristics in
their heuristic functions, but now also register with the Infiniband
dissector table for "manually" forcing dissection with Decode As.
Ping-Bug: 13259
Change-Id: I20d56eee38887664b439e52ec5f5b8f962c45ef1
Reviewed-on: https://code.wireshark.org/review/19362
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
1. Convert the Mellanox encapsulation header into a heuristic dissector.
2. Convert EtherType header dissection into a heuristic dissector.
3. Convert "heuristic preferences" to use deprecated_heur_dissector_pref.
Ping-Bug: 5061
Ping-Bug: 2672
Change-Id: Iabcac1af8e07f3f6f25f825ed56b2036c3285783
Reviewed-on: https://code.wireshark.org/review/19317
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Dissectors above infiniband (such as RPC dissector)
performs exact lookup on saddr, daddr, sport, dport. They are unaware
that underlying transport is infiniband which doesn't have src_qp in
packets. Due to which srcport remains uninitialized and exact lookup
fails.
In order to get them work seemlessly, this fix updates the sport
to src_qp (similar to destport to dest_qp). With this upper level
dissectors can perform direct lookup similar to TCP. Those which need to
access private data of unidirectional CM messages, can still continue to
perform unidirectional lookup as before.
It also fixes the issue where req_qp and resp_qp were swapped during
bidirectional conversation creation. This was caught during testing with
packet-rpc.c by Chuck Lever.
Tested protocols:
1. nfs-rdma over Infiniband with trace of Bug 13213
2. ICMP packets over Infiniband
3. NVMe fabrics over RDMA
Tested with trace of Bug 13201 for Nvme.
Bug: 13202
Bug: 13213
Change-Id: Ica1b6aae3ccaa6642dc3b3edfa9a5a4c335cc5da
Tested-by: paravpandit@yahoo.com
Reviewed-on: https://code.wireshark.org/review/19190
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
This reverts commit 92a2c184b0.
Actually, that address *is* attached to a pinfo structure.
Change-Id: I183135f9cf10a6714045091d2ae02d2799093bae
Reviewed-on: https://code.wireshark.org/review/19143
Reviewed-by: Guy Harris <guy@alum.mit.edu>
This reverts commit e2c26ff90c.
*That* address isn't attached to a pinfo structure, it's used to create a conversation, and a copy is made of it, using file scope. So that's not the cause of this problem.
Change-Id: I07ce091e678c42c30080cd00fd17cd1584f473ad
Reviewed-on: https://code.wireshark.org/review/19138
Reviewed-by: Guy Harris <guy@alum.mit.edu>
The address data is supposed to outlive the current routine's scope, so
you can't pass it a pointer to an argument to the routine; you have to
allocate pinfo-scoped memory and copy the variable to that.
Bug: 13219
Change-Id: Id3fdb52b614036d4d24d0676e798a2524fbe916c
Reviewed-on: https://code.wireshark.org/review/19136
Reviewed-by: Guy Harris <guy@alum.mit.edu>
1. Fixed find_conversation for PT_IBQP to not lookup in reverse
direction when all searches fail.
This is required, because there could be valid different connection in
reverse direction which mistakenly gets updated for non template cases.
2. Added support for having MAD data for upper level dissectors to process
during RC packet processing.
This is required because connection options are negotiated out of band
using this CM exchanges (unlike in band TCP options).
3. Moved creating unidirectional connections when actually MAD packets
are processed.
Previously client-to-server unidirectional conversation was created when
CM_RSP stage, where MAD Data of CM_REQ packet is inaccessible.
4. Fixed creating multiple conversations with same address property by
eliminating create_conv_and_add_proto_data during RTU stage, which was
incorrect.
Now they are created during REQ and RSP frame processing. (Instead of
RSP and RTU processing).
5. Added support for creating bidirectional connection that ULP can
refer.
This is required to keep track of oustanding transactions on a
connection (requests and responses).
Bug: 11363
Change-Id: I32ea084a581a58efbc16dbb7a3e267c82622c50c
Tested-by: paravpandit@yahoo.com
Reviewed-on: https://code.wireshark.org/review/18982
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
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>
1. This patch enables sub dissectors to parse RTU, REJ,
DREQ, DRSP CM messages private data.
(Sub dissection for CM REQ and RSP private data was
already present).
2. For dissecting non CM data specific packets, connection
context needs to be active until connection is closed. So instead of
removing hash table entry during CM response message,
it keeps it around until DRSP (when connection is closed).
3. This patch moves CM messsage dissection to their individual
functions for cleanup, so that main parser remains readable code.
4. created smaller functions for reusing in different message parsing
functions.
REQ, RSP, DREQ, DRSP message are tested.
REJ is untested.
Change-Id: I3b4695402d1dbe93fc003d4b43424ae0aa96ba43
Tested-by: paravpandit@yahoo.com
Reviewed-on: https://code.wireshark.org/review/18469
Petri-Dish: Roland Knall <rknall@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
This patch adds support to dissect 36 bytes of private data of Table 560
of spec 1.3.1 whenever CM request message is of IP CM type.
Change-Id: I66b65b066a0034cf95c4c4f38549882c265b7ef5
Tested-by: paravpandit@yahoo.com
Reviewed-on: https://code.wireshark.org/review/18434
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Roland Knall <rknall@gmail.com>
1. Added Extended transport type field instead of reserved as per latest
release 1.3.1 in CM Req msg.
2. Defined reserved bits and bytes for CM messages
3. Minor code refactor to move to smaller functions for CM Req Rsp
parsing instead of 200+ lines function which is hard to read and
is expected to grow for more features
4. Cleanup around primary and alternate fields which were crossing byte
boundary
CM request and response messages are tested.
Reject message reserved fields change is untested but it a minor change
that is expected to work.
Change-Id: I94da62614f854218249b4e14c780f4168f44751c
Reported-by: Alexis La Goutte
Tested-by: paravpandit@yahoo.com
Reviewed-on: https://code.wireshark.org/review/18340
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl>
Added support for decoding IP CM Service id for CM Connect requests.
Annex 11.2 defines a specific prefix of serviceid for IP CM based
ULPs.
Corrected typo error which got introduced as part of bad local merge for
hf_cm_drsp_privatedata. Corrected now.
Change-Id: I18235ea86d82a224dcc7110a1c45c08f698fa9a6
Tested-by: paravpandit@yahoo.com
Reviewed-on: https://code.wireshark.org/review/18284
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Added support for decoding CM Disconnect and CM Disconnect response
packets.
Reusing ATTR macros in CM_Attributes definition.
Change-Id: Ic6065b67d2007fc68848441e0c866e4a637a3657
Tested-by: paravpandit@yahoo.com
Reviewed-on: https://code.wireshark.org/review/18229
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>