aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/packet-exported_pdu.c1
-rw-r--r--epan/dissectors/packet-iwarp-mpa.c3
-rw-r--r--epan/dissectors/packet-rpc.c13
3 files changed, 13 insertions, 4 deletions
diff --git a/epan/dissectors/packet-exported_pdu.c b/epan/dissectors/packet-exported_pdu.c
index ca08a1a8bb..f978636046 100644
--- a/epan/dissectors/packet-exported_pdu.c
+++ b/epan/dissectors/packet-exported_pdu.c
@@ -118,6 +118,7 @@ static const value_string exported_pdu_port_type_vals[] = {
{ EXP_PDU_PT_IBQP, "IBQP" },
{ EXP_PDU_PT_BLUETOOTH,"BLUETOOTH" },
{ EXP_PDU_PT_TDMOP, "TDMOP" },
+ { EXP_PDU_PT_IWARP_MPA,"IWARP_MPA" },
{ 0, NULL }
};
diff --git a/epan/dissectors/packet-iwarp-mpa.c b/epan/dissectors/packet-iwarp-mpa.c
index ce1a0db6f7..a86cc2073e 100644
--- a/epan/dissectors/packet-iwarp-mpa.c
+++ b/epan/dissectors/packet-iwarp-mpa.c
@@ -920,6 +920,9 @@ dissect_iwarp_mpa_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
return FALSE;
}
+ /* Set the port type for this packet to be iWarp MPA */
+ pinfo->ptype = PT_IWARP_MPA;
+
tcp_dissect_pdus(tvb, pinfo, tree,
TRUE, /* proto_desegment*/
MPA_SMALLEST_FPDU_LEN,
diff --git a/epan/dissectors/packet-rpc.c b/epan/dissectors/packet-rpc.c
index 4b406b8707..9155a663ba 100644
--- a/epan/dissectors/packet-rpc.c
+++ b/epan/dissectors/packet-rpc.c
@@ -1677,7 +1677,7 @@ get_conversation_for_call(packet_info *pinfo)
* might send retransmissions from a different port from
* the original request.
*/
- if (pinfo->ptype == PT_TCP || pinfo->ptype == PT_IBQP) {
+ if (pinfo->ptype == PT_TCP || pinfo->ptype == PT_IBQP || pinfo->ptype == PT_IWARP_MPA) {
conversation = find_conversation_pinfo(pinfo, 0);
} else {
/*
@@ -1691,7 +1691,7 @@ get_conversation_for_call(packet_info *pinfo)
}
if (conversation == NULL) {
- if (pinfo->ptype == PT_TCP || pinfo->ptype == PT_IBQP) {
+ if (pinfo->ptype == PT_TCP || pinfo->ptype == PT_IBQP || pinfo->ptype == PT_IWARP_MPA) {
conversation = conversation_new(pinfo->num,
&pinfo->src, &pinfo->dst, conversation_pt_to_endpoint_type(pinfo->ptype),
pinfo->srcport, pinfo->destport, 0);
@@ -1729,7 +1729,7 @@ find_conversation_for_reply(packet_info *pinfo)
* to the original call and a retransmission of the call
* might be sent to different ports.
*/
- if (pinfo->ptype == PT_TCP || pinfo->ptype == PT_IBQP) {
+ if (pinfo->ptype == PT_TCP || pinfo->ptype == PT_IBQP || pinfo->ptype == PT_IWARP_MPA) {
conversation = find_conversation_pinfo(pinfo, 0);
} else {
/*
@@ -1761,6 +1761,11 @@ new_conversation_for_reply(packet_info *pinfo)
&pinfo->src, &pinfo->dst, ENDPOINT_IBQP,
pinfo->srcport, pinfo->destport, 0);
break;
+ case PT_IWARP_MPA:
+ conversation = conversation_new(pinfo->num,
+ &pinfo->src, &pinfo->dst, ENDPOINT_IWARP_MPA,
+ pinfo->srcport, pinfo->destport, 0);
+ break;
default:
conversation = conversation_new(pinfo->num,
&pinfo->dst, &null_address, conversation_pt_to_endpoint_type(pinfo->ptype),
@@ -2147,7 +2152,7 @@ looks_like_rpc_reply(tvbuff_t *tvb, packet_info *pinfo, int offset)
* and this is a connection-oriented transport,
* give up.
*/
- if (((! rpc_find_fragment_start) || (pinfo->ptype != PT_TCP)) && (pinfo->ptype != PT_IBQP)) {
+ if (((! rpc_find_fragment_start) || (pinfo->ptype != PT_TCP)) && (pinfo->ptype != PT_IBQP) && (pinfo->ptype != PT_IWARP_MPA)) {
return NULL;
}