Title: Kalua DML Examples
1Kalua DML Examples
- bernd.linowski_at_nsn.com
- martin.storch_at_nsn.com
- mikko.lahdensivu_at_nsn.com
- mehmet.ersue_at_nsn.com
2Example for agreed RCDML requirements
3DHCP example module header
- ltkaluamodule name"DHCP" xmlnskalua"urnietfpa
ramsxmlnskalua1" xmlnsxsi"http//www.w3.org/
2001/XMLSchema-instance" xmlnsxsd"http//www.w3.
org/2001/XMLSchema"gt - ltpresentationgtDHCPlt/presentationgt
- ltdescriptiongtDHCP example, as in
http//tools.ietf.org/html/draft-presuhn-rcdml-03
appendix-Clt/descriptiongt - ltns-urigthttp//example.org/ns/dhcplt/ns-urigt
- ltns-prefixgtdhcplt/ns-prefixgt
- ltreleasegt1lt/releasegt
- ltorganizationgtNokia Siemens Networkslt/organizatio
ngt - ltimportgt
- ltns-urigturnietfparamsxmlnsnetmodbaselt/ns-u
rigt - ltns-prefixgtndllt/ns-prefixgt
- lt/importgt
- ltimportgt
- ltns-urigthttp//example.com/ns/intlt/ns-urigt
- ltns-prefixgtintlt/ns-prefixgt
- ltdescriptiongtinterfaceslt/descriptiongt
- lt/importgt
4DHCP example classes
- ltclass name"subnet"gt
- ltattribute name"network"gt
- lttypegtndlipAddresslt/typegt
- lt/attributegt
- ltattribute name"leases"gt
- ltread-only/gt
- ltsequence elementName"lease"gt
- ltstructuregt
- ltattribute name"ip_address"gt
- ltdescriptiongtIP addresslt/descriptiongt
- lttypegtndlipAddresslt/typegt
- lt/attributegt
- ltattribute name"starts"gt
- lttypegtkaluadateTimelt/typegt
- lt/attributegt
- ...
- ltkey scope"local"gt
- ltmembergtip_addresslt/membergt
- lt/keygt
5DHCP example relationships
- ltrelationship name"shared_network_subnets"gt
- ltkindgt
- ltcontainment/gt
- lt/kindgt
- ltsourcegt
- ltclassgtshared_networklt/classgt
- ltrolegtparentlt/rolegt
- lt/sourcegt
- lttargetgt
- ltclassgtsubnetlt/classgt
- ltrolegtchildrenlt/rolegt
- lt/targetgt
- lt/relationshipgt
6Examples for extended RCDML requirements
- Typed extensions
- Calculated relationships
- Hierarchical data
7Support for RCDML requirement 3.3.3. Modular
extension (Agreed)
Stakeholder e.g. IETF
Stakeholder e.g. IETF
Standardbase type
Standardbase type
augments
extends
extends
extends
Vendor-specifictype
Specialized subtype 2
Specialized subtype 3
Specialized subtype 1
Stakeholder vendor
Stakeholders IETF or vendor
extends
Further specialized subtype 3a
8Extension mechanisms example
Stakeholder e.g. IETF
Stakeholder e.g. IETF
entPhysicalEntry
entPhysicalEntry
extends
extends
extends
Augmentation does not support mutually exclusive
subtypes
backplane
module
chassis
Stakeholders IETF or vendor
extends
ACMEchipset
9NETCONF payload example
- ltentityMIBgt
- ltentPhysicalTablegt
- ltentPhysicalEntrygt
- ltentPhysicalIndexgt1lt/entPhysicalIndexgt
- ltentPhysicalDescrgtAcme Chipset Nimbus
2000lt/entPhysicalDescrgt - ltentPhysicalVendorTypegtacmeProducts.moduleTypes
.1lt/entPhysicalVendorTypegt ltentPhysicalContaine
dIngt0lt/entPhysicalContainedIngt - ltentPhysicalClassgtmodulelt/entPhysicalClassgt
- ltentPhysicalParentRelPosgt0lt/entPhysicalParentRe
lPosgt - ltentPhysicalNamegt100-Alt/entPhysicalNamegt
- ltentPhysicalHardwareRevgtA(1.00.02)lt/entPhysical
HardwareRevgt -
- ltentPhysicalAssetIDgt0007372293lt/entPhysicalAsse
tIDgt - ltentPhysicalIsFRUgttruelt/entPhysicalIsFRUgt
- lt! module specific attributes --gt
- ltmoduleInstallationDategt11-10-2008T084300lt/mo
duleInstallationDategt - lt!-- Acme chipset specific attributes --gt
- ltacmemanufacturingDategt01-03-2005T102000lt/ac
memanufacturingDategt - ltacmechipsetFabricIdgt1A34lt/acmechipsetFabricI
dgt - ltacmeacmeHotSwitchoverCapabilitygttruelt/acmeac
meHotSwitchoverCapabilitygt
10Defining the base class in Kalua
- ltclass name"entPhysicalEntry"gt
- ltdescriptiongtInformation about a particular
physical entity.lt/descriptiongt - ltattribute name"entPhysicalIndex"gt
- ltdescriptiongtArbitrary value that uniquely
identifies the physical entity.lt/descriptiongt - ltread-only/gt
- ltsimple-typegt
- ltrestrictiongt lttypegtkaluaintegerlt/typegt
- ltminLength value"1"/gtltmaxLength
value"2147483647"/gt lt/restrictiongt - lt/simple-typegt
- lt/attributegt
- ltattribute name"entPhysicalDescr"gt
- ltdescriptiongtA textual description of physical
entity. lt/descriptiongt - ltread-only/gt
- lttypegtkaluastringlt/typegt
- lt/attributegt
-
- ltkey scope"global"gt
- ltmembergtentPhysicalIndexlt/membergt
- lt/keygt
11Building an extended type in Kalua
- ltclass namemodule"gt
- ltsuper-classgtentPhysicalEntrylt/super-classgt
- ltattribute name"moduleInstallationDate"gt
- lttypegtkaluadateTimelt/typegt
- lt/attributegt
- lt/classgt
-
12Building an extended type in Kalua
- ltattribute-group name"ManufacturingDate"gt
- ltattribute name"manufacturingDate"gt
- lttypegtkaluadateTimelt/typegt
- lt/attributegt
- lt/attribute-groupgt
- ltclass name"chipset"gt
- ltsuper-classgtrfc2737modulelt/super-classgt
- ltuse attribute-group"ManufacturingDate"/gt
- ltattribute namechipsetFabricId"gt
- lttypegtkaluastringlt/typegt
- lt/attributegt
- ltattribute nameacmeHotSwitchoverCapability"gt
- lttypegtkaluabooleanlt/typegt
- ltdefaultValueLiteralgtfalselt/defaultValueLiteral
gt - lt/attributegt
- lt/classgt
-
13Type extensions in a nutshell
- Typed extensions
- mutually exclusive augmentations
- augmentation of augmentations
- ... applicable to any element type definition (!)
- Base type need not be designed for extensibility
14SMI example with human-readable relationships
- wmanIfBsSsProvisionedForSfTable
OBJECT-TYPE SYNTAX SEQUENCE OF
WmanIfBsSsProvisionedForSfEntry
MAX-ACCESS not-accessible STATUS
current DESCRIPTION "This table
maps the MAC addresses of SSs to the
service flows provisioned in
wmanIfBsProvisionedSfTable."
REFERENCE "Subclause 6.3.14 in IEEE
Std 802.16-2004" wmanIfBsPacketCs 2
WmanIfBsSsProvisionedForSfEntry SEQUENCE
wmanIfBsSsProvMacAddress
MacAddress, wmanIfBsProvSfId
Unsigned32, wmanIfBsSsProvision
edForSfRowStatus RowStatus
wmanIfBsSsProvMacAddress OBJECT-TYPE
SYNTAX MacAddress MAX-ACCESS
not-accessible STATUS current
DESCRIPTION "The MAC address of the
SS, the service flow is created
with." wmanIfBsSsProvisionedForSfEntr
y 1
Source IEEE 802.16 2004 MAC and PHY MIB for
WirelessMAN
15Kalua model withmachine-readable relationship
- target
- source
expression wmanIfBsSsProvMacAddress
wmanIfBsSsMacAddress
16Definition of related classes
- ltclass name"wmanIfBsSsProvisionedForSfEntry"gt
- ltattribute name"wmanIfBsProvSfId"gt
- ltdescriptiongtA 32 bit quantity that uniquely
identifies a service flow. The value of this
object can be used by BS to index the
wmanBsProvisionedSfTablelt/descriptiongt - lttypegtkaluaintegerlt/typegt
- lt/attributegt
- ltattribute name"wmanIfBsSsProvMacAddress"gt
- ltdescriptiongtThe MAC address of the SS, the
service flow is created withlt/descriptiongt - lttypegtndlMacAddresslt/typegt
- lt/attributegt
- lt/classgt
- ltclass name"wmanIfBsRegisteredSsEntry"gt
- ltattribute name"wmanIfBsSsMacAddress"gt
- lttypegtndlMacAddresslt/typegt
- lt/attributegt
- ltkey scope"global"gt
- ltmembergtwmanIfBsSsMacAddresslt/membergt
- lt/keygt
- lt/classgt
17Kalua a calculated relationship
- ltrelationship name"wmanIfBsRegisteredSsEntryProvi
sionedForSf"gt - ltkindgt
- ltcalculatedgt
- ltconditiongtsource/wmanIfBsSsProvMacAddress
- target/wmanIfBsSsMacAddress
lt/conditiongt - lt/calculatedgt
- lt/kindgt
- ltsourcegt
- ltclassgtwmanIfBsSsProvisionedForSfEntrylt/classgt
- ltrolegtwmanIfBsSsProvisionedServiceFlowlt/rolegt
- ltmaxCardinalitygtunboundedlt/maxCardinalitygt
- lt/sourcegt
- lttargetgt
- ltclassgtwmanIfBsRegisteredSsEntrylt/classgt
- ltrolegtwmanIfBsRegisteredSslt/rolegt
- ltmaxCardinalitygt1lt/maxCardinalitygt
- lt/targetgt
- lt/relationshipgt
18Calculated relationships in Kalua
- Query built into the model
- Semantic link between elements, for navigation
- Client dynamically evaluates the condition based
on the data - Relationship is established when the condition is
true - Does not impose any referential constraint (!)
- Service flow can be provisioned even when
subscriber has not subscribed yet - Non-intrusive
- Can be added on top of existing data models
19RCDML Hierarchical data
- 3.5.6. Hierarchical Data The solution MUST
support defining data in hierarchies of arbitrary
depth. This enables closer modeling of data to
real world relationships, such as containment.
ltdevicegt ltshelfgt ltcardgt ltportgt
ltsubPort/gt lt/portgt lt/cardgt
lt/shelfgt lt/devicegt
20Extended hierarchical data requirement
- Elements with more than one parent type
- Elements of the same type can appear in arbitrary
levels of the NETCONF payload containment tree.
- Example
- Directory has two parents
- FileSystem and
- Directory
FileSystem
contains
Directory
contains
contains
File
21Extended hierarchical data requirement
- Elements with more than one parent type
- Elements of the same type can appear in arbitrary
levels of the NETCONF payload containment tree.
- Example
- entPhysicalEntry has two parents
- entPhysicalTable and
- entPhysicalEntry
entityMIB
contains
entPhysicalTable
contains
entPhysicalEntry
contains
22Extended hierarchical data requirement
- Benefits
- Containment relationships need not be maintained
explicitly - Pointer attribute entPhysicalContainedIn becomes
obsolete - NETCONF has natural, built-in support for
hierarchically structured data - Exploit the benefits of XML
- NETCONF is based on XML, which allows arbitrarily
deep nesting hierarchies of data - Without nesting, most SNMP MIB mappings to
NETCONF would consist of three levels only - MIB level container elements
- Table level one container for the table
- Table entry level most of the data