CDRouter BBF.069 User Guide
Introduction
The CDRouter BBF.069 expansion contains the official test cases for the Broadband Forum’s BBF.069 certification program for TR-069 enabled devices.
Please see the following resources for more information on the BBF.069 certification program, requirements, and application process:
Test Methodology
The Broadband Forum’s TR-069 Abstract Test Plan (ATP-069) defines all of the test cases included in the BBF.069 certification program. Issue 2 Corrigendum 1 is the latest version and is available here:
CDRouter’s BBF.069 expansion includes individual test modules for each major functional area covered by ATP-069. CDRouter BBF.069 test case summaries are available here:
Mandatory Versus Conditional Tests
ATP-069 designates certain test cases as “Mandatory” or “Conditionally Mandatory” for the purposes of the BBF.069 certification program. These designations are provided within the description section of the test case, but they do not have any meaning within CDRouter and are not used by CDRouter when selecting or executing tests.
Automated Versus Manual Testing
Most of the CDRouter BBF.069 test cases are fully automated and can be run together in one package. However, some of the tests require some sort of manual intervention during the test execution in order for the test to complete successfully. This will be indicated in the “Test Execution Type:” section of test case description. Tests labeled as “Manual” will provide details of what actions the user must perform when running these tests.
Manual testing is assisted through the use of CDRouter’s built-in pause mode which will automatically pause a test at specific points and prompt the user for manual interaction. CDRouter will automatically skip “Manual” tests if pause mode has not been enabled.
CDRouter’s pause mode can be enabled by checking off the "Pause between each test case"
option when creating or modifying a test package.
Alternatively, pause mode can be enabled by adding the -pause
option
to the “Additional CLI arguments” field.
For more information on enabling pause mode, please see this Knowledge Base article.
The table below lists all BBF.069 “Manual” tests that require CDRouter’s “pause mode” in order to run.
Manual Tests
Test Name | Description |
---|---|
5_001_DHCPv4_ACS_discovery | ACS Discovery Using DHCPv4 |
5_002_DHCPv6_ACS_discovery | ACS Discovery Using DHCPv4 |
5_003_DHCPv4_ACS_rediscovery | ACS rediscovery Using DHCPv4 |
5_004_DHCPv6_ACS_rediscovery | ACS Rediscovery Using DHCPv6 |
5_005_DHCPv4_Inform_retry | DHCP Retry to the DHCPv4 Server |
5_006_DHCPv6_Inform_retry | DHCP Retry To The DHCPv6 Server |
5_011_Same_mechanism_after_factoryReset | Connection To ACS Uses Same Mechanism After Factory Reset |
5_012_DHCPv4_null_term_URL | Handling Null Terminated ACS URL Obtained From DHCPv4 Server |
5_013_DHCPv6_null_term_URL | Handling Null Terminated ACS URL Obtained From DHCPv6 Server |
5_016_ACS_URL_mod_3rd_party | ACS URL Change On The DUT By Third Party Means |
5_018_event_discard_after_bootstrap | Event Discard After Bootstrap Inform |
5_066_SPA_Active_notif | SetParameterAttributes - Active Notifications |
5_069_SPA_complete_path_passive_notif | SetParameterAttributes - Passive Notification - Complete Path |
5_070_SPA_partial_path_passive_notif | SetParameterAttributes - Passive Notification - Partial Path |
5_071_SPA_complete_partial_path_passive_notif | SetParameterAttributes Passive Notification Complete and Partial Path |
5_072_SPA_disable_notif | SetParameterAttributes Disable Notification |
5_089_factoryReset | FactoryReset |
5_099_no_inform_ip_address_change | No Inform On Reconnect With No IP Address Change |
5_100_enable_cwmp_to_false | EnableCWMP Set To False |
5_105_default_active_notification_throttle | DefaultActiveNotificationThrottle Throttles Active Notifications |
Reboot Test
Test 5_079_Manual_Reboot
requires that the DUT be rebooted by a mechanism
other than TR-069. Use RestartDut
and cpeRebootMode
to configure the DUT to be rebooted automatically or manually with a prompt.
See the
CDRouter User Guide
for more information.
Requirements and License
CDRouter BBF.069 is an expansion for CDRouter that is purchased separately. It requires a base license of CDRouter along with the CDRouter TR-069 expansion. Please contact sales@qacafe.com for pricing and purchase information.
Configuration
In previous versions of the BBF.069 expansion, these testvars were contained in a separate file and had to be manually added to the CDRouter config file.
New config files created by CDRouter will always contain the latest testvars available. However, if you are upgrading from a previous version of the BBF.069 expansion, you will need to upgrade your existing config file using the Upgrade button in CDRouter’s config editor to automatically add the BBF.069 testvars, as well as any other newly-added testvars that may be missing from your config.
See the “How do I upgrade a config file?” Knowledge Base article for more details on updating your config file.
It is important to note that the testvars required by previous versions
of the BBF.069 expansion are now obsolete. In CDRouter 10.3.6 and newer
versions, these tests have been updated to use testvars that already
exist within CDRouter wherever possible. A smaller and completely
different set of 'bbf069'
testvars has been introduced to supersede
the testvars used in previous versions of the expansion.
The new BBF.069 testvars can be found in the 'CDRouter BBF.069 Expansion'
section of the config file.
SECTION "CDRouter BBF.069 Expansion" {
# testvar supportsBBF069 yes
SECTION "General" {
SECTION "ACS URL" {
# testvar bbf069ACSURL http://acs1.broadband-forum.org
# testvar bbf069AlternateACSURL http://acs2.broadband-forum.org
}
SECTION "Security Certificates" {
# testvar bbf069AlternateAcsCertPath /usr/cdrouter/tests/bbf.069/Security_Certificate/acs2/CDRouter_acsCaCert.pem
# testvar bbf069AlternateAcsCaCertPath /usr/cdrouter/tests/bbf.069/Security_Certificate/acs2/CDRouter_acsCaCert.pem
# testvar bbf069InvalidCertPath /usr/cdrouter/tests/bbf.069/Security_Certificate/acs1invalid/CDRouter_acsCert.pem
# testvar bbf069InvalidCACertPath /usr/cdrouter/tests/bbf.069/Security_Certificate/acs1invalid/CDRouter_acsCaCert.pem
# testvar bbf069AncientCertPath /usr/cdrouter/tests/bbf.069/Security_Certificate/acs1expired/CDRouter_acsCert.pem
# testvar bbf069AncientCACertPath /usr/cdrouter/tests/bbf.069/Security_Certificate/acs1expired/CDRouter_acsCaCert.pem
}
SECTION "HTTP Verification" {
# testvar bbf069HTTPVerification no
}
}
SECTION "Device Specific" {
SECTION "General" {
# testvar bbf069RootDataModel InternetGatewayDevice
# testvar bbf069SupportedRPCs "GetRPCMethods SetParameterValues GetParameterValues GetParameterNames SetParameterAttributes GetParameterAttributes AddObject DeleteObject Reboot Download"
# testvar bbf069UnsupportedRPC ChangeDUState
# testvar bbf069UploadType "1 Vendor Configuration File"
# testvar bbf069ExpectedUpgradeTime 100
}
SECTION "Data Model" {
# testvar bbf069AddDeleteObject InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.PortMapping.
# testvar bbf069ActiveParam InternetGatewayDevice.ManagementServer.PeriodicInformInterval
# testvar bbf069ActiveParamType unsignedInt
# testvar bbf069ActiveParamValue 60
# testvar bbf069CompletePath1 InternetGatewayDevice.ManagementServer.PeriodicInformInterval
# testvar bbf069CompletePath1Type unsignedInt
# testvar bbf069CompletePath1Value 73
# testvar bbf069CompletePath2 InternetGatewayDevice.ManagementServer.PeriodicInformEnable
# testvar bbf069CompletePath2Type boolean
# testvar bbf069CompletePath2Value true
# testvar bbf069PartialPath InternetGatewayDevice.ManagementServer.
# testvar bbf069PartialMultiPath InternetGatewayDevice.LANDevice.
# testvar bbf069PartialMultiPathEmpty InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.PortMapping.
# testvar bbf069PartialPathEmpty InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.PortMapping.
# testvar bbf069InvalidPath InternetGatewayDevice.ManagementServer.PeriodicInformInterv
# testvar bbf069InvalidPathType unsignedInt
# testvar bbf069UnwritablePath InternetGatewayDevice.DeviceInfo.Manufacturer
# testvar bbf069UnwritableType string
# testvar bbf069WritableString InternetGatewayDevice.Time.NTPServer1
}
}
}
When upgrading your config file, any obsolete testvars will automatically
be placed under the 'Miscellaneous Testvars'
section of the config file
since they are no longer recognized or used. Although these testvars
can safely be deleted, you may wish to keep them in your config file in
case you ever need to downgrade and return to an older version of the
BBF.069 tests that requires them.
SECTION "Miscellaneous Testvars" {
# - Obsolete testvars from previous versions of BBF.069 expansion
testvar _unh_dhcp_inform_timeout 300
testvar acs_pm_accessList {}
testvar acs_pm_accessListChange 0
testvar acs_pm_active_notify 2
testvar acs_pm_notifyChange 1
testvar acs_pm_path Device.ManagementServer.PeriodicInformInterval
:
:
}
Testvar Default Values
Certain BBF.069 specific testvars are data model specific and must be properly configured based on the root object and data model supported by the DUT.
By default all BBF.069 data model specific testvars have been defined for the
InternetGatewayDevice:1
root object model. These testvars can be easily
updated to support the Device:2
root object model instead by setting the
testvar bbf069RootDataModel
to a value of Device and then
clicking on the “Upgrade Config” button.
Reasonable default values have been chosen for both InternetGatewayDevice:1
and Device:2
implementations. Some DUTs may not support all default values.
In these cases the configuration should be modified to reference objects and
parameters that are supported by the DUT.
Please contact support@qacafe.com for assistance in selecting the appropriate
testvar values for older Device:1
DUTs.
Required testvar Settings and DUT Configuration
In order for the CDRouter BBF.069 tests to run properly, you must configure the DUT with the correct TR-069 parameters so that it can successfully connect to CDRouter’s ACS.
For most setups, the DUT should be configured with the following settings:
DUT TR-069 (CWMP) Setting | Value |
---|---|
ACS URL | http://acs1.broadband-forum.org/ |
ACS Username | qacafe |
ACS Password | qacafe123 |
Your CDRouter config file should also contain the following testvar settings to allow the DUT to connect and establish CWMP sessions:
testvar supportsCWMP yes
testvar acsDomain acs1.broadband-forum.org
testvar acsIp 6.0.0.1
testvar acsTransport http
testvar acsPort 80
testvar acsDiscoveryUrl none
testvar tr69InformTimeout 300
testvar tr69MinPeriodicInform 120
testvar bbf069ACSURL http://acs1.broadband-forum.org (must match dnsHostname1)
testvar bbf069AlternateACSURL http://acs2.broadband-forum.org (must match dnsHostname2)
testvar dnsHostname1 acs1.broadband-forum.org
testvar dnsIp1 6.0.0.1 (must be same as acsIp)
testvar dnsHostname2 acs2.broadband-forum.org
testvar dnsIp2 6.0.0.2 (must be different from acsIp)
These settings represent the minimum required configuration needed to start running the Mandatory-Automated test module.
SSL/TLS Testing Configuration
Some additional settings are necessary to enable the use of secure SSL/TLS connections between the DUT and ACS. Secure connections are required in order to run the optional Secure_CWMP.tcl test module.
DUT TR-069 (CWMP) Setting | Value |
---|---|
ACS URL | https://acs1.broadband-forum.org/ |
testvar supportsCWMP yes
testvar acsDomain acs1.broadband-forum.org
testvar acsIp 6.0.0.1
testvar acsTransport https
testvar acsPort 443
testvar acsDiscoveryUrl none
testvar tr69InformTimeout 300
testvar tr69MinPeriodicInform 120
testvar acsSslVersion tls
testvar acsCertPath /usr/cdrouter/tests/bbf.069/Security_Certificate/acs1/CDRouter_acsCert.pem
testvar acsCaCertPath /usr/cdrouter/tests/bbf.069/Security_Certificate/acs1/CDRouter_acsCaCert.pem
testvar acsDownloadCertPath /usr/cdrouter/tests/acs-download.cdroutertest.com.pem
testvar acsDownloadCaCertPath /usr/cdrouter/tests/acs.cdroutertest.com-ca.pem
testvar bbf069AlternateAcsCertPath /usr/cdrouter/tests/bbf.069/Security_Certificate/acs2/CDRouter_acsCert.pem
testvar bbf069AlternateAcsCaCertPath /usr/cdrouter/tests/bbf.069/Security_Certificate/acs2/CDRouter_acsCaCert.pem
testvar bbf069InvalidCertPath /usr/cdrouter/tests/bbf.069/Security_Certificate/acs1invalid/CDRouter_acsCert.pem
testvar bbf069InvalidCACertPath /usr/cdrouter/tests/bbf.069/Security_Certificate/acs1invalid/CDRouter_acsCaCert.pem
testvar bbf069AncientCertPath /usr/cdrouter/tests/bbf.069/Security_Certificate/acs1expired/CDRouter_acsCert.pem
testvar bbf069AncientCACertPath /usr/cdrouter/tests/bbf.069/Security_Certificate/acs1expired/CDRouter_acsCaCert.pem
testvar bbf069ACSURL http://acs1.broadband-forum.org (must match dnsHostname1)
testvar bbf069AlternateACSURL http://acs2.broadband-forum.org (must match dnsHostname2)
testvar dnsHostname1 acs1.broadband-forum.org
testvar dnsIp1 6.0.0.1 (must be same as acsIp)
testvar dnsHostname2 acs2.broadband-forum.org
testvar dnsIp2 6.0.0.2 (must be different from acsIp)
(Note: in previous versions of the BBF.069 expansion, ACS certificates were located in the “/usr/cdrouter/vendor/IOL/BBF.069/Security_Certificate” directory)
The SSL test module includes seven optional automated test cases. Although this test module is automated, different configurations are required for some of the test cases. As a result, multiple test packages must be created for each of the three required configurations and run sequentially.
Test Case | Description |
---|---|
commonName_validation |
Common Name Certificate Validation |
connection_SSL |
Connection Establishment using SSL 3.0 |
connection_TLS |
Connection Establishment using TLS |
rejection_SSL |
Rejection of Invalid certificate |
redirect_HTTPS_matching_certificate |
HTTP Redirection HTTPS with URL Matching Certificate |
redirect_HTTPS_mismatched_certificate |
HTTP Redirection HTTPS with URL/Certificate Mismatch |
certificates_used_no_ntp |
Use of Certificates In The Absence Of NTP |
The UNH-IOL has provided a number of self signed certificates for BBF.069 SSL testing. These certificates are installed in the following directory:
/usr/cdrouter/tests/bbf.069/Security_Certificate/
Each ACS that is used during the BBF.069 test cases has it’s own sub-directory where the server, intermediate, and root CA certificates are located. The server certificate and private key for each ACS are contained in the CDRouter_acsCert.pem file within the appropriate sub-directory. Likewise, the intermediate and root CAs are located in the CDRouter_acsCaCert.pem file. During the SSL handshake process the ACS will provide both the server certificate and intermediate CA to the DUT.
If you have issues with SSL, please refer to this Knowledge Base article for some helpful tips.
XMPP Connection Requests
If the DUT supports XMPP connection requests (as described in Annex K of the TR-069 Amendment 6 specification), the following configuration changes must be made.
DUT TR-069 (CWMP) Setting | Value |
---|---|
Connection Request Mode | XMPP |
Username | qacafe |
Resource | cdrouter |
Password | qacafe123 |
testvar acsDeviceDiscovery yes
testvar acsSupportsXmppConnReq yes
testvar acsXmppConnReqUsername qacafe
testvar acsXmppConnReqResource cdrouter
testvar acsXmppConnReqPassword qacafe123
testvar acsXmppConnReqUseTls yes
Download Testing
The tests in the BBF.069 Download.tcl module verify the the DUT can successfully handle Download RPC requests from the ACS to download and install new firmware. CDRouter provides these firmware images through a virtual download server that it creates at the start of each test.
Two firmware images are required for most tests. One image must be the same
firmware version that the DUT is running at the start of the test (the
“original” image), while the other image must be a different version that the
DUT “upgrades” (or “downgrades”) to. The firmware version number for each image
must be available in the Device.DeviceInfo.SoftwareVersion
parameter reported
by the DUT, as these tests will use this value to determine whether the DUT has
successfully loaded the requested firmware image.
The following two testvars specify the path to the firmware images on the CDRouter system.
testvar tr69DownloadImage /path/to/image
testvar tr69DownloadOriginalImage /path/to/original_image
Note: These testvars are located in the CDRouter TR-069 Expansion section of the config file and are shared by other TR-069 tests.
Upload Testing
The optional Upload.tcl test module is designed to verify the DUT’s config file upload functionality using the Upload RPC. This is a fully automated test module covering a variety of Upload scenarios to a virtual server that CDRouter creates at the beginning of each test case.
In order to run any Upload tests, the following testvar must be set to “yes” to indicate that the DUT supports the Upload RPC:
testvar tr69UploadRPC yes
By default, the ACS will request the DUT to upload its config file, which will
be placed in the /tmp
directory of the CDRouter system. However, the following
testvars can be used to change the upload location or request the DUT to upload
its log file instead:
testvar tr69UploadPath /tmp
testvar bbf069UploadType "1 Vendor Configuration File"
Note: The tr69UploadPath
testvar is located in the
CDRouter TR-069 Expansion section of the config file and is shared
by other TR-069 tests. However, the tr69ConfigUploadFilename
and
tr69LogUploadFilename
testvars found in that section are not used
by the BBF.069 Upload.tcl module.