RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
...
WebPA is a secure web protocol messaging system for bi-directional communication between cloud server and RDK devices. It was built from the ground up specifically with security and performance as priorities. It is currently used by millions of devices and services and will continue to expand in scale into the future. WebPA 2.0 commonly known as Xmidt (pronounced "transmit") is a combination of a server cluster and client that provide a highly available data path to devices deployed all over the world.
...
Gliffy Diagram | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
...
Component | Type | Description | Used in current setup |
---|---|---|---|
Talaria | Server | Talaria maintains the secure websocket connections from the device and passes the messages from or to the device. | Yes |
Scytale | Server | Scytale accepts the inbound requests , fans out across data centersand delivers the messages to the Talaria machines that could be hosting the device connection. | Yes |
tr1d1um | Server | The Webpa micro-service that encode TR-181 requests. | Yes |
petasos | Server | Petasos helps reduce the load on the Talaria machines during mass reboot cases by calculating which specific Talaria a device should connect to & redirecting the incoming request. | No |
caduceus | Server | Caduceus provides the pub-sub message delivery (notification) mechanism for xmidt. | No |
parodus | Client | Parodus is the light weight client that reaches out to the xmidt cloud to establish the connection from CPE devices. | Yes |
...
If pre-built packages are already installed as explained in previous section & we want to use the same, skip to configuration section
...
Required for compiling server components written in go language.
Code Block |
---|
$ sudo yum install golang |
Glide is a package manager for Go that is conceptually similar to package managers for other languages. Glide provides the following functionality:
glide.yaml
file. This includes a name, version or version range, version control information for private repos or when the type cannot be detected, and more.glide.lock
file. This enables reproducibly fetching the dependency tree.vendor/
directories, known as the Vendor Experiment, so that different projects can have differing versions of the same dependencies.Code Block |
---|
$ wget -c https://github.com/Masterminds/glide/releases/download/v0.13.1/glide-v0.13.1-linux-amd64.tar.gz $ tar -xzf glide-v0.13.1-linux-amd64.tar.gz -C /opt $ echo "export PATH=$PATH:/opt/linux-amd64/" >> $HOME/.bash_profile |
...
Code Block |
---|
vi /lib/rdk/startParodus.sh /bin/systemctl set-environment PARODUS_CMD=" --hw-mac=$HwMac --webpa-ping-time=$PingWaitTime --webpa-interface-used=$NwInterface --webpa-url=http://192.168.30.105 --partner-id=comcast --webpa-backoff-max=9 --force-ipv4 --ssl-cert-path=$SSL_CERT_FILE" |
Restart the service after changes are done.
Code Block |
---|
# systemctl restart parodus |
Parodus service log file is located as /opt/logs/parodus.log, provides debug information such as connection details, service initialization, which protocols are enabled/disabled etc.
...
When we see an error similar to the below, it is related to zookeeper service failed to load or not running currently. restarting zookeeper & subsequent restart of other services solves the issue.
...
Code Block |
---|
$curl -H ''Authorization:Basic <AUTH_TOKEN>' -i http://<WEBPA-URL>/api/v2/device/mac:<DEVICE_MAC>/config?names=<PARAMETER> e.g. $curl -H 'Authorization:Basic d2VicGFAMTIzNDU2Nzg5MA==' -i http://192.168.30.105:6003/api/v2/device/mac:84e058575831/config?names=Device.DeviceInfo.FirmwareName |
Panel |
---|
Device.DeviceInfo.Manufacturer Device.DeviceInfo.ManufacturerOUI Device.DeviceInfo.ModelName Device.DeviceInfo.SerialNumber Device.DeviceInfo.HardwareVersion Device.DeviceInfo.SoftwareVersion Device.DeviceInfo.UpTime Device.DeviceInfo.ProcessorNumberOfEntries Device.DeviceInfo.MemoryStatus.Total Device.DeviceInfo.MemoryStatus.Free Device.DeviceInfo.ProcessStatus.CPUUsage Device.DeviceInfo.ProcessStatus.ProcessNumberOfEntries |