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

#ifndef	_IpAddress_H_
#define	_IpAddress_H_


#include <asn_application.h>

/* Including external dependencies */
#include <osmocom/rspro/Ipv4Address.h>
#include <osmocom/rspro/Ipv6Address.h>
#include <constr_CHOICE.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum IpAddress_PR {
	IpAddress_PR_NOTHING,	/* No components present */
	IpAddress_PR_ipv4,
	IpAddress_PR_ipv6
} IpAddress_PR;

/* IpAddress */
typedef struct IpAddress {
	IpAddress_PR present;
	union IpAddress_u {
		Ipv4Address_t	 ipv4;
		Ipv6Address_t	 ipv6;
	} choice;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} IpAddress_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_IpAddress;

#ifdef __cplusplus
}
#endif

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