/*
 * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
 * From ASN.1 module "SABP-IEs"
 * 	found in "../../asn1/sabp/SABP-IEs.asn"
 */

#ifndef	_SABP_Service_Area_Identifier_H_
#define	_SABP_Service_Area_Identifier_H_


#include <asn_application.h>

/* Including external dependencies */
#include <OCTET_STRING.h>
#include <constr_SEQUENCE.h>

#ifdef __cplusplus
extern "C" {
#endif

/* SABP_Service-Area-Identifier */
typedef struct SABP_Service_Area_Identifier {
	OCTET_STRING_t	 pLMNidentity;
	OCTET_STRING_t	 lac;
	OCTET_STRING_t	 sac;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SABP_Service_Area_Identifier_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_SABP_Service_Area_Identifier;

#ifdef __cplusplus
}
#endif

#endif	/* _SABP_Service_Area_Identifier_H_ */
#include <asn_internal.h>
