2 BSF REST Specifications
This section provides information about REST specifications used in Oracle Communications Cloud Native Core Binding Support Function (BSF).
Note:
action is a query parameter that has been provided for each individual import api, which can either have replace or ignore value. If the action parameter is not provided, then the default value is ignore.2.1 Congestion Control Configurations
Note:
The default Congestion Control Threshold profile cannot be updated by the User.Congestion Control Configurations
{serviceName} values can be:
oc-diam-gatewayBSF Management
Table 2-1 Congestion Control Settings APIs
| API Description | HTTP Method or Custom Operation | Resource URI | Description | Possible Result Code |
|---|---|---|---|---|
| Get congestion control settings. | GET | {apiRoot}/oc-bsf-configuration/v1/congestionConfigurations/{serviceName} | To get enable, stateChangeSampleCount and stateCalculationInterval |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Update congestion control settings. | PUT | {apiRoot}/oc-bsf-configuration/v1/congestionConfigurations/{serviceName} | To update enable, stateChangeSampleCount and stateCalculationInterval |
200: OK Specifies that the update is successful and provides the values in database. 201: Created 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
Get and Update Operations
Table 2-2 Request/Response Body Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| enable | boolean | O |
Enable or Disable the Pod Congestion Control feature. Default value: false (after upgrade) Default value: true (for fresh installation) |
| stateChangeSampleCount | integer | M | After how many continuous intervals, state can be
changed. The count can range from 1 to 2147483647.
Default value: 5 |
| stateCalculationInterval | integer | M | Number of interval in milliseconds, after which
the pod congestion state will be re-verified.
Default value: 200ms |
| activeThresholdProfile | String | O | Active threshold profile name.
Default value: Default |
| advancedSettings | AdvancedSettings | O | To add additional advanced settings keys to the settings. |
Table 2-3 AdvancedSettings
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| key | string | O | Specifies the key name. |
| value | string | O | Specifies the value of the key. |
{
"activeThresholdProfile": "profileName",
"stateChangeSampleCount": 5,
"stateCalculationInterval": 200,
"enable": true,
"advancedSettings": [
{
"key": "string",
"value": "string"
}
]
}Congestion Control Threshold Profile
Table 2-4 Congestion Control Threshold Profile APIs
| API Description | HTTP Method or Custom Operation | Resource URI | Description | Possible Result Code |
|---|---|---|---|---|
| Update congestion control active threshold profile. | PUT | {apiRoot}/oc-bsf-configuration/v1/congestionActiveThresholdProfile/{serviceName}/{activeThresholdProfile} | To update the active threshold profile. |
200: OK Specifies that the update is successful and provides the values in database. 201: Created 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Get active congestion threshold profile. | GET | {apiRoot}/oc-bsf-configuration/v1/congestionActiveThresholdProfile/{serviceName} | To get the CPU and Queue threshold of DANGER_OF_CONGESTION, CONGESTION_L1, CONGESTION_L2 and CONGESTED states for all threshold profiles |
200: OK General configuration is returned 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too Many Requests 500: Internal Server Error 503: Service Unavailable |
| Update congestion control threshold profile. | PUT | {apiRoot}/oc-bsf-configuration/v1/congestionThresholdProfiles/{serviceName}/{profileName} | To update the CPU and Queue threshold of DANGER_OF_CONGESTION, CONGESTION_L1, CONGESTION_L2 and CONGESTED states of specific threshold profile. |
200: OK Specifies that the update is successful and provides the values in database. 201: Created 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Get congestion control threshold profiles. | GET | {apiRoot}/oc-bsf-configuration/v1/congestionThresholdProfiles/{serviceName} | To get the CPU(%) and Queue(pending counts) of DANGER_OF_CONGESTION, CONGESTION_L1, CONGESTION_L2 and CONGESTED states for all threshold profiles. |
200: OK General configuration is returned 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too Many Requests 500: Internal Server Error 503: Service Unavailable |
| Add congestion control threshold profile. | POST | {apiRoot}/oc-bsf-configuration/v1/congestionThresholdProfiles/{serviceName}/{profileName} | To add new congestion threshold profile with specified name |
200: OK 201: Imported 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Delete congestion control threshold profile. | DELETE | {apiRoot}/oc-bsf-configuration/v1/congestionThresholdProfiles/{serviceName}/{profileName} | To delete new congestion threshold profile with specified name |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too many Requests 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
Get, Put, and Post Operations
Table 2-5 Request/Response Body Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| name | String | M | This value should be same as the
profileName in path variable.
|
| value | CongestionThresholdState | M | Provide the congestion state. |
| isCustomProfile | Boolean | M | Denotes that this profile is custom created.
Note: Currently user can create custom
profiles only. Hence this value should be set to
|
Table 2-6 CongestionThresholdState
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| state | String | M | The value can be following pod Congestion states:
Bulwark service supports only two states DANGER_OF_CONGESTION and CONGESTED. |
| resourceUsageLimit | CongestionResourceUsageLimit | M | The Threshold profiles resource usage limits for CPU & Queue. |
Table 2-7 CongestionResourceUsageLimit
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| cpu | integer | M | Specifies the Queue percentage for Bulwark and Queue (pending requests) for all other BSF services across all the congestion levels. For Bulwark the range is 1 to 100 and for other services the range is between 1 to 2147483647. |
| queue | integer | M | Specifies the CPU percentage across all the congestion levels. The number can be between 1 to 100. |
Sample body request for Put and Post operations for Congestion Threshold Profiles:
{
"name": "profileName",
"isCustomProfile": true,
"value": [
{
"state": "DANGER_OF_CONGESTION",
"resourceUsageLimit": {
"cpu": 40,
"queue": 32
}
},
{
"state": "CONGESTION_L1",
"resourceUsageLimit": {
"cpu": 50,
"queue": 34
}
},
{
"state": "CONGESTION_L2",
"resourceUsageLimit": {
"cpu": 60,
"queue": 36
}
},
{
"state": "CONGESTED",
"resourceUsageLimit": {
"cpu": 70,
"queue": 38
}
}
]}
Import or Export the Congestion Control Settings
Table 2-8 Import/Export Congestion Control Settings
| API Name | HTTP Method or Custom Operation | Resource URI | Description | Possible Result Code |
|---|---|---|---|---|
| Export Congestion Control Settings | GET | {apiRoot}/oc-bsf-configuration/v1/congestionConfigurations/export | To export congestion control settings |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Import Congestion Control Settings | POST | {apiRoot}/oc-bsf-configuration/v1/congestionConfigurations/import?action={action} | To import congestion control settings |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
Table 2-9 Request/Response Body Parameters
| Field Name | Data Type | Mandatory/Optional/Conditional | Description |
|---|---|---|---|
| topic | String | M | It should be commonconfig.congestionControlSettings |
| sourceVersion | String | M | Build version |
| date | String | M | Date in pattern "yyyy-MM-dd'T'HH:mm:ss'Z'" |
| exportData | Congestion Control Settings Data | M |
Array for Congestion Control Settings. This array contains JSON objects for each service that supports congestion control feature. |
{
"topic": "commonconfig.congestionControlSettings",
"sourceVersion": "23.4.0-nb-20231118",
"date": "2023-12-03T10:48:08Z",
"exportData": [
{
"serviceName": "BSF Management",
"stateChangeSampleCount": 2,
"stateCalculationInterval": 5000,
"enable": true
},
{
"serviceName": "bulwark",
"activeThresholdProfile": "DEFAULT",
"stateChangeSampleCount": 2,
"stateCalculationInterval": 5000
}
]
}
Import and Export Congestion Control Threshold Profiles
Table 2-10 Import/Export Congestion Control Threshold Profiles
| API Name | Request Type | Request Url | Description |
|---|---|---|---|
| Export Congestion Control Threshold Profiles | GET | {apiRoot}/oc-bsf-configuration/v1/congestionThresholdProfiles/export | To export congestion control threshold profiles |
| Import Congestion Control Threshold Profiles | POST | {apiRoot}//oc-bsf-configuration/v1/congestionThresholdProfiles/import?action={action} | To import congestion control threshold profiles |
Table 2-11 Request/Response Body Parameters
| Field Name | Data Type | Mandatory/Optional/Conditional | Description |
|---|---|---|---|
| topic | String | M | It should be commonconfig.congestionThresholdProfiles |
| sourceVersion | String | M | Build version |
| date | String | M | Date in pattern "yyyy-MM-dd'T'HH:mm:ss'Z'" |
| exportData | Congestion Threshold Profiles Data | M | Array for Congestion Control Threshold Profiles. This array contains JSON objects of each service that supports congestion control feature. |
{
"topic": "commonconfig.congestionThresholdProfiles",
"sourceVersion": "24.1.0-rc.4",
"date": "2024-02-29T10:03:44Z",
"exportData": [
{
"activeThresholdProfile": "DEFAULT",
"congestionThresholdProfiles": [
{
"name": "DEFAULT",
"value": [
{
"state": "DANGER_OF_CONGESTION",
"resourceUsageLimit": {
"cpu": 55,
"queue": 60
}
},
{
"state": "CONGESTION_L1",
"resourceUsageLimit": {
"cpu": 65,
"queue": 70
}
},
{
"state": "CONGESTION_L2",
"resourceUsageLimit": {
"cpu": 75,
"queue": 80
}
},
{
"state": "CONGESTED",
"resourceUsageLimit": {
"cpu": 85,
"queue": 90
}
}
],
"isCustomProfile": false
}
],
"serviceName": "BSF Management"
},
{
"activeThresholdProfile": "DEFAULT",
"congestionThresholdProfiles": [
{
"name": "DEFAULT",
"value": [
{
"state": "DANGER_OF_CONGESTION",
"resourceUsageLimit": {
"cpu": 80,
"queue": 75
}
},
{
"state": "CONGESTED",
"resourceUsageLimit": {
"cpu": 90,
"queue": 85
}
}
],
"isCustomProfile": false
}
],
"serviceName": "bulwark"
}
]
}
2.2 Congestion Control Load Shedding Profiles
Congestion Control Load Shedding Rules APIs
Table 2-12 Congestion Control Load Shedding Rules APIs
| API Description | HTTP Method or Custom Operation | Resource URI | Description | Possible Result Code |
|---|---|---|---|---|
| Get congestion load shedding profiles. | GET | {apiRoot}/oc-bsf-configuration/v1/congestionLoadSheddingProfile/{serviceName} | To get the name, type and active load shedding rule. |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Update congestion load shedding profile. | PUT | {apiRoot}/oc-bsf-configuration/v1/congestionLoadSheddingProfile/{serviceName} | To update name and loadSheddingRuleName |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Get congestion control load shedding rules. | GET | {apiRoot}/oc-bsf-configuration/v1/congestionLoadSheddingRule/{serviceName} | To get the discard priority of DANGER_OF_CONGESTION, CONGESTION_L1, CONGESTION_L2 and CONGESTED states for all load shedding rules. |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Update congestion control load shedding rule. | PUT | {apiRoot}/oc-bsf-configuration/v1/congestionLoadSheddingRule/{serviceName}/{ruleName} | To update the discard priority of DANGER_OF_CONGESTION, CONGESTION_L1, CONGESTION_L2 and CONGESTED states of specific threshold rule. |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Add congestion control load shedding rule. | POST | {apiRoot}/oc-bsf-configuration/v1/congestionLoadSheddingRule/{serviceName}/{ruleName} | To add new congestion load shedding rule with specified name |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Delete congestion control load shedding rule. | DELETE | {apiRoot}/oc-bsf-configuration/v1/congestionLoadSheddingRule/{serviceName}/{ruleName} | To delete congestion load shedding rule with specified name |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too many Requests 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
Table 2-13 Request/Response Body Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| name | String | M | This value should be same as the
ruleName in path variable.
|
| value | CongestionLoadSheddingState | M | This value should be different congestion states. |
| isCustomProfile | Boolean | M | Denotes that the rule is custom created by
user.
Note: Currently user can create
custom rules only. Hence this value should be set to
|
Table 2-14 CongestionLoadSheddingState
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| state | String | M | The value can be following pod Congestion states:
Bulwark service supports only two states DANGER_OF_CONGESTION and CONGESTED. |
| discardPriority | integer | M |
The discard priority value for the requests. The
minimum value is Default Value: 5 |
| discardPriorityPercentage | DiscardPriorityPercentage | O |
The discard priority range or percentage for the requests. Note: This is applicable only to
|
Table 2-15 DiscardPriorityPercentage
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| range | string | M |
The discard priority value or range for the requests. The values allowed is a number such as
Note: This is applicable only to
|
| percentage | integer | M |
The percentage of requests that needs to be
discarded. The minimum value is Example: 23 Note: This is applicable only to
|
{
"name": "ruleName",
"value":
[
{
"state": "CONGESTED",
"discardPriority": 5
},
{
"state": "CONGESTION_L2",
"discardPriority": 10
},
{
"state": "CONGESTION_L1",
"discardPriority": 15
},
{
"state": "DANGER_OF_CONGESTION",
"discardPriority": 20
}
],
"isCustomProfile": true
}
Import or Export Congestion Control Load Shedding Rules
Table 2-16 Import/Export Congestion Control Load Shedding Rules
| API Name | HTTP Method or Custom Operation | Resource URI | Description | Possible Result Code |
|---|---|---|---|---|
| Export Congestion Control Load Shedding Rules | GET | {apiRoot}//oc-bsf-configuration/v1/congestionLoadSheddingRule/export | To export congestion control load shedding rules |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Import Congestion Control Load Shedding rules | POST | {apiRoot}/oc-bsf-configuration/v1/congestionThresholdProfiles/import?action={action} | To import congestion control load shedding rules |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
Table 2-17 Request/Response Body Parameters
| Field Name | Data Type | Mandatory/Optional/Conditional | Description |
|---|---|---|---|
| topic | String | M | commonconfig.congestionLoadSheddingRules |
| sourceVersion | String | M | Build version |
| date | String | M | Date in pattern "yyyy-MM-dd'T'HH:mm:ss'Z'" |
| exportData | Congestion Load Shedding Data | M |
Array for Congestion Control Settings. This array contains JSON objects for each service that supports congestion control feature. |
{
"topic": "commonconfig.congestionLoadSheddingRules",
"sourceVersion": "23.4.0-nb-20231118",
"date": "2023-12-03T11:14:26Z",
"exportData": [
{
"congestionLoadSheddingProfiles": [
{
"name": "loadSheddingProfile",
"loadSheddingRuleName": "rule1",
"type": "congestion"
}
],
"congestionLoadSheddingRules": [
{
"name": "DEFAULT",
"value": [
{
"state": "CONGESTED",
"discardPriority": 5
},
{
"state": "CONGESTION_L2",
"discardPriority": 10
},
{
"state": "CONGESTION_L1",
"discardPriority": 15
},
{
"state": "DANGER_OF_CONGESTION",
"discardPriority": 20
}
],
"isCustomProfile": false
},
{
"name": "rule1",
"value": [
{
"state": "CONGESTED",
"discardPriority": 5
},
{
"state": "CONGESTION_L2",
"discardPriority": 10
},
{
"state": "CONGESTION_L1",
"discardPriority": 15
},
{
"state": "DANGER_OF_CONGESTION",
"discardPriority": 20
}
],
"isCustomProfile": true
}
],
"serviceName": "BSF Management"
},
{
"congestionLoadSheddingProfiles": [
{
"name": "loadSheddingProfile",
"loadSheddingRuleName": "DEFAULT",
"type": "congestion"
}
],
"congestionLoadSheddingRules": [
{
"name": "DEFAULT",
"value": [
{
"state": "DANGER_OF_CONGESTION",
"discardPriority": 20
},
{
"state": "CONGESTED",
"discardPriority": 10
}
],
"isCustomProfile": false
}
],
"serviceName": "bulwark"
}
]
}
2.3 Diameter Gateway Congestion Migration
Diameter Gateway Congestion Control Data Migration
Table 2-18 Diameter Gateway Congestion Migration APIs
| API Description | HTTP Method or Custom Operation | Resource URI | Description | Possible Result Code |
|---|---|---|---|---|
| Get Diameter-Gateway Congestion Migration Details | GET | {apiRoot}/oc-bsf-configuration/v1/congestioncontrol/diameter-gateway/migration | To get the status of data migration details when the systems is upgraded from the older version to current version. |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Migrate congestion control previous version configuration data to current version | POST | {apiRoot}/oc-bsf-configuration/v1/congestioncontrol/diameter-gateway/migration | Migrate congestion control previous version configuration data to current version by taking some required inputs from the user and this migration is the one-time activity after version upgrade from old version to current version. |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
Table 2-19 Request/Response Congestion Migration Data
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| enable | boolean | M | This enables the congestion control feature after successful migration. |
| thresholdsProfileData | ThresholdsProfileData | M | This new thresholds profile will be created with this profile data. |
| loadSheddingProfileData | LoadSheddingProfileData | M | This load shedding profile will configure as default profile for congestion load shedding rules. |
| messagePriorityProfileData | MessagePriorityProfileData | M | This message priority profile will configure as default profile for message priority profile, and this will be the common profile for both overload and congestion control feature. |
Table 2-20 Request/Response ThresholdsProfileData
| Field Name | Field Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| profileName | string | M | A new thresholds profile will be created with this profile name to migrate the old version thresholds data. |
| queueData | CongestionStateData | M | This queue data will be applied for different congestion states to migrate the old version threshold data. |
| cpuData | CongestionStateData | M | This CPU data will be applied for congestion states to migrate the old version thresholds data. |
Table 2-21 Request/Response LoadSheddingProfileData
| Field Name | Field Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| profileName | string | M | The provided load shedding profile will become the
default profile for congestion load shedding rules.
Value: Provide previous version profile name. |
| ruleDiscardPriorityData | CongestionStateData | M | This Respective Discard Priority data will be applied for congestion states to migrate the old version thresholds data. |
| loadSheddingResponseCodeData | LoadSheddingResponseCodeData | M | This congestion response result code will configure as common response code for all congestion discards in advance settings configurations. |
| ruleDiscardPriorityPercentageData | CongestionStatePriorityPercentageData | M | This is to decide the result code is the general result code or experimental result code, so if this value is greater than then the congestionResponseResultCode is consider as experimental result code. |
Table 2-22 Request/Response CongestionStateData
| Field Name | Field Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| queueData.state | string | M | Specifiy different congestion states. The allowed
values are:
|
| queueData.value | integer | M | Provide a numerical value in the range of 1-2147483647. |
| cpuData.state | string | M | Specifiy different congestion states. The allowed
values are:
|
| cpuData.value | integer | M | Provide a numerical value in the range of 1-100. |
| ruleDiscardPriorityData.state | string | M | Specifiy different congestion states. The allowed
values are:
|
| ruleDiscardPriorityData.value | integer | M | Provide a numerical value in the range of 1-31. |
Table 2-23 Request/Response CongestionStatePriorityPercentageData
| Field Name | Field Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| state | string | M | |
| discardPriorityPercentagesData | DiscardPriorityPercentage | M |
Table 2-24 Request/Response DiscardPriorityPercentage
| Field Name | Field Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| range | string | M | |
| percentage | integer | M |
Table 2-25 Request/Response LoadSheddingResponseCodeData
| Field Name | Field Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| congestionResponseResultCode | integer | M | Provide a numerical value in the range of 1001-5999. |
| congestionResponseVendorId | integer | O | Provide a numerical value in the range of 0-4294967295 |
Table 2-26 Request/Response MessagePriorityProfileData
| Field Name | Field Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| profileName | string | M | This message priority profile will configure as
default profile for message priority profile, and this will be the
common profile for both overload and congestion control feature
Value: Provide previous version profile name. |
{
"migrated": true,
"attempts": 0,
"cause": "string"
}
{
"enable": true,
"thresholdsProfileData": {
"profileName": "string",
"queueData": [
{
"state": "string",
"value": 0
}
],
"cpuData": [
{
"state": "string",
"value": 0
}
]
},
"loadSheddingProfileData": {
"profileName": "string",
"ruleDiscardPriorityData": [
{
"state": "string",
"value": 0
}
],
"ruleDiscardPriorityPercentageData": [
{
"state": "string",
"discardPriorityPercentagesData": [
{
"range": "1 or 11-13",
"percentage": 23
}
]
}
],
"loadSheddingResponseCodeData": {
"congestionResponseResultCode": 0,
"congestionResponseVendorId": 0
}
},
"messagePriorityProfileData": {
"profileName": "string"
}
}2.4 General Configurations
This section provides information for configuring General Configurations in BSF.
Resource Name: General Configurations
Table 2-27 Supported REST APIs - General Configurations
| Resource Name | Resource URI | HTTP Method or Custom Operation | Description | Possible Result Code |
|---|---|---|---|---|
| General Configurations | -H "accept: application/json" {apiRoot}/oc-bsf-configuration/v1/general/export | GET | Export General Configuration |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| -H "accept: application/json" -H "Content-Type: application/json" {apiRoot}/oc-bsf-configuration/v1/general/import -d "{}" | POST | Import General Configuration |
200: OK 201: Imported 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
|
| -H "accept: application/json" {apiRoot}​/oc-bsf-configuration/v1/general | GET | Get Individual General Configuration |
200: OK General configuration is returned 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too Many Requests 500: Internal Server Error 503: Service Unavailable |
|
| -H "accept: application/json" -H "Content-Type: application/json" {apiRoot}​/oc-bsf-configuration/v1/general -d " {} " | PUT | Update General Configuration |
200: OK Specifies that the update is successful and provides the values in database. 201: Created 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
Sample cURL Command for GET operation:
curl -X 'GET' \
'http://10.148.210.26:8000/oc-bsf-configuration/v1/general' \
-H 'accept: application/json'
GET and PUT - Get and Update General Configuration
Table 2-28 Data structures supported by GET and PUT response body
| Name | Data Type | Mandatory (M)/Optional (O) | Description |
|---|---|---|---|
| enableTracing | Boolean | M | Specifies whether to enable tracing. Possible
values are:
|
| enableMetrics | Boolean | M | Specifies whether to enable system metrics.
Possible values are:
|
| enableCollisionDetection | Boolean | M | Specifies whether to enable collision detection
for BSF. Possible values are:
|
| bindingDiscoveryRequestTimeout | Integer | M | Specifies the request timeout value for the Authentication Request (AAR) message towards the BSF Diameter gateway. |
| enableSubscriberLog | Boolean | M | - |
| enableSBICorrelation | Boolean | M | - |
| enhancedLogging | Array | O | Used to configure the enhanced logging for BSF. For details on the parameters under in section, see Table 2-29. |
Table 2-29 Request/Response Parameters for Enhanced Logging
| Name | Data Type | Mandatory (M)/Optional (O) | Description |
|---|---|---|---|
| enhancedLogging.enableEnhancedLogging | Boolean | O |
Specifies whether to enable or disable enhanced logging for the BSF deployment. Default value: false |
| enhancedLogging.staleSessionDeletionLogLevel | String | O |
Specifies the log level for stale session deletions. The available log levels for stale session deletions are:
The logs for BSF stale binding deletion are generated at the specified level. Note: The value of this field does not modify in any way the log level that BSF Management service has. The root log level of BSF Management service must be either the same log level defined in the selected or lower for these deletion logs to appear. For example, if the stale session deletions log level is at INFO, then BSF Management service log level must be either TRACE, DEBUG, or INFO. Default value: INFO. |
| enhancedLogging.enableLogUEIdentifierInfo | Boolean | O |
Specifies whether to enable or disable UE Identifier information for the BSF deployment. Default value: false |
| enhancedLogging.enableLogUeInfoInSessionDeletion | Boolean | O |
Specifies whether to enable or disable UE Identifier information in stale session deletion logging. When this field is disabled, the UE Identifier information in the logs are masked. That is, the identifier information appears like 'xxxx'. Default value: false |
Sample Request body structure for GET and PUT operations:
{
"enableMetrics": true,
"enableTracing": true,
"bindingDiscoveryRequestTimeout": 0,
"enableCollisionDetection": true,
"enableSubscriberLog": true,
"enableSBICorrelation": true,
"enhancedLogging": {
"enableEnhancedLogging": true,
"staleSessionDeletionLogLevel": "string",
"enableLogUEIdentifierInfo": true,
"enableLogUeInfoInSessionDeletion": true,
}
}
Sample Response body structure for GET and PUT operations:
{
"enableMetrics": true,
"enableTracing": true,
"bindingDiscoveryRequestTimeout": 0,
"enableCollisionDetection": true,
"enableSubscriberLog": true,
"enableSBICorrelation": true,
"enhancedLogging": {
"enableEnhancedLogging": true,
"staleSessionDeletionLogLevel": "string",
"enableLogUEIdentifierInfo": true,
"enableLogUeInfoInSessionDeletion": true,
}
}
Export and Import General Configurations
Sample cURL Command for Export Operation:
curl -X 'GET' \
'http://10.148.210.26:8000/oc-bsf-configuration/v1/general/export' \
-H 'accept: application/json'
Table 2-30 Data structures supported by Export and Import Response Body
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| date | string | - | Current timestamp |
| exportData | array | - | Exported list of general configurations. For more information, see Table 2-28 |
| sourceVersion | string | - | System version of the product from which data is exported |
| topic | string | - | Topic of each managed object |
Sample Request Body structure for Import/Export operations:
{
"topic": "string",
"sourceVersion": "string",
"date": "string",
"exportData": {
"enableMetrics": true,
"enableTracing": true,
"bindingDiscoveryRequestTimeout": 0,
"enableCollisionDetection": true,
"enableSubscriberLog": true,
"enableSBICorrelation": true,
"enhancedLogging": {
"enableEnhancedLogging": true,
"staleSessionDeletionLogLevel": "string",
"enableLogUEIdentifierInfo": true,
"enableLogUeInfoInSessionDeletion": true,
}
}
}
2.5 SBI Error Codes
Table 2-31 Supported REST APIs - SBI Error Codes
| Description | HTTP Method or Custom Operation | Resource URI | Possible Result Code |
|---|---|---|---|
| Get SBI Error Codes | GET | -H "accept: application/json" {apiRoot}/oc-bsf-configuration/v1/sbiErrorCodes/{conditionName} |
200: OK SBI Error Codes is returned 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too Many Requests 500: Internal Server Error 503: Service Unavailable |
| Update SBI Error Codes | PUT | -H "accept: application/json" -H "Content-Type: application/json" -d " {} "{apiRoot}/oc-bsf-configuration/v1/sbiErrorCodes/{conditionName} |
200: OK Specifies that the update is successful and provides the values in database. 201: Created 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Export SBI Error Codess | GET | -H "accept: application/json"{apiRoot}/oc-bsf-configuration/v1/sbiErrorCodes/export |
200: OK 201: Imported 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Import SBI Error Codess | POST | -H "accept: application/json"{apiRoot}/oc-bsf-configuration/v1/sbiErrorCodes/import |
200: OK 201: Imported 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
Get and Update SBI Error Codes
Table 2-32 Request/Response Body Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| applicationErrorCode | string | Mandatory | Specifies the application error code for a defined condition. |
| conditionName | string | Mandatory | Specifies the system defined name for a given condition. |
| errorDescription | string | Optional | Specifies the description for a defined condition. It is recommended to use descriptions that clearly explain the condition. |
| httpStatusCode | string | Mandatory | Specifies the HTTP Status code for a defined condition. |
Sample Request body for SBI Error Codes PUT operation:
{
"applicationErrorCode": "string",
"conditionName": "string",
"errorDescription": "string",
"httpStatusCode": "string"
}
Sample Response body structure for SBI Error Codes GET and PUT operation:
{
"applicationErrorCode": "string",
"conditionName": "string",
"errorDescription": "string",
"httpStatusCode": "string"
}
Import and Export SBI Error Codes
Table 2-33 Request/Response Body Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| date | string | Current timestamp | |
| errors.message | Error message | ||
| errors.name | Name of the error | ||
| exportData | array | Exported list of SBI Error Codes. For more information, see Get and Update SBI Error Codes. | |
| key | string | Indicates the ID | |
| sourceVersion | string | System version of product from which data is exported | |
| topic | string | Topic of each managed object |
Sample Request Body structure for SBI Error Codes Import and Export operations:
{
"date": "string",
"errors": [
{
"message": "string",
"name": "string"
}
],
"exportData": [
{
"applicationErrorCode": "string",
"conditionName": "string",
"errorDescription": "string",
"httpStatusCode": "string"
}
],
"key": "string",
"sourceVersion": "string",
"topic": "string"
}
2.6 Management Service
This section provides information for configuring Management Service in BSF.
Resource Name: Management Service
The following table describes the APIs for Resource - Management Service:
Table 2-34 Supported REST APIs - Management Service
| Tasks | Resource URI | HTTP Method or Custom Operation | Possible Result Code |
|---|---|---|---|
| Export Management Service | -H "accept: application/json" {apiRoot}/oc-bsf-configuration/v1/services/managementservice/export | GET |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Import Management Service | -H "accept: application/json" -H "Content-Type: application/json" {apiRoot}/oc-bsf-configuration/v1/services/managementservice/import | POST |
200: OK 201: Imported 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Get Management Service | -H "accept: application/json" {apiRoot}/oc-bsf-configuration/v1/services/managementservice | GET |
200: OK Management Service is returned 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too Many Requests 500: Internal Server Error 503: Service Unavailable |
| Update Management Service | -H "accept: application/json" -H "Content-Type: application/json" {apiRoot}/oc-bsf-configuration/v1/services/managementservice | PUT |
200: OK Specifies that the update is successful and provides the values in database. 201: Created 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
Sample Request to Update Management Service
The following table describes the parameters:
Table 2-35 Data structures supported by GET and PUT response body
| Name | Data Type | Mandatory (M)/Optional (O) | Description |
|---|---|---|---|
| apiRoot | String | O | Indicates the URL for server root. |
| logLevels | BSFSystemConfigurationLogLevels | O | Indicates the different log levels and log name. |
| audit | BsfAuditConfiguration | O | |
| bsfNfBindingsSettings | BSFNFBindingsSettings | O | |
| bsfNfServerSettings | BSFNFServerSettings | O | |
| activeSessionCounting | BSFActiveSessionCounting | O | |
| nfCorrelationSettings | NfCorrelationSettings | O | |
| advancedSettings | AdvancedSettings | M | |
| enableBindingRevalidation | boolean | O |
When this field is enabled, BSF checks if the binding information for the PDU session is present in BSF. Existence of the binding association for the PDU session in BSF confirms the binding association being valid in BSF. If the binding association is missing in BSF, it is restored by creating the association in BSF. Default value: false |
| rootLogLevel | string | M | Specifies the status of root log level.
Possible values are:
|
| activeSessionCounting.countRecords | Boolean | O | Enables or disables the active sessions
counting. By default, the active sessions counting is
disabled. To enable the feature, set the value of this
parameter to
. |
| activeSessionCounting.countRecordsInterval | Integer | O | Specifies the time interval (in minutes) for
which maximum active sessions are reported as a metric.
Default value is 15 minutes. You can set the time interval to any value between 1 to 60 minutes. |
| audit.enable | Boolean | O | Indicates whether to enable or disable auditing of stale records. |
| audit.frequency | Integer | M | Indicates the time when next audit for the BSF management service table will begin after delta time if auditing this table has been finished before the specified minimum audit passes interval. |
| audit.ansWithResultCodeCfg | Array | O | Indicates the value that is compared with the result code received in the AAA-I answer. If both the values match, a request is sent towards the BSF Management service to initiate stale record notification. For more information, see Table 2-38. |
| audit.maxTtl | Integer | M | Specifies the maximum binding age for
binding records. Once the binding age for a record exceeds
the configured value, audit service marks the record as
stale and BSF removes the record from its local database.
The recommended value is 7200. |
| audit.notificationRate | Integer | M | Specifies the number of notifications that
Audit service sends to the BSF Management service in one
second.
The recommended value is 50. Default and Recommended Value: 50 Note: To configure higher number than the recommended value, contact My Oracle Support (https://support.oracle.com) |
| audit.queryToPcf | Boolean | O | Indicates whether BSF management service
queries PCF to confirm the status of a PcfBinding record,
which is suspected as stale by the audit service.
Default value: false Note: When Query to PCF parameter is set to false, the value of "Minimum Audit Attempts" parameter in Service Configurations of Management Service, and "Forced Deletion - Minimum Audit Attempts" parameter in Service configurations of Audit Service should be set to 0. |
| audit.ttl | Integer | M |
Specifies the binding age for binding records. Once the binding age for a record exceeds the configured value, audit service marks the record as suspected stale. The recommended value is 3600. |
| audit.vendorId | string
Example: 000111 |
O | Specifies the vendor ID that BSF retrieves
from the Vendor Specific Attribute to send query requests
towards PCF. The vendor ID should be 6-digit long.
Note: PCF sends the Vendor Specific Attribute in the request body at the time of binding registration. |
| bsfNfBindingsSettings.bsfBindingLevel | String | O | Indicates the binding level to be included in the 3gpp-sbi-binding header when BSF adds this header in a message to another NF. |
| bsfNfBindingsSettings.bsfSendBindingHeader | Boolean | O | Indicates if BSF includes the 3gpp-sbi-binding header in SBI messages. |
| bsfNfServerSettings.bsfSendServerHeader | Boolean | O | Indicates if BSF management service includes server header while sending an error response. |
| bsfNfServerSettings.bsfServerHeaderErrorCodes | integer | O | Indicates the error codes for which service header is generated. The error codes can be from 100 to 999. |
| logLevels:loggerName | String | O | Specifies the name of the logger. For Example, trace |
| nfCorrelationSettings.sendCorrelationHeader | Boolean | O | |
| nfCorrelationSettings.allowedCorrelationInfoIdType | array | M |
|
| messagePriority.messagePriorityProfile | String | O |
Specifies the message priority profile to be applied to message priorities. The support for SBI Message Priority header gets enabled
when a message priority profile is selected for
|
Table 2-36 BSFSystemConfigurationLogLevels
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| level | String:Enum | O | Possible values are:
|
| loggername | String | O | Specifies the name of the logger. For Example, trace |
Table 2-37 BsfAuditConfiguration
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| enable | boolean | O | Possible values are: |
| enter a range in sec from [20-700] | String | M | Specifies the name of the logger. For Example, trace |
| enter a range in minutes from [1-10080] | integer | M | |
| minAuditAttempts | integer | M | |
| enter a range in minutes from [1-1440] | integer | M | |
| ansWithResultCodeCfg | AnsWithResultCode | O | |
| queryToPcf | boolean | O | |
| enter a 6 digit Vendor ID | string | O |
Table 2-38 ansWithResultCodeCfg
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| ansWithResultCode | String:Enum | O | Specifies the result code. Possible values:
|
| resultCode | Integer | O | Specifies the custom result code when ansWithResultCode is EXPERIMENTAL_RESULT_CODE. |
| vendorId | Integer | O | Specifies the custom vendor ID when ansWithResultCode is EXPERIMENTAL_RESULT_CODE. |
curl -X PUT "http://10.75.206.200:8000/oc-bsf-configuration/v1/services/managementservice" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"activeSessionCounting\": { \"countRecords\": true, \"countRecordsInterval\": 15 }, \"apiRoot\": \"string\", \"audit\": { \"ansWithResultCodeCfg\": [ { \"ansWithResultCode\": \"DIAMETER_UNABLE_TO_COMPLY\", \"resultCode\": 0, \"vendorId\": 0 } ], \"enable\": true, \"frequency\": 330, \"maxTtl\": 7200, \"notificationRate\": 50, \"queryToPcf\": true, \"ttl\": 1440, \"vendorId\": \"000111\" }, \"bsfNfBindingsSettings\": { \"bsfBindingLevel\": \"NF_SET\", \"bsfSendBindingHeader\": true }, \"bsfNfServerSettings\": { \"bsfSendServerHeader\": true, \"bsfServerHeaderErrorCodes\": [ 0 ] }, \"logLevels\": [ { \"level\": \"ALWAYS\", \"loggerName\": \"string\" } ], \"rootLogLevel\": \"ALWAYS\"}"The following is the schema for adding/updating Management Service:
{
"apiRoot": "string",
"logLevels": [
{
"level": "TRACE",
"loggerName": "string"
}
],
"audit": {
"enable": true,
"enter a range in sec from [20-700]": 50,
"enter a range in minutes from [1-10080]": 7200,
"minAuditAttempts": 5,
"enter a range in minutes from [1-1440]": 330,
"ansWithResultCodeCfg": [
{
"ansWithResultCode": "DIAMETER_UNABLE_TO_COMPLY",
"resultCode": 9999,
"vendorId": 4294967295
}
],
"queryToPcf": true,
"enter a 6 digit Vendor ID": "000111"
},
"bsfNfBindingsSettings": {
"bsfBindingLevel": "NF_SET",
"bsfSendBindingHeader": true
},
"bsfNfServerSettings": {
"bsfSendServerHeader": true,
"bsfServerHeaderErrorCodes": [
0
]
},
"activeSessionCounting": {
"countRecords": true,
"enter a range in sec from [1-60]": 15
},
"nfCorrelationSettings": {
"sendCorrelationHeader": true,
"allowedCorrelationInfoIdType": [
"imsi"
]
},
"advancedSettings": [
{
"key": "string",
"value": "string"
}
],
"enableBindingRevalidation": true,
"rootLogLevel": "TRACE"
"messagePriority": {
"messagePriorityProfile": "string"
}
}
Export and Import Management Service
Table 2-39 Data structures supported by Export and Import Response Body
| Field Name | Data Type | Mandatory(M)/Optional(O) | Description |
|---|---|---|---|
| date | string | Optional | Current timestamp |
| exportData | array | Mandatory | Exported list of Management Service. For more information, see Table 2-35 |
| sourceVersion | string | Optional | System version of the product from which data is exported |
| topic | string | Mandatory | Topic of each managed object |
Sample Request Body structure for Import operation:
{
"date": "string",
"exportData": {
"apiRoot": "string",
"audit": {
"ansWithResultCodeCfg": [
{
"ansWithResultCode": "DIAMETER_UNABLE_TO_COMPLY",
"resultCode": 0,
"vendorId": 0
}
],
"enable": true,
"frequency": 330,
"maxTtl": 7200,
"notificationRate": 50,
"queryToPcf": true,
"ttl": 1440,
"vendorId": "000111"
},
"bsfNfBindingsSettings": {
"bsfBindingLevel": "NF_SET",
"bsfSendBindingHeader": true
},
"bsfNfServerSettings": {
"bsfSendServerHeader": true,
"bsfServerHeaderErrorCodes": [
0
]
},
"nfCorrelationSettings": {
"sendCorrelationHeader": true,
"allowedCorrelationInfoIdType": [
"imsi"
]
},
"messagePriority": {
"messagePriorityProfile": "string"
}
"logLevels": [
{
"level": "ALWAYS",
"loggerName": "string"
}
],
"rootLogLevel": "ALWAYS"
"enableBindingRevalidation": true
},
"sourceVersion": "string",
"topic": "string"
}
2.7 Diameter Settings
This section provides information for configuring diameter gateway in BSF.
Diameter Settings
Table 2-40 Supported REST APIs - Diameter Settings
| Resource Name | Resource URI | HTTP Method or Custom Operation | Description | Possible Result Code |
|---|---|---|---|---|
| Diameter Settings | -H "accept: application/json" {apiRoot}/oc-bsf-configuration/v1/diameter/settings/export | GET | Export Diameter Settings |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Diameter Settings | -H "accept: application/json" -H "Content-Type: application/json" {apiRoot}/oc-bsf-configuration/v1/diameter/settings/import -d "{}" | POST | Import Diameter Settings |
200: OK 201: Imported 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Diameter Settings | -H "accept: application/json" {apiRoot}/oc-bsf-configuration/v1/diameter/settings | GET | Get Diameter Settings |
200: OK Diameter Settings are returned 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too Many Requests 500: Internal Server Error 503: Service Unavailable |
| Diameter Settings | -H "accept: application/json" -H "Content-Type: application/json" {apiRoot} /oc-bsf-configuration/v1/diameter/settings -d " {} " | PUT | Update Diameter Settings |
200: OK Specifies that the update is successful and provides the values in database. 201: Created 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
Get and Update Diameter Settings
Table 2-41 Data structures supported by GET and PUT response body
| Name | Data Type | Mandatory (M)/Optional (O) | Description |
|---|---|---|---|
| timer:connectionTimeout | Number | O | Specifies the connection timeout interval in seconds. The default is 3 seconds. |
| timer:reconnectDelay | Number | O | Specifies the time frame to delay before attempting to reconnect after a connection failure in seconds. The default is 3 seconds. |
| timer:responseTimeout | Number | O | Specifies the response timeout interval in seconds. The default is 5 seconds. |
| timer:watchdog interval | Number | O | Specifies the watchdog interval in seconds. The default is 6 seconds. |
| transport:protocol | String | O | TCP/SCTP |
Table 2-42 congestionControl
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| congestionLoadSheddingProfile | string | O | Specifies the load shedding profile name. |
| congestionMessagePriorityProfile | string | O | Specifies the message priority profile name. |
Table 2-43 DiamSettingsOverloadControl
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| overloadLoadSheddingProfile | string | O | Specifies the load shedding profile name for overload control. |
| overloadMessagePriorityProfile | string | O | Specifies the message priority profile name for overload control. |
Table 2-44 Enhanced Timer Configuration
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| appId | Integer | M | Specifies the application name. |
| appResponseTimeoutValue | Integer | M | Specifies the application response timeout in milliseconds. |
| cmdCodeResponseTimeoutValueMap | Map <Integer, Integer> | O | Specifies the command code response timeout for the AAR, RAR, STR, and ASR message types in milliseconds. |
Sample Request body structure for PUT operations:
{
"advancedSettings": [
{
"key": "string",
"value": "string"
}
],
"congestionControl": {
"congestionLoadSheddingProfile": "string",
"congestionMessagePriorityProfile": "string"
},
"messageTimers": [
{
"appId": 0,
"appResponseTimeoutValue": 0,
"cmdCodeResponseTimeoutValueMap": {
"258": 0,
"265": 0,
"274": 0,
"275": 0
}
}
],
"overloadControl": {
"overloadLoadSheddingProfile": "string",
"overloadMessagePriorityProfile": "string"
},
"timer": {
"connectionTimeout": 3,
"reconnectDelay": 3,
"responseTimeout": 5,
"watchdogInterval": 6
},
"topologyhiding": {
"AppsToHide": [
"All"
],
"EnableTopologyHiding": true
},
"transport": {
"protocol": "SCTP"
}
}
Sample Response body structure for GET and PUT operations:
{
"advancedSettings": [
{
"key": "string",
"value": "string"
}
],
"congestionControl": {
"congestionLoadSheddingProfile": "string",
"congestionMessagePriorityProfile": "string"
},
"messageTimers": [
{
"appId": 0,
"appResponseTimeoutValue": 0,
"cmdCodeResponseTimeoutValueMap": {
"258": 0,
"265": 0,
"274": 0,
"275": 0
}
}
],
"overloadControl": {
"overloadLoadSheddingProfile": "string",
"overloadMessagePriorityProfile": "string"
},
"timer": {
"connectionTimeout": 3,
"reconnectDelay": 3,
"responseTimeout": 5,
"watchdogInterval": 6
},
"topologyhiding": {
"AppsToHide": [
"All"
],
"EnableTopologyHiding": true
},
"transport": {
"protocol": "SCTP"
}
}
Export and Import Diameter Settings
Table 2-45 Data structures supported by Export and Import Response Body
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| date | string | - | Current timestamp |
| exportData | array | - | Exported list of Diameter Settings. For more information, see Table 2-41 |
| sourceVersion | string | - | System version of the product from which data is exported |
| topic | string | - | Topic of each managed object |
Sample Request Body structure for Import/Export operations:
{
"date": "string",
"errors": [
{
"message": "string",
"name": "string"
}
],
"exportData": {
"advancedSettings": [
{
"key": "string",
"value": "string"
}
],
"congestionControl": {
"congestionLoadSheddingProfile": "string",
"congestionMessagePriorityProfile": "string"
},
"messageTimers": [
{
"appId": 0,
"appResponseTimeoutValue": 0,
"cmdCodeResponseTimeoutValueMap": {
"258": 0,
"265": 0,
"274": 0,
"275": 0
}
}
],
"overloadControl": {
"overloadLoadSheddingProfile": "string",
"overloadMessagePriorityProfile": "string"
},
"timer": {
"connectionTimeout": 3,
"reconnectDelay": 3,
"responseTimeout": 5,
"watchdogInterval": 6
},
"topologyhiding": {
"AppsToHide": [
"All"
],
"EnableTopologyHiding": true
},
"transport": {
"protocol": "SCTP"
}
},
"sourceVersion": "string",
"topic": "string"
}
2.8 Diameter Routing Table
Table 2-46 Supported REST APIs
| Description | HTTP Method or Custom Operation | Resource URI | Possible Result Code |
|---|---|---|---|
| Export Diameter Routing Table | GET | {apiRoot}​/oc-bsf-configuration​/v1/diameter/routingTable/export |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Import Diameter Routing Table | POST | {apiRoot}​/oc-bsf-configuration​/v1/diameter/routingTable/import |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Get Diameter Routing Table | GET | {apiRoot}/oc-bsf-configuration​/v1/diameter/routingTable |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Update Diameter Routing Table | PUT | {apiRoot}​/oc-bsf-configuration​/v1/diameter/routingTable |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
Get and Update Operations
Table 2-47 Request/Response Body Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| defaultRoute | string | M | Provide the default route. |
| routeTable | string | M | The route table information. |
Table 2-48 defaultRoute
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| serverID | string | O | The serverID details. |
Table 2-49 routeTable
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| appIDs | integer | M | |
| hosts | string | M | |
| name | string | O | |
| priority | string | O | |
| realms | string | O | |
| type | Realm | O |
Sample Request body structure for PUT operations:
"defaultRoute": {
"serverId": "string"
},
"routeTable": [
{
"appIds": [
"All"
],
"hosts": [
"string"
],
"name": "string",
"priority": "string",
"realms": [
"string"
],
"serverIds": [
"string"
],
"type": "Host"
}
]
}
Sample Response body structure for GET and PUT operations:
{
"defaultRoute": {
"serverId": "string"
},
"routeTable": [
{
"appIds": [
"All"
],
"hosts": [
"string"
],
"name": "string",
"priority": "string",
"realms": [
"string"
],
"serverIds": [
"string"
],
"type": "Host"
}
]
}
Export/Import Diameter Routing Table
Table 2-50 Request/Response Body Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| date | string | Current timestamp | |
| exportData | array | Exported list of diamteter routing table. | |
| sourceVersion | string | System version of product from which data is exported | |
| topic | string | Topic of each managed object |
Sample Request Body structure for Import/Export operations:
{
"date": "string",
"exportData": {
"defaultRoute": {
"serverId": "string"
},
"routeTable": [
{
"appIds": [
"All"
],
"hosts": [
"string"
],
"name": "string",
"priority": "string",
"realms": [
"string"
],
"serverIds": [
"string"
],
"type": "Host"
}
]
},
"sourceVersion": "string",
"topic": "string"
}
2.9 Load Shedding Profile
Table 2-51 Supported REST APIs - Load Shedding Profile
| Description | HTTP Method or Custom Operation | Resource URI | Possible Result Code |
|---|---|---|---|
| Create Load Shedding Profile | POST | -H "accept: application/json" -H "Content-Type: application/json" {apiRoot}/oc-bsf-configuration/v1/diameter/loadsheddingprofiles |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Get Load Shedding Profile | GET | -H "accept: application/json" {apiRoot}/oc-bsf-configuration/v1/diameter/loadsheddingprofiles/{loadsheddingName} |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Update Load Shedding Profile | PUT | -H "accept: application/json" -H "Content-Type: application/json" {apiRoot}/oc-bsf-configuration/v1/diameter/loadsheddingprofiles/{loadsheddingName} |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Export Load Shedding Profiles | GET | -H "accept: application/json" {apiRoot}/oc-bsf-configuration/v1/diameter/loadsheddingprofiles/export |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Import Load Shedding Profiles | POST | -H "accept: application/json" -H "Content-Type: application/json" {apiRoot}/oc-bsf-configuration/v1/diameter/loadsheddingprofiles/import |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Delete Load Shedding Profile | DELETE | -H "accept: */*" {apiRoot}/oc-bsf-configuration/v1/diameter/loadsheddingprofiles/{loadsheddingName} |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too many Requests 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
Create and Update Load Shedding Profile
Table 2-52 PUT and POST Request Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| loadSheddingRules | CongestionLoadSheddingRules | Optional | Specifies the list of configured Congestion Load Shedding Rules. |
| name | string | Mandatory | Specifies the unqiue name of the load shedding profile. |
| overloadLoadSheddingRules | OverloadLoadSheddingRules | Optional | Specifies the list of configured Overload Load Shedding Rules. |
| type | Enum
The supported
values are:
|
Optional | Specifies the type of load shedding
profile. The load shedding profile can be one of the following
types:
|
Table 2-53 CongestionLoadSheddingRules
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| ansWithResultCode | Enum
The supported
values are:
|
Optional | Specifies the result code, returned in the answer response, when request message is rejected as part of congestion control. |
| discardPriority | integer | Mandatory | Specifies the discard priority for the congestion load shedding rule. The discard priority value can be a number from 0 to 15. Any request message with equal or lower priority is rejected. |
| resultCode | integer | Conditional |
Note: Specify a
value for this parameter when you choose
EXPERIMENTAL_RESULT_CODE value for
the Specifies the custom result code, which is returned in the answer response when service request is rejected due to congestion control. . |
| state | Enum
The supported
values are:
|
Optional | Specifies the type of state for which you are defining the rule. |
| vendorId | integer | Conditional |
Note: Specify
a value for this parameter when you choose
EXPERIMENTAL_RESULT_CODE value for
the Specifies the vendor ID, which is returned in the answer response when service request is rejected due to congestion control. . |
Table 2-54 OverloadLoadSheddingRules
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| ansWithResultCode | Enum
The supported
values are:
|
Optional | Specifies the result code, returned in the answer response, when request message is rejected as part of overload control. |
| discardPriority | integer | Mandatory | Specifies the discard priority for the overload shedding rule. The discard priority value can be a number from 0 to 15. Any request message with equal or lower priority is rejected. |
| level | Enum
The supported values are:
|
Mandatory | Specifies the name of the level. The name specified in this parameter must match the level name in Ingress Gateway's ocdiscardpolicies. |
| resultCode | integer | Conditional |
Note: Specify a
value for this parameter when you choose
EXPERIMENTAL_RESULT_CODE value for
the Specifies the custom result code, which is returned in the answer response when service request is rejected due to overload control. . |
| vendorId | integer | Conditional |
Note: Specify a
value for this parameter when you choose
EXPERIMENTAL_RESULT_CODE value for
the Specifies the vendor ID, which is returned in the answer response when service request is rejected due to overload control. . |
Sample Request body for Load Shedding Profile (PUT and POST operations):
{
"loadSheddingRules": [
{
"ansWithResultCode": "DIAMETER_TOO_BUSY",
"discardPriority": 0,
"resultCode": 0,
"state": "CONGESTED",
"vendorId": 0
}
],
"name": "string",
"overloadLoadSheddingRules": [
{
"ansWithResultCode": "DIAMETER_TOO_BUSY",
"discardPriority": 0,
"level": "L1",
"resultCode": 0,
"vendorId": 0
}
],
"type": "DIAMETER_TOO_BUSY"
}
Sample Response body structure for GET, PUT, and POST operation:
{
"loadSheddingRules": [
{
"ansWithResultCode": "DIAMETER_TOO_BUSY",
"discardPriority": 0,
"resultCode": 0,
"state": "CONGESTED",
"vendorId": 0
}
],
"name": "string",
"overloadLoadSheddingRules": [
{
"ansWithResultCode": "DIAMETER_TOO_BUSY",
"discardPriority": 0,
"level": "L1",
"resultCode": 0,
"vendorId": 0
}
],
"type": "DIAMETER_TOO_BUSY"
}
Import and Export Load Shedding Profile
Table 2-55 Request/Response Body Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| date | string | M | Current timestamp |
| exportData | array | M | Exported list of Load Shedding Profile. For more information, see Create and Update Load Shedding Profile. |
| key | string | M | Indicates the ID |
| sourceVersion | string | M | System version of product from which data is exported |
| topic | string | M | Topic of each managed object |
Sample Request Body structure for Load Shedding Profile Import and Export operations:
{
"date": "string",
"errors": [
{
"message": "string",
"name": "string"
}
],
"exportData": [
{
"loadSheddingRules": [
{
"ansWithResultCode": "DIAMETER_TOO_BUSY",
"discardPriority": 0,
"resultCode": 0,
"state": "CONGESTED",
"vendorId": 0
}
],
"name": "string",
"overloadLoadSheddingRules": [
{
"ansWithResultCode": "DIAMETER_TOO_BUSY",
"discardPriority": 0,
"level": "L1",
"resultCode": 0,
"vendorId": 0
}
],
"type": "DIAMETER_TOO_BUSY"
}
],
"key": "string",
"sourceVersion": "string",
"topic": "string"
}
2.10 Congestion Threshold
Table 2-56 Supported REST APIs - Congestion Threshold
| Description | HTTP Method or Custom Operation | Resource URI | Possible Result Code |
|---|---|---|---|
| Get Congestion Threshold | GET | -H "accept: application/json" {apiRoot}/oc-bsf-configuration/v1/threshold/{serviceType} |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 429: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Update Congestion Threshold | PUT | -H "accept: application/json" -H "Content-Type: application/json" {apiRoot}/oc-bsf-configuration/v1/threshold/{serviceType} |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Export Congestion Thresholds | GET | -H "accept: application/json" {apiRoot}/oc-bsf-configuration/v1/threshold/export/{serviceType} |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Import Congestion Thresholds | POST | -H "accept: application/json" -H "Content-Type: application/json" {apiRoot}/oc-bsf-configuration/v1/threshold/import/{serviceType} |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
Get and Update Congestion Threshold
Table 2-57 Request/Response Body Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| stateCalculationInterval | integer | Mandatory |
Specifies the interval at which congestion state is calculated. |
| stateChangeSampleCount | integer | Mandatory | Specifies the continuous sample counts for which calculated state remains the same. |
| thresholds[] | array | An array to define threshold values for each resource for a given state, | |
| thresholds[].state | string | Specifies the congestion state. | |
| thresholds[].resourceUsageLimit | Specifies the resource usage limit for a defined state. | ||
| thresholds[].resourceUsageLimit.cpu | integer | Specifies the threshold value for CPU message. | |
| thresholds[].resourceUsageLimit.memory | integer | Specifies the threshold value for memory message. | |
| thresholds[].resourceUsageLimit.queue | integer | Specifies the threshold value for number of messages in the queue. |
Sample Request body for Congestion Threshold PUT operation:
{
"stateCalculationInterval": 100,
"stateChangeSampleCount": 10,
"thresholds": [
{
"state": "CONGESTED",
"resourceUsageLimit": {
"cpu": 80,
"memory": 80,
"queue": 50
}
},
{
"state": "DANGER_OF_CONGESTION",
"resourceUsageLimit": {
"cpu": 60,
"memory": 60,
"queue": 30
}
}
]
}
Sample Response body structure for Congestion Threshold GET and PUT operation:
{
"stateCalculationInterval": 100,
"stateChangeSampleCount": 10,
"thresholds": [
{
"state": "CONGESTED",
"resourceUsageLimit": {
"cpu": 80,
"memory": 80,
"queue": 50
}
},
{
"state": "DANGER_OF_CONGESTION",
"resourceUsageLimit": {
"cpu": 60,
"memory": 60,
"queue": 30
}
}
]
}
Import and Export Congestion Threshold
Table 2-58 Request/Response Body Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| date | string | Current timestamp | |
| exportData | array | Exported list of Congestion Threshold. For more information, see Get and Update Congestion Threshold. | |
| key | string | Indicates the ID | |
| sourceVersion | string | System version of product from which data is exported | |
| topic | string | Topic of each managed object |
Sample Request Body structure for Congestion Threshold Import and Export operations:
{
"date": "string",
"errors": [
{
"message": "string",
"name": "string"
}
],
"exportData": {
"stateCalculationInterval": 100,
"stateChangeSampleCount": 10,
"thresholds": [
{
"state": "CONGESTED",
"resourceUsageLimit": {
"cpu": 80,
"memory": 80,
"queue": 50
}
},
{
"state": "DANGER_OF_CONGESTION",
"resourceUsageLimit": {
"cpu": 60,
"memory": 60,
"queue": 30
}
}
]
},
"sourceVersion": "string",
"topic": "string"
}
2.11 Peer Node
This section provides information for configuring Peer Node in BSF.
Resource Name: Peer Node
Table 2-59 Supported REST APIs - Peer Node
| Resource Name | Resource URI | HTTP Method or Custom Operation | Description | Possible Result Code |
|---|---|---|---|---|
| Peer Node | -H "accept: application/json" -H "Content-Type: application/json" ​/oc-bsf-configuration/v1/diameter/peernodes | POST | Create Peer Node |
200: OK 201: Created 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| -H "accept: application/json" /oc-bsf-configuration/v1/diameter/peernodes/export | GET | Get All (Export) Peer Nodes |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
|
| -H "accept: application/json" -H "Content-Type: application/json" ​/oc-bsf-configuration​/v1/diameter/peernodes/import | POST | Import Peer Nodes |
200: OK 201: Imported 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
|
| -H "accept: application/json" ​/oc-bsf-configuration​/v1/diameter/peernodes/{peernodeName} | GET | Get Peer Node |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too Many Requests 500: Internal Server Error 503: Service Unavailable |
|
| -H "accept: application/json" -H "Content-Type: application/json" ​​/oc-bsf-configuration​/v1/diameter/peernodes/{peernodeName} | PUT | Update Peer Node |
200: OK Specifies that the update is successful and provides the values in database. 201: Created 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
|
| ​-H "accept: */*" ​/oc-bsf-configuration​/v1/diameter/peernodes/{peernodeName} | DELETE | Delete Peer Node |
200: OK 204: Peer Node was succesfully deleted 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too Many Requests 500: Internal Server Error 503: Service Unavailable |
GET and PUT - Get, Create, and Update Peer Node
Table 2-60 Data structures supported by the GET and PUT Response Body
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| diamName | String | O | Unique Name of the Peer Node |
| dtype | String | O | Defines which type of Diameter Service it should take up. The value can be Application function (af), backend, diameter routing agent(dra), ocs, tdf, or udr. |
| host | String | O | The host name. Enter a FQDN, ipv4 or ipv6 address available for establishing diameter transport connections to the peer node. |
| identity | String | O | An identity to define a node in a realm. |
| initiateConnection | boolean | O | Set it to True to initiate a
connection for this peer node.
Default Value: FALSE |
| port | Number | O | The port number. Enter a number from 0 to 65535. |
| realm | String | O | The realm name, that is, FQDNs to all of that computers that transact diameter traffic. |
| reconnectLimit | Number |
Sample Request body structure for PUT operations:
{
"diamName": "string",
"dtype": "af",
"host": "string",
"identity": "string",
"initiateConnection": true,
"port": "3868",
"realm": "string",
"reconnectLimit": "3"
}
Sample Response body structure for GET and PUT operations:
{
"diamName": "string",
"dtype": "af",
"host": "string",
"identity": "string",
"initiateConnection": true,
"port": "3868",
"realm": "string",
"reconnectLimit": "3"
}
DELETE - delete peer node
Table 2-61 Data structures supported by the DELETE Response Body
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| Peer Node Name | string | M | Peer Node Name |
Get All (Export) and Import Peer Node
Table 2-62 Data structures supported by Export and Import Response Body
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| date | string | Current timestamp | |
| exportData | array | Exported list of peer nodes. | |
| key | string | Indicates the ID | |
| sourceVersion | string | System version of product from which data is exported | |
| topic | string | Topic of each managed object |
Sample Request Body structure for Import/Export operations:
{
"date": "string",
"errors": [
{
"message": "string",
"name": "string"
}
],
"exportData": [
{
"diamName": "string",
"dtype": "af",
"host": "string",
"identity": "string",
"initiateConnection": true,
"port": "3868",
"realm": "string",
"reconnectLimit": "3"
}
],
"key": "string",
"sourceVersion": "string",
"topic": "string"
}
2.12 Message Priority Profile
Table 2-63 Supported REST APIs - Message Priority Profile
| Description | HTTP Method or Custom Operation | Resource URI | Possible Result Code |
|---|---|---|---|
| Create Message Priority Profile | POST | -H "accept: application/json" -H "Content-Type: application/json" {apiRoot}/oc-bsf-configuration/v1/diameter/messagepriorityprofiles |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Get Message Priority Profile | GET | -H "accept: application/json" {apiRoot}/oc-bsf-configuration/v1/diameter/messagepriorityprofiles/{messagepriorityName} |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Update Message Priority Profile | PUT | -H "accept: application/json" -H "Content-Type: application/json" {apiRoot}/oc-bsf-configuration/v1/diameter/messagepriorityprofiles/{messagepriorityName} |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Export Message Priority Profiles | GET | -H "accept: application/json" {apiRoot}/oc-bsf-configuration/v1/diameter/messagepriorityprofiles/export |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Import Message Priority Profiles | POST | -H "accept: application/json" -H "Content-Type: application/json" {apiRoot}/oc-bsf-configuration/v1/diameter/messagepriorityprofiles/import |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Delete Message Priority Profile | DELETE | -H "accept: */*" {apiRoot}/oc-bsf-configuration/v1/diameter/messagepriorityprofiles/{messagepriorityName} |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too many Requests 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
Create and Update Message Priority Profile
Table 2-64 PUT and POST Request Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| name | string | Mandatory | Unique name of the message priority profile. |
| priorityRules [] | array | Optional | Specifies configured message priority rules. |
| priorityRules [].conditions | conditions | Optional | Specifies the conditions for message priority rule. |
| priorityRules [].conditions.application | string | Mandatory | Specifies the type of application. |
| priorityRules [].conditions.message | string | Mandatory | Specifies the type of message for the selected application. |
| priorityRules [].conditions.preDefinedAVPConditions | array | Optional | Specifies the pre-defined AVP conditons. |
| enableDRMPPriority | boolean | Optional | When this switch is enabled, the priority for the message rule is assigned from DRMP AVP. |
| messagePriority | integer | Mandatory | Specifies the priority assigned to the message. It can be a number from 0 to 15. |
| ruleName | string | Mandatory | Specifies the unique name of the message priority rule. |
| rulePriority | integer | Mandatory | Specifies the priority assigned to the message priority rule. |
Sample Request body for PUT and POST operations:
{
"name": "string",
"priorityRules": [
{
"conditions": {
"application": "Gx",
"message": "CCR",
"preDefinedAVPConditions": [
{
"conditionCCRTValue": "UPDATE_REQUEST",
"conditionCSIDValue": [
"string"
],
"conditionMCPTTIdValue": [
"string"
],
"conditionMCVideoIdValue": [
"string"
],
"conditionMPSIdValue": [
"string"
],
"conditionName": "CC-Request-Type",
"conditionReservPriorityValue": [
"string"
],
"conditionRxRTValue": [
"INITIAL_REQUEST"
],
"conditionSNRTypeValue": [
"ABORT_SESSION_REQUEST"
],
"conditionServiceURNIDValue": [
"string"
]
}
]
},
"enableDRMPPriority": true,
"messagePriority": 8,
"ruleName": "string",
"rulePriority": 3
}
]
}
Sample Response body structure for GET, PUT, and POST operations:
{
"name": "string",
"priorityRules": [
{
"conditions": {
"application": "Gx",
"message": "CCR",
"preDefinedAVPConditions": [
{
"conditionCCRTValue": "UPDATE_REQUEST",
"conditionCSIDValue": [
"string"
],
"conditionMCPTTIdValue": [
"string"
],
"conditionMCVideoIdValue": [
"string"
],
"conditionMPSIdValue": [
"string"
],
"conditionName": "CC-Request-Type",
"conditionReservPriorityValue": [
"string"
],
"conditionRxRTValue": [
"INITIAL_REQUEST"
],
"conditionSNRTypeValue": [
"ABORT_SESSION_REQUEST"
],
"conditionServiceURNIDValue": [
"string"
]
}
]
},
"enableDRMPPriority": true,
"messagePriority": 8,
"ruleName": "string",
"rulePriority": 3
}
]
}
Import and Export Message Priority Profile
Table 2-65 Request and Response Body Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| date | string | Current timestamp | |
| exportData | array | Exported list of Message Priority Profile. For more information, see Create and Update Message Priority Profile. | |
| key | string | Indicates the ID | |
| sourceVersion | string | System version of product from which data is exported | |
| topic | string | Topic of each managed object |
Sample Request Body structure for Message Priority Profile Import operation:
{
"date": "string",
"errors": [
{
"message": "string",
"name": "string"
}
],
"exportData": [
{
"name": "string",
"priorityRules": [
{
"conditions": {
"application": "Gx",
"message": "CCR",
"preDefinedAVPConditions": [
{
"conditionCCRTValue": "UPDATE_REQUEST",
"conditionCSIDValue": [
"string"
],
"conditionMCPTTIdValue": [
"string"
],
"conditionMCVideoIdValue": [
"string"
],
"conditionMPSIdValue": [
"string"
],
"conditionName": "CC-Request-Type",
"conditionReservPriorityValue": [
"string"
],
"conditionRxRTValue": [
"INITIAL_REQUEST"
],
"conditionSNRTypeValue": [
"ABORT_SESSION_REQUEST"
],
"conditionServiceURNIDValue": [
"string"
]
}
]
},
"enableDRMPPriority": true,
"messagePriority": 8,
"ruleName": "string",
"rulePriority": 3
}
]
}
],
"key": "string",
"sourceVersion": "string",
"topic": "string"
}
2.13 Diameter Error Codes
Table 2-66 Supported REST APIs - Diameter Error Codes
| Description | HTTP Method or Custom Operation | Resource URI | Possible Result Code |
|---|---|---|---|
| Get Diameter Error Codes | GET | -H "accept: application/json" {apiRoot}/oc-bsf-configuration/v1/diameter/diameterErrorCodes/{conditionName} |
200: OK SBI Error Codes is returned 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too Many Requests 500: Internal Server Error 503: Service Unavailable |
| Update Diameter Error Codes | PUT | {apiRoot}/oc-bsf-configuration/v1/diameter/diameterErrorCodes/{conditionName} |
200: OK Specifies that the update is successful and provides the values in database. 201: Created 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Export Diameter Error Codes | GET | -H "accept: application/json" {apiRoot}/oc-bsf-configuration/v1/diameter/diameterErrorCodes/export |
200: OK 201: Imported 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Import Diameter Error Codes | POST | -H "accept: application/json" -H "Content-Type: application/json" {apiRoot}/oc-bsf-configuration/v1/diameter/diameterErrorCodes/import -d " {} " |
200: OK 201: Imported 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
Get and Update Diameter Error Codes
Table 2-67 Request/Response Body Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| conditionName | string | Mandatory | Specifies the system defined name for a given condition. |
| diameterResultCode | string | Conditional | Specifies the Diameter result code for a defined condition. |
| errorMessage | string | Optional | Specifies the description for a defined condition. It is recommended to use descriptions that clearly explain the condition. |
| experimentalResultCode | string | Conditional | Specifies the custom Diameter result code for a defined condition. |
| useExperimentalResultCode | boolean | Optional | Indicates whether to use the Result Code AVP (268) or Experimental Result AVP (297) when an error result is generated by BSF. |
| vendorId | string | Conditional | Specifies the Vendor ID of the
operator or governing body that manages the code entered by the user
in the experimentalResultCode field.
|
Sample Request body for Diameter Error Codes PUT operation:
{
"conditionName": "string",
"diameterResultCode": "string",
"errorMessage": "string",
"experimentalResultCode": "string",
"useExperimentalResultCode": true,
"vendorId": "string"
}
Sample Response body structure for Diameter Error Codes GET and PUT operation:
{
"conditionName": "string",
"diameterResultCode": "string",
"errorMessage": "string",
"experimentalResultCode": "string",
"useExperimentalResultCode": true,
"vendorId": "string"
}
Import and Export Diameter Error Codes
Table 2-68 Request or Response Body Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| date | string | Optional | Current timestamp |
| errors.message | string | Optional | Error message |
| errors.name | string | Optional | Name of the error |
| exportData | array | Mandatory | Exported list of SBI Error Codes. For more information, see Table 2-67. |
| key | string | Optional | Indicates the ID |
| sourceVersion | string | Optional | System version of product from which data is exported |
| topic | string | Mandatory | Topic of each managed object |
Sample Request Body structure for Diameter Error Codes Import and Export operations:
{
"date": "string",
"errors": [
{
"message": "string",
"name": "string"
}
],
"exportData": [
{
"conditionName": "string",
"diameterResultCode": "string",
"errorMessage": "string",
"experimentalResultCode": "string",
"useExperimentalResultCode": true,
"vendorId": "string"
}
],
"key": "string",
"sourceVersion": "string",
"topic": "string"
}
2.14 Session Viewer
Table 2-69 Supported REST APIs - Session Viewer
| Description | HTTP Method or Custom Operation | Resource URI | Possible Result Code |
|---|---|---|---|
| Get PCF Bindings | GET | -H "accept: application/json" {apiRoot}/oc-bsf-query/v1/pcfBindings |
200: OK. PCF bindings is returned 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too Many Requests 500: Internal Server Error 503: Service Unavailable |
| Delete Binding IDs | POST | {apiRoot}/oc-bsf-query/v1/pcfBindings/cleanup |
200: OK. 201: Created 204: No content 401: Unauthorized 403: Forbidden 404: Not Found 500: Internal Server Error |
| Get Active Session Counter | GET | /v1/activeSessionCount/pcfBindings |
200 : OK 401: Unauthorized 403: Forbidden 404: Not Found |
Get PCF Bindings
To fetch PCF bindings, it is required to use any one of the following query parameters:
- SUPI
- GPSI
- UE Address
Table 2-70 Query Parameters
| Parameter Name | Data Type | Mandatory(M)/Optional(O) | Description |
|---|---|---|---|
| dnn | string | Optional | Specifies the Data Network Name. |
| gpsi | string | Optional | Specifies the Generic Public Subscription
Identifier. For example -
msisdn-9192503899.
|
| ipDomain | string | Optional | Specifies the IPv4 address domain identifier |
| ipv4Addr | string | Optional | Specifies the IP addresses in IPv4 format |
| ipv6Prefix | string | Optional | Specifies the IPv6 Address Prefix.
Note: When you use IPv6 prefix to query a session, ensure that you provide the full notation value. Example:
|
| mac | string | Optional | Specifies the MAC address, which is formatted as six groups of two hexadecimal digits separated by colons (:) or hyphens (-). For example, in the format hh:hh:hh:hh:hh:hh. |
| sNssaiSd | string | Optional | Specifies the Slice Differentiator (SD) for a given S-NSSAI (Single Network Slice Selection Assistance Information). This optional information is used to differentiate slice or service type across multiple network slices. |
| sNssaiSst | integer | Optional | Specifies the Slice or Service type for a given S-NSSAI (Single Network Slice Selection Assistance Information). |
| supi | string | Optional | Specifies the Subscription Permanent Identifier. For
example - imsi-450081100100001.
|
curl -X GET "http://10.75.168.25:32202/api-docs/oc-bsf-query/v1/pcfBindings?supi=imsi-450080000000001" -H "accept: application/json"Sample Response body structure for Pcf Bindings GET operation:
In the response, PCF bindings is returned as a string.
Delete PCF Bindings
Table 2-71 Request Body Parameters
| Parameter Name | Data Type | Mandatory(M)/Optional(O) | Description |
|---|---|---|---|
| bindingIds | string | Mandatory | Specifies the binding IDs to be deleted manually by the user. |
Sample request body structure for Pcf Bindings delete operation:
{
"bindingIds": [
"string"
]
}
curl -X POST "http://10.75.168.25:32202/api-docs/oc-bsf-query/v1/pcfBindings/cleanup" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"bindingIds\": [ \"string\" ]}"Get Active Session Counter
Get Active Session Counter is used to get an active session counter for a service.
There are no input parameters for this API.
Table 2-72 Response paramters
| Parameter Name | Data Type | Mandatory(M)/Optional (O) | Description |
|---|---|---|---|
| dateTime | string | NA | Time stamp of the query |
| count | string | NA | Active sessions count |
| errorMsg | integer | NA | Error message to include in the response in case the request fails. |
Sample success response:
{
"dateTime": "Tue, 02 Jan 2018 18:07:59",
"count": 2211
}
Sample failure response:
{
"dateTime": "Tue, 02 Jan 2018 18:07:59"
"errMsg": "Active Session Counting is not enabled"
}
curl -X GET "http://10.75.206.200:8000/oc-bsf-query/v1/activeSessionCount/pcfBindings" -H "accept: */*"
2.15 Bulk Import/Export Controller
This section provides information for configuring bulk import/export in BSF.
Resource Name: Bulk Import Export Controller
Table 2-73 Supported REST APIs - Bulk Import Export Controller
| Resource Name | Resource URI | HTTP Method or Custom Operation | Description | Possible Result Code |
|---|---|---|---|---|
| Bulk Import Export Controller | -H "accept: */*" -H "ConttedFiles.zip;type=application/x-zip-compressed" /oc-bsf-configuration​/v1/administration/import | POST | Bulk Import |
200: OK 201: Created 401: Unauthorized 403: Forbidden 404: Not Found |
| -H 'accept: application/json' -H 'Content-Type: application/json' -d @sampleput.json /oc-bsf-configuration​/v1/administration/import/{importResourceId}/status | GET | Import Status |
200: OK 401: Unauthorized 403: Forbidden 404: Not Found |
|
| -H 'accept: application/json' -H 'Content-Type: application/json' -d @sampleput.json /oc-bsf-configuration​/v1/administration/import/{importResourceId}/report | GET | Import Report |
200: OK 401: Unauthorized 403: Forbidden 404: Not Found |
|
| -H "accept: */*" /oc-bsf-configuration​/v1/administration/import | GET | Import Resource Ids |
200: OK 401: Unauthorized 403: Forbidden 404: Not Found |
|
| ​-H "accept: */*" -d "" /oc-bsf-configuration​/v1/administration/export | POST | Bulk Export |
200: OK 201: Created 401: Unauthorized 403: Forbidden 404: Not Found |
|
| -H "accept: application/json" /oc-bsf-configuration​/v1/administration/export/{exportResourceId}/status | GET | Export Status for BSF |
200: OK 401: Unauthorized 403: Forbidden 404: Not Found |
|
| -H "accept: application/octet-stream" /oc-bsf-configuration​/v1/administration/export/{exportResourceId}/report | GET | Export Report for BSF |
200: OK 401: Unauthorized 403: Forbidden 404: Not Found |
|
| ​-H "accept: application/octet-stream" /oc-bsf-configuration​/v1/administration/export/{exportResourceId}/download | GET | Download Exported File |
200: OK 401: Unauthorized 403: Forbidden 404: Not Found |
|
| ​ -H "accept: */*" /oc-bsf-configuration​/v1/administration/export | GET | Export Resource IDs |
200: OK 401: Unauthorized 403: Forbidden 404: Not Found |
Note:
The Bulk Import/Export APIs return a ResourceId in response to the POST request. The ResourceId is the background task id for the POST operations. This id can be used to track the import or export requests, and download the export data.
For example, the POST API for bulk export operation takes Managed Object (MO) name as input. The response of this API contains the resource id of the file created for export. You can use this resource Id to download the export data at any point of time.
- IN_PROGRESS: If the import/export is running.
- DONE: If the import/export is finished. Following are
the possible status if the import/export is in DONE status:
- SUCCESS : If the import/export is successful
- FAILED : If the import/export is failed
- PARTIAL_SUCCESS : If the import/export is partially successful
2.16 Subscriber Activity Logging
Table 2-74 Supported REST APIs for Subscriber Activity Logging
| Description | HTTP Method or Custom Operation | Resource URI | Possible Result Code |
|---|---|---|---|
| Create Subscriber Logging | POST | -H "accept: application/json" -H "Content-Type: application/json" {apiRoot}/oc-bsf-configuration/v1/ subscriberActivityLogging -d "{}" |
200: OK 201: Imported 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Get Subscriber Logs | GET | -H "accept: application/json" {apiRoot}/oc-bsf-configuration/v1/ subscriberActivityLogging/{identifierValue} |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Update Subscriber Logging | PUT | -H "accept: application/json" -H "Content-Type: application/json" {apiRoot}/oc-bsf-configuration/v1/ subscriberActivityLogging/{identifierValue} -d " {} " |
200: OK Specifies that the update is successful and provides the values in database. 201: Created 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Delete Subscriber Logging | DELETE | -H "accept: */*" {apiRoot}/oc-bsf-configuration/v1/subscriberActivityLogging/{identifierValue} |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too many Requests 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Export Subscriber Logs | GET | -H "accept: application/json" {apiRoot}/oc-bsf-configuration/v1/subscriberActivityLogging/export |
200: OK General configuration is returned 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too Many Requests 500: Internal Server Error 503: Service Unavailable |
| Import Subscriber Logs | POST | -H "accept: application/problem+json" -H "Content-Type: application/json" {apiRoot}/oc-bsf-configuration/v1/subscriberActivityLogging/import -d "{ }" |
200: OK 201: Imported 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
Get and Create Subscriber Logging
Table 2-75 Request/Response Body Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| enable | boolean | O | Enable the subscriber logging. |
| type | string | O | Identifier type |
| value | string | M | Provide the value. |
Sample Request body structure for POST operation:
{
"enable": true,
"type": "gpsi",
"value": "string"
}
Sample Response body structure for GET, POST, and PUT operations:
[
{
"date": "string",
"errors": [
{
"message": "string",
"name": "string"
}
],
"exportData": [
{
"enable": true,
"type": "gpsi",
"value": "string"
}
],
"sourceVersion": "string",
"topic": "string"
}
]
Delete Subscriber Logging
Table 2-76 Request/Response Body Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| identifierValue | string | M | Subscriber Identifier |
2.17 NRF Status
Table 2-77 BSF NRF Status Supported APIs
| Description | HTTP Method or Custom Operation | Resource URI | Possible Result Code |
|---|---|---|---|
| Get NRF Status | GET | -H "accept: application/json" {apiRoot}/oc-bsf-configuration/v1/nrfStatus |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
Table 2-78 Request/Response Body Parameters
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| nfStatus | String | M | It shows whether the BSF instance is registered, suspended, or deregistered with NRF. |
| nfType | String | M | The type of Network Function. Example: "BSF". |
| nfInstanceId | String | M | It shows the unique Instance ID of BSF registered with NRF. |
| nfFqdn | String | O | It shows the FQDN of the BSF registered with NRF. |
| nfRegistrationTime | String | O | It shows the time at which PCF registered with NRF |
| nfRegisteredWith | String | O | It shows the FQDN of the NRF with which BSF is registered. |
| nrfData | Object | M | It shows the details about the NRF. |
Table 2-79 nrfData
| Field Name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| priority | Integer | M | It shows the priority of the NRF instances. An NRF instance with priority 1 is treated as primary NRF. |
| apiRoot | String | M | |
| status | String | M | It shows the health status of the NRF instance. It could be in either healthy or unhealthy state. |
| statusChangeTime | String | M | It shows the time when the NRF status changed. |
| errorReason | Array | M | It shows the HTTP status codes or exceptions for which retry is attempted. |
| connectedTime | String | O | It shows the time when PCF last connected with primary NRF. |
| isPrimary | Boolean | M | It shows if this primary NRF or not. |
| isAttachedWithBsf | Boolean | M | It shows if this NRF instance is attached with BSF or not. |
{
"nfStatus":"REGISTERED",
"nfType":"BSF",
"nfInstanceId":"fe7d992b-0541-4c7d-ab84-c6d70b1b0123",
"nfFqdn":"ocbsf1-2-api-gateway.bsf1-2.svc.atlantic.morrisville.us.lab.oracle.com",
"nfRegistrationTime":"2022-54-22 08:50:24",
"nfRegisteredWith": "nf1stub.pdprodigiespolicy.svc:8080",
"nrfData":[
{
"priority":1,
"apiRoot":"nf2stub.pdprodigiespolicy.svc:8080",
"status":"HEALTHY",
"statusChangeTime": "2022-54-22 08:53:24",
"errorReason": null,
"connectedTime": "2022-54-22 08:54:24",
"isPrimary": true,
"isAttachedWithBsf": true
},
{ "priority":2,
"apiRoot":"nf1stub.pdprodigiespolicy.svc:8080",
"status":"UNHEALTHY",
"statusChangeTime": "2022-54-22 08:51:24",
"errorReason": "SocketTimeoutException",
"connectedTime": "2022-54-22 08:54:22",
"isPrimary": false,
"isAttachedWithBsf": false
}
]}2.18 Error Configurations
API support is available for EXPORT/IMPORT of error handler configurations.
Table 2-80 Supported REST APIs
| Description | HTTP Method or Custom Operation | Resource URI | Media Type | Possible Result Code |
|---|---|---|---|---|
| Export Error Configuration | GET | {/oc-bsf-configuration/v1/services/errorHandler/errorConfiguration/export | application/json |
200: OK 400: Bad Request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout default: default Response |
| Import Error Configuration | POST | /oc-bsf-configuration/v1/services/errorHandler/errorConfiguration/import | application/json |
201: Imported 400: Bad Request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Preconditon Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout detault: default Response |
Table 2-81 Request/Response Body Parameters
| Field Name | Data Type | Mandatory( M)/ Optional(O)/ Conditional( C) | Description |
|---|---|---|---|
| topic | string | M | Topic of each managed object |
| sourceVersion | string | O | System version of product from which data is exported |
| date | string | O | Current Timestamp |
| exportData | array | O | Exported list of error rules configurations |
{
"topic": "string",
"sourceVersion": "string",
"date": "string",
"exportData": [
{
"ruleMapperConfigs": [
{
"templateId": "string",
"action": "string",
"ruleName": "string",
"isDefault": true,
"context": {
"context": "string",
"errorInfo": {
"errorDetails": {
"status": "string",
"instance": "string",
"cause": "string",
"message": "string",
"resource": "string",
"sourceService": "PDS",
"targetService": "PDS"
},
"resourceErrorMap": {
"additionalProp1": {
"status": "string",
"instance": "string",
"cause": "string",
"message": "string",
"resource": "string",
"sourceService": "PDS",
"targetService": "PDS"
},
"additionalProp2": {
"status": "string",
"instance": "string",
"cause": "string",
"message": "string",
"resource": "string",
"sourceService": "PDS",
"targetService": "PDS"
},
"additionalProp3": {
"status": "string",
"instance": "string",
"cause": "string",
"message": "string",
"resource": "string",
"sourceService": "PDS",
"targetService": "PDS"
}
},
"trace": {
"additionalProp1": [
{
"errorState": "string",
"errorDetails": {
"status": "string",
"instance": "string",
"cause": "string",
"message": "string",
"resource": "string",
"sourceService": "PDS",
"targetService": "PDS"
}
}
],
"additionalProp2": [
{
"errorState": "string",
"errorDetails": {
"status": "string",
"instance": "string",
"cause": "string",
"message": "string",
"resource": "string",
"sourceService": "PDS",
"targetService": "PDS"
}
}
],
"additionalProp3": [
{
"errorState": "string",
"errorDetails": {
"status": "string",
"instance": "string",
"cause": "string",
"message": "string",
"resource": "string",
"sourceService": "PDS",
"targetService": "PDS"
}
}
]
}
},
"type": "string"
},
"errorMatcher": {
"errorStateDisp": {
"errorType": {
"label": "string",
"value": "string"
},
"origin": {
"label": "string",
"value": "string"
},
"operation": {
"label": "string",
"value": "string"
},
"errorStatus": {
"label": "string",
"value": "string"
},
"sourceInterface": {
"label": "string",
"value": "string"
}
},
"errorCauseDisp": {
"status": {
"label": "string",
"value": "string"
},
"instance": {
"label": "string",
"value": "string"
},
"message": {
"label": "string",
"value": "string"
},
"cause": {
"label": "string",
"value": "string"
},
"resource": {
"label": "string",
"value": "string"
}
},
"errorCause": {
"field": "string",
"match": "string",
"value": {
"status": "string",
"instance": "string",
"message": "string",
"resource": "string",
"cause": "string"
}
},
"errorState": "string"
},
"priority": 0,
"key": "string",
"errorRuleEnabled": true
}
],
"enableErrorHandler": true,
"serviceName": "string"
}
]
}2.19 BSF NRF Agent Service
Table 2-82 Supported REST APIs - NRF Agent Service
| Description | HTTP Method or Custom Operation | Resource URI | Possible Result Code |
|---|---|---|---|
| Get NRF Agent Service Configuration | GET | {apiRoot}/oc-bsf-configuration/v1/services/nrfAgentServiceConfig |
200: OK 400: Bad request 404: Not Found 500: Internal Server Error |
| Update NRF Agent Service Configuration | PUT | {apiRoot}/oc-bsf-configuration/v1/services/nrfAgentServiceConfig |
200: Update Message Profile 400: Bad request 429: Too Many Requests 500: Internal Server Error |
| Export NRF Agent Service Configuration | GET | {apiRoot}/oc-bsf-configuration/v1/services/nrfAgentServiceConfig/export |
200: OK 400: Bad request 404: Not Found 429: Too Many Requests 500: Internal Server Error |
| Import NRF Agent Service Configuration | POST | {apiRoot}/oc-bsf-configuration/v1/services/nrfAgentServiceConfig/import |
200: OK 201: Imported 400: Bad request 500: Internal Server Error |
Table 2-83 Request Parameters for POST and PUT Operations
| Parameter name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| trafficPrioritization.featureEnabled | Boolean | O |
Specifies whether to enable or disable the traffic prioritization feature at NRF Agent service. Default value: Disabled |
| trafficPrioritization.incomingPriorityHeader | String | O | Specifies the name of the incoming
header.
Default value:
|
| trafficPrioritization.outgoingPriorityHeader | String | O | Specifies the name of the outgoing
header.
Default value:
|
| trafficPrioritization.nfSubscribeMessageTypes | Array | O |
Specifies message types for NF subscription. |
| trafficPrioritization.messageTypes.messageType | String | O |
This field lists all the BSF interactions with NRF message types with priority. |
| trafficPrioritization.messageTypes.Priority | Integer | O | Specifies the priority for the
selected message type.
Default value: Default
value of the priority is set to 1 for the following message
types:
|
curl -X 'GET' \
'http://10.123.179.120:32033/oc-bsf-configuration/v1/services/nrfAgentServiceConfig' \
-H 'accept: application/json'
Sample Request body for PUT and POST operations
{
"trafficPrioritization": {
"featureEnabled": false,
"incomingPriorityHeader": "3gpp-sbi-message-priority",
"outgoingPriorityHeader": "3gpp-sbi-message-priority",
"nfSubscribeMessageTypes": [
{
"messageType": "AutonomousNfDiscovery",
"subscribeNfTypes": [
{
"nfType": "BSF",
"priority": "22"
}
]
}
],
"messageTypes": [
{
"messageType": "AutonomousOnDemandNFRegistration",
"priority": "22"
}
]
}
}
2.20 Message Profiles
Table 2-84 Supported REST APIs - Message Profiles
| Description | HTTP Method or Custom Operation | Resource URI | Possible Result Code |
|---|---|---|---|
| Create Message Profile | POST | {apiRoot}/oc-bsf-configuration/v1/services/common/messageProfiles |
200: OK 201: Created 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Get Message Profile | GET | {apiRoot}/oc-bsf-configuration/v1/services/common/messageProfiles/{messageProfileName} |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too Many Requests 500: Internal Server Error 503: Service Unavailable |
| Update Message Profile | PUT | {apiRoot}/oc-bsf-configuration/v1/services/common/messageProfiles/{messageProfileName} |
200: Update Message Profile 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error 503: Service Unavailable 504: Gateway Timeout |
| Delete Message Profile | DELETE | {apiRoot}/oc-bsf-configuration/v1/services/common/messageProfiles/{messageProfileName} |
200: deleteMessageProfile 204: Message Profile was successfully deleted 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too Many Requests 500: Internal Server Error 503: Service Unavailable |
| Export Message Profiles | GET | {apiRoot}/oc-bsf-configuration/v1/services/common/messageProfiles/export |
200: OK 400: Bad request 401: Unauthorized 403: Forbidden 404: Not Found 429: Too Many Requests 500: Internal Server Error 503: Service Unavailable |
| Import Message Profiles | POST | {apiRoot}/oc-bsf-configuration/v1/services/common/messageProfiles/import?action={action}
Supported action: replace (to replace the existing configuration with the imported configuration) |
200: OK 201: Imported 400: Bad request (Indicates that one or more of the mandatory parameters are missing in the request or the structure is not aligned as expected) 401: Unauthorized 403: Forbidden 404: Not Found 405: Method Not Allowed 406: Not Acceptable 408: Request Timeout 409: Conflict 412: Precondition Failed 500: Internal Server Error (Indicates an error in CM service to apply the request. In case of this error, CM service logs must be verified) 503: Service Unavailable 504: Gateway Timeout |
Table 2-85 Request Parameters for POST and PUT Operations
| Parameter name | Data Type | Mandatory(M)/Optional(O)/Conditional(C) | Description |
|---|---|---|---|
| messageProfileName | String | M | Name of the message profile |
| serviceType | String | O | Name of the service for which message
profile is applied.
Note: Currently, BSF supports only
|
| messageProfileAttributes.messageID | String | M | Specifies the unique identifier that defines a message profile rule. |
| messageProfileAttributes.rulePriority | Integer | M |
Specifies the priority of the rule. Rule priority is an integer value between 1 to 65535.Note: Each message priority profile includes a unique rule priority for all the rules created in it and not for each message type. Unique rule priority is for per message profile, not for per message type. |
| messageProfileAttributes.interfaceType | String | M | Specifies the interface type
such as Nbsf_Management or
Npcf_Binding_Audit for which the rule is
defined.
Default value:
|
| messageProfileAttributes.messageType | String | M | Specifies the message type for
an interface for which the rule is defined.
Possible
values are:
Default value: For For
|
| messageProfileAttributes.messageProfileFilterConditions.attributeName | String | C | Name of the attribute to be
filtered out such as 3gpp-sbi-message-priority or
oc-message-priority.
Default
value: Note: Message Profile Filter Conditions is not a mandatory attribute for rules. Note: When Request Priority
Override is selected as
If Message Profile Filter Conditions is not configured the rule is applicable for all priority values. |
| messageProfileAttributes.messageProfileFilterConditions.attributeValue | Integer | C |
This is an optional parameter to mention the value of the attribute. That is, it is not mandatory for each rule, and it can be left blank. This parameter accepts either a single value or a range of values between 0 to 31. It does not accept any value outside the range 0-31. |
| messageProfileAttributes.requestPriorityOverride | String | M | Specifies the rule to override
the request priority value mentioned in the request header, consider
the request priority as per
messageProfileAttributes.requestPriorityValue,
and assign a response priority as configured in
messageProfileAttributes.responsePriorityAssign.
Possible values are:
Default value:
|
| messageProfileAttributes.requestPriorityValue | Integer | C |
This parameter must be configured when the value of
requestPriorityOverride parameter is
either It allows to mention the custom request priority value. Range: 0-31 |
| messageProfileAttributes.responsePriorityAssign | String | M |
It specifies the rule to specify response priority value. Possible values are:
Default value: |
| messageProfileAttributes.responsePriorityValue | C | This parameter must be
configured only when the value of
responsePriorityAssign parameter is
Custom. It allows to mention the custom
response priority value.
Range: 0-31 |
curl -X 'POST' \
'http://10.123.179.120:32033/oc-bsf-configuration/v1/services/common/messageProfiles' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"messageProfileName": "string",
"serviceType": "BSF_Management",
"messageProfileAttributes": [
{
"messageID": "Alphanumeric and Underscores, maxLenth=100",
"rulePriority": Number in range 1-65535,
"interfaceType": "Nbsf_Management" or "Npcf_Binding_Audit",
"messageType": "Register" or "Deregister" or "Discovery" or "Audit_Notify",
"messageProfileFilterConditions": [
{ "attributeName": "3gpp-sbi-message-priority" or "oc-message-priority", "attributeValue": ['single number' or range 'lower-number-higher-number', numbers can be 0 to 31] }
],
"requestPriorityOverride": "Never" or "Always" or "If Not Present"",
"requestPriorityValue": Number in range 0-31,
"responsePriorityAssign": "Never" or "Evaluated Request Priority" or "Custom",
"responsePriorityValue": Number in range 0-31
}
]
}'Sample response body for PUT and POST operations:
{
"messageProfileName": "string",
"serviceType": "BSF_Management",
"messageProfileAttributes": [
{
"messageID": "101",
"rulePriority": 1,
"interfaceType": "Nbsf_Management",
"messageType": "Register",
"messageProfileFilterConditions": [
{
"attributeName": "3gpp-sbi-message-priority",
"attributeValue": "22"
}
],
"requestPriorityOverride": "Always",
"requestPriorityValue": 24,
"responsePriorityAssign": "Custom",
"responsePriorityValue": 21
}
]
}
Import and Export Message Priority Profile
Table 2-86 Request and Response Body Parameters
| Field Name | Data Type | Description |
|---|---|---|
| date | string | Current timestamp |
| exportData | array | Exported list of Message Profile. For more information, see Table 2-85. |
| key | string | Indicates the ID |
| sourceVersion | string | System version of product from which data is exported |
| topic | string | Topic of each managed object |
Sample Request Body structure for Message Profile Import operation:
{
"topic": "string",
"sourceVersion": "string",
"date": "string",
"exportData": [
{
"messageProfileName": "string",
"serviceType": "BSF_Management",
"messageProfileAttributes": [
{
"messageID": "101",
"rulePriority": 1,
"interfaceType": "Nbsf_Management",
"messageType": "Register",
"messageProfileFilterConditions": [
{
"attributeName": "3gpp-sbi-message-priority",
"attributeValue": "22"
}
],
"requestPriorityOverride": "Always",
"requestPriorityValue": 24,
"responsePriorityAssign": "Custom",
"responsePriorityValue": 21
}
]
} ],
"errors": [
{
"name": "string",
"message": "string"
}
]
}