aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/ciscosm/packet-sm.c38
1 files changed, 29 insertions, 9 deletions
diff --git a/plugins/ciscosm/packet-sm.c b/plugins/ciscosm/packet-sm.c
index 1081da89c2..dfd2280472 100644
--- a/plugins/ciscosm/packet-sm.c
+++ b/plugins/ciscosm/packet-sm.c
@@ -122,6 +122,8 @@ static int hf_sm_channel = -1;
static int hf_sm_bearer = -1;
static int hf_sm_len = -1;
static int hf_sm_ip_addr = -1;
+static int hf_sm_context = -1;
+static int hf_sm_eisup_msg_id = -1;
static int hf_sm_tag = -1;
/* Initialize the subtree pointers */
@@ -166,7 +168,12 @@ dissect_sm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
offset = offset + 2;
switch(protocol){
case SM_PROTOCOL_X101:
- /* XXX Reveres enginered so this may not be correct!!! */
+ /* XXX Reveres enginered so this may not be correct!!!
+ * EISUP - used between Cisco HSI and Cisco PGW devices,
+ * uses RUDP with default port number 8003.
+ * Protocol stack is RUDP->Cisco SM->SDP.
+ * This implementation is PROPRIETARY
+ */
proto_tree_add_item(sm_tree, hf_sm_len, tvb, offset, 2, FALSE);
length = tvb_get_ntohs(tvb,offset);
offset = offset + 2;
@@ -174,10 +181,12 @@ dissect_sm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* The next stuff seems to be IP addr */
proto_tree_add_item(sm_tree, hf_sm_ip_addr, tvb, offset, 4, FALSE);
offset = offset + 4;
- proto_tree_add_item(sm_tree, hf_sm_tag, tvb, offset, 2, FALSE);
- offset = offset +2;
- proto_tree_add_text(sm_tree, tvb, offset,3,"[unknown]");
- offset = offset + 3;
+ /* This part looks to be the same per session */
+ proto_tree_add_item(sm_tree, hf_sm_context, tvb, offset, 4, FALSE);
+ offset = offset +4;
+ /* Some sort of message type? */
+ proto_tree_add_item(sm_tree, hf_sm_eisup_msg_id, tvb, offset, 1, FALSE);
+ offset = offset + 1;
/* XXX Problem are tags 1 or two bytes???*/
proto_tree_add_item(sm_tree, hf_sm_tag, tvb, offset, 2, FALSE);
@@ -203,10 +212,11 @@ dissect_sm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* The next stuff seems to be IP addr */
proto_tree_add_item(sm_tree, hf_sm_ip_addr, tvb, offset, 4, FALSE);
offset = offset + 4;
- proto_tree_add_item(sm_tree, hf_sm_tag, tvb, offset, 2, FALSE);
- offset = offset +2;
- proto_tree_add_text(sm_tree, tvb, offset,3,"[unknown]");
- offset = offset + 3;
+ proto_tree_add_item(sm_tree, hf_sm_context, tvb, offset, 4, FALSE);
+ offset = offset +4;
+ /* Some sort of message type? */
+ proto_tree_add_item(sm_tree, hf_sm_eisup_msg_id, tvb, offset, 1, FALSE);
+ offset = offset + 1;
/* XXX Problem are tags 1 or two bytes???*/
proto_tree_add_item(sm_tree, hf_sm_tag, tvb, offset, 2, FALSE);
@@ -298,6 +308,16 @@ proto_register_sm(void)
FT_IPv4,BASE_NONE, NULL, 0x0,
"IPv4 address", HFILL }
},
+ { &hf_sm_context,
+ { "Context","sm.context",
+ FT_UINT32, BASE_DEC, NULL, 0x0,
+ "Context(guesswork!)", HFILL }
+ },
+ { &hf_sm_eisup_msg_id,
+ { "Message id","sm.eisup_message_id",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ "Message id(guesswork!)", HFILL }
+ },
{ &hf_sm_tag,
{ "Tag","sm.tag",
FT_UINT16, BASE_DEC, NULL, 0x0,