CONNECTIONS 2022
Device Management Standards and Technology
Jason Walls
QA Cafe
Broadband User Services Work Area Director at BBF
Let’s talk about SNMP and NETCONF
Things change the closer you get to consumer networking
Device management has different needs
The User Services Platform is a system of Controllers and Agents that enables remote manipulation of software and hardware capabilities.
A bit of history
ISPs see need for life-cycle management, monitoring, and provisioning for gateway routers. CWMP (TR-069) is born.
TR-069 expands to manage more interfaces and more devices, like STB, VoIP, Wi-Fi, and more.
Cable/MSOs incorporate TR-069 for management of advanced gateways/Wi-Fi using Device:2 data model.
Explosion of new technologies and challenges for both networking and consumer electronics: IoT, Wi-Fi/Mesh, handling over-the-top and third party services, and desire for end-user control. USP created in 2018.
2016
2014
2012
2010
2008
2006
2004
2018
USP 1.2 released with Device:2.15. Valuable for consumer electronics as well as CSPs for analytics, customer self-care, onboarding, real-time IoT control, managed Wi-Fi, and more.
USP 1.2
CPE
ACS
CWMP
A little TR-069 history
USP features
What makes up the User Services Platform?
TR-369
User Services Platform
https://usp.technology/
TR-181 Issue 2
Device:2 Data Model
BBF.369 Certification
Self-certification program (TP-469)
OB-USP-Agent
Open-source reference implementation (if desired)
Standards
Testing
Open-source
USP enables all uses to coexist within single ecosystem
Internet
Broadband Network
USP Controller as ACS, or co-existence with TR-069
Third party MSP, vendor, or application provider
Mobile end-user with app on computing device
Local end-user with app on computing device
Data collector
Device and application capabilities managed and controlled with standard TR-181 data model, directly or by proxy
USP messages
JSON bulk data over HTTP, MQTT, or over USP Notify messages
USP messages
USP messages
USP messages
USP messages
Non-USP Device
TR-181/Device:2 Data Model Capabilities
USP Controllers and USP Agents have:
USP Agents
Modeled proxy device
TCP or UDP�(depending on MTP)
TLS or DTLS�(depending on MTP)
Message Transfer Protocol
(STOMP, MQTT, WebSocket)
Optional Session Context with TLS
USP Record
(Protobuf encoding with
schema usp-record.proto)
USP Message
(Protobuf encoding with schema usp-msg.proto)
Controller A
Controller Endpoint
Message Transfer
Protocol
Agent Database
Application/
Policy Engine
Data Collector
Controller B
MTP
Agent Endpoint
Supported
Data
Model
Instantiated
Data
Model
Service Elements
Network Interfaces, Managed Services, Software Modules, Firmware, Proxied Devices modeled in Device:2 (TR-181)
USP Agent
MTP Proxy
USP 1.2 Architecture
USP 1.2 Protocol Stack
Optional REST API
Other applications/automation
Bulk Data Collector Endpoint
Optional
HTTP Bulk Data Client
TR-069 ACS
Co-existing TR-069 Endpoint
USP specification
What is a Service Element?
Wi-Fi Configuration
Performance Diagnostics
Smart Home Functions
Object path syntax
[Stats.ErrorCount>1000]
Device
.
WiFi
.
Radio
.
.
Stats.
TR-181 Device:2 Data Model
Supported Data Model
Defines which Service Elements an Agent understands
Retrieved with the GetSupportedDM message
Describes the Agent’s current state
Retrieved with Get and GetInstances messages
Instantiated Data Model
Role Based Access Control
Message Transfer Protocols (MTP)
Why end-to-end session context?
Google Protocol Buffers
message Get {
repeated string param_paths = 1;
}
message GetResp {
repeated RequestedPathResult req_path_results = 1;
message RequestedPathResult {
string requested_path = 1;
fixed32 err_code = 2;
string err_msg = 3;
repeated ResolvedPathResult resolved_path_results = 4;
}
message ResolvedPathResult {
string resolved_path = 1;
map<string, string> result_params = 2;
}
}
The USP Record
The USP Record
Record {
version 1.2
to_id proto::<agent-id>
from_id proto::<controller-id>
payload_security PLAINTEXT
record_type {
no_session_context {
payload .. .. ..
The USP Message
header {
msg_id: "52867"
msg_type: ADD
}
body {
request {
add {
allow_partial: true
create_objs {
obj_path: "Device.WiFi.SSID."
param_settings {
{
param: "LowerLayers"
value: "Device.WiFi.Radio.1."
required: true
}
{
param: "SSID"
value: "NewSSIDName“
required: true
}
}
}
}
}
}
header {
msg_id: "52867"
msg_type: ADD_RESP
}
body {
response {
add_resp {
created_obj_results {
requested_path: "Device.WiFi.SSID."
oper_status {
oper_success {
instantiated_path: ""Device.WiFi.SSID.4."
{
unique_keys {
{
key: "BSSID"
value: "112233445566"}
{
key: "Name"
value: "GuestNetwork1"}
{
key: "Alias"
value: "cpe-alias-1"}
}
}
}
}
}
}
Add Request
Add Response
Message flexibility with allow_partial & required_parameter
Add
Set
Delete
allow_partial?
required_parameter?
Agent
Controller
allow_partial: false
USP Add/Set/Delete
“Don’t do any of this if at least one object fails.”
“At least one object failed.”
USP Error
Agent
Controller
allow_partial: true
USP Add/Set/Delete
“Do what you can even if some of it fails.”
“At least one object failed.”
USP AddResp/SetResp/DeleteResp
w/oper_failure
Bulk data collection
But let’s talk about Wi-Fi management
USP enables all uses to coexist within single ecosystem
Internet
Broadband Network
USP Controller as ACS, or co-existence with TR-069
Third party MSP, vendor, or application provider
Mobile end-user with app on computing device
Local end-user with app on computing device
Data collector
Device and application capabilities managed and controlled with standard TR-181 data model, directly or by proxy
USP messages
JSON bulk data over HTTP, MQTT, or over USP Notify messages
USP messages
USP messages
USP messages
USP messages
Non-USP Device
TR-181/Device:2 Data Model Capabilities
USP Controllers and USP Agents have:
USP Agents
Modeled proxy device
Resources