RDMessage.asn 72.7 KB
Newer Older
	allocatedDeviceIDs		[9] SEQUENCE OF NADeviceId OPTIONAL,
	naServiceStatus			[10] UTF8String OPTIONAL,
		-- CSP-specific description of current service status, e.g. "Active", "Ceased", etc.
	registeredICCID			[11] UTF8String OPTIONAL,
	nationalNASubscription	[12] NationalNASubscription OPTIONAL,
	paymentDetails			[13] PaymentDetails OPTIONAL,
	additionalIPAddresses	[14] SEQUENCE OF IPAddressSetOrRangeOrMask OPTIONAL,
	subscriptionType		[15] SubscriptionType OPTIONAL,
		-- Describes the nature of the subscription
	deliveryAddress			[16] AddressInformation OPTIONAL,
	resellerAddress			[17] AddressInformation OPTIONAL,
	otherAddresses			[18] SEQUENCE OF OtherAddress OPTIONAL,
	allocatedDevices		[19] SEQUENCE OF NADevice OPTIONAL
		-- If present, contains device details for all elements from allocatedDeviceIDs
}

NationalNASubscription ::= SEQUENCE
	-- Description of the subscription to a Network Access service
{
	countryCode				[1] UTF8String (SIZE(2)),
		-- see comment in NationalRequestParameters
	...
}

-- ===========================================
-- Definitions of Network Access Service Usage
-- ===========================================

NAServiceUsage ::= SEQUENCE
{
	naAccessTime		[1] GeneralizedTime OPTIONAL,
		-- Time of connection to the NAS
	naAuthID			[2] NAAuthID OPTIONAL,
		-- Username used to obtain network access
	nwAccessType		[3] NwAccessType OPTIONAL,
		-- Type of network access attempted. If not undefined(0), this should be one of the types
		-- supported by the NAS (identified below by naNwElementID)
	naStatus			[4] ENUMERATED
	{
		unknown(0),
		succeeded(1),
			-- Authentication OK and access granted
		failed(2),
			-- Authentication failure (wrong credentials or time out)
		rejected(3),
			-- Rejected by the CSP (e.g. usage limits exceeded)
		...
	} OPTIONAL,
	interval			[5] TimeSpan OPTIONAL,
		-- Start time and end time (duration) of network access. 
	naDeviceId			[6] NADeviceId OPTIONAL,
		-- Device used to access the service
	naNwElementID		[7] NANwElementID OPTIONAL,
		-- Network element (NAS) onto which the naDevice is connected
	naAssignedAddress	[8] SEQUENCE OF NAAssignedAddress OPTIONAL,
		-- IP address assigned by the network access service. May be fixed or dynamic
	location			[9] Location OPTIONAL,
		-- Location of the access (for e.g. GPRS handsets)
	dialUpInformation	[10] DialUpInformation OPTIONAL,
	gprsInformation		[11] GprsInformation OPTIONAL,
	...,
	octetsDownloaded	[12] INTEGER OPTIONAL,
	octetsUploaded		[13] INTEGER OPTIONAL,
	subscriberID		[15] NaSubscriberID OPTIONAL,
		-- Identifier for a known user of this network access
	ePSInformation		[16] EPSInformation OPTIONAL,
	wifiInformation		[17] WifiInformation OPTIONAL,
	addressTranslationRecords[18] SEQUENCE OF AddressTranslationRecord OPTIONAL,
	-- contains extended information about the NAT or PAT operations carried out within this
	-- service usage session
	naDevice			[19] NADevice OPTIONAL
		-- If present, contains the device details for the device referenced in naDeviceID


}



WifiInformation ::= SEQUENCE
{
	bSSID					[1] OCTET STRING (SIZE (6)) OPTIONAL,
		-- The Basic Service Set Identification for the connection.
		-- This is also the MAC address of the access point (the present document assumes 
		-- that records are for infrastructure mode, not ad-hoc mode).
		-- The MAC address of the user is given in the naDeviceID in the structure (one level up) 
	sSID					[2] UTF8String OPTIONAL,
		-- The human-readable Service Set Identifier
		-- It should be noted that this is typically only available on the air interface and so 
		-- is not likely to be logged by CSPs (though may be recorded at a more local level).
		-- Therefore requesting organizations should not expect this to be populated typically.
		-- It is not guaranteed to be unique.
	username				[3] UTF8String OPTIONAL,
	locationOfAccessPoint	[4] Location OPTIONAL, 
		-- Location of the Access Point as lat/long, grid reference or postal address.
		-- Requesting organizations should be aware that Access Points can be moved, sometimes
		-- without the knowledge of the CSP
	authenticationType 			[5] AuthenticationType OPTIONAL,
	additionalAuthenticationInformation 	[6] AdditionalAuthenticationInformation OPTIONAL,
	...,

	accessPointIPAddress			 [7] IPAddress  OPTIONAL,
	accessPointAdditionalDescriptions[8] SEQUENCE OF UTF8String OPTIONAL,
			-- Informal description of location, category or type of access point, 
			-- or a name of the network to which the access point belongs.
	accessPointAdditionalProviders   [9] SEQUENCE OF UTF8String OPTIONAL
			-- For WiFi, there may be other parties involved in hosting or owning the
			-- Access Points, e.g. access point provider or partner providers

}


AuthenticationType ::= ENUMERATED
{
	authenticationBySMS (1),
	    -- Used if authentication arranged through a code sent to mobile
		-- additionalAuthenticationInformation shall contain the phone number
	authenticationByCookie  (2),
	    -- If authentication was granted on the basis of a cookie left from a previous visit to a 
		-- site.
		-- No other mandatory addtionalAuthenticationInformation
	authenticationByMACAddress	(3),
		-- If authentication was granted because the MAC address of the UE was recognised due
		-- to a previous visit. 
		-- additionalAuthenticationInformation shall contain the MAC Address unless it is already 
		-- populated as NADeviceID in this record.
	authenticationByEAPSIM (4),	
		-- If authenticated by EAP SIM see TS 33.234 [X]
		-- additionalAuthenticationInformation shall contain the IMSI
	-- Other varieties of EAP could be added here later, together with any extra information they 
	-- could provide.
	authenticationByUsernameAndPassword (5),
		-- additionalAuthenticationInformation should contain username and password if appropriate
	authenticationByPaymentOrVoucher (6),
		-- additionalAuthenticationInformation should contain Voucher or Payment details 
		-- if appropriate. 
	...
}

AdditionalAuthenticationInformation ::= SEQUENCE
{
	phoneNumber  		[1] PartyNumber OPTIONAL,
	    -- e.g. number to which an SMS was sent
	mACAddress			[2] OCTET STRING (SIZE (6)) OPTIONAL,
	iMSI				[3] IMSI OPTIONAL,
	username			[4] UTF8String OPTIONAL, 
			-- Names supplied are unlikely to be verified
	password			[5] UTF8String OPTIONAL,
			-- Only to be populated if it is both appropriate and available
	paymentReference	[6] UTF8String OPTIONAL,
		-- For example, the number of a voucher that was used in authentication
	...
}



AddressTranslationRecord ::= SEQUENCE
{
	validity 							[1] TimeSpan OPTIONAL,
		-- time at which the address translation started and/or ended
	privateIPAddress 					[2] IPAddress OPTIONAL,
		-- the private IP of the host
	privatePort 						[3] INTEGER OPTIONAL,
		-- the private port of the host
	publicIPAddress						[4] IPAddress OPTIONAL,
		-- the translated IP of the host, i.e. the address known by the remote host 
	publicPort							[5] AddressTranslationPortAssignment OPTIONAL,
		-- the translated port(s) of the host, i.e. the port(s) known by the remote host, if 		   		   applicable
	destinationIPAddress				[6] IPAddress OPTIONAL,
		-- the IP address of the remote host
	destinationPort						[7] INTEGER OPTIONAL,
		-- the port of the remote host
	connectionType						[8] ENUMERATED
	{
		udp (0),
		tcp (1),
		sctp (2),
		other (3),
		...
	} OPTIONAL,
	...
}

AddressTranslationPortAssignment ::= CHOICE
{
	singlePort						[1] INTEGER,
		-- only one port is assigned to the host, that port number is specified here
	portRange						[2] SEQUENCE OF PortRange,
		-- if a range of translated ports is assigned to the host, specify it here
	...
}

PortRange ::= SEQUENCE
{
	-- The range given is inclusive of both ends
	lowerBound		[1] INTEGER OPTIONAL,
	upperBound		[2] INTEGER OPTIONAL,
	...
}

NAEndReason ::= ENUMERATED
{
	unknownReason(0),
	timeout(1),
	userDisconnect(2),
		-- e.g. user logs off
	networkDisconnect(3),
		-- e.g. user's time/credits have been used up
}

NwAccessType ::= ENUMERATED
{
	undefined(0),
	dialUp(1),
		-- DialUp access
	xDSL(2),
		-- DSL access
	cableModem(3),
		-- Cable access
	lAN(4),
		-- LAN access
		-- Wireless LAN access (e.g. hotspot)
	wimax(6),
	mobilePacketData(7),	-- Network access over GSM/3GPP GPRS, UMTS, etc.
	diallingNumber		[1] PartyNumber OPTIONAL,		
		-- Telephone number used for dial-up access
	dialledNumber		[2] PartyNumber OPTIONAL,
		-- Call back number used for dial-up access
	...
}

GprsInformation ::= SEQUENCE
{
	iMSI					[1] IMSI OPTIONAL,
	mSISDN					[2] PartyNumber OPTIONAL,
	sgsnAddress				[3] SEQUENCE OF IPAddress OPTIONAL, 
	ggsnAddress				[4] IPAddress OPTIONAL, 
	pDP-address-allocated	[5] IPAddress OPTIONAL,
	aPN						[6] UTF8String OPTIONAL,
	pDP-type				[7] OCTET STRING (SIZE(2)) OPTIONAL,
	gPRSEvent				[8] GPRSEvent OPTIONAL
		-- format as per 3GPP TS 33.108 [11]
	-- Tag [9] was used in the past and shall not be reused.
}

GPRSEvent ::= ENUMERATED 
{
	pDPContextActivation(1),
	pDPContextDeactivation(4),
	gPRSAttach(5),
	gPRSDetach(6),
		-- sMS ommited from 3GPP TS 33.108 [11],
	pDPContextModification(11),
	servingSystem(12),
EPSInformation ::= SEQUENCE
{
	iMSI 							[1] IMSI OPTIONAL,
	iMSIUnauthenticatedFlag	[2] IMSIUnauthenticatedFlag OPTIONAL,
	mSISDN							[3] PartyNumber OPTIONAL,
	iMEISV							[4] IMEI OPTIONAL,
	s-GWAddress					[5] IPAddress OPTIONAL,
	p-GWAddress					[6] IPAddress OPTIONAL,
	p-GWPLMNIdentifier			[7] P-GWPLMN-ID OPTIONAL,
	aPNNetworkID					[8] AccessPointNameNI OPTIONAL,
	pDP-PDNType					[9] OCTET STRING (SIZE (1))OPTIONAL,
	-- PDN/PDP Type number as defined in 3GPP TS 29.274 Clause 8.34
	pDP-PDNAddress				[10] IPAddress OPTIONAL,
	-- IP address allocated to the PDP context / PDN connection
	-- i.e. IPv4 address when PDP/PDN Type is IPv4 or IPv6 prefix
	-- when PDP/PDN Type is IPv6 or IPv4v6.
	pDP-PDNAddressExtension 	[11] IPAddress OPTIONAL,
	-- IPv4 address of the served IMSI when PDP/PDN type is IPv4v6
	dynamicAddressFlag			[12] DynamicAddressFlag OPTIONAL,
	dynamicAddressFlagExt 		[13] DynamicAddressFlagExt OPTIONAL,
	rATType							[14] INTEGER (0..255), 
	-- RAT Type coding according to 3GPP TS 29.274 clause 8.17
	ePSEvent						[15] EPSEvent OPTIONAL,
	...
}

IMSIUnauthenticatedFlag ::= BOOLEAN
-- TRUE if unauthenticated IMSI vs. FALSE for authenticated IMSI

P-GWPLMN-ID ::= OCTET STRING (SIZE (3))
-- This is a copy from the Tracking Area Identity (TAI) IE 
-- specified in TS 29.274 clause 8.21.4:
--		Bits   8  7  6  5   4  3  2  1 
-- 1st OCTET MCC digit 2	  MCC digit 1
-- 2nd OCTET MNC digit 3  MCC digit 3  
-- 3rd OCTET MNC digit 2  MNC digit 1  

AccessPointNameNI ::= IA5String (SIZE(1..63))
-- Network Identifier part of APN in dot representation. 
-- For example, if the complete APN is
-- 'apn1a.apn1b.apn1c.mnc022.mcc111.gprs'
-- NI is 'apn1a.apn1b.apn1c' 

DynamicAddressFlag ::= BOOLEAN
-- TRUE if the PDP/PDN address is dynamic. 
-- FALSE if IPv4 address is static when PDN type is IPv6 or IPv4v6

DynamicAddressFlagExt ::= BOOLEAN
-- TRUE if IPv4 PDP/PDN address is dynamic, which is allocated
-- during IP CAN bearer activation, initial attach and UE requested
-- PDN connectivity with PDP/PDN type IPv4v6.
-- FALSE if IPv4 address is static.


EPSEvent ::= ENUMERATED 
-- The list of “EPSEvent” below is partly taken from 3GPP TS 33.108
-- EpsHI2Operations from the “EPSEvent ::=ENUMERATED” module
{
    e-UTRANDetach                           (17),
    bearerActivation                        (18),
    bearerModification                      (20),
    bearerDeactivation                      (21),
    trackingAreaUpdate                      (25),
    servingEvolvedPacketSystem              (26),
	...
}

-- ====================================
-- Definitions of Network Access Device
-- ====================================

NADeviceId ::= UTF8String

NADevice ::= SEQUENCE
{
	naDeviceId		[1] NADeviceId OPTIONAL,
		-- Identifier of this device. 
	description		[2] UTF8String OPTIONAL,
		-- Human readable description of device
	location		[3] Location OPTIONAL,
	macAddress		[4] OCTET STRING (SIZE (6)) OPTIONAL,
		-- MAC or ethernet address
	dslID			[5] UTF8String OPTIONAL,
	imei			[6] IMEI OPTIONAL,
	...,
	subscriberID	[7] NaSubscriberID OPTIONAL
	-- format as per 3GPP TS 09.02 [8]
	-- NOTE: When comparing IMEIs, an IMEI can be considered “equal to” the requested IMEI even
	-- if the checksum or software version digits are different or not present.
	-- format as per 3GPP TS 09.02 [8]

-- ======================================
-- Definitions of Message Network element
-- ======================================

NANwElementID ::= UTF8String

NANwElement ::= SEQUENCE
	-- In this context, the network element is more commonly referred to as NAS
{
	validity				[1] TimeSpan OPTIONAL,
		-- Period for which this interval is valid
	naNwElementID			[2] NANwElementID OPTIONAL,
		-- Unique ID of this NAS (Network Access Server)
	naProviderID			[3] NAProviderID OPTIONAL,
	-- Unique identifier of the provider managing this NAS.
	supportedAccessTypes	[4] SEQUENCE OF NwAccessType OPTIONAL,
	location				[5] Location OPTIONAL,
	...
}

IPAddress ::= CHOICE
{
	iPv4BinaryAddress	[1] OCTET STRING (SIZE(4)),
	iPv6BinaryAddress	[2] OCTET STRING (SIZE(16)),
	iPTextAddress		[3] IA5String (SIZE(7..45)),
	addressSetOrRangeOrMask		[1] IPAddressSetOrRangeOrMask OPTIONAL,
	portNumber					[2] INTEGER OPTIONAL,
		-- populated with the outbound port number
		internal(1),
		external(2),
		...
	} OPTIONAL,
	assignedTime				[4] TimeSpan OPTIONAL,
	...,
	destinationAddress			[5] IPAddress OPTIONAL,
		-- used in cases where a single external IP/port pair is translated to multiple internal 
		-- IP/port pairs, with the destination IP/port used to multiplex them
	destinationPort				[6] INTEGER OPTIONAL
		-- used in cases where a single external IP/port pair is translated to multiple internal 
		-- IP/port pairs, with the destination IP/port used to multiplex them
	set		[0] SEQUENCE OF IPAddress,
	range	[1] IPRange,
	mask	[2] IPMask
}

IPRange ::= SEQUENCE 
	-- Things like 172.16.10.0/26
{
	prefix			[0] IPAddress,
	subnetlength	[1] INTEGER (1..128)
}

IPMask ::= SEQUENCE
	-- Things like 172.16.10.0/255.255.255.240
{
	base	[0] IPAddress,
	mask	[1] IPAddress
}

NABillingDetails	::= SEQUENCE
{
	subscriberID		[1] NaSubscriberID OPTIONAL,
	serviceID			[2] UTF8String OPTIONAL,
	billingAddress		[3] ContactDetails OPTIONAL,
	billingIdentifier	[4] BillingIdentifier OPTIONAL,
	billingRecords		[5] SEQUENCE OF BillingRecords OPTIONAL,
	...,
	naTransactionID		[6] UTF8String OPTIONAL,
		-- Unique reference for this transaction/billing record
		-- Details to be defined on a national basis
	naTransactionStatus	[7] UTF8String OPTIONAL
		-- Status of the transaction (i.e. “declined”, “succeeded” etc.)
		-- Details to be defined on a national basis