Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel1

Info

This page is under development

toc

Overview

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  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
diagramNamePandM OverviewDiagram.drawio
revision
Gliffy Diagram
macroId422a09a5-ae4b-434d-a71f-d472538b2e8b
namePandM OverviewDiagram
pagePin1

Figure 1 PandM Overview

system calls - Example

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");

...

...


Architecture

This is the architecture of PandM component:

Gliffy Diagramdrawio
diagramNamePandMArchitectureOverview.drawio
revision
macroId5538a73b-44d2-4933-8a5c-5aa12b95289a
namePandMArchitectureOverview
pagePin1

Figure 2 PandM Architecture Overview

...

The implementation of APIs is responsible to convert the user space calls into Device IOCTL (kernel space) accordingly.

Code Flow


Gliffy Diagramdrawio
diagramNamePandMCodeflow.drawio
revision
macroId38674e90-db03-4b37-b799-f62d47be7a3b
namePandMCodeflow
pagePin1

PandM DM Objects on Initialization

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()


Object/Parameter supported by P&M

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.

Functional Structure

CCSP Message Bus APIs

...

PandM supports following CCSP Message Bus APIs:

initialize

Initializes NAT, DeviceInfo, Firewall, Ethernet, IP, Hosts, MoCAand Bridging.

finalize

finalize
getParameterNamesAPI returns parameter names associated with the supported objects.
getParameterValuesReturns values of the parameters queried for.
setParameterValuesAPI to the parameters with the values provided
setCommitMainly used in bulk/atomic set operations when more than one parameter is involved.
setParameterAttributesAPI to set notifications status for the parameters.
getParameterAttributesAPI to get notifications status for the parameters.
AddTblRowAPI to add rows to the objects of table type.
DeleteTblRowAPI to delete rows to the objects of table type.
busCheckAPI is used in diagnostic mode.


CCSP Message Bus APIs required from other components

...

9) setParameterValues

10) getParameterNames

PandM System Flow

Parameter set/get flow in PandM

draw.io Diagram
diagramNameParameter Get Flow Diagram.drawio
revision1
Image Removed

Figure 3 Parameter Get Flow

draw.io Diagram
diagramNameParameter Set Flow Diagram.drawio
revision1
Image Removed

Figure 4 Parameter Set Flow

PandM boot-up flow


draw.io Diagram
diagramNamePandM boot-up flow diagram.drawio
revision
Image Removed
1

Figure 5 PandM boot-up flow

...