120 likes | 201 Views
RPCs and Notifications inside Lists in YANG. Balazs Lengyel, Ericsson IETF-72 Dublin 2008 July. Issue 1: Procedures in Objects. A good number of people do object oriented modeling Assumption Objects will end up as lists Objects contain procedures/Functions beside data
E N D
RPCs and Notifications inside Listsin YANG Balazs Lengyel, Ericsson IETF-72 Dublin 2008 July
Issue 1: Procedures in Objects • A good number of people do object oriented modeling • Assumption Objects will end up as lists • Objects contain procedures/Functions beside data • Solution: Define YANG RPCs inside lists
Issue 2: Similar Procedure for different management entities • Often the same management action is relevant for different managed entities • Restart: router, OSPF, Interface, file-transfer • Block: Interface, port, user • Today they can’t all have the simple intuitive name: e.g. restart due to naming clashes • Solution: Name should be scoped by a List i.e. place of definition in the model
Issue 3: RPCs in a Master-Subagent setup • Need to route the Netconf operations to individual sub-agents without understanding their meaning • Sub-agents usually handle a specific part of the global model e.g. a subtree • With RPCs defined on the top level, no easy way to select sub-agent without understanding the RPC • Solution: Allow RPCs on lower levels inside the model tree. The location of their definition can be used to choose the correct sub-agent
Solution: RPCs defined in Lists • The list will anchor the RPC to a specific place in the management tree • The list will scope the name of the RPC
RPC in List - YANG container mib-2 { list interface { key “ifId”; leaf ifId { type int32; } rpc shutDown { input { leaf mode { type enumeration { enum immediate; enum graceful; } } } } …
RPC in List - XML • <rpc xmlns=“…" message-id="239"> • <action> • <mib-2> • <interface> • <ifId>3</ifId> • <shutDown> • <mode>immediate</mode> • </shutDown> • </interface> • </mib-2> • </action> • </rpc> • Using a generic action RPC
RPC/Operation in List - XML • <rpc message-id="101“ xmlns=“…"> • <shutDown • callingPoint=“/mib-2/interface[‘ifId=3’]”> • <mode>immediate</name> • </shutDown> • </rpc> • Adding the special attribute “callingPoint” to • today’s YANG • All RPC names must be unique in a module • (to allow DSDL mapping)
Notifications inside Lists • Would make YANG easier to use because: • Notifications always have a specific source, providing that is natural • It is nice to have the notification definition at the same place where the source entity is defined
RPC in List – XML Unpreferred alternative • <netconf:rpc xmlns=… message-id="239"> • <shutDown> • <callingPoint> • /mib-2/interface[“ifId=3"] • </callingPoint> • <input> • <mode>immediately</mode> • </input> • </shutDown> • </netconf:rpc> • Adding an extra element ad a wrapper for the input parameters
RPC in List - XML – Unpreferred alternative • <netconf:rpc xmlns=… message-id="239"> • <action> • <actionName>shutDown</actionName> • <callingPoint> • /mib-2/interface[“ifId=3"] • </callingPoint> • <input> • <mode>immediate</mode> • </input> • </action> • </netconf:rpc> • Using a generic action RPC