Пример #1
0
 public GUMMEI Decode(BitArrayInputStream input)
 {
     GUMMEI gummei = new GUMMEI();
     gummei.InitDefaults();
     BitMaskStream stream = (input.readBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);
     input.skipUnreadedBits();
     gummei.pLMN_Identity = input.readOctetString(3);
     input.skipUnreadedBits();
     gummei.mME_Group_ID = input.readOctetString(2);
     input.skipUnreadedBits();
     gummei.mME_Code = input.readOctetString(1);
     if (stream.Read())
     {
         input.skipUnreadedBits();
         gummei.iE_Extensions = new List<ProtocolExtensionField>();
         int nBits = 0x10;
         int num5 = input.readBits(nBits) + 1;
         for (int i = 0; i < num5; i++)
         {
             ProtocolExtensionField item = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
             gummei.iE_Extensions.Add(item);
         }
     }
     return gummei;
 }
Пример #2
0
            public string Decode(BitArrayInputStream input)
            {
                input.skipUnreadedBits();
                int nBits = 0;
                while (true)
                {
                    switch (input.readBit())
                    {
                        case 0:
                            nBits += input.readBits(7);
                            goto Label_0096;

                        case 1:
                            switch (input.readBit())
                            {
                                case 0:
                                    nBits += input.readBits(14);
                                    goto Label_0096;

                                case 1:
                                    input.readBits(2);
                                    nBits += input.readBits(4) * 0x400;
                                    break;
                            }
                            break;
                    }
                }
                Label_0096:
                return input.readOctetString(nBits);
            }
Пример #3
0
 public UE_CapabilityRAT_Container Decode(BitArrayInputStream input)
 {
     string str;
     int nBits = 0;
     UE_CapabilityRAT_Container container = new UE_CapabilityRAT_Container();
     container.InitDefaults();
     int num2 = (input.readBit() == 0) ? 3 : 3;
     container.rat_Type = (RAT_Type) input.readBits(num2);
     nBits = input.readBits(8);
     if ((container.rat_Type == RAT_Type.eutra) && (nBits > 0))
     {
         str = input.readOctetString(nBits);
         BitArrayInputStream inputStream = GetInputStream(str.Remove(str.Length - 2) + "00000000");
         container.ueCapabilityRAT_Container = UE_EUTRA_Capability.PerDecoder.Instance.Decode(inputStream);
         return container;
     }
     if (container.rat_Type == RAT_Type.cdma2000_1XRTT)
     {
         container.ueCapabilityRAT_Container = A21MobileSubscriptionInformation.PerDecoder.Instance.Decode(input);
         return container;
     }
     str = input.readOctetString(nBits);
     container.ueCapabilityRAT_Container = str;
     return container;
 }
Пример #4
0
 public E_RABSetupItemBearerSURes Decode(BitArrayInputStream input)
 {
     E_RABSetupItemBearerSURes res = new E_RABSetupItemBearerSURes();
     res.InitDefaults();
     BitMaskStream stream = (input.readBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);
     input.readBit();
     res.e_RAB_ID = input.readBits(4);
     input.readBit();
     int num = input.readBits(8);
     input.skipUnreadedBits();
     res.transportLayerAddress = input.readBitString(num + 1);
     input.skipUnreadedBits();
     res.gTP_TEID = input.readOctetString(4);
     if (stream.Read())
     {
         input.skipUnreadedBits();
         res.iE_Extensions = new List<ProtocolExtensionField>();
         const int nBits = 0x10;
         int num5 = input.readBits(nBits) + 1;
         for (int i = 0; i < num5; i++)
         {
             ProtocolExtensionField item = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
             res.iE_Extensions.Add(item);
         }
     }
     return res;
 }
Пример #5
0
 public SupportedTAs_Item Decode(BitArrayInputStream input)
 {
     SupportedTAs_Item item = new SupportedTAs_Item();
     item.InitDefaults();
     BitMaskStream stream = (input.readBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);
     input.skipUnreadedBits();
     item.tAC = input.readOctetString(2);
     item.broadcastPLMNs = new List<string>();
     int nBits = 3;
     int num5 = input.readBits(nBits) + 1;
     for (int i = 0; i < num5; i++)
     {
         input.skipUnreadedBits();
         string str = input.readOctetString(3);
         item.broadcastPLMNs.Add(str);
     }
     if (stream.Read())
     {
         input.skipUnreadedBits();
         item.iE_Extensions = new List<ProtocolExtensionField>();
         nBits = 0x10;
         int num7 = input.readBits(nBits) + 1;
         for (int j = 0; j < num7; j++)
         {
             ProtocolExtensionField field = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
             item.iE_Extensions.Add(field);
         }
     }
     return item;
 }
Пример #6
0
 public TraceReference_r10 Decode(BitArrayInputStream input)
 {
     TraceReference_r10 _r = new TraceReference_r10();
     _r.InitDefaults();
     _r.plmn_Identity_r10 = PLMN_Identity.PerDecoder.Instance.Decode(input);
     _r.traceId_r10 = input.readOctetString(3);
     return _r;
 }
Пример #7
0
 public TMGI_r9 Decode(BitArrayInputStream input)
 {
     TMGI_r9 _r = new TMGI_r9();
     _r.InitDefaults();
     _r.plmn_Id_r9 = plmn_Id_r9_Type.PerDecoder.Instance.Decode(input);
     _r.serviceId_r9 = input.readOctetString(3);
     return _r;
 }
Пример #8
0
 public Handover Decode(BitArrayInputStream input)
 {
     Handover handover = new Handover();
     handover.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 2);
     int num2 = (input.readBit() == 0) ? 3 : 3;
     handover.targetRAT_Type = (targetRAT_Type_Enum)input.readBits(num2);
     int nBits = input.readBits(8);
     handover.targetRAT_MessageContainer = input.readOctetString(nBits);
     if (stream.Read())
     {
         handover.nas_SecurityParamFromEUTRA = input.readOctetString(1);
     }
     if (stream.Read())
     {
         handover.systemInformation = SI_OrPSI_GERAN.PerDecoder.Instance.Decode(input);
     }
     return handover;
 }
Пример #9
0
 public LAI Decode(BitArrayInputStream input)
 {
     LAI lai = new LAI();
     lai.InitDefaults();
     BitMaskStream stream = (input.readBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);
     input.skipUnreadedBits();
     lai.pLMNidentity = input.readOctetString(3);
     input.skipUnreadedBits();
     lai.lAC = input.readOctetString(2);
     if (stream.Read())
     {
         input.skipUnreadedBits();
         lai.iE_Extensions = new List<ProtocolExtensionField>();
         int nBits = 0x10;
         int num5 = input.readBits(nBits) + 1;
         for (int i = 0; i < num5; i++)
         {
             ProtocolExtensionField item = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
             lai.iE_Extensions.Add(item);
         }
     }
     return lai;
 }
Пример #10
0
 public CellInfoGERAN_r9 Decode(BitArrayInputStream input)
 {
     CellInfoGERAN_r9 _r = new CellInfoGERAN_r9();
     _r.InitDefaults();
     _r.physCellId_r9 = PhysCellIdGERAN.PerDecoder.Instance.Decode(input);
     _r.carrierFreq_r9 = CarrierFreqGERAN.PerDecoder.Instance.Decode(input);
     _r.systemInformation_r9 = new List<string>();
     const int nBits = 4;
     int num3 = input.readBits(nBits) + 1;
     for (int i = 0; i < num3; i++)
     {
         int num = input.readBits(5);
         string item = input.readOctetString(num + 1);
         _r.systemInformation_r9.Add(item);
     }
     return _r;
 }
Пример #11
0
 public MBMSCountingRequest_r10 Decode(BitArrayInputStream input)
 {
     MBMSCountingRequest_r10 _r = new MBMSCountingRequest_r10();
     _r.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 2);
     _r.countingRequestList_r10 = new List<CountingRequestInfo_r10>();
     const int num2 = 4;
     int num3 = input.readBits(num2) + 1;
     for (int i = 0; i < num3; i++)
     {
         CountingRequestInfo_r10 item = CountingRequestInfo_r10.PerDecoder.Instance.Decode(input);
         _r.countingRequestList_r10.Add(item);
     }
     if (stream.Read())
     {
         int nBits = input.readBits(8);
         _r.lateNonCriticalExtension = input.readOctetString(nBits);
     }
     if (stream.Read())
     {
         _r.nonCriticalExtension = nonCriticalExtension_Type.PerDecoder.Instance.Decode(input);
     }
     return _r;
 }
Пример #12
0
 public UEAssistanceInformation_r11_IEs Decode(BitArrayInputStream input)
 {
     UEAssistanceInformation_r11_IEs es = new UEAssistanceInformation_r11_IEs();
     es.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 3);
     if (stream.Read())
     {
         const int num2 = 1;
         es.powerPrefIndication_r11 = (powerPrefIndication_r11_Enum)input.readBits(num2);
     }
     if (stream.Read())
     {
         int nBits = input.readBits(8);
         es.lateNonCriticalExtension = input.readOctetString(nBits);
     }
     if (stream.Read())
     {
         es.nonCriticalExtension = nonCriticalExtension_Type.PerDecoder.Instance.Decode(input);
     }
     return es;
 }
Пример #13
0
 public CellInfoUTRA_TDD_r9 Decode(BitArrayInputStream input)
 {
     CellInfoUTRA_TDD_r9 _r = new CellInfoUTRA_TDD_r9();
     _r.InitDefaults();
     _r.physCellId_r9 = input.readBits(7);
     int nBits = input.readBits(8);
     _r.utra_BCCH_Container_r9 = input.readOctetString(nBits);
     return _r;
 }
Пример #14
0
 public ECGI Decode(BitArrayInputStream input)
 {
     ECGI ecgi = new ECGI();
     ecgi.InitDefaults();
     BitMaskStream stream = (input.readBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);
     input.skipUnreadedBits();
     ecgi.pLMN_Identity = input.readOctetString(3);
     ecgi.eUTRANcellIdentifier = input.readBitString(0x1c);
     if (stream.Read())
     {
         input.skipUnreadedBits();
         ecgi.iE_Extensions = new List<ProtocolExtensionField>();
         const int nBits = 0x10;
         int num5 = input.readBits(nBits) + 1;
         for (int i = 0; i < num5; i++)
         {
             ProtocolExtensionField item = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
             ecgi.iE_Extensions.Add(item);
         }
     }
     return ecgi;
 }
Пример #15
0
 public GlobalENB_ID Decode(BitArrayInputStream input)
 {
     GlobalENB_ID lenb_id = new GlobalENB_ID();
     lenb_id.InitDefaults();
     BitMaskStream stream = (input.readBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);
     input.skipUnreadedBits();
     lenb_id.pLMN_Identity = input.readOctetString(3);
     lenb_id.eNB_ID = ENB_ID.PerDecoder.Instance.Decode(input);
     if (stream.Read())
     {
         input.skipUnreadedBits();
         lenb_id.iE_Extensions = new List<ProtocolExtensionField>();
         int nBits = 0x10;
         int num5 = input.readBits(nBits) + 1;
         for (int i = 0; i < num5; i++)
         {
             ProtocolExtensionField item = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
             lenb_id.iE_Extensions.Add(item);
         }
     }
     return lenb_id;
 }
Пример #16
0
 public UE_EUTRA_Capability_v9h0_IEs Decode(BitArrayInputStream input)
 {
     UE_EUTRA_Capability_v9h0_IEs es = new UE_EUTRA_Capability_v9h0_IEs();
     es.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 3);
     if (stream.Read())
     {
         es.interRAT_ParametersUTRA_v9h0 = IRAT_ParametersUTRA_v9h0.PerDecoder.Instance.Decode(input);
     }
     if (stream.Read())
     {
         int nBits = input.readBits(8);
         es.lateNonCriticalExtension = input.readOctetString(nBits);
     }
     if (stream.Read())
     {
         es.nonCriticalExtension = UE_EUTRA_Capability_v10c0_IEs.PerDecoder.Instance.Decode(input);
     }
     return es;
 }
Пример #17
0
 public CounterCheck_v8a0_IEs Decode(BitArrayInputStream input)
 {
     CounterCheck_v8a0_IEs es = new CounterCheck_v8a0_IEs();
     es.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 2);
     if (stream.Read())
     {
         int nBits = input.readBits(8);
         es.lateNonCriticalExtension = input.readOctetString(nBits);
     }
     if (stream.Read())
     {
         es.nonCriticalExtension = nonCriticalExtension_Type.PerDecoder.Instance.Decode(input);
     }
     return es;
 }
Пример #18
0
 public RRCConnectionSetupComplete_r8_IEs Decode(BitArrayInputStream input)
 {
     RRCConnectionSetupComplete_r8_IEs es = new RRCConnectionSetupComplete_r8_IEs();
     es.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 2);
     es.selectedPLMN_Identity = input.readBits(3) + 1;
     if (stream.Read())
     {
         es.registeredMME = RegisteredMME.PerDecoder.Instance.Decode(input);
     }
     int nBits = input.readBits(8);
     es.dedicatedInfoNAS = input.readOctetString(nBits);
     if (stream.Read())
     {
         es.nonCriticalExtension = RRCConnectionSetupComplete_v8a0_IEs.PerDecoder.Instance.Decode(input);
     }
     return es;
 }
Пример #19
0
 public UEInformationRequest_v930_IEs Decode(BitArrayInputStream input)
 {
     UEInformationRequest_v930_IEs es = new UEInformationRequest_v930_IEs();
     es.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 2);
     if (stream.Read())
     {
         int nBits = input.readBits(8);
         es.lateNonCriticalExtension = input.readOctetString(nBits);
     }
     if (stream.Read())
     {
         es.nonCriticalExtension = UEInformationRequest_v1020_IEs.PerDecoder.Instance.Decode(input);
     }
     return es;
 }
Пример #20
0
 public MBMSCountingResponse_r10_IEs Decode(BitArrayInputStream input)
 {
     MBMSCountingResponse_r10_IEs es = new MBMSCountingResponse_r10_IEs();
     es.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 4);
     if (stream.Read())
     {
         es.mbsfn_AreaIndex_r10 = input.readBits(3);
     }
     if (stream.Read())
     {
         es.countingResponseList_r10 = new List<CountingResponseInfo_r10>();
         const int num2 = 4;
         int num3 = input.readBits(num2) + 1;
         for (int i = 0; i < num3; i++)
         {
             CountingResponseInfo_r10 item = CountingResponseInfo_r10.PerDecoder.Instance.Decode(input);
             es.countingResponseList_r10.Add(item);
         }
     }
     if (stream.Read())
     {
         int nBits = input.readBits(8);
         es.lateNonCriticalExtension = input.readOctetString(nBits);
     }
     if (stream.Read())
     {
         es.nonCriticalExtension = nonCriticalExtension_Type.PerDecoder.Instance.Decode(input);
     }
     return es;
 }
Пример #21
0
 public HandoverCommand_r8_IEs Decode(BitArrayInputStream input)
 {
     HandoverCommand_r8_IEs es = new HandoverCommand_r8_IEs();
     es.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 1);
     int nBits = input.readBits(8);
     es.handoverCommandMessage = input.readOctetString(nBits);
     if (stream.Read())
     {
         es.nonCriticalExtension = nonCriticalExtension_Type.PerDecoder.Instance.Decode(input);
     }
     return es;
 }
Пример #22
0
 public MBMSInterestIndication_r11_IEs Decode(BitArrayInputStream input)
 {
     int num2;
     MBMSInterestIndication_r11_IEs es = new MBMSInterestIndication_r11_IEs();
     es.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 4);
     if (stream.Read())
     {
         es.mbms_FreqList_r11 = new List<long>();
         num2 = 3;
         int num3 = input.readBits(num2) + 1;
         for (int i = 0; i < num3; i++)
         {
             long item = input.readBits(0x12);
             es.mbms_FreqList_r11.Add(item);
         }
     }
     if (stream.Read())
     {
         num2 = 1;
         es.mbms_Priority_r11 = (mbms_Priority_r11_Enum)input.readBits(num2);
     }
     if (stream.Read())
     {
         int nBits = input.readBits(8);
         es.lateNonCriticalExtension = input.readOctetString(nBits);
     }
     if (stream.Read())
     {
         es.nonCriticalExtension = nonCriticalExtension_Type.PerDecoder.Instance.Decode(input);
     }
     return es;
 }
Пример #23
0
 public HandoverFromEUTRAPreparationRequest_r8_IEs Decode(BitArrayInputStream input)
 {
     HandoverFromEUTRAPreparationRequest_r8_IEs es = new HandoverFromEUTRAPreparationRequest_r8_IEs();
     es.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 3);
     const int num2 = 1;
     es.cdma2000_Type = (CDMA2000_Type)input.readBits(num2);
     if (stream.Read())
     {
         es.rand = input.readBitString(0x20);
     }
     if (stream.Read())
     {
         int nBits = input.readBits(8);
         es.mobilityParameters = input.readOctetString(nBits);
     }
     if (stream.Read())
     {
         es.nonCriticalExtension = HandoverFromEUTRAPreparationRequest_v890_IEs.PerDecoder.Instance.Decode(input);
     }
     return es;
 }
Пример #24
0
 public MBMS_SessionInfo_r9 Decode(BitArrayInputStream input)
 {
     MBMS_SessionInfo_r9 _r = new MBMS_SessionInfo_r9();
     _r.InitDefaults();
     BitMaskStream stream = (input.readBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);
     _r.tmgi_r9 = TMGI_r9.PerDecoder.Instance.Decode(input);
     if (stream.Read())
     {
         _r.sessionId_r9 = input.readOctetString(1);
     }
     _r.logicalChannelIdentity_r9 = input.readBits(5);
     return _r;
 }
Пример #25
0
 public HandoverFromEUTRAPreparationRequest_v890_IEs Decode(BitArrayInputStream input)
 {
     HandoverFromEUTRAPreparationRequest_v890_IEs es = new HandoverFromEUTRAPreparationRequest_v890_IEs();
     es.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 2);
     if (stream.Read())
     {
         int nBits = input.readBits(8);
         es.lateNonCriticalExtension = input.readOctetString(nBits);
     }
     if (stream.Read())
     {
         es.nonCriticalExtension = HandoverFromEUTRAPreparationRequest_v920_IEs.PerDecoder.Instance.Decode(input);
     }
     return es;
 }
Пример #26
0
                public dedicatedInfoType_Type Decode(BitArrayInputStream input)
                {
                    int nBits;
                    dedicatedInfoType_Type type = new dedicatedInfoType_Type();
                    type.InitDefaults();
                    switch (input.readBits(2))
                    {
                        case 0:
                            nBits = input.readBits(8);
                            type.dedicatedInfoNAS = input.readOctetString(nBits);
                            return type;

                        case 1:
                            nBits = input.readBits(8);
                            type.dedicatedInfoCDMA2000_1XRTT = input.readOctetString(nBits);
                            return type;

                        case 2:
                            nBits = input.readBits(8);
                            type.dedicatedInfoCDMA2000_HRPD = input.readOctetString(nBits);
                            return type;
                    }
                    throw new Exception(GetType().Name + ":NoChoice had been choose");
                }
Пример #27
0
 public string Decode(BitArrayInputStream input)
 {
     input.skipUnreadedBits();
     return input.readOctetString(2);
 }
Пример #28
0
 public TraceActivation Decode(BitArrayInputStream input)
 {
     TraceActivation activation = new TraceActivation();
     activation.InitDefaults();
     BitMaskStream stream = (input.readBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);
     input.skipUnreadedBits();
     activation.eUTRANTraceID = input.readOctetString(8);
     activation.interfacesToTrace = input.readBitString(8);
     int nBits = (input.readBit() == 0) ? 3 : 3;
     activation.traceDepth = (TraceDepth)input.readBits(nBits);
     input.readBit();
     int num = input.readBits(8);
     input.skipUnreadedBits();
     activation.traceCollectionEntityIPAddress = input.readBitString(num + 1);
     if (stream.Read())
     {
         input.skipUnreadedBits();
         activation.iE_Extensions = new List<ProtocolExtensionField>();
         nBits = 0x10;
         int num5 = input.readBits(nBits) + 1;
         for (int i = 0; i < num5; i++)
         {
             ProtocolExtensionField item = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
             activation.iE_Extensions.Add(item);
         }
     }
     return activation;
 }
Пример #29
0
 public RRCConnectionSetupComplete_v8a0_IEs Decode(BitArrayInputStream input)
 {
     RRCConnectionSetupComplete_v8a0_IEs es = new RRCConnectionSetupComplete_v8a0_IEs();
     es.InitDefaults();
     BitMaskStream stream = new BitMaskStream(input, 2);
     if (stream.Read())
     {
         int nBits = input.readBits(8);
         es.lateNonCriticalExtension = input.readOctetString(nBits);
     }
     if (stream.Read())
     {
         es.nonCriticalExtension = RRCConnectionSetupComplete_v1020_IEs.PerDecoder.Instance.Decode(input);
     }
     return es;
 }
Пример #30
0
            public SuccessfulOutcome Decode(BitArrayInputStream input)
            {
                SuccessfulOutcome outcome = new SuccessfulOutcome();
                outcome.InitDefaults();
                input.skipUnreadedBits();
                outcome.procedureCode = input.readBits(8);
                const int num4 = 2;
                outcome.criticality = (Criticality)input.readBits(num4);
                input.skipUnreadedBits();
                int nBits = 0;
                while (true)
                {
                    switch (input.readBit())
                    {
                        case 0:
                            nBits += input.readBits(7);
                            goto Label_00CF;

                        case 1:
                            switch (input.readBit())
                            {
                                case 0:
                                    nBits += input.readBits(14);
                                    goto Label_00CF;

                                case 1:
                                    input.readBits(2);
                                    nBits += input.readBits(4) * 0x400;
                                    break;
                            }
                            break;
                    }
                }
                Label_00CF:
                long num3 = input.Position;
                try
                {
                    outcome.value = X2AP_ELEMENTARY_PROCEDURE.Switcher(outcome.procedureCode, "SuccessfulOutcome", input);
                    input.skipUnreadedBits();
                }
                catch (Exception)
                {
                    input.skipUnreadedBits();
                    input.Position = num3;
                    outcome.value = input.readOctetString(nBits);
                }
                if (input.Position != (num3 + nBits))
                {
                    input.Position = num3 + nBits;
                }
                return outcome;
            }