aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-mip6.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-mip6.c')
-rw-r--r--epan/dissectors/packet-mip6.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/epan/dissectors/packet-mip6.c b/epan/dissectors/packet-mip6.c
index 1bc987a2a3..8117c60e56 100644
--- a/epan/dissectors/packet-mip6.c
+++ b/epan/dissectors/packet-mip6.c
@@ -60,6 +60,7 @@
#include "packet-gtpv2.h"
#include "packet-e164.h"
#include "packet-e212.h"
+#include "packet-gsm_a_common.h"
#define UDP_PORT_PMIP6_CNTL 5436
@@ -1692,7 +1693,7 @@ dissect_pmip6_bri(tvbuff_t *tvb, proto_tree *mip6_tree, packet_info *pinfo)
*/
static void
dissect_mip6_opt_vsm_3gpp(const mip6_opt *optp _U_, tvbuff_t *tvb, int offset,
- guint optlen, packet_info *pinfo _U_, proto_tree *opt_tree, proto_item *hdr_item _U_ )
+ guint optlen, packet_info *pinfo, proto_tree *opt_tree, proto_item *hdr_item _U_ )
{
int len = optlen;
guint8 sub_type, m_flag;
@@ -1727,6 +1728,10 @@ dissect_mip6_opt_vsm_3gpp(const mip6_opt *optp _U_, tvbuff_t *tvb, int offset,
* de_sm_pco(tvb, tree, pinfo, 0, length, NULL, 0);
* Note needs pinfo->link_dir ?
*/
+ case 1:
+ /* pinfo->link_dir == P2P_DIR_UNKNOWN */
+ de_sm_pco(tvb, opt_tree, pinfo, offset, len, NULL, 0);
+ break;
/* 2, 3GPP Specific PMIPv6 Error Code */
case 2:
proto_tree_add_item(opt_tree, hf_mip6_opt_3gpp_spec_pmipv6_err_code, tvb, offset, 4, ENC_BIG_ENDIAN);
@@ -3489,6 +3494,7 @@ dissect_mip6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
case MIP6_BU:
/* 5 Binding Update */
+ pinfo->link_dir = P2P_DIR_UL;
offset = dissect_mip6_bu(tvb, mip6_tree, pinfo);
if (proto_nemo == 1) {
col_set_str(pinfo->cinfo, COL_PROTOCOL, "NEMO");
@@ -3496,6 +3502,7 @@ dissect_mip6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
case MIP6_BA:
/* 6 Binding Acknowledgement */
+ pinfo->link_dir = P2P_DIR_DL;
offset = dissect_mip6_ba(tvb, mip6_tree, pinfo);
if (proto_nemo == 1) {
col_set_str(pinfo->cinfo, COL_PROTOCOL, "NEMO");