summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--epan/dissectors/packet-fr.c8
-rw-r--r--epan/dissectors/packet-q931.c1
2 files changed, 7 insertions, 2 deletions
diff --git a/epan/dissectors/packet-fr.c b/epan/dissectors/packet-fr.c
index 6f47348d6d..60ce77ea11 100644
--- a/epan/dissectors/packet-fr.c
+++ b/epan/dissectors/packet-fr.c
@@ -674,6 +674,10 @@ dissect_fr_nlpid(tvbuff_t *tvb, int offset, packet_info *pinfo,
*
* "OSI network layer protocols" includes Q.933.
*
+ * We check the Frame Relay table first, so that protocols for which
+ * the NLPID means something different on Frame Relay, i.e. Q.933 vs.
+ * Q.931, are handled appropriately for Frame Relay.
+ *
* XXX - note that an NLPID of 0x08 for Q.933 could either be a
* Q.933 signaling message or a message for a protocol
* identified by a 2-octet layer 2 protocol type and a
@@ -699,9 +703,9 @@ dissect_fr_nlpid(tvbuff_t *tvb, int offset, packet_info *pinfo,
* Either that, or it's Q.933 iff the DLCI is 0.
*/
next_tvb = tvb_new_subset_remaining(tvb,offset);
- if (dissector_try_uint(osinl_incl_subdissector_table, fr_nlpid, next_tvb,
+ if (dissector_try_uint(fr_osinl_subdissector_table, fr_nlpid, next_tvb,
pinfo, tree) ||
- dissector_try_uint(fr_osinl_subdissector_table, fr_nlpid, next_tvb,
+ dissector_try_uint(osinl_incl_subdissector_table, fr_nlpid, next_tvb,
pinfo, tree)) {
/*
* Yes, we got a match. Add the NLPID as a hidden item,
diff --git a/epan/dissectors/packet-q931.c b/epan/dissectors/packet-q931.c
index 7a48dfc443..b4a02ae21b 100644
--- a/epan/dissectors/packet-q931.c
+++ b/epan/dissectors/packet-q931.c
@@ -4002,6 +4002,7 @@ proto_reg_handoff_q931(void)
{
dissector_add_uint("lapd.sapi", LAPD_SAPI_Q931, q931_handle);
dissector_add_uint("sctp.ppi", H323_PAYLOAD_PROTOCOL_ID, q931_over_ip_handle);
+ dissector_add_uint("osinl.incl", NLPID_Q_931, q931_handle);
/*
* Attempt to get a handle for the H.225 dissector.