Example #1
0
            public ProtocolExtensionField Decode(BitArrayInputStream input)
            {
                int nBits = 0;
                long num3 = 0L;
                ProtocolExtensionField field = new ProtocolExtensionField();
                field.InitDefaults();
                int num4 = input.readBits(1) + 1;
                input.skipUnreadedBits();
                field.id = input.readBits(num4 * 8);
                num4 = 2;
                field.criticality = (Criticality)input.readBits(num4);
                input.skipUnreadedBits();
                nBits = 0;
                while (true)
                {
                    switch (input.readBit())
                    {
                        case 0:
                            nBits += input.readBits(7);
                            goto Label_00DD;

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

                                case 1:
                                    input.readBits(2);
                                    nBits += input.readBits(4) * 0x400;
                                    break;
                            }
                            break;
                    }
                }
                Label_00DD:
                num3 = input.Position;
                try
                {
                    field.extensionValue = X2AP_PROTOCOL_EXTENSION.Switcher(field.id, "Extension", input);
                    input.skipUnreadedBits();
                }
                catch (Exception)
                {
                    input.skipUnreadedBits();
                    input.Position = num3;
                    field.extensionValue = input.readOctetString(nBits);
                }
                if (input.Position != (num3 + nBits))
                {
                    input.Position = num3 + nBits;
                }
                return field;
            }
Example #2
0
            public ActivatedCellList_Item Decode(BitArrayInputStream input)
            {
                ActivatedCellList_Item item = new ActivatedCellList_Item();

                item.InitDefaults();
                BitMaskStream stream = (input.ReadBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);

                item.ecgi = ECGI.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    item.iE_Extensions = new List <ProtocolExtensionField>();
                    int nBits = 0x10;
                    int num5  = input.ReadBits(nBits) + 1;
                    for (int i = 0; i < num5; i++)
                    {
                        ProtocolExtensionField field = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        item.iE_Extensions.Add(field);
                    }
                }
                return(item);
            }
Example #3
0
            public ServedCell_Information Decode(BitArrayInputStream input)
            {
                ServedCell_Information information = new ServedCell_Information();

                information.InitDefaults();
                BitMaskStream stream = (input.readBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);

                input.readBit();
                input.skipUnreadedBits();
                information.pCI    = input.readBits(0x10);
                information.cellId = ECGI.PerDecoder.Instance.Decode(input);
                input.skipUnreadedBits();
                information.tAC            = input.readOctetString(2);
                information.broadcastPLMNs = new List <string>();
                int nBits = 3;
                int num5  = input.readBits(nBits) + 1;

                for (int i = 0; i < num5; i++)
                {
                    input.skipUnreadedBits();
                    string item = input.readOctetString(3);
                    information.broadcastPLMNs.Add(item);
                }
                information.eUTRA_Mode_Info = EUTRA_Mode_Info.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    information.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);
                        information.iE_Extensions.Add(field);
                    }
                }
                return(information);
            }
Example #4
0
            public CellType Decode(BitArrayInputStream input)
            {
                CellType type = new CellType();

                type.InitDefaults();
                BitMaskStream stream = (input.ReadBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);
                int           nBits  = (input.ReadBit() == 0) ? 2 : 2;

                type.cell_Size = (Cell_Size)input.ReadBits(nBits);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    type.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);
                        type.iE_Extensions.Add(item);
                    }
                }
                return(type);
            }
Example #5
0
            public CompositeAvailableCapacityGroup Decode(BitArrayInputStream input)
            {
                CompositeAvailableCapacityGroup group = new CompositeAvailableCapacityGroup();

                group.InitDefaults();
                BitMaskStream stream = (input.readBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);

                group.dL_CompositeAvailableCapacity = CompositeAvailableCapacity.PerDecoder.Instance.Decode(input);
                group.uL_CompositeAvailableCapacity = CompositeAvailableCapacity.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    group.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);
                        group.iE_Extensions.Add(item);
                    }
                }
                return(group);
            }
Example #6
0
            public MeasurementFailureCause_Item Decode(BitArrayInputStream input)
            {
                MeasurementFailureCause_Item item = new MeasurementFailureCause_Item();

                item.InitDefaults();
                BitMaskStream stream = (input.ReadBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);

                item.measurementFailedReportCharacteristics = input.ReadBitString(0x20);
                item.cause = Cause.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    item.iE_Extensions = new List <ProtocolExtensionField>();
                    int nBits = 0x10;
                    int num5  = input.ReadBits(nBits) + 1;
                    for (int i = 0; i < num5; i++)
                    {
                        ProtocolExtensionField field = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        item.iE_Extensions.Add(field);
                    }
                }
                return(item);
            }
Example #7
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);

                gummei.gU_Group_ID = GU_Group_ID.PerDecoder.Instance.Decode(input);
                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);
            }
Example #8
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);
            }
Example #9
0
            public AS_SecurityInformation Decode(BitArrayInputStream input)
            {
                AS_SecurityInformation information = new AS_SecurityInformation();

                information.InitDefaults();
                BitMaskStream stream = (input.readBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);

                input.skipUnreadedBits();
                information.key_eNodeB_star      = input.readBitString(0x100);
                information.nextHopChainingCount = input.readBits(3);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    information.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);
                        information.iE_Extensions.Add(item);
                    }
                }
                return(information);
            }
Example #10
0
            public UE_ContextInformation Decode(BitArrayInputStream input)
            {
                UE_ContextInformation information = new UE_ContextInformation();

                information.InitDefaults();
                BitMaskStream stream = (input.ReadBit() != 0) ? new BitMaskStream(input, 4) : new BitMaskStream(input, 4);
                int           num4   = input.ReadBits(2) + 1;

                input.skipUnreadedBits();
                information.mME_UE_S1AP_ID            = input.ReadBits(num4 * 8);
                information.uESecurityCapabilities    = UESecurityCapabilities.PerDecoder.Instance.Decode(input);
                information.aS_SecurityInformation    = AS_SecurityInformation.PerDecoder.Instance.Decode(input);
                information.uEaggregateMaximumBitRate = UEAggregateMaximumBitRate.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    information.subscriberProfileIDforRFP = input.ReadBits(8) + 1;
                }
                input.skipUnreadedBits();
                information.e_RABs_ToBeSetup_List = new List <ProtocolIE_Field>();
                num4 = 8;
                int num5 = input.ReadBits(num4) + 1;

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    information.e_RABs_ToBeSetup_List.Add(item);
                }
                input.skipUnreadedBits();
                int nBits = 0;

                while (true)
                {
                    switch (input.ReadBit())
                    {
                    case 0:
                        nBits += input.ReadBits(7);
                        goto Label_01B1;

                    case 1:
                        switch (input.ReadBit())
                        {
                        case 0:
                            nBits += input.ReadBits(14);
                            goto Label_01B1;

                        case 1:
                            input.ReadBits(2);
                            nBits += input.ReadBits(4) * 0x400;
                            break;
                        }
                        break;
                    }
                }
Label_01B1:
                information.rRC_Context = input.readOctetString(nBits);
                if (stream.Read())
                {
                    information.handoverRestrictionList = HandoverRestrictionList.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    information.locationReportingInformation
                        = LocationReportingInformation.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    information.iE_Extensions = new List <ProtocolExtensionField>();
                    num4 = 0x10;
                    int num7 = input.ReadBits(num4) + 1;
                    for (int j = 0; j < num7; j++)
                    {
                        ProtocolExtensionField field2 = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        information.iE_Extensions.Add(field2);
                    }
                }
                return(information);
            }
Example #11
0
            public HandoverRestrictionList Decode(BitArrayInputStream input)
            {
                int num4;
                HandoverRestrictionList list = new HandoverRestrictionList();

                list.InitDefaults();
                BitMaskStream stream = (input.ReadBit() != 0) ? new BitMaskStream(input, 5) : new BitMaskStream(input, 5);

                input.skipUnreadedBits();
                list.servingPLMN = input.readOctetString(3);
                if (stream.Read())
                {
                    list.equivalentPLMNs = new List <string>();
                    num4 = 4;
                    int num5 = input.ReadBits(num4) + 1;
                    for (int i = 0; i < num5; i++)
                    {
                        input.skipUnreadedBits();
                        string str = input.readOctetString(3);
                        list.equivalentPLMNs.Add(str);
                    }
                }
                if (stream.Read())
                {
                    list.forbiddenTAs = new List <ForbiddenTAs_Item>();
                    num4 = 4;
                    int num7 = input.ReadBits(num4) + 1;
                    for (int j = 0; j < num7; j++)
                    {
                        ForbiddenTAs_Item item = ForbiddenTAs_Item.PerDecoder.Instance.Decode(input);
                        list.forbiddenTAs.Add(item);
                    }
                }
                if (stream.Read())
                {
                    list.forbiddenLAs = new List <ForbiddenLAs_Item>();
                    num4 = 4;
                    int num9 = input.ReadBits(num4) + 1;
                    for (int k = 0; k < num9; k++)
                    {
                        ForbiddenLAs_Item item2 = ForbiddenLAs_Item.PerDecoder.Instance.Decode(input);
                        list.forbiddenLAs.Add(item2);
                    }
                }
                if (stream.Read())
                {
                    num4 = (input.ReadBit() == 0) ? 3 : 3;
                    list.forbiddenInterRATs = (ForbiddenInterRATs)input.ReadBits(num4);
                }
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    list.iE_Extensions = new List <ProtocolExtensionField>();
                    num4 = 0x10;
                    int num11 = input.ReadBits(num4) + 1;
                    for (int m = 0; m < num11; m++)
                    {
                        ProtocolExtensionField field = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        list.iE_Extensions.Add(field);
                    }
                }
                return(list);
            }