Commit 8343b3ab authored by Mark Canterbury's avatar Mark Canterbury
Browse files

Merge branch 'cr/102657/0141' into 'meeting/LI61'

TS 102 657 CR0141 - Enhancement related to Edge Computing in TS 102 657

See merge request !26
parents 4d3521f5 50247f33
Loading
Loading
Loading
Loading
Loading
+170 −0
Original line number Diff line number Diff line
@@ -2269,6 +2269,176 @@ NetworkAccessRecord::= CHOICE
	...
}


EdgeComputingRecord ::= CHOICE
{
	edgeComputingSubscriber		                [1] EdgeComputingSubscriber,
	edgeComputingApplicationBillingDetails	    [2] EdgeComputingApplicationBillingDetails,
	edgeComputingApplicationUsage	            [3] EdgeComputingApplicationUsage,
	edgeComputingDevice			                [4] EdgeComputingDevice
}

-- ==============================
-- Definitions of Edge Computing Subscriber Data
-- ==============================

EdgeComputingSubscriber ::= SEQUENCE
{
	subscriberID						   [1] EdgeComputingSubscriberID OPTIONAL,
		-- unique identifier for this subscriber, i.e., EECID
	genericSubscriberInfo                  [2] GenericSubscriberInfo OPTIONAL,
		-- generic personal information about this subscriber
	edgeComputingSubscriberInfo            [3] UTF8String OPTIONAL,
    subscribedEdgeComputingApplications    [4] SEQUENCE OF SubscribedEdgeComputingApplications OPTIONAL
		-- a subscriber may have more than one edge computing applications listed against them
}

EdgeComputingSubscriberID ::= UTF8String
	-- unique identifier for this subscriber, i.e., EECID

SubscribedEdgeComputingApplications ::= SEQUENCE
{
	edgeComputingApplicationID    [1] UTF8String OPTIONAL,
		-- Unique identifier for this application within the edge ASP
	providerID                    [2] UTF8String OPTIONAL,
		-- Unique identifier for the edge ASP
	timespan                      [3] TimeSpan OPTIONAL,
		-- Start and end data, if applicable, of the subscription
	registeredIdentifiers         [4] SEQUENCE OF UTF8String OPTIONAL,
		-- The set of identifiers registered for this application
	edgeComputingApplicationType  [5] UTF8String OPTIONAL,
	installationAddress           [6] AddressInformation OPTIONAL,
		-- installation address, if different from the registered address
	connectionDate                [7] GeneralizedTime OPTIONAL,
		-- Date the subscriber was actually connected
		-- (May differ from the start of subscription)
	iMSI                          [8] IMSI OPTIONAL,
    sUPI                          [9] SUPI OPTIONAL,
    gPSI                          [10] GPSI OPTIONAL,
	lineStatus                    [11] UTF8String OPTIONAL,
		-- Edge ASP-specific description of current line status,
		-- e.g. "Active", "Ceased", etc.
	paymentDetails                [12] PaymentDetails OPTIONAL,
	subscriptionType              [13] SubscriptionType OPTIONAL,
		-- Describes the nature of the subscription
	deliveryAddress               [14] AddressInformation OPTIONAL,
	resellerAddress               [15] AddressInformation OPTIONAL,
	otherAddresses                [16] SEQUENCE OF OtherAddress OPTIONAL,
	orderTime                     [17] GeneralizedTime OPTIONAL,
		-- Time when the subscribed edge computing application was ordered by the user
	allocatedDeviceIDs            [18] SEQUENCE OF EdgeComputingDeviceID OPTIONAL,
	paymentTransactions           [19] SEQUENCE OF EdgeComputingApplicationBillingRecords OPTIONAL
}


-- =================================
-- Definitions of Edge Computing Application Usage Data
-- =================================

EdgeComputingApplicationUsage ::= SEQUENCE
{
	subscriberID                        [1] EdgeComputingSubscriberID OPTIONAL,
	communicationTime                   [2] TimeSpan OPTIONAL,
		-- Time and duration of the edge computing application session.
	octetsSent                          [3] INTEGER OPTIONAL,
    octetsReceived                      [4] INTEGER OPTIONAL,
    reasonCause                         [5] UTF8String OPTIONAL,
		-- cause for application session termination
	qualityOfService                    [6] QualityOfService OPTIONAL,
	edgeComputingApplicationID          [7] UTF8String OPTIONAL,
	providerID       				    [8] UTF8String OPTIONAL,
	cdrNumber						    [9] UTF8String OPTIONAL, -- as per ASP defined format
	clientIP						    [10] IPAddress OPTIONAL,
	edgeApplicationServersInfo          [11] SEQUENCE OF EdgeApplicationServerInfo
}

EdgeApplicationServerInfo ::= SEQUENCE
{
	edgeApplicationServerID                 [1] UTF8String OPTIONAL, 
    edgeApplicationServerIP                 [2] IPAddress OPTIONAL,
    edgeApplicationServerLocation           [3] Location OPTIONAL,
    edgeApplicationServerVirtualResources   [4] EdgeApplicationServerVirtualResources OPTIONAL,
    serviceContinuity                       [5] BOOLEAN OPTIONAL
}

EdgeApplicationServerVirtualResources ::= SEQUENCE
{
    meanVirtualCPUUsage         [1] REAL OPTIONAL,
    meanVirtualMemoryUsage      [2] REAL OPTIONAL,
    meanVirtualDiskUsage        [3] REAL OPTIONAL,
    durationStartTime           [4] GeneralizedTime OPTIONAL,
    durationEndTime             [5] GeneralizedTime OPTIONAL
}

-- ==============================
-- Definitions of Edge Computing Billing Data
-- ==============================

EdgeComputingApplicationBillingDetails ::= SEQUENCE
{
	subscriberID						[1] EdgeComputingSubscriberID OPTIONAL,
	edgeComputingApplicationID		    [2] UTF8String OPTIONAL,
	billingAddress						[3] ContactDetails OPTIONAL,
	billingIdentifier					[4] EdgeComputingBillingIdentifier OPTIONAL,
	billingRecords						[5] SEQUENCE OF EdgeComputingApplicationBillingRecords OPTIONAL,
	edgeComputingBillingAddress	        [6] EdgeComputingBillingAddress OPTIONAL,
	copyOfBill							[7] SEQUENCE OF File OPTIONAL
}

EdgeComputingBillingAddress ::= SEQUENCE
{
	addressSuppliedTime			[1] GeneralizedTime OPTIONAL,
	name						[2] PersonName OPTIONAL,
	address						[3] AddressInformation OPTIONAL
}

EdgeComputingBillingIdentifier ::= OCTET STRING
	-- Used to correlate billing information
	-- useful if the bill-payer is not the subscriber, e.g. company mobiles

EdgeComputingApplicationBillingRecords ::= SEQUENCE
{
	time								[1] GeneralizedTime OPTIONAL,
	place								[2] UTF8String OPTIONAL,
	amount								[3] REAL OPTIONAL,
	currency							[4] UTF8String (SIZE(3)) OPTIONAL,
		-- as per ISO 4217 [5]
	method								[5] UTF8String OPTIONAL,
		-- i.e. credit card etc.
	edgeComputingTransactionID			[6] UTF8String OPTIONAL,
		-- Unique reference for this transaction/billing record
		-- Details to be defined on a national basis
	edgeComputingTransactionStatus		[7] UTF8String OPTIONAL
		-- Status of the transaction (i.e. "declined", "succeeded", etc.)
		-- Details to be defined on a national bases
}

-- =======================
-- Definitions of Edge Computing Device Data
-- =======================

EdgeComputingDevice ::= SEQUENCE
{
	deviceIDType				[1] ENUMERATED
		-- Type of identifier for telephony device
	{
		unknown(0),
		imei(1),
		macAddress(2),
		...
	} OPTIONAL,
	edgeComputingDeviceID		[2] EdgeComputingDeviceID OPTIONAL,
		-- Unique identifier for this device according to type of identifier
	subscriberID				[3] EdgeComputingSubscriberID OPTIONAL
		-- Identifier for a known user of this equipment.
		-- Usage of this parameter is subject to national legislation.
	
}

EdgeComputingDeviceID ::= OCTET STRING
	-- A unique identifier for the edge computing device. For example, the IMEI number
	-- of a mobile handset

-- =============================================
-- Definitions of Network Access Subscriber Data
-- =============================================
+185 −0
Original line number Diff line number Diff line
@@ -3317,4 +3317,189 @@
			<xsd:maxLength value="22"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="EdgeComputingRecord">
        <xsd:choice>
            <xsd:element name="edgeComputingSubscriber" type="EdgeComputingSubscriber"/>
            <xsd:element name="edgeComputingApplicationBillingDetails" type="EdgeComputingApplicationBillingDetails"/>
            <xsd:element name="edgeComputingApplicationUsage" type="EdgeComputingApplicationUsage"/>
            <xsd:element name="edgeComputingDevice" type="EdgeComputingDevice"/>
        </xsd:choice>
    </xsd:complexType>

    <xsd:complexType name="EdgeComputingSubscriber">
        <xsd:sequence>
            <xsd:element name="subscriberID" type="EdgeComputingSubscriberID" minOccurs="0"/>
            <xsd:element name="genericSubscriberInfo" type="GenericSubscriberInfo" minOccurs="0"/>
            <xsd:element name="edgeComputingSubscriberInfo" type="EdgeComputingSubscriberInfo" minOccurs="0"/>
            <xsd:element name="subscribedEdgeComputingApplications" minOccurs="0">
                <xsd:complexType>
                    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
                        <xsd:element name="SubscribedEdgeComputingApplications" type="SubscribedEdgeComputingApplications"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
		</xsd:sequence>
	</xsd:complexType>
    <xsd:simpleType name="EdgeComputingSubscriberID">
        <xsd:restriction base="xsd:string"/>
    </xsd:simpleType>
    <xsd:simpleType name="EdgeComputingSubscriberInfo">
                <xsd:restriction base="xsd:string"/>
    </xsd:simpleType>

    <xsd:complexType name="SubscribedEdgeComputingApplications">
        <xsd:sequence>
            <xsd:element name="edgeComputingApplicationID" type="xsd:string" minOccurs="0"/>
            <xsd:element name="providerID" type="xsd:string" minOccurs="0"/>
            <xsd:element name="timeSpan" type="TimeSpan" minOccurs="0"/>
            <xsd:element name="registeredIdentifiers" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="edgeComputingApplicationType" type="xsd:string" minOccurs="0"/>
            <xsd:element name="installationAddress" type="AddressInformation" minOccurs="0"/>
            <xsd:element name="connectionDate" type="GeneralizedTime" minOccurs="0"/>
            <xsd:element name="iMSI" type="IMSI" minOccurs="0"/>
            <xsd:element name="sUPI" type="SUPI" minOccurs="0"/>
            <xsd:element name="gPSI" type="GPSI" minOccurs="0"/>
            <xsd:element name="lineStatus" type="xsd:string" minOccurs="0"/>
            <xsd:element name="paymentDetails" type="PaymentDetails" minOccurs="0"/>
            <xsd:element name="subscriptionType" type="SubscriptionType" minOccurs="0"/>
            <xsd:element name="deliveryAddress" type="AddressInformation" minOccurs="0"/>
            <xsd:element name="resellerAddress" type="AddressInformation" minOccurs="0"/>
            <xsd:element name="otherAddresses" minOccurs="0">
                <xsd:complexType>
                    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
                        <xsd:element name="OtherAddress" type="OtherAddress"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="orderTime" type="GeneralizedTime" minOccurs="0"/>
            <xsd:element name="allocatedDeviceIDs" minOccurs="0">
                <xsd:complexType>
                    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
                        <xsd:element name="EdgeComputingDeviceID" type="EdgeComputingDeviceID"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="paymentTransactions" minOccurs="0">
                <xsd:complexType>
                    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
                        <xsd:element name="EdgeComputingApplicationBillingRecords" type="EdgeComputingApplicationBillingRecords"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="EdgeComputingApplicationUsage">
        <xsd:sequence>
           <xsd:element name="subscriberID" type="EdgeComputingSubscriberID" minOccurs="0"/>
            <xsd:element name="communicationTime" type="TimeSpan" minOccurs="0"/>
            <xsd:element name="octetsSent" type="xsd:int" minOccurs="0"/>
            <xsd:element name="octetsReceived" type="xsd:int" minOccurs="0"/>
            <xsd:element name="reasonCause" type="xsd:string" minOccurs="0"/>
            <xsd:element name="qualityOfService" type="QualityOfService" minOccurs="0"/>
            <xsd:element name="edgeComputingApplicationID" type="xsd:string" minOccurs="0"/>
            <xsd:element name="providerID" type="xsd:string" minOccurs="0"/>
            <xsd:element name="cdrNumber" type="xsd:string" minOccurs="0"/>
            <xsd:element name="clientIP" type="IPAddress" minOccurs="0"/>
            <xsd:element name="edgeApplicationServersInfo" minOccurs="0">
                <xsd:complexType>
                    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
                        <xsd:element name="EdgeApplicationServerInfo" type="EdgeApplicationServerInfo"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="EdgeApplicationServerInfo">
        <xsd:sequence>
            <xsd:element name="edgeApplicationServerID" type="xsd:string" minOccurs="0"/>
            <xsd:element name="edgeApplicationServerIP" type="IPAddress" minOccurs="0"/>
            <xsd:element name="edgeApplicationServerLocation" type="Location" minOccurs="0"/>
            <xsd:element name="edgeApplicationServerVirtualResources" type="EdgeApplicationServerVirtualResources" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="EdgeApplicationServerVirtualResources">
        <xsd:sequence>
            <xsd:element name="meanVirtualCPUUsage" type="xsd:float" minOccurs="0"/>
            <xsd:element name="meanVirtualMemoryUsage" type="xsd:float" minOccurs="0"/>
            <xsd:element name="meanVirtualDiskUsage" type="xsd:float" minOccurs="0"/>
            <xsd:element name="durationStartTime" type="GeneralizedTime" minOccurs="0"/>
            <xsd:element name="durationEndTime" type="GeneralizedTime" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="EdgeComputingApplicationBillingDetails">
        <xsd:sequence>
            <xsd:element name="subscriberID" type="EdgeComputingSubscriberID" minOccurs="0"/>
            <xsd:element name="edgeComputingApplicationID" type="xsd:string" minOccurs="0"/>
            <xsd:element name="billingAddress" type="ContactDetails" minOccurs="0"/>
            <xsd:element name="billingIdentifier" type="EdgeComputingBillingIdentifier" minOccurs="0"/>
            <xsd:element name="billingRecords" minOccurs="0">
                <xsd:complexType>
                    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
                        <xsd:element name="EdgeComputingApplicationBillingRecords" type="EdgeComputingApplicationBillingRecords"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="edgeComputingBillingAddress" type="EdgeComputingBillingAddress" minOccurs="0"/>
            <xsd:element name="copyOfBill" minOccurs="0">
                <xsd:complexType>
                    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
                        <xsd:element name="File" type="File"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
		</xsd:sequence>
    </xsd:complexType>
	
    <xsd:complexType name="EdgeComputingBillingAddress">
        <xsd:sequence>
            <xsd:element name="addressSuppliedTime" type="GeneralizedTime" minOccurs="0"/>
            <xsd:element name="name" type="PersonName" minOccurs="0"/>
            <xsd:element name="address" type="AddressInformation" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:simpleType name="EdgeComputingBillingIdentifier">
        <xsd:restriction base="xsd:string"/>
    </xsd:simpleType>

    <xsd:complexType name="EdgeComputingApplicationBillingRecords">
        <xsd:sequence>
            <xsd:element name="time" type="GeneralizedTime" minOccurs="0"/>
            <xsd:element name="place" type="xsd:string" minOccurs="0"/>
            <xsd:element name="amount" type="xsd:double" minOccurs="0"/>
            <xsd:element name="currency" minOccurs="0">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string">
                        <xsd:length value="3"/>
                    </xsd:restriction>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="method" type="xsd:string" minOccurs="0"/>
            <xsd:element name="edgeComputingTransactionID" type="xsd:string" minOccurs="0"/>
            <xsd:element name="edgeComputingTransactionStatus" type="xsd:string" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>


    <xsd:complexType name="EdgeComputingDevice">
        <xsd:sequence>
            <xsd:element name="deviceIDType" minOccurs="0">
                <xsd:complexType>
                    <xsd:choice>
                        <xsd:element name="unknown" type="NULL"/>
                        <xsd:element name="imei" type="NULL"/>
                        <xsd:element name="macAddress" type="NULL"/>
                    </xsd:choice>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="edgeComputingDeviceID" type="EdgeComputingDeviceID" minOccurs="0"/>
            <xsd:element name="subscriberID" type="EdgeComputingSubscriberID" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
<xsd:simpleType name="EdgeComputingDeviceID">
        <xsd:restriction base="xsd:hexBinary"/>
    </xsd:simpleType>
</xsd:schema>