예제 #1
0
            public CompleteFailureCauseInformation_Item Decode(BitArrayInputStream input)
            {
                CompleteFailureCauseInformation_Item item = new CompleteFailureCauseInformation_Item();

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

                item.cell_ID = ECGI.PerDecoder.Instance.Decode(input);
                item.measurementFailureCause_List = new List <ProtocolIE_Field>();
                int nBits = 5;
                int num5  = input.readBits(nBits) + 1;

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field field = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    item.measurementFailureCause_List.Add(field);
                }
                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 field2 = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        item.iE_Extensions.Add(field2);
                    }
                }
                return(item);
            }
예제 #2
0
            public ProtocolIE_Field Decode(BitArrayInputStream input)
            {
                ProtocolIE_Field field = new ProtocolIE_Field();

                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();
                int 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:
                long num3 = input.Position;

                try
                {
                    field.value = X2AP_PROTOCOL_IES.Switcher(field.id, "Value", input);
                    input.skipUnreadedBits();
                }
                catch (Exception)
                {
                    input.skipUnreadedBits();
                    input.Position = num3;
                    field.value    = input.readOctetString(nBits);
                }
                if (input.Position != (num3 + nBits))
                {
                    input.Position = num3 + nBits;
                }
                return(field);
            }
예제 #3
0
            public ProtocolIE_Field Decode(BitArrayInputStream input)
            {
                ProtocolIE_Field field = new ProtocolIE_Field();
                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();
                int 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:
                long num3 = input.Position;
                try
                {
                    field.value = X2AP_PROTOCOL_IES.Switcher(field.id, "Value", input);
                    input.skipUnreadedBits();
                }
                catch (Exception)
                {
                    input.skipUnreadedBits();
                    input.Position = num3;
                    field.value = input.readOctetString(nBits);
                }
                if (input.Position != (num3 + nBits))
                {
                    input.Position = num3 + nBits;
                }
                return field;
            }
예제 #4
0
            public static List <ProtocolIE_Field> Value(BitArrayInputStream input)
            {
                input.skipUnreadedBits();
                List <ProtocolIE_Field> list = new List <ProtocolIE_Field>();
                int nBits = 8;
                int num2  = input.ReadBits(nBits) + 1;

                for (int i = 0; i < num2; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    list.Add(item);
                }
                return(list);
            }
예제 #5
0
            public UEContextRelease Decode(BitArrayInputStream input)
            {
                UEContextRelease release = new UEContextRelease();

                release.InitDefaults();
                input.ReadBit();
                input.skipUnreadedBits();
                release.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.ReadBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    release.protocolIEs.Add(item);
                }
                return(release);
            }
예제 #6
0
            public ResourceStatusRequest Decode(BitArrayInputStream input)
            {
                ResourceStatusRequest request = new ResourceStatusRequest();

                request.InitDefaults();
                input.readBit();
                input.skipUnreadedBits();
                request.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.readBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    request.protocolIEs.Add(item);
                }
                return(request);
            }
예제 #7
0
            public SNStatusTransfer Decode(BitArrayInputStream input)
            {
                SNStatusTransfer transfer = new SNStatusTransfer();

                transfer.InitDefaults();
                input.readBit();
                input.skipUnreadedBits();
                transfer.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.readBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    transfer.protocolIEs.Add(item);
                }
                return(transfer);
            }
예제 #8
0
            public HandoverReport Decode(BitArrayInputStream input)
            {
                HandoverReport report = new HandoverReport();

                report.InitDefaults();
                input.ReadBit();
                input.skipUnreadedBits();
                report.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.ReadBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    report.protocolIEs.Add(item);
                }
                return(report);
            }
예제 #9
0
            public HandoverPreparationFailure Decode(BitArrayInputStream input)
            {
                HandoverPreparationFailure failure = new HandoverPreparationFailure();

                failure.InitDefaults();
                input.ReadBit();
                input.skipUnreadedBits();
                failure.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.ReadBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    failure.protocolIEs.Add(item);
                }
                return(failure);
            }
예제 #10
0
            public HandoverRequestAcknowledge Decode(BitArrayInputStream input)
            {
                HandoverRequestAcknowledge acknowledge = new HandoverRequestAcknowledge();

                acknowledge.InitDefaults();
                input.ReadBit();
                input.skipUnreadedBits();
                acknowledge.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.ReadBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    acknowledge.protocolIEs.Add(item);
                }
                return(acknowledge);
            }
예제 #11
0
            public ENBConfigurationUpdate Decode(BitArrayInputStream input)
            {
                ENBConfigurationUpdate update = new ENBConfigurationUpdate();

                update.InitDefaults();
                input.readBit();
                input.skipUnreadedBits();
                update.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.readBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    update.protocolIEs.Add(item);
                }
                return(update);
            }
예제 #12
0
            public LoadInformation Decode(BitArrayInputStream input)
            {
                LoadInformation information = new LoadInformation();

                information.InitDefaults();
                input.readBit();
                input.skipUnreadedBits();
                information.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.readBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    information.protocolIEs.Add(item);
                }
                return(information);
            }
예제 #13
0
            public CellActivationResponse Decode(BitArrayInputStream input)
            {
                CellActivationResponse response = new CellActivationResponse();

                response.InitDefaults();
                input.readBit();
                input.skipUnreadedBits();
                response.protocolIEs = new List <ProtocolIE_Field>();
                const int nBits = 0x10;
                int       num5  = input.readBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    response.protocolIEs.Add(item);
                }
                return(response);
            }
예제 #14
0
            public RLFIndication Decode(BitArrayInputStream input)
            {
                RLFIndication indication = new RLFIndication();

                indication.InitDefaults();
                bool flag = false;

                flag = input.readBit() != 0;
                input.skipUnreadedBits();
                indication.protocolIEs = new List <ProtocolIE_Field>();
                int nBits = 0x10;
                int num5  = input.readBits(nBits);

                for (int i = 0; i < num5; i++)
                {
                    ProtocolIE_Field item = ProtocolIE_Field.PerDecoder.Instance.Decode(input);
                    indication.protocolIEs.Add(item);
                }
                return(indication);
            }
예제 #15
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);
            }