Versions Compared

Key

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

Table of Contents
maxLevel1

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
revision1
Image Removed

Figure 1 PandM Overview

PandM Component Definitions

...

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:

draw.io Diagram
diagramNamePandMArchitectureOverview.drawio
revision1
Image Removed

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

...


draw.io Diagram
diagramNamePandMCodeflow.drawio
revision1

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
revision1
Image Removed

Figure 5 PandM boot-up flow

...