diff --git a/basic_TR69.py b/basic_TR69.py
new file mode 100644
index 0000000..0b9bfae
--- /dev/null
+++ b/basic_TR69.py
@@ -0,0 +1,651 @@
+#!/usr/bin/python
+# Copyright 2012 Google Inc. All Rights Reserved.
+
+"""This class implements some basic TR069 test cases.
+
+   This class extends the TestCase Class.
+   This file implements some basic TR069 test cases to verify Bruno management
+   features. In the following test cases, only those that are defined in
+   'config.cfg' file will be executed.
+
+   Basic TR069 test cases include the following:
+   testID: 11865129  7.6.1 ACS Connection via IPv6
+   testID: 11721375  7.6.10 Verify there is a way to reset to factory default
+                            if user modifies the local configuration
+                            '/etc/init.d/S05factoryreset later'
+   testID: 14319146  7.6.19 Default ACS URL
+   testID: 11721371  7.6.2 ACS URL Pass to Bruno via Moca
+   testID: 14312009  7.6.21 Restrict the ability to locally configure ACS URL
+   testID: 14186028  7.6.22 Security of the link between the DHCPv6 server
+                            and the CPE
+   testID: 14312010  7.6.23 CPE Connection Initiation
+   testID: 14247012  7.6.24.1 Support of Connection Request notification
+                              mechanism
+   testID: 14186029  7.6.24.2 InternetGatewayDevice.ManagementServer.
+                              ConnectionRequestURL
+   testID: 14312011  7.6.24.3 InternetGatewayDevice.ManagementServer.
+                              ConnectionRequestURL format
+   testID: 14293012  7.6.24.4 No data is conveyed in the Connection
+                              Request HTTP Get notification
+   testID: 14165037  7.6.24.5 Restrict the number of Connection Request
+                              notifications
+   testID: 14315010  7.6.24.6 Connection Request Notification does not
+                              terminate current session
+   testID: 14247013  7.6.25.1 MaxEnvelopes
+   testID: 14312012  7.6.25.2 Cookie support (optional)
+   testID: 14293013  7.6.25.4 Authentication
+   testID: 14311008  7.6.26.1 SOAP namespace identifier
+   testID: 14293014  7.6.26.2 SOAP Fault element
+   testID: 14311009  7.6.26.3 SOAP future extensibility
+   testID: 14186030  7.6.27 Fault Handling
+   testID: 14319148  7.6.27.1 SOAP requests respond
+   testID: 14266497  7.6.27.2 Session Termination
+   testID: 14312013  7.6.28 Correctly handle concurrent downloads in catawampus
+   testID: 11874098  7.6.3.1 TLS (1.2)/SSL based Transport for TR-069 on IPv6
+   testID: 14315007  7.6.3.2 Support for encryption algorithms
+   testID: 14247014  7.6.32 Persist TR-069 config across reboots
+   testID: 14293015  7.6.33 Send notification when disk is full
+   testID: 14293016  7.6.34 Support for multiple SSIDs in WLANConfiguration
+   testID: 11865130  7.6.4 TR069-ACS Validation
+   testID: 11722370  7.6.5 TR069-Inform Request
+   testID: 11874103  7.6.7 Digest Authentication
+   testID: 11843139  7.6.8.1 Support of RPCs: REBOOT
+"""
+
+__author__ = 'Lehan Meng (lmeng@google.com)'
+
+
+import os
+import re
+import time
+
+from IPy import IP
+
+import device
+import ssh
+import testCase
+
+
+class BasicTR069Test(testCase.TestCase):
+  """Class for test cases: Bruno basic TR069 features.
+
+  A range of basic TR069 test cases are defined in this Class
+  """
+
+  def Init(self):
+    """Initialize the networking feature tests."""
+    # Get all device information.
+    info = self.log.CreateResultInfo(
+        '---', 'Networking test verification started...')
+    self.log.SendLine(self.test_info, info)
+    self.bruno = device.Bruno(user=self.params['user'],
+                              addr=self.params['addr'],
+                              bruno_prompt=self.params['bruno_prompt'],
+                              addr_ipv6=self.params['addr_ipv6'])
+    self.bruno.SetLogging(self.log)
+    if not self.p_ssh:
+      self.p_ssh = ssh.SSH(user=self.params['user'],
+                           addr=self.params['addr'],
+                           bruno_prompt=self.params['bruno_prompt'],
+                           addr_ipv6=self.params['addr_ipv6'])
+    self.bruno.dev_ssh = self.p_ssh
+    self.p_ssh.SetLogging(self.log)
+
+    self.__delay_5_sec = 5
+    self.__delay_5_min = 300
+    self.__delay_15_min = 900
+    return
+
+  def SshTunnel(self):
+    """Create ssh tunnel for the test."""
+    self.p_ssh.SshRetry(5, 15)
+    return
+
+  def VerifyDuplicatedAddress(self, ip_addr):
+    """Verify device can detect duplicated ipv6 address existing in network.
+
+    Set a duplicated ip address on the device.
+    Verify that the device can detect duplicated ip address
+
+    Args:
+      ip_addr: the duplicated address
+    Returns:
+      True: if duplicated detected
+      False: if duplicated address is not detected
+    """
+    time_stamp = self.bruno.GetTimeStamp()
+    self.bruno.dev_ssh.SendCmd('ip -6 addr add ' + ip_addr + '/64 dev br0')
+    time.sleep(1)
+    self.bruno.dev_ssh.SendCmd('dmesg')
+    log_list = self.bruno.dev_ssh.GetCmdOutput()
+
+    pattern_line = (
+      '\[\d*\.\d{3}\]\s*\w*\d:\s* IPv6 duplicate address\s*('
+      + ip_addr + ')\s*[/\d+]*\s*detected!')
+    self.bruno.dev_ssh.SendCmd('ip -6 addr del ' + ip_addr + '/64 dev br0')
+
+    if self.bruno.FindLineInLog(log_list, time_stamp, pattern_line):
+      info = self.log.CreateResultInfo('Pass', 'Duplicated IPv6 address '
+                                       'detected: ' + ip_addr)
+      self.log.SendLine(self.test_info, info)
+    else:
+      info = self.log.CreateResultInfo('Failed',
+                                       'Duplicated IPv6 address not detected: '
+                                       + ip_addr + '. Verification Failed!')
+      self.log.SendLine(self.test_info, info)
+    #[132344.324] br0: IPv6 duplicate address fe80:... detected!
+
+  def VerifyExpectedVersion(self):
+    """Verify if device is running on expected software version."""
+    if not self.bruno.VerifyCurrentVersion(self.params['expected_version']):
+      info = self.log.CreateErrorInfo('critical',
+                                      'Device software version is not expected!'
+                                      ' Exit!')
+      self.log.SendLine(self.test_info, info)
+      os.sys.exit(1)
+
+  def VerifyACSWithIPv6(self):
+    """Test ID: 11865129 - Verify IPv6 connection to ACS.
+
+    To verify device connects to ACS via IPv6, use tcpdump to capture
+    network packets, filtered with source IPv6 address, and destination
+    IPv6 address of Bruno and ACS.
+
+    tcpdump filter:
+      1. source address: device address
+         destination address: ACS address
+      2. source address: ACS address
+         destination address: device address
+
+    if packets on both directions are found, test succeeds.
+    Otherwise, test failed.
+    """
+    info = self.log.CreateProgressInfo(
+          '10%', 'Verifying current image version, expected: '
+          + self.params['expected_version'])
+    self.log.SendLine(self.test_info, info)
+    self.VerifyExpectedVersion()
+
+    # capture 10 packets on both directions.
+    # capture length: 100 bytes
+    packet_to_catch = '5'
+    bytes_to_catch = '100'
+    interface_to_catch = 'br0'
+    tcpdump_command = ('tcpdump -i ' + interface_to_catch + ' -c '
+                       + packet_to_catch + ' -s ' + bytes_to_catch
+                       + ' \'(((src ' + self.params['addr_ipv6']
+                       + ') and (dst ' + self.params['acs_ipv6']
+                       + ')) or ((src ' + self.params['acs_ipv6']
+                       + ') and (dst ' + self.params['addr_ipv6']
+                       + ')))\'')
+    info = self.log.CreateProgressInfo(
+          '30%', 'Calling tcpdump to capture device traffic to ACS server: '
+          'capturing on interface: ' + interface_to_catch
+          + ' Catch packets: ' + packet_to_catch)
+    self.log.SendLine(self.test_info, info)
+    self.p_ssh.SendCmd(tcpdump_command, 180)
+    info = self.log.CreateProgressInfo(
+          '60%', 'Packets captured. Analyzing...')
+    self.log.SendLine(self.test_info, info)
+    tcpdump_result = self.p_ssh.GetCmdOutput()
+    tcpdump_result.reverse()
+    if self.CheckACSIPv6Connection(tcpdump_result):
+      info = self.log.CreateProgressInfo(
+          '100%', 'TR069 traffic verified: Device connected to ACS via IPv6')
+      self.log.SendLine(self.test_info, info)
+      info = self.log.CreateResultInfo(
+          'Pass', 'TR069 traffic verified: Device connected to ACS via IPv6')
+      self.log.SendLine(self.test_info, info)
+    else:
+      info = self.log.CreateResultInfo(
+          'Failed', 'TR069 traffic verified: No IPv6 connection detected.')
+      self.log.SendLine(self.test_info, info)
+
+  def ParseDumpMsgToPackets(self, tcpdump_result):
+    """Parse tcpdump dump messages information to packets.
+
+    tcpdump result (for example):
+    14:24:36.887936 00:1a:11:30:64:e6 (oui Unknown) > a8:d0:e5:a1:e3:02    L1
+      (oui Unknown), ethertype IPv6 (0x86dd), length 86:                   L2
+    0x0000:  6000 0000 0020 0640 2605 a601 fe00 fd18  `......@&.......     L3
+    0x0010:  021a 11ff fe30 64e6 2001 4860 8005 0000  .....0d...H`....     L4
+    0x0020:  0000 0000 0000 008d e2e8 01bb 73e4 0dc8  ............s...     L5
+    0x0030:  a1bf d109 8011 0429 276b 0000 0101 080a  .......)'k......     L6
+    0x0040:  0389 b875 d29d 2401                      ...u..$.             L7
+    14:24:36.912863 a8:d0:e5:a1:e3:02 (oui Unknown) > 00:1a:11:30:64:e6    L8
+      (oui Unknown), ethertype IPv6 (0x86dd), length 86:                   L9
+    0x0000:  6000 0000 0020 0634 2001 4860 8005 0000  `......4..H`....     L10
+    0x0010:  0000 0000 0000 008d 2605 a601 fe00 fd18  ........&.......     L11
+    0x0020:  021a 11ff fe30 64e6 01bb e2e8 a1bf d109  .....0d.........     L12
+    0x0030:  73e4 0dc9 8011 05a8 6bdc 0000 0101 080a  s.......k.......     L13
+    0x0040:  d29d 763c 0389 b875                      ..v<...u             L14
+
+    This method will parse the dump message to two packets dump:
+    (new packet starts with time stamp: 14:24:36.912863)
+    packet_list[0]: line L1 ~ line L7
+    packet_list[1]: line L8 ~ line L14
+
+    Args:
+      tcpdump_result: raw dump message from tcpdump
+    Returns:
+      packet_list
+    """
+    packet_list = []
+    packet = []
+    for line in tcpdump_result:
+      m = re.search('^\s*\d{2}:\d{2}:\d{2}\.\d+\s*', line)
+      if m:
+        # new packet found:
+        packet = []
+        packet.append(line)
+        index = tcpdump_result.index(line)
+        while index+1 < len(tcpdump_result):
+          packet_line = tcpdump_result[index+1]
+          m = re.search('^\s*\d{2}:\d{2}:\d{2}\.\d+\s*', packet_line)
+          if not m:
+            # not start of next packet
+            packet.append(packet_line)
+            index +=1
+          else:
+            # next packet starts
+            packet_list.append(packet)
+            break
+    return packet_list
+
+  def FindSrcAddrFromTcpdump(self, packet):
+    """Parse source IPv6 address from tcpdump message.
+
+    Args:
+      packet: tcpdump dump message
+    Returns:
+      source address in packet dump message
+    """
+    src_addr = None
+    for line in packet:
+      m = re.search('^\s*0x0000:\s*([\da-f]{4})\s*([\da-f]{4})\s*([\da-f]{4})'
+                    '\s*([\da-f]{4})\s*([\da-f]{4})\s*([\da-f]{4})'
+                    '\s*([\da-f]{4})\s*([\da-f]{4})\s*.*', line)
+      if m:
+        # first line of packet data:
+        src_addr = (m.group(5) + ':' + m.group(6) + ':' + m.group(7)
+                    + ':' + m.group(8)) + ':'
+        index = packet.index(line)
+        m = re.search('^\s*0x0010:\s*([\da-f]{4})\s*([\da-f]{4})\s*([\da-f]{4})'
+                      '\s*([\da-f]{4})\s*([\da-f]{4})\s*([\da-f]{4})'
+                      '\s*([\da-f]{4})\s*([\da-f]{4})\s*.*', packet[index+1])
+        src_addr += (m.group(1) + ':' + m.group(2) + ':' + m.group(3)
+                     + ':' + m.group(4))
+        break
+    return src_addr
+
+  def FindDstAddrFromTcpdump(self, packet):
+    """Parse destination IPv6 address from tcpdump message.
+
+    Args:
+      packet: tcpdump dump message
+    Returns:
+      source address in packet dump message
+    """
+    dst_addr = None
+    for line in packet:
+      m = re.search('^\s*0x0010:\s*([\da-f]{4})\s*([\da-f]{4})\s*([\da-f]{4})'
+                    '\s*([\da-f]{4})\s*([\da-f]{4})\s*([\da-f]{4})'
+                    '\s*([\da-f]{4})\s*([\da-f]{4})\s*.*', line)
+      if m:
+        # first line of packet data:
+        dst_addr = (m.group(5) + ':' + m.group(6) + ':' + m.group(7)
+                    + ':' + m.group(8)) + ':'
+        index = packet.index(line)
+        m = re.search('^\s*0x0020:\s*([\da-f]{4})\s*([\da-f]{4})\s*([\da-f]{4})'
+                      '\s*([\da-f]{4})\s*([\da-f]{4})\s*([\da-f]{4})'
+                      '\s*([\da-f]{4})\s*([\da-f]{4})\s*.*', packet[index+1])
+        dst_addr += (m.group(1) + ':' + m.group(2) + ':' + m.group(3)
+                     + ':' + m.group(4))
+        break
+    return dst_addr
+
+  def CheckACSIPv6Connection(self, tcpdump_result):
+    """Examine captured packets, find IPv6 communication between ACS and device.
+
+    Args:
+      tcpdump_result: tcpdump result: captured packets message dump
+    Returns:
+      True: if bi-directional communication found from packet list.
+      False: otherwise
+    """
+    packet_list = self.ParseDumpMsgToPackets(tcpdump_result)
+    dev_to_acs = False
+    acs_to_dev = False
+    for pacekt in packet_list:
+      src_addr = IP(self.FindSrcAddrFromTcpdump(pacekt))
+      dst_addr = IP(self.FindDstAddrFromTcpdump(pacekt))
+      if (src_addr == IP(self.params['addr_ipv6'])
+          and dst_addr == IP(self.params['acs_ipv6'])):
+        dev_to_acs = True
+      if (dst_addr == IP(self.params['addr_ipv6'])
+          and src_addr == IP(self.params['acs_ipv6'])):
+        acs_to_dev = True
+
+    if dev_to_acs and acs_to_dev:
+      return True
+    else:
+      return False
+
+  def VerifyFactoryReset(self):
+    """Test case: 11721375, Verify the factory reset function of device.
+
+    Verify factory reset according to the following conditions:
+    - version
+    - address
+    - cat /etc/ntpd.conf
+    - cat /etc/resolv.conf
+    - cat /tmp/gvsbhost
+    - ls /tmp/gvsb*
+    - cat /tmp/cwmp/acs_url
+    - ls -l /var/media
+    - ls -l /rw/sage
+
+    This test will need to manually reset the device using reset button.
+    """
+    test_failed = False
+    info = self.log.CreateProgressInfo(
+          '10%', 'Verifying current image version, expected: '
+          + self.params['expected_version'])
+    self.log.SendLine(self.test_info, info)
+    self.VerifyExpectedVersion()
+
+    # get file time information:
+    wiz_bin_date = None
+    self.p_ssh.SendCmd('ls -l /rw/sage')
+    cmd_list = self.p_ssh.GetCmdOutput()
+    for line in cmd_list:
+      if 'Wiz.bin' in line:
+        m = re.search('.*(\d{4}-\d{2}-\d{2}\s*\d+:\d+).*', line)
+        if m:
+          wiz_bin_date = m.group(1)
+
+    info = self.log.CreateProgressInfo(
+          '20%', 'Please reset the device. '
+          'Hold down reset button for 5 seconds...')
+    self.log.SendLine(self.test_info, info)
+
+    info = self.log.CreateProgressInfo(
+          '30%', 'Wait ' + str(self.__delay_5_min)
+          + ' for device to reset and reboot...')
+    self.log.SendLine(self.test_info, info)
+    time.sleep(self.__delay_5_min)
+
+    info = self.log.CreateProgressInfo(
+          '40%', 'Connecting to device...')
+    self.log.SendLine(self.test_info, info)
+    self.SshTunnel()
+
+    addr = self.bruno.GetIPv4Address()
+    if not addr:
+      info = self.log.CreateErrorInfo('critical',
+                                      'Error! No IPv4 address found!')
+      self.log.SendLine(self.test_info, info)
+      test_failed = True
+    else:
+      info = self.log.CreateProgressInfo(
+          '50%', 'Checking device IPv4 address succeed: IPv4: '
+          + addr)
+      self.log.SendLine(self.test_info, info)
+
+    addr_v6 = self.bruno.GetIPv6Address()
+    if not addr_v6:
+      info = self.log.CreateErrorInfo('warning', 'No IPv6 address found!')
+      self.log.SendLine(self.test_info, info)
+    else:
+      info = self.log.CreateProgressInfo(
+          '55%', 'Checking device IPv6 address succeed: IPv6: '
+          + addr_v6[0])
+      self.log.SendLine(self.test_info, info)
+
+    if self.bruno.GetProductClass() == 'GFMS100':
+      # fat bruno, check Wiz.bin file:
+      found_file = False
+      self.p_ssh.SendCmd('ls -l /rw/sage')
+      cmd_list = self.p_ssh.GetCmdOutput()
+      for line in cmd_list:
+        if 'Wiz.bin' in line:
+          found_file = True
+          m = re.search('.*(\d{4}-\d{2}-\d{2}\s*\d+:\d+).*', line)
+          new_date = m.group(1)
+          if new_date == wiz_bin_date:
+            # if file is not updated
+            test_failed = True
+            info = self.log.CreateErrorInfo(
+                'warning', 'Wiz.bin not updated: '
+                'file date before reset: ' + wiz_bin_date
+                + ' new file date: ' + new_date)
+            self.log.SendLine(self.test_info, info)
+          else:
+            info = self.log.CreateProgressInfo(
+                '60%', 'Checking Wiz.bin file succeed: new file created at: '
+                + new_date)
+            self.log.SendLine(self.test_info, info)
+          break
+      if not found_file:
+        test_failed = True
+        info = self.log.CreateErrorInfo(
+            'critical', 'No Wiz.bin file found after reset!')
+        self.log.SendLine(self.test_info, info)
+
+    # verify ntpd.conf
+    ts = self.bruno.GetTimeServer()
+    if not ts:
+      test_failed = True
+      info = self.log.CreateErrorInfo(
+          'critical', 'No time server found in file /etc/ntpd.conf!')
+      self.log.SendLine(self.test_info, info)
+    else:
+      info = self.log.CreateProgressInfo(
+          '65%', 'Checking time server (ntpd.conf) succeed: Timeserver: '
+          + ts)
+      self.log.SendLine(self.test_info, info)
+
+    # verify resolv.conf
+    dns = self.bruno.GetDNSServer()
+    if not dns:
+      test_failed = True
+      info = self.log.CreateErrorInfo(
+          'critical', 'No DNS server found in file /etc/resolv.conf!')
+      self.log.SendLine(self.test_info, info)
+    else:
+      info = self.log.CreateProgressInfo(
+          '70%', 'Checking DNS server (resolv.conf) succeed: DNS: '
+          + dns)
+      self.log.SendLine(self.test_info, info)
+
+    # check gvsb:
+    gvsb = self.bruno.GetGVSBHost().strip()
+    if not gvsb or (gvsb != self.params['gvsb_host']):
+      test_failed = True
+      info = self.log.CreateErrorInfo(
+          'critical', 'GVSB host not found or not matching expected host!')
+      self.log.SendLine(self.test_info, info)
+    else:
+      info = self.log.CreateProgressInfo(
+          '75%', 'Checking GVSB server (gvsbhost) succeed: URL: '
+          + gvsb)
+      self.log.SendLine(self.test_info, info)
+
+    # check gvsb files:
+    self.bruno.dev_ssh.SendCmd('ls /tmp/gvsb*')
+    cmd_list = self.bruno.dev_ssh.GetCmdOutput()
+    gvsb_channel = False
+    gvsb_kick = False
+    gvsb_host = False
+    for line in cmd_list:
+      if 'gvsbhost' in line:
+        gvsb_host = True
+      elif 'gvsbchannel' in line:
+        gvsb_channel = True
+      elif 'gvsbkick' in line:
+        gvsb_kick = True
+    if not gvsb_channel or not gvsb_kick or not gvsb_host:
+      test_failed = True
+      info = self.log.CreateErrorInfo(
+          'critical', 'GVSB files missing! Check /tmp/for gvsb files')
+      self.log.SendLine(self.test_info, info)
+    else:
+      info = self.log.CreateProgressInfo(
+          '80%', 'Checking GVSB files (/tmp/gvsb*) succeed. Files found: '
+          'gvsbhost, gvsbchannel, gvsbkick.')
+      self.log.SendLine(self.test_info, info)
+
+    # verify acs url:
+    if self.bruno.GetACSUrl() != self.params['acs_url']:
+      test_failed = True
+      info = self.log.CreateErrorInfo(
+          'critical', 'ACS URL is not expected! Expected URL: '
+          + self.params['acs_url'])
+      self.log.SendLine(self.test_info, info)
+    else:
+      info = self.log.CreateProgressInfo(
+          '85%', 'Checking ACS URL (/tmp/cwmp/acs_url) succeed. URL: '
+          + self.params['acs_url'])
+      self.log.SendLine(self.test_info, info)
+
+    # verify sage properties
+    self.bruno.dev_ssh.SendCmd('ls -l /rw/sage')
+    cmd_list = self.bruno.dev_ssh.GetCmdOutput()
+    sage_prop = False
+    sage_prop_backup = False
+    for line in cmd_list:
+      if 'Sage.properties.autobackup' in line:
+        sage_prop_backup = True
+      elif 'Sage.properties' in line:
+        sage_prop = True
+    if not sage_prop or not sage_prop_backup:
+      test_failed = True
+      info = self.log.CreateErrorInfo(
+          'critical', 'Missing file in /rw/sage folder.')
+      self.log.SendLine(self.test_info, info)
+    else:
+      info = self.log.CreateProgressInfo(
+          '90%', 'Checking sage properties files (/rw/sage/) succeed.')
+      self.log.SendLine(self.test_info, info)
+
+    if test_failed:
+      info = self.log.CreateResultInfo(
+          'Failed', 'Device configuration not '
+          'restored completely after factory reset!')
+      self.log.SendLine(self.test_info, info)
+    else:
+      info = self.log.CreateResultInfo(
+          'Pass', 'Device configuration '
+          'successfully restored after factory reset.')
+      self.log.SendLine(self.test_info, info)
+      info = self.log.CreateProgressInfo(
+          '100%', 'Device configuration '
+          'successfully restored after factory reset.')
+      self.log.SendLine(self.test_info, info)
+
+  def VerifyDefaultACSURL(self):
+    """Test case: 14319146. This method verifies default ACS URL on device."""
+    # this test needs to disable the Ethernet port, therefore can not
+    # be automated via ssh tunnel
+    print 'pass this test case'
+
+  def Run(self):
+    """Run the test case."""
+    ####### Add your code here -- BEGIN #######
+    print 'Test Started...'
+
+    self.Init()
+    time.sleep(2)  # time delay between commands issued to Device
+    self.SshTunnel()
+    info = self.log.CreateProgressInfo(
+        '5%', 'SSH session to device successfully established!')
+    self.log.SendLine(self.test_info, info)
+
+    if self.test_info['testID'] == '11865129':
+      self.VerifyACSWithIPv6()
+    elif self.test_info['testID'] == '11721375':
+      self.VerifyFactoryReset()
+    elif self.test_info['testID'] == '14319146':
+      self.VerifyDefaultACSURL()
+    elif self.test_info['testID'] == '11721371':
+      print 'run test'
+    elif self.test_info['testID'] == '14312009':
+      print 'run test'
+    elif self.test_info['testID'] == '14186028':
+      print 'run test'
+    elif self.test_info['testID'] == '14312010':
+      print 'run test'
+    elif self.test_info['testID'] == '14247012':
+      print 'run test'
+    elif self.test_info['testID'] == '14186029':
+      print 'run test'
+    elif self.test_info['testID'] == '14312011':
+      print 'run test'
+    elif self.test_info['testID'] == '14293012':
+      print 'run test'
+    elif self.test_info['testID'] == '14165037':
+      print 'run test'
+    elif self.test_info['testID'] == '14315010':
+      print 'run test'
+    elif self.test_info['testID'] == '14247013':
+      print 'run test'
+    elif self.test_info['testID'] == '14312012':
+      print 'run test'
+    elif self.test_info['testID'] == '14293013':
+      print 'run test'
+    elif self.test_info['testID'] == '14311008':
+      print 'run test'
+    elif self.test_info['testID'] == '14293014':
+      print 'run test'
+    elif self.test_info['testID'] == '14311009':
+      print 'run test'
+    elif self.test_info['testID'] == '14186030':
+      print 'run test'
+    elif self.test_info['testID'] == '14319148':
+      print 'run test'
+    elif self.test_info['testID'] == '14266497':
+      print 'run test'
+    elif self.test_info['testID'] == '14312013':
+      print 'run test'
+    elif self.test_info['testID'] == '11874098':
+      print 'run test'
+    elif self.test_info['testID'] == '14315007':
+      print 'run test'
+    elif self.test_info['testID'] == '14247014':
+      print 'run test'
+    elif self.test_info['testID'] == '14293015':
+      print 'run test'
+    elif self.test_info['testID'] == '14293016':
+      print 'run test'
+    elif self.test_info['testID'] == '11865130':
+      print 'run test'
+    elif self.test_info['testID'] == '11722370':
+      print 'run test'
+    elif self.test_info['testID'] == '11874103':
+      print 'run test'
+    elif self.test_info['testID'] == '11843139':
+      print 'run test'
+    else:
+      print 'do nothing...'
+
+    print 'Test Completed...'
+    ####### Add your code here -- END   #######
+
+  def Destructor(self):
+    """This is the destructor function to call for the user extened class."""
+    self.p_ssh.close()
+
+if __name__ == '__main__':
+  # Test cases defined in this file:
+  test_defined = ['11865129', '11721375', '14319146', '11721371',
+                  '14312009', '14186028', '14312010', '14247012', '14186029',
+                  '14312011', '14293012', '14165037', '14315010', '14247013',
+                  '14312012', '14293013', '14311008', '14293014', '14311009',
+                  '14186030', '14319148', '14266497', '14312013', '11874098',
+                  '14315007', '14247014', '14293015', '14293016', '11865130',
+                  '11722370', '11874103', '11843139']
+  # To execute test cases that defined in config file:
+  test_to_execute = testCase.TestCase.FindTestCaseToExecute('config.cfg')
+  for test_id in test_to_execute:
+    if test_id in test_defined:
+      test = BasicTR069Test(testID=test_id)
diff --git a/basic_network_testcases.py b/basic_network_testcases.py
new file mode 100644
index 0000000..2979227
--- /dev/null
+++ b/basic_network_testcases.py
@@ -0,0 +1,230 @@
+#!/usr/bin/python
+# Copyright 2012 Google Inc. All Rights Reserved.
+
+"""This class implements some basic networking test cases.
+
+   This class extends the TestCase Class.
+   This file implements some test cases to verify Bruno basic networking
+   features. In the following test cases, only those that are defined in
+   'config.cfg' file will be executed.
+
+   Feature test cases include the following:
+   testID: 11874111   7.2.12 IPv6 Duplicate Address Detection
+   testID: 11724363   7.2.16 Ethernet/Moca Traffic Overloading
+   testID: 11843145   7.2.17 VLAN Pass Through
+   testID: 11723379   7.2.18 VLAN Tagging over Home Owner WiFi
+   testID: 11722378   7.2.19 VLAN Tagging over Guest WiFi
+   testID: 11721378   7.2.2 Verify BRUNO (connected to BRUNO-IS) can obtain
+                            IPv4 address via RG's DHCP service
+   testID: 11792173   7.2.20 VLAN Tag Removal
+   testID: 11721382   7.2.21 IPv6 Verify subnet with /56, /64 length
+   testID: 11843141   7.2.5 Verify client can get correct IPv4 address if
+                            the RG changes DHCP address pool
+   testID: 11721379   7.2.7 Verify time offset information obtained via
+                            DHCP option2
+"""
+
+__author__ = 'Lehan Meng (lmeng@google.com)'
+
+
+import re
+import time
+
+import device
+import ip
+import ssh
+import testCase
+
+
+class BasicNetworkingTest(testCase.TestCase):
+  """Class for test cases of Bruno networking features.
+
+      Configuration Parameters:
+      testID: 11874111/11724363/11843145/11723379
+              /11722378/11721378/11792173/11721382/
+              /11843141/11721379
+      addr = Bruno's IP address
+      user = root
+      pwd = google
+      bruno_prompt = gfibertv#
+      file = cmdOutput.txt
+      title = Basic_Networking
+  """
+
+  def Init(self):
+    """Initialize the networking feature tests."""
+    # Get all device information.
+    info = self.log.CreateResultInfo(
+        '---', 'Networking test verification started...')
+    self.log.SendLine(self.test_info, info)
+    self.bruno = device.Bruno(user=self.params['user'],
+                              addr=self.params['addr'],
+                              bruno_prompt=self.params['bruno_prompt'],
+                              addr_ipv6=self.params['addr_ipv6'])
+    self.bruno.SetLogging(self.log)
+    if not self.p_ssh:
+      self.p_ssh = ssh.SSH(user=self.params['user'],
+                           addr=self.params['addr'],
+                           bruno_prompt=self.params['bruno_prompt'],
+                           addr_ipv6=self.params['addr_ipv6'])
+    self.bruno.dev_ssh = self.p_ssh
+    self.p_ssh.SetLogging(self.log)
+    return
+
+  def SshTunnel(self):
+    """Create ssh tunnel for the test."""
+    self.p_ssh.SshRetry(5, 15)
+    return
+
+  def VerifyDuplicatedAddress(self, ip_addr):
+    """Verify device can detect duplicated ipv6 address existing in network.
+
+    Set a duplicated ip address on the device.
+    Verify that the device can detect duplicated ip address
+
+    Args:
+      ip_addr: the duplicated address
+    Returns:
+      True: if duplicated detected
+      False: if duplicated address is not detected
+    """
+    time_stamp = self.bruno.GetTimeStamp()
+    self.bruno.dev_ssh.SendCmd('ip -6 addr add ' + ip_addr + '/64 dev br0')
+    time.sleep(1)
+    self.bruno.dev_ssh.SendCmd('dmesg | grep detected')
+    log_list = self.bruno.dev_ssh.GetCmdOutput()
+
+    pattern_line = ('\[\s*\d*\.\d{3}\]\s*\w*\d:\s* IPv6 duplicate address\s*('
+                    + ip_addr + ')\s*[/\d+]*\s*detected!')
+    self.bruno.dev_ssh.SendCmd('ip -6 addr del ' + ip_addr + '/64 dev br0')
+
+    if self.bruno.FindLineInLog(log_list, time_stamp, pattern_line):
+      info = self.log.CreateResultInfo('Pass', 'Duplicated IPv6 address '
+                                       'detected: ' + ip_addr)
+      self.log.SendLine(self.test_info, info)
+    else:
+      info = self.log.CreateResultInfo('Failed',
+                                       'Duplicated IPv6 address not detected: '
+                                       + ip_addr + '. Verification Failed!')
+      self.log.SendLine(self.test_info, info)
+    #[132344.324] br0: IPv6 duplicate address fe80:... detected!
+
+  def GetIPv4Address(self):
+    """Test Bruno IP address. testID: 11874104."""
+    # Use ifconfig to check interface IP address
+    self.p_ssh.SendCmd(r'ifconfig br0')
+    line = self.p_ssh.GetCmdOutput(3)[1]
+
+    # Get Bruno IP address
+    address = ip.IPADDR(line).IsLikeIpv4Address()
+    if address is not None:
+      ip.IPADDR(address).IsValidIpv4Address()
+      info = self.log.CreateProgressInfo('---',
+                                         'Verify IP: Bruno has IP address '
+                                         + address)
+      self.log.SendLine(self.test_info, info)
+      return address
+    else:
+      info = self.log.CreateErrorInfo('critical',
+                                      'Error! Bruno does not have IP address!'
+                                      ' Exit!')
+      self.log.SendLine(self.test_info, info)
+      return False
+
+    def GetNetMask(self):
+      """Get Netmask from device."""
+      self.p_ssh.SendCmd(r'ifconfig br0')
+      line = self.p_ssh.GetCmdOutput(3)[1]
+
+      netmask = re.search(r'mask [0-9]+(?:\.[0-9]+){3}', line).group()
+      address = ip.IPADDR(netmask).IsLikeIpv4Address()
+      if address is not None:
+        ip.IPADDR(address).IsValidIpv4Address()
+        info = self.log.CreateProgressInfo('---',
+                                           'Verify IP: Bruno has netmask: '
+                                           + address)
+        self.log.SendLine(self.test_info, info)
+        return address
+      else:
+        info = self.log.CreateErrorInfo('critical',
+                                        'Error! Bruno does not have netmask!'
+                                        ' Exit!')
+        self.log.SendLine(self.test_info, info)
+      return False
+
+  def VerifyIPv6(self):
+    """Test Bruno IPv6 address. testID: 11722376."""
+    # Use ip addr to check interface IPv6 address
+    self.p_ssh.SendCmd(r'ip addr show dev br0')
+
+    for line in reversed(self.p_ssh.p_ssh.before.splitlines()[-10:]):
+      ipv6_addr = re.search('inet6.*dynamic', line)
+      # Get Bruno IPv6 address
+      if ipv6_addr is not None:
+        info = self.log.CreateProgressInfo('---',
+                                           'Verify IPv6: '
+                                           'Bruno has IPv6 address: '
+                                           + ipv6_addr.group())
+        self.log.SendLine(self.test_info, info)
+        break
+    else:
+      info = self.log.CreateErrorInfo('intermediate',
+                                      'Wanring! '
+                                      'Bruno did not have IPv6 address')
+      self.log.SendLine(self.test_info, info)
+    return
+
+  def VerifyDHCPOverBrunoIS(self):
+    """Verify Bruno (connected to Bruno-IS) can get IPv4 address from RG.
+
+    test ID: 11721378
+    This test requires thinBruno is connected to FatBruno, then to RG.
+    """
+    ip_addr = self.GetIPv4Address()
+    if ip_addr:
+      info = self.log.CreateResultInfo('Pass', 'Bruno can get IP address from '
+                                       'RG while connecting to Bruno-IS. '
+                                       'IP address: '+ ip_addr)
+      self.log.SendLine(self.test_info, info)
+    else:
+      info = self.log.CreateResultInfo('Failed',
+                                       'Bruno cannot get IP address from '
+                                       'RG. Verification Failed!')
+      self.log.SendLine(self.test_info, info)
+
+  def Run(self):
+    """Run the test case."""
+    ####### Add your code here -- BEGIN #######
+    print 'Test Started...'
+
+    self.Init()
+    time.sleep(2)  # time delay between commands issued to Device
+    self.SshTunnel()
+
+    self.VerifyIPv6()
+
+    if self.test_info['testID'] == '11874111':
+      ip_addr = self.params['addr_ipv6_dup']
+      self.VerifyDuplicatedAddress(ip_addr)
+    elif self.test_info['testID'] == '11721378':
+      self.VerifyDHCPOverBrunoIS()
+
+    # TODO(lmeng): Test cases: '11724363', '11843145', '11723379', '11722378',
+    # '11792173', '11721382', '11843141', '11721379'
+
+    print 'Test Completed...'
+    ####### Add your code here -- END   #######
+
+  def Destructor(self):
+    """This is the destructor function to call for the user extened class."""
+    self.p_ssh.close()
+
+if __name__ == '__main__':
+  # Test cases defined in this file:
+  test_defined = ['11874111', '11724363', '11843145', '11723379', '11722378',
+                  '11721378', '11792173', '11721382', '11843141', '11721379']
+  # To execute test cases that defined in config file:
+  test_to_execute = testCase.TestCase.FindTestCaseToExecute('config.cfg')
+  for test_id in test_to_execute:
+    if test_id in test_defined:
+      test = BasicNetworkingTest(testID=test_id)
diff --git a/data/DataModel_requirement.cfg b/data/DataModel_requirement.cfg
new file mode 100644
index 0000000..35f5a43
--- /dev/null
+++ b/data/DataModel_requirement.cfg
@@ -0,0 +1,296 @@
+Device.DeviceInfo.AdditionalHardwareVersion
+Device.DeviceInfo.AdditionalSoftwareVersion
+Device.DeviceInfo.Description
+Device.DeviceInfo.HardwareVersion
+Device.DeviceInfo.Manufacturer
+Device.DeviceInfo.ManufacturerOUI
+Device.DeviceInfo.MemoryStatus.Free
+Device.DeviceInfo.MemoryStatus.Total
+Device.DeviceInfo.ModelName
+Device.DeviceInfo.ProcessStatus.CPUUsage
+Device.DeviceInfo.ProcessStatus.Process.{i}.CPUTime
+Device.DeviceInfo.ProcessStatus.Process.{i}.Command
+Device.DeviceInfo.ProcessStatus.Process.{i}.PID
+Device.DeviceInfo.ProcessStatus.Process.{i}.Priority
+Device.DeviceInfo.ProcessStatus.Process.{i}.Size
+Device.DeviceInfo.ProcessStatus.Process.{i}.State
+Device.DeviceInfo.ProcessStatus.ProcessNumberOfEntries
+Device.DeviceInfo.ProcessorNumberOfEntries
+Device.DeviceInfo.ProductClass
+Device.DeviceInfo.SerialNumber
+Device.DeviceInfo.SoftwareVersion
+Device.DeviceInfo.SupportedDataModelNumberOfEntries
+Device.DeviceInfo.TemperatureStatus.TemperatureSensorNumberOfEntries
+Device.DeviceInfo.UpTime
+Device.DeviceInfo.VendorConfigFileNumberOfEntries
+Device.DeviceInfo.VendorLogFileNumberOfEntries
+Device.Ethernet.Interface.{i}.DuplexMode
+Device.Ethernet.Interface.{i}.Enable
+Device.Ethernet.Interface.{i}.LastChange
+Device.Ethernet.Interface.{i}.LowerLayers
+Device.Ethernet.Interface.{i}.MACAddress
+Device.Ethernet.Interface.{i}.MaxBitRate
+Device.Ethernet.Interface.{i}.Name
+Device.Ethernet.Interface.{i}.Stats.BroadcastPacketsReceived
+Device.Ethernet.Interface.{i}.Stats.BroadcastPacketsSent
+Device.Ethernet.Interface.{i}.Stats.BytesReceived
+Device.Ethernet.Interface.{i}.Stats.BytesSent
+Device.Ethernet.Interface.{i}.Stats.DiscardPacketsReceived
+Device.Ethernet.Interface.{i}.Stats.DiscardPacketsSent
+Device.Ethernet.Interface.{i}.Stats.ErrorsReceived
+Device.Ethernet.Interface.{i}.Stats.ErrorsSent
+Device.Ethernet.Interface.{i}.Stats.MulticastPacketsReceived
+Device.Ethernet.Interface.{i}.Stats.MulticastPacketsSent
+Device.Ethernet.Interface.{i}.Stats.PacketsReceived
+Device.Ethernet.Interface.{i}.Stats.PacketsSent
+Device.Ethernet.Interface.{i}.Stats.UnicastPacketsReceived
+Device.Ethernet.Interface.{i}.Stats.UnicastPacketsSent
+Device.Ethernet.Interface.{i}.Stats.UnknownProtoPacketsReceived
+Device.Ethernet.Interface.{i}.Status
+Device.Ethernet.Interface.{i}.Upstream
+Device.Ethernet.Interface.{i}.X_CATAWAMPUS-ORG_ActualBitRate
+Device.Ethernet.Interface.{i}.X_CATAWAMPUS-ORG_ActualDuplexMode
+Device.Ethernet.InterfaceNumberOfEntries
+Device.Ethernet.LinkNumberOfEntries
+Device.Ethernet.VLANTerminationNumberOfEntries
+Device.InterfaceStackNumberOfEntries
+Device.ManagementServer.CWMPRetryIntervalMultiplier
+Device.ManagementServer.CWMPRetryMinimumWaitInterval
+Device.ManagementServer.ConnectionRequestPassword
+Device.ManagementServer.ConnectionRequestURL
+Device.ManagementServer.ConnectionRequestUsername
+Device.ManagementServer.DefaultActiveNotificationThrottle
+Device.ManagementServer.EnableCWMP
+Device.ManagementServer.ManageableDeviceNumberOfEntries
+Device.ManagementServer.ParameterKey
+Device.ManagementServer.Password
+Device.ManagementServer.PeriodicInformEnable
+Device.ManagementServer.PeriodicInformInterval
+Device.ManagementServer.PeriodicInformTime
+Device.ManagementServer.STUNEnable
+Device.ManagementServer.URL
+Device.ManagementServer.UpgradesManaged
+Device.ManagementServer.Username
+Device.MoCA.Interface.{i}.AssociatedDevice.{i}.MACAddress
+Device.MoCA.Interface.{i}.AssociatedDevice.{i}.NodeID
+Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PHYRxRate
+Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PHYTxRate
+Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PacketAggregationCapability
+Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PreferredNC
+Device.MoCA.Interface.{i}.AssociatedDevice.{i}.QAM256Capable
+Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxBcastPowerLevel
+Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxErroredAndMissedPackets
+Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxPackets
+Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxPowerLevel
+Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxSNR
+Device.MoCA.Interface.{i}.AssociatedDevice.{i}.TxBcastRate
+Device.MoCA.Interface.{i}.AssociatedDevice.{i}.TxPackets
+Device.MoCA.Interface.{i}.AssociatedDevice.{i}.TxPowerControlReduction
+Device.MoCA.Interface.{i}.AssociatedDeviceNumberOfEntries
+Device.MoCA.Interface.{i}.BackupNC
+Device.MoCA.Interface.{i}.CurrentOperFreq
+Device.MoCA.Interface.{i}.CurrentVersion
+Device.MoCA.Interface.{i}.Enable
+Device.MoCA.Interface.{i}.FirmwareVersion
+Device.MoCA.Interface.{i}.HighestVersion
+Device.MoCA.Interface.{i}.LastChange
+Device.MoCA.Interface.{i}.LastOperFreq
+Device.MoCA.Interface.{i}.LowerLayers
+Device.MoCA.Interface.{i}.MACAddress
+Device.MoCA.Interface.{i}.Name
+Device.MoCA.Interface.{i}.NetworkCoordinator
+Device.MoCA.Interface.{i}.NodeID
+Device.MoCA.Interface.{i}.PacketAggregationCapability
+Device.MoCA.Interface.{i}.PrivacyEnabled
+Device.MoCA.Interface.{i}.QAM256Capable
+Device.MoCA.Interface.{i}.Stats.BroadcastPacketsReceived
+Device.MoCA.Interface.{i}.Stats.BroadcastPacketsSent
+Device.MoCA.Interface.{i}.Stats.BytesReceived
+Device.MoCA.Interface.{i}.Stats.BytesSent
+Device.MoCA.Interface.{i}.Stats.DiscardPacketsReceived
+Device.MoCA.Interface.{i}.Stats.DiscardPacketsSent
+Device.MoCA.Interface.{i}.Stats.ErrorsReceived
+Device.MoCA.Interface.{i}.Stats.ErrorsSent
+Device.MoCA.Interface.{i}.Stats.MulticastPacketsReceived
+Device.MoCA.Interface.{i}.Stats.MulticastPacketsSent
+Device.MoCA.Interface.{i}.Stats.PacketsReceived
+Device.MoCA.Interface.{i}.Stats.PacketsSent
+Device.MoCA.Interface.{i}.Stats.UnicastPacketsReceived
+Device.MoCA.Interface.{i}.Stats.UnicastPacketsSent
+Device.MoCA.Interface.{i}.Stats.UnknownProtoPacketsReceived
+Device.MoCA.Interface.{i}.Status
+Device.MoCA.Interface.{i}.Upstream
+Device.MoCA.InterfaceNumberOfEntries
+Device.PeriodicStatistics.MaxReportSamples
+Device.PeriodicStatistics.MinSampleInterval
+Device.PeriodicStatistics.SampleSet.{i}.Enable
+Device.PeriodicStatistics.SampleSet.{i}.FetchSamples
+Device.PeriodicStatistics.SampleSet.{i}.Name
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.CalculationMode
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Enable
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Failures
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.HighThreshold
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.LowThreshold
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Reference
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SampleMode
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SampleSeconds
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SuspectData
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Values
+Device.PeriodicStatistics.SampleSet.{i}.ParameterNumberOfEntries
+Device.PeriodicStatistics.SampleSet.{i}.ReportEndTime
+Device.PeriodicStatistics.SampleSet.{i}.ReportSamples
+Device.PeriodicStatistics.SampleSet.{i}.ReportStartTime
+Device.PeriodicStatistics.SampleSet.{i}.SampleInterval
+Device.PeriodicStatistics.SampleSet.{i}.SampleSeconds
+Device.PeriodicStatistics.SampleSet.{i}.Status
+Device.PeriodicStatistics.SampleSet.{i}.TimeReference
+Device.PeriodicStatistics.SampleSetNumberOfEntries
+Device.Services.STBService.{i}.Components.FrontEnd.{i}.IP.IGMP.ClientGroup.{i}.GroupAddress
+Device.Services.STBService.{i}.Components.FrontEnd.{i}.IP.IGMP.ClientGroupNumberOfEntries
+Device.Services.STBService.{i}.Components.FrontEndNumberOfEntries
+Device.Services.STBServiceNumberOfEntries
+Device.Services.StorageServices.Capabilities.FTPCapable
+Device.Services.StorageServices.Capabilities.HTTPCapable
+Device.Services.StorageServices.Capabilities.HTTPSCapable
+Device.Services.StorageServices.Capabilities.HTTPWritable
+Device.Services.StorageServices.Capabilities.SFTPCapable
+Device.Services.StorageServices.Capabilities.SupportedFileSystemTypes
+Device.Services.StorageServices.Capabilities.SupportedNetworkProtocols
+Device.Services.StorageServices.Capabilities.SupportedRaidTypes
+Device.Services.StorageServices.Capabilities.VolumeEncryptionCapable
+Device.Services.StorageServices.Enable
+Device.Services.StorageServices.LogicalVolume.{i}.Capacity
+Device.Services.StorageServices.LogicalVolume.{i}.Enable
+Device.Services.StorageServices.LogicalVolume.{i}.FileSystem
+Device.Services.StorageServices.LogicalVolume.{i}.FolderNumberOfEntries
+Device.Services.StorageServices.LogicalVolume.{i}.Name
+Device.Services.StorageServices.LogicalVolume.{i}.Status
+Device.Services.StorageServices.LogicalVolume.{i}.ThresholdLimit
+Device.Services.StorageServices.LogicalVolume.{i}.UsedSpace
+Device.Services.StorageServices.LogicalVolume.{i}.X_CATAWAMPUS-ORG_ReadOnly
+Device.Services.StorageServices.LogicalVolumeNumberOfEntries
+Device.Services.StorageServices.PhysicalMedium.{i}.Capacity
+Device.Services.StorageServices.PhysicalMedium.{i}.ConnectionType
+Device.Services.StorageServices.PhysicalMedium.{i}.FirmwareVersion
+Device.Services.StorageServices.PhysicalMedium.{i}.Health
+Device.Services.StorageServices.PhysicalMedium.{i}.HotSwappable
+Device.Services.StorageServices.PhysicalMedium.{i}.Model
+Device.Services.StorageServices.PhysicalMedium.{i}.Name
+Device.Services.StorageServices.PhysicalMedium.{i}.Removable
+Device.Services.StorageServices.PhysicalMedium.{i}.SMARTCapable
+Device.Services.StorageServices.PhysicalMedium.{i}.SerialNumber
+Device.Services.StorageServices.PhysicalMedium.{i}.Vendor
+Device.Services.StorageServices.PhysicalMediumNumberOfEntries
+Device.Services.StorageServices.StorageArrayNumberOfEntries
+Device.Services.StorageServices.UserAccountNumberOfEntries
+Device.Services.StorageServices.UserGroupNumberOfEntries
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.BadEraseBlocks
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.CorrectedErrors
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.EraseBlockSize
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.IOSize
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.MaxEraseCount
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.Name
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.ReservedEraseBlocks
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.SubVolume.{i}.DataBytes
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.SubVolume.{i}.Name
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.SubVolume.{i}.Status
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.SubVolumeNumberOfEntries
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.TotalEraseBlocks
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.UncorrectedErrors
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMediaNumberOfEntries
+InternetGatewayDevice.DeviceInfo.AdditionalHardwareVersion
+InternetGatewayDevice.DeviceInfo.AdditionalSoftwareVersion
+InternetGatewayDevice.DeviceInfo.Description
+InternetGatewayDevice.DeviceInfo.HardwareVersion
+InternetGatewayDevice.DeviceInfo.Manufacturer
+InternetGatewayDevice.DeviceInfo.ManufacturerOUI
+InternetGatewayDevice.DeviceInfo.ModelName
+InternetGatewayDevice.DeviceInfo.ModemFirmwareVersion
+InternetGatewayDevice.DeviceInfo.ProductClass
+InternetGatewayDevice.DeviceInfo.SerialNumber
+InternetGatewayDevice.DeviceInfo.SoftwareVersion
+InternetGatewayDevice.DeviceInfo.SpecVersion
+InternetGatewayDevice.DeviceInfo.UpTime
+InternetGatewayDevice.DeviceInfo.VendorConfigFileNumberOfEntries
+InternetGatewayDevice.LANDevice.{i}.LANEthernetInterfaceNumberOfEntries
+InternetGatewayDevice.LANDevice.{i}.LANUSBInterfaceNumberOfEntries
+InternetGatewayDevice.LANDevice.{i}.LANWLANConfigurationNumberOfEntries
+InternetGatewayDevice.LANDeviceNumberOfEntries
+InternetGatewayDevice.ManagementServer.ConnectionRequestPassword
+InternetGatewayDevice.ManagementServer.ConnectionRequestURL
+InternetGatewayDevice.ManagementServer.ConnectionRequestUsername
+InternetGatewayDevice.ManagementServer.DefaultActiveNotificationThrottle
+InternetGatewayDevice.ManagementServer.EnableCWMP
+InternetGatewayDevice.ManagementServer.ParameterKey
+InternetGatewayDevice.ManagementServer.Password
+InternetGatewayDevice.ManagementServer.PeriodicInformEnable
+InternetGatewayDevice.ManagementServer.PeriodicInformInterval
+InternetGatewayDevice.ManagementServer.PeriodicInformTime
+InternetGatewayDevice.ManagementServer.URL
+InternetGatewayDevice.ManagementServer.UpgradesManaged
+InternetGatewayDevice.ManagementServer.Username
+InternetGatewayDevice.PeriodicStatistics.MaxReportSamples
+InternetGatewayDevice.PeriodicStatistics.MinSampleInterval
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Enable
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.FetchSamples
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Name
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.CalculationMode
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Enable
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Failures
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.HighThreshold
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.LowThreshold
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Reference
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SampleMode
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SampleSeconds
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SuspectData
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Values
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.ParameterNumberOfEntries
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.ReportEndTime
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.ReportSamples
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.ReportStartTime
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.SampleInterval
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.SampleSeconds
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Status
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.TimeReference
+InternetGatewayDevice.PeriodicStatistics.SampleSetNumberOfEntries
+InternetGatewayDevice.Time.CurrentLocalTime
+InternetGatewayDevice.Time.Enable
+InternetGatewayDevice.Time.LocalTimeZoneName
+InternetGatewayDevice.WANDeviceNumberOfEntries
+TraceRoute.DSCP
+TraceRoute.DataBlockSize
+TraceRoute.DiagnosticsState
+TraceRoute.Host
+TraceRoute.Interface
+TraceRoute.MaxHopCount
+TraceRoute.NumberOfTries
+TraceRoute.ResponseTime
+TraceRoute.RouteHopsNumberOfEntries
+TraceRoute.Timeout
+X_CATAWAMPUS-ORG_CATAWAMPUS.RuntimeEnvInfo
+X_GOOGLE-COM_GFIBERTV.Mailbox.Name
+X_GOOGLE-COM_GFIBERTV.Mailbox.Node
+X_GOOGLE-COM_GFIBERTV.Mailbox.NodeList
+X_GOOGLE-COM_GFIBERTV.Mailbox.Value
+X_GOOGLE-COM_GVSB.EpgPrimary
+X_GOOGLE-COM_GVSB.EpgSecondary
+X_GOOGLE-COM_GVSB.GvsbChannelLineup
+X_GOOGLE-COM_GVSB.GvsbKick
+X_GOOGLE-COM_GVSB.GvsbServer
+STBService.{i}.ServiceMonitoring.MainStream.{i}.Total.MPEG2TSStats.TSPacketsReceived
+STBService.{i}.ServiceMonitoring.MainStream.{i}.Total.MPEG2TSStats.PacketDiscontinuityCounter
+STBService.{i}.ServiceMonitoring.MainStream.{i}.Total.DejitteringStats.EmptyBufferTime
+STBService.{i}.ServiceMonitoring.MainStream.{i}.Total.DejitteringStats.Overruns
+STBService.{i}.ServiceMonitoring.MainStream.{i}.Total.DejitteringStats.Underruns
+STBService.{i}.ServiceMonitoring.MainStream.{i}.Total.TCPStats.PacketsReceived
+STBService.{i}.ServiceMonitoring.MainStream.{i}.Total.TCPStats.PacketsRetransmitted
+STBService.{i}.ServiceMonitoring.MainStream.{i}.Total.TCPStats.BytesReceived
+STBService.{i}.Components.HDMI.{i}.DisplayDevice.Status
+STBService.{i}.Components.HDMI.{i}.DisplayDevice.SupportedResolutions
+STBService.{i}.Components.HDMI.{i}.DisplayDevice.PreferredResolution
+STBService.{i}.Components.HDMI.{i}.ResolutionValue
+STBService.{i}.Components.HDMI.{i}.DisplayDevice.EEDID
+STBService.{i}.Components.HDMI.{i}.DisplayDevice.AutoLipSyncSupport
+STBService.{i}.Components.HDMI.{i}.DisplayDevice.VideoLatency
+STBService.{i}.Components.HDMI.{i}.DisplayDevice.HDMI3DPresent
+STBService.{i}.Components.HDMI.{i}.DisplayDevice.CECSupport
diff --git a/data/DataModel_requirement_1.cfg b/data/DataModel_requirement_1.cfg
new file mode 100644
index 0000000..c940323
--- /dev/null
+++ b/data/DataModel_requirement_1.cfg
@@ -0,0 +1,509 @@
+Device.Bridging.
+Device.Bridging.Bridge.{i}.
+Device.Bridging.Bridge.{i}.Port.{i}.
+Device.Bridging.Bridge.{i}.Port.{i}.Stats.
+Device.Bridging.Bridge.{i}.VLANPort.{i}.
+Device.DeviceInfo
+Device.DeviceInfo.AdditionalHardwareVersion
+Device.DeviceInfo.AdditionalSoftwareVersion
+Device.DeviceInfo.Description
+Device.DeviceInfo.HardwareVersion
+Device.DeviceInfo.Manufacturer
+Device.DeviceInfo.ManufacturerOUI
+Device.DeviceInfo.MemoryStatus.
+Device.DeviceInfo.MemoryStatus.Free
+Device.DeviceInfo.MemoryStatus.Total
+Device.DeviceInfo.ModelName
+Device.DeviceInfo.NetworkProperties.
+Device.DeviceInfo.ProcessStatus.
+Device.DeviceInfo.ProcessStatus.CPUUsage
+Device.DeviceInfo.ProcessStatus.Process.{i}.
+Device.DeviceInfo.ProcessStatus.Process.{i}.CPUTime
+Device.DeviceInfo.ProcessStatus.Process.{i}.Command
+Device.DeviceInfo.ProcessStatus.Process.{i}.PID
+Device.DeviceInfo.ProcessStatus.Process.{i}.Priority
+Device.DeviceInfo.ProcessStatus.Process.{i}.Size
+Device.DeviceInfo.ProcessStatus.Process.{i}.State
+Device.DeviceInfo.ProcessStatus.ProcessNumberOfEntries
+Device.DeviceInfo.Processor.{i}.
+Device.DeviceInfo.ProcessorNumberOfEntries
+Device.DeviceInfo.ProductClass
+Device.DeviceInfo.ProxierInfo.
+Device.DeviceInfo.SerialNumber
+Device.DeviceInfo.SoftwareVersion
+Device.DeviceInfo.SupportedDataModel.{i}.
+Device.DeviceInfo.SupportedDataModelNumberOfEntries
+Device.DeviceInfo.TemperatureStatus.
+Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.
+Device.DeviceInfo.TemperatureStatus.TemperatureSensorNumberOfEntries
+Device.DeviceInfo.UpTime
+Device.DeviceInfo.VendorConfigFile.{i}.
+Device.DeviceInfo.VendorConfigFileNumberOfEntries
+Device.DeviceInfo.VendorLogFile.{i}.
+Device.DeviceInfo.VendorLogFileNumberOfEntries
+Device.Ethernet.
+Device.Ethernet.Interface.{i}.
+Device.Ethernet.Interface.{i}.DuplexMode
+Device.Ethernet.Interface.{i}.Enable
+Device.Ethernet.Interface.{i}.LastChange
+Device.Ethernet.Interface.{i}.LowerLayers
+Device.Ethernet.Interface.{i}.MACAddress
+Device.Ethernet.Interface.{i}.MaxBitRate
+Device.Ethernet.Interface.{i}.Name
+Device.Ethernet.Interface.{i}.Stats.
+Device.Ethernet.Interface.{i}.Stats.BroadcastPacketsReceived
+Device.Ethernet.Interface.{i}.Stats.BroadcastPacketsSent
+Device.Ethernet.Interface.{i}.Stats.BytesReceived
+Device.Ethernet.Interface.{i}.Stats.BytesSent
+Device.Ethernet.Interface.{i}.Stats.DiscardPacketsReceived
+Device.Ethernet.Interface.{i}.Stats.DiscardPacketsSent
+Device.Ethernet.Interface.{i}.Stats.ErrorsReceived
+Device.Ethernet.Interface.{i}.Stats.ErrorsSent
+Device.Ethernet.Interface.{i}.Stats.MulticastPacketsReceived
+Device.Ethernet.Interface.{i}.Stats.MulticastPacketsSent
+Device.Ethernet.Interface.{i}.Stats.PacketsReceived
+Device.Ethernet.Interface.{i}.Stats.PacketsSent
+Device.Ethernet.Interface.{i}.Stats.UnicastPacketsReceived
+Device.Ethernet.Interface.{i}.Stats.UnicastPacketsSent
+Device.Ethernet.Interface.{i}.Stats.UnknownProtoPacketsReceived
+Device.Ethernet.Interface.{i}.Status
+Device.Ethernet.Interface.{i}.Upstream
+Device.Ethernet.Interface.{i}.X_CATAWAMPUS-ORG_ActualBitRate
+Device.Ethernet.Interface.{i}.X_CATAWAMPUS-ORG_ActualDuplexMode
+Device.Ethernet.InterfaceNumberOfEntries
+Device.Ethernet.Link.{i}.
+Device.Ethernet.Link.{i}.Stats.
+Device.Ethernet.LinkNumberOfEntries
+Device.Ethernet.RMONStats.{i}.
+Device.Ethernet.VLANTerminationNumberOfEntries
+Device.IP.ActivePort.{i}.
+Device.IP.Diagnostics.DownloadDiagnostics.
+Device.IP.Diagnostics.IPPing.
+Device.IP.Diagnostics.TraceRoute.
+Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.
+Device.IP.Diagnostics.UDPEchoConfig.
+Device.IP.Diagnostics.UploadDiagnostics.
+Device.IP.Interface.{i}.
+Device.IP.Interface.{i}.IPv4Address.{i}.
+Device.IP.Interface.{i}.IPv6Address.{i}.
+Device.IP.Interface.{i}.IPv6Prefix.{i}.
+Device.IP.Interface.{i}.Stats.{i}.
+Device.InterfaceStackNumberOfEntries
+Device.ManagementServer.
+Device.ManagementServer.AutonomousTransferCompletePolicy.
+Device.ManagementServer.CWMPRetryIntervalMultiplier
+Device.ManagementServer.CWMPRetryMinimumWaitInterval
+Device.ManagementServer.ConnectionRequestPassword
+Device.ManagementServer.ConnectionRequestURL
+Device.ManagementServer.ConnectionRequestUsername
+Device.ManagementServer.DUStateChangeComplPolicy.
+Device.ManagementServer.DefaultActiveNotificationThrottle
+Device.ManagementServer.DownloadAvailability.
+Device.ManagementServer.DownloadAvailability.Announcement.
+Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.
+Device.ManagementServer.DownloadAvailability.Query.
+Device.ManagementServer.EmbeddedDevice.{i}.
+Device.ManagementServer.EnableCWMP
+Device.ManagementServer.ManageableDevice.{i}.
+Device.ManagementServer.ManageableDeviceNumberOfEntries
+Device.ManagementServer.ParameterKey
+Device.ManagementServer.Password
+Device.ManagementServer.PeriodicInformEnable
+Device.ManagementServer.PeriodicInformInterval
+Device.ManagementServer.PeriodicInformTime
+Device.ManagementServer.STUNEnable
+Device.ManagementServer.URL
+Device.ManagementServer.UpgradesManaged
+Device.ManagementServer.Username
+Device.ManagementServer.VirtualDevice.{i}.
+Device.MoCA.
+Device.MoCA.Interface.{i}.AssociatedDeviceNumberOfEntries
+Device.MoCA.Interface.{i}.BackupNC
+Device.MoCA.Interface.{i}.CurrentOperFreq
+Device.MoCA.Interface.{i}.CurrentVersion
+Device.MoCA.Interface.{i}.Enable
+Device.MoCA.Interface.{i}.FirmwareVersion
+Device.MoCA.Interface.{i}.HighestVersion
+Device.MoCA.Interface.{i}.LastChange
+Device.MoCA.Interface.{i}.LastOperFreq
+Device.MoCA.Interface.{i}.LowerLayers
+Device.MoCA.Interface.{i}.MACAddress
+Device.MoCA.Interface.{i}.Name
+Device.MoCA.Interface.{i}.NetworkCoordinator
+Device.MoCA.Interface.{i}.NodeID
+Device.MoCA.Interface.{i}.PacketAggregationCapability
+Device.MoCA.Interface.{i}.PrivacyEnabled
+Device.MoCA.Interface.{i}.QAM256Capable
+Device.MoCA.Interface.{i}.Stats.BroadcastPacketsReceived
+Device.MoCA.Interface.{i}.Stats.BroadcastPacketsSent
+Device.MoCA.Interface.{i}.Stats.BytesReceived
+Device.MoCA.Interface.{i}.Stats.BytesSent
+Device.MoCA.Interface.{i}.Stats.DiscardPacketsReceived
+Device.MoCA.Interface.{i}.Stats.DiscardPacketsSent
+Device.MoCA.Interface.{i}.Stats.ErrorsReceived
+Device.MoCA.Interface.{i}.Stats.ErrorsSent
+Device.MoCA.Interface.{i}.Stats.MulticastPacketsReceived
+Device.MoCA.Interface.{i}.Stats.MulticastPacketsSent
+Device.MoCA.Interface.{i}.Stats.PacketsReceived
+Device.MoCA.Interface.{i}.Stats.PacketsSent
+Device.MoCA.Interface.{i}.Stats.UnicastPacketsReceived
+Device.MoCA.Interface.{i}.Stats.UnicastPacketsSent
+Device.MoCA.Interface.{i}.Stats.UnknownProtoPacketsReceived
+Device.MoCA.Interface.{i}.Status
+Device.MoCA.Interface.{i}.Upstream
+Device.MoCA.InterfaceNumberOfEntries
+Device.MoCA.Interface.{i}.
+Device.MoCA.Interface.{i}.AssociatedDevice.{i}.
+Device.MoCA.Interface.{i}.QoS.
+Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.
+Device.MoCA.Interface.{i}.Stats.
+Device.PeriodicStatistics.MaxReportSamples
+Device.PeriodicStatistics.MinSampleInterval
+Device.PeriodicStatistics.SampleSet.{i}.Enable
+Device.PeriodicStatistics.SampleSet.{i}.FetchSamples
+Device.PeriodicStatistics.SampleSet.{i}.Name
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.CalculationMode
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Enable
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Failures
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.HighThreshold
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.LowThreshold
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Reference
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SampleMode
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SampleSeconds
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SuspectData
+Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Values
+Device.PeriodicStatistics.SampleSet.{i}.ParameterNumberOfEntries
+Device.PeriodicStatistics.SampleSet.{i}.ReportEndTime
+Device.PeriodicStatistics.SampleSet.{i}.ReportSamples
+Device.PeriodicStatistics.SampleSet.{i}.ReportStartTime
+Device.PeriodicStatistics.SampleSet.{i}.SampleInterval
+Device.PeriodicStatistics.SampleSet.{i}.SampleSeconds
+Device.PeriodicStatistics.SampleSet.{i}.Status
+Device.PeriodicStatistics.SampleSet.{i}.TimeReference
+Device.PeriodicStatistics.SampleSetNumberOfEntries
+Device.QoS.
+Device.QoS.App.{i}.
+Device.QoS.Classification.{i}.
+Device.QoS.Flow.{i}.
+Device.QoS.Policer.{i}.
+Device.QoS.Queue.{i}.
+Device.QoS.QueueStats.{i}.
+Device.QoS.Shaper.{i}.
+Device.Services.STBService.{i}.
+Device.Services.STBService.{i}.AVPlayers.
+Device.Services.STBService.{i}.AVPlayers.AVPlayer.{i}.
+Device.Services.STBService.{i}.AVStreams.
+Device.Services.STBService.{i}.AVStreams.AVStream{i}.
+Device.Services.STBService.{i}.Applications.
+Device.Services.STBService.{i}.Applications.AudienceStats.
+Device.Services.STBService.{i}.Applications.AudienceStats.Channel.{i}.
+Device.Services.STBService.{i}.Capabilities.AudienceStats.
+Device.Services.STBService.{i}.Capabilities.AudioDecoder.
+Device.Services.STBService.{i}.Capabilities.AudioOutput.
+Device.Services.STBService.{i}.Capabilities.DRM
+Device.Services.STBService.{i}.Capabilities.FrontEnd.
+Device.Services.STBService.{i}.Capabilities.FrontEnd.IP.
+Device.Services.STBService.{i}.Capabilities.PVR.
+Device.Services.STBService.{i}.Capabilities.ServiceMonitoring.
+Device.Services.STBService.{i}.Capabilities.VideoDecoder.
+Device.Services.STBService.{i}.Capabilities.VideoDecoder.MPEG2Part2.
+Device.Services.STBService.{i}.Capabilities.VideoDecoder.MPEG2Part2.ProfileLevel.{i}.
+Device.Services.STBService.{i}.Capabilities.VideoDecoder.MPEG4Part10.
+Device.Services.STBService.{i}.Capabilities.VideoDecoder.MPEG4Part10.ProfileLevel.{i}.
+Device.Services.STBService.{i}.Capabilities.VideoDecoder.MPEG4Part2.
+Device.Services.STBService.{i}.Capabilities.VideoDecoder.MPEG4Part2.ProfileLevel.{i}.
+Device.Services.STBService.{i}.Capabilities.VideoDecoder.SMPTEVC1.
+Device.Services.STBService.{i}.Capabilities.VideoDecoder.SMPTEVC1.ProfileLevel.{i}.
+Device.Services.STBService.{i}.Capabilities.VideoOutput.
+Device.Services.STBService.{i}.Components.
+Device.Services.STBService.{i}.Components.AudioDecoder.{i}.
+Device.Services.STBService.{i}.Components.AudioOutput.{i}.
+Device.Services.STBService.{i}.Components.DRM.{i}.
+Device.Services.STBService.{i}.Components.FrontEnd.{i}.
+Device.Services.STBService.{i}.Components.FrontEnd.{i}.IP.
+Device.Services.STBService.{i}.Components.FrontEnd.{i}.IP.Dejittering.
+Device.Services.STBService.{i}.Components.FrontEnd.{i}.IP.IGMP.
+Device.Services.STBService.{i}.Components.FrontEnd.{i}.IP.IGMP.ClientGroup.{i}.
+Device.Services.STBService.{i}.Components.FrontEnd.{i}.IP.IGMP.ClientGroupStats.{i}.
+Device.Services.STBService.{i}.Components.FrontEnd.{i}.IP.IGMP.ClientGroupStats.{i}.CurrentDay
+Device.Services.STBService.{i}.Components.FrontEnd.{i}.IP.IGMP.ClientGroupStats.{i}.QuarterHour.
+Device.Services.STBService.{i}.Components.FrontEnd.{i}.IP.IGMP.ClientGroupStats.{i}.Total
+Device.Services.STBService.{i}.Components.FrontEnd.{i}.IP.IGMP.ClientGroup.{i}.GroupAddress
+Device.Services.STBService.{i}.Components.FrontEnd.{i}.IP.IGMP.ClientGroupNumberOfEntries
+Device.Services.STBService.{i}.Components.FrontEnd.{i}.IP.Inbound.{i}.
+Device.Services.STBService.{i}.Components.FrontEnd.{i}.IP.Outbound.{i}.
+Device.Services.STBService.{i}.Components.FrontEndNumberOfEntries
+Device.Services.STBService.{i}.Components.HDMI.{i}.
+Device.Services.STBService.{i}.Components.HDMI.{i}.DisplayDevice
+Device.Services.STBService.{i}.Components.PVR.
+Device.Services.STBService.{i}.Components.PVR.Storage.{i}.
+Device.Services.STBService.{i}.Components.SPDIF.{i}.
+Device.Services.STBService.{i}.Components.VideoDecoder.{i}.
+Device.Services.STBService.{i}.Components.VideoOutput.{i}.
+Device.Services.STBService.{i}.ServiceMonitoring.
+Device.Services.STBService.{i}.ServiceMonitoring.MainStream.{i}.
+Device.Services.STBService.{i}.ServiceMonitoring.MainStream.{i}.Sample.HighLevelMetricStats.
+Device.Services.STBService.{i}.ServiceMonitoring.MainStream.{i}.Sample.VideoResponseStats.
+Device.Services.STBService.{i}.ServiceMonitoring.MainStream.{i}.Total.
+Device.Services.STBService.{i}.ServiceMonitoring.MainStream.{i}.Total.AudioDecoderStats.
+Device.Services.STBService.{i}.ServiceMonitoring.MainStream.{i}.Total.DejitteringStats.
+Device.Services.STBService.{i}.ServiceMonitoring.MainStream.{i}.Total.MPEG2TSStats.
+Device.Services.STBService.{i}.ServiceMonitoring.MainStream.{i}.Total.VideoDecoderStats.
+Device.Services.STBServiceNumberOfEntries
+Device.Services.STBService{i}.Capabilities.
+Device.Services.StorageServices.{i}.
+Device.Services.StorageServices.{i}.LogicalVolume.{i}.
+Device.Services.StorageServices.{i}.LogicalVolume.{i}.Folder.{i}.
+Device.Services.StorageServices.{i}.LogicalVolume.{i}.Folder.{i}.Quota.
+Device.Services.StorageServices.{i}.PhysicalMedium.{i}.
+Device.Services.StorageServices.{i}.StorageArray.{i}.
+Device.Services.StorageServices.Capabilities.FTPCapable
+Device.Services.StorageServices.Capabilities.HTTPCapable
+Device.Services.StorageServices.Capabilities.HTTPSCapable
+Device.Services.StorageServices.Capabilities.HTTPWritable
+Device.Services.StorageServices.Capabilities.SFTPCapable
+Device.Services.StorageServices.Capabilities.SupportedFileSystemTypes
+Device.Services.StorageServices.Capabilities.SupportedNetworkProtocols
+Device.Services.StorageServices.Capabilities.SupportedRaidTypes
+Device.Services.StorageServices.Capabilities.VolumeEncryptionCapable
+Device.Services.StorageServices.Enable
+Device.Services.StorageServices.LogicalVolume.{i}.Capacity
+Device.Services.StorageServices.LogicalVolume.{i}.Enable
+Device.Services.StorageServices.LogicalVolume.{i}.FileSystem
+Device.Services.StorageServices.LogicalVolume.{i}.FolderNumberOfEntries
+Device.Services.StorageServices.LogicalVolume.{i}.Name
+Device.Services.StorageServices.LogicalVolume.{i}.Status
+Device.Services.StorageServices.LogicalVolume.{i}.ThresholdLimit
+Device.Services.StorageServices.LogicalVolume.{i}.UsedSpace
+Device.Services.StorageServices.LogicalVolume.{i}.X_CATAWAMPUS-ORG_ReadOnly
+Device.Services.StorageServices.LogicalVolumeNumberOfEntries
+Device.Services.StorageServices.PhysicalMedium.{i}.Capacity
+Device.Services.StorageServices.PhysicalMedium.{i}.ConnectionType
+Device.Services.StorageServices.PhysicalMedium.{i}.FirmwareVersion
+Device.Services.StorageServices.PhysicalMedium.{i}.Health
+Device.Services.StorageServices.PhysicalMedium.{i}.HotSwappable
+Device.Services.StorageServices.PhysicalMedium.{i}.Model
+Device.Services.StorageServices.PhysicalMedium.{i}.Name
+Device.Services.StorageServices.PhysicalMedium.{i}.Removable
+Device.Services.StorageServices.PhysicalMedium.{i}.SMARTCapable
+Device.Services.StorageServices.PhysicalMedium.{i}.SerialNumber
+Device.Services.StorageServices.PhysicalMedium.{i}.Vendor
+Device.Services.StorageServices.PhysicalMediumNumberOfEntries
+Device.Services.StorageServices.StorageArrayNumberOfEntries
+Device.Services.StorageServices.UserAccountNumberOfEntries
+Device.Services.StorageServices.UserGroupNumberOfEntries
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.BadEraseBlocks
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.CorrectedErrors
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.EraseBlockSize
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.IOSize
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.MaxEraseCount
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.Name
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.ReservedEraseBlocks
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.SubVolume.{i}.DataBytes
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.SubVolume.{i}.Name
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.SubVolume.{i}.Status
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.SubVolumeNumberOfEntries
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.TotalEraseBlocks
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMedia.{i}.UncorrectedErrors
+Device.Services.StorageServices.X_CATAWAMPUS-ORG_FlashMediaNumberOfEntries
+Device.USB.
+Device.USB.Interface.{i}.
+Device.USB.Interface.{i}.Stats.
+Device.USB.Port.{i}.
+Device.USB.USBHosts.
+Device.USB.USBHosts.Host.{i}.
+Device.USB.USBHosts.Host.{i}.Device.{i}.
+Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.
+Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.
+Device.WiFi
+Device.WiFi.AccessPoint.{i}.
+Device.WiFi.AccessPoint.{i}.Accounting.
+Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.
+Device.WiFi.AccessPoint.{i}.Security.
+Device.WiFi.AccessPoint.{i}.WPS.
+Device.WiFi.EndPoint.{i}.
+Device.WiFi.EndPoint.{i}.Profile.{i}.
+Device.WiFi.EndPoint.{i}.Profile.{i}.Security.
+Device.WiFi.EndPoint.{i}.Profile.{i}.WPS.
+Device.WiFi.EndPoint.{i}.Security
+Device.WiFi.EndPoint.{i}.Stats
+Device.WiFi.Radio.{i}.
+Device.WiFi.Radio.{i}.Antenna.
+Device.WiFi.Radio.{i}.Stats.
+Device.WiFi.SSID.{i}.
+Device.WiFi.SSID.{i}.Stats.
+InternetGatewayDevice.
+InternetGatewayDevice.DeviceConfig.
+InternetGatewayDevice.DeviceInfo.
+InternetGatewayDevice.DeviceInfo.AdditionalHardwareVersion
+InternetGatewayDevice.DeviceInfo.AdditionalSoftwareVersion
+InternetGatewayDevice.DeviceInfo.Description
+InternetGatewayDevice.DeviceInfo.HardwareVersion
+InternetGatewayDevice.DeviceInfo.Manufacturer
+InternetGatewayDevice.DeviceInfo.ManufacturerOUI
+InternetGatewayDevice.DeviceInfo.ModelName
+InternetGatewayDevice.DeviceInfo.ModemFirmwareVersion
+InternetGatewayDevice.DeviceInfo.ProductClass
+InternetGatewayDevice.DeviceInfo.SerialNumber
+InternetGatewayDevice.DeviceInfo.SoftwareVersion
+InternetGatewayDevice.DeviceInfo.SpecVersion
+InternetGatewayDevice.DeviceInfo.UpTime
+InternetGatewayDevice.DeviceInfo.VendorConfigFile.{i}.
+InternetGatewayDevice.DeviceInfo.VendorConfigFileNumberOfEntries
+InternetGatewayDevice.IPPingDiagnostics.
+InternetGatewayDevice.LANConfigSecurity.
+InternetGatewayDevice.LANDevice.{i}.
+InternetGatewayDevice.LANDevice.{i}.Hosts.
+InternetGatewayDevice.LANDevice.{i}.Hosts.Host.{i}.
+InternetGatewayDevice.LANDevice.{i}.LANEthernetInterfaceConfig.{i}.
+InternetGatewayDevice.LANDevice.{i}.LANEthernetInterfaceConfig.{i}.Stats.
+InternetGatewayDevice.LANDevice.{i}.LANEthernetInterfaceNumberOfEntries
+InternetGatewayDevice.LANDevice.{i}.LANHostConfigManagement.
+InternetGatewayDevice.LANDevice.{i}.LANHostConfigManagement.IPInterface.{i}.
+InternetGatewayDevice.LANDevice.{i}.LANUSBInterfaceConfig.{i}.
+InternetGatewayDevice.LANDevice.{i}.LANUSBInterfaceConfig.{i}.Stats.
+InternetGatewayDevice.LANDevice.{i}.LANUSBInterfaceNumberOfEntries
+InternetGatewayDevice.LANDevice.{i}.LANWLANConfigurationNumberOfEntries
+InternetGatewayDevice.LANDevice.{i}.WLANConfiguration.{i}.
+InternetGatewayDevice.LANDevice.{i}.WLANConfiguration.{i}.AssociatedDevice.{i}.
+InternetGatewayDevice.LANDevice.{i}.WLANConfiguration.{i}.PreSharedKey.{i}.
+InternetGatewayDevice.LANDevice.{i}.WLANConfiguration.{i}.WEPKey.{i}.
+InternetGatewayDevice.LANDeviceNumberOfEntries
+InternetGatewayDevice.Layer2Bridging.
+InternetGatewayDevice.Layer2Bridging.AvailableInterface.{i}.
+InternetGatewayDevice.Layer2Bridging.Bridge.{i}.
+InternetGatewayDevice.Layer2Bridging.Filter.{i}.
+InternetGatewayDevice.Layer2Bridging.Marking.{i}.
+InternetGatewayDevice.Layer3Forwarding.
+InternetGatewayDevice.Layer3Forwarding.Forwarding.{i}.
+InternetGatewayDevice.ManagementServer.
+InternetGatewayDevice.ManagementServer.ConnectionRequestPassword
+InternetGatewayDevice.ManagementServer.ConnectionRequestURL
+InternetGatewayDevice.ManagementServer.ConnectionRequestUsername
+InternetGatewayDevice.ManagementServer.DefaultActiveNotificationThrottle
+InternetGatewayDevice.ManagementServer.EnableCWMP
+InternetGatewayDevice.ManagementServer.ManageableDevice.{i}.
+InternetGatewayDevice.ManagementServer.ParameterKey
+InternetGatewayDevice.ManagementServer.Password
+InternetGatewayDevice.ManagementServer.PeriodicInformEnable
+InternetGatewayDevice.ManagementServer.PeriodicInformInterval
+InternetGatewayDevice.ManagementServer.PeriodicInformTime
+InternetGatewayDevice.ManagementServer.URL
+InternetGatewayDevice.ManagementServer.UpgradesManaged
+InternetGatewayDevice.ManagementServer.Username
+InternetGatewayDevice.PeriodicStatistics.MaxReportSamples
+InternetGatewayDevice.PeriodicStatistics.MinSampleInterval
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Enable
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.FetchSamples
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Name
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.CalculationMode
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Enable
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Failures
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.HighThreshold
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.LowThreshold
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Reference
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SampleMode
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SampleSeconds
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SuspectData
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Values
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.ParameterNumberOfEntries
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.ReportEndTime
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.ReportSamples
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.ReportStartTime
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.SampleInterval
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.SampleSeconds
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.Status
+InternetGatewayDevice.PeriodicStatistics.SampleSet.{i}.TimeReference
+InternetGatewayDevice.PeriodicStatistics.SampleSetNumberOfEntries
+InternetGatewayDevice.QueueManagement.
+InternetGatewayDevice.QueueManagement.App.{i}.
+InternetGatewayDevice.QueueManagement.Classification.{i}.
+InternetGatewayDevice.QueueManagement.Flow.{i}.
+InternetGatewayDevice.QueueManagement.Policer.{i}.
+InternetGatewayDevice.QueueManagement.Queue.{i}.
+InternetGatewayDevice.Services.
+InternetGatewayDevice.Time.
+InternetGatewayDevice.Time.CurrentLocalTime
+InternetGatewayDevice.Time.Enable
+InternetGatewayDevice.Time.LocalTimeZoneName
+InternetGatewayDevice.UserInterface.
+InternetGatewayDevice.WANDevice.{i}.
+InternetGatewayDevice.WANDevice.{i}.WAN-CommonInterfaceConfig.WANAccessType
+InternetGatewayDevice.WANDevice.{i}.WAN-OpticalInterfaceConfig.
+InternetGatewayDevice.WANDevice.{i}.WAN-OpticalInterfaceConfig.Enable
+InternetGatewayDevice.WANDevice.{i}.WAN-OpticalInterfaceConfig.LowerOpticalThreshold
+InternetGatewayDevice.WANDevice.{i}.WAN-OpticalInterfaceConfig.LowerTransmitPowerThreshold
+InternetGatewayDevice.WANDevice.{i}.WAN-OpticalInterfaceConfig.OpticalSignalLevel
+InternetGatewayDevice.WANDevice.{i}.WAN-OpticalInterfaceConfig.Status
+InternetGatewayDevice.WANDevice.{i}.WAN-OpticalInterfaceConfig.TransmitOpticalLevel
+InternetGatewayDevice.WANDevice.{i}.WAN-OpticalInterfaceConfig.UpperOpticalThreshold
+InternetGatewayDevice.WANDevice.{i}.WAN-OpticalInterfaceConfig.UpperTransmitPowerThreshold
+InternetGatewayDevice.WANDevice.{i}.WANCommonInterfaceConfig.
+InternetGatewayDevice.WANDevice.{i}.WANCommonInterfaceConfig.Connection.{i}.
+InternetGatewayDevice.WANDevice.{i}.WANConnectionDevice.{i}.
+InternetGatewayDevice.WANDevice.{i}.WANConnectionDevice.{i}.WANEthernetLinkConfig.
+InternetGatewayDevice.WANDevice.{i}.WANConnectionDevice.{i}.WANIPConnection.{i}.
+InternetGatewayDevice.WANDevice.{i}.WANConnectionDevice.{i}.WANIPConnection.{i}.PortMapping.{i}.
+InternetGatewayDevice.WANDevice.{i}.WANConnectionDevice.{i}.WANIPConnection.{i}.Stats.
+InternetGatewayDevice.WANDevice.{i}.WANEthernetInterfaceConfig.
+InternetGatewayDevice.WANDevice.{i}.WANEthernetInterfaceConfig.Stats.
+InternetGatewayDevice.WANDeviceNumberOfEntries
+TraceRoute.
+TraceRoute.DSCP
+TraceRoute.DataBlockSize
+TraceRoute.DiagnosticsState
+TraceRoute.Host
+TraceRoute.Interface
+TraceRoute.MaxHopCount
+TraceRoute.NumberOfTries
+TraceRoute.ResponseTime
+TraceRoute.RouteHopsNumberOfEntries
+TraceRoute.Timeout
+VoiceService.{i}.
+VoiceService.{i}.Capabilities.
+VoiceService.{i}.Capabilities.Codecs.{i}.
+VoiceService.{i}.Capabilities.SIP.
+VoiceService.{i}.PhyInterface.{i}.
+VoiceService.{i}.PhyInterface.{i}.Tests.
+VoiceService.{i}.VoiceProfile.{i}.
+VoiceService.{i}.VoiceProfile.{i}.ButtonMap.
+VoiceService.{i}.VoiceProfile.{i}.ButtonMap.Button.{i}.
+VoiceService.{i}.VoiceProfile.{i}.FaxT38.
+VoiceService.{i}.VoiceProfile.{i}.Line.{i}.
+VoiceService.{i}.VoiceProfile.{i}.Line.{i}.CallingFeatures.
+VoiceService.{i}.VoiceProfile.{i}.Line.{i}.Codec.
+VoiceService.{i}.VoiceProfile.{i}.Line.{i}.Codec.List.{i}.
+VoiceService.{i}.VoiceProfile.{i}.Line.{i}.Ringer.
+VoiceService.{i}.VoiceProfile.{i}.Line.{i}.Ringer.Description.{i}.
+VoiceService.{i}.VoiceProfile.{i}.Line.{i}.Ringer.Event.{i}.
+VoiceService.{i}.VoiceProfile.{i}.Line.{i}.Ringer.Pattern.{i}.
+VoiceService.{i}.VoiceProfile.{i}.Line.{i}.SIP.
+VoiceService.{i}.VoiceProfile.{i}.Line.{i}.SIP.EventSubscribe.{i}.
+VoiceService.{i}.VoiceProfile.{i}.Line.{i}.Session.{i}.
+VoiceService.{i}.VoiceProfile.{i}.Line.{i}.Stats.
+VoiceService.{i}.VoiceProfile.{i}.Line.{i}.VoiceProcessing.
+VoiceService.{i}.VoiceProfile.{i}.NumberingPlan.
+VoiceService.{i}.VoiceProfile.{i}.NumberingPlan.PrefixInfo.{i}.
+VoiceService.{i}.VoiceProfile.{i}.RTP.
+VoiceService.{i}.VoiceProfile.{i}.RTP.RTCP.
+VoiceService.{i}.VoiceProfile.{i}.SIP.
+VoiceService.{i}.VoiceProfile.{i}.SIP.EventSubscribe.{i}.
+VoiceService.{i}.VoiceProfile.{i}.SIP.ResponseMap.{i}.
+VoiceService.{i}.VoiceProfile.{i}.ServiceProviderInfo.
+VoiceService.{i}.VoiceProfile.{i}.Tone.
+VoiceService.{i}.VoiceProfile.{i}.Tone.Description.{i}.
+VoiceService.{i}.VoiceProfile.{i}.Tone.Event.{i}.
+VoiceService.{i}.VoiceProfile.{i}.Tone.Pattern.{i}.
+X_CATAWAMPUS-ORG_CATAWAMPUS.
+X_CATAWAMPUS-ORG_CATAWAMPUS.RuntimeEnvInfo
+X_GOOGLE-COM_GFIBERTV.
+X_GOOGLE-COM_GFIBERTV.Mailbox.Name
+X_GOOGLE-COM_GFIBERTV.Mailbox.Node
+X_GOOGLE-COM_GFIBERTV.Mailbox.NodeList
+X_GOOGLE-COM_GFIBERTV.Mailbox.Value
+X_GOOGLE-COM_GVSB.
+X_GOOGLE-COM_GVSB.EpgPrimary
+X_GOOGLE-COM_GVSB.EpgSecondary
+X_GOOGLE-COM_GVSB.GvsbChannelLineup
+X_GOOGLE-COM_GVSB.GvsbKick
+X_GOOGLE-COM_GVSB.GvsbServer
