Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Note
titleObsolete Note

We are in the process of moving this xApp writing guide to https://docs.o-ran-sc.org.

Please refer to App Writing Guide for latest guide.

JSON schema is used to describe the attributes and values in the xApp descriptor JSON file. The xApp onboarding process verifies the types and values of the xApp parameters in the descriptor.

...

When an operator is onboarding an xApp that defines a control section, he/she will provide the controls section schema with together with the xApp descriptor.

...

  • messaging: this schema defines the messaging parameters structure

    Code Block
    	    "messaging": {
    			"type": "object",
    			"$id": "#/properties/messaging",
    			"title": "The Messaging Schema",
    			"properties": {
    				"ports": {
    	  	     	   	"$id": "#/properties/messaging/ports",
    	  				"type": "array",
    	  				"title": "The Ports for Messaging",
    					"items":{
    	  					"$id": "#/properties/messaging/ports/items",
    	  					"type": "object",
    	  					"title": "The Item of Port",
    						"required": ["name", "container", "port"],		
    					    "dependencies": {
    					      "txMessages": ["rxMessages", "policies"],
    						  "rxMessages": ["txMessages", "policies"],
    						  "policies": ["rxMessages", "txMessages"]
    					    },
    	  					"properties": {
    							"name": {
    								"$id": "#/properties/messaging/ports/items/name",
    								"type": "string",
    								"title": "The Name of the Port",
    								"default": "App",
    								"examples": [
    									"App"
    								]
    							},
    							"container": {
    								"$id": "#/properties/messaging/ports/items/container",
    								"type": "string",
    								"title": "The Container of the Port",
    								"default": "xapp",
    								"examples": [
    									"xapp"
    								]
    							},
    							"port": {
    								"$id": "#/properties/messaging/ports/items/port",
    								"type": "integer",
    								"title": "The Port Number",
    								"default": 8080,
    								"examples": [
    									8080
    								]
    							},
    							"description": {
    								"$id": "#/properties/messaging/ports/items/description",
    								"type": "string",
    								"title": "The description for the port",
    								"default": "port description",
    								"examples": [
    									"port description"
    								]
    							},
    			                "txMessages": {
    								"$id": "#/properties/messaging/ports/items/txmessages",
    			                    "type": "array",
    								"title": "The txMessage Types",
    			                    "items":{
    									"$id": "#/properties/messaging/ports/items//txmessages/item",
    									"type": "string",
    									"title": "The txMessage Types Item",
    									"default": "RIC_SUB",
    									"examples": [
    										"RIC_SUB"
    									]
    								}
    			                },
    			                "rxMessages": {
    								"$id": "#/properties/messaging/ports/items/rxmessages",
    			                    "type": "array",
    								"title": "The rxMessage Types",
    			                    "items":{
    									"$id": "#/properties/messaging/ports/items/rxmessages/item",
    									"type": "string",
    									"title": "The rxMessage Types Item",
    									"default": "RIC_SUB",
    									"examples": [
    										"RIC_SUB"
    									]
    								}
    			                },
    			                "policies": {
    								"$id": "#/properties/messaging/ports/items/policies",
    			                    "type": "array",
    								"title": "The Policies Types",
    			                    "items":{
    									"$id": "#/properties/messaging/ports/items/policies/item",
    									"type": "integer",
    									"title": "The Policy Types Item",
    									"default": 1,
    									"examples": [
    										1
    									]
    								}
    			                }
    					  	}
    					}
    				}
    			},
                "required": [
                    "ports"
                ]
    				
    		},



  • metrics: this schema defines the metrics structure

    Code Block
    		"metrics": {
    			"type": "array",
    			"$id": "#/properties/metrics",
    			"title": "The Metrics Schema",
    			"items": {
    				"$id": "#/properties/metrics/items",
    				"type": "object",
    				"title": "The Metrics Items Schema",
    				"required": [
    					"objectName",
    					"objectInstance",
    					"name",
    					"type",
    					"description"
    				],
    				"properties": {
    					"objectName": {
    						"$id": "#/properties/metrics/items/objectname",
    						"type": "string",
    						"title": "The Object Name"
    					},
    					"objectInstance": {
    						"$id": "#/properties/metrics/items/objectinstance",
    						"type": "string",
    						"title": "The Object Instance"
    					},
    					"name": {
    						"$id": "#/properties/metrics/items/name",
    						"type": "string",
    						"title": "The Object Name"
    					},
    					"type": {
    						"$id": "#/properties/metrics/items/type",
    						"type": "string",
    						"title": "The Object Type"
    					},
    					"description": {
    						"$id": "#/properties/metrics/items/description",
    						"type": "string",
    						"title": "The Object Description"
    					}
    				}
    			}
    		}
    	},


  • Controls: This section will be replaced by the submitted control section schema. If the controls section schema is not provided, the following will be used to make sure that the xApp onboarder will reject an xApp descriptor with an undefined control section.

    Code Block
    		"controls": {
    			"required": [
    				"__empty_control_section__"
    			]
    		}

    You can download the schema file here

    View file
    nameschema.json
    height250