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

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

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

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