/*
 * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
 * From ASN.1 module "HNBAP-IEs"
 * 	found in "../../asn1/hnbap/HNBAP-IEs.asn"
 * 	`asn1c -gen-PER`
 */

#ifndef	_Tunnel_Information_H_
#define	_Tunnel_Information_H_


#include <asn_application.h>

/* Including external dependencies */
#include <osmocom/hnbap/IP-Address.h>
#include <osmocom/hnbap/UDP-Port-Number.h>
#include <constr_SEQUENCE.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Forward declarations */
struct IE_Extensions;

/* Tunnel-Information */
typedef struct Tunnel_Information {
	IP_Address_t	 iP_Address;
	UDP_Port_Number_t	*uDP_Port_Number	/* OPTIONAL */;
	struct IE_Extensions	*iE_Extensions	/* OPTIONAL */;
	/*
	 * This type is extensible,
	 * possible extensions are below.
	 */
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} Tunnel_Information_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_Tunnel_Information;

#ifdef __cplusplus
}
#endif

/* Referred external types */
#include <osmocom/hnbap/IE-Extensions.h>

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