summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2016-10-09 22:22:59 +0200
committerPascal Quantin <pascal.quantin@gmail.com>2016-10-09 21:48:11 +0000
commit050cc468569d3d5551f56cb2ecbc7f7c35da21cf (patch)
treead4ae3c8e10552fe1a1f9ad46c8373dd599f5964
parent83df30ee53e9a7ec77e07e4566fd5ec0f67c0cf4 (diff)
downloadwireshark-050cc468569d3d5551f56cb2ecbc7f7c35da21cf.tar.gz
M3AP: upgrade dissector to v13.2.0
Change-Id: Iaedd4d3205e44a391a12be71eea0ccdc237fe790 Reviewed-on: https://code.wireshark.org/review/18133 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
-rw-r--r--epan/dissectors/asn1/m3ap/M3AP-CommonDataTypes.asn9
-rw-r--r--epan/dissectors/asn1/m3ap/M3AP-Constants.asn13
-rw-r--r--epan/dissectors/asn1/m3ap/M3AP-Containers.asn21
-rw-r--r--epan/dissectors/asn1/m3ap/M3AP-IEs.asn39
-rw-r--r--epan/dissectors/asn1/m3ap/M3AP-PDU-Contents.asn27
-rw-r--r--epan/dissectors/asn1/m3ap/M3AP-PDU-Descriptions.asn8
-rw-r--r--epan/dissectors/asn1/m3ap/m3ap.cnf9
-rw-r--r--epan/dissectors/asn1/m3ap/packet-m3ap-template.c2
-rw-r--r--epan/dissectors/packet-m3ap.c178
9 files changed, 227 insertions, 79 deletions
diff --git a/epan/dissectors/asn1/m3ap/M3AP-CommonDataTypes.asn b/epan/dissectors/asn1/m3ap/M3AP-CommonDataTypes.asn
index b8bae0d795..d70146f2f9 100644
--- a/epan/dissectors/asn1/m3ap/M3AP-CommonDataTypes.asn
+++ b/epan/dissectors/asn1/m3ap/M3AP-CommonDataTypes.asn
@@ -1,7 +1,7 @@
-- M3AP-CommonDataTypes.asn
--
--- 3GPP TS 36.444 V11.1.0 (2012-03)
--- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-b10.zip
+-- 3GPP TS 36.444 V13.2.0 (2016-03)
+-- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-d20.zip
--
-- 9.3.6 Common Definitions
--
@@ -13,10 +13,10 @@
-- **************************************************************
M3AP-CommonDataTypes {
-itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) m3ap (5) version1 (1) m3ap-CommonDataTypes (3) }
-DEFINITIONS AUTOMATIC TAGS ::=
+DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
@@ -54,4 +54,3 @@ ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs)
TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome}
END
-
diff --git a/epan/dissectors/asn1/m3ap/M3AP-Constants.asn b/epan/dissectors/asn1/m3ap/M3AP-Constants.asn
index 29cc4b8326..92461005a2 100644
--- a/epan/dissectors/asn1/m3ap/M3AP-Constants.asn
+++ b/epan/dissectors/asn1/m3ap/M3AP-Constants.asn
@@ -1,7 +1,7 @@
-- M3AP-Constants.asn
--
--- 3GPP TS 36.444 V11.1.0 (2012-03)
--- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-b10.zip
+-- 3GPP TS 36.444 V13.2.0 (2016-03)
+-- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-d20.zip
--
-- 9.3.7 Constant Definitions
--
@@ -13,10 +13,10 @@
-- **************************************************************
M3AP-Constants {
-itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) m3ap (5) version1 (1) m3ap-Constants (4) }
-DEFINITIONS AUTOMATIC TAGS ::=
+DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
@@ -51,6 +51,7 @@ id-m3Setup ProcedureCode ::= 7
maxnoofMBMSServiceAreaIdentitiesPerMCE INTEGER ::= 65536
maxnooferrors INTEGER ::= 256
maxNrOfIndividualM3ConnectionsToReset INTEGER ::= 256
+maxnoofCellsforMBMS INTEGER ::= 4096
-- **************************************************************
--
@@ -81,5 +82,7 @@ id-MCEname ProtocolIE-ID ::= 19
id-MBMSServiceAreaList ProtocolIE-ID ::= 20
id-Time-ofMBMS-DataTransfer ProtocolIE-ID ::= 21
id-Time-ofMBMS-DataStop ProtocolIE-ID ::= 22
+id-Reestablishment ProtocolIE-ID ::= 23
+id-Alternative-TNL-Information ProtocolIE-ID ::= 24
+id-MBMS-Cell-List ProtocolIE-ID ::= 25
END
-
diff --git a/epan/dissectors/asn1/m3ap/M3AP-Containers.asn b/epan/dissectors/asn1/m3ap/M3AP-Containers.asn
index 782311087b..cd3428e7ee 100644
--- a/epan/dissectors/asn1/m3ap/M3AP-Containers.asn
+++ b/epan/dissectors/asn1/m3ap/M3AP-Containers.asn
@@ -1,7 +1,7 @@
-- M3AP-Containers.asn
--
--- 3GPP TS 36.444 V11.1.0 (2012-03)
--- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-b10.zip
+-- 3GPP TS 36.444 V13.2.0 (2016-03)
+-- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-d20.zip
--
-- 9.3.8 Container Definitions
--
@@ -13,10 +13,10 @@
-- **************************************************************
M3AP-Containers {
-itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) m3ap (5) version1 (1) m3ap-Containers (5) }
-DEFINITIONS AUTOMATIC TAGS ::=
+DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
@@ -33,7 +33,7 @@ IMPORTS
Criticality,
Presence,
PrivateIE-ID,
- ProtocolIE-ID
+ ProtocolIE-ID
FROM M3AP-CommonDataTypes;
-- **************************************************************
@@ -122,11 +122,11 @@ WITH SYNTAX {
--
-- **************************************************************
-ProtocolIE-Container {M3AP-PROTOCOL-IES : IEsSetParam} ::=
+ProtocolIE-Container {M3AP-PROTOCOL-IES : IEsSetParam} ::=
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
ProtocolIE-Field {{IEsSetParam}}
-ProtocolIE-Single-Container {M3AP-PROTOCOL-IES : IEsSetParam} ::=
+ProtocolIE-Single-Container {M3AP-PROTOCOL-IES : IEsSetParam} ::=
ProtocolIE-Field {{IEsSetParam}}
ProtocolIE-Field {M3AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
@@ -141,7 +141,7 @@ ProtocolIE-Field {M3AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
--
-- **************************************************************
-ProtocolIE-ContainerPair {M3AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ProtocolIE-ContainerPair {M3AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
ProtocolIE-FieldPair {{IEsSetParam}}
@@ -173,7 +173,7 @@ ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, M3AP-P
--
-- **************************************************************
-ProtocolExtensionContainer {M3AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ProtocolExtensionContainer {M3AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
ProtocolExtensionField {{ExtensionSetParam}}
@@ -189,7 +189,7 @@ ProtocolExtensionField {M3AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENC
--
-- **************************************************************
-PrivateIE-Container {M3AP-PRIVATE-IES : IEsSetParam} ::=
+PrivateIE-Container {M3AP-PRIVATE-IES : IEsSetParam} ::=
SEQUENCE (SIZE (1..maxPrivateIEs)) OF
PrivateIE-Field {{IEsSetParam}}
@@ -200,4 +200,3 @@ PrivateIE-Field {M3AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
}
END
-
diff --git a/epan/dissectors/asn1/m3ap/M3AP-IEs.asn b/epan/dissectors/asn1/m3ap/M3AP-IEs.asn
index 8dbaf02551..05e653c7fc 100644
--- a/epan/dissectors/asn1/m3ap/M3AP-IEs.asn
+++ b/epan/dissectors/asn1/m3ap/M3AP-IEs.asn
@@ -1,7 +1,7 @@
-- M3AP-IEs.asn
--
--- 3GPP TS 36.444 V11.1.0 (2012-03)
--- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-b10.zip
+-- 3GPP TS 36.444 V13.2.0 (2016-03)
+-- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-d20.zip
--
-- 9.3.5 Information Element Definitions
--
@@ -13,16 +13,17 @@
-- **************************************************************
M3AP-IEs {
-itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) m3ap (5) version1 (1) m3ap-IEs (2) }
-DEFINITIONS AUTOMATIC TAGS ::=
+DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
id-AllocationAndRetentionPriority,
- maxnooferrors
+ maxnooferrors,
+ maxnoofCellsforMBMS
FROM M3AP-Constants
@@ -54,7 +55,7 @@ AllocationAndRetentionPriority-ExtIEs M3AP-PROTOCOL-EXTENSION ::= {
}
-- B
-BitRate ::= INTEGER (0..10000000000)
+BitRate ::= INTEGER (0..10000000000)
-- C
@@ -101,7 +102,8 @@ CauseRadioNetwork ::= ENUMERATED {
interaction-with-other-procedure,
not-supported-QCI-value,
unspecified,
- ...
+ ...,
+ uninvolved-MCE
}
@@ -142,6 +144,19 @@ CriticalityDiagnostics-IE-List-ExtIEs M3AP-PROTOCOL-EXTENSION ::= {
-- D
-- E
+ECGI ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ eUTRANcellIdentifier EUTRANCellIdentifier,
+ iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ECGI-ExtIEs M3AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EUTRANCellIdentifier ::= BIT STRING (SIZE (28))
+
ExtendedMCE-ID ::= OCTET STRING (SIZE(1))
-- F
@@ -150,8 +165,7 @@ ExtendedMCE-ID ::= OCTET STRING (SIZE(1))
Global-MCE-ID ::= SEQUENCE {
pLMN-Identity PLMN-Identity,
mCE-ID MCE-ID,
--- extendedMCE-ID ExtendedMCE-ID,
- extendedMCE-ID ExtendedMCE-ID OPTIONAL, -- Spec discrepancy 9.2.1.10 Global MCE ID Optional
+ extendedMCE-ID ExtendedMCE-ID OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {GlobalMCE-ID-ExtIEs} } OPTIONAL,
...
}
@@ -183,6 +197,8 @@ IPAddress ::= OCTET STRING (SIZE(4..16, ...))
-- L
-- M
+MBMS-Cell-List ::= SEQUENCE (SIZE(1.. maxnoofCellsforMBMS)) OF ECGI
+
MBMS-E-RAB-QoS-Parameters ::= SEQUENCE {
qCI QCI,
gbrQosInformation GBR-QosInformation OPTIONAL,
@@ -251,6 +267,9 @@ PLMN-Identity ::= OCTET STRING (SIZE(3))
QCI ::= INTEGER (0..255)
-- R
+
+Reestablishment ::= ENUMERATED {true, ...}
+
-- S
-- T
@@ -268,7 +287,7 @@ TMGI-ExtIEs M3AP-PROTOCOL-EXTENSION ::= {
TNL-Information ::= SEQUENCE {
- iPMCAddress IPAddress,
+ iPMCAddress IPAddress,
iPSourceAddress IPAddress,
gTP-DLTEID GTP-TEID,
iE-Extensions ProtocolExtensionContainer { {TNL-Information-ExtIEs} } OPTIONAL,
diff --git a/epan/dissectors/asn1/m3ap/M3AP-PDU-Contents.asn b/epan/dissectors/asn1/m3ap/M3AP-PDU-Contents.asn
index 4a33c9cb29..ff7810d60a 100644
--- a/epan/dissectors/asn1/m3ap/M3AP-PDU-Contents.asn
+++ b/epan/dissectors/asn1/m3ap/M3AP-PDU-Contents.asn
@@ -1,7 +1,7 @@
-- M3AP-PDU-Contents.asn
--
--- 3GPP TS 36.444 V11.1.0 (2012-03)
--- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-b10.zip
+-- 3GPP TS 36.444 V13.2.0 (2016-03)
+-- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-d20.zip
--
-- 9.3.4 PDU Definitions
--
@@ -13,9 +13,9 @@
-- **************************************************************
M3AP-PDU-Contents {
-itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) m3ap (5) version1 (1) m3ap-PDU-Contents (1) }
-DEFINITIONS AUTOMATIC TAGS ::=
+DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
@@ -26,7 +26,7 @@ BEGIN
-- **************************************************************
IMPORTS
-
+
Absolute-Time-ofMBMS-Data,
Cause,
CriticalityDiagnostics,
@@ -43,7 +43,9 @@ IMPORTS
MME-MBMS-M3AP-ID,
TimeToWait,
TMGI,
- TNL-Information
+ TNL-Information,
+ Reestablishment,
+ MBMS-Cell-List
FROM M3AP-IEs
@@ -69,6 +71,7 @@ FROM M3AP-Containers
id-MBMS-Session-Duration,
id-MBMS-Service-Area,
id-TNL-Information,
+ id-Alternative-TNL-Information,
id-CriticalityDiagnostics,
id-Cause,
id-MBMS-Service-Area-List,
@@ -83,6 +86,8 @@ FROM M3AP-Containers
id-Time-ofMBMS-DataTransfer,
id-Global-MCE-ID,
id-MCEname,
+ id-Reestablishment,
+ id-MBMS-Cell-List,
maxnoofMBMSServiceAreaIdentitiesPerMCE,
maxnooferrors,
maxNrOfIndividualM3ConnectionsToReset
@@ -109,7 +114,10 @@ MBMSSessionStartRequest-IEs M3AP-PROTOCOL-IES ::= {
{ ID id-MBMS-Service-Area CRITICALITY reject TYPE MBMS-Service-Area PRESENCE mandatory}|
{ ID id-MinimumTimeToMBMSDataTransfer CRITICALITY reject TYPE MinimumTimeToMBMSDataTransfer PRESENCE mandatory}|
{ ID id-TNL-Information CRITICALITY reject TYPE TNL-Information PRESENCE mandatory}|
- { ID id-Time-ofMBMS-DataTransfer CRITICALITY ignore TYPE Absolute-Time-ofMBMS-Data PRESENCE optional},
+ { ID id-Time-ofMBMS-DataTransfer CRITICALITY ignore TYPE Absolute-Time-ofMBMS-Data PRESENCE optional}|
+ { ID id-Reestablishment CRITICALITY ignore TYPE Reestablishment PRESENCE optional}|
+ { ID id-Alternative-TNL-Information CRITICALITY ignore TYPE TNL-Information PRESENCE optional}|
+ { ID id-MBMS-Cell-List CRITICALITY reject TYPE MBMS-Cell-List PRESENCE optional},
...
}
@@ -208,7 +216,8 @@ MBMSSessionUpdateRequest-IEs M3AP-PROTOCOL-IES ::= {
{ ID id-MBMS-Service-Area CRITICALITY ignore TYPE MBMS-Service-Area PRESENCE optional}|
{ ID id-MinimumTimeToMBMSDataTransfer CRITICALITY reject TYPE MinimumTimeToMBMSDataTransfer PRESENCE mandatory}|
{ ID id-TNL-Information CRITICALITY ignore TYPE TNL-Information PRESENCE optional}|
- { ID id-Time-ofMBMS-DataTransfer CRITICALITY ignore TYPE Absolute-Time-ofMBMS-Data PRESENCE optional},
+ { ID id-Time-ofMBMS-DataTransfer CRITICALITY ignore TYPE Absolute-Time-ofMBMS-Data PRESENCE optional}|
+ { ID id-MBMS-Cell-List CRITICALITY reject TYPE MBMS-Cell-List PRESENCE optional},
...
}
@@ -418,7 +427,7 @@ M3SetupFailureIEs M3AP-PROTOCOL-IES ::= {
-- **************************************************************
--
--- MCE Configuration Update
+-- MCE Configuration Update
--
-- **************************************************************
diff --git a/epan/dissectors/asn1/m3ap/M3AP-PDU-Descriptions.asn b/epan/dissectors/asn1/m3ap/M3AP-PDU-Descriptions.asn
index ad0c9b6ea3..84b774e41c 100644
--- a/epan/dissectors/asn1/m3ap/M3AP-PDU-Descriptions.asn
+++ b/epan/dissectors/asn1/m3ap/M3AP-PDU-Descriptions.asn
@@ -1,7 +1,7 @@
-- M3AP-PDU-Descriptions.asn
--
--- 3GPP TS 36.444 V11.1.0 (2012-03)
--- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-b10.zip
+-- 3GPP TS 36.444 V13.2.0 (2016-03)
+-- http://www.3gpp.org/ftp/Specs/archive/36_series/36.444/36444-d20.zip
--
-- 9.3.3 Elementary Procedure Definitions
--
@@ -13,9 +13,9 @@
-- **************************************************************
M3AP-PDU-Descriptions {
-itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
eps-Access (21) modules (3) m3ap (5) version1 (1) m3ap-PDU-Descriptions (0) }
-DEFINITIONS AUTOMATIC TAGS ::=
+DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
diff --git a/epan/dissectors/asn1/m3ap/m3ap.cnf b/epan/dissectors/asn1/m3ap/m3ap.cnf
index 63ce50da6d..4faf3ae394 100644
--- a/epan/dissectors/asn1/m3ap/m3ap.cnf
+++ b/epan/dissectors/asn1/m3ap/m3ap.cnf
@@ -162,6 +162,9 @@ ProtocolIE-Field/value ie_field_value
proto_tree_add_string(tree, hf_m3ap_Absolute_Time_ofMBMS_Data_value, parameter_tvb, 0, tvb_len, time_str);
#.END
+#.FN_FTR BitRate
+ proto_item_append_text(actx->created_item, "bit/s");
+
#.FN_BODY MBMS-Service-Area VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb=NULL;
guint16 tvb_len;
@@ -279,6 +282,9 @@ id-MCEname ProtocolIE-ID
id-MBMSServiceAreaList ProtocolIE-ID
id-Time-ofMBMS-DataTransfer ProtocolIE-ID
id-Time-ofMBMS-DataStop ProtocolIE-ID
+id-Reestablishment ProtocolIE-ID
+id-Alternative-TNL-Information ProtocolIE-ID
+id-MBMS-Cell-List ProtocolIE-ID
#.REGISTER
@@ -306,6 +312,9 @@ MCEname N m3ap.ies id-MCEname
MBMSServiceAreaListItem N m3ap.ies id-MBMSServiceAreaList
Absolute-Time-ofMBMS-Data N m3ap.ies id-Time-ofMBMS-DataTransfer
Absolute-Time-ofMBMS-Data N m3ap.ies id-Time-ofMBMS-DataStop
+Reestablishment N m3ap.ies id-Reestablishment
+TNL-Information N m3ap.ies id-Alternative-TNL-Information
+MBMS-Cell-List N m3ap.ies id-MBMS-Cell-List
#M3AP-ELEMENTARY-PROCEDURE
MBMSSessionStartRequest N m3ap.proc.imsg id-mBMSsessionStart
diff --git a/epan/dissectors/asn1/m3ap/packet-m3ap-template.c b/epan/dissectors/asn1/m3ap/packet-m3ap-template.c
index 1e52e6d059..5b9e3cdaac 100644
--- a/epan/dissectors/asn1/m3ap/packet-m3ap-template.c
+++ b/epan/dissectors/asn1/m3ap/packet-m3ap-template.c
@@ -19,7 +19,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * Reference: 3GPP TS 36.444 v11.0.0
+ * Reference: 3GPP TS 36.444 v13.2.0
*/
#include "config.h"
diff --git a/epan/dissectors/packet-m3ap.c b/epan/dissectors/packet-m3ap.c
index 01cc303dfa..d29466e62f 100644
--- a/epan/dissectors/packet-m3ap.c
+++ b/epan/dissectors/packet-m3ap.c
@@ -27,7 +27,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * Reference: 3GPP TS 36.444 v11.0.0
+ * Reference: 3GPP TS 36.444 v13.2.0
*/
#include "config.h"
@@ -65,6 +65,7 @@ static dissector_handle_t m3ap_handle=NULL;
#define maxnoofMBMSServiceAreaIdentitiesPerMCE 65536
#define maxnooferrors 256
#define maxNrOfIndividualM3ConnectionsToReset 256
+#define maxnoofCellsforMBMS 4096
typedef enum _ProcedureCode_enum {
id_mBMSsessionStart = 0,
@@ -100,7 +101,10 @@ typedef enum _ProtocolIE_ID_enum {
id_MCEname = 19,
id_MBMSServiceAreaList = 20,
id_Time_ofMBMS_DataTransfer = 21,
- id_Time_ofMBMS_DataStop = 22
+ id_Time_ofMBMS_DataStop = 22,
+ id_Reestablishment = 23,
+ id_Alternative_TNL_Information = 24,
+ id_MBMS_Cell_List = 25
} ProtocolIE_ID_enum;
/*--- End of included file: packet-m3ap-val.h ---*/
@@ -121,6 +125,7 @@ static int hf_m3ap_AllocationAndRetentionPriority_PDU = -1; /* AllocationAndRet
static int hf_m3ap_Cause_PDU = -1; /* Cause */
static int hf_m3ap_CriticalityDiagnostics_PDU = -1; /* CriticalityDiagnostics */
static int hf_m3ap_Global_MCE_ID_PDU = -1; /* Global_MCE_ID */
+static int hf_m3ap_MBMS_Cell_List_PDU = -1; /* MBMS_Cell_List */
static int hf_m3ap_MBMS_E_RAB_QoS_Parameters_PDU = -1; /* MBMS_E_RAB_QoS_Parameters */
static int hf_m3ap_MBMS_Service_associatedLogicalM3_ConnectionItem_PDU = -1; /* MBMS_Service_associatedLogicalM3_ConnectionItem */
static int hf_m3ap_MBMS_Service_Area_PDU = -1; /* MBMS_Service_Area */
@@ -130,6 +135,7 @@ static int hf_m3ap_MCE_MBMS_M3AP_ID_PDU = -1; /* MCE_MBMS_M3AP_ID */
static int hf_m3ap_MCEname_PDU = -1; /* MCEname */
static int hf_m3ap_MinimumTimeToMBMSDataTransfer_PDU = -1; /* MinimumTimeToMBMSDataTransfer */
static int hf_m3ap_MME_MBMS_M3AP_ID_PDU = -1; /* MME_MBMS_M3AP_ID */
+static int hf_m3ap_Reestablishment_PDU = -1; /* Reestablishment */
static int hf_m3ap_TimeToWait_PDU = -1; /* TimeToWait */
static int hf_m3ap_TMGI_PDU = -1; /* TMGI */
static int hf_m3ap_TNL_Information_PDU = -1; /* TNL_Information */
@@ -185,10 +191,12 @@ static int hf_m3ap_iECriticality = -1; /* Criticality */
static int hf_m3ap_iE_ID = -1; /* ProtocolIE_ID */
static int hf_m3ap_typeOfError = -1; /* TypeOfError */
static int hf_m3ap_pLMN_Identity = -1; /* PLMN_Identity */
+static int hf_m3ap_eUTRANcellIdentifier = -1; /* EUTRANCellIdentifier */
static int hf_m3ap_mCE_ID = -1; /* MCE_ID */
static int hf_m3ap_extendedMCE_ID = -1; /* ExtendedMCE_ID */
static int hf_m3ap_mBMS_E_RAB_MaximumBitrateDL = -1; /* BitRate */
static int hf_m3ap_mBMS_E_RAB_GuaranteedBitrateDL = -1; /* BitRate */
+static int hf_m3ap_MBMS_Cell_List_item = -1; /* ECGI */
static int hf_m3ap_qCI = -1; /* QCI */
static int hf_m3ap_gbrQosInformation = -1; /* GBR_QosInformation */
static int hf_m3ap_mME_MBMS_M3AP_ID = -1; /* MME_MBMS_M3AP_ID */
@@ -233,8 +241,10 @@ static gint ett_m3ap_Cause = -1;
static gint ett_m3ap_CriticalityDiagnostics = -1;
static gint ett_m3ap_CriticalityDiagnostics_IE_List = -1;
static gint ett_m3ap_CriticalityDiagnostics_IE_List_item = -1;
+static gint ett_m3ap_ECGI = -1;
static gint ett_m3ap_Global_MCE_ID = -1;
static gint ett_m3ap_GBR_QosInformation = -1;
+static gint ett_m3ap_MBMS_Cell_List = -1;
static gint ett_m3ap_MBMS_E_RAB_QoS_Parameters = -1;
static gint ett_m3ap_MBMS_Service_associatedLogicalM3_ConnectionItem = -1;
static gint ett_m3ap_TMGI = -1;
@@ -407,6 +417,9 @@ static const value_string m3ap_ProtocolIE_ID_vals[] = {
{ id_MBMSServiceAreaList, "id-MBMSServiceAreaList" },
{ id_Time_ofMBMS_DataTransfer, "id-Time-ofMBMS-DataTransfer" },
{ id_Time_ofMBMS_DataStop, "id-Time-ofMBMS-DataStop" },
+ { id_Reestablishment, "id-Reestablishment" },
+ { id_Alternative_TNL_Information, "id-Alternative-TNL-Information" },
+ { id_MBMS_Cell_List, "id-MBMS-Cell-List" },
{ 0, NULL }
};
@@ -668,6 +681,10 @@ dissect_m3ap_BitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
0U, G_GUINT64_CONSTANT(10000000000), NULL, FALSE);
+#line 166 "./asn1/m3ap/m3ap.cnf"
+ proto_item_append_text(actx->created_item, "bit/s");
+
+
return offset;
}
@@ -681,6 +698,7 @@ static const value_string m3ap_CauseRadioNetwork_vals[] = {
{ 5, "interaction-with-other-procedure" },
{ 6, "not-supported-QCI-value" },
{ 7, "unspecified" },
+ { 8, "uninvolved-MCE" },
{ 0, NULL }
};
@@ -688,7 +706,7 @@ static const value_string m3ap_CauseRadioNetwork_vals[] = {
static int
dissect_m3ap_CauseRadioNetwork(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
- 8, NULL, TRUE, 0, NULL);
+ 8, NULL, TRUE, 1, NULL);
return offset;
}
@@ -860,16 +878,6 @@ dissect_m3ap_CriticalityDiagnostics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
-dissect_m3ap_ExtendedMCE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 1, 1, FALSE, NULL);
-
- return offset;
-}
-
-
-
-static int
dissect_m3ap_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
#line 114 "./asn1/m3ap/m3ap.cnf"
tvbuff_t *parameter_tvb=NULL;
@@ -888,6 +896,42 @@ dissect_m3ap_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
+dissect_m3ap_EUTRANCellIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
+ 28, 28, FALSE, NULL, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t ECGI_sequence[] = {
+ { &hf_m3ap_pLMN_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_m3ap_PLMN_Identity },
+ { &hf_m3ap_eUTRANcellIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_m3ap_EUTRANCellIdentifier },
+ { &hf_m3ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_m3ap_ProtocolExtensionContainer },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_m3ap_ECGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_m3ap_ECGI, ECGI_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_m3ap_ExtendedMCE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 1, 1, FALSE, NULL);
+
+ return offset;
+}
+
+
+
+static int
dissect_m3ap_MCE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2, 2, FALSE, NULL);
@@ -973,6 +1017,20 @@ dissect_m3ap_IPAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
}
+static const per_sequence_t MBMS_Cell_List_sequence_of[1] = {
+ { &hf_m3ap_MBMS_Cell_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_m3ap_ECGI },
+};
+
+static int
+dissect_m3ap_MBMS_Cell_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
+ ett_m3ap_MBMS_Cell_List, MBMS_Cell_List_sequence_of,
+ 1, maxnoofCellsforMBMS, FALSE);
+
+ return offset;
+}
+
+
static int
dissect_m3ap_QCI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
@@ -1048,7 +1106,7 @@ dissect_m3ap_MBMSServiceArea1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
static int
dissect_m3ap_MBMS_Service_Area(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 166 "./asn1/m3ap/m3ap.cnf"
+#line 169 "./asn1/m3ap/m3ap.cnf"
tvbuff_t *parameter_tvb=NULL;
guint16 tvb_len;
@@ -1071,7 +1129,7 @@ dissect_m3ap_MBMS_Service_Area(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_m3ap_MBMS_Session_Duration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 180 "./asn1/m3ap/m3ap.cnf"
+#line 183 "./asn1/m3ap/m3ap.cnf"
tvbuff_t *parameter_tvb=NULL;
guint16 tvb_len;
@@ -1114,7 +1172,7 @@ dissect_m3ap_MCEname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_m3ap_MinimumTimeToMBMSDataTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 196 "./asn1/m3ap/m3ap.cnf"
+#line 199 "./asn1/m3ap/m3ap.cnf"
tvbuff_t *parameter_tvb=NULL;
guint16 tvb_len;
@@ -1133,6 +1191,21 @@ dissect_m3ap_MinimumTimeToMBMSDataTransfer(tvbuff_t *tvb _U_, int offset _U_, as
}
+static const value_string m3ap_Reestablishment_vals[] = {
+ { 0, "true" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_m3ap_Reestablishment(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 1, NULL, TRUE, 0, NULL);
+
+ return offset;
+}
+
+
static const value_string m3ap_TimeToWait_vals[] = {
{ 0, "v1s" },
{ 1, "v2s" },
@@ -1203,7 +1276,7 @@ static const per_sequence_t MBMSSessionStartRequest_sequence[] = {
static int
dissect_m3ap_MBMSSessionStartRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 210 "./asn1/m3ap/m3ap.cnf"
+#line 213 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Start Request ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1220,7 +1293,7 @@ static const per_sequence_t MBMSSessionStartResponse_sequence[] = {
static int
dissect_m3ap_MBMSSessionStartResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 212 "./asn1/m3ap/m3ap.cnf"
+#line 215 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Start Response ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1237,7 +1310,7 @@ static const per_sequence_t MBMSSessionStartFailure_sequence[] = {
static int
dissect_m3ap_MBMSSessionStartFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 214 "./asn1/m3ap/m3ap.cnf"
+#line 217 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Start Failure ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1254,7 +1327,7 @@ static const per_sequence_t MBMSSessionStopRequest_sequence[] = {
static int
dissect_m3ap_MBMSSessionStopRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 216 "./asn1/m3ap/m3ap.cnf"
+#line 219 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Stop Request ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1271,7 +1344,7 @@ static const per_sequence_t MBMSSessionStopResponse_sequence[] = {
static int
dissect_m3ap_MBMSSessionStopResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 218 "./asn1/m3ap/m3ap.cnf"
+#line 221 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Stop Response ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1288,7 +1361,7 @@ static const per_sequence_t MBMSSessionUpdateRequest_sequence[] = {
static int
dissect_m3ap_MBMSSessionUpdateRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 220 "./asn1/m3ap/m3ap.cnf"
+#line 223 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Update Request ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1305,7 +1378,7 @@ static const per_sequence_t MBMSSessionUpdateResponse_sequence[] = {
static int
dissect_m3ap_MBMSSessionUpdateResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 222 "./asn1/m3ap/m3ap.cnf"
+#line 225 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Update Response ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1322,7 +1395,7 @@ static const per_sequence_t MBMSSessionUpdateFailure_sequence[] = {
static int
dissect_m3ap_MBMSSessionUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 224 "./asn1/m3ap/m3ap.cnf"
+#line 227 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MBMS Session Update Failure ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1339,7 +1412,7 @@ static const per_sequence_t ErrorIndication_sequence[] = {
static int
dissect_m3ap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 226 "./asn1/m3ap/m3ap.cnf"
+#line 229 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"Error Indication ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1356,7 +1429,7 @@ static const per_sequence_t Reset_sequence[] = {
static int
dissect_m3ap_Reset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 228 "./asn1/m3ap/m3ap.cnf"
+#line 231 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"Reset ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1424,7 +1497,7 @@ static const per_sequence_t ResetAcknowledge_sequence[] = {
static int
dissect_m3ap_ResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 230 "./asn1/m3ap/m3ap.cnf"
+#line 233 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"Reset Acknowledge ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1455,7 +1528,7 @@ static const per_sequence_t PrivateMessage_sequence[] = {
static int
dissect_m3ap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 232 "./asn1/m3ap/m3ap.cnf"
+#line 235 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"Private Message ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1472,7 +1545,7 @@ static const per_sequence_t M3SetupRequest_sequence[] = {
static int
dissect_m3ap_M3SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 240 "./asn1/m3ap/m3ap.cnf"
+#line 243 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"M3 Setup Request ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1503,7 +1576,7 @@ static const per_sequence_t M3SetupResponse_sequence[] = {
static int
dissect_m3ap_M3SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 242 "./asn1/m3ap/m3ap.cnf"
+#line 245 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"M3 Setup Response ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1520,7 +1593,7 @@ static const per_sequence_t M3SetupFailure_sequence[] = {
static int
dissect_m3ap_M3SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 244 "./asn1/m3ap/m3ap.cnf"
+#line 247 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"M3 Setup Failure ");
@@ -1539,7 +1612,7 @@ static const per_sequence_t MCEConfigurationUpdate_sequence[] = {
static int
dissect_m3ap_MCEConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 234 "./asn1/m3ap/m3ap.cnf"
+#line 237 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MCE Configuration Update ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1556,7 +1629,7 @@ static const per_sequence_t MCEConfigurationUpdateAcknowledge_sequence[] = {
static int
dissect_m3ap_MCEConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 236 "./asn1/m3ap/m3ap.cnf"
+#line 239 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MCE Configuration Update Acknowledge ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1573,7 +1646,7 @@ static const per_sequence_t MCEConfigurationUpdateFailure_sequence[] = {
static int
dissect_m3ap_MCEConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 238 "./asn1/m3ap/m3ap.cnf"
+#line 241 "./asn1/m3ap/m3ap.cnf"
col_set_str(actx->pinfo->cinfo, COL_INFO,"MCE Configuration Update Failure ");
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
@@ -1739,6 +1812,14 @@ static int dissect_Global_MCE_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_,
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_MBMS_Cell_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_m3ap_MBMS_Cell_List(tvb, offset, &asn1_ctx, tree, hf_m3ap_MBMS_Cell_List_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_MBMS_E_RAB_QoS_Parameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -1811,6 +1892,14 @@ static int dissect_MME_MBMS_M3AP_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U
offset += 7; offset >>= 3;
return offset;
}
+static int dissect_Reestablishment_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
+ asn1_ctx_t asn1_ctx;
+ asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
+ offset = dissect_m3ap_Reestablishment(tvb, offset, &asn1_ctx, tree, hf_m3ap_Reestablishment_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
+}
static int dissect_TimeToWait_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
int offset = 0;
asn1_ctx_t asn1_ctx;
@@ -2106,6 +2195,10 @@ void proto_register_m3ap(void) {
{ "Global-MCE-ID", "m3ap.Global_MCE_ID_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_m3ap_MBMS_Cell_List_PDU,
+ { "MBMS-Cell-List", "m3ap.MBMS_Cell_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
{ &hf_m3ap_MBMS_E_RAB_QoS_Parameters_PDU,
{ "MBMS-E-RAB-QoS-Parameters", "m3ap.MBMS_E_RAB_QoS_Parameters_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2142,6 +2235,10 @@ void proto_register_m3ap(void) {
{ "MME-MBMS-M3AP-ID", "m3ap.MME_MBMS_M3AP_ID",
FT_UINT32, BASE_DEC, NULL, 0,
NULL, HFILL }},
+ { &hf_m3ap_Reestablishment_PDU,
+ { "Reestablishment", "m3ap.Reestablishment",
+ FT_UINT32, BASE_DEC, VALS(m3ap_Reestablishment_vals), 0,
+ NULL, HFILL }},
{ &hf_m3ap_TimeToWait_PDU,
{ "TimeToWait", "m3ap.TimeToWait",
FT_UINT32, BASE_DEC, VALS(m3ap_TimeToWait_vals), 0,
@@ -2362,6 +2459,10 @@ void proto_register_m3ap(void) {
{ "pLMN-Identity", "m3ap.pLMN_Identity",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_m3ap_eUTRANcellIdentifier,
+ { "eUTRANcellIdentifier", "m3ap.eUTRANcellIdentifier",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_m3ap_mCE_ID,
{ "mCE-ID", "m3ap.mCE_ID",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -2378,6 +2479,10 @@ void proto_register_m3ap(void) {
{ "mBMS-E-RAB-GuaranteedBitrateDL", "m3ap.mBMS_E_RAB_GuaranteedBitrateDL",
FT_UINT64, BASE_DEC, NULL, 0,
"BitRate", HFILL }},
+ { &hf_m3ap_MBMS_Cell_List_item,
+ { "ECGI", "m3ap.ECGI_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_m3ap_qCI,
{ "qCI", "m3ap.qCI",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -2490,8 +2595,10 @@ void proto_register_m3ap(void) {
&ett_m3ap_CriticalityDiagnostics,
&ett_m3ap_CriticalityDiagnostics_IE_List,
&ett_m3ap_CriticalityDiagnostics_IE_List_item,
+ &ett_m3ap_ECGI,
&ett_m3ap_Global_MCE_ID,
&ett_m3ap_GBR_QosInformation,
+ &ett_m3ap_MBMS_Cell_List,
&ett_m3ap_MBMS_E_RAB_QoS_Parameters,
&ett_m3ap_MBMS_Service_associatedLogicalM3_ConnectionItem,
&ett_m3ap_TMGI,
@@ -2585,6 +2692,9 @@ proto_reg_handoff_m3ap(void)
dissector_add_uint("m3ap.ies", id_MBMSServiceAreaList, create_dissector_handle(dissect_MBMSServiceAreaListItem_PDU, proto_m3ap));
dissector_add_uint("m3ap.ies", id_Time_ofMBMS_DataTransfer, create_dissector_handle(dissect_Absolute_Time_ofMBMS_Data_PDU, proto_m3ap));
dissector_add_uint("m3ap.ies", id_Time_ofMBMS_DataStop, create_dissector_handle(dissect_Absolute_Time_ofMBMS_Data_PDU, proto_m3ap));
+ dissector_add_uint("m3ap.ies", id_Reestablishment, create_dissector_handle(dissect_Reestablishment_PDU, proto_m3ap));
+ dissector_add_uint("m3ap.ies", id_Alternative_TNL_Information, create_dissector_handle(dissect_TNL_Information_PDU, proto_m3ap));
+ dissector_add_uint("m3ap.ies", id_MBMS_Cell_List, create_dissector_handle(dissect_MBMS_Cell_List_PDU, proto_m3ap));
dissector_add_uint("m3ap.proc.imsg", id_mBMSsessionStart, create_dissector_handle(dissect_MBMSSessionStartRequest_PDU, proto_m3ap));
dissector_add_uint("m3ap.proc.sout", id_mBMSsessionStart, create_dissector_handle(dissect_MBMSSessionStartResponse_PDU, proto_m3ap));
dissector_add_uint("m3ap.proc.uout", id_mBMSsessionStart, create_dissector_handle(dissect_MBMSSessionStartFailure_PDU, proto_m3ap));