-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Providing developers with alternate to QoS profile #302
Comments
Hi @maheshc01, The topic is interesting. Looking also into the PR, it seems like the proposal is about giving developers/applications the ability to create their own adhoc profiles, more than figuring out which of the available QoS Profiles are closer to their needs. I'm not very familiar with Connectivity Insights API, but I see that they model a To me they are 2 different requirements:
Could you confirm if your proposal is more about the second point? Thanks |
Hi @maheshc01, My understanding of your proposal is that your requirement is the first of the two in the previous comment: that the operator is figuring out what is the best fitting QoS profile for the actual device and the requested application profile, among the available ones, and enables that for the defined flow. Said this, I see the value of "application-profiles" as a counterpart to "qos-profiles". The goal of CAMARA is to provide intent based APIs, therefore I'm in favour of the aim of your proposal. But there need also be predictability of the behaviour and cost for the API consumers and here I see the challenge. Definitely it makes sense to discuss the synergies between ConnectInsights and QoD. Challenges I see if the selection of the actual QoS profile in one step directly when creating the QoS session:
Therefore we have designed until now a two-step approach: providing with qos-profiles an API which allows to discover the available QoS profiles. This API can be enhanced, see for example #147. Combining it with your proposal there could be an endpoint which takes an application profile as input and returns the best matching QoS profile (if any available). Another option could be that already the ConnectivityInsights API returns in case the requirements are beyond the standard profile one or multiple proposals of QoS Profiles which then can be directly used to create a session with the qualitiy-on-demand API. |
This approach would fit quite well with the current API. If Connectivity Insights API, after evaluating the requirements, determines that certain available QoS profile fulfills those requirements, it may return it as suggestions. Developers can then examine those QoS profiles and decide to use QoD APIs. The part about pricing, SLA, etc is out of the scope of CAMARA, so probably another APIs are needed for that. |
@jlurien In connectivity insights what started out as policy id which defined application needs from a network performance perspective went through its fair share of updates post multiple discussions to be renamed as application-profile to make it more developer friendly. Application Profile takes inputs from app developers on what is the minimum values for each network performance KPI which the application is tolerant to.it doesn't take input for upper bound values. Regarding the concept of using application profile to present the best set of QoS profiles to the developer. my opinion is not all subscriber will have entitlement to all qos profiles. it would be frustrating to developers to again receive failed responses based on subscriber entitlement. Pricing is more complex topic but also have different approaches which the business groups can figure out. |
@maheshc01 We tried out best to make these more generically networking centric and not just telco focused. We may not have entirely hit the mark, but an attempt was made. QoS Profiles actually helped us add support for fixed line networks, in addition to mobile network. These could also apply to non-terrestrial networks (aka satellite based internet) as well, but I don't think that anyone has tested that. Not every network will have the capabilities and capacity to support every application profile, and others will be able to support capabilities beyond and individual application. QoD can apply to all traffic to/from a device, where this device could be a gateway on a cable or fiber network. We don't want to limit the capabilities. As @hdamker mentioned above, we do have issue #147 opened. This issue has been open since QoS profiles were introduced, since the idea behind profiles was to provide a mechanism find profiles which meet the requirements for a given application or use case. My suggestion is that we start by extending the QoS Profile to add a query mechanism to identify profiles that can meet the application requirements. Either through profile querying based on a set of attributes or if there is a sufficient standard around the application ids. While we are getting late into the 0.11 release, if we get consensus quickly it could make this release. Longer term, we could look to extend the session create to allow for the QoS profile query or minimum criteria to be included instead of the QoS profile ID. I suspect that this will be a much more involved discussion since it has far reaching implication when the developer doesn't know which profile they will use when they make the query. The current process isn't that different from identifying the type of compute resources when spinning up cloud compute. Even between regions within a single cloud provider, there are different classes of machines available. |
Problem description
Today QoD API requires the application developer to pass in qosProfile as one of the mandatory params for creating POST /sessions. as described in the yaml this qos profile can vary from each operators which puts the burden on the developers to keep themselves updated on all the qos profiles supported by each operators across the world.
I hope we all can see the problem with this. It goes against the basic CAMARA principle of requiring the APIs to be developer friendly.
Solution
Rather than the developer having to learn all the qos profile options across the different operators and figure out which suits best for their application it should be the operator's responsibility to figure out which is the best qos profile they need to apply based on the application needs as well as additional context based on user subscription data.
Proposal is to adopt the concept of application profiles as defined in connectivity insights (which is already modeled to work closely with QoD API) via which the application developers define what they expect in terms of network performance and which calling the QoD /sessions API, they can pass on application profile id as an alternate to qos profile and the operator will take on the responsibility to identify the best qos profile and create the session based on that.
Additional context
there is an open issue in commonalities on the concept of application Id. Discussions here and connectivity insights can be used as references to be adopted in commonalities.
another advantage with this proposal is that it puts us on the path of decoupling QCI based implantation to support that API request and in further the same spec can be used to provide network slice based quality on demand.
The text was updated successfully, but these errors were encountered: