Example: PNF in AAI
Papyrus Class diagram, containment only
AAI PNF – detailed information
Pnf: class-level metadata
description | PNF represents a physical network function. typically equipment used in the D1 world. in 1607, this will be populated by SDN-C to represent a premises router that a uCPE connects to. But this can be used to represent any physical device that is not an AIC node or uCPE. |
---|---|
indexedProps | pnf-name,orchestration-status,inv-status,model-invariant-id,model-version-id,operational-status,admin-status |
searchable | pnf-name |
uniqueProps | pnf-name |
container | pnfs |
namespace | network |
uriTemplate | /network/pnfs/pnf/{pnf-name} |
requiredProps | pnf-name,in-maint |
Pnf: attribute information
Attribute name | required | type | xml-key | default-value | description | metadata property | metadata value |
---|---|---|---|---|---|---|---|
pnf-name | TRUE | java.lang.String | TRUE | unique name of Physical Network Function. | |||
pnf-name2 | java.lang.String | name of Physical Network Function. | |||||
selflink | java.lang.String | URL to endpoint where AAI can get more details. | |||||
pnf-name2-source | java.lang.String | source of name2 | |||||
pnf-id | java.lang.String | id of pnf | |||||
equip-type | java.lang.String | Equipment type. Source of truth should define valid values. | |||||
equip-vendor | java.lang.String | Equipment vendor. Source of truth should define valid values. | |||||
equip-model | java.lang.String | Equipment model. Source of truth should define valid values. | |||||
management-option | java.lang.String | identifier of managed customer | |||||
orchestration-status | java.lang.String | Orchestration status of this pnf | |||||
ipaddress-v4-oam | java.lang.String | ipv4-oam-address with new naming convention for IP addresses | |||||
sw-version | java.lang.String | sw-version is the version of SW for the hosted application on the PNF. | |||||
in-maint | TRUE | java.lang.Boolean | FALSE | Used to indicate whether or not this object is in maintenance mode (maintenance mode = true). This field (in conjunction with prov-status) is used to suppress alarms and vSCL on VNFs/VMs. | |||
frame-id | java.lang.String | ID of the physical frame (relay rack) where pnf is installed. | |||||
serial-number | java.lang.String | Serial number of the device | |||||
ipaddress-v4-loopback-0 | java.lang.String | IPV4 Loopback 0 address | |||||
ipaddress-v6-loopback-0 | java.lang.String | IPV6 Loopback 0 address | |||||
ipaddress-v4-aim | java.lang.String | IPV4 AIM address | |||||
ipaddress-v6-aim | java.lang.String | IPV6 AIM address | |||||
ipaddress-v6-oam | java.lang.String | IPV6 OAM address | |||||
inv-status | java.lang.String | CANOPI's inventory status. Only set with values exactly as defined by CANOPI. | |||||
resource-version | java.lang.String | Used for optimistic concurrency. Must be empty on create, valid on update and delete. | |||||
prov-status | java.lang.String | Prov Status of this device (not under canopi control) Valid values [PREPROV/NVTPROV/PROV] | |||||
nf-role | java.lang.String | Nf Role is the role performed by this instance in the network. | |||||
admin-status | java.lang.String | admin Status of this PNF | |||||
operational-status | java.lang.String | Store the operational-status for this object. | |||||
model-customization-id | java.lang.String | Store the model-customization-id for this object. | |||||
model-invariant-id | java.lang.String | The ASDC model id for this resource model. | visibility | deployment | |||
requires | model-version-id | ||||||
dbAlias | model-invariant-id-local | ||||||
model-version-id | java.lang.String | The ASDC model version for this resource model. | visibility | deployment | |||
requires | model-invariant-id | ||||||
dbAlias | model-version-id-local | ||||||
privateEdge | service-design-and-creation/models/model/{model-invariant-id}/model-vers/model-ver/{model-version-id} | ||||||
pnf-ipv4-address | java.lang.String | This is the IP address (IPv4) for the PNF itself. This is the IPv4 address that the PNF iself can be accessed at. | |||||
pnf-ipv6-address | java.lang.String | This is the IP address (IPv6) for the PNF itself. This is the IPv6 address that the PNF iself can be accessed at. | |||||
software-versions | inventory.aai.onap.org.v16.SoftwareVersions | ||||||
relationship-list | inventory.aai.onap.org.v16.RelationshipList | ||||||
p-interfaces | inventory.aai.onap.org.v16.PInterfaces | ||||||
lag-interfaces | inventory.aai.onap.org.v16.LagInterfaces | ||||||
vrfs | inventory.aai.onap.org.v16.Vrfs |
PnfRegistration VES event comparison
Reference: VES 7.1#1.2.39PnfRegistration
Reference for AAI atribute descriptions: aai-schema-1.5.0 - aai_swagger_v16.html#/definitions/pnf
Attribute Name | Type | Mult. | Description | Attribute name - AAI Pnf Instance | Attribute description - AAI Pnf Instance |
---|---|---|---|---|---|
additionalFields | HashMap | 0..1 | Additional pnfRegistration fields if needed | ||
lastServiceDate | String | 0..1 | TS 32.692 dateOfLastService = date of last service; e.g. 15022017 | ||
macAddress | String | 0..1 | MAC address of OAM interface of the unit | (LInterfaceType: macaddr or PInterfaceType: macAddresss?) | |
manufactureDate | String | 0..1 | TS 32.692 dateOfManufacture = manufacture date of the unit; 24032016 | ||
modelNumber | String | 0..1 | TS 32.692 versionNumber = version of the unit from vendor; e.g. AJ02. Maps to AAI equip-model | PnfType: equip-model | Equipment model. Source of truth should define valid values. |
oamV4lpAddress | String | 0..1 | IPv4 m-plane IP address to be used by the manager to contact the PNF | PnfType: ipaddress-v4-oam | ipv4-oam-address with new naming convention for IP addresses |
oamV6lpAddress | String | 0..1 | IPv6 m-plane IP address to be used by the manager to contact the PNF | PnfType: ipaddress-v6-oam | IPV6 OAM address |
pnfRegistrationFieldsVersion | String | 1 | Version of the registrationFields block as "#.#" where # is a digit; see section 1 for the correct digits to use. | N/A (only relevant for the VES event itself, not the PNF being registered) | |
serialNumber | String | 0..1 | TS 32.692 serialNumber = serial number of the unit; e.g. 6061ZW3 | PnfType: serialNumber | Serial number of the device |
softwareVersion | String | 0..1 | TS 32.692 swName = active SW running on the unit; e.g. 5gDUv18.05.201 | PnfType: swVersion (or SoftwareVersionType: softwareVersionId ? According to 5G - PNF Plug and Play: software_versions [1] { softwareVersion (from pnfRegistration) activeSw = "True" } Note: During PNF Registration only the Active S/W is reported by the PNF. And so only the entry of the PNF A&AI array with the "activeSw" = True would be updated. The PNF S/W upgrade management U/C will update the entire array through the operations of S/W management. ) | sw-version is the version of SW for the hosted application on the PNF. |
unitFamily | String | 0..1 | TS 32.692 vendorUnitFamilyType = general type of HW unit; e.g. BBU | ||
unitType | String | 0..1 | TS 32.692 vendorUnitTypeNumber = vendor name for the unit; e.g. Airscale | PnfType: equip-type | Equipment type. Source of truth should define valid values. |
vendorName | String | 0..1 | TS 32.692 vendorName = name of manufacturer; e.g. Nokia. Maps to AAI equip-vendor | PnfType: equip-vendor | Equipment vendor. Source of truth should define valid values. |
domain (inherited from parent class VesEvent) | Domain | 1 | Event domain enumeration: 'fault', 'heartbeat', 'measurement', 'mobileFlow', 'notification', 'other', 'pnfRegistration', 'sipSignaling', 'stateChange', 'syslog', 'thresholdCrossingAlert', 'voiceQuality' | N/A Set to 'pnfRegistration' in PNF reg event | |
eventType (inherited from parent class VesEvent) | String | 0..1 | For example: 'applicationNf', 'guestOS', 'hostOS', 'platform' | N/A Set to 'applicationNf' in PNF reg event ? | |
lastEpochMicrosec (inherited from parent class VesEvent) | Number | 1 | the latest unix time aka epoch time associated with the event from any component--as microseconds elapsed since 1 Jan 1970 not including leap seconds | N/A (only relevant for the VES event itself, not the PNF being registered) | |
nfcNamingCode (inherited from parent class VesEvent) | String | 0..1 | Network function component type: 3 characters (aligned with vfc naming standards) | ||
nfNamingCode (inherited from parent class VesEvent) | String | 0..1 | Network function type: 4 characters (aligned with vnf and pnf naming standards) | ||
nfVendorName (inherited from parent class VesEvent) | String | 1 | Network function vendor name | Same value as vendorName in PNF reg event (see above) | |
priority (inherited from parent class VesEvent) | Priority | 1 | Processing priority enumeration: 'High', 'Medium', 'Normal', 'Low' | N/A (only relevant for the VES event itself, not the PNF being registered) | |
reportingEntityId (inherited from parent class VesEvent) | String | 0..1 | UUID identifying the entity reporting the event or detecting a problem in another vnf/vm or pnf which is experiencing the problem. (Note: the AT&T internal enrichment process shall ensure that this field is populated). The reportingEntityId is an id for the reportingEntityName. See 'reportingEntityName' for more information. reportingEntityId - UUID identifying the entity reporting the event or detecting a problem in another xnf/vm or pnf which is experiencing the problem. Note: the AT&T internal enrichment process shall ensure that this field is populated. The reportingEntityId is an id for the reportingEntityName. See reportingEntityName for more information. | Not set in PNF reg event ? | |
reportingEntityName (inherited from parent class VesEvent) | String | 1 | Name of the entity reporting the event or detecting a problem in another vnf/vm or pnf which is experiencing the problem. May be the same as the sourceName. For synthetic events generated by DCAE, it is the name of the app generating the event. reportingEntityName - Name of the entity reporting the event or detecting a problem in another xnf/vm or pnf which is experiencing the problem. May be the same as the sourceName. For synthetic events generated by DCAE, it is the name of the app generating the event. | Same value as sourceName in PNF reg event (see below) | |
sequence (inherited from parent class VesEvent) | Integer | 1 | Ordering of events communicated by an event source instance (or 0 if not needed) sequence - Ordering of events communicated by an event source instance (or 0 if not needed) | N/A (only relevant for the VES event itself, not the PNF being registered) | |
sourceId (inherited from parent class VesEvent) | String | 0..1 | sourceId - UUID identifying the entity experiencing the event issue, which may be detected and reported by a separate reporting entity Note: the AT&T internal enrichment process shall ensure that this field is populate). The sourceId is an id for the sourceName. See sourceName for more information. UUID identifying the entity experiencing the event issue, which may be detected and reported by a separate reporting entity (note: the AT&T internal enrichment process shall ensure that this field is populated). The sourceId is an id for the sourceName. See 'sourceName' for more information. | Not set in PNF reg event ? | |
sourceName (inherited from parent class VesEvent) | String | 1 | sourceName - Name of the entity experiencing the event issue, which may be detected and reported by a separate reporting entity. The sourceName identifies the device for which data is collected. A valid sourceName must be inventoried in A&AI. If sourceName is a xNFC or VM, then the event must be reporting data for that particular xNFC or VM. If the sourceName is a xNF, comprised of multiple xNFCs, the data must be reported/aggregated at the xNF leveI. Data for individual xNFC must not be included in the xNF sourceName event. Name of the entity experiencing the event issue, which may be detected and reported by a separate reporting entity. The sourceName identifies the device for which data is collected. A valid sourceName must be inventoried in A&AI. If sourceName is a xNFC or VM, then the event must be reporting data for that particular xNFC or VM. If the sourceName is a xNF, comprised of multiple xNFCs, the data must be reported/aggregated at the xNF leveI. Data for individual xNFC must not be included in the xNF sourceName event. | PnfType: pnf-name (or PnfType: pnf-name2?) | unique name of Physical Network Function. |
startingEpochMicrosec (inherited from parent class VesEvent) | Number | 1 | startEpochMicrosec - the earliest unix time aka epoch time associated with the event from any component--as microseconds elapsed since 1 Jan 1970 not including leap seconds. For measurements and heartbeats, where events are collected over predefined intervals, startEpochMicrosec shall be rounded to the nearest interval boundary (e.g., the epoch equivalent of 3:00PM, 3:10PM, 3:20PM, etc…). For fault events, startEpochMicrosec is the timestamp of the initial alarm; if the same alarm is raised again for changed, acknowledged or cleared cases, startEpochMicrosec must be the same as the initial alarm (along with the same eventId and an incremental sequence number). For devices with no timing source (clock), the default value will be 0 and DCAE collector will replace it with Collector time stamp (when event is received). the earliest unix time aka epoch time associated with the event from any component--as microseconds elapsed since 1 Jan 1970 not including leap seconds. For measurements and heartbeats, where events are collected over predefined intervals, startEpochMicrosec shall be rounded to the nearest interval boundary (e.g., the epoch equivalent of 3:00PM, 3:10PM, 3:20PM, etc…). For fault events, startEpochMicrosec is the timestamp of the initial alarm; if the same alarm is raised again for changed, acknowledged or cleared cases, startEpoch Microsec must be the same as the initial alarm (along with the same eventId and an incremental sequence number). For devices with no timing source (clock), the default value will be 0 and the VES collector will replace it with Collector time stamp (when the event is received) | N/A (only relevant for the VES event itself, not the PNF being registered) | |
timeZoneOffset (inherited from parent class VesEvent) | String | 0..1 | Offset to GMT to indicate local time zone for device formatted as 'UTC+/-hh:mm'; see https://en.wikipedia.org/wiki/List_of_time_zone_abbreviations for UTC offset examples | ||
version (inherited from parent class VesEvent) | String | 1 | Version of the event header as "#.#" where # is a digit; see section 1 for the correct digits to use. | N/A (only relevant for the VES event itself, not the PNF being registered) | |
vesEventListenerVersion (inherited from parent class VesEvent) | String | 1 | Version of the ves event listener api spec that this event is compliant with (as "#" or "#.#" or "#.#.#" where # is a digit; see section 1 for the correct digits to use). | N/A (only relevant for the VES event itself, not the PNF being registered) | |
name (inherited from parent class VesEvent) | String | 1 | N/A, Event name ? | ||
Status (inherited from parent class VesEvent) | String | 0..1 | The current condition of an interaction, such as open, in research, closed, and so forth | PnfType: prov-status ? | |
description (inherited from parent class VesEvent) | String | 0..1 | Defines a textual free-form description of the object. | ||
id (inherited from parent class VesEvent) | Identifier | 1 | Unambiguously distinguishes different object instances. It is the naming attribute of the object. Identifier of this information element. This attribute shall be globally unique. | PnfType: pnf-id ? | id of pnf |
PNFD model comparison
reference: Agreed PNFD Model
Attribute Name | Type | Mult. | Description | Attribute name - AAI Pnf Instance | Attribute description - AAI Pnf Instance |
---|---|---|---|---|---|
pnfdId | Identifier | 1 | Identifier of this Pnfd class. It uniquely identifies the PNFD. | ||
provider | String | 1 | Identifies the provider of the PNFD. NOTE: The provider of the PNFD might be different from the provider of the PNF. | PnfType: equipVendor ? | Equipment vendor. Source of truth should define valid values. |
version | Version | 1 | Identifies the version of the PNFD | PnfType: modelVersionId | The ASDC model version for this resource model. |
security | SecurityParameters | 0..1 | Provides a signature to prevent tampering. | ||
functionDescription | String | 1 | Describes the PNF function. | ||
pnfdInvariantId | Identifier | 1 | Identifies a PNFD in a version independent manner. This attribute is invariant across versions of PNFD. | PnfType: model-invariant-id | The ASDC model id for this resource model. |
name | String | 1 | Provides the human readable name of the PNFD. | PnfType: pnfName/pnfName2 ? | name of Physical Network Function |
_pnfExtCpd | PnfExtCpd | 1..* | Specifies the characteristics of one or more connection points where to connect the PNF to a VL. | PInterfaceType/LagInterfaceType |