Пример #1
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));
            }
Пример #2
0
            public UESecurityCapabilities Decode(BitArrayInputStream input)
            {
                UESecurityCapabilities capabilities = new UESecurityCapabilities();

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

                input.readBit();
                capabilities.encryptionAlgorithms = input.readBitString(0x10);
                input.readBit();
                capabilities.integrityProtectionAlgorithms = input.readBitString(0x10);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    capabilities.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);
                        capabilities.iE_Extensions.Add(item);
                    }
                }
                return(capabilities);
            }
Пример #3
0
            public X2TNLConfigurationInfo Decode(BitArrayInputStream input)
            {
                X2TNLConfigurationInfo info = new X2TNLConfigurationInfo();

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

                info.eNBX2TransportLayerAddresses = new List <string>();
                int nBits = 1;
                int num5  = input.readBits(nBits) + 1;

                for (int i = 0; i < num5; i++)
                {
                    input.readBit();
                    int num = input.readBits(8);
                    input.skipUnreadedBits();
                    string item = input.readBitString(num + 1);
                    info.eNBX2TransportLayerAddresses.Add(item);
                }
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    info.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);
                        info.iE_Extensions.Add(field);
                    }
                }
                return(info);
            }
Пример #4
0
            public Bearers_SubjectToStatusTransfer_Item Decode(BitArrayInputStream input)
            {
                Bearers_SubjectToStatusTransfer_Item item = new Bearers_SubjectToStatusTransfer_Item();

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

                input.readBit();
                item.e_RAB_ID      = input.readBits(4);
                item.uL_COUNTvalue = COUNTvalue.PerDecoder.Instance.Decode(input);
                item.dL_COUNTvalue = COUNTvalue.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    item.receiveStatusofULPDCPSDUs = input.readBitString(0x1000);
                }
                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);
            }
Пример #5
0
            public Neighbour_Information_Element Decode(BitArrayInputStream input)
            {
                Neighbour_Information_Element element = new Neighbour_Information_Element();

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

                element.eCGI = ECGI.PerDecoder.Instance.Decode(input);
                input.readBit();
                input.skipUnreadedBits();
                element.pCI = input.readBits(0x10);
                int nBits = input.readBits(1) + 1;

                input.skipUnreadedBits();
                element.eARFCN = input.readBits(nBits * 8);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    element.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);
                        element.iE_Extensions.Add(item);
                    }
                }
                return(element);
            }
Пример #6
0
            public Cause Decode(BitArrayInputStream input)
            {
                int   num4;
                Cause cause = new Cause();

                cause.InitDefaults();
                input.readBit();
                switch (input.readBits(2))
                {
                case 0:
                    num4 = (input.readBit() == 0) ? 5 : 5;
                    cause.radioNetwork = (CauseRadioNetwork)input.readBits(num4);
                    return(cause);

                case 1:
                    num4            = 1;
                    cause.transport = (CauseTransport)input.readBits(num4);
                    return(cause);

                case 2:
                    num4           = (input.readBit() == 0) ? 3 : 3;
                    cause.protocol = (CauseProtocol)input.readBits(num4);
                    return(cause);

                case 3:
                    num4       = (input.readBit() == 0) ? 3 : 3;
                    cause.misc = (CauseMisc)input.readBits(num4);
                    return(cause);
                }
                throw new Exception(GetType().Name + ":NoChoice had been choose");
            }
Пример #7
0
            public E_RABs_Admitted_Item Decode(BitArrayInputStream input)
            {
                E_RABs_Admitted_Item item = new E_RABs_Admitted_Item();

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

                input.readBit();
                item.e_RAB_ID = input.readBits(4);
                if (stream.Read())
                {
                    item.uL_GTP_TunnelEndpoint = GTPtunnelEndpoint.PerDecoder.Instance.Decode(input);
                }
                if (stream.Read())
                {
                    item.dL_GTP_TunnelEndpoint = GTPtunnelEndpoint.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);
            }
Пример #8
0
            public E_RABToBeSetupItemHOReq Decode(BitArrayInputStream input)
            {
                E_RABToBeSetupItemHOReq req = new E_RABToBeSetupItemHOReq();

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

                input.readBit();
                req.e_RAB_ID = input.readBits(4);
                input.readBit();
                int num = input.readBits(8);

                input.skipUnreadedBits();
                req.transportLayerAddress = input.readBitString(num + 1);
                input.skipUnreadedBits();
                req.gTP_TEID = input.readOctetString(4);
                req.e_RABlevelQosParameters = E_RABLevelQoSParameters.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    req.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);
                        req.iE_Extensions.Add(item);
                    }
                }
                return(req);
            }
Пример #9
0
            public RelativeNarrowbandTxPower Decode(BitArrayInputStream input)
            {
                RelativeNarrowbandTxPower power = new RelativeNarrowbandTxPower();

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

                input.readBit();
                int num = input.readBits(7);

                input.skipUnreadedBits();
                power.rNTP_PerPRB = input.readBitString(num + 6);
                int nBits = (input.readBit() == 0) ? 4 : 4;

                power.rNTP_Threshold = (RNTP_Threshold)input.readBits(nBits);
                nBits = (input.readBit() == 0) ? 2 : 2;
                power.numberOfCellSpecificAntennaPorts = (numberOfCellSpecificAntennaPorts_Enum)input.readBits(nBits);
                power.p_B = input.readBits(2);
                power.pDCCH_InterferenceImpact = input.readBits(3);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    power.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);
                        power.iE_Extensions.Add(item);
                    }
                }
                return(power);
            }
Пример #10
0
            public TimeSynchronizationInfo Decode(BitArrayInputStream input)
            {
                TimeSynchronizationInfo info = new TimeSynchronizationInfo();

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

                input.readBit();
                info.stratumLevel = input.readBits(2);
                int nBits = 1;

                info.synchronizationStatus = (SynchronizationStatus)input.readBits(nBits);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    info.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);
                        info.iE_Extensions.Add(item);
                    }
                }
                return(info);
            }
Пример #11
0
            public GTPtunnelEndpoint Decode(BitArrayInputStream input)
            {
                GTPtunnelEndpoint endpoint = new GTPtunnelEndpoint();

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

                input.readBit();
                int num = input.readBits(8);

                input.skipUnreadedBits();
                endpoint.transportLayerAddress = input.readBitString(num + 1);
                input.skipUnreadedBits();
                endpoint.gTP_TEID = input.readOctetString(4);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    endpoint.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);
                        endpoint.iE_Extensions.Add(item);
                    }
                }
                return(endpoint);
            }
Пример #12
0
            public RequestType Decode(BitArrayInputStream input)
            {
                RequestType type = new RequestType();

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

                type.eventType  = (EventType)input.readBits(nBits);
                nBits           = 1;
                type.reportArea = (ReportArea)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);
            }
Пример #13
0
            public UplinkPowerControlDedicatedSCell_r10 Decode(BitArrayInputStream input)
            {
                UplinkPowerControlDedicatedSCell_r10 _r = new UplinkPowerControlDedicatedSCell_r10();

                _r.InitDefaults();
                BitMaskStream stream  = new BitMaskStream(input, 1);
                BitMaskStream stream2 = new BitMaskStream(input, 1);

                _r.p0_UE_PUSCH_r10 = input.readBits(4) + -8;
                int nBits = 1;

                _r.deltaMCS_Enabled_r10    = (deltaMCS_Enabled_r10_Enum)input.readBits(nBits);
                _r.accumulationEnabled_r10 = input.readBit() == 1;
                _r.pSRS_Offset_r10         = input.readBits(4);
                if (stream2.Read())
                {
                    _r.pSRS_OffsetAp_r10 = input.readBits(4);
                }
                if (stream.Read())
                {
                    nBits = (input.readBit() == 0) ? 4 : 4;
                    _r.filterCoefficient_r10 = (FilterCoefficient)input.readBits(nBits);
                }
                nBits = 1;
                _r.pathlossReferenceLinking_r10 = (pathlossReferenceLinking_r10_Enum)input.readBits(nBits);
                return(_r);
            }
Пример #14
0
            public ConnEstFailReport_r11 Decode(BitArrayInputStream input)
            {
                ConnEstFailReport_r11 _r = new ConnEstFailReport_r11();

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

                _r.failedCellId_r11 = CellGlobalIdEUTRA.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    _r.locationInfo_r11 = LocationInfo_r10.PerDecoder.Instance.Decode(input);
                }
                _r.measResultFailedCell_r11 = measResultFailedCell_r11_Type.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    _r.measResultNeighCells_r11 = measResultNeighCells_r11_Type.PerDecoder.Instance.Decode(input);
                }
                _r.numberOfPreamblesSent_r11 = input.readBits(8) + 1;
                _r.contentionDetected_r11    = input.readBit() == 1;
                _r.maxTxPowerReached_r11     = input.readBit() == 1;
                _r.timeSinceFailure_r11      = input.readBits(0x12);
                if (stream.Read())
                {
                    _r.measResultListEUTRA_v1130 = new List <MeasResult2EUTRA_v9e0>();
                    int nBits = 3;
                    int num3  = input.readBits(nBits) + 1;
                    for (int i = 0; i < num3; i++)
                    {
                        MeasResult2EUTRA_v9e0 item = MeasResult2EUTRA_v9e0.PerDecoder.Instance.Decode(input);
                        _r.measResultListEUTRA_v1130.Add(item);
                    }
                }
                return(_r);
            }
Пример #15
0
            public E_RABs_ToBeSetup_Item Decode(BitArrayInputStream input)
            {
                int num4;
                E_RABs_ToBeSetup_Item item = new E_RABs_ToBeSetup_Item();

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

                input.readBit();
                item.e_RAB_ID = input.readBits(4);
                item.e_RAB_Level_QoS_Parameters = E_RAB_Level_QoS_Parameters.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    num4 = 1;
                    item.dL_Forwarding = (DL_Forwarding)input.readBits(num4);
                }
                item.uL_GTPtunnelEndpoint = GTPtunnelEndpoint.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    item.iE_Extensions = new List <ProtocolExtensionField>();
                    num4 = 0x10;
                    int num5 = input.readBits(num4) + 1;
                    for (int i = 0; i < num5; i++)
                    {
                        ProtocolExtensionField field = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        item.iE_Extensions.Add(field);
                    }
                }
                return(item);
            }
Пример #16
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);
            }
Пример #17
0
            public TDD_Info Decode(BitArrayInputStream input)
            {
                TDD_Info info = new TDD_Info();

                info.InitDefaults();
                BitMaskStream stream = (input.readBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);
                int           nBits  = input.readBits(1) + 1;

                input.skipUnreadedBits();
                info.eARFCN = input.readBits(nBits * 8);
                nBits       = (input.readBit() == 0) ? 3 : 3;
                info.transmission_Bandwidth = (Transmission_Bandwidth)input.readBits(nBits);
                nBits = (input.readBit() == 0) ? 3 : 3;
                info.subframeAssignment   = (SubframeAssignment)input.readBits(nBits);
                info.specialSubframe_Info = SpecialSubframe_Info.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    info.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);
                        info.iE_Extensions.Add(item);
                    }
                }
                return(info);
            }
Пример #18
0
            public MBSFN_Subframe_Info Decode(BitArrayInputStream input)
            {
                MBSFN_Subframe_Info info = new MBSFN_Subframe_Info();

                info.InitDefaults();
                BitMaskStream stream = (input.readBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);
                int           nBits  = (input.readBit() == 0) ? 3 : 3;

                info.radioframeAllocationPeriod = (RadioframeAllocationPeriod)input.readBits(nBits);
                input.readBit();
                info.radioframeAllocationOffset = input.readBits(3);
                info.subframeAllocation         = SubframeAllocation.PerDecoder.Instance.Decode(input);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    info.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);
                        info.iE_Extensions.Add(item);
                    }
                }
                return(info);
            }
Пример #19
0
            public SpecialSubframe_Info Decode(BitArrayInputStream input)
            {
                SpecialSubframe_Info info = new SpecialSubframe_Info();

                info.InitDefaults();
                BitMaskStream stream = (input.readBit() != 0) ? new BitMaskStream(input, 1) : new BitMaskStream(input, 1);
                int           nBits  = (input.readBit() == 0) ? 4 : 4;

                info.specialSubframePatterns = (SpecialSubframePatterns)input.readBits(nBits);
                nBits = 1;
                info.cyclicPrefixDL = (CyclicPrefixDL)input.readBits(nBits);
                nBits = 1;
                info.cyclicPrefixUL = (CyclicPrefixUL)input.readBits(nBits);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    info.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);
                        info.iE_Extensions.Add(item);
                    }
                }
                return(info);
            }
Пример #20
0
            public CompositeAvailableCapacity Decode(BitArrayInputStream input)
            {
                CompositeAvailableCapacity capacity = new CompositeAvailableCapacity();

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

                if (stream.Read())
                {
                    input.readBit();
                    capacity.cellCapacityClassValue = input.readBits(7) + 1;
                }
                capacity.capacityValue = input.readBits(7);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    capacity.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);
                        capacity.iE_Extensions.Add(item);
                    }
                }
                return(capacity);
            }
Пример #21
0
            public PRACH_Configuration Decode(BitArrayInputStream input)
            {
                PRACH_Configuration configuration = new PRACH_Configuration();

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

                input.skipUnreadedBits();
                configuration.rootSequenceIndex    = input.readBits(0x10);
                configuration.zeroCorrelationIndex = input.readBits(4);
                configuration.highSpeedFlag        = input.readBit() == 1;
                configuration.prach_FreqOffset     = input.readBits(7);
                if (stream.Read())
                {
                    configuration.prach_ConfigIndex = input.readBits(6);
                }
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    configuration.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);
                        configuration.iE_Extensions.Add(item);
                    }
                }
                return(configuration);
            }
Пример #22
0
            public UL_HighInterferenceIndicationInfo_Item Decode(BitArrayInputStream input)
            {
                UL_HighInterferenceIndicationInfo_Item item = new UL_HighInterferenceIndicationInfo_Item();

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

                item.target_Cell_ID = ECGI.PerDecoder.Instance.Decode(input);
                input.readBit();
                int num = input.readBits(7);

                input.skipUnreadedBits();
                item.ul_interferenceindication = input.readBitString(num + 1);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    item.iE_Extensions = new List <ProtocolExtensionField>();
                    const 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);
            }
Пример #23
0
            public HWLoadIndicator Decode(BitArrayInputStream input)
            {
                HWLoadIndicator indicator = new HWLoadIndicator();

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

                indicator.dLHWLoadIndicator = (LoadIndicator)input.readBits(nBits);
                nBits = (input.readBit() == 0) ? 2 : 2;
                indicator.uLHWLoadIndicator = (LoadIndicator)input.readBits(nBits);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    indicator.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);
                        indicator.iE_Extensions.Add(item);
                    }
                }
                return(indicator);
            }
Пример #24
0
            public E_RABToBeSwitchedULItem Decode(BitArrayInputStream input)
            {
                E_RABToBeSwitchedULItem item = new E_RABToBeSwitchedULItem();

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

                input.readBit();
                item.e_RAB_ID = input.readBits(4);
                input.readBit();
                int num = input.readBits(8);

                input.skipUnreadedBits();
                item.transportLayerAddress = input.readBitString(num + 1);
                input.skipUnreadedBits();
                item.gTP_TEID = input.readOctetString(4);
                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);
            }
Пример #25
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.e_UTRAN_Trace_ID  = 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);
            }
Пример #26
0
            public E_RABToBeSetupItemBearerSUReq Decode(BitArrayInputStream input)
            {
                E_RABToBeSetupItemBearerSUReq req = new E_RABToBeSetupItemBearerSUReq();

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

                input.readBit();
                req.e_RAB_ID = input.readBits(4);
                req.e_RABlevelQoSParameters = E_RABLevelQoSParameters.PerDecoder.Instance.Decode(input);
                input.readBit();
                int nBits = input.readBits(8);

                input.skipUnreadedBits();
                req.transportLayerAddress = input.readBitString(nBits + 1);
                input.skipUnreadedBits();
                req.gTP_TEID = input.readOctetString(4);
                input.skipUnreadedBits();
                nBits = 0;
                while (true)
                {
                    switch (input.readBit())
                    {
                    case 0:
                        nBits += input.readBits(7);
                        goto Label_0130;

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

                        case 1:
                            input.readBits(2);
                            nBits += input.readBits(4) * 0x400;
                            break;
                        }
                        break;
                    }
                }
Label_0130:
                req.nAS_PDU = input.readOctetString(nBits);
                if (stream.Read())
                {
                    input.skipUnreadedBits();
                    req.iE_Extensions = new List <ProtocolExtensionField>();
                    int num4 = 0x10;
                    int num5 = input.readBits(num4) + 1;
                    for (int i = 0; i < num5; i++)
                    {
                        ProtocolExtensionField item = ProtocolExtensionField.PerDecoder.Instance.Decode(input);
                        req.iE_Extensions.Add(item);
                    }
                }
                return(req);
            }
Пример #27
0
            public PhyLayerParameters Decode(BitArrayInputStream input)
            {
                PhyLayerParameters parameters = new PhyLayerParameters();

                parameters.InitDefaults();
                parameters.ue_TxAntennaSelectionSupported = input.readBit() == 1;
                parameters.ue_SpecificRefSigsSupported    = input.readBit() == 1;
                return(parameters);
            }
Пример #28
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);
            }
Пример #29
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);
            }
            public UL_ReferenceSignalsPUSCH Decode(BitArrayInputStream input)
            {
                UL_ReferenceSignalsPUSCH spusch = new UL_ReferenceSignalsPUSCH();

                spusch.InitDefaults();
                spusch.groupHoppingEnabled    = input.readBit() == 1;
                spusch.groupAssignmentPUSCH   = input.readBits(5);
                spusch.sequenceHoppingEnabled = input.readBit() == 1;
                spusch.cyclicShift            = input.readBits(3);
                return(spusch);
            }