RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
Table of Contents | ||||
---|---|---|---|---|
|
...
PandM is a CCSP component that implements core provisioning and management functionality of the device. Its primary role is to respond to commands from other CCSP components and protocol agents that need to set or query variables pertaining to core CCSP functionalityto provisioning and management. Its interface to other components uses the CCSP Message Bus interface and is based around a data model derived from TR-181 (TR-157, TR-143) along with CCSP specific extensions. PandM is a Key module which holds parameters related to many key services like: dhcpv6, LAN, DeviceInfo etc. It maintains a TR181 data model XML file with dbus object path as /com/cisco/spvtg/ccsp/pam . Has a layered architecture which makes it less complex for GET/SET implementation.
P&M interfaces with Protocol Agent, Cr, PSM and other common components via the Message Bus Interface.Initialize On the lower side, P&M interfaces with the HAL layer modules, Ethernet, WiFi, MoCA, IP, DHCP client/server, etc.
draw.io Diagram diagramName PandM OverviewDiagram.drawio revision 1
Figure 1 PandM Overview
PandM module tracks any changes in the system for the attributes configured by service provider and sends notifications to CCSP components that have requested these specific notifications. Any changes to these attributes will be reported to service provider using the appropriate Protocol Agent (PA).
sysevent set ipv4-tsip_IPAddress %s
sysevent set ipv4-tsip_Subnet %s
sysevent set ipv4-tsip_Gateway %s
sysevent set ipv4-resync_tsip %d
system("sysevent set wan_staticip-status stopped");
system("sysevent set wan_staticip-status started");
...
This is the architecture of PandM component:
draw.io Diagram diagramName PandMArchitectureOverview.drawio revision 1
Figure 2 PandM Architecture Overview
PandM consist of three layers:
1) Access Layer
...
The implementation of APIs is responsible to convert the user space calls into Device IOCTL (kernel space) accordingly.
draw.io Diagram | ||||
---|---|---|---|---|
|
CosaNatCreate() |
CosaProcStatusCreate() |
CosaDeviceInfoCreate() |
CosaUserinterfaceCreate() |
CosaEthernetCreate() |
CosaUsersCreate() |
CosaDdnsCreate() |
CosaFirewallCreate() |
CosaSecurityCreate() |
CosaIPCreate() |
CosaDhcpv4Create() |
CosaHostsCreate() |
CosaDNSCreate() |
CosaRoutingCreate() |
CosaBridgingCreate() |
CosaIFStackCreate() |
CosaPPPCreate() |
CosaDhcpv6Create() |
CosaDeviceControlCreate() |
CosaIPv6rdCreate() |
CosaRACreate() |
CosaNeighdiscCreate() |
CosaMldCreate() |
CosaDiagnosticsCreate() |
CosaTimeCreate() |
CosaUpnpCreate() |
TR181_ParentalControlCreate() |
CosaRLogCreate() |
CosaGreCreate() |
CosaGreTunnelCreate() |
CosaCGreCreate() |
CosaHotspotCreate() |
CosaFileTransferCreate() |
CosaTSIPCreate() |
CosaDeviceFingerprintCreate() |
Device.DeviceInfo. |
Device.GatewayInfo. |
Device.InterfaceStack.{i}. |
Device.Ethernet. |
Device.MoCA.Interface. |
Device.Bridging.Bridge.{i}. |
Device.PPP.Interface.{i}. |
Device.IP.Interface.{i}. |
Device.Routing.Router.{i}. |
Device.NAT. |
Device.DHCPv4. |
Device.DHCPv6. |
Device.Users. |
...
PandM supports following CCSP Message Bus APIs:
initialize | Initializes NAT, DeviceInfo, Firewall, Ethernet, IP, Hosts, MoCAand Bridging. |
finalize | finalize |
getParameterNames | API returns parameter names associated with the supported objects. |
getParameterValues | Returns values of the parameters queried for. |
setParameterValues | API to the parameters with the values provided |
setCommit | Mainly used in bulk/atomic set operations when more than one parameter is involved. |
setParameterAttributes | API to set notifications status for the parameters. |
getParameterAttributes | API to get notifications status for the parameters. |
AddTblRow | API to add rows to the objects of table type. |
DeleteTblRow | API to delete rows to the objects of table type. |
busCheck | API is used in diagnostic mode. |
...
9) setParameterValues
10) getParameterNames
draw.io Diagram diagramName Parameter Get Flow Diagram.drawio revision 1
Figure 3 Parameter Get Flow
draw.io Diagram diagramName Parameter Set Flow Diagram.drawio revision 1
Figure 4 Parameter Set Flow
draw.io Diagram diagramName PandM boot-up flow diagram.drawio revision 1
Figure 5 PandM boot-up flow
...
When an object is added during runtime:
The following list describes acronyms and definitions for terms used throughout this document: