/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "NGAP-IEs"
 * 	found in "asn.1/Information Element Definitions.asn1"
 * 	`asn1c -pdu=all -fcompound-names -fno-include-deps -findirect-choice
 * -gen-PER -D src`
 */

#include "Ngap_AssociatedQosFlowItem.h"

#include "Ngap_ProtocolExtensionContainer.h"
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
static asn_oer_constraints_t asn_OER_type_Ngap_qosFlowMappingIndication_constr_3
    CC_NOTUSED = {{0, 0}, -1};
static asn_per_constraints_t asn_PER_type_Ngap_qosFlowMappingIndication_constr_3
    CC_NOTUSED = {
        {APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1} /* (0..1,...) */,
        {APC_UNCONSTRAINED, -1, -1, 0, 0},
        0,
        0 /* No PER value map */
};
static const asn_INTEGER_enum_map_t
    asn_MAP_Ngap_qosFlowMappingIndication_value2enum_3[] = {
        {0, 2, "ul"},
        {1, 2, "dl"}
        /* This list is extensible */
};
static const unsigned int asn_MAP_Ngap_qosFlowMappingIndication_enum2value_3[] =
    {
        1, /* dl(1) */
        0  /* ul(0) */
           /* This list is extensible */
};
static const asn_INTEGER_specifics_t
    asn_SPC_Ngap_qosFlowMappingIndication_specs_3 = {
        asn_MAP_Ngap_qosFlowMappingIndication_value2enum_3, /* "tag" => N;
                                                               sorted by tag */
        asn_MAP_Ngap_qosFlowMappingIndication_enum2value_3, /* N => "tag";
                                                               sorted by N */
        2, /* Number of elements in the maps */
        3, /* Extensions before this member */
        1, /* Strict enumeration */
        0, /* Native long size */
        0};
static const ber_tlv_tag_t asn_DEF_Ngap_qosFlowMappingIndication_tags_3[] = {
    (ASN_TAG_CLASS_CONTEXT | (1 << 2)), (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))};
static /* Use -fall-defs-global to expose */
    asn_TYPE_descriptor_t asn_DEF_Ngap_qosFlowMappingIndication_3 = {
        "qosFlowMappingIndication",
        "qosFlowMappingIndication",
        &asn_OP_NativeEnumerated,
        asn_DEF_Ngap_qosFlowMappingIndication_tags_3,
        sizeof(asn_DEF_Ngap_qosFlowMappingIndication_tags_3) /
                sizeof(asn_DEF_Ngap_qosFlowMappingIndication_tags_3[0]) -
            1,                                        /* 1 */
        asn_DEF_Ngap_qosFlowMappingIndication_tags_3, /* Same as above */
        sizeof(asn_DEF_Ngap_qosFlowMappingIndication_tags_3) /
            sizeof(asn_DEF_Ngap_qosFlowMappingIndication_tags_3[0]), /* 2 */
        {&asn_OER_type_Ngap_qosFlowMappingIndication_constr_3,
         &asn_PER_type_Ngap_qosFlowMappingIndication_constr_3,
         NativeEnumerated_constraint},
        0,
        0,                                             /* Defined elsewhere */
        &asn_SPC_Ngap_qosFlowMappingIndication_specs_3 /* Additional specs */
};

asn_TYPE_member_t asn_MBR_Ngap_AssociatedQosFlowItem_1[] = {
    {ATF_NOFLAGS,
     0,
     offsetof(struct Ngap_AssociatedQosFlowItem, qosFlowIdentifier),
     (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
     -1, /* IMPLICIT tag at current level */
     &asn_DEF_Ngap_QosFlowIdentifier,
     0,
     {0, 0, 0},
     0,
     0, /* No default value */
     "qosFlowIdentifier"},
    {ATF_POINTER,
     2,
     offsetof(struct Ngap_AssociatedQosFlowItem, qosFlowMappingIndication),
     (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
     -1, /* IMPLICIT tag at current level */
     &asn_DEF_Ngap_qosFlowMappingIndication_3,
     0,
     {0, 0, 0},
     0,
     0, /* No default value */
     "qosFlowMappingIndication"},
    {ATF_POINTER,
     1,
     offsetof(struct Ngap_AssociatedQosFlowItem, iE_Extensions),
     (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
     -1, /* IMPLICIT tag at current level */
     &asn_DEF_Ngap_ProtocolExtensionContainer_175P13,
     0,
     {0, 0, 0},
     0,
     0, /* No default value */
     "iE-Extensions"},
};
static const int asn_MAP_Ngap_AssociatedQosFlowItem_oms_1[]            = {1, 2};
static const ber_tlv_tag_t asn_DEF_Ngap_AssociatedQosFlowItem_tags_1[] = {
    (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))};
static const asn_TYPE_tag2member_t
    asn_MAP_Ngap_AssociatedQosFlowItem_tag2el_1[] = {
        {(ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0}, /* qosFlowIdentifier */
        {(ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0,
         0}, /* qosFlowMappingIndication */
        {(ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0} /* iE-Extensions */
};
asn_SEQUENCE_specifics_t asn_SPC_Ngap_AssociatedQosFlowItem_specs_1 = {
    sizeof(struct Ngap_AssociatedQosFlowItem),
    offsetof(struct Ngap_AssociatedQosFlowItem, _asn_ctx),
    asn_MAP_Ngap_AssociatedQosFlowItem_tag2el_1,
    3,                                        /* Count of tags in the map */
    asn_MAP_Ngap_AssociatedQosFlowItem_oms_1, /* Optional members */
    2,
    0, /* Root/Additions */
    3, /* First extension addition */
};
asn_TYPE_descriptor_t asn_DEF_Ngap_AssociatedQosFlowItem = {
    "AssociatedQosFlowItem",
    "AssociatedQosFlowItem",
    &asn_OP_SEQUENCE,
    asn_DEF_Ngap_AssociatedQosFlowItem_tags_1,
    sizeof(asn_DEF_Ngap_AssociatedQosFlowItem_tags_1) /
        sizeof(asn_DEF_Ngap_AssociatedQosFlowItem_tags_1[0]), /* 1 */
    asn_DEF_Ngap_AssociatedQosFlowItem_tags_1, /* Same as above */
    sizeof(asn_DEF_Ngap_AssociatedQosFlowItem_tags_1) /
        sizeof(asn_DEF_Ngap_AssociatedQosFlowItem_tags_1[0]), /* 1 */
    {0, 0, SEQUENCE_constraint},
    asn_MBR_Ngap_AssociatedQosFlowItem_1,
    3,                                          /* Elements count */
    &asn_SPC_Ngap_AssociatedQosFlowItem_specs_1 /* Additional specs */
};
