aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/rtse/rtse.cnf
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/asn1/rtse/rtse.cnf')
-rw-r--r--epan/dissectors/asn1/rtse/rtse.cnf179
1 files changed, 179 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/rtse/rtse.cnf b/epan/dissectors/asn1/rtse/rtse.cnf
new file mode 100644
index 0000000000..91e94fc9b9
--- /dev/null
+++ b/epan/dissectors/asn1/rtse/rtse.cnf
@@ -0,0 +1,179 @@
+#.EXPORTS
+RTORQapdu
+RTOACapdu
+RTORJapdu
+RTABapdu
+
+#.NO_EMIT ONLY_VALS
+RTSE-apdus
+
+#.FN_BODY RTORJapdu/userDataRJ
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
+ const char *oid = NULL;
+
+ switch(app_proto) {
+ case 1: /* mts-transfer-protocol-1984 */
+ oid = "applicationProtocol.1";
+ break;
+ case 12: /* mts-transfer-protocol */
+ oid = "applicationProtocol.12";
+ break;
+ default:
+ if(session && session->pres_ctx_id)
+ oid = find_oid_by_pres_ctx_id(actx->pinfo, session->pres_ctx_id);
+ break;
+ }
+
+ if(!oid) /* XXX: problem here is we haven't decoded the applicationProtocol yet - so we make assumptions! */
+ oid = "applicationProtocol.12";
+
+ if(oid) {
+ if(session != NULL)
+ session->ros_op = (ROS_OP_BIND | ROS_OP_ERROR);
+
+ offset = call_rtse_oid_callback(oid, tvb, offset, actx->pinfo, top_tree ? top_tree : tree, session);
+ }
+
+#.FN_BODY RTABapdu/userdataAB
+/*XXX not implemented yet */
+
+#.FN_BODY RTORQapdu
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
+
+ if(session != NULL)
+ session->ros_op = (ROS_OP_BIND | ROS_OP_ARGUMENT);
+ open_request=TRUE;
+ %(DEFAULT_BODY)s
+ open_request=FALSE;
+
+#.FN_BODY RTOACapdu
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
+
+ if(session != NULL)
+ session->ros_op = (ROS_OP_BIND | ROS_OP_RESULT);
+
+ %(DEFAULT_BODY)s
+
+#.FN_BODY ConnectionData/open
+
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
+ const char *oid = NULL;
+
+ switch(app_proto) {
+ case 1: /* mts-transfer-protocol-1984 */
+ oid = "applicationProtocol.1";
+ break;
+ case 12: /* mts-transfer-protocol */
+ oid = "applicationProtocol.12";
+ break;
+ default:
+ if(session && session->pres_ctx_id)
+ oid = find_oid_by_pres_ctx_id(actx->pinfo, session->pres_ctx_id);
+ break;
+ }
+
+ if(!oid) /* XXX: problem here is we haven't decoded the applicationProtocol yet - so we make assumptions! */
+ oid = "applicationProtocol.12";
+
+ if(oid) {
+
+ offset = call_rtse_oid_callback(oid, tvb, offset, actx->pinfo, top_tree ? top_tree : tree, session);
+ }
+
+ /* else XXX: need to flag we can't find the presentation context */
+
+#.FN_BODY RTTRapdu
+ tvbuff_t *next_tvb = NULL;
+ struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*)actx->private_data;
+
+ offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &next_tvb);
+
+ if(next_tvb) {
+
+ /* XXX: we should check is this is an EXTERNAL first */
+
+ /* ROS won't do this for us */
+ if(session)
+ session->ros_op = (ROS_OP_INVOKE | ROS_OP_ARGUMENT);
+
+ offset = dissect_ber_external_type(FALSE, tree, next_tvb, 0, actx, -1, call_rtse_external_type_callback);
+ }
+
+
+#.FN_BODY RTORQapdu/applicationProtocol
+
+ offset = dissect_ber_integer(TRUE, actx, tree, tvb, offset, hf_index, &app_proto);
+
+#.FN_BODY SessionConnectionIdentifier
+ if(open_request){
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Recover");
+ }
+ %(DEFAULT_BODY)s
+
+#.END
+
+#.FN_BODY CallingSSuserReference/t61String VAL_PTR=&string
+ tvbuff_t *string = NULL;
+ %(DEFAULT_BODY)s
+ if(open_request && string)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", tvb_format_text(string, 0, tvb_reported_length(string)));
+
+#.FN_PARS CommonReference
+ VAL_PTR=&string
+#.FN_BODY CommonReference
+ tvbuff_t *string = NULL;
+ %(DEFAULT_BODY)s
+ if(open_request && string)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", tvb_format_text(string, 0, tvb_reported_length(string)));
+
+#.END
+
+#.FN_BODY CallingSSuserReference/octetString VAL_PTR=&string
+ tvbuff_t *string = NULL;
+ %(DEFAULT_BODY)s
+ if(open_request && string)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", tvb_format_text(string, 0, tvb_reported_length(string)));
+
+#.FN_BODY RTTPapdu VAL_PTR=&priority
+ int priority = -1;
+
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Turn-Please");
+
+ %(DEFAULT_BODY)s
+
+ if(priority != -1)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%d)", priority);
+
+#.FN_BODY RTORJapdu
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Refuse");
+
+ %(DEFAULT_BODY)s
+
+#.FN_PARS RefuseReason
+ VAL_PTR=&reason
+
+#.FN_BODY RefuseReason
+ int reason = -1;
+
+ %(DEFAULT_BODY)s
+
+ if(reason != -1)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(reason, rtse_RefuseReason_vals, "reason(%%d)"));
+
+#.FN_BODY RTABapdu
+ col_append_str(actx->pinfo->cinfo, COL_INFO, "Abort");
+
+ %(DEFAULT_BODY)s
+
+#.FN_PARS AbortReason
+ VAL_PTR=&reason
+
+#.FN_BODY AbortReason
+ int reason = -1;
+
+ %(DEFAULT_BODY)s
+
+ if(reason != -1)
+ col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(reason, rtse_AbortReason_vals, "reason(%%d)"));
+
+#.END