GSMTAP: add SIM sub_types

In SIMtrace 1 the ATR was sent the same way as an APDU.
The ATR is not an APDU, and could be mis-interpreted as valid APDU.
This change allows to make the difference between actual APDU and
the ATR, but also adds sub_types for future SIMtrace 2 use cases.

Change-Id: I5bd0dff5a4a90cfe96d9c4f3dec6657e1d85bf7a
diff --git a/include/osmocom/core/gsmtap.h b/include/osmocom/core/gsmtap.h
index b4239f8..9f5049f 100644
--- a/include/osmocom/core/gsmtap.h
+++ b/include/osmocom/core/gsmtap.h
@@ -33,7 +33,7 @@
 #define GSMTAP_TYPE_UM		0x01
 #define GSMTAP_TYPE_ABIS	0x02
 #define GSMTAP_TYPE_UM_BURST	0x03	/* raw burst bits */
-#define GSMTAP_TYPE_SIM		0x04
+#define GSMTAP_TYPE_SIM		0x04	/* ISO 7816 smart card interface */
 #define GSMTAP_TYPE_TETRA_I1		0x05	/* tetra air interface */
 #define GSMTAP_TYPE_TETRA_I1_BURST	0x06	/* tetra air interface */
 #define GSMTAP_TYPE_WMX_BURST	0x07    /* WiMAX burst */
@@ -103,6 +103,18 @@
 
 /* ====== DO NOT MAKE UNAPPROVED MODIFICATIONS HERE ===== */
 
+/* sub-types for GSMTAP_TYPE_SIM */
+#define GSMTAP_SIM_APDU		0x00 /* APDU data (complete APDU) */
+#define GSMTAP_SIM_ATR		0x01 /* card ATR data */
+#define GSMTAP_SIM_PPS_REQ		0x02 /* PPS request data */
+#define GSMTAP_SIM_PPS_RSP		0x03 /* PPS response data */
+#define GSMTAP_SIM_TPDU_HDR		0x04 /* TPDU command header */
+#define GSMTAP_SIM_TPDU_CMD		0x05 /* TPDU command body */
+#define GSMTAP_SIM_TPDU_RSP		0x06 /* TPDU response body */
+#define GSMTAP_SIM_TPDU_SW		0x07 /* TPDU response trailer */
+
+/* ====== DO NOT MAKE UNAPPROVED MODIFICATIONS HERE ===== */
+
 /* sub-types for TYPE_TETRA_AIR */
 #define GSMTAP_TETRA_BSCH	0x01
 #define GSMTAP_TETRA_AACH	0x02