Open davidjwbbc opened 3 months ago
I note that DataSamplingRule, DataReportingCondition and DataReportingRule are all data types shared between the provisioning and reporting APIs (they are specified in clause 5.4 of TS 26.532).
If we are adding a read-only contextId property to each of them, are we happy that the value assigned by the Data Collection AF is also exposed to the Application Service Provider via reference point R1, @davidjwbbc?
I note that DataSamplingRule, DataReportingCondition and DataReportingRule are all data types shared between the provisioning and reporting APIs (they are specified in clause 5.4 of TS 26.532).
If we are adding a read-only contextId property to each of them, are we happy that the value assigned by the Data Collection AF is also exposed to the Application Service Provider via reference point R1, @davidjwbbc?
The set of contextIds would be specific to the reporting application and may even be specific to a particular UE or group of UEs, so although the property would be a read-only property I would only propose that the AF fill it in as part of the various rules and conditions provided in the DataReportingSession. There would be no reason to return a value for this property via R1 unless you wanted an alternative method of providing these reporting contexts to the UE app (e.g. via M8 for 5GMS).
@davidjwbbc wrote:
The set of contextIds would be specific to the reporting application and may even be specific to a particular UE or group of UEs, so although the property would be a read-only property I would only propose that the AF fill it in as part of the various rules and conditions provided in the DataReportingSession. There would be no reason to return a value for this property via R1 unless you wanted an alternative method of providing these reporting contexts to the UE app (e.g. via M8 for 5GMS).
I agree that contextId is only significant for the Data Reporting reference points, and hence there is no reason to expose this externally at reference point R1. I simply point out that the DataSamplingRule, DataReportingCondition and DataReportingRule data types are all shared with the provisioning reference point, so visibility of this new contextId property is unavoidable with the current data type design.
I assume we would declare this new property as required
as well as readOnly
in the three abovementioned data types.
- But what about when the Application Service Provider interrogates the Provisioning Session at reference point R1? Is there a way to suppress the population of a required read-only property?
This property would not be populated in the AF until the structure is about to be sent, so either:
null
for R1.After discussion with @rjb1000 we've reached the conclusion that exposing the contextIds at R1 is actually a good thing to support configuration and indirect data reporting via R8. We can conclude it is therefore fine to add a contextIds property to each of the shared data types which is a required, read-only 1..* array.
Change Requests contributed to SA4#129-e:
Change Requests agreed at SA4#129-e:
Up for approval at SA#105.
Problem
During work implementing the Data Collection Application Function it has become apparent that there are problems arising from a disconnection between:
Problematic observations:
Suggested solution
It is proposed that an array of context identifiers, each one identifying a DataReportingConfiguration in the AF, is added to certain data types used in the Ndcaf_DataReporting service:
Multiple data reporting configurations provisioned by the same or different Application Service Providers may use the same sampling rules or reporting rules or reporting conditions. These can be collapsed in the DataReportingSession into a single entry in the proposed new array of context identifiers. Since one sample record may be the consequence of multiple contexts, because multiple context identifiers may be associated with a DataSamplingRule, then reporting the list of context identifiers from the DataSamplingRule allows the AF to process that record against each set of DataAccessProfiles that apply to it.
The suggestion is to add a read-only contextIds property, of type
array(ResourceId)
, to each of:This new field is filled in by the Data Collection AF, containing an identifier that will allow it to identify specific DataReportingConfigurations, for each DataSamplingRule, DataReportingRule and DataReportingCondition passed to the data collection client when it creates a new DataReportingSession. The data collection client then sample the data according to the DataSamplingRules, making a note of which sampling rule was used to generate that record.
Further, it is proposed to add contextIds, of type
array(ResourceId)
to BaseRecord, as a read/write or write-only property. All reported UE data records will thus provide the context identifier used to generate it.The DataReportingRules and DataReportingConditions trigger the submission of data reports from the data collection client to the Data Collection AF. These will only contain data records where the associated DataSamplingRule.contextIds intersect with the DataReportingRule and/or DataReportingCondition.contextIds (this ensures reports are only sent as intended by the provisioned configuration). The value of DataSamplingRule.contextIds is conveyed in the BaseRecord.contextId of the data record in the DataReport.
While processing received DataReport records into AfEventNotifications, the Data Collection AF can thus use the context identifier in each reported record to identify the DataReportingConfigurations that the record was triggered by, and it can therefore select set of DataAccessProfiles that should be applied for each AfEventNotification.