Kalua%20 - PowerPoint PPT Presentation

About This Presentation
Title:

Kalua%20

Description:

Model import, Multiple model release support. Extensibility. Typed annotations ... Dynamic (re-)evaluation whenever a relationship is queried relationship name ... – PowerPoint PPT presentation

Number of Views:22
Avg rating:3.0/5.0
Slides: 27
Provided by: lino7
Learn more at: https://www.ietf.org
Category:
Tags: kalua | reimport

less

Transcript and Presenter's Notes

Title: Kalua%20


1
Kalua A DML for NETCONF
  • bernd.linowski_at_nsn.com
  • martin.storch_at_nsn.com
  • mikko.lahdensivu_at_nsn.com
  • mehmet.ersue_at_nsn.com

2
Kalua Basics
  • In the first place, Kalua is a DML for NETCONF
  • supports the immediate needs of the NETCONF
    protocol
  • provides modeling features for . . .
  • the payload of NETCONF get-/edit(-config)
    operations
  • NETCONF notifications
  • uses precedent discussion in RFC 3535 as a
    guidance
  • But Kalua also . . .
  • addresses extensibility and broader applicability
  • integrates data modeling and information modeling
    features
  • aims to support also solutions for different
    other IETF issues, e.g. in OPS and APPS areas

3
Kalua Basics (II)
  • XML based language
  • Basic parsing / generation / editing support
    available everywhere
  • No need to learn a new grammar
  • Basic validation with Kalua XSD
  • Kalua is XSD Mappable
  • Reuses concepts from XSD

4
Kalua Basics
Kalua Schema (XSD)
Metamodel Layer
validates
Kalua Model (XML)
Model Layer
generated from
KaluaModel Schemas (XSD)
Kalua Model Schemas (XSD)
validates
NETCONF Payload (XML)
Data Layer
5
Kalua Features
  • Build-ins based on XML Schema 1.1 Part 2
    Datatypes
  • Simple-type Modeling
  • Restrictions, Enums, Unions and possible
    combinations
  • Data modeling
  • Attributes, Structures, Sequences, Type-Defs,
  • Essential object-oriented modeling
  • Classes, Inheritance, Relationships,
  • Modularity
  • Model import, Multiple model release support
  • Extensibility
  • Typed annotations

6
Complex Datatype Modeling
  • Structures
  • set of attributes
  • may use attribute groups
  • may have a key
  • Sequences
  • min max-length (unbounded)
  • ordering relevance
  • Type-Defs
  • Makes a datatype available for reuse

ltstructuregt ltattribute namexgt lttypegtdoublelt
/typegt ltattribute/gt ltattribute
nameygt lttypegtdoublelt/typegt lt/attributegt lt/s
tructuregt
ltsequence minLength1
maxLengthunboundedgt lttypegtstringlt/typegt lt/sequ
encegt
lttypedef namePointgt ltstructuregt
lt/structuregt lt/typedefgt
7
Modules
ltmodule nameSDHgt ltns-prefixgtsdhlt/ns-prefixgt
ltns-urigthttp//www.xyz.com/sdh lt/ns-urigt ltrelea
segtS7.0lt/releasegt ltimportgt ltns-prefixgttplt/ns-p
refixgt ltns-urigthttp//www.xyz.com/tp lt/ns-urigt
lt/importgt lt/modulegt
  • Packages Kalua model elements
  • Own namespace
  • XML mapping support
  • ns-uri
  • ns-prefix
  • May import other modules

8
Module Releases
ltmodule nameSDHgt ltns-urigthttp//xyz.com/sdhlt/n
s-urigt ltns-prefixgtsdhlt/ns-prefixgt ltreleasegtS7.0lt
/releasegt lt/modulegt
  • Identifies a particular release of a module
  • Release is typically tied to NE release
  • Applies to all model elements in the module

ltmodule nameSDHgt ltns-urigthttp//xyz.com/sdhlt/n
s-urigt ltns-prefixgtsdhlt/ns-prefixgt ltreleasegtS8.1lt
/releasegt lt/modulegt
ltimportgt ltns-urigthttp//xyz.com/sdhlt/ns-urigt ltns
-prefixgtsdhlt/ns-prefixgt ltreleasegtS8.1lt/releasegt lt
/importgt
9
Attribute Groups
ltattribute-group nameFTP_Accessgt ltattribute
nameftpServerAddressgt lttypegtstringlt/typegt
ltattribute/gt ltattribute nameftpServerPortgt
lttypegtunsignedShortlt/typegt lt/attributegt
lt/attribute-groupgt
  • Equivalent to attribute groups in XML Schema
  • Bundles attributes
  • Reused by
  • Structures
  • Classes
  • other attribute groups
  • Does not define a type

ltuse attribute-groupFTP_Accessgt
10
Classes
  • Blueprints for
  • network elements or
  • abstract entities
  • Defines a type
  • Has its own identity
  • potentially independent life-cycle
  • Endpoint of relationships
  • May be abstract
  • May use attribute groups

ltclass nameLocationgt lt/abstractgt ltattribute
namelocIdgt lttypegtstringlt/typegt lt/attribute
gt ltkeygt ltmembergtlocIdlt/typegt lt/keygt lt/classgt
11
Class Inheritance
ltclass nameLocationgt lt!- see previous
slide --gt lt/classgt
  • Establishes an is-a relationship
  • Reuse of features from base class
  • attributes
  • keys
  • relationships
  • Avoid multiple-inheritance for the sake of
    reduced complexity

ltclass nameGridLocationgt ltsuper-classgtLocati
on lt/super-classgt ltattribute namexgt ltatt
ribute nameygt lt/classgt
12
Reference Relationships
  • Connect a source and a target class
  • Relate instances regardless of their context of
    use
  • Specify the multiplicity of the relationship
    (e.g. 11, 1n, nm)
  • May be read-only
  • May specialize a base relationship

ltrelationship namelocatedAtgt ltkindgtltreferenc
e/gtlt/kindgt ltsourcegt ltclassgtManagedObjectlt/class
gt ltrolegtlocatedObjectlt/rolegt lt/sourcegt lttarget
gt ltclassgtLocationlt/classgt ltrolegtlocationlt/role
gt ltmaxCardinalitygt1lt/maxCardinalitygt lt/targetgt
lt/relationshipgt
13
Calculated Relationships
  • Explicit relationships derived from configuration
    data
  • Read-only
  • Avoids informally described relationships
  • Condition determines related instances
  • Dynamic (re-)evaluation whenever a relationship
    is queried

ltrelationship nameConnectedTogt ltkindgt ltcon
ditiongt source/remoteLinkId
target/linkId and source/remoteTslot
target/tslot lt/conditiongt lt/kindgt ltsourc
egt ltclassgtPCM_TPlt/classgt ltrolegtlocalTPlt/rolegt
lt/sourcegt lttargetgt ltclassgtPCM_TPlt/classgt ltro
legtremoteTPlt/rolegt lt/targetgt lt/relationshipgt
14
Typed Annotations
ltclass nameBroadbandRoutergt ... ltannotation
nameSMI_Refgt lte nameOIDgt1.3.6.1.4.1.999lt/e
gt lt/annotationgt ... lt/classgt
  • Annotations
  • enhance semantics of existing DML elements
  • Address new modeling needs
  • Annotation Types
  • Force correct usage of model extensions
  • Define annotation properties

ltannotation-type nameSMI_Refgt ltannotatable-t
ypegt class lt/annotatable-typegt ltannotation-pro
perty-type nameOIDgt ltpatterngt
0-9(\.0-9) lt/patterngt lt/annotation-prop
erty-typegt lt/annotation-typegt
15
Thank you!
For more information please read NETCONF Data
Modeling Language Requirements http//tools.ietf.o
rg/html/draft-linowski-netconf-dml-requirements-01
Kalua - A Data Modeling Language for
NETCONF http//www.ietf.org/internet-drafts/draft-
ersue-netconf-kalua-dml-01.txt
16
  • Back-UP Slides

17
Kalua Example Partial Lock RPC
  • ltkaluamodule name"NCPL" xmlnskalua"urnietfpa
    ramsxmlnskalua1"
  • xmlnsxsi"http//www.w3.org/2001/XMLSchema-instan
    ce"
  • xsischemaLocation"urnietfparamsxmlnskalua1
    \Users\kalua\kalua.xsd"
  • xmlnsxsd"http//www.w3.org/2001/XMLSchema"gt
  • ltpresentationgtNETCONF partial
    locklt/presentationgt
  • ltdescriptiongtNETCONF partial lock
    operationslt/descriptiongt
  • ltns-urigturnietfparamsxmlnsnetconfparti
    al-lock1.0lt/ns-urigt
  • ltns-prefixgtncpllt/ns-prefixgt
  • ltreleasegt1lt/releasegt
  • ltorganizationgtIETFlt/organizationgt
  • ltimportgt
  • ltns-urigturnietfparamsxmlnsnetconf
    base1.0lt/ns-urigt
  • ltns-prefixgtnclt/ns-prefixgt
  • lt/importgt
  • ltattribute-group name"lock_id_attribute"gt
  • ltattribute name"lock_id"gt
  • lttypegtkaluaunsignedIntlt/typegt
  • lt/attributegt
  • lt/attribute-groupgt

18
Kalua Example Partial Lock RPC (II)
  • ltattribute name"config_name"gt
  • lttypegtncconfig_namelt/type
    gt
  • lt/attributegt
  • ltattribute name"select"gt
  • ltsequencegt
  • lttypegtkaluastringlt/
    typegt
  • lt/sequencegt
  • lt/attributegt
  • lt/inputgt
  • ltoutputgt
  • ltusegt
  • ltattribute-groupgtlock_id_a
    ttributelt/attribute-groupgt
  • lt/usegt
  • lt/outputgt
  • lt/operationgt
  • ltoperation name"partial_unlock"gt
  • ltdescriptiongtThis operation defines
    the element for partial-unlock RPC operation.
    lt/descriptiongt
  • ltinputgt
  • ltusegt

19
DHCP Example
  • ltkaluamodule name"DHCP" xmlnskalua"urnietfpa
    ramsxmlnskalua1" xmlnsxsi"http//www.w3.org/
    2001/XMLSchema-instance" xsischemaLocation"urni
    etfparamsxmlnskalua1
  • C\Users\kalua\kalua.xsd" 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
  • ltclass name"dhcp"gt
  • ltattribute name"default_lease_time"gt

20
DHCP Example (II)
  • ltrelationship name"subnets"gt
  • ltkindgt
  • ltcontainment/gt
  • lt/kindgt
  • ltsourcegt
  • ltclassgtdhcplt/classgt
  • ltrolegtparentlt/rolegt
  • lt/sourcegt
  • lttargetgt
  • ltclassgtsubnetlt/classgt
  • ltrolegtchildrenlt/rolegt
  • lt/targetgt
  • lt/relationshipgt
  • lttypedef name"rangeType"gt
  • ltstructuregt
  • ltattribute name"dynamic_bootp"gt
  • ltpresentationgtdynamic-bootplt/presentationgt
  • lttypegtkaluabooleanlt/typegt
  • ltdefaultValueLiteralgttruelt/defaultValueLiteral
    gt

21
DHCP Example (III)
  • ltclass name"subnet"gt
  • ltattribute name"network"gt
  • lttypegtndlipAddresslt/typegt
  • lt/attributegt
  • ltattribute name"prefix_length"gt
  • ltpresentationgtprefix-lengthlt/presentationgt
  • lttypegtkaluaintlt/typegt
  • lt/attributegt
  • ltattribute name"range"gt
  • ltoptional/gt
  • lttypegtrangeTypelt/typegt
  • lt/attributegt
  • ltattribute name"max_lease_time"gt
  • ltpresentationgtmax-lease-timelt/presentationgt
  • lttypegtkaluaintlt/typegt
  • lt/attributegt

22
DHCP Example (IV)
  • ltattribute name"leases"gt
  • ltread-only/gt
  • ltsequence elementName"lease"gt
  • ltstructuregt
  • ltattribute name"ip_address"gt
  • ltpresentationgtip-addresslt/presentationgt
  • lttypegtndlipAddresslt/typegt
  • lt/attributegt
  • ltattribute name"starts"gt
  • lttypegtkaluadateTimelt/typegt
  • lt/attributegt
  • ltattribute name"ends"gt
  • lttypegtkaluadateTimelt/typegt
  • lt/attributegt
  • ltattribute name"mac_address"gt
  • ltpresentationgtmac-addresslt/presentationgt
  • lttypegtndlnsapAddresslt/typegt
  • lt/attributegt
  • ltkey scope"local"gt

23
DHCP Example (V)
  • lttypedef name"rangeType"gt
  • ltstructuregt
  • ltattribute name"dynamic_bootp"gt
  • ltpresentationgtdynamic-bootplt/presentationgt
  • lttypegtkaluabooleanlt/typegt
  • ltdefaultValueLiteralgttruelt/defaultValueLiteral
    gt
  • lt/attributegt
  • ltattribute name"low"gt
  • ltmandatory/gt
  • lttypegtndlipAddresslt/typegt
  • lt/attributegt
  • ltattribute name"high"gt
  • ltmandatory/gt
  • lttypegtndlipAddresslt/typegt
  • lt/attributegt
  • lt/structuregt
  • lt/typedefgt
  • ltrelationship name"dhcp_options_Rel"gt
  • ltkindgt

24
DHCP Example (VI)
  • ltclass name"dhcp_options"gt
  • ltpresentationgtdhcp-optionslt/presentationgt
  • ltattribute name"router_list"gt
  • ltpresentationgtrouter-listlt/presentationgt
  • ltsequence elementName"router"gt
  • lttypegtndlipAddresslt/typegt
  • lt/sequencegt
  • lt/attributegt
  • ltattribute name"domain_list"gt
  • ltpresentationgtdomain-listlt/presentationgt
  • ltsequence elementName"domain"gt
  • lttypegtndlipAddresslt/typegt
  • lt/sequencegt
  • lt/attributegt
  • ltattribute name"custom"gt
  • ltstructuregt
  • ltattribute name"option"gtlttypegtkaluaintlt/type
    gt
  • lt/attributegt
  • ltattribute name"ip_address"gt

25
DHCP Example (VII)
  • ltrelationship name"filtered_interfaces"gt
  • ltkindgt
  • ltcalculatedgt
  • ltconditiongtsource/interface_filter/
    interface target/ifNamelt/conditiongt
  • lt/calculatedgt
  • lt/kindgt
  • ltsourcegt
  • ltclassgtsubnetlt/classgt
  • ltrolegtfiltering_subnetlt/rolegt
  • ltmaxCardinalitygtunboundedlt/maxCardinalitygt
  • lt/sourcegt
  • lttargetgt
  • ltclassgtintinterfacelt/classgt
  • ltrolegtfiltered_interfacelt/rolegt
  • ltmaxCardinalitygtunboundedlt/maxCardinalitygt
  • lt/targetgt
  • lt/relationshipgt

26
DHCP Example (VIII)
  • ltclass name"shared_network"gt
  • ltattribute name"name"gt
  • lttypegtkaluastringlt/typegt
  • lt/attributegt
  • ltkey scope"global"gt
  • ltmembergtnamelt/membergt
  • lt/keygt
  • lt/classgt
  • ltrelationship name"shared_network_subnets"gt
  • ltkindgt
  • ltcontainment/gt
  • lt/kindgt
  • ltsourcegt
  • ltclassgtshared_networklt/classgt
  • ltrolegtparentlt/rolegt
  • lt/sourcegt
  • lttargetgt
  • ltclassgtsubnetlt/classgt
  • ltrolegtchildrenlt/rolegt
Write a Comment
User Comments (0)
About PowerShow.com