Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Starting TEIV with Docker Compose

To start TEIV navigate to the 'docker-compose' directory in the 'teiv' repo and run 'docker-compose up'. This will bring up 3 Kafka containers, Zookeeper, PostgreSQL using PostGIS, TEIV Exposure, and TEIV Ingestion. The database won't be populated with any topology data, but the 'cloudEventProducer.sh' script in 'docker-compose/cloudEventProducer' can be used to populate the database with sample data that will enable querying of the database.


Example Data
{
  "entities": {
    "o-ran-smo-teiv-oam:ManagedElement": [
      {
        "id": "urn:3gpp:dn:ManagedElement=NR01",
        "attributes": {
          "fdn": "ManagedElement=NR01",
          "cmId": {
            "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
            "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]"
          }
        }
      }
    ],
    "o-ran-smo-teiv-ran:GNBDUFunction": [
      {
        "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
        "attributes": {
          "gNBDUId": 1,
          "gNBId": 1,
          "gNBIdLength": 23,
          "dUpLMNId": {
            "mcc": 353,
            "mnc": 87
          },
          "fdn": "ManagedElement=NR01,GNBDUFunction=1",
          "cmId": {
            "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
            "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]"
          }
        }
      }
    ],
    "o-ran-smo-teiv-ran:NRSectorCarrier": [
      {
        "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1",
        "attributes": {
          "arfcnDL": 4000,
          "arfcnUL": 40000,
          "frequencyDL": 4,
          "frequencyUL": 40,
          "fdn": "ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1",
          "cmId": {
            "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
            "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRSectorCarrier[@id=1]"
          }
        }
      },
      {
        "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",
        "attributes": {
          "arfcnDL": 5000,
          "arfcnUL": 50000,
          "frequencyDL": 5,
          "frequencyUL": 50,
          "fdn": "ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",
          "cmId": {
            "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
            "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRSectorCarrier[@id=2]"
          }
        }
      },
      {
        "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",
        "attributes": {
          "arfcnDL": 6000,
          "arfcnUL": 60000,
          "frequencyDL": 6,
          "frequencyUL": 60,
          "fdn": "ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",
          "cmId": {
            "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
            "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRSectorCarrier[@id=3]"
          }
        }
      }
    ],
    "o-ran-smo-teiv-ran:NRCellDU": [
      {
        "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1",
        "attributes": {
          "cellLocalId": 1,
          "nRTAC": 40,
          "nRPCI": 400,
          "nCI": 24577,
          "fdn": "ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1",
          "cmId": {
            "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
            "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRCellDU[@id=1]"
          }
        }
      },
      {
        "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
        "attributes": {
          "cellLocalId": 2,
          "nRTAC": 50,
          "nRPCI": 500,
          "nCI": 24578,
          "fdn": "ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
          "cmId": {
            "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
            "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRCellDU[@id=2]"
          }
        }
      }
    ],
    "o-ran-smo-teiv-ran:AntennaCapability": [
      {
        "id": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1",
        "attributes": {
          "eUtranFqBands": "[1,2,3]",
          "geranFqBands": "[10,11,12]",
          "nRFqBands": "[100,101,102]",
          "fdn": "ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1",
          "cmId": {
            "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
            "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-ComTop:NodeSupport[@id=1]/o-ran-smo-RmeSectorEquipmentFunction:SectorEquipmentFunction[@id=1]"
          }
        }
      },
      {
        "id": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2",
        "attributes": {
          "eUtranFqBands": "[4,5,6]",
          "geranFqBands": "[13,14,15]",
          "nRFqBands": "[103,104,105]",
          "fdn": "ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2",
          "cmId": {
            "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
            "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-ComTop:NodeSupport[@id=1]/o-ran-smo-RmeSectorEquipmentFunction:SectorEquipmentFunction[@id=2]"
          }
        }
      }
    ],
    "o-ran-smo-teiv-equipment:AntennaModule": [
      {
        "id": "urn:o-ran:smo-teiv-equipment:1",
        "attributes": {
          "antennaModelNumber": "1",
          "mechanicalAntennaBearing": 50,
          "mechanicalAntennaTilt": 10,
          "positionWithinSector": "Unknown",
          "totalTilt": 14,
          "electricalAntennaTilt": 2,
          "fdn": "Unknown",
          "cmId": {
            "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
            "resourceIdentifier": "Unknown"
          }
        }
      },
      {
        "id": "urn:o-ran:smo-teiv-equipment:2",
        "attributes": {
          "antennaModelNumber": "2",
          "mechanicalAntennaBearing": 45,
          "mechanicalAntennaTilt": 12,
          "positionWithinSector": "Unknown",
          "totalTilt": 15,
          "electricalAntennaTilt": 1,
          "fdn": "Unknown",
          "cmId": {
            "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
            "resourceIdentifier": "Unknown"
          }
        }
      }
    ],
    "o-ran-smo-teiv-equipment:Site": [
      {
        "id": "urn:o-ran:smo-teiv-equipment:1",
        "attributes": {
          "name": "Site-1",
          "geo-location": {
            "latitude": 41.73297,
            "longitude": -78.007696
          },
          "cmId": {
            "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
            "resourceIdentifier": "Unknown"
          }
        }
      },
      {
        "id": "urn:o-ran:smo-teiv-equipment:2",
        "attributes": {
          "name": "Site-2",
          "geo-location": {
            "latitude": 46.73297,
            "longitude": -76.007696
          },
          "cmId": {
            "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
            "resourceIdentifier": "Unknown"
          }
        }
      }
    ],
    "o-ran-smo-teiv-ran:Sector": [
      {
        "id": "urn:o-ran:smo-teiv-ran:1",
        "attributes": {
          "sectorId": 1,
          "azimuth": 75.345,
          "geo-location": {
            "latitude": 40.73297,
            "longitude": -74.007696
          }
        }
      },
      {
        "id": "urn:o-ran:smo-teiv-ran:2",
        "attributes": {
          "sectorId": 2,
          "azimuth": 90.8967,
          "geo-location": {
            "latitude": 41.73297,
            "longitude": -73.007696
          }
        }
      }
    ],
    "o-ran-smo-teiv-cloud:CloudifiedNF": [
      {
        "id": "urn:o-ran:smo-teiv-cloud:1",
        "attributes": {
          "name": "CloudifiedNF-1"
        }
      }
    ],
    "o-ran-smo-teiv-cloud:NFDeployment": [
      {
        "id": "urn:o-ran:smo-teiv-cloud:1",
        "attributes": {
          "name": "NFDeployment-1"
        }
      }
    ]
  },
  "relationships": {
    "o-ran-smo-teiv-oam-to-ran:MANAGEDELEMENT_MANAGES_GNBDUFUNCTION": [
      {
        "id": "urn:o-ran:smo-teiv-oam-to-logical:1",
        "aSide": "urn:3gpp:dn:ManagedElement=NR01",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1"
      }
    ],
    "o-ran-smo-teiv-ran:GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER": [
      {
        "id": "urn:o-ran:smo-teiv-ran:1",
        "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1"
      },
      {
        "id": "urn:o-ran:smo-teiv-ran:2",
        "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2"
      },
      {
        "id": "urn:o-ran:smo-teiv-ran:3",
        "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3"
      }
    ],
    "o-ran-smo-teiv-ran:GNBDUFUNCTION_PROVIDES_NRCELLDU": [
      {
        "id": "urn:o-ran:smo-teiv-ran:1",
        "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1"
      },
      {
        "id": "urn:o-ran:smo-teiv-ran:2",
        "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2"
      }
    ],
    "o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER": [
      {
        "id": "urn:o-ran:smo-teiv-ran:1",
        "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1"
      },
      {
        "id": "urn:o-ran:smo-teiv-ran:2",
        "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2"
      },
      {
        "id": "urn:o-ran:smo-teiv-ran:3",
        "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3"
      }
    ],
    "o-ran-smo-teiv-ran:NRSECTORCARRIER_USES_ANTENNACAPABILITY": [
      {
        "id": "urn:o-ran:smo-teiv-ran:1",
        "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1"
      },
      {
        "id": "urn:o-ran:smo-teiv-ran:2",
        "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"
      },
      {
        "id": "urn:o-ran:smo-teiv-ran:3",
        "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"
      }
    ],
    "o-ran-smo-teiv-equipment-to-ran:ANTENNAMODULE_SERVES_ANTENNACAPABILITY": [
      {
        "id": "urn:o-ran:smo-teiv-equipment-to-ran:1",
        "aSide": "urn:o-ran:smo-teiv-equipment:1",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1"
      },
      {
        "id": "urn:o-ran:smo-teiv-equipment-to-ran:2",
        "aSide": "urn:o-ran:smo-teiv-equipment:2",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"
      }
    ],
    "o-ran-smo-teiv-equipment:ANTENNAMODULE_INSTALLED_AT_SITE": [
      {
        "id": "urn:o-ran:smo-teiv-equipment:1",
        "aSide": "urn:o-ran:smo-teiv-equipment:1",
        "bSide": "urn:o-ran:smo-teiv-equipment:1"
      },
      {
        "id": "urn:o-ran:smo-teiv-equipment:2",
        "aSide": "urn:o-ran:smo-teiv-equipment:2",
        "bSide": "urn:o-ran:smo-teiv-equipment:2"
      }
    ],
    "o-ran-smo-teiv-equipment-to-ran:SECTOR_GROUPS_NRCELLDU": [
      {
        "id": "urn:o-ran:smo-teiv-equipment-to-ran:1",
        "aSide": "urn:o-ran:smo-teiv-ran:1",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1"
      },
      {
        "id": "urn:o-ran:smo-teiv-equipment-to-ran:2",
        "aSide": "urn:o-ran:smo-teiv-ran:2",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2"
      },
      {
        "id": "urn:o-ran:smo-teiv-equipment-to-ran:3",
        "aSide": "urn:o-ran:smo-teiv-ran:2",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=3"
      }
    ],
    "o-ran-smo-teiv-oam-to-cloud:NFDEPLOYMENT_SERVES_MANAGEDELEMENT": [
      {
        "id": "urn:o-ran:smo-teiv-oam-to-cloud:1",
        "aSide": "urn:o-ran:smo-teiv-cloud:1",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01"
      }
    ],
    "o-ran-smo-teiv-oam-to-cloud:MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF": [
      {
        "id": "urn:o-ran:smo-teiv-oam-to-cloud:1",
        "aSide": "urn:3gpp:dn:ManagedElement=NR01",
        "bSide": "urn:o-ran:smo-teiv-cloud:1"
      }
    ],
    "o-ran-smo-teiv-cloud:CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT": [
      {
        "id": "urn:o-ran:smo-teiv-cloud:1",
        "aSide": "urn:o-ran:smo-teiv-cloud:1",
        "bSide": "urn:o-ran:smo-teiv-cloud:1"
      }
    ],
    "o-ran-smo-teiv-cloud-to-ran:NFDEPLOYMENT_SERVES_GNBDUFUNCTION": [
      {
        "id": "urn:o-ran:smo-teiv-cloud-to-ran:1",
        "aSide": "urn:o-ran:smo-teiv-cloud:1",
        "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1"
      }
    ]
  }
}

Retrieving and using topology modules

Topology & Inventory provides APIs to enable users to query module data that can be used to understand the existing topology and inventory model, parse the modules, and understand what objects are supported over the R1 interface, so adequate queries can be made on topology and inventory data.

The API endpoints returning lists support pagination. The default value for number of items returned is 500, which is also the upper limit.

Sample request to fetch a list of all modules in TEIV:

GET https://<host>/topology-inventory/<API_VERSION>/schemas


Response:

GET schemas Response
{
    "items": [
        {
            "domain": [],
            "name": "o-ran-smo-teiv-common-yang-extensions",
            "content": {
                "href": "/schemas/o-ran-smo-teiv-common-yang-extensions/content"
            },
            "revision": "2024-05-02"
        },
        {
            "domain": [
                "OAM_TO_CLOUD"
            ],
            "name": "o-ran-smo-teiv-oam-to-cloud",
            "content": {
                "href": "/schemas/o-ran-smo-teiv-oam-to-cloud/content"
            },
            "revision": "2024-05-02"
        },
        {
            "domain": [],
            "name": "o-ran-smo-teiv-common-yang-types",
            "content": {
                "href": "/schemas/o-ran-smo-teiv-common-yang-types/content"
            },
            "revision": "2024-05-02"
        },
        {
            "domain": [
                "OAM"
            ],
            "name": "o-ran-smo-teiv-oam",
            "content": {
                "href": "/schemas/o-ran-smo-teiv-oam/content"
            },
            "revision": "2024-05-02"
        },
        {
            "domain": [
                "OAM_TO_RAN"
            ],
            "name": "o-ran-smo-teiv-oam-to-ran",
            "content": {
                "href": "/schemas/o-ran-smo-teiv-oam-to-ran/content"
            },
            "revision": "2024-05-02"
        },
        {
            "domain": [
                "RAN"
            ],
            "name": "o-ran-smo-teiv-ran",
            "content": {
                "href": "/schemas/o-ran-smo-teiv-ran/content"
            },
            "revision": "2024-05-02"
        },
        {
            "domain": [
                "EQUIPMENT"
            ],
            "name": "o-ran-smo-teiv-equipment",
            "content": {
                "href": "/schemas/o-ran-smo-teiv-equipment/content"
            },
            "revision": "2024-05-02"
        },
        {
            "domain": [
                "CLOUD_TO_RAN"
            ],
            "name": "o-ran-smo-teiv-cloud-to-ran",
            "content": {
                "href": "/schemas/o-ran-smo-teiv-cloud-to-ran/content"
            },
            "revision": "2024-05-02"
        },
        {
            "domain": [
                "CLOUD"
            ],
            "name": "o-ran-smo-teiv-cloud",
            "content": {
                "href": "/schemas/o-ran-smo-teiv-cloud/content"
            },
            "revision": "2024-05-02"
        },
        {
            "domain": [
                "EQUIPMENT_TO_RAN"
            ],
            "name": "o-ran-smo-teiv-equipment-to-ran",
            "content": {
                "href": "/schemas/o-ran-smo-teiv-equipment-to-ran/content"
            },
            "revision": "2024-05-02"
        }
    ],
    "self": {
        "href": "/schemas?offset=0&limit=500"
    },
    "first": {
        "href": "/schemas?offset=0&limit=500"
    },
    "prev": {
        "href": "/schemas?offset=0&limit=500"
    },
    "next": {
        "href": "/schemas?offset=0&limit=500"
    },
    "last": {
        "href": "/schemas?offset=0&limit=500"
    },
    "totalCount": 10
}


Sample request to fetch a list of all modules related to the CLOUD domain:

GET https://<host>/topology-inventory/<API_VERSION>/schemas?domain=.*CLOUD.*


Response:

GET CLOUD Schema Response
{
    "items": [
        {
            "domain": [
                "CLOUD"
            ],
            "name": "o-ran-smo-teiv-cloud",
            "content": {
                "href": "/schemas/o-ran-smo-teiv-cloud/content"
            },
            "revision": "2024-05-02"
        }
    ],
    "self": {
        "href": "/schemas?offset=0&limit=500"
    },
    "first": {
        "href": "/schemas?offset=0&limit=500"
    },
    "prev": {
        "href": "/schemas?offset=0&limit=500"
    },
    "next": {
        "href": "/schemas?offset=0&limit=500"
    },
    "last": {
        "href": "/schemas?offset=0&limit=500"
    },
    "totalCount": 1
}


Sample request to fetch the module data for the o-ran-smo-teiv-ran module:


Reading and querying topology and inventory


Reading entities and relationships


Querying entities and relationships















  • No labels