From 46a6a76c3309596f43d0af3f71823d6820e631c9 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 11 Jul 2017 12:14:26 -0700 Subject: [PATCH 001/947] tests: iperf3: fix results message assignment Signed-off-by: Matthew McClintock --- tests/iperf3_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/iperf3_test.py b/tests/iperf3_test.py index b7b2f9b7..905f5dca 100644 --- a/tests/iperf3_test.py +++ b/tests/iperf3_test.py @@ -41,7 +41,7 @@ def runTest(self): else: raise Exception("Unknown rate in recv results") - self.result_message = "Sender rate = %si MBits/sec, Receiver rate = %s Mbits/sec\n", (s_rate, r_rate) + self.result_message = "Sender rate = %s MBits/sec, Receiver rate = %s Mbits/sec\n" % (s_rate, r_rate) self.logged['s_rate'] = s_rate self.logged['r_rate'] = r_rate From e6859df9733890d9c2efc9ef6aab053c567b5401 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 13 Jul 2017 10:31:44 -0700 Subject: [PATCH 002/947] tests: ping: discover router lan ip and use that Signed-off-by: Matthew McClintock --- tests/ping.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/ping.py b/tests/ping.py index 8037ab5d..cb447e4f 100644 --- a/tests/ping.py +++ b/tests/ping.py @@ -43,7 +43,8 @@ def runTest(self): msg = 'No LAN Device defined, skipping ping test from LAN.' lib.common.test_msg(msg) self.skipTest(msg) - lan.sendline('\nping -i 0.2 -c 5 192.168.1.1') + router_ip = board.get_ip_addr(board.lan_iface) + lan.sendline('\nping -i 0.2 -c 5 %s' % router_ip) lan.expect('PING ') lan.expect('5 received', timeout=15) lan.expect(prompt) From b4949fe96ca2690ec5512fee72ec62f08181ecbc Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 13 Jul 2017 10:35:07 -0700 Subject: [PATCH 003/947] tests: nmap: discover router lan ip and use that Signed-off-by: Matthew McClintock --- tests/nmap.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/nmap.py b/tests/nmap.py index 56d1236a..8e2b8ca8 100644 --- a/tests/nmap.py +++ b/tests/nmap.py @@ -30,7 +30,7 @@ class Nmap_WAN(rootfs_boot.RootFSBootTest): def recover(self): wan.sendcontrol('c') def runTest(self): - wan_ip_addr = board.get_interface_ipaddr('eth0') + wan_ip_addr = board.get_interface_ipaddr(board.wan_iface) wan.sendline('\nnmap -sS -A -v %s' % wan_ip_addr) wan.expect('Starting Nmap', timeout=5) wan.expect('Nmap scan report', timeout=120) From 4ecd549c911dd0bc38d5db50ce61d09e20e50d8b Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 13 Jul 2017 10:49:35 -0700 Subject: [PATCH 004/947] tests: nmap: increase time allowed for wan nmap scan Signed-off-by: Matthew McClintock --- tests/nmap.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/nmap.py b/tests/nmap.py index 8e2b8ca8..025a0518 100644 --- a/tests/nmap.py +++ b/tests/nmap.py @@ -33,7 +33,7 @@ def runTest(self): wan_ip_addr = board.get_interface_ipaddr(board.wan_iface) wan.sendline('\nnmap -sS -A -v %s' % wan_ip_addr) wan.expect('Starting Nmap', timeout=5) - wan.expect('Nmap scan report', timeout=120) + wan.expect('Nmap scan report', timeout=240) wan.expect(prompt, timeout=60) open_ports = re.findall("(\d+)/tcp\s+open", wan.before) msg = "Found %s open TCP ports on WAN interface." % len(open_ports) From 499dd03538200d0d2ab007664abd6393cb002fb3 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 13 Jul 2017 12:49:56 -0700 Subject: [PATCH 005/947] devices: owrt: add another boot message This is for cougarpark boards, at some point this field needs to be extracted from the device class itself Signed-off-by: Matthew McClintock --- devices/openwrt_router.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 5ed19569..3f8abc3b 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -388,7 +388,7 @@ def boot_linux(self, rootfs=None): def wait_for_linux(self): '''Verify Linux starts up.''' - i = self.expect(['Reset Button Push down', 'Booting Linux', 'Starting kernel ...'], timeout=45) + i = self.expect(['Reset Button Push down', 'Booting Linux', 'Starting kernel ...', 'Kernel command line specified:'], timeout=45) if i == 0: self.expect('httpd') self.sendcontrol('c') From 5650518bb3a99ec2fe7ec8bfdb4f5539aae8e85b Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 13 Jul 2017 12:55:10 -0700 Subject: [PATCH 006/947] devices: cougarpark: add board type This is an intel reference board, everything is stubbed out or now but the board will boot. Currently it fails to configure the wan/lan interfaces so it's treated as a failure. Signed-off-by: Matthew McClintock --- devices/board_decider.py | 4 ++++ devices/cougarpark.py | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 devices/cougarpark.py diff --git a/devices/board_decider.py b/devices/board_decider.py index bb5f2c99..cb7cc884 100644 --- a/devices/board_decider.py +++ b/devices/board_decider.py @@ -13,6 +13,7 @@ import qcom_mips import marvell import rpi +import cougarpark def board(model, **kwargs): ''' @@ -44,6 +45,9 @@ def board(model, **kwargs): if model in ("rpi3"): return rpi.RPI(model, **kwargs) + if model in ("cougarpark"): + return cougarpark.CougarPark(model, **kwargs) + # Default for all other models print("\nWARNING: Unknown board model '%s'." % model) print("Please check spelling, or write an appropriate class " diff --git a/devices/cougarpark.py b/devices/cougarpark.py new file mode 100644 index 00000000..fd3d276a --- /dev/null +++ b/devices/cougarpark.py @@ -0,0 +1,34 @@ +# Copyright (c) 2017 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. + +import common +import openwrt_router + +class CougarPark(openwrt_router.OpenWrtRouter): + ''' + Intel Cougar Park board + ''' + + #wan_iface = "erouter0" + #lan_iface = "brlan0" + + #uprompt = ["U-Boot>"] + #uboot_eth = "sms0" + #uboot_ddr_addr = "0x1000000" + #uboot_net_delay = 0 + + #def flash_uboot(self, uboot): + # common.print_bold("\n===== Flashing bootloader (and u-boot) =====\n") + + #def flash_rootfs(self, ROOTFS): + # common.print_bold("\n===== Flashing rootfs =====\n") + + #def flash_linux(self, KERNEL): + # common.print_bold("\n===== Flashing linux =====\n") + + #def boot_linux(self, rootfs=None): + # common.print_bold("\n===== Booting linux for %s on %s =====" % (self.model, self.root_type)) From 282c23532494a647cbfbdbacc986cfc265d41b31 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 7 Aug 2017 18:00:12 -0700 Subject: [PATCH 007/947] requirements: install cdrouter python module You need to re-run "pip install -r requirements.txt" Signed-off-by: Matthew McClintock --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 40a66ace..60e12bd0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,3 +8,4 @@ termcolor selenium future dlipower +cdrouter From b442c035a0840e87f7e024a69db59263665fa6b0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 28 Aug 2017 17:42:59 -0700 Subject: [PATCH 008/947] tests: iperf3: add reverse test Signed-off-by: Matthew McClintock --- tests/iperf3_test.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/tests/iperf3_test.py b/tests/iperf3_test.py index 905f5dca..9f1d39aa 100644 --- a/tests/iperf3_test.py +++ b/tests/iperf3_test.py @@ -12,6 +12,10 @@ class iPerf3Test(rootfs_boot.RootFSBootTest): '''iPerf3 generic performance tests''' + + opts= "" + time = 60 + def runTest(self): installers.install_iperf3(wan) installers.install_iperf3(lan) @@ -20,10 +24,9 @@ def runTest(self): wan.expect('-----------------------------------------------------------') wan.expect('-----------------------------------------------------------') - time = 60 - lan.sendline('iperf3 -c 192.168.0.1 -P5 -t %s -i 0' % time) - lan.expect(prompt, timeout=time+5) + lan.sendline('iperf3 %s -c 192.168.0.1 -P5 -t %s -i 0' % (self.opts, self.time)) + lan.expect(prompt, timeout=self.time+5) sender = re.findall('SUM.*Bytes\s*(.*/sec).*sender', lan.before)[-1] if 'Mbits' in sender: @@ -52,3 +55,8 @@ def recovery(self): d.sendcontrol('c') d.sendcontrol('c') d.expect(prompt) + +class iPerf3RTest(iPerf3Test): + '''iPerf3 reverse generic performance tests''' + + opts = "-R" From 398598dafcca7c13c151dde0f508c76ee29c36df Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 31 Aug 2017 16:28:20 -0700 Subject: [PATCH 009/947] devices: power: don't require specific version This will work on lots of versions of the device Signed-off-by: Matthew McClintock --- devices/power.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/power.py b/devices/power.py index 829ffd63..8e23b467 100644 --- a/devices/power.py +++ b/devices/power.py @@ -97,7 +97,7 @@ def __init__(self, def __connect(self): pcon = pexpect.spawn('telnet %s' % self.ip_address) - pcon.expect('Sentry Switched CDU Version 7', timeout=15) + pcon.expect('Sentry Switched CDU Version', timeout=15) pcon.expect('Username:') pcon.sendline(self.username) pcon.expect('Password:') From 6560bf3273d64547814d7df59e6143db71da9482 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Fri, 1 Sep 2017 13:40:22 -0700 Subject: [PATCH 010/947] tests: ping: update ping for different versions output Not all versions have the same output, let's work with both versions of ping Signed-off-by: Matthew McClintock --- tests/ping.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/ping.py b/tests/ping.py index cb447e4f..4fe4621f 100644 --- a/tests/ping.py +++ b/tests/ping.py @@ -17,7 +17,7 @@ def runTest(self): lib.common.test_msg(msg) self.skipTest(msg) board.sendline('\nping -c5 192.168.0.1') - board.expect('5 packets received', timeout=10) + board.expect('5 (packets )?received', timeout=15) board.expect(prompt) def recover(self): board.sendcontrol('c') @@ -26,14 +26,14 @@ class RouterPingInternet(rootfs_boot.RootFSBootTest): '''Router can ping internet address by IP.''' def runTest(self): board.sendline('\nping -c2 8.8.8.8') - board.expect('2 packets received', timeout=10) + board.expect('2 (packets )?received', timeout=15) board.expect(prompt) class RouterPingInternetName(rootfs_boot.RootFSBootTest): '''Router can ping internet address by name.''' def runTest(self): board.sendline('\nping -c2 www.google.com') - board.expect('2 packets received', timeout=10) + board.expect('2 (packets )?received', timeout=15) board.expect(prompt) class LanDevPingRouter(rootfs_boot.RootFSBootTest): @@ -46,7 +46,7 @@ def runTest(self): router_ip = board.get_ip_addr(board.lan_iface) lan.sendline('\nping -i 0.2 -c 5 %s' % router_ip) lan.expect('PING ') - lan.expect('5 received', timeout=15) + lan.expect('5 (packets )?received', timeout=15) lan.expect(prompt) class LanDevPingWanDev(rootfs_boot.RootFSBootTest): @@ -62,7 +62,7 @@ def runTest(self): self.skipTest(msg) lan.sendline('\nping -i 0.2 -c 5 192.168.0.1') lan.expect('PING ') - lan.expect('5 received', timeout=15) + lan.expect('5 (packets )?received', timeout=15) lan.expect(prompt) def recover(self): lan.sendcontrol('c') @@ -75,7 +75,7 @@ def runTest(self): lib.common.test_msg(msg) self.skipTest(msg) lan.sendline('\nping -c2 8.8.8.8') - lan.expect('2 received', timeout=10) + lan.expect('2 (packets )?received', timeout=10) lan.expect(prompt) def recover(self): lan.sendcontrol('c') From a256319b4bb9440bdafc0035b9e2985b66507215 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 5 Sep 2017 08:33:15 -0700 Subject: [PATCH 011/947] tests: ping6: make ping command compatible with multiple versions This works with formatted output from different versions of ping Signed-off-by: Matthew McClintock --- tests/ping6.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/ping6.py b/tests/ping6.py index dae6bf7e..50ee2533 100644 --- a/tests/ping6.py +++ b/tests/ping6.py @@ -11,9 +11,9 @@ class LanDevPing6Router(rootfs_boot.RootFSBootTest): '''Device on LAN can ping6 router.''' def runTest(self): - lan.sendline('\nping6 -i 0.2 -c 20 4aaa::1') + lan.sendline('\nping6 -c 20 4aaa::1') lan.expect('PING ') - lan.expect(' ([0-9]+) received') + lan.expect(' ([0-9]+) (packets )?received') n = int(lan.match.group(1)) lan.expect(prompt) assert n > 0 @@ -22,9 +22,9 @@ class LanDevPing6WanDev(rootfs_boot.RootFSBootTest): '''Device on LAN can ping6 through router.''' def runTest(self): # Make Lan-device ping Wan-Device - lan.sendline('\nping6 -i 0.2 -c 20 5aaa::6') + lan.sendline('\nping6 -c 20 5aaa::6') lan.expect('PING ') - lan.expect(' ([0-9]+) received') + lan.expect(' ([0-9]+) (packets )?received') n = int(lan.match.group(1)) lan.expect(prompt) assert n > 0 From 1ec45820bb5fcc9497a2d277e7139b991c0c64c8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 5 Sep 2017 09:01:14 -0700 Subject: [PATCH 012/947] tests: lib: installers: verify package was installed We will now fail if a package does not get installed after running the apt install command. This is helpful if the device has lost network connectivity Signed-off-by: Matthew McClintock --- tests/lib/installers.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 34d3fc37..e9cfb7cb 100644 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -9,6 +9,10 @@ def apt_install(device, name, timeout=120): device.sendline('apt-get install -q -y %s' % name) device.expect('Reading package') device.expect(device.prompt, timeout=timeout) + device.sendline('dpkg -l %s' % name) + device.expect_exact('dpkg -l %s' % name) + i = device.expect(['dpkg-query: no packages found' ] + device.prompt) + assert (i != 0) def apt_update(device, timeout=120): device.sendline('apt-get update') From 235f95ba41ce176cd6558ca35b016cb5c21c1f68 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 5 Sep 2017 09:10:44 -0700 Subject: [PATCH 013/947] tests: webbrowse: installed wget when running This test needs wget on the lan device, so let's install it beforehand to make sure the tests works properly Signed-off-by: Matthew McClintock --- tests/webbrowse.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/webbrowse.py b/tests/webbrowse.py index 8f33ec09..abc6df13 100644 --- a/tests/webbrowse.py +++ b/tests/webbrowse.py @@ -8,10 +8,13 @@ import random import rootfs_boot from devices import board, wan, lan, wlan, prompt +from lib import installers class RandomWebBrowse(rootfs_boot.RootFSBootTest): '''Created light web traffic.''' def runTest(self): + installers.apt_install(lan, "wget") + urls = ['www.amazon.com', 'www.apple.com', 'www.baidu.com', From 6cf742bfe2bf5a3a33a00d150ac2289da1547e5b Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 11 Sep 2017 13:56:09 -0700 Subject: [PATCH 014/947] devices: power: change default sentry password This is the default for the device, so let's just set it to that Signed-off-by: Matthew McClintock --- devices/power.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/power.py b/devices/power.py index 8e23b467..7b4b5912 100644 --- a/devices/power.py +++ b/devices/power.py @@ -79,7 +79,7 @@ def __init__(self, ip_address, outlet, username='admn', - password='bigfoot1'): + password='admn'): PowerDevice.__init__(self, ip_address, username, password) self.outlet = outlet # Verify connection From 9d016d29c59d89d0f55d1334c1f14e373542317c Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 12 Sep 2017 10:51:17 -0700 Subject: [PATCH 015/947] tests: oe: add version extraction test Put the various versions on ELK so we can look at the data Signed-off-by: Matthew McClintock --- tests/oe.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 tests/oe.py diff --git a/tests/oe.py b/tests/oe.py new file mode 100644 index 00000000..e468559a --- /dev/null +++ b/tests/oe.py @@ -0,0 +1,30 @@ +# Copyright (c) 2015 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. + +import rootfs_boot +from devices import board, wan, lan, wlan, prompt + +class OEVersion(rootfs_boot.RootFSBootTest): + '''Record OE version''' + def runTest(self): + board.sendline('cat /etc/os-release') + # PRETTY_NAME=RDK (A Yocto Project 1.6 based Distro) 2.0 (krogoth) + board.expect('PRETTY_NAME=([^\s]*) \(A Yocto Project ([^\s]*) based Distro\) ([^\s]*) \(([^\)]*)\)') + print("#########################################") + print("bsp-type = %s" % board.match.group(1)) + print("oe-version = %s" % board.match.group(2)) + print("bsp-version = %s" % board.match.group(3)) + print("oe-version-string = %s" % board.match.group(4)) + print("#########################################") + + self.result_message="BSP = %s, BSP version = %s, OE version = %s, OE version string = %s" % \ + (board.match.group(1), board.match.group(3), board.match.group(2), board.match.group(4)) + self.logged['bsp-type'] = board.match.group(1) + self.logged['oe-version'] = board.match.group(2) + self.logged['bsp-version'] = board.match.group(3) + self.logged['oe-version-string'] = board.match.group(4) + board.expect(prompt) From c780903e772646662bdb3d1572eb4f71328bec80 Mon Sep 17 00:00:00 2001 From: Rob Vogelaar Date: Mon, 18 Sep 2017 17:16:52 -0700 Subject: [PATCH 016/947] devices: debian: corrected two typos Signed-off-by: Rob Vogelaar --- devices/debian.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 devices/debian.py diff --git a/devices/debian.py b/devices/debian.py old mode 100644 new mode 100755 index 1e55db7c..cbc4d355 --- a/devices/debian.py +++ b/devices/debian.py @@ -46,11 +46,11 @@ def __init__(self, else: name = None if pre_cmd_host is not None: - sys.stdout.write("\tRunning pre_host_cmd.... ") + sys.stdout.write("\tRunning pre_cmd_host.... ") sys.stdout.flush() phc = pexpect.spawn(command='bash', args=['-c', pre_cmd_host]) phc.expect(pexpect.EOF, timeout=120) - print("\tpre_host_cmd done") + print("\tpre_cmd_host done") if cleanup_cmd is not None: self.cleanup_cmd = cleanup_cmd From 8ee09bcb4546fbf12323bdf116890677c2725a20 Mon Sep 17 00:00:00 2001 From: Rob Vogelaar Date: Mon, 18 Sep 2017 17:32:17 -0700 Subject: [PATCH 017/947] bft-node: include python python and python-mysqldb are required to run tdkb component testscripts in the (wan) container. Signed-off-by: Rob Vogelaar --- bft-node/Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) mode change 100644 => 100755 bft-node/Dockerfile diff --git a/bft-node/Dockerfile b/bft-node/Dockerfile old mode 100644 new mode 100755 index 07af8978..b4efb093 --- a/bft-node/Dockerfile +++ b/bft-node/Dockerfile @@ -21,7 +21,9 @@ RUN apt-get update && \ tcpdump \ iperf \ iperf3 \ - netcat + netcat \ + python-pip \ + python-mysqldb RUN mkdir /var/run/sshd RUN sed -i 's/PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config From 30e940ec6e7e6f3c785312be0b9e4d375b7c4c90 Mon Sep 17 00:00:00 2001 From: Rob Vogelaar Date: Mon, 18 Sep 2017 17:38:02 -0700 Subject: [PATCH 018/947] tests: lib: installers: add python installer python and python-mysqldb are required to run tdkb component testscripts in the (wan) container. Signed-off-by: Rob Vogelaar --- tests/lib/installers.py | 10 ++++++++++ 1 file changed, 10 insertions(+) mode change 100644 => 100755 tests/lib/installers.py diff --git a/tests/lib/installers.py b/tests/lib/installers.py old mode 100644 new mode 100755 index e9cfb7cb..1ac5decc --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -92,3 +92,13 @@ def install_hping3(device): except: device.expect(device.prompt) apt_install(device, 'hping3') +def install_python(device): + '''Install python if not present.''' + device.sendline('\npython --version') + try: + device.expect('Python 2', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get -o DPkg::Options::="--force-confnew" -y --force-yes install python-pip python-mysqldb') + device.expect(device.prompt, timeout=60) From dcd02bb62486b8eea1cf4e69a0b6af3a8b5ad145 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 28 Sep 2017 12:52:00 -0700 Subject: [PATCH 019/947] devices: rpi3: clear bootargs If these are stale and left over from someone playing around then they might be set wrong so let's clear it back and use the ones in the device tree passed from the BCM firmware Signed-off-by: Matthew McClintock --- devices/rpi.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/devices/rpi.py b/devices/rpi.py index f843efae..47e8ae5f 100644 --- a/devices/rpi.py +++ b/devices/rpi.py @@ -108,7 +108,8 @@ def boot_linux(self, rootfs=None): common.print_bold("\n===== Booting linux for %s on %s =====" % (self.model, self.root_type)) #self.sendline('setenv bootargs "8250.nr_uarts=1 bcm2708_fb.fbwidth=1824 bcm2708_fb.fbheight=984 bcm2708_fb.fbswap=1 dma.dmachans=0x7f35 bcm2709.boardrev=0xa02082 bcm2709.serial=0xc07187c2 bcm2709.uart_clock=48000000 smsc95xx.macaddr=B8:27:EB:71:87:C2 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 root=mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait"') - #self.expect(self.uprompt) + self.sendline('setenv bootargs') + self.expect(self.uprompt) self.sendline("setenv bootcmd 'fatload mmc 0 ${kernel_addr_r} uImage; bootm ${kernel_addr_r} - ${fdt_addr}'") self.expect(self.uprompt) From 36b2334eb2507d88fe0875abbe69d2f15ef1ae1d Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 2 Oct 2017 14:36:12 -0700 Subject: [PATCH 020/947] devices: ignore keys when copying files to wan/lan devices Signed-off-by: Matthew McClintock --- devices/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/common.py b/devices/common.py index 2bca909e..aa4b132f 100644 --- a/devices/common.py +++ b/devices/common.py @@ -73,7 +73,7 @@ def scp_to_tftp_server(fname, server, username, password, port): print_bold("File passed as parameter does not exist! Failing!\n") sys.exit(10) - cmd = "cat %s | ssh -p %s -x %s@%s \"tmpfile=\`mktemp /tftpboot/tmp/XXXXX\`; cat - > \$tmpfile; chmod a+rw \$tmpfile; echo \$tmpfile\"" % (fname, port, username, server) + cmd = "cat %s | ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p %s -x %s@%s \"tmpfile=\`mktemp /tftpboot/tmp/XXXXX\`; cat - > \$tmpfile; chmod a+rw \$tmpfile; echo \$tmpfile\"" % (fname, port, username, server) return copy_file_to_server(cmd, password) def print_bold(msg): From 5e3c43a86a1b79388e7b86097cbb53da3476e884 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 9 Oct 2017 12:55:45 -0700 Subject: [PATCH 021/947] args: ignore ssl issues and use netrc We do the same with curl later, so might as well do that here as well Signed-off-by: Matthew McClintock --- arguments.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/arguments.py b/arguments.py index 19ddcc91..e0e24ffe 100755 --- a/arguments.py +++ b/arguments.py @@ -16,8 +16,10 @@ import unittest2 try: from urllib.request import urlopen + import urllib except: from urllib2 import urlopen + import urllib2 as urllib import re import library @@ -143,8 +145,26 @@ def parse(): continue if x.startswith('http://') or x.startswith('https://'): try: + def add_basic_auth(login_str, request): + '''Adds Basic auth to http request, pass in login:password as string''' + import base64 + encodeuser = base64.b64encode(login_str.encode('utf-8')).decode("utf-8") + authheader = "Basic %s" % encodeuser + request.add_header("Authorization", authheader) + + import ssl + context = ssl._create_unverified_context() + + import netrc, urlparse + n = netrc.netrc() + login, unused, password = n.authenticators(urlparse.urlparse(x).hostname) + + req = urllib.Request(x) + + add_basic_auth("%s:%s" % (login, password), req) + # If url returns 404 or similar, raise exception - urlopen(x, timeout=20) + urlopen(req, timeout=20, context=context) except Exception as e: print(e) print('Error trying to access %s' % x) From 1ecc362e5d8d683592e537f69494cbc531233032 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 9 Oct 2017 12:56:43 -0700 Subject: [PATCH 022/947] devices: common: don't re-run urlopen bits since we do that earlier This is just another duplication of checks from arguments.py. Also, tell curl to use .netrc so it behaves the same as the earlier check Signed-off-by: Matthew McClintock --- devices/common.py | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/devices/common.py b/devices/common.py index aa4b132f..b5030a8b 100644 --- a/devices/common.py +++ b/devices/common.py @@ -56,15 +56,7 @@ def copy_file_to_server(cmd, password): raise Exception("Unable to copy file to server") def download_from_web(url, server, username, password, port): - try: - urllib2.urlopen(url) - except urllib2.HTTPError as e: - print_bold("HTTP url %s returned %s, exiting" % (url, e.code)) - sys.exit(10) - except urllib2.URLError as e: - print_bold("HTTP url %s returned %s, exiting" % (url, e.args)) - sys.exit(11) - cmd = "curl -L -k '%s' 2>/dev/null | ssh -p %s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -x %s@%s \"tmpfile=\`mktemp /tftpboot/tmp/XXXXX\`; cat - > \$tmpfile; chmod a+rw \$tmpfile; echo \$tmpfile\"" % (url, port, username, server) + cmd = "curl -n -L -k '%s' 2>/dev/null | ssh -p %s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -x %s@%s \"tmpfile=\`mktemp /tftpboot/tmp/XXXXX\`; cat - > \$tmpfile; chmod a+rw \$tmpfile; echo \$tmpfile\"" % (url, port, username, server) return copy_file_to_server(cmd, password) def scp_to_tftp_server(fname, server, username, password, port): From 4be4db9245d6214ae662b0fd755ece36198f75e1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 9 Oct 2017 13:19:04 -0700 Subject: [PATCH 023/947] devices: add bootargs arg option passed into boot_linux This adds support for passing an optional kernel bootarg into the booted image Signed-off-by: Matthew McClintock --- arguments.py | 2 ++ devices/cougarpark.py | 2 +- devices/marvell.py | 2 +- devices/openwrt_router.py | 2 +- devices/qcom_akronite_nand.py | 2 +- devices/qcom_akronite_nor.py | 2 +- devices/qcom_dakota_nor.py | 2 +- devices/qcom_mips.py | 2 +- devices/rpi.py | 2 +- tests/rootfs_boot.py | 2 +- 10 files changed, 11 insertions(+), 9 deletions(-) diff --git a/arguments.py b/arguments.py index e0e24ffe..d6ec5210 100755 --- a/arguments.py +++ b/arguments.py @@ -76,6 +76,7 @@ def parse(): parser.add_argument('-o', '--output_dir', metavar='', type=str, default=owrt_tests_dir, help='Directory to output results files too') parser.add_argument('-z', '--no-network', action='store_true', help='Skip basic network tests when booting') parser.add_argument('-c', '--config_file', metavar='', type=str, default=boardfarm_config_location, help='JSON config file for boardfarm') + parser.add_argument('--bootargs', metavar='', type=str, default=None, help='bootargs to set or append to default args (board dependant)') args = parser.parse_args() @@ -243,6 +244,7 @@ def add_basic_auth(login_str, request): config.WAN_PROTO = args.wan config.reboot_vms = args.reboot_vms config.setup_device_networking = not args.no_network + config.bootargs = args.bootargs return config diff --git a/devices/cougarpark.py b/devices/cougarpark.py index fd3d276a..70166151 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -30,5 +30,5 @@ class CougarPark(openwrt_router.OpenWrtRouter): #def flash_linux(self, KERNEL): # common.print_bold("\n===== Flashing linux =====\n") - #def boot_linux(self, rootfs=None): + #def boot_linux(self, rootfs=None, bootargs=""): # common.print_bold("\n===== Booting linux for %s on %s =====" % (self.model, self.root_type)) diff --git a/devices/marvell.py b/devices/marvell.py index fb199789..99cf4823 100644 --- a/devices/marvell.py +++ b/devices/marvell.py @@ -55,5 +55,5 @@ def flash_linux(self, KERNEL): self.sendline('run update_both_images') self.expect(self.uprompt, timeout=90) - def boot_linux(self, rootfs=None): + def boot_linux(self, rootfs=None, bootargs=""): self.sendline('boot') diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 3f8abc3b..d508b527 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -382,7 +382,7 @@ def setup_uboot_network(self, TFTP_SERVER="192.168.0.1"): self.sendline('saveenv') self.expect(self.uprompt) - def boot_linux(self, rootfs=None): + def boot_linux(self, rootfs=None, bootargs=""): print("\nWARNING: We don't know how to boot this board to linux " "please write the code to do so.") diff --git a/devices/qcom_akronite_nand.py b/devices/qcom_akronite_nand.py index 5eec5813..af7825ab 100644 --- a/devices/qcom_akronite_nand.py +++ b/devices/qcom_akronite_nand.py @@ -53,7 +53,7 @@ def flash_linux(self, KERNEL): raise Exception("Kernel is in UBI rootfs, not separate") - def boot_linux(self, rootfs=None): + def boot_linux(self, rootfs=None, bootargs=""): common.print_bold("\n===== Booting linux for %s on %s =====" % (self.model, self.root_type)) self.reset() self.wait_for_boot() diff --git a/devices/qcom_akronite_nor.py b/devices/qcom_akronite_nor.py index 120be820..55497927 100644 --- a/devices/qcom_akronite_nor.py +++ b/devices/qcom_akronite_nor.py @@ -36,7 +36,7 @@ def flash_linux(self, KERNEL): size = self.tftp_get_file_uboot(self.uboot_ddr_addr, filename) self.spi_flash_bin("0x0062b0000", size, self.uboot_ddr_addr, "0x400000") - def boot_linux(self, rootfs=None): + def boot_linux(self, rootfs=None, bootargs=""): common.print_bold("\n===== Booting linux for %s on %s =====" % (self.model, self.root_type)) self.reset() self.wait_for_boot() diff --git a/devices/qcom_dakota_nor.py b/devices/qcom_dakota_nor.py index 4cd228ef..4af84a93 100644 --- a/devices/qcom_dakota_nor.py +++ b/devices/qcom_dakota_nor.py @@ -37,7 +37,7 @@ def flash_linux(self, KERNEL): size = self.tftp_get_file_uboot(self.uboot_ddr_addr, filename) self.spi_flash_bin(self.kernel_addr, size, self.uboot_ddr_addr, self.kernel_size) - def boot_linux(self, rootfs=None): + def boot_linux(self, rootfs=None, bootargs=""): common.print_bold("\n===== Booting linux for %s on %s =====" % (self.model, self.root_type)) self.reset() self.wait_for_boot() diff --git a/devices/qcom_mips.py b/devices/qcom_mips.py index 02ef1a76..447d75ef 100644 --- a/devices/qcom_mips.py +++ b/devices/qcom_mips.py @@ -90,7 +90,7 @@ def flash_linux(self, KERNEL): self.expect('Total of .* bytes were the same') self.expect(self.uprompt) - def boot_linux(self, rootfs=None): + def boot_linux(self, rootfs=None, bootargs=""): common.print_bold("\n===== Booting linux for %s on %s =====" % (self.model, self.root_type)) if self.model == "ap135-nand": self.sendline('setenv bootcmd nboot 0x81000000 0 0x100000') diff --git a/devices/rpi.py b/devices/rpi.py index 47e8ae5f..76aa3f4d 100644 --- a/devices/rpi.py +++ b/devices/rpi.py @@ -104,7 +104,7 @@ def flash_linux(self, KERNEL): self.sendline('fatwrite mmc 0 %s uImage $filesize' % self.uboot_ddr_addr) self.expect(self.uprompt) - def boot_linux(self, rootfs=None): + def boot_linux(self, rootfs=None, bootargs=""): common.print_bold("\n===== Booting linux for %s on %s =====" % (self.model, self.root_type)) #self.sendline('setenv bootargs "8250.nr_uarts=1 bcm2708_fb.fbwidth=1824 bcm2708_fb.fbheight=984 bcm2708_fb.fbswap=1 dma.dmachans=0x7f35 bcm2709.boardrev=0xa02082 bcm2709.serial=0xc07187c2 bcm2709.uart_clock=48000000 smsc95xx.macaddr=B8:27:EB:71:87:C2 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 root=mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait"') diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 5c766ef2..724c356a 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -67,7 +67,7 @@ def boot(self, reflash=True): if self.config.KERNEL: board.flash_linux(self.config.KERNEL) # Boot from U-Boot to Linux - board.boot_linux(rootfs=rootfs) + board.boot_linux(rootfs=rootfs, bootargs=self.config.bootargs) if hasattr(board, "pre_boot_linux"): board.pre_boot_linux(wan=wan, lan=lan) board.linux_booted = True From 0de0a53c4d756c390c0750912bdb19db79401505 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 9 Oct 2017 13:19:56 -0700 Subject: [PATCH 024/947] devices: rpi3: use bootargs passed in to boot_linux We append this to the bootargs since the bcm firmware will give us one we should generally respect Signed-off-by: Matthew McClintock --- devices/rpi.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/devices/rpi.py b/devices/rpi.py index 76aa3f4d..ae6bacd6 100644 --- a/devices/rpi.py +++ b/devices/rpi.py @@ -107,8 +107,12 @@ def flash_linux(self, KERNEL): def boot_linux(self, rootfs=None, bootargs=""): common.print_bold("\n===== Booting linux for %s on %s =====" % (self.model, self.root_type)) - #self.sendline('setenv bootargs "8250.nr_uarts=1 bcm2708_fb.fbwidth=1824 bcm2708_fb.fbheight=984 bcm2708_fb.fbswap=1 dma.dmachans=0x7f35 bcm2709.boardrev=0xa02082 bcm2709.serial=0xc07187c2 bcm2709.uart_clock=48000000 smsc95xx.macaddr=B8:27:EB:71:87:C2 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 root=mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait"') - self.sendline('setenv bootargs') + self.sendline('fdt addr $fdt_addr') + self.expect(self.uprompt) + self.sendline('fdt get value bcm_bootargs /chosen bootargs') + self.expect(self.uprompt) + + self.sendline('setenv bootargs "$bcm_bootargs %s"' % bootargs) self.expect(self.uprompt) self.sendline("setenv bootcmd 'fatload mmc 0 ${kernel_addr_r} uImage; bootm ${kernel_addr_r} - ${fdt_addr}'") From 24d5c2d80c03342ad41765b32c347bd2caf9c09c Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 11 Oct 2017 11:02:14 -0700 Subject: [PATCH 025/947] tests: oe: update version extracting some to be more flexible OE version was dropped for newer versions so make that regex more robust Signed-off-by: Matthew McClintock --- tests/oe.py | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/tests/oe.py b/tests/oe.py index e468559a..4eeebcbd 100644 --- a/tests/oe.py +++ b/tests/oe.py @@ -13,18 +13,33 @@ class OEVersion(rootfs_boot.RootFSBootTest): def runTest(self): board.sendline('cat /etc/os-release') # PRETTY_NAME=RDK (A Yocto Project 1.6 based Distro) 2.0 (krogoth) - board.expect('PRETTY_NAME=([^\s]*) \(A Yocto Project ([^\s]*) based Distro\) ([^\s]*) \(([^\)]*)\)') + board.expect('PRETTY_NAME=([^\s]*) \(A Yocto Project (?:[^\s]*?)\s?based Distro\) ([^\s]*) \(([^\)]*)\)') + + index = 1 + bsp_type = board.match.group(index) + index += 1 + if len(board.match.groups()) == 4: + oe_version = board.match.group(index) + index += 1 + else: + oe_version = "Unknown" + bsp_version = board.match.group(index) + index += 1 + oe_version_string = board.match.group(index) + index += 1 + + board.expect(prompt) + print("#########################################") - print("bsp-type = %s" % board.match.group(1)) - print("oe-version = %s" % board.match.group(2)) - print("bsp-version = %s" % board.match.group(3)) - print("oe-version-string = %s" % board.match.group(4)) + print("bsp-type = %s" % bsp_type) + print("oe-version = %s" % oe_version) + print("bsp-version = %s" % bsp_version) + print("oe-version-string = %s" % oe_version_string) print("#########################################") self.result_message="BSP = %s, BSP version = %s, OE version = %s, OE version string = %s" % \ - (board.match.group(1), board.match.group(3), board.match.group(2), board.match.group(4)) - self.logged['bsp-type'] = board.match.group(1) - self.logged['oe-version'] = board.match.group(2) - self.logged['bsp-version'] = board.match.group(3) - self.logged['oe-version-string'] = board.match.group(4) - board.expect(prompt) + (bsp_type, bsp_version, oe_version, oe_version_string) + self.logged['bsp-type'] = bsp_type + self.logged['oe-version'] = oe_version + self.logged['bsp-version'] = bsp_version + self.logged['oe-version-string'] = oe_version_string From f5cb7f10e78d1ca0bcfae561e6129ceb8f0a734d Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 11 Oct 2017 14:50:11 -0700 Subject: [PATCH 026/947] arguments: add netrc parsing in try/except statement This was failing for the non-netrc case. Signed-off-by: Matthew McClintock --- arguments.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/arguments.py b/arguments.py index d6ec5210..ffe2ad2b 100755 --- a/arguments.py +++ b/arguments.py @@ -156,13 +156,15 @@ def add_basic_auth(login_str, request): import ssl context = ssl._create_unverified_context() - import netrc, urlparse - n = netrc.netrc() - login, unused, password = n.authenticators(urlparse.urlparse(x).hostname) - req = urllib.Request(x) - add_basic_auth("%s:%s" % (login, password), req) + try: + import netrc, urlparse + n = netrc.netrc() + login, unused, password = n.authenticators(urlparse.urlparse(x).hostname) + add_basic_auth("%s:%s" % (login, password), req) + except (TypeError, ImportError, IOError, netrc.NetrcParseError): + pass # If url returns 404 or similar, raise exception urlopen(req, timeout=20, context=context) From ecdcc06ef6505769a5d95b230840c15cf6b4d771 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 11 Oct 2017 15:36:59 -0700 Subject: [PATCH 027/947] bft: start to remove hard coded 192.168.1.1 as wan gateway address Signed-off-by: Matthew McClintock --- devices/openwrt_router.py | 12 ++++++------ tests/iperf_test.py | 2 +- tests/iperf_udp_test.py | 2 +- tests/nmap.py | 2 +- tests/samba.py | 4 ++-- tests/webgui.py | 6 ++++-- tests/webui_tests.py | 6 ++++-- tests/wlan_associate.py | 6 +++--- 8 files changed, 22 insertions(+), 18 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index d508b527..b43955b2 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -141,14 +141,14 @@ def get_memfree(self): self.expect(self.prompt) return int(memFree) - def get_file(self, fname): + def get_file(self, fname, lan_ip="192.168.1.1"): ''' OpenWrt routers have a webserver, so we use that to download the file via a webproxy (e.g. a device on the board's LAN). ''' if not self.web_proxy: raise Exception('No web proxy defined to access board.') - url = 'http://192.168.1.1/TEMP' + url = 'http://%s/TEMP' % lan_ip self.sendline("\nchmod a+r %s" % fname) self.expect('chmod ') self.expect(self.prompt) @@ -427,12 +427,12 @@ def config_wan_proto(self, proto): self.network_restart() self.expect(pexpect.TIMEOUT, timeout=10) - def uci_allow_wan_http(self): + def uci_allow_wan_http(self, lan_ip="192.168.1.1"): '''Allow access to webgui from devices on WAN interface.''' - self.uci_forward_traffic_redirect("tcp", "80", "192.168.1.1") + self.uci_forward_traffic_redirect("tcp", "80", lan_ip) - def uci_allow_wan_ssh(self): - self.uci_forward_traffic_redirect("tcp", "22", "192.168.1.1") + def uci_allow_wan_ssh(self, lan_ip="192.168.1.1"): + self.uci_forward_traffic_redirect("tcp", "22", lan_ip) def uci_forward_traffic_redirect(self, tcp_udp, port_wan, ip_lan): self.sendline('uci add firewall redirect') diff --git a/tests/iperf_test.py b/tests/iperf_test.py index a41679f2..f7675f1b 100644 --- a/tests/iperf_test.py +++ b/tests/iperf_test.py @@ -164,7 +164,7 @@ class iPerfNonRoutedTest(iPerfTest): '''iPerf from LAN to Router''' def forward_ip(self): - return "192.168.1.1" + return board.get_interface_ipaddr(board.lan_iface) def runTest(self): super(iPerfNonRoutedTest, self).runTest(client=lan, server=board) diff --git a/tests/iperf_udp_test.py b/tests/iperf_udp_test.py index c8d2c6ba..7d6b26c2 100644 --- a/tests/iperf_udp_test.py +++ b/tests/iperf_udp_test.py @@ -164,7 +164,7 @@ class iPerfUDPNonRoutedTest(iPerfUDPTest): '''iPerf from LAN to Router''' def forward_ip(self): - return "192.168.1.1" + return board.get_interface_ipaddr(board.lan_iface) def runTest(self): super(iPerfUDPNonRoutedTest, self).runTest(client=lan, server=board) diff --git a/tests/nmap.py b/tests/nmap.py index 025a0518..bcd96b4f 100644 --- a/tests/nmap.py +++ b/tests/nmap.py @@ -16,7 +16,7 @@ class Nmap_LAN(rootfs_boot.RootFSBootTest): def recover(self): lan.sendcontrol('c') def runTest(self): - lan.sendline('nmap -sS -A -v -p 1-10000 192.168.1.1') + lan.sendline('nmap -sS -A -v -p 1-10000 %s' % board.get_interface_ipaddr(board.lan_iface)) lan.expect('Starting Nmap') lan.expect('Nmap scan report', timeout=660) lan.expect(prompt, timeout=60) diff --git a/tests/samba.py b/tests/samba.py index 040bc7f6..56212119 100644 --- a/tests/samba.py +++ b/tests/samba.py @@ -25,10 +25,10 @@ def runTest(self): board.sendline('smbclient -N -L 127.0.0.1') board.expect('boardfarm-test') board.expect(prompt) - lan.sendline('smbclient -N -L 192.168.1.1') + lan.sendline('smbclient -N -L %s' % board.get_interface_ipaddr(board.lan_iface)) lan.expect('boardfarm-test') lan.expect(prompt) - lan.sendline('mkdir -p /mnt/samba; mount -o guest //192.168.1.1/boardfarm-test /mnt/samba') + lan.sendline('mkdir -p /mnt/samba; mount -o guest //%s/boardfarm-test /mnt/samba' % board.get_interface_ipaddr(board.lan_iface)) lan.expect(prompt) lan.sendline('echo boardafarm-testing-string > /mnt/samba/test') lan.expect(prompt) diff --git a/tests/webgui.py b/tests/webgui.py index 8783844e..1b80e7d3 100644 --- a/tests/webgui.py +++ b/tests/webgui.py @@ -18,7 +18,8 @@ def runTest(self): class WebGUI_Access(rootfs_boot.RootFSBootTest): '''Router webpage available to LAN-device at http://192.168.1.1/.''' def runTest(self): - url = 'http://192.168.1.1/' + ip = "192.168.1.1" + url = 'http://%s/' % ip lan.sendline('\ncurl -v %s' % url) lan.expect(' /www/deleteme.txt') board.expect('head ', timeout=5) board.expect(prompt) - lan.sendline('\ncurl -m 25 http://192.168.1.1/deleteme.txt > /dev/null') + lan.sendline('\ncurl -m 25 http://%s/deleteme.txt > /dev/null' % ip) lan.expect('Total', timeout=5) lan.expect('100 ', timeout=10) lan.expect(prompt, timeout=10) diff --git a/tests/webui_tests.py b/tests/webui_tests.py index 749f73f0..a1cd851d 100644 --- a/tests/webui_tests.py +++ b/tests/webui_tests.py @@ -14,6 +14,8 @@ class WebTest(rootfs_boot.RootFSBootTest): '''Login to LuCI''' def setUp(self): + ip = "192.168.1.1" + super(WebTest, self).setUp() if not lan: msg = 'No LAN Device defined, skipping web test.' @@ -30,8 +32,8 @@ def setUp(self): # Create a driver self.driver = lib.common.phantom_webproxy_driver('http://' + lan.name + ':8080') - self.driver.get("http://192.168.1.1/cgi-bin/luci") - self.assertIn('192.168.1.1', self.driver.current_url) + self.driver.get("http://%s/cgi-bin/luci" % ip) + self.assertIn(ip, self.driver.current_url) self.assertIn('LuCI', self.driver.title) self.driver.find_element_by_name('luci_password').send_keys('password') self.driver.find_element_by_class_name('cbi-button-apply').submit() diff --git a/tests/wlan_associate.py b/tests/wlan_associate.py index c23622fa..9a68e23e 100644 --- a/tests/wlan_associate.py +++ b/tests/wlan_associate.py @@ -128,15 +128,15 @@ def runTest(self): wlan_ip = wlan.get_interface_ipaddr("wlan0") # add route to wan - wlan.sendline('ip route add 192.168.0.0/24 via 192.168.1.1') + wlan.sendline('ip route add 192.168.0.0/24 via %s' % board.get_interface_ipaddr(board.lan_iface)) wlan.expect(prompt) wlan.sendline('ip route show') wlan.expect(prompt) - wlan.sendline('ping 192.168.1.1 -c3') + wlan.sendline('ping %s -c3' % board.get_interface_ipaddr(board.lan_iface)) wlan.expect('3 packets transmitted') wlan.expect(prompt) - wlan.sendline('curl 192.168.1.1 --connect-timeout 5 > /dev/null 2>&1; echo $?') + wlan.sendline('curl %s --connect-timeout 5 > /dev/null 2>&1; echo $?' % board.get_interface_ipaddr(board.lan_iface)) wlan.expect('(\d+)\r\n') curl_success = int(wlan.match.group(1)) From 137f829545942eee7c76f287659b2bceb3965e5e Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 12 Oct 2017 07:50:49 -0700 Subject: [PATCH 028/947] tests: nmap: add provision for allowing open ports on WAN interface Signed-off-by: Matthew McClintock --- tests/nmap.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/nmap.py b/tests/nmap.py index bcd96b4f..58dce246 100644 --- a/tests/nmap.py +++ b/tests/nmap.py @@ -38,6 +38,10 @@ def runTest(self): open_ports = re.findall("(\d+)/tcp\s+open", wan.before) msg = "Found %s open TCP ports on WAN interface." % len(open_ports) self.result_message = msg + print("open ports = %s" % open_ports) + if hasattr(board, 'wan_open_ports'): + print ("allowing open ports %s" % board.wan_open_ports) + open_ports = set(open_ports) - set(board.wan_open_ports) assert len(open_ports) == 0 class UDP_Stress(rootfs_boot.RootFSBootTest): From fd84d10858490761c0f721ec3ee37a7cfacd30c2 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 12 Oct 2017 08:02:15 -0700 Subject: [PATCH 029/947] devices: rpi3: add allowed open wan ports These are the current open ports for RDK-B so let's allow them for now so we can notice if new ports open up Signed-off-by: Matthew McClintock --- devices/rpi.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/devices/rpi.py b/devices/rpi.py index ae6bacd6..9ba673a8 100644 --- a/devices/rpi.py +++ b/devices/rpi.py @@ -28,6 +28,9 @@ class RPI(openwrt_router.OpenWrtRouter): # can't get u-boot to work without a delay delaybetweenchar = 0.05 + # allowed open ports (starting point) + wan_open_ports = ['22', '8080', '8087', '8088', '8090'] + def flash_uboot(self, uboot): '''In this case it's flashing the vfat partition of the bootload. Need to have that image u-boot and serial turned on via dtoverlay From fe118c4b2734f6271b62eab95d6ea52f318316b9 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 12 Oct 2017 09:06:10 -0700 Subject: [PATCH 030/947] devices: debian: allow all the default tinyproxy private networks Often the user will be coming from a private network, so let's enable them all from the default tinyproxy config Signed-off-by: Matthew McClintock --- devices/debian.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index cbc4d355..189c0d9d 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -359,7 +359,7 @@ def start_lan_client(self, gw="192.168.1.1"): self.expect(self.prompt) self.sendline("sed -i 's/^Port 8888/Port 8080/' /etc/tinyproxy.conf") self.expect(self.prompt) - self.sendline("sed -i 's/^#Allow 10.0.0.0/Allow 10.0.0.0/' /etc/tinyproxy.conf") + self.sendline("sed 's/#Allow/Allow/g' -i /etc/tinyproxy.conf") self.expect(self.prompt) self.sendline('/etc/init.d/tinyproxy restart') self.expect('Restarting') From 37608dbdcb1fc28e25fea7988f8f6b289a827b6e Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 16 Oct 2017 10:27:28 -0700 Subject: [PATCH 031/947] devices: rpi3: turn off captive portal and reboot This is hacky for now, since we have to reboot, but it's the only way so far I see to turn off the captive portal. TBD Signed-off-by: Matthew McClintock --- devices/rpi.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/devices/rpi.py b/devices/rpi.py index 9ba673a8..54cf792b 100644 --- a/devices/rpi.py +++ b/devices/rpi.py @@ -107,6 +107,12 @@ def flash_linux(self, KERNEL): self.sendline('fatwrite mmc 0 %s uImage $filesize' % self.uboot_ddr_addr) self.expect(self.uprompt) + def pre_boot_linux(self, wan=None, lan=None): + self.wait_for_linux() + self.sendline('dmcli eRT setv Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable bool false') + self.expect(self.prompt) + self.sendline('reboot') + def boot_linux(self, rootfs=None, bootargs=""): common.print_bold("\n===== Booting linux for %s on %s =====" % (self.model, self.root_type)) From c7c83bd35d7675a6cc041d557192b51fdffaf886 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 16 Oct 2017 13:40:58 -0700 Subject: [PATCH 032/947] tests: nmap: give lan scan more time to complete This can take quite a while, let's give it lots of time to finish Signed-off-by: Matthew McClintock --- tests/nmap.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/nmap.py b/tests/nmap.py index 58dce246..913e638b 100644 --- a/tests/nmap.py +++ b/tests/nmap.py @@ -18,7 +18,7 @@ def recover(self): def runTest(self): lan.sendline('nmap -sS -A -v -p 1-10000 %s' % board.get_interface_ipaddr(board.lan_iface)) lan.expect('Starting Nmap') - lan.expect('Nmap scan report', timeout=660) + lan.expect('Nmap scan report', timeout=1200) lan.expect(prompt, timeout=60) open_ports = re.findall("(\d+)/tcp\s+open", lan.before) msg = "Found %s open TCP ports on LAN interface: %s." % \ From c77820897a829d11a82a8ec5fbd1dadd5ab21d9a Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 18 Oct 2017 10:37:45 -0700 Subject: [PATCH 033/947] devices: owrt: fix message This is actually waiting for wan and lan devices Signed-off-by: Matthew McClintock --- devices/openwrt_router.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index b43955b2..3c6c65a9 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -293,7 +293,7 @@ def wait_for_network(self): self.expect(interface) self.expect(self.prompt) except pexpect.TIMEOUT: - print("waiting for wan ipaddr") + print("waiting for wan/lan ipaddr") else: break From 361187fc533c5cbe52eb0e4d7d0e959a2e534355 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 18 Oct 2017 11:34:24 -0700 Subject: [PATCH 034/947] devices: rpi: don't reboot if dmcli command is not present This saves a lot of boot time. Signed-off-by: Matthew McClintock --- devices/rpi.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/devices/rpi.py b/devices/rpi.py index 54cf792b..b8039347 100644 --- a/devices/rpi.py +++ b/devices/rpi.py @@ -107,11 +107,14 @@ def flash_linux(self, KERNEL): self.sendline('fatwrite mmc 0 %s uImage $filesize' % self.uboot_ddr_addr) self.expect(self.uprompt) - def pre_boot_linux(self, wan=None, lan=None): - self.wait_for_linux() + def wait_for_linux(self): + super(RPI, self).wait_for_linux() self.sendline('dmcli eRT setv Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable bool false') - self.expect(self.prompt) - self.sendline('reboot') + if 0 == self.expect(['dmcli: not found'] + self.prompt): + self.expect(self.prompt) + else: + self.sendline('reboot') + super(RPI, self).wait_for_linux() def boot_linux(self, rootfs=None, bootargs=""): common.print_bold("\n===== Booting linux for %s on %s =====" % (self.model, self.root_type)) From 6c0fc3a811bf72377f0020f60c4f7da11e8cdc50 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 18 Oct 2017 12:17:12 -0700 Subject: [PATCH 035/947] device: owrt: don't enable lan client and routing if board doesn't support it First pass at adding support for the notion of a device that does not act as a router/gateway Signed-off-by: Matthew McClintock --- devices/openwrt_router.py | 10 ++++++++++ tests/rootfs_boot.py | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 3c6c65a9..a892e358 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -49,6 +49,8 @@ class OpenWrtRouter(base.BaseDevice): delaybetweenchar = None uboot_net_delay = 30 + routing = True + def __init__(self, model, conn_cmd, @@ -283,6 +285,14 @@ def kill_console_at_exit(self): def wait_for_network(self): '''Wait until network interfaces have IP Addresses.''' + + self.sendline('sysctl net.ipv4.ip_forward net.ipv4.ip_forward') + self.expect_exact('sysctl net.ipv4.ip_forward net.ipv4.ip_forward') + if 0 != self.expect(['net.ipv4.ip_forward = 1', 'net.ipv4.ip_forward = 0']): + self.routing = False + return + self.expect(self.prompt) + for interface in [self.wan_iface, self.lan_iface]: for i in range(5): try: diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 724c356a..8b25b07f 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -140,8 +140,8 @@ def boot(self, reflash=True): self.logged['boot_time'] = end_seconds_up - lan_ip = board.get_interface_ipaddr(board.lan_iface) - if lan and self.config.setup_device_networking: + if board.routing and lan and self.config.setup_device_networking: + lan_ip = board.get_interface_ipaddr(board.lan_iface) lan.start_lan_client(gw=lan_ip) reflash = False From 3b6cf4f170f3ae5b4e6a9c74b9a1f91928f5f575 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 18 Oct 2017 12:29:46 -0700 Subject: [PATCH 036/947] devices: owrt: send over password if asked for Signed-off-by: Matthew McClintock --- devices/openwrt_router.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index a892e358..c1d3856d 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -409,6 +409,9 @@ def wait_for_linux(self): raise Exception('U-Boot came back when booting kernel') elif i == 1: self.sendline('root') + if 0 == self.expect(['assword:'] + self.prompt): + self.sendline('password') + self.expect(self.prompt) # Give things time to start or crash on their own. # Some things, like wifi, take a while. From 816c8894a9725f050f96d3063315bb9dfc70f565 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 19 Oct 2017 07:14:27 -0700 Subject: [PATCH 037/947] installers: always update before installing It's possible to fail an install because the mirror info is out of date Signed-off-by: Matthew McClintock --- tests/lib/installers.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 1ac5decc..0da7e752 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -6,6 +6,7 @@ # The full text can be found in LICENSE in the root directory. def apt_install(device, name, timeout=120): + apt_update(device) device.sendline('apt-get install -q -y %s' % name) device.expect('Reading package') device.expect(device.prompt, timeout=timeout) From ead5f26eb29177ed25d7df7aafdb003b2d4be7dd Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 19 Oct 2017 12:05:42 -0700 Subject: [PATCH 038/947] devices: owrt: only require 2 args from uptime Not all implemetations have the 3rd argument Signed-off-by: Matthew McClintock --- devices/openwrt_router.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index c1d3856d..52c318cd 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -126,7 +126,7 @@ def get_ip_addr(self, interface): def get_seconds_uptime(self): '''Return seconds since last reboot. Stored in /proc/uptime''' self.sendline('\ncat /proc/uptime') - self.expect('(\d+).(\d+) (\d+).(\d+)\r\n') + self.expect('(\d+).(\d+).*\r\n') seconds_up = int(self.match.group(1)) self.expect(self.prompt) return seconds_up From a9235d8abd0ade267ac18f9b16ea6eedf2958516 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 19 Oct 2017 12:06:10 -0700 Subject: [PATCH 039/947] bft: optionally pass rootfs into device init For devices that require the rootfs before they can spawn a session Signed-off-by: Matthew McClintock --- bft | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bft b/bft index 49d48738..e84e8df9 100755 --- a/bft +++ b/bft @@ -144,7 +144,8 @@ def main(): connection_type=config.board.get('connection_type', None), ssh_password=config.board.get('ssh_password', None), power_username=config.board.get('power_username', None), - power_password=config.board.get('power_password', None)) + power_password=config.board.get('power_password', None), + rootfs=config.ROOTFS) print_bold("dut device console = %s" % colored("black", 'grey')) setup_legacy_devices(config) From f1a694e36b20e0e5d3627cff65c406f11992c9cd Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 19 Oct 2017 12:17:58 -0700 Subject: [PATCH 040/947] devices: add qemu virtualize device This will spawn a qemu instance for the test device, and map local network devices created by qemu into the wan and lan guests. $ ./bft -b qemux86 -r ~/path/to/build-qemux86broadband/tmp/deploy/images/qemux86broadband/rdk-generic-broadband-image-qemux86broadband.vmdk Signed-off-by: Matthew McClintock --- boardfarm_config_example.json | 29 ++++++++++++++ devices/board_decider.py | 4 ++ devices/qemu.py | 71 +++++++++++++++++++++++++++++++++++ 3 files changed, 104 insertions(+) create mode 100644 devices/qemu.py diff --git a/boardfarm_config_example.json b/boardfarm_config_example.json index 75e18e32..6b58a9c3 100644 --- a/boardfarm_config_example.json +++ b/boardfarm_config_example.json @@ -27,5 +27,34 @@ ], "connection_type": "local_serial", "notes": "Rpi3 device with docker containers attached to WAN/LAN" + }, + "qemux86-1": { + "board_type": "qemux86", + "conn_cmd": "sudo qemu-system-i386 -m 256 -nographic --enable-kvm -netdev tap,id=wan,ifname=bft-qemu-wan -device e1000,netdev=wan -netdev tap,id=lan,ifname=bft-qemu-lan -device e1000,netdev=lan", + "devices": [ + { + "type": "debian", + "name": "wan", + "pre_cmd_host": "docker build -t bft:node bft-node", + "cmd": "docker run --name wan --privileged -it bft:node /bin/bash", + "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' wan) dev bft-qemu-wan", + "post_cmd": "ip link set bft-qemu-wan name eth1", + "cleanup_cmd": "docker stop wan; docker rm wan", + "color": "cyan", + "options": "tftpd-server" + }, + { + "type": "debian", + "name": "lan", + "pre_cmd_host": "docker build -t bft:node bft-node", + "cmd": "docker run --name lan --privileged -it bft:node /bin/bash", + "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan) dev bft-qemu-lan", + "post_cmd": "ip link set bft-qemu-lan name eth1", + "cleanup_cmd": "docker stop lan; docker rm lan", + "color": "blue" + } + ], + "connection_type": "local_serial", + "notes": "QEMU emulated devices" } } diff --git a/devices/board_decider.py b/devices/board_decider.py index cb7cc884..68b494b0 100644 --- a/devices/board_decider.py +++ b/devices/board_decider.py @@ -14,6 +14,7 @@ import marvell import rpi import cougarpark +import qemu def board(model, **kwargs): ''' @@ -48,6 +49,9 @@ def board(model, **kwargs): if model in ("cougarpark"): return cougarpark.CougarPark(model, **kwargs) + if model in ("qemux86"): + return qemu.Qemu(model, **kwargs) + # Default for all other models print("\nWARNING: Unknown board model '%s'." % model) print("Please check spelling, or write an appropriate class " diff --git a/devices/qemu.py b/devices/qemu.py new file mode 100644 index 00000000..c157558a --- /dev/null +++ b/devices/qemu.py @@ -0,0 +1,71 @@ +# Copyright (c) 2017 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. + +import common +import openwrt_router +import sys +import pexpect + +class Qemu(openwrt_router.OpenWrtRouter): + ''' + Emulated QEMU board + ''' + + wan_iface = "erouter0" + lan_iface = "brlan0" + + # allowed open ports (starting point) + wan_open_ports = ['22', '8080', '8087', '8088', '8090'] + + def __init__(self, + model, + conn_cmd, + power_ip, + power_outlet, + output=sys.stdout, + password='bigfoot1', + web_proxy=None, + tftp_server=None, + tftp_username=None, + tftp_password=None, + tftp_port=None, + connection_type=None, + power_username=None, + power_password=None, + rootfs=None, + **kwargs): + + cmd = "%s %s" % (conn_cmd, rootfs) + + # spawn a simple bash shell for now, will launch qemu later + pexpect.spawn.__init__(self, command='/bin/bash', + args=["-c", cmd]) + self.logfile_read = output + self.expect("SYSLINUX") + + def wait_for_boot(self): + pass + + def setup_uboot_network(self): + pass + + def flash_rootfs(self, ROOTFS): + pass + + def wait_for_linux(self): + self.expect("login:") + + def boot_linux(self, rootfs=None, bootargs=None): + pass + + def reset(self): + self.sendcontrol('a') + self.send('c') + self.sendline('system_reset') + self.expect('SYSLINUX') + self.sendcontrol('a') + self.send('c') From d498751efcb8c6dced7fc78a2a058a91f6cdf599 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 19 Oct 2017 12:39:57 -0700 Subject: [PATCH 041/947] devices: debian: abort key copying if ssh-keygen fails Signed-off-by: Matthew McClintock --- devices/debian.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 189c0d9d..30dacc80 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -382,16 +382,16 @@ def start_lan_client(self, gw="192.168.1.1"): self.expect_exact('nc %s 22 -w 1' % gw) if 0 == self.expect(['SSH'] + self.prompt, timeout=5): self.sendline('[ -e /root/.ssh/id_rsa ] || ssh-keygen -N "" -f /root/.ssh/id_rsa') - self.expect(self.prompt) - self.sendline('scp ~/.ssh/id_rsa.pub %s:/etc/dropbear/authorized_keys' % gw) - self.expect_exact('scp ~/.ssh/id_rsa.pub %s:/etc/dropbear/authorized_keys' % gw) - try: - # When resetting, no need for password - self.expect("root@%s's password:" % gw, timeout=5) - self.sendline('password') - except: - pass - self.expect(self.prompt) + if 0 != self.expect(['Protocol mismatch.'] + self.prompt): + self.sendline('scp ~/.ssh/id_rsa.pub %s:/etc/dropbear/authorized_keys' % gw) + self.expect_exact('scp ~/.ssh/id_rsa.pub %s:/etc/dropbear/authorized_keys' % gw) + try: + # When resetting, no need for password + self.expect("root@%s's password:" % gw, timeout=5) + self.sendline('password') + except: + pass + self.expect(self.prompt) if __name__ == '__main__': # Example use From 368d994652872c62ac86f21eafba91c37e337305 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 23 Oct 2017 10:06:53 -0700 Subject: [PATCH 042/947] devices: qemu: add basic support for downloading qemu rootfs Signed-off-by: Matthew McClintock --- devices/qemu.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/devices/qemu.py b/devices/qemu.py index c157558a..97191417 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -9,6 +9,7 @@ import openwrt_router import sys import pexpect +import atexit class Qemu(openwrt_router.OpenWrtRouter): ''' @@ -39,6 +40,22 @@ def __init__(self, rootfs=None, **kwargs): + self.dl_console = None + if rootfs.startswith("http://") or rootfs.startswith("https://"): + self.dl_console = pexpect.spawn("bash --noprofile --norc") + self.dl_console.sendline('export PS1="prompt>>"') + self.dl_console.expect_exact("prompt>>") + self.dl_console.sendline('mktemp') + self.dl_console.expect('/tmp/tmp.*') + self.fname = self.dl_console.match.group(0).strip() + self.dl_console.expect_exact("prompt>>") + atexit.register(self.run_cleanup_cmd) + self.dl_console.logfile_read = sys.stdout + print("Temp downloaded rootfs = %s" % rootfs) + self.dl_console.sendline("curl -n -L -k '%s' > %s" % (rootfs, self.fname)) + self.dl_console.expect_exact("prompt>>", timeout=500) + rootfs = self.fname + cmd = "%s %s" % (conn_cmd, rootfs) # spawn a simple bash shell for now, will launch qemu later @@ -47,6 +64,14 @@ def __init__(self, self.logfile_read = output self.expect("SYSLINUX") + # we can delete the downloaded rootfs now + if self.dl_console is not None: + self.dl_console.sendline('rm %s' % self.fname) + + def run_cleanup_cmd(self): + if self.dl_console is not None: + self.dl_console.sendline('rm %s' % self.fname) + def wait_for_boot(self): pass From b44ecb6f5301a0eeb5d330f5375b331d29cbba81 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 23 Oct 2017 10:11:31 -0700 Subject: [PATCH 043/947] Revert "device: owrt: don't enable lan client and routing if board doesn't support it" This reverts commit 1fb93e3930ee1707e980b5139268cbf8da39db33. --- devices/openwrt_router.py | 10 ---------- tests/rootfs_boot.py | 4 ++-- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 52c318cd..bd6be697 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -49,8 +49,6 @@ class OpenWrtRouter(base.BaseDevice): delaybetweenchar = None uboot_net_delay = 30 - routing = True - def __init__(self, model, conn_cmd, @@ -285,14 +283,6 @@ def kill_console_at_exit(self): def wait_for_network(self): '''Wait until network interfaces have IP Addresses.''' - - self.sendline('sysctl net.ipv4.ip_forward net.ipv4.ip_forward') - self.expect_exact('sysctl net.ipv4.ip_forward net.ipv4.ip_forward') - if 0 != self.expect(['net.ipv4.ip_forward = 1', 'net.ipv4.ip_forward = 0']): - self.routing = False - return - self.expect(self.prompt) - for interface in [self.wan_iface, self.lan_iface]: for i in range(5): try: diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 8b25b07f..724c356a 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -140,8 +140,8 @@ def boot(self, reflash=True): self.logged['boot_time'] = end_seconds_up - if board.routing and lan and self.config.setup_device_networking: - lan_ip = board.get_interface_ipaddr(board.lan_iface) + lan_ip = board.get_interface_ipaddr(board.lan_iface) + if lan and self.config.setup_device_networking: lan.start_lan_client(gw=lan_ip) reflash = False From af9c02fa5f82b55fa4b87454df95ab82f0eae2cc Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 23 Oct 2017 10:21:51 -0700 Subject: [PATCH 044/947] devices: qemu: eth0 is wan interface Signed-off-by: Matthew McClintock --- devices/qemu.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/qemu.py b/devices/qemu.py index 97191417..2fc08773 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -16,7 +16,7 @@ class Qemu(openwrt_router.OpenWrtRouter): Emulated QEMU board ''' - wan_iface = "erouter0" + wan_iface = "eth0" lan_iface = "brlan0" # allowed open ports (starting point) From 3242129b387dd9c0eb2c3d111a292eb6289b8559 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 23 Oct 2017 13:43:40 -0700 Subject: [PATCH 045/947] devices: qemu: sync open wan ports These might not be correct, but it's a starting point to watch for changes Port 53 is open on WAN, is this DNS services? Should investigate further Signed-off-by: Matthew McClintock --- devices/qemu.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/qemu.py b/devices/qemu.py index 2fc08773..f758a92c 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -19,8 +19,8 @@ class Qemu(openwrt_router.OpenWrtRouter): wan_iface = "eth0" lan_iface = "brlan0" - # allowed open ports (starting point) - wan_open_ports = ['22', '8080', '8087', '8088', '8090'] + # allowed open ports (starting point, dns is on wan?) + wan_open_ports = ['22', '53'] def __init__(self, model, From 90f2a1a548f7a179c1eb44e338c29b62189d3b02 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 24 Oct 2017 15:25:44 -0700 Subject: [PATCH 046/947] tests: installers: update apt before attemping install mirrors and ips have moved/changed Signed-off-by: Matthew McClintock --- tests/lib/installers.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 0da7e752..3413d546 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -27,6 +27,8 @@ def install_iperf(device): device.expect('iperf version', timeout=10) device.expect(device.prompt) except: + device.expect(device.prompt) + device.sendline('apt-get update') device.expect(device.prompt) device.sendline('apt-get -o DPkg::Options::="--force-confnew" -y --force-yes install iperf') device.expect(device.prompt, timeout=60) @@ -38,6 +40,8 @@ def install_iperf3(device): device.expect('iperf 3', timeout=5) device.expect(device.prompt) except: + device.expect(device.prompt) + device.sendline('apt-get update') device.expect(device.prompt) device.sendline('apt-get -o DPkg::Options::="--force-confnew" -y --force-yes install iperf3') device.expect(device.prompt, timeout=60) @@ -59,6 +63,8 @@ def install_netperf(device): device.expect('Netperf version 2.4', timeout=10) device.expect(device.prompt) except: + device.expect(device.prompt) + device.sendline('apt-get update') device.expect(device.prompt) device.sendline('apt-get -o DPkg::Options::="--force-confnew" -y --force-yes install netperf') device.expect(device.prompt, timeout=60) @@ -91,6 +97,8 @@ def install_hping3(device): device.expect('hping3 version', timeout=5) device.expect(device.prompt) except: + device.expect(device.prompt) + device.sendline('apt-get update') device.expect(device.prompt) apt_install(device, 'hping3') def install_python(device): @@ -100,6 +108,8 @@ def install_python(device): device.expect('Python 2', timeout=5) device.expect(device.prompt) except: + device.expect(device.prompt) + device.sendline('apt-get update') device.expect(device.prompt) device.sendline('apt-get -o DPkg::Options::="--force-confnew" -y --force-yes install python-pip python-mysqldb') device.expect(device.prompt, timeout=60) From d9c414de7dc5fd820af300f8152337eb8227eceb Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 25 Oct 2017 12:20:23 -0700 Subject: [PATCH 047/947] devices: rpi3: only reboot if captive portal is not set Signed-off-by: Matthew McClintock --- devices/rpi.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/devices/rpi.py b/devices/rpi.py index b8039347..8c849873 100644 --- a/devices/rpi.py +++ b/devices/rpi.py @@ -109,10 +109,10 @@ def flash_linux(self, KERNEL): def wait_for_linux(self): super(RPI, self).wait_for_linux() - self.sendline('dmcli eRT setv Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable bool false') - if 0 == self.expect(['dmcli: not found'] + self.prompt): + self.sendline('dmcli eRT getv Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable') + if self.expect([' type: bool, value: false', 'dmcli: not found'] + self.prompt) > 1: + self.sendline('dmcli eRT setv Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable bool false') self.expect(self.prompt) - else: self.sendline('reboot') super(RPI, self).wait_for_linux() From 64e1e3f503c247c1473b8b47db628f1184c413c4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Fri, 27 Oct 2017 12:39:20 -0700 Subject: [PATCH 048/947] devices: owrt: try harder to get uptime This can have some garbage so try to get the prompt first to sync up. Otherwise we compare this saved vaule at times and we can get exceptions Signed-off-by: Matthew McClintock --- devices/openwrt_router.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index bd6be697..6e67a188 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -123,6 +123,8 @@ def get_ip_addr(self, interface): def get_seconds_uptime(self): '''Return seconds since last reboot. Stored in /proc/uptime''' + self.sendcontrol('c') + self.expect(self.prompt) self.sendline('\ncat /proc/uptime') self.expect('(\d+).(\d+).*\r\n') seconds_up = int(self.match.group(1)) From ef958d645282f0fd4f1dd6c262ffc6cf7634489d Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Fri, 27 Oct 2017 12:40:37 -0700 Subject: [PATCH 049/947] tests: iperf3: calc kbit and gbit correctly Signed-off-by: Matthew McClintock --- tests/iperf3_test.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/iperf3_test.py b/tests/iperf3_test.py index 9f1d39aa..0bbcbdf9 100644 --- a/tests/iperf3_test.py +++ b/tests/iperf3_test.py @@ -32,7 +32,9 @@ def runTest(self): if 'Mbits' in sender: s_rate = float(sender.split()[0]) elif 'Kbits' in sender: - s_rate = float(sender.split()[0]/1024) + s_rate = float(sender.split()[0])/1024 + elif 'Gbits' in sender: + s_rate = float(sender.split()[0])*1024 else: raise Exception("Unknown rate in sender results") From 23405cca22719e5c39dad24f79d936a3367bd010 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 30 Oct 2017 15:06:00 -0700 Subject: [PATCH 050/947] devices: debian: start ssh for wan and lan This is useful for both devices if it's not runnin Signed-off-by: Matthew McClintock --- devices/debian.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 30dacc80..aab1ec21 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -217,6 +217,14 @@ def restart_tftp_server(self): self.expect(self.prompt) def configure(self, kind): + # start openssh server if not running: + self.sendline('/etc/init.d/ssh start') + self.expect(self.prompt) + self.sendline('sed "s/PermitRootLogin.*/PermitRootLogin yes/g" -i /etc/ssh/sshd_config') + self.expect(self.prompt) + self.sendline('/etc/init.d/ssh reload') + self.expect(self.prompt) + if kind == "wan_device": self.setup_as_wan_gateway() elif kind == "lan_device": @@ -245,14 +253,6 @@ def setup_as_wan_gateway(self): self.sendline('ifconfig eth1 up') self.expect(self.prompt) - # start openssh server if not running: - self.sendline('/etc/init.d/ssh start') - self.expect(self.prompt) - self.sendline('sed "s/PermitRootLogin.*/PermitRootLogin yes/g" -i /etc/ssh/sshd_config') - self.expect(self.prompt) - self.sendline('/etc/init.d/ssh reload') - self.expect(self.prompt) - # configure DHCP server self.sendline('/etc/init.d/isc-dhcp-server stop') self.expect(self.prompt) From c7e2c8056b68d03a0db6be75d165726515931a47 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 1 Nov 2017 07:46:59 -0700 Subject: [PATCH 051/947] bft: pass a uniq_id through to devices This can mainly be used to create consistant virtual devices veth's so we can map things to the right containers/qemu instances. It's also used for names so they don't conflict with other running bft instances Signed-off-by: Matthew McClintock --- bft | 19 +++++++++++++++---- boardfarm_config_example.json | 18 +++++++++--------- devices/debian.py | 19 +++++++++++++------ devices/qemu.py | 3 ++- 4 files changed, 39 insertions(+), 20 deletions(-) diff --git a/bft b/bft index e84e8df9..3b9ee43b 100755 --- a/bft +++ b/bft @@ -15,6 +15,8 @@ import sys import unittest2 import junitxml import json +import hashlib +import time # Put this directory into the python path, so # that devices may be imported. @@ -61,8 +63,9 @@ def setup_legacy_devices(config): port=config.board.get('2g_port', "22")) -def setup_dynamic_devices(config): +def setup_dynamic_devices(config, env=None): '''Sets up dynamic devices from devices node in JSON config file''' + config.devices = [] for device in config.board['devices']: if device['type'] == 'debian': @@ -76,7 +79,8 @@ def setup_dynamic_devices(config): cmd=device.get('cmd', None), post_cmd_host=device.get('post_cmd_host', None), post_cmd=device.get('post_cmd', None), - cleanup_cmd=device.get('cleanup_cmd', None)) + cleanup_cmd=device.get('cleanup_cmd', None), + env=env) setattr(config, device['name'], d) config.devices.append(device['name']) else: @@ -131,6 +135,12 @@ def main(): # if not by ipaddr let's connect to the lan device later and update pass + + uniqid = hashlib.md5("%0.100f" % time.time()).hexdigest()[:15] + env = {"wan_iface": "wan%s" % uniqid[:12], + "lan_iface": "lan%s" % uniqid[:12], + "uniq_id": uniqid} + # Connect to board config.console = board_decider.board(config.board['board_type'], conn_cmd=config.board['conn_cmd'], @@ -145,13 +155,14 @@ def main(): ssh_password=config.board.get('ssh_password', None), power_username=config.board.get('power_username', None), power_password=config.board.get('power_password', None), - rootfs=config.ROOTFS) + rootfs=config.ROOTFS, + env=env) print_bold("dut device console = %s" % colored("black", 'grey')) setup_legacy_devices(config) if 'devices' in config.board: - setup_dynamic_devices(config) + setup_dynamic_devices(config, env=env) # legacy wan device if tftp_server is None and hasattr(config, 'wan'): diff --git a/boardfarm_config_example.json b/boardfarm_config_example.json index 6b58a9c3..257a2183 100644 --- a/boardfarm_config_example.json +++ b/boardfarm_config_example.json @@ -30,16 +30,16 @@ }, "qemux86-1": { "board_type": "qemux86", - "conn_cmd": "sudo qemu-system-i386 -m 256 -nographic --enable-kvm -netdev tap,id=wan,ifname=bft-qemu-wan -device e1000,netdev=wan -netdev tap,id=lan,ifname=bft-qemu-lan -device e1000,netdev=lan", + "conn_cmd": "sudo qemu-system-i386 -m 256 -nographic --enable-kvm -netdev tap,id=wan,ifname=${wan_iface} -device e1000,netdev=wan -netdev tap,id=lan,ifname=${lan_iface} -device e1000,netdev=lan", "devices": [ { "type": "debian", "name": "wan", "pre_cmd_host": "docker build -t bft:node bft-node", - "cmd": "docker run --name wan --privileged -it bft:node /bin/bash", - "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' wan) dev bft-qemu-wan", - "post_cmd": "ip link set bft-qemu-wan name eth1", - "cleanup_cmd": "docker stop wan; docker rm wan", + "cmd": "docker run --name wan-${uniq_id} --privileged -it bft:node /bin/bash", + "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' wan-${uniq_id}) dev ${wan_iface}", + "post_cmd": "ip link set ${wan_iface} name eth1", + "cleanup_cmd": "docker stop wan-${uniq_id}; docker rm wan-${uniq_id}", "color": "cyan", "options": "tftpd-server" }, @@ -47,10 +47,10 @@ "type": "debian", "name": "lan", "pre_cmd_host": "docker build -t bft:node bft-node", - "cmd": "docker run --name lan --privileged -it bft:node /bin/bash", - "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan) dev bft-qemu-lan", - "post_cmd": "ip link set bft-qemu-lan name eth1", - "cleanup_cmd": "docker stop lan; docker rm lan", + "cmd": "docker run --name lan-${uniq_id} --privileged -it bft:node /bin/bash", + "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan-${uniq_id}) dev ${lan_iface}", + "post_cmd": "ip link set ${lan_iface} name eth1", + "cleanup_cmd": "docker stop lan-${uniq_id}; docker rm lan-${uniq_id}", "color": "blue" } ], diff --git a/devices/debian.py b/devices/debian.py index aab1ec21..41305945 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -34,7 +34,8 @@ def __init__(self, cmd=None, post_cmd_host=None, post_cmd=None, - cleanup_cmd=None): + cleanup_cmd=None, + env=None): if name is not None: pexpect.spawn.__init__(self, command="ssh", @@ -48,7 +49,7 @@ def __init__(self, if pre_cmd_host is not None: sys.stdout.write("\tRunning pre_cmd_host.... ") sys.stdout.flush() - phc = pexpect.spawn(command='bash', args=['-c', pre_cmd_host]) + phc = pexpect.spawn(command='bash', args=['-c', pre_cmd_host], env=env) phc.expect(pexpect.EOF, timeout=120) print("\tpre_cmd_host done") @@ -56,7 +57,7 @@ def __init__(self, self.cleanup_cmd = cleanup_cmd atexit.register(self.run_cleanup_cmd) - pexpect.spawn.__init__(self, command="bash", args=['-c', cmd]) + pexpect.spawn.__init__(self, command="bash", args=['-c', cmd], env=env) self.color = color self.output = output @@ -64,6 +65,8 @@ def __init__(self, self.password = password self.port = port self.location = location + self.env=env + try: i = self.expect(["yes/no", "assword:", "Last login"] + self.prompt, timeout=30) except pexpect.TIMEOUT as e: @@ -94,7 +97,7 @@ def __init__(self, if post_cmd_host is not None: sys.stdout.write("\tRunning post_cmd_host.... ") sys.stdout.flush() - phc = pexpect.spawn(command='bash', args=['-c', post_cmd_host]) + phc = pexpect.spawn(command='bash', args=['-c', post_cmd_host], env=env) i = phc.expect([pexpect.EOF, pexpect.TIMEOUT, 'password']) if i > 0: print("\tpost_cmd_host did not complete, it likely failed\n") @@ -102,7 +105,11 @@ def __init__(self, print("\tpost_cmd_host done") if post_cmd is not None: - self.sendline(post_cmd) + env_prefix="" + for k, v in env.iteritems(): + env_prefix += "export %s=%s; " % (k, v) + + self.sendline(env_prefix + post_cmd) self.expect(self.prompt) if reboot: @@ -113,7 +120,7 @@ def __init__(self, def run_cleanup_cmd(self): sys.stdout.write("Running cleanup_cmd on %s..." % self.name) sys.stdout.flush() - cc = pexpect.spawn(command='bash', args=['-c', self.cleanup_cmd]) + cc = pexpect.spawn(command='bash', args=['-c', self.cleanup_cmd], env=self.env) cc.expect(pexpect.EOF, timeout=120) print("cleanup_cmd done.") diff --git a/devices/qemu.py b/devices/qemu.py index f758a92c..6552388c 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -38,6 +38,7 @@ def __init__(self, power_username=None, power_password=None, rootfs=None, + env=None, **kwargs): self.dl_console = None @@ -60,7 +61,7 @@ def __init__(self, # spawn a simple bash shell for now, will launch qemu later pexpect.spawn.__init__(self, command='/bin/bash', - args=["-c", cmd]) + args=["-c", cmd], env=env) self.logfile_read = output self.expect("SYSLINUX") From 3b4b52873fb969105e117ac98eac08e4d923b1e4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 1 Nov 2017 15:21:15 -0700 Subject: [PATCH 052/947] tests: iperf3: fix receive calc for gbit rates too Only did send side in the last commit, this follows up and does both Signed-off-by: Matthew McClintock --- tests/iperf3_test.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/iperf3_test.py b/tests/iperf3_test.py index 0bbcbdf9..0b0c5754 100644 --- a/tests/iperf3_test.py +++ b/tests/iperf3_test.py @@ -42,7 +42,9 @@ def runTest(self): if 'Mbits' in recv: r_rate = float(recv.split()[0]) elif 'Kbits' in recv: - r_rate = float(recv.split()[0]/1024) + r_rate = float(recv.split()[0])/1024 + elif 'Gbits' in recv: + r_rate = float(recv.split()[0])*1024 else: raise Exception("Unknown rate in recv results") From 36d2ed4b2c01b204b4ba967787f68782f6a5d487 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 1 Nov 2017 15:22:43 -0700 Subject: [PATCH 053/947] devices: qemu: hide boot output, and boot faster Hide the first SYSLINUX output so it does not garble the initial output of the bft command, and press enter if we get a BIOS prompt to pick an option Signed-off-by: Matthew McClintock --- devices/qemu.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/devices/qemu.py b/devices/qemu.py index 6552388c..f4b8a24b 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -62,8 +62,8 @@ def __init__(self, # spawn a simple bash shell for now, will launch qemu later pexpect.spawn.__init__(self, command='/bin/bash', args=["-c", cmd], env=env) - self.logfile_read = output self.expect("SYSLINUX") + self.logfile_read = output # we can delete the downloaded rootfs now if self.dl_console is not None: @@ -83,7 +83,9 @@ def flash_rootfs(self, ROOTFS): pass def wait_for_linux(self): - self.expect("login:") + if 0 != self.expect(["login:", "Automatic boot in"]): + self.sendline() + self.expect('login:') def boot_linux(self, rootfs=None, bootargs=None): pass From 4c44a231cd96b1dbe91ee741f6685804d23728fe Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 2 Nov 2017 10:46:56 -0700 Subject: [PATCH 054/947] devices: qemu: print a message if not rootfs specified Signed-off-by: Matthew McClintock --- devices/qemu.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/qemu.py b/devices/qemu.py index f4b8a24b..c3e2ebd7 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -40,6 +40,8 @@ def __init__(self, rootfs=None, env=None, **kwargs): + if rootfs is None: + raise Exception("The QEMU device type requires specifying a rootfs") self.dl_console = None if rootfs.startswith("http://") or rootfs.startswith("https://"): From 79e7c357de070cda640258ac6cc9fe5f803c874e Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 2 Nov 2017 13:24:37 -0700 Subject: [PATCH 055/947] tests: status: tweak top checks Not all versions output Mem: Signed-off-by: Matthew McClintock --- tests/status.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/status.py b/tests/status.py index a74b2c8d..1d58c823 100644 --- a/tests/status.py +++ b/tests/status.py @@ -7,6 +7,7 @@ import re import rootfs_boot +import pexpect from devices import board, wan, lan, wlan, prompt class Logread(rootfs_boot.RootFSBootTest): @@ -30,7 +31,7 @@ class TopCheck(rootfs_boot.RootFSBootTest): '''Ran "top" to see current processes.''' def runTest(self): board.sendline('\ntop -b -n 1') - board.expect('Mem:', timeout=5) + board.expect(pexpect.TIMEOUT, timeout=2) try: board.expect(prompt, timeout=2) except: From 9823cca540993590c90600087914e05ec5fac667 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Fri, 3 Nov 2017 12:51:51 -0700 Subject: [PATCH 056/947] tests: rootfs_boot: add some debug code for failure case Signed-off-by: Matthew McClintock --- tests/rootfs_boot.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 724c356a..4f02fb7d 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -154,6 +154,11 @@ def runTest(self): def recover(self): if self.__class__.__name__ == "RootFSBootTest": + board.sendline('ps auxfw') + board.expect(prompt) + board.sendline('iptables -S') + board.expect(prompt) + board.close() lib.common.test_msg("Unable to boot, skipping remaining tests...") return From 14d46d528c969edc9e93f4d1b052609a5cd176d4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 6 Nov 2017 07:45:45 -0800 Subject: [PATCH 057/947] tests: rootfs_boot: fall back to busybox compat ps cmd Signed-off-by: Matthew McClintock --- tests/rootfs_boot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 4f02fb7d..6894e51a 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -154,7 +154,7 @@ def runTest(self): def recover(self): if self.__class__.__name__ == "RootFSBootTest": - board.sendline('ps auxfw') + board.sendline('ps auxfw || ps w') board.expect(prompt) board.sendline('iptables -S') board.expect(prompt) From 82f97575c715ad7bf6ff1f52a0d5b465c3e2eb6f Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 18 Oct 2017 12:17:12 -0700 Subject: [PATCH 058/947] device: owrt: don't enable lan client and routing if board doesn't support it First pass at adding support for the notion of a device that does not act as a router/gateway Second pass: did not check in sysctl for values. Will let board class override this Signed-off-by: Matthew McClintock --- devices/openwrt_router.py | 2 ++ tests/rootfs_boot.py | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 6e67a188..a566ce57 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -49,6 +49,8 @@ class OpenWrtRouter(base.BaseDevice): delaybetweenchar = None uboot_net_delay = 30 + routing = True + def __init__(self, model, conn_cmd, diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 6894e51a..e60fdbdb 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -140,8 +140,8 @@ def boot(self, reflash=True): self.logged['boot_time'] = end_seconds_up - lan_ip = board.get_interface_ipaddr(board.lan_iface) - if lan and self.config.setup_device_networking: + if board.routing and lan and self.config.setup_device_networking: + lan_ip = board.get_interface_ipaddr(board.lan_iface) lan.start_lan_client(gw=lan_ip) reflash = False From 6dbabe55117ed8d0cf8a0db22fe171b2708bc248 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 6 Nov 2017 09:29:22 -0800 Subject: [PATCH 059/947] devices: rpi3: disable routing and fix wan iface if not on RDK-B Signed-off-by: Matthew McClintock --- devices/rpi.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/devices/rpi.py b/devices/rpi.py index 8c849873..da59be47 100644 --- a/devices/rpi.py +++ b/devices/rpi.py @@ -109,6 +109,14 @@ def flash_linux(self, KERNEL): def wait_for_linux(self): super(RPI, self).wait_for_linux() + + self.sendline('cat /etc/issue') + if 0 == self.expect(['OpenEmbedded'] + self.prompt): + self.routing = False + self.wan_iface = "eth0" + self.lan_iface = None + self.expect(self.prompt) + self.sendline('dmcli eRT getv Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable') if self.expect([' type: bool, value: false', 'dmcli: not found'] + self.prompt) > 1: self.sendline('dmcli eRT setv Device.DeviceInfo.X_RDKCENTRAL-COM_CaptivePortalEnable bool false') From 6b43ad95d89fe3c59c503422cda318bc53fa309e Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 6 Nov 2017 09:31:07 -0800 Subject: [PATCH 060/947] devices: owrt: skip lan iface if it's set to None Signed-off-by: Matthew McClintock --- devices/openwrt_router.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index a566ce57..0ab8ca2d 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -290,12 +290,13 @@ def wait_for_network(self): for interface in [self.wan_iface, self.lan_iface]: for i in range(5): try: - ipaddr = self.get_interface_ipaddr(interface).strip() - if not ipaddr: - continue - self.sendline("route -n") - self.expect(interface) - self.expect(self.prompt) + if interface is not None: + ipaddr = self.get_interface_ipaddr(interface).strip() + if not ipaddr: + continue + self.sendline("route -n") + self.expect(interface) + self.expect(self.prompt) except pexpect.TIMEOUT: print("waiting for wan/lan ipaddr") else: From 4dcdbb0f50ea1c36c88ccf70455269e0aea6ded1 Mon Sep 17 00:00:00 2001 From: anil shetty Date: Tue, 7 Nov 2017 14:33:49 -0800 Subject: [PATCH 061/947] tests: libs: installers: add installers for tdkb_e2e tests The following were added: +def install_java(device): +def install_telnet_server(device): +def install_tcl(device): +def install_telnet_client(device): +def install_expect(device): +def install_wget(device): +def install_ftp(device): +def install_xampp(device): Signed-off-by: anil shetty Signed-off-by: Matthew McClintock --- tests/lib/installers.py | 138 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 3413d546..486ea56c 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -113,3 +113,141 @@ def install_python(device): device.expect(device.prompt) device.sendline('apt-get -o DPkg::Options::="--force-confnew" -y --force-yes install python-pip python-mysqldb') device.expect(device.prompt, timeout=60) + +def install_java(device): + '''Install java if not present.''' + device.sendline('\njavac -version') + try: + device.expect('javac 1.8', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee /etc/apt/sources.list.d/webupd8team-java.list') + device.expect(device.prompt) + device.sendline('echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list') + device.expect(device.prompt) + device.sendline('apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886') + device.expect(device.prompt) + device.sendline('apt-get update -y') + device.expect(device.prompt) + device.sendline('apt-get install oracle-java8-installer -y') + device.expect_exact("Do you accept the Oracle Binary Code license terms") + device.sendline('yes') + device.expect(device.prompt, timeout=60) + device.sendline('\njavac -version') + try: + device.expect('javac 1.8', timeout=5) + device.expect(device.prompt) + except: + device.sendline('sed -i \'s|JAVA_VERSION=8u144|JAVA_VERSION=8u152|\' /var/lib/dpkg/info/oracle-java8-installer.*') + device.sendline('sed -i \'s|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/|PARTNER_URL=http://download.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/|\' /var/lib/dpkg/info/oracle-java8-installer.*') + device.sendline('sed -i \'s|SHA256SUM_TGZ="e8a341ce566f32c3d06f6d0f0eeea9a0f434f538d22af949ae58bc86f2eeaae4"|SHA256SUM_TGZ="218b3b340c3f6d05d940b817d0270dfe0cfd657a636bad074dcabe0c111961bf"|\' /var/lib/dpkg/info/oracle-java8-installer.*') + device.sendline('sed -i \'s|J_DIR=jdk1.8.0_144|J_DIR=jdk1.8.0_152|\' /var/lib/dpkg/info/oracle-java8-installer.*') + device.sendline('apt-get install oracle-java8-installer -y') + device.expect(device.prompt, timeout=60) + +def install_telnet_server(device): + '''Install telnet server if not present.''' + device.sendline('\nxinetd -version') + try: + device.expect('xinetd Version 2.3', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install xinetd telnetd -y') + device.expect(device.prompt) + device.sendline('echo \"service telnet\" > /etc/xinetd.d/telnet') + device.sendline('echo "{" >> /etc/xinetd.d/telnet') + device.sendline('echo \"disable = no\" >> /etc/xinetd.d/telnet') + device.sendline('echo \"flags = REUSE\" >> /etc/xinetd.d/telnet') + device.sendline('echo \"socket_type = stream\" >> /etc/xinetd.d/telnet') + device.sendline('echo \"wait = no\" >> /etc/xinetd.d/telnet') + device.sendline('echo \"user = root\" >> /etc/xinetd.d/telnet') + device.sendline('echo \"server = /usr/sbin/in.telnetd\" >> /etc/xinetd.d/telnet') + device.sendline('echo \"log_on_failure += USERID\" >> /etc/xinetd.d/telnet') + device.sendline('echo \"}\" >> /etc/xinetd.d/telnet') + device.expect(device.prompt) + device.sendline('/etc/init.d/xinetd restart') + device.expect(device.prompt, timeout=60) + +def install_tcl(device): + '''Install tcl if not present.''' + device.sendline('\necho \'puts $tcl_patchLevel\' | tclsh') + try: + device.expect('8.6', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install tcl -y') + device.expect(device.prompt, timeout=60) + +def install_telnet_client(device): + '''Install telnet client if not present.''' + device.sendline('\ndpkg -l | grep telnet') + try: + device.expect('The telnet client', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install telnet -y') + device.expect(device.prompt, timeout=60) + +def install_expect(device): + '''Install expect if not present.''' + device.sendline('\nexpect -version') + try: + device.expect('expect version 5', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install expect -y') + device.expect(device.prompt, timeout=60) + +def install_wget(device): + '''Install wget if not present.''' + device.sendline('\nwget --version') + try: + device.expect('GNU Wget 1', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install wget -y') + device.expect(device.prompt, timeout=60) + +def install_ftp(device): + '''Install ftp if not present.''' + device.sendline('\ndpkg -l | grep ftp') + try: + device.expect('classical file transfer client', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install ftp -y') + device.expect(device.prompt, timeout=60) + +def install_xampp(device): + '''Install xampp if not present.''' + device.sendline('\n/opt/lampp/lampp --help') + try: + device.expect('Usage: lampp', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('wget https://www.apachefriends.org/xampp-files/5.6.20/xampp-linux-x64-5.6.20-0-installer.run') + device.expect(device.prompt) + device.sendline('chmod +x xampp-linux-x64-5.6.20-0-installer.run') + device.expect(device.prompt) + device.sendline('./xampp-linux-x64-5.6.20-0-installer.run') + device.expect_exact("XAMPP Developer Files") + device.sendline('n') + device.expect_exact("Is the selection above correct?") + device.sendline('y') + device.expect_exact("Press [Enter] to continue") + device.sendline('') + device.expect_exact("Do you want to continue?") + device.sendline('y') + device.expect(device.prompt, timeout=120) + device.sendline('/opt/lampp/lampp restart') + device.expect(device.prompt) + device.sendline('touch /opt/lampp/htdocs/test.txt') + device.expect(device.prompt, timeout=120) From 47e085c908cc857c66dbfcb68811b88d7fef1b8b Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 9 Nov 2017 08:25:21 -0800 Subject: [PATCH 062/947] tests: rootfs_boot: never fail the recover commands If these failed, this we would not close the board and we would attempt to run more tests later Signed-off-by: Matthew McClintock --- tests/rootfs_boot.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index e60fdbdb..72468f0a 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -154,10 +154,13 @@ def runTest(self): def recover(self): if self.__class__.__name__ == "RootFSBootTest": - board.sendline('ps auxfw || ps w') - board.expect(prompt) - board.sendline('iptables -S') - board.expect(prompt) + try: + board.sendline('ps auxfw || ps w') + board.expect(prompt) + board.sendline('iptables -S') + board.expect(prompt) + except: + pass board.close() lib.common.test_msg("Unable to boot, skipping remaining tests...") From da9653deab14d3b44a6481dfc514bed716cbd870 Mon Sep 17 00:00:00 2001 From: anil shetty Date: Wed, 8 Nov 2017 14:40:20 -0800 Subject: [PATCH 063/947] tests: tdkb_e2e: various cleanups - check for telnetd before installation - stop telnet server once the test is over - Move configurable parameter (windows wlan IP) to boardfarm config - Move creating new user code to devices/debian.py - cleanup. Signed-off-by: anil shetty --- devices/debian.py | 29 +++++++++++++++++++++++++++++ tests/lib/installers.py | 14 ++++++++++---- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 41305945..351cc183 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -400,6 +400,35 @@ def start_lan_client(self, gw="192.168.1.1"): pass self.expect(self.prompt) + def add_new_user(self, id, pwd): + '''Create new login ID. But check if already exists''' + self.sendline('\nadduser %s' % id) + try: + self.expect_exact("Enter new UNIX password", timeout=5) + self.sendline('%s' % pwd) + self.expect_exact("Retype new UNIX password") + self.sendline('%s' % pwd) + self.expect_exact("Full Name []") + self.sendline('%s' % id) + self.expect_exact("Room Number []") + self.sendline('1') + self.expect_exact("Work Phone []") + self.sendline('4081234567') + self.expect_exact("Home Phone []") + self.sendline('4081234567') + self.expect_exact("Other []") + self.sendline('4081234567') + self.expect_exact("Is the information correct?") + self.sendline('y') + self.expect(self.prompt) + self.sendline('usermod -aG sudo %s' % id) + self.expect(self.prompt) + # Remove "$" in the login prompt and replace it with "#" + self.sendline('sed -i \'s/\\w\\\$ /\\\w# /g\' //home/%s/.bashrc' % id) + self.expect(self.prompt, timeout=30) + except: + self.expect(self.prompt, timeout=30) + if __name__ == '__main__': # Example use dev = DebianBox('10.0.0.173', diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 486ea56c..3ba78f60 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -147,14 +147,22 @@ def install_java(device): device.expect(device.prompt, timeout=60) def install_telnet_server(device): - '''Install telnet server if not present.''' + '''Install xinetd/telnetd if not present.''' device.sendline('\nxinetd -version') try: device.expect('xinetd Version 2.3', timeout=5) device.expect(device.prompt) except: device.expect(device.prompt) - device.sendline('apt-get install xinetd telnetd -y') + device.sendline('apt-get install xinetd -y') + device.expect(device.prompt) + device.sendline('\ndpkg -l | grep telnetd') + try: + device.expect('The telnet server', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install telnetd -y') device.expect(device.prompt) device.sendline('echo \"service telnet\" > /etc/xinetd.d/telnet') device.sendline('echo "{" >> /etc/xinetd.d/telnet') @@ -166,8 +174,6 @@ def install_telnet_server(device): device.sendline('echo \"server = /usr/sbin/in.telnetd\" >> /etc/xinetd.d/telnet') device.sendline('echo \"log_on_failure += USERID\" >> /etc/xinetd.d/telnet') device.sendline('echo \"}\" >> /etc/xinetd.d/telnet') - device.expect(device.prompt) - device.sendline('/etc/init.d/xinetd restart') device.expect(device.prompt, timeout=60) def install_tcl(device): From de5736d57ff30795b8921cb46bb35a4b558d0497 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 16 Nov 2017 13:45:40 -0800 Subject: [PATCH 064/947] devices: rpi3: increase flashing timeout Hitting some weird issues with flashing taking a lot longer sometimes, so let's just increase it a large amount and see how things go Signed-off-by: Matthew McClintock --- devices/rpi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/rpi.py b/devices/rpi.py index da59be47..6b4ec67a 100644 --- a/devices/rpi.py +++ b/devices/rpi.py @@ -96,7 +96,7 @@ def flash_rootfs(self, ROOTFS): self.expect(self.uprompt) self.sendline('mmc write %s %s %s' % (self.uboot_ddr_addr, start, count)) self.expect_exact('mmc write %s %s %s' % (self.uboot_ddr_addr, start, count)) - self.expect(self.uprompt, timeout=120) + self.expect(self.uprompt, timeout=480) def flash_linux(self, KERNEL): common.print_bold("\n===== Flashing linux =====\n") From 61fcd880d0fe226d841ba4c56e2bfaa36071e237 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 21 Nov 2017 15:17:50 -0600 Subject: [PATCH 065/947] devices: rpi: add support for 64-bit boot with booti command uImage is not supported so we need to fall back to the booti command. Signed-off-by: Matthew McClintock --- devices/rpi.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/devices/rpi.py b/devices/rpi.py index 6b4ec67a..0c768161 100644 --- a/devices/rpi.py +++ b/devices/rpi.py @@ -7,7 +7,7 @@ import common import openwrt_router - +import os class RPI(openwrt_router.OpenWrtRouter): ''' @@ -104,7 +104,8 @@ def flash_linux(self, KERNEL): filename = self.prepare_file(KERNEL) size = self.tftp_get_file_uboot(self.uboot_ddr_addr, filename) - self.sendline('fatwrite mmc 0 %s uImage $filesize' % self.uboot_ddr_addr) + self.kernel_file = os.path.basename(KERNEL) + self.sendline('fatwrite mmc 0 %s %s $filesize' % (self.kernel_file, self.uboot_ddr_addr)) self.expect(self.uprompt) def wait_for_linux(self): @@ -135,7 +136,7 @@ def boot_linux(self, rootfs=None, bootargs=""): self.sendline('setenv bootargs "$bcm_bootargs %s"' % bootargs) self.expect(self.uprompt) - self.sendline("setenv bootcmd 'fatload mmc 0 ${kernel_addr_r} uImage; bootm ${kernel_addr_r} - ${fdt_addr}'") + self.sendline("setenv bootcmd 'fatload mmc 0 ${kernel_addr_r} %s; bootm ${kernel_addr_r} - ${fdt_addr}; booti ${kernel_addr_r} - ${fdt_addr}'" % self.kernel_file) self.expect(self.uprompt) self.sendline('saveenv') self.expect(self.uprompt) From 24e59ce982322a3ae6699c088c401e2484e9e211 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 5 Dec 2017 10:53:02 -0800 Subject: [PATCH 066/947] gitignore: remove log filter Signed-off-by: Matthew McClintock --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 7c517bb8..73fe47ce 100644 --- a/.gitignore +++ b/.gitignore @@ -50,7 +50,6 @@ coverage.xml *.pot # Django stuff: -*.log local_settings.py # Sphinx documentation From 20f4add9544c4891839c1051d1befa959b22d419 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 5 Dec 2017 13:55:22 -0800 Subject: [PATCH 067/947] reference: add reference systemd output logs Signed-off-by: Matthew McClintock --- reference/master-oe22_rpi3-musl-systemd.log | 4939 +++++++++++++++++++ reference/master-oe22_rpi3-systemd.log | 4893 ++++++++++++++++++ 2 files changed, 9832 insertions(+) create mode 100644 reference/master-oe22_rpi3-musl-systemd.log create mode 100644 reference/master-oe22_rpi3-systemd.log diff --git a/reference/master-oe22_rpi3-musl-systemd.log b/reference/master-oe22_rpi3-musl-systemd.log new file mode 100644 index 00000000..b8ae38cd --- /dev/null +++ b/reference/master-oe22_rpi3-musl-systemd.log @@ -0,0 +1,4939 @@ + +-- Logs begin at Fri 2017-12-01 11:35:26 GMT, end at Tue 2017-12-05 22:04:02 GMT. -- +Dec 01 11:35:26 RaspberryPi-Gateway systemd-journald[135]: Runtime journal (/run/log/journal/) is 2.0M, max 64.0M, 62.0M free. +-- Subject: Disk space used by the journal +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Runtime journal (/run/log/journal/) is currently using 2.0M. +-- Maximum allowed usage is set to 64.0M. +-- Leaving at least 69.4M free (of currently available 460.6M of disk space). +-- Enforced usage limit is thus 64.0M, of which 62.0M are still available. +-- +-- The limits controlling how much disk space is used by the journal may +-- be configured with SystemMaxUse=, SystemKeepFree=, SystemMaxFileSize=, +-- RuntimeMaxUse=, RuntimeKeepFree=, RuntimeMaxFileSize= settings in +-- /etc/systemd/journald.conf. See journald.conf(5) for details. +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Booting Linux on physical CPU 0x0 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing cgroup subsys cpuset +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing cgroup subsys cpu +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing cgroup subsys cpuacct +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Linux version 4.4.50 (andre@chippy1) (gcc version 6.4.0 (GCC) ) #1 SMP Fri Dec 1 03:42:12 PST 2017 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d +Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Machine model: Raspberry Pi 3 Model B Rev 1.2 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: cma: Reserved 8 MiB at 0x3a800000 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Memory policy: Data cache writealloc +Dec 01 11:35:26 RaspberryPi-Gateway kernel: On node 0 totalpages: 241664 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: free_area_init_node: node 0, pgdat 808f0f40, node_mem_map b9fa6000 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Normal zone: 2124 pages used for memmap +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Normal zone: 0 pages reserved +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Normal zone: 241664 pages, LIFO batch:31 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_smp_init_cpus] enter (9540->f3003010) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_smp_init_cpus] ncores=4 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: PERCPU: Embedded 13 pages/cpu @b9f62000 s22540 r8192 d22516 u53248 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: pcpu-alloc: s22540 r8192 d22516 u53248 alloc=13*4096 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Built 1 zonelists in Zone order, mobility grouping on. Total pages: 239540 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Kernel command line: 8250.nr_uarts=1 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708_fb.fbswap=1 dma.dmachans=0x7f35 bcm2709.boardrev=0xa22082 bcm2709.serial=0x97016bd5 bcm2709.uart_clock=48000000 smsc95xx.macaddr=B8:27:EB:01:6B:D5 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait None +Dec 01 11:35:26 RaspberryPi-Gateway kernel: PID hash table entries: 4096 (order: 2, 16384 bytes) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Memory: 938884K/966656K available (6363K kernel code, 432K rwdata, 1884K rodata, 476K init, 764K bss, 19580K reserved, 8192K cma-reserved) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Virtual kernel memory layout: + vector : 0xffff0000 - 0xffff1000 ( 4 kB) + fixmap : 0xffc00000 - 0xfff00000 (3072 kB) + vmalloc : 0xbb800000 - 0xff800000 (1088 MB) + lowmem : 0x80000000 - 0xbb000000 ( 944 MB) + modules : 0x7f000000 - 0x80000000 ( 16 MB) + .text : 0x80008000 - 0x80816098 (8249 kB) + .init : 0x80817000 - 0x8088e000 ( 476 kB) + .data : 0x8088e000 - 0x808fa2a8 ( 433 kB) + .bss : 0x808fd000 - 0x809bc114 ( 765 kB) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Hierarchical RCU implementation. +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Build-time adjustment of leaf fanout to 32. +Dec 01 11:35:26 RaspberryPi-Gateway kernel: NR_IRQS:16 nr_irqs:16 16 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Architected cp15 timer(s) running at 19.20MHz (phys). +Dec 01 11:35:26 RaspberryPi-Gateway kernel: clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns +Dec 01 11:35:26 RaspberryPi-Gateway kernel: sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Switching to timer-based delay loop, resolution 52ns +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Console: colour dummy device 80x30 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: pid_max: default: 32768 minimum: 301 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Disabling cpuset control group subsystem +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing cgroup subsys io +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing cgroup subsys memory +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing cgroup subsys devices +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing cgroup subsys freezer +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing cgroup subsys net_cls +Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU: Testing write buffer coherency: ok +Dec 01 11:35:26 RaspberryPi-Gateway kernel: ftrace: allocating 21146 entries in 63 pages +Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU0: update cpu_capacity 1024 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_smp_prepare_cpus] enter +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Setting up static identity map for 0x8240 - 0x8274 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_boot_secondary] cpu:1 started (0) 17 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_secondary_init] enter cpu:1 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU1: update cpu_capacity 1024 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_boot_secondary] cpu:2 started (0) 18 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_secondary_init] enter cpu:2 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU2: update cpu_capacity 1024 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU2: thread -1, cpu 2, socket 0, mpidr 80000002 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_boot_secondary] cpu:3 started (0) 18 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_secondary_init] enter cpu:3 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU3: update cpu_capacity 1024 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU3: thread -1, cpu 3, socket 0, mpidr 80000003 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Brought up 4 CPUs +Dec 01 11:35:26 RaspberryPi-Gateway kernel: SMP: Total of 4 processors activated (153.60 BogoMIPS). +Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU: All CPU(s) started in HYP mode. +Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU: Virtualization extensions available. +Dec 01 11:35:26 RaspberryPi-Gateway kernel: devtmpfs: initialized +Dec 01 11:35:26 RaspberryPi-Gateway kernel: VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 4 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns +Dec 01 11:35:26 RaspberryPi-Gateway kernel: pinctrl core: initialized pinctrl subsystem +Dec 01 11:35:26 RaspberryPi-Gateway kernel: NET: Registered protocol family 16 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: DMA: preallocated 4096 KiB pool for atomic coherent allocations +Dec 01 11:35:26 RaspberryPi-Gateway kernel: bcm2709: Mini UART enabled +Dec 01 11:35:26 RaspberryPi-Gateway kernel: hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers. +Dec 01 11:35:26 RaspberryPi-Gateway kernel: hw-breakpoint: maximum watchpoint size is 8 bytes. +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Serial: AMBA PL011 UART driver +Dec 01 11:35:26 RaspberryPi-Gateway kernel: uart-pl011 3f201000.uart: could not find pctldev for node /soc/gpio@7e200000/uart0_pins, deferring probe +Dec 01 11:35:26 RaspberryPi-Gateway kernel: bcm2835-mbox 3f00b880.mailbox: mailbox enabled +Dec 01 11:35:26 RaspberryPi-Gateway kernel: bcm2835-dma 3f007000.dma: DMA legacy API manager at f3007000, dmachans=0x1 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: SCSI subsystem initialized +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usbcore: registered new interface driver usbfs +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usbcore: registered new interface driver hub +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usbcore: registered new device driver usb +Dec 01 11:35:26 RaspberryPi-Gateway kernel: raspberrypi-firmware soc:firmware: Attached to firmware from 2017-04-05 11:49 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: clocksource: Switched to clocksource arch_sys_counter +Dec 01 11:35:26 RaspberryPi-Gateway kernel: FS-Cache: Loaded +Dec 01 11:35:26 RaspberryPi-Gateway kernel: CacheFiles: Loaded +Dec 01 11:35:26 RaspberryPi-Gateway kernel: NET: Registered protocol family 2 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: TCP established hash table entries: 8192 (order: 3, 32768 bytes) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: TCP bind hash table entries: 8192 (order: 4, 65536 bytes) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: TCP: Hash tables configured (established 8192 bind 8192) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: UDP hash table entries: 512 (order: 2, 16384 bytes) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: NET: Registered protocol family 1 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: RPC: Registered named UNIX socket transport module. +Dec 01 11:35:26 RaspberryPi-Gateway kernel: RPC: Registered udp transport module. +Dec 01 11:35:26 RaspberryPi-Gateway kernel: RPC: Registered tcp transport module. +Dec 01 11:35:26 RaspberryPi-Gateway kernel: RPC: Registered tcp NFSv4.1 backchannel transport module. +Dec 01 11:35:26 RaspberryPi-Gateway kernel: hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available +Dec 01 11:35:26 RaspberryPi-Gateway kernel: futex hash table entries: 1024 (order: 4, 65536 bytes) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: VFS: Disk quotas dquot_6.6.0 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: FS-Cache: Netfs 'nfs' registered for caching +Dec 01 11:35:26 RaspberryPi-Gateway kernel: NFS: Registering the id_resolver key type +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Key type id_resolver registered +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Key type id_legacy registered +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: io scheduler noop registered +Dec 01 11:35:26 RaspberryPi-Gateway kernel: io scheduler deadline registered +Dec 01 11:35:26 RaspberryPi-Gateway kernel: io scheduler cfq registered (default) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: BCM2708FB: allocated DMA memory fac10000 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: BCM2708FB: allocated DMA channel 0 @ f3007000 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Console: switching to colour frame buffer device 82x26 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled +Dec 01 11:35:26 RaspberryPi-Gateway kernel: console [ttyS0] disabled +Dec 01 11:35:26 RaspberryPi-Gateway kernel: 3f215040.uart: ttyS0 at MMIO 0x3f215040 (irq = 59, base_baud = 31250000) is a 16550 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: console [ttyS0] enabled +Dec 01 11:35:26 RaspberryPi-Gateway kernel: bcm2835-rng 3f104000.rng: hwrng registered +Dec 01 11:35:26 RaspberryPi-Gateway kernel: vc-cma: Videocore CMA driver +Dec 01 11:35:26 RaspberryPi-Gateway kernel: vc-cma: vc_cma_base = 0x00000000 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: vc-cma: vc_cma_size = 0x00000000 (0 MiB) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: vc-cma: vc_cma_initial = 0x00000000 (0 MiB) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: vc-mem: phys_addr:0x00000000 mem_base=0x3dc00000 mem_size:0x3f000000(1008 MiB) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: brd: module loaded +Dec 01 11:35:26 RaspberryPi-Gateway kernel: loop: module loaded +Dec 01 11:35:26 RaspberryPi-Gateway kernel: vchiq: vchiq_init_state: slot_zero = 0xbac80000, is_master = 0 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Loading iSCSI transport class v2.0-870. +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usbcore: registered new interface driver smsc95xx +Dec 01 11:35:26 RaspberryPi-Gateway kernel: dwc_otg: version 3.00a 10-AUG-2012 (platform bus) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Core Release: 2.80a +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Setting default values for core params +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Finished setting default values for core params +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Using Buffer DMA mode +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Periodic Transfer Interrupt Enhancement - disabled +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Multiprocessor Interrupt Enhancement - disabled +Dec 01 11:35:26 RaspberryPi-Gateway kernel: OTG VER PARAM: 0, OTG VER FLAG: 0 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Dedicated Tx FIFOs mode +Dec 01 11:35:26 RaspberryPi-Gateway kernel: WARN::dwc_otg_hcd_init:1047: FIQ DMA bounce buffers: virt = 0xbac04000 dma = 0xfac04000 len=9024 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: FIQ FSM acceleration enabled for : + Non-periodic Split Transactions + Periodic Split Transactions + High-Speed Isochronous Endpoints + Interrupt/Control Split Transaction hack enabled +Dec 01 11:35:26 RaspberryPi-Gateway kernel: dwc_otg: Microframe scheduler enabled +Dec 01 11:35:26 RaspberryPi-Gateway kernel: WARN::hcd_init_fiq:415: FIQ on core 1 at 0x8044accc +Dec 01 11:35:26 RaspberryPi-Gateway kernel: WARN::hcd_init_fiq:416: FIQ ASM at 0x8044b02c length 36 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: WARN::hcd_init_fiq:441: MPHI regs_base at 0xbb87e000 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: dwc_otg 3f980000.usb: DWC OTG Controller +Dec 01 11:35:26 RaspberryPi-Gateway kernel: dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: dwc_otg 3f980000.usb: irq 62, io mem 0x00000000 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Init: Port Power? op_state=1 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Init: Power Port (0) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb usb1: Product: DWC OTG Controller +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb usb1: Manufacturer: Linux 4.4.50 dwc_otg_hcd +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb usb1: SerialNumber: 3f980000.usb +Dec 01 11:35:26 RaspberryPi-Gateway kernel: hub 1-0:1.0: USB hub found +Dec 01 11:35:26 RaspberryPi-Gateway kernel: hub 1-0:1.0: 1 port detected +Dec 01 11:35:26 RaspberryPi-Gateway kernel: dwc_otg: FIQ enabled +Dec 01 11:35:26 RaspberryPi-Gateway kernel: dwc_otg: NAK holdoff enabled +Dec 01 11:35:26 RaspberryPi-Gateway kernel: dwc_otg: FIQ split-transaction FSM enabled +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Module dwc_common_port init +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usbcore: registered new interface driver usb-storage +Dec 01 11:35:26 RaspberryPi-Gateway kernel: mousedev: PS/2 mouse device common for all mice +Dec 01 11:35:26 RaspberryPi-Gateway kernel: bcm2835-cpufreq: min=600000 max=1200000 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: sdhci: Secure Digital Host Controller Interface driver +Dec 01 11:35:26 RaspberryPi-Gateway kernel: sdhci: Copyright(c) Pierre Ossman +Dec 01 11:35:26 RaspberryPi-Gateway kernel: sdhost: log_buf @ bac07000 (fac07000) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc0: sdhost-bcm2835 loaded - DMA enabled (>1) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc-bcm2835 3f300000.mmc: mmc_debug:0 mmc_debug2:0 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc-bcm2835 3f300000.mmc: DMA channel allocated +Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc0: host does not support reading read-only switch, assuming write-enable +Dec 01 11:35:26 RaspberryPi-Gateway kernel: sdhci-pltfm: SDHCI platform and OF driver helper +Dec 01 11:35:26 RaspberryPi-Gateway kernel: ledtrig-cpu: registered to indicate activity on CPUs +Dec 01 11:35:26 RaspberryPi-Gateway kernel: hidraw: raw HID events driver (C) Jiri Kosina +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usbcore: registered new interface driver usbhid +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usbhid: USB HID core driver +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing XFRM netlink socket +Dec 01 11:35:26 RaspberryPi-Gateway kernel: NET: Registered protocol family 17 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Key type dns_resolver registered +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Registering SWP/SWPB emulation handler +Dec 01 11:35:26 RaspberryPi-Gateway kernel: registered taskstats version 1 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: vc-sm: Videocore shared memory driver +Dec 01 11:35:26 RaspberryPi-Gateway kernel: [vc_sm_connected_init]: start +Dec 01 11:35:26 RaspberryPi-Gateway kernel: [vc_sm_connected_init]: end - returning 0 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: of_cfs_init +Dec 01 11:35:26 RaspberryPi-Gateway kernel: of_cfs_init: OK +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Indeed it is in host mode hprt0 = 00021501 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc0: new high speed SDHC card at address 0001 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmcblk0: mmc0:0001 EB1QT 29.8 GiB +Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmcblk0: p1 p2 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: VFS: Mounted root (ext4 filesystem) readonly on device 179:2. +Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc1: queuing unknown CIS tuple 0x80 (2 bytes) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc1: queuing unknown CIS tuple 0x80 (3 bytes) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc1: queuing unknown CIS tuple 0x80 (3 bytes) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc1: queuing unknown CIS tuple 0x80 (7 bytes) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: devtmpfs: mounted +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Freeing unused kernel memory: 476K (80817000 - 8088e000) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc1: new high speed SDIO card at address 0001 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1: new high-speed USB device number 2 using dwc_otg +Dec 01 11:35:26 RaspberryPi-Gateway kernel: Indeed it is in host mode hprt0 = 00001101 +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: System time before build time, advancing clock. +Dec 01 11:35:26 RaspberryPi-Gateway kernel: NET: Registered protocol family 10 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 40 bits of entropy available) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1: New USB device found, idVendor=0424, idProduct=9514 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: hub 1-1:1.0: USB hub found +Dec 01 11:35:26 RaspberryPi-Gateway kernel: hub 1-1:1.0: 5 ports detected +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: systemd 230 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN) +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Detected architecture arm. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Set hostname to . +Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 53 bits of entropy available) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 59 bits of entropy available) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 59 bits of entropy available) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 61 bits of entropy available) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.1: new high-speed USB device number 3 using dwc_otg +Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: smsc95xx v1.0.4 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:01:6b:d5 +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Created slice System Slice. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Listening on /dev/initctl Compatibility Named Pipe. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Listening on Journal Socket. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting Apply Kernel Variables... +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting Create list of required static device nodes for the current kernel... +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.5: new high-speed USB device number 4 using dwc_otg +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Listening on udev Control Socket. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Mounting Debug File System... +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Mounting Configuration File System... +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Listening on udev Kernel Socket. +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.5: New USB device found, idVendor=13b1, idProduct=0041 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=6 +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.5: Product: Linksys USB3GIGV1 +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Reached target Network. +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.5: Manufacturer: Linksys +Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.5: SerialNumber: 000001000000 +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Created slice system-getty.slice. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Mounting Temporary Directory... +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting Remount Root and Kernel File Systems... +Dec 01 11:35:26 RaspberryPi-Gateway kernel: EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Reached target Remote File Systems. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Listening on Journal Socket (/dev/log). +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Forward Password Requests to Wall Directory Watch. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Mounting POSIX Message Queue File System... +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Listening on Syslog Socket. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting Journal Service... +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Created slice User and Session Slice. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Reached target Slices. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Dispatch Password Requests to Console Directory Watch. +Dec 01 11:35:26 RaspberryPi-Gateway systemd-journald[135]: Journal started +-- Subject: The journal has been started +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- The system journal process has started up, opened the journal +-- files for writing and is now ready to process requests. +Dec 01 11:35:26 RaspberryPi-Gateway systemd-sysctl[104]: Couldn't write '90' to 'net/ipv4/netfilter/ip_conntrack_udp_timeout', ignoring: No such file or directory +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting Setup Virtual Console... +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Reached target Swap. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Created slice system-serial\x2dgetty.slice. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Mounted Debug File System. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Mounted Configuration File System. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Mounted POSIX Message Queue File System. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Mounted Temporary Directory. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Journal Service. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Apply Kernel Variables. +-- Subject: Unit systemd-sysctl.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-sysctl.service has finished starting up. +-- +-- The start-up result is done. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Create list of required static device nodes for the current kernel. +-- Subject: Unit kmod-static-nodes.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit kmod-static-nodes.service has finished starting up. +-- +-- The start-up result is done. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Remount Root and Kernel File Systems. +-- Subject: Unit systemd-remount-fs.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-remount-fs.service has finished starting up. +-- +-- The start-up result is done. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Setup Virtual Console. +-- Subject: Unit systemd-vconsole-setup.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-vconsole-setup.service has finished starting up. +-- +-- The start-up result is done. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting Load/Save Random Seed... +-- Subject: Unit systemd-random-seed.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-random-seed.service has begun starting up. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting udev Coldplug all Devices... +-- Subject: Unit systemd-udev-trigger.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-udev-trigger.service has begun starting up. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting Create Static Device Nodes in /dev... +-- Subject: Unit systemd-tmpfiles-setup-dev.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-tmpfiles-setup-dev.service has begun starting up. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting Flush Journal to Persistent Storage... +-- Subject: Unit systemd-journal-flush.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-journal-flush.service has begun starting up. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Load/Save Random Seed. +-- Subject: Unit systemd-random-seed.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-random-seed.service has finished starting up. +-- +-- The start-up result is done. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Create Static Device Nodes in /dev. +-- Subject: Unit systemd-tmpfiles-setup-dev.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-tmpfiles-setup-dev.service has finished starting up. +-- +-- The start-up result is done. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting udev Kernel Device Manager... +-- Subject: Unit systemd-udevd.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-udevd.service has begun starting up. +Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Reached target Local File Systems (Pre). +-- Subject: Unit local-fs-pre.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit local-fs-pre.target has finished starting up. +-- +-- The start-up result is done. +Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Mounting /var/volatile... +-- Subject: Unit var-volatile.mount has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit var-volatile.mount has begun starting up. +Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Mounted /var/volatile. +-- Subject: Unit var-volatile.mount has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit var-volatile.mount has finished starting up. +-- +-- The start-up result is done. +Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Started udev Kernel Device Manager. +-- Subject: Unit systemd-udevd.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-udevd.service has finished starting up. +-- +-- The start-up result is done. +Dec 01 11:35:27 RaspberryPi-Gateway [164]: checking bus 1, device 4: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5" +Dec 01 11:35:27 RaspberryPi-Gateway [164]: bus: 1, device: 4 was not an MTP device +Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Reached target Local File Systems. +-- Subject: Unit local-fs.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit local-fs.target has finished starting up. +-- +-- The start-up result is done. +Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Started Flush Journal to Persistent Storage. +-- Subject: Unit systemd-journal-flush.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-journal-flush.service has finished starting up. +-- +-- The start-up result is done. +Dec 01 11:35:27 RaspberryPi-Gateway kernel: cdc_ether 1-1.5:2.0 eth1: register 'cdc_ether' at usb-3f980000.usb-1.5, CDC Ethernet Device, 94:10:3e:b8:fe:9d +Dec 01 11:35:27 RaspberryPi-Gateway kernel: usbcore: registered new interface driver cdc_ether +Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Starting Create Volatile Files and Directories... +-- Subject: Unit systemd-tmpfiles-setup.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-tmpfiles-setup.service has begun starting up. +Dec 01 11:35:27 RaspberryPi-Gateway systemd-tmpfiles[180]: "/var/tmp" already exists and is not a directory. +Dec 01 11:35:27 RaspberryPi-Gateway systemd-tmpfiles[180]: "/var/log" already exists and is not a directory. +Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Started Create Volatile Files and Directories. +-- Subject: Unit systemd-tmpfiles-setup.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-tmpfiles-setup.service has finished starting up. +-- +-- The start-up result is done. +Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Starting Network Time Synchronization... +-- Subject: Unit systemd-timesyncd.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-timesyncd.service has begun starting up. +Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Starting Update UTMP about System Boot/Shutdown... +-- Subject: Unit systemd-update-utmp.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-update-utmp.service has begun starting up. +Dec 01 11:35:27 RaspberryPi-Gateway systemd-update-utmp[185]: Failed to write utmp record: Resource temporarily unavailable +Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: systemd-update-utmp.service: Main process exited, code=exited, status=1/FAILURE +Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Failed to start Update UTMP about System Boot/Shutdown. +-- Subject: Unit systemd-update-utmp.service has failed +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-update-utmp.service has failed. +-- +-- The result is failed. +Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Dependency failed for Update UTMP about System Runlevel Changes. +-- Subject: Unit systemd-update-utmp-runlevel.service has failed +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-update-utmp-runlevel.service has failed. +-- +-- The result is dependency. +Dec 01 11:35:27 RaspberryPi-Gateway kernel: lirc_dev: IR Remote Control driver registered, major 244 +Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: systemd-update-utmp-runlevel.service: Job systemd-update-utmp-runlevel.service/start failed with result 'dependency'. +Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: systemd-update-utmp.service: Unit entered failed state. +Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: systemd-update-utmp.service: Failed with result 'exit-code'. +Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Started udev Coldplug all Devices. +-- Subject: Unit systemd-udev-trigger.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-udev-trigger.service has finished starting up. +-- +-- The start-up result is done. +Dec 01 11:35:27 RaspberryPi-Gateway kernel: lirc_rpi: module is from the staging directory, the quality is unknown, you have been warned. +Dec 01 11:35:27 RaspberryPi-Gateway kernel: bcm2835-wdt 3f100000.watchdog: Broadcom BCM2835 watchdog timer +Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Found device /dev/ttyAMA0. +-- Subject: Unit dev-ttyAMA0.device has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit dev-ttyAMA0.device has finished starting up. +-- +-- The start-up result is done. +Dec 01 11:35:27 RaspberryPi-Gateway kernel: gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000 +Dec 01 11:35:27 RaspberryPi-Gateway systemd-timesyncd[183]: System clock time unset or jumped backwards, restoring from recorded timestamp: Tue 2017-12-05 22:01:55 GMT +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Time has been changed +-- Subject: Time change +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- The system clock has been changed to REALTIME microseconds after January 1st, 1970. +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Found device /dev/ttyS0. +-- Subject: Unit dev-ttyS0.device has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit dev-ttyS0.device has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started Network Time Synchronization. +-- Subject: Unit systemd-timesyncd.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-timesyncd.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway [206]: checking bus 1, device 3: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1" +Dec 05 22:01:55 RaspberryPi-Gateway [207]: checking bus 1, device 4: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5" +Dec 05 22:01:55 RaspberryPi-Gateway [206]: bus: 1, device: 3 was not an MTP device +Dec 05 22:01:55 RaspberryPi-Gateway [207]: bus: 1, device: 4 was not an MTP device +Dec 05 22:01:55 RaspberryPi-Gateway kernel: random: nonblocking pool is initialized +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Reached target System Time Synchronized. +-- Subject: Unit time-sync.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit time-sync.target has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Reached target System Initialization. +-- Subject: Unit sysinit.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit sysinit.target has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Listening on D-Bus System Message Bus Socket. +-- Subject: Unit dbus.socket has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit dbus.socket has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started WiFi Initialized Path. +-- Subject: Unit wifiinitialized.path has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit wifiinitialized.path has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started RPI WIFI Initialized Path. +-- Subject: Unit rpiwifiinitialized.path has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit rpiwifiinitialized.path has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started Daily Cleanup of Temporary Directories. +-- Subject: Unit systemd-tmpfiles-clean.timer has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-tmpfiles-clean.timer has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway kernel: usbcore: registered new interface driver brcmfmac +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Reached target Timers. +-- Subject: Unit timers.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit timers.target has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Listening on RPCbind Server Activation Socket. +-- Subject: Unit rpcbind.socket has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit rpcbind.socket has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Reached target Sockets. +-- Subject: Unit sockets.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit sockets.target has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started CcspCrSsp Restart Occurred Path. +-- Subject: Unit crResetDetect.path has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit crResetDetect.path has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started Check RPI Wifi Support Initialized Path. +-- Subject: Unit checkrpiwifisupport.path has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit checkrpiwifisupport.path has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway kernel: brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Aug 29 2016 20:48:16 version 7.45.41.26 (r640327) FWID 01-4527cfab +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Reached target Paths. +-- Subject: Unit paths.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit paths.target has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway kernel: brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Reached target Basic System. +-- Subject: Unit basic.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit basic.target has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started Kernel Logging Service. +-- Subject: Unit busybox-klogd.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit busybox-klogd.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: klogd started: BusyBox v1.24.1 (2017-12-01 03:45:35 PST) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Booting Linux on physical CPU 0x0 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Initializing cgroup subsys cpuset +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Starting PsmSsp service... +-- Subject: Unit PsmSsp.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit PsmSsp.service has begun starting up. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Initializing cgroup subsys cpu +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Initializing cgroup subsys cpuacct +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Linux version 4.4.50 (andre@chippy1) (gcc version 6.4.0 (GCC) ) #1 SMP Fri Dec 1 03:42:12 PST 2017 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started D-Bus System Message Bus. +-- Subject: Unit dbus.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit dbus.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Machine model: Raspberry Pi 3 Model B Rev 1.2 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] cma: Reserved 8 MiB at 0x3a800000 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Memory policy: Data cache writealloc +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] On node 0 totalpages: 241664 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] free_area_init_node: node 0, pgdat 808f0f40, node_mem_map b9fa6000 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Normal zone: 2124 pages used for memmap +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Normal zone: 0 pages reserved +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Normal zone: 241664 pages, LIFO batch:31 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] [bcm2709_smp_init_cpus] enter (9540->f3003010) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] [bcm2709_smp_init_cpus] ncores=4 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] PERCPU: Embedded 13 pages/cpu @b9f62000 s22540 r8192 d22516 u53248 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] pcpu-alloc: s22540 r8192 d22516 u53248 alloc=13*4096 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 239540 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Kernel command line: 8250.nr_uarts=1 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708_fb.fbswap=1 dma.dmachans=0x7f35 bcm2709.boardrev=0xa22082 bcm2709.serial=0x97016bd5 bcm2709.uart_clock=48000000 smsc95xx.macaddr=B8:27:EB:01:6B:D5 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait None +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Memory: 938884K/966656K available (6363K kernel code, 432K rwdata, 1884K rodata, 476K init, 764K bss, 19580K reserved, 8192K cma-reserved) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Virtual kernel memory layout: +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] vmalloc : 0xbb800000 - 0xff800000 (1088 MB) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] lowmem : 0x80000000 - 0xbb000000 ( 944 MB) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] modules : 0x7f000000 - 0x80000000 ( 16 MB) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] .text : 0x80008000 - 0x80816098 (8249 kB) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] .init : 0x80817000 - 0x8088e000 ( 476 kB) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] .data : 0x8088e000 - 0x808fa2a8 ( 433 kB) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] .bss : 0x808fd000 - 0x809bc114 ( 765 kB) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Hierarchical RCU implementation. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Build-time adjustment of leaf fanout to 32. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] NR_IRQS:16 nr_irqs:16 16 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Architected cp15 timer(s) running at 19.20MHz (phys). +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idl[ 125.271312] CcspLMLite[3489]: LMlite-CLIENT <963> : Connected Mac = 30:30:31:31:30:31 +e_ns: 440795202767 ns +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000008] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000023] Switching to timer-based delay loop, resolution 52ns +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000278] Console: colour dummy device 80x30 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000318] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000341] pid_max: default: 32768 minimum: 301 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000649] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000665] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.001608] Disabling cpuset control group subsystem +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.001643] Initializing cgroup subsys io +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.001673] Initializing cgroup subsys memory +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.001713] Initializing cgroup subsys devices +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.001734] Initializing cgroup subsys freezer +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.001753] Initializing cgroup subsys net_cls +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.001801] CPU: Testing write buffer coherency: ok +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.001861] ftrace: allocating 21146 entries in 63 pages +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.053070] CPU0: update cpu_capacity 1024 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.053102] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.053114] [bcm2709_smp_prepare_cpus] enter +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.053262] Setting up static identity map for 0x8240 - 0x8274 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.054933] [bcm2709_boot_secondary] cpu:1 started (0) 17 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.055177] [bcm2709_secondary_init] enter cpu:1 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.055220] CPU1: update cpu_capacity 1024 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.055226] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.055602] [bcm2709_boot_secondary] cpu:2 started (0) 18 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.055788] [bcm2709_secondary_init] enter cpu:2 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.055808] CPU2: update cpu_capacity 1024 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.055814] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.056170] [bcm2709_boot_secondary] cpu:3 started (0) 18 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.056311] [bcm2709_secondary_init] enter cpu:3 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.056331] CPU3: update cpu_capacity 1024 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.056336] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.056396] Brought up 4 CPUs +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.056418] SMP: Total of 4 processors activated (153.60 BogoMIPS). +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.056426] CPU: All CPU(s) started in HYP mode. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.056433] CPU: Virtualization extensions available. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.057044] devtmpfs: initialized +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.067729] VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 4 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.068054] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.068776] pinctrl core: initialized pinctrl subsystem +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.069299] NET: Registered protocol family 16 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.074455] DMA: preallocated 4096 KiB pool for atomic coherent allocations +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.081585] bcm2709: Mini UART enabled +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.081631] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.081642] hw-breakpoint: maximum watchpoint size is 8 bytes. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.081792] Serial: AMBA PL011 UART driver +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.081926] uart-pl011 3f201000.uart: could not find pctldev for node /soc/gpio@7e200000/uart0_pins, deferring probe +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.082091] bcm2835-mbox 3f00b880.mailbox: mailbox enabled +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.145143] bcm2835-dma 3f007000.dma: DMA legacy API manager at f3007000, dmachans=0x1 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.145705] SCSI subsystem initialized +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.145892] usbcore: registered new interface driver usbfs +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.145969] usbcore: registered new interface driver hub +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.146060] usbcore: registered new device driver usb +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.152594] raspberrypi-firmware soc:firmware: Attached to firmware from 2017-04-05 11:49 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.163951] clocksource: Switched to clocksource arch_sys_counter +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.209897] FS-Cache: Loaded +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.210174] CacheFiles: Loaded +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.222249] NET: Registered protocol family 2 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.223094] TCP established hash table entries: 8192 (order: 3, 32768 bytes) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.223208] TCP bind hash table entries: 8192 (order: 4, 65536 bytes) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.223396] TCP: Hash tables configured (established 8192 bind 8192) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.223493] UDP hash table entries: 512 (order: 2, 16384 bytes) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.223539] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.223764] NET: Registered protocol family 1 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.224098] RPC: Registered named UNIX socket transport module. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.224108] RPC: Registered udp transport module. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.224116] RPC: Registered tcp transport module. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.224124] RPC: Registered tcp NFSv4.1 backchannel transport module. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.225072] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.226370] futex hash table entries: 1024 (order: 4, 65536 bytes) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.239430] VFS: Disk quotas dquot_6.6.0 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.239738] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.241838] FS-Cache: Netfs 'nfs' registered for caching +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.242713] NFS: Registering the id_resolver key type +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.242757] Key type id_resolver registered +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.242766] Key type id_legacy registered +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.245053] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.245185] io scheduler noop registered +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.245205] io scheduler deadline registered +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.245258] io scheduler cfq registered (default) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.247741] BCM2708FB: allocated DMA memory fac10000 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.247768] BCM2708FB: allocated DMA channel 0 @ f3007000 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.252802] Console: switching to colour frame buffer device 82x26 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.330474] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.331873] console [ttyS0] disabled +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.331938] 3f215040.uart: ttyS0 at MMIO 0x3f215040 (irq = 59, base_baud = 31250000) is a 16550 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.050837] console [ttyS0] enabled +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.055682] bcm2835-rng 3f104000.rng: hwrng registered +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.060991] vc-cma: Videocore CMA driver +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.064987] vc-cma: vc_cma_base = 0x00000000 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.069757] vc-cma: vc_cma_size = 0x00000000 (0 MiB) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.075243] vc-cma: vc_cma_initial = 0x00000000 (0 MiB) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.080935] vc-mem: phys_addr:0x00000000 mem_base=0x3dc00000 mem_size:0x3f000000(1008 MiB) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.103848] brd: module loaded +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.115613] loop: module loaded +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.119693] vchiq: vchiq_init_state: slot_zero = 0xbac80000, is_master = 0 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.128125] Loading iSCSI transport class v2.0-870. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.133693] usbcore: registered new interface driver smsc95xx +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.139603] dwc_otg: version 3.00a 10-AUG-2012 (platform bus) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.345717] Core Release: 2.80a +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.348905] Setting default values for core params +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.353785] Finished setting default values for core params +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.559790] Using Buffer DMA mode +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.563150] Periodic Transfer Interrupt Enhancement - disabled +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.569079] Multiprocessor Interrupt Enhancement - disabled +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.574743] OTG VER PARAM: 0, OTG VER FLAG: 0 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.579163] Dedicated Tx FIFOs mode +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.582992] WARN::dwc_otg_hcd_init:1047: FIQ DMA bounce buffers: virt = 0xbac04000 dma = 0xfac04000 len=9024 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.592999] FIQ FSM acceleration enabled for : +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.592999] Non-periodic Split Transactions +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.592999] Periodic Split Transactions +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.592999] High-Speed Isochronous Endpoints +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.592999] Interrupt/Control Split Transaction hack enabled +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.615696] dwc_otg: Microframe scheduler enabled +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.615740] WARN::hcd_init_fiq:415: FIQ on core 1 at 0x8044accc +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.621747] WARN::hcd_init_fiq:416: FIQ ASM at 0x8044b02c length 36 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.628108] WARN::hcd_init_fiq:441: MPHI regs_base at 0xbb87e000 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.634269] dwc_otg 3f980000.usb: DWC OTG Controller +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.639330] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.646781] dwc_otg 3f980000.usb: irq 62, io mem 0x00000000 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.652473] Init: Port Power? op_state=1 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.656464] Init: Power Port (0) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.659921] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.666830] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.674175] usb usb1: Product: DWC OTG Controller +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.678947] usb usb1: Manufacturer: Linux 4.4.50 dwc_otg_hcd +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.684703] usb usb1: SerialNumber: 3f980000.usb +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.690095] hub 1-0:1.0: USB hub found +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.693929] hub 1-0:1.0: 1 port detected +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.698479] dwc_otg: FIQ enabled +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.698488] dwc_otg: NAK holdoff enabled +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.698495] dwc_otg: FIQ split-transaction FSM enabled +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.698524] Module dwc_common_port init +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.698765] usbcore: registered new interface driver usb-storage +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.705116] mousedev: PS/2 mouse device common for all mice +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.711449] bcm2835-cpufreq: min=600000 max=1200000 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.716700] sdhci: Secure Digital Host Controller Interface driver +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.722967] sdhci: Copyright(c) Pierre Ossman +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.727729] sdhost: log_buf @ bac07000 (fac07000) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.783978] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.791807] mmc-bcm2835 3f300000.mmc: mmc_debug:0 mmc_debug2:0 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.797753] mmc-bcm2835 3f300000.mmc: DMA channel allocated +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.840745] mmc0: host does not support reading read-only switch, assuming write-enable +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.844060] sdhci-pltfm: SDHCI platform and OF driver helper +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.844456] ledtrig-cpu: registered to indicate activity on CPUs +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.844571] hidraw: raw HID events driver (C) Jiri Kosina +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.844754] usbcore: registered new interface driver usbhid +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.844756] usbhid: USB HID core driver +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.845311] Initializing XFRM netlink socket +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.845336] NET: Registered protocol family 17 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.845460] Key type dns_resolver registered +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.845883] Registering SWP/SWPB emulation handler +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.846625] registered taskstats version 1 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.846798] vc-sm: Videocore shared memory driver +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.846805] [vc_sm_connected_init]: start +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.854994] [vc_sm_connected_init]: end - returning 0 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.856356] 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.856741] of_cfs_init +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.856814] of_cfs_init: OK +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.904041] Indeed it is in host mode hprt0 = 00021501 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.933198] mmc0: new high speed SDHC card at address 0001 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.933867] mmcblk0: mmc0:0001 EB1QT 29.8 GiB +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.945259] mmcblk0: p1 p2 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.957829] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.966099] VFS: Mounted root (ext4 filesystem) readonly on device 179:2. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.966181] mmc1: queuing unknown CIS tuple 0x80 (2 bytes) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.967722] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.969269] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.972064] mmc1: queuing unknown CIS tuple 0x80 (7 bytes) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.999421] devtmpfs: mounted +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.003153] Freeing unused kernel memory: 476K (80817000 - 8088e000) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.062726] mmc1: new high speed SDIO card at address 0001 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.083993] usb 1-1: new high-speed USB device number 2 using dwc_otg +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.090667] Indeed it is in host mode hprt0 = 00001101 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.177133] systemd[1]: System time before build time, advancing clock. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.277160] NET: Registered protocol family 10 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.288313] random: systemd: uninitialized urandom read (16 bytes read, 40 bits of entropy available) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.297957] usb 1-1: New USB device found, idVendor=0424, idProduct=9514 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.304806] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.312297] hub 1-1:1.0: USB hub found +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.316250] hub 1-1:1.0: 5 ports detected +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.323749] systemd[1]: systemd 230 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.342708] systemd[1]: Detected architecture arm. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.374900] systemd[1]: Set hostname to . +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.423058] random: systemd: uninitialized urandom read (16 bytes read, 53 bits of entropy available) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.464592] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 59 bits of entropy available) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.476138] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 59 bits of entropy available) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.486487] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 61 bits of entropy available) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.574985] random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.584733] random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.593986] usb 1-1.1: new high-speed USB device number 3 using dwc_otg +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.601103] random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.611010] random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.621395] random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.704328] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00 +Dec 05 22:01:55 RaspberryPi-Gateway kernel: brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code +Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: World regulatory domain updated: +Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: DFS Master region: unset +Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.711318] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.721592] smsc95xx v1.0.4 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.787418] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:01:6b:d5 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.824798] systemd[1]: Created slice System Slice. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.854363] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.884337] systemd[1]: Listening on Journal Socket. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.954515] systemd[1]: Starting Apply Kernel Variables... +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.997816] systemd[1]: Starting Create list of required static device nodes for the current kernel... +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.033997] usb 1-1.5: new high-speed USB device number 4 using dwc_otg +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.034360] systemd[1]: Listening on udev Control Socket. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.066833] systemd[1]: Mounting Debug File System... +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.096907] systemd[1]: Mounting Configuration File System... +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.124338] systemd[1]: Listening on udev Kernel Socket. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.144893] usb 1-1.5: New USB device found, idVendor=13b1, idProduct=0041 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.151874] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=6 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.159325] usb 1-1.5: Product: Linksys USB3GIGV1 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.159479] systemd[1]: Reached target Network. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.168707] usb 1-1.5: Manufacturer: Linksys +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.168720] usb 1-1.5: SerialNumber: 000001000000 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.194891] systemd[1]: Created slice system-getty.slice. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.264286] systemd[1]: Mounting Temporary Directory... +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.286645] systemd[1]: Starting Remount Root and Kernel File Systems... +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.308178] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.314244] systemd[1]: Reached target Remote File Systems. +Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A) +Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz, 92000 KHz AUTO), (N/A, 2000 mBm), (N/A) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.344567] systemd[1]: Listening on Journal Socket (/dev/log). +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.374389] systemd[1]: Started Forward Password Requests to Wall Directory Watch. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.434269] systemd[1]: Mounting POSIX Message Queue File System... +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.464286] systemd[1]: Listening on Syslog Socket. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.486612] systemd[1]: Starting Journal Service... +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.514913] systemd[1]: Created slice User and Session Slice. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.544210] systemd[1]: Reached target Slices. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.564479] systemd[1]: Started Dispatch Password Requests to Console Directory Watch. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.634440] systemd[1]: Starting Setup Virtual Console... +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.664575] systemd[1]: Reached target Swap. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.684870] systemd[1]: Created slice system-serial\x2dgetty.slice. +Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.758866] systemd[1]: Mounted Debug File System. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.784237] systemd[1]: Mounted Configuration File System. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.814176] systemd[1]: Mounted POSIX Message Queue File System. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.844167] systemd[1]: Mounted Temporary Directory. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.864453] systemd[1]: Started Journal Service. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.282016] systemd-journald[135]: Received request to flush runtime journal from PID 1 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.316142] cdc_ether 1-1.5:2.0 eth1: register 'cdc_ether' at usb-3f980000.usb-1.5, CDC Ethernet Device, 94:10:3e:b8:fe:9d +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.328131] usbcore: registered new interface driver cdc_ether +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.539254] lirc_dev: IR Remote Control driver registered, major 244 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.567838] lirc_rpi: module is from the staging directory, the quality is unknown, you have been warned. +Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.593306] bcm2835-wdt 3f100000.watchdog: Broadcom BCM2835 watchdog timer +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.617819] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.716043] random: nonblocking pool is initialized +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.832176] usbcore: registered new interface driver brcmfmac +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.955307] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Aug 29 2016 20:48:16 version 7.45.41.26 (r640327) FWID 01-4527cfab +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.993659] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.317716] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.324314] cfg80211: World regulatory domain updated: +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.329528] cfg80211: DFS Master region: unset +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.333973] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.343862] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.352004] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz, 92000 KHz AUTO), (N/A, 2000 mBm), (N/A) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.361602] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A) +Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.369777] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.379454] cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.389126] cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s) +Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s) +Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.397390] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A) +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.405575] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A) +Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A) +Dec 05 22:01:55 RaspberryPi-Gateway PsmSsp[220]: Conf file /etc/debug.ini open success +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon.... +-- Subject: Unit snmpd.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit snmpd.service has begun starting up. +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Starting CcspCrSsp service... +-- Subject: Unit CcspCrSsp.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspCrSsp.service has begun starting up. +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Starting TDK Test Agent Start... +-- Subject: Unit tdk.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit tdk.service has begun starting up. +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started Gwprovapp service. +-- Subject: Unit gwprovapp.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit gwprovapp.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:55 RaspberryPi-Gateway kernel: lirc_rpi: auto-detected active high receiver on GPIO pin 18 +Dec 05 22:01:55 RaspberryPi-Gateway kernel: lirc_rpi lirc_rpi: lirc_dev: driver lirc_rpi registered at minor = 0 +Dec 05 22:01:55 RaspberryPi-Gateway kernel: lirc_rpi: driver registered! +Dec 05 22:01:55 RaspberryPi-Gateway PsmSsp[220]: ssp_CfmReadCurConfig: Fail to import custom params +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Starting Permit User Sessions... +-- Subject: Unit systemd-user-sessions.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-user-sessions.service has begun starting up. +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.534031] lirc_rpi: auto-detected active high receiver on GPIO pin 18 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.541501] lirc_rpi lirc_rpi: lirc_dev: driver lirc_rpi registered at minor = 0 +Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.549095] lirc_rpi: driver registered! +Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started System Logging Service. +-- Subject: Unit busybox-syslog.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit busybox-syslog.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:56 RaspberryPi-Gateway gw_prov_utopia[232]: Started gw_prov_utopia +Dec 05 22:01:56 RaspberryPi-Gateway kernel: ccspSysConfigEa wrote to core_pattern when file position was not 0! + This will not be supported in the future. To silence this + warning, set kernel.sysctl_writes_strict = -1 +Dec 05 22:01:56 RaspberryPi-Gateway sh[227]: bbhm patch is not required +Dec 05 22:01:56 RaspberryPi-Gateway kernel[214]: [ 5.621350] ccspSysConfigEa wrote to core_pattern when file position was not 0! +Dec 05 22:01:56 RaspberryPi-Gateway systemd[1]: Starting Login Service... +-- Subject: Unit systemd-logind.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-logind.service has begun starting up. +Dec 05 22:01:56 RaspberryPi-Gateway gw_prov_utopia[232]: syslogd: can't open '/etc/syslog.conf': No such file or directory +Dec 05 22:01:56 RaspberryPi-Gateway kernel[214]: [ 5.621350] This will not be supported in the future. To silence this +Dec 05 22:01:56 RaspberryPi-Gateway gw_prov_utopia[232]: ln: /crontabs: File exists +Dec 05 22:01:56 RaspberryPi-Gateway kernel[214]: [ 5.621350] warning, set kernel.sysctl_writes_strict = -1 +Dec 05 22:01:56 RaspberryPi-Gateway gw_prov_utopia[232]: ******************************************************************* +Dec 05 22:01:56 RaspberryPi-Gateway gw_prov_utopia[232]: * +Dec 05 22:01:56 RaspberryPi-Gateway gw_prov_utopia[232]: * Copyright (c) 2010 by Cisco Systems, Inc. All Rights Reserved. +Dec 05 22:01:56 RaspberryPi-Gateway gw_prov_utopia[232]: * +Dec 05 22:01:56 RaspberryPi-Gateway gw_prov_utopia[232]: ******************************************************************* +Dec 05 22:01:56 RaspberryPi-Gateway systemd[1]: Started Permit User Sessions. +-- Subject: Unit systemd-user-sessions.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-user-sessions.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:56 RaspberryPi-Gateway sh[257]: Going to check the iptable rules +Dec 05 22:01:56 RaspberryPi-Gateway sh[257]: Enable iptable rules for TDK +Dec 05 22:01:56 RaspberryPi-Gateway sh[257]: Going to start Agent +Dec 05 22:01:56 RaspberryPi-Gateway CcspCrSsp[255]: Conf file /etc/debug.ini open success +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[261]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:01:56 RaspberryPi-Gateway snmpd[224]: pcilib: Cannot open /proc/bus/pci +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[261]: system.syscfg Shared memory file not found +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[261]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:513, Error initializing shared memor +Dec 05 22:01:56 RaspberryPi-Gateway snmpd[224]: pcilib: Cannot find any working access method. +Dec 05 22:01:56 RaspberryPi-Gateway snmpd[224]: pcilib: pci_init failed +Dec 05 22:01:56 RaspberryPi-Gateway sh[257]: tdk_firewall_service.sh: v4 rule is missing in iptables, adding now +Dec 05 22:01:56 RaspberryPi-Gateway kernel: ip_tables: (C) 2000-2006 Netfilter Core Team +Dec 05 22:01:56 RaspberryPi-Gateway kernel[214]: [ 5.946977] ip_tables: (C) 2000-2006 Netfilter Core Team +Dec 05 22:01:56 RaspberryPi-Gateway sh[257]: tdk_firewall_service.sh: v6 rule is missing in ip6tables, adding now +Dec 05 22:01:56 RaspberryPi-Gateway kernel: ip6_tables: (C) 2000-2006 Netfilter Core Team +Dec 05 22:01:56 RaspberryPi-Gateway kernel[214]: [ 6.063819] ip6_tables: (C) 2000-2006 Netfilter Core Team +Dec 05 22:01:56 RaspberryPi-Gateway [350]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:405, Enter in function syscfg_create +Dec 05 22:01:56 RaspberryPi-Gateway [350]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:422, creating shared memory with store type 0, path /nvram/syscfg.db, size 51200, hdr size 0 +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[353]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:01:56 RaspberryPi-Gateway sh[257]: 12-05-2017 22:01:56.479049 [main():1178] +Dec 05 22:01:56 RaspberryPi-Gateway sh[257]: Process Group Id : 278 +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[357]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[360]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[360]: system.syscfg commit to store +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[372]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[379]: system.utctx Utopia_Init: Initializing +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[379]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[379]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[379]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[379]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[379]: system.utctx Utopia_Free: Freeing +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[379]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:01:56 RaspberryPi-Gateway kernel: syseventd (384): /proc/384/oom_adj is deprecated, please use /proc/384/oom_score_adj instead. +Dec 05 22:01:56 RaspberryPi-Gateway kernel[214]: [ 6.292324] syseventd (384): /proc/384/oom_adj is deprecated, please use /proc/384/oom_score_adj instead. +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[384]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[384]: system.sysevent syseventd started. +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[387]: system.sysevent Starting fork helper process syseventd_fork_helper +Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[399]: system.sysevent syseventd fork helper started using pipe 10 +Dec 05 22:01:56 RaspberryPi-Gateway PsmSsp[220]: eRT.com.cisco.spvtg.ccsp.psm start to check eRT.com.cisco.spvtg.ccsp.CR status +Dec 05 22:01:56 RaspberryPi-Gateway snmpd[224]: error finding row index in _ifXTable_container_row_restore +Dec 05 22:01:56 RaspberryPi-Gateway snmpd[224]: error finding row index in _ifXTable_container_row_restore +Dec 05 22:01:56 RaspberryPi-Gateway snmpd[224]: error finding row index in _ifXTable_container_row_restore +Dec 05 22:01:56 RaspberryPi-Gateway snmpd[224]: NET-SNMP version 5.7.3 +Dec 05 22:01:56 RaspberryPi-Gateway systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon.. +-- Subject: Unit snmpd.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit snmpd.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:56 RaspberryPi-Gateway systemd[1]: Reached target Sound Card. +-- Subject: Unit sound.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit sound.target has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:56 RaspberryPi-Gateway systemd-logind[245]: New seat seat0. +-- Subject: A new seat seat0 is now available +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat +-- +-- A new seat seat0 has been configured and is now available. +Dec 05 22:01:57 RaspberryPi-Gateway systemd[1]: Started Serial Getty on ttyS0. +-- Subject: Unit serial-getty@ttyS0.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit serial-getty@ttyS0.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:57 RaspberryPi-Gateway systemd[1]: Started Getty on tty1. +-- Subject: Unit getty@tty1.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit getty@tty1.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:57 RaspberryPi-Gateway systemd[1]: Started Serial Getty on ttyAMA0. +-- Subject: Unit serial-getty@ttyAMA0.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit serial-getty@ttyAMA0.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:57 RaspberryPi-Gateway systemd[1]: Reached target Login Prompts. +-- Subject: Unit getty.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit getty.target has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:57 RaspberryPi-Gateway systemd[1]: Started Login Service. +-- Subject: Unit systemd-logind.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-logind.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:57 RaspberryPi-Gateway systemd[1]: Started CcspCrSsp service. +-- Subject: Unit CcspCrSsp.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspCrSsp.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[415]: 2017-12-05 22:01:57., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[415]: system.syscfg commit to store +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[416]: 2017-12-05 22:01:57., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[419]: 2017-12-05 22:01:57., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[420]: 2017-12-05 22:01:57., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[421]: 2017-12-05 22:01:57., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[440]: service.info Registered bridge for bridge-start using /etc/utopia/service.d/service_bridge.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[440]: service.info Registered bridge for bridge-stop using /etc/utopia/service.d/service_bridge.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[440]: service.info Registered bridge for bridge-restart using /etc/utopia/service.d/service_bridge.sh +Dec 05 22:01:57 RaspberryPi-Gateway kernel: 8021q: 802.1Q VLAN Support v1.8 +Dec 05 22:01:57 RaspberryPi-Gateway kernel[214]: [ 7.451656] 8021q: 802.1Q VLAN Support v1.8 +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[444]: service.info Registered forwarding for forwarding-start using /etc/utopia/service.d/service_forwarding.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[444]: service.info Registered forwarding for forwarding-stop using /etc/utopia/service.d/service_forwarding.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[444]: service.info Registered forwarding for forwarding-restart using /etc/utopia/service.d/service_forwarding.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[448]: 2017-12-05 22:01:57., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-start using /etc/utopia/service.d/service_ipv4.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-stop using /etc/utopia/service.d/service_ipv4.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-restart using /etc/utopia/service.d/service_ipv4.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-resyncAll using /etc/utopia/service.d/service_ipv4.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-resync using /etc/utopia/service.d/service_ipv4.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-down using /etc/utopia/service.d/service_ipv4.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-up using /etc/utopia/service.d/service_ipv4.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-set_dyn_config using /etc/utopia/service.d/service_ipv4.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-sync_tsip_all using /etc/utopia/service.d/service_ipv4.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-stop_tsip_all using /etc/utopia/service.d/service_ipv4.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-resync_tsip using /etc/utopia/service.d/service_ipv4.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-resync_tsip_asn using /etc/utopia/service.d/service_ipv4.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[458]: service.info Registered lan for lan-start using /etc/utopia/service.d/lan_handler.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[458]: service.info Registered lan for lan-stop using /etc/utopia/service.d/lan_handler.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[458]: service.info Registered lan for lan-restart using /etc/utopia/service.d/lan_handler.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[458]: service.info Registered lan for pnm-status using /etc/utopia/service.d/lan_handler.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[458]: service.info Registered lan for bring-lan using /etc/utopia/service.d/lan_handler.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[458]: service.info Registered lan for iot_status using /etc/utopia/service.d/lan_handler.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[458]: service.info Registered lan for ipv4-resync using /etc/utopia/service.d/lan_handler.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[458]: service.info Registered lan for erouter_mode-updated using /etc/utopia/service.d/lan_handler.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[467]: service.info Registered multinet for multinet-start using /etc/utopia/service.d/service_multinet_exec +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[467]: service.info Registered multinet for multinet-stop using /etc/utopia/service.d/service_multinet_exec +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[467]: service.info Registered multinet for multinet-restart using /etc/utopia/service.d/service_multinet_exec +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[467]: service.info Registered multinet for multinet-syncNets using /etc/utopia/service.d/service_multinet_exec +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[467]: service.info Registered multinet for multinet-syncMembers using /etc/utopia/service.d/service_multinet_exec +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[467]: service.info Registered multinet for multinet-down using /etc/utopia/service.d/service_multinet_exec +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[467]: service.info Registered multinet for multinet-up using /etc/utopia/service.d/service_multinet_exec +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[467]: service.info Registered multinet for sw_ext_restore using /etc/utopia/service.d/service_multinet/handle_sw.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Registered wan for wan-start using /etc/utopia/service.d/service_wan.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Registered wan for wan-stop using /etc/utopia/service.d/service_wan.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Registered wan for wan-restart using /etc/utopia/service.d/service_wan.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Unregistered wan from wan-restart +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Registered wan for wan-restart using /etc/utopia/service.d/service_wan.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Registered wan for erouter_mode-updated using /etc/utopia/service.d/service_wan.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Registered wan for dhcp_client-restart using /etc/utopia/service.d/service_wan.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Registered wan for dhcp_client-release using /etc/utopia/service.d/service_wan.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Registered wan for dhcp_client-renew using /etc/utopia/service.d/service_wan.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[486]: service.info Registered ccsphs for ccsphs-start using /etc/utopia/service.d/service_ccsphs.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[486]: service.info Registered ccsphs for ccsphs-stop using /etc/utopia/service.d/service_ccsphs.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[486]: service.info Registered ccsphs for ccsphs-restart using /etc/utopia/service.d/service_ccsphs.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[486]: service.info Registered ccsphs for lan-status using /etc/utopia/service.d/service_ccsphs.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[486]: service.info Registered ccsphs for multinet_2-status using /etc/utopia/service.d/service_ccsphs.sh +Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[486]: service.info Registered ccsphs for ipv4_5-status using /etc/utopia/service.d/service_ccsphs.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[490]: service.info Registered ddns for ddns-start using /etc/utopia/service.d/service_ddns.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[490]: service.info Registered ddns for ddns-stop using /etc/utopia/service.d/service_ddns.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[490]: service.info Registered ddns for ddns-restart using /etc/utopia/service.d/service_ddns.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[490]: service.info Registered ddns for wan-status using /etc/utopia/service.d/service_ddns.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[490]: service.info Registered ddns for current_wan_ipaddr using /etc/utopia/service.d/service_ddns.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[499]: service.info Registered dhcp_server for dhcp_server-start using /etc/utopia/service.d/service_dhcp_server.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[499]: service.info Registered dhcp_server for dhcp_server-stop using /etc/utopia/service.d/service_dhcp_server.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[499]: service.info Registered dhcp_server for dhcp_server-restart using /etc/utopia/service.d/service_dhcp_server.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[499]: service.info Registered dhcp_server for syslog-status using /etc/utopia/service.d/service_dhcp_server.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[499]: service.info Registered dhcp_server for lan-status using /etc/utopia/service.d/service_dhcp_server.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[499]: service.info Registered dhcp_server for dhcp_server-resync using /etc/utopia/service.d/service_dhcp_server.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[514]: service.info Registered hotspot for hotspot-start using /etc/utopia/service.d/service_multinet/handle_gre.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[514]: service.info Registered hotspot for hotspot-stop using /etc/utopia/service.d/service_multinet/handle_gre.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[514]: service.info Registered hotspot for hotspot-restart using /etc/utopia/service.d/service_multinet/handle_gre.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[514]: service.info Registered hotspot for gre-restart using /etc/utopia/service.d/service_multinet/handle_gre.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[514]: service.info Registered hotspot for gre-forceRestart using /etc/utopia/service.d/service_multinet/handle_gre.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[514]: service.info Registered hotspot for snmp_subagent-status using /etc/utopia/service.d/service_multinet/handle_gre.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[514]: service.info Registered hotspot for hotspot-update_bridges using /etc/utopia/service.d/service_multinet/handle_gre.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[519]: 2017-12-05 22:01:58., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:01:58 RaspberryPi-Gateway kernel: MTU Modifier loaded +Dec 05 22:01:58 RaspberryPi-Gateway kernel[214]: [ 7.785642] MTU Modifier loaded +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[526]: service.info Registered sshd for sshd-start using /etc/utopia/service.d/service_sshd.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[526]: service.info Registered sshd for sshd-stop using /etc/utopia/service.d/service_sshd.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[526]: service.info Registered sshd for sshd-restart using /etc/utopia/service.d/service_sshd.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[526]: service.info Registered sshd for bridge-status using /etc/utopia/service.d/service_sshd.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[526]: service.info Registered sshd for lan-status using /etc/utopia/service.d/service_sshd.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[526]: service.info Registered sshd for wan-status using /etc/utopia/service.d/service_sshd.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for routed-start using /etc/utopia/service.d/service_routed.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for routed-stop using /etc/utopia/service.d/service_routed.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for routed-restart using /etc/utopia/service.d/service_routed.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for wan-status using /etc/utopia/service.d/service_routed.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for lan-status using /etc/utopia/service.d/service_routed.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for ipv6_nameserver using /etc/utopia/service.d/service_routed.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for ipv6_prefix using /etc/utopia/service.d/service_routed.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for ripd-restart using /etc/utopia/service.d/service_routed.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for zebra-restart using /etc/utopia/service.d/service_routed.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for staticroute-restart using /etc/utopia/service.d/service_routed.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[578]: service.info Registered crond for crond-start using /etc/utopia/service.d/service_crond.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[578]: service.info Registered crond for crond-stop using /etc/utopia/service.d/service_crond.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[578]: service.info Registered crond for crond-restart using /etc/utopia/service.d/service_crond.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[578]: service.info Registered crond for ntpclient-status using /etc/utopia/service.d/service_crond.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[597]: service.info Registered cosa for cosa-start using /etc/utopia/service.d/service_cosa.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[597]: service.info Registered cosa for cosa-stop using /etc/utopia/service.d/service_cosa.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[597]: service.info Registered cosa for cosa-restart using /etc/utopia/service.d/service_cosa.sh +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[606]: 2017-12-05 22:01:58., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[232]: 2017-12-05 22:01:58., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:01:58 RaspberryPi-Gateway systemd[1]: Starting RPC Bind Service... +-- Subject: Unit rpcbind.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit rpcbind.service has begun starting up. +Dec 05 22:01:58 RaspberryPi-Gateway systemd[1]: Started RPC Bind Service. +-- Subject: Unit rpcbind.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit rpcbind.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:58 RaspberryPi-Gateway PsmSsp[220]: eRT.com.cisco.spvtg.ccsp.psm try to check eRT.com.cisco.spvtg.ccsp.CR health for 1 times, health is 0 +Dec 05 22:01:58 RaspberryPi-Gateway PsmSsp[220]: eRT.com.cisco.spvtg.ccsp.CR is ready, eRT.com.cisco.spvtg.ccsp.psm continue +Dec 05 22:01:58 RaspberryPi-Gateway systemd[1]: Started PsmSsp service. +-- Subject: Unit PsmSsp.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit PsmSsp.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:01:58 RaspberryPi-Gateway systemd[1]: Starting CcspPandMSsp service... +-- Subject: Unit CcspPandMSsp.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspPandMSsp.service has begun starting up. +Dec 05 22:01:59 RaspberryPi-Gateway CcspPandMSsp[634]: Conf file /etc/debug.ini open success +Dec 05 22:01:59 RaspberryPi-Gateway CcspPandMSsp[634]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. +Dec 05 22:01:59 RaspberryPi-Gateway CcspPandMSsp[634]: eRT.com.cisco.spvtg.ccsp.pam start to check eRT.com.cisco.spvtg.ccsp.psm status +Dec 05 22:01:59 RaspberryPi-Gateway CcspPandMSsp[634]: eRT.com.cisco.spvtg.ccsp.psm is ready, eRT.com.cisco.spvtg.ccsp.pam continue +Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: Conf file /etc/debug.ini open success +Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. +Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: ****LOADING DM LIBRARY*************** +Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: THE LIB NAME =libtr181.so +Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: ****LOADING DM LIBRARY*************** +Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: PLUGIN libtr181.so LOADED SUCCESSFULLY +Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: -- CosaBackEndManagerCreate 194 +Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: PandM DM initialize... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDeviceInfoInitialize : bxfinitywifiEnable value is : 0 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::sw_1, value Interface1,1 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::sw_2, value Interface2,2 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::sw_3, value Interface3,3 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::sw_4, value Interface4,4 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::erouter0, value Interface5,5 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway kernel: smsc95xx 1-1.1:1.0 erouter0: renamed from eth0 +Dec 05 22:02:00 RaspberryPi-Gateway kernel[214]: [ 10.150305] smsc95xx 1-1.1:1.0 erouter0: renamed from eth0 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::lbr0, value Interface6,6 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 423 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 421 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 422 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 424 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 500 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 423 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 421 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 422 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 424 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 500 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway kernel: smsc95xx 1-1.1:1.0 erouter0: hardware isn't capable of remote wakeup +Dec 05 22:02:00 RaspberryPi-Gateway kernel: IPv6: ADDRCONF(NETDEV_UP): erouter0: link is not ready +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 423 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 421 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 422 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 424 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 500 +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway kernel[214]: [ 10.336139] smsc95xx 1-1.1:1.0 erouter0: hardware isn't capable of remote wakeup +Dec 05 22:02:00 RaspberryPi-Gateway kernel[214]: [ 10.336490] IPv6: ADDRCONF(NETDEV_UP): erouter0: link is not ready +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[706]: crond.status starting crond service +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway sh[257]: Starting Agent Monitor Process.. +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 431 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 432 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 433 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 434 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 431 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 432 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 433 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 434 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 161 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 159 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 149 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 151 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 154 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 162 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 160 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 165 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 166 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 167 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 168 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 169 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 170 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 414 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 33 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 34 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 35 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 36 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 99 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: config.utapi s_sysevent_connect: open new sysevent fd 8 +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway CcspPandMSsp[634]: Error: argument "erouter" is wrong: table id value is invalid +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway CcspPandMSsp[634]: Cannot find device "brlan0" +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway CcspPandMSsp[634]: Error: argument "erouter" is wrong: table id value is invalid +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway CcspPandMSsp[634]: Cannot find device "wan0" +Dec 05 22:02:01 RaspberryPi-Gateway CcspPandMSsp[634]: Error: argument "erouter" is wrong: table id value is invalid +Dec 05 22:02:01 RaspberryPi-Gateway CcspPandMSsp[634]: Error: argument "erouter" is wrong: table id value is invalid +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:01 RaspberryPi-Gateway CcspPandMSsp[634]: [DM-Bridge] CosaDmlBrgInit -- in: 1512511321.807306 +Dec 05 22:02:01 RaspberryPi-Gateway kernel: uart-pl011 3f201000.uart: no DMA platform data +Dec 05 22:02:01 RaspberryPi-Gateway kernel[214]: [ 11.545077] uart-pl011 3f201000.uart: no DMA platform data +Dec 05 22:02:02 RaspberryPi-Gateway login[410]: pam_lastlog(login:session): file /var/log/lastlog created +Dec 05 22:02:02 RaspberryPi-Gateway login[408]: pam_lastlog(login:session): file /var/log/lastlog created +Dec 05 22:02:02 RaspberryPi-Gateway login[408]: pam_lastlog(login:session): file /var/log/lastlog is locked/write +Dec 05 22:02:02 RaspberryPi-Gateway login[410]: pam_unix(login:session): session opened for user root by (uid=0) +Dec 05 22:02:02 RaspberryPi-Gateway systemd[1]: Created slice User Slice of root. +-- Subject: Unit user-0.slice has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit user-0.slice has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: [DM-Bridge] CosaDmlBrgInit -- OUT: 1512511322.165173 +Dec 05 22:02:02 RaspberryPi-Gateway systemd[1]: Starting User Manager for UID 0... +-- Subject: Unit user@0.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit user@0.service has begun starting up. +Dec 05 22:02:02 RaspberryPi-Gateway [758]: PAM unable to dlopen(/lib/security/pam_loginuid.so): Error loading shared library /lib/security/pam_loginuid.so: No such file or directory +Dec 05 22:02:02 RaspberryPi-Gateway [758]: PAM adding faulty module: /lib/security/pam_loginuid.so +Dec 05 22:02:02 RaspberryPi-Gateway [758]: pam_unix(systemd-user:session): session opened for user root by (uid=0) +Dec 05 22:02:02 RaspberryPi-Gateway systemd[758]: user@0.service: Failed at step PAM spawning /lib/systemd/systemd: Operation not permitted +-- Subject: Process /lib/systemd/systemd could not be executed +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- The process /lib/systemd/systemd could not be executed and failed. +-- +-- The error number returned by this process is 1. +Dec 05 22:02:02 RaspberryPi-Gateway snmpd[224]: Name of an interface changed. Such interfaces will keep its old name in IF-MIB. +Dec 05 22:02:02 RaspberryPi-Gateway kernel: gre: GRE over IPv4 demultiplexor driver +Dec 05 22:02:02 RaspberryPi-Gateway kernel[214]: [ 11.837770] gre: GRE over IPv4 demultiplexor driver +Dec 05 22:02:02 RaspberryPi-Gateway systemd-logind[245]: New session c1 of user root. +-- Subject: A new session c1 has been created for user root +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat +-- +-- A new session with the ID c1 has been created for the user root. +-- +-- The leading process of the session is 410. +Dec 05 22:02:02 RaspberryPi-Gateway kernel: ip_gre: GRE over IPv4 tunneling driver +Dec 05 22:02:02 RaspberryPi-Gateway kernel[214]: [ 11.846162] ip_gre: GRE over IPv4 tunneling driver +Dec 05 22:02:02 RaspberryPi-Gateway systemd[1]: Started User Manager for UID 0. +-- Subject: Unit user@0.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit user@0.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:02:02 RaspberryPi-Gateway systemd[1]: Started Session c1 of user root. +-- Subject: Unit session-c1.scope has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit session-c1.scope has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:02:02 RaspberryPi-Gateway login[782]: ROOT LOGIN on '/dev/ttyAMA0' +Dec 05 22:02:02 RaspberryPi-Gateway kernel: IPv6: ADDRCONF(NETDEV_CHANGE): erouter0: link becomes ready +Dec 05 22:02:02 RaspberryPi-Gateway kernel: smsc95xx 1-1.1:1.0 erouter0: link up, 100Mbps, full-duplex, lpa 0xC1E1 +Dec 05 22:02:02 RaspberryPi-Gateway kernel[214]: [ 11.962773] IPv6: ADDRCONF(NETDEV_CHANGE): erouter0: link becomes ready +Dec 05 22:02:02 RaspberryPi-Gateway kernel[214]: [ 11.963809] smsc95xx 1-1.1:1.0 erouter0: link up, 100Mbps, full-duplex, lpa 0xC1E1 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 106 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 99 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 100 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 101 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 102 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 103 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 109 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key PPP_Interface_tr_alias, value Interface1 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_WriteLock: Acquring write lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 108 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: sh: avahi-daemon: command not found +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: sh: avahi-autoipd: command not found +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key dhcpv6s00::serverenable, value 1 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: ParseZebraRaConf: fail to open file /etc/zebra.conf +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 4 +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 8 +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 9 +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 1 +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 7 +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 6 +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 5 +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 3 +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 2 +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: **************** sysevent set pnm-status up +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 118 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 119 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: UTC is not enabled ************* +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDmlTimeGetCfg: UTC Enable file not exists +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 120 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 121 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 122 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 123 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 124 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 72 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 73 +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: vsystem: ps | grep syslogd | grep -v grep >/dev/null +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: load_ipv6rd_conf: no 6RD info in config file +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 82 +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDmlRLog_Init: Nothing need to do ! +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDmlRLog_GetConf: get config success ! +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDml_GreInit:387> sysevent_open success +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDml_GreInit:403> Init Hotspot GRE Done +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: -- CosaBackEndManagerInitialize 330 CosaGreTunnelCreate +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: -- CosaGreTunnelCreate CosaGreTunnelInitialize >> +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDml_GreTunnelInit:433> sysevent_open success +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDml_GreTunnelInit:449> Init Hotspot GRE Done +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[867]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: -- CosaGreTunnelCreate CosaGreTunnelInitialize << +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDml_HotspotInit:323> Init Hotspot Done +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[929]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[927]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[932]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: PandM DM initialization done! +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.syscfg commit to store +Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.syscfg commit to store +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[946]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[957]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[960]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[966]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway login[408]: pam_unix(login:session): session opened for user root by (uid=0) +Dec 05 22:02:03 RaspberryPi-Gateway systemd-logind[245]: New session c2 of user root. +-- Subject: A new session c2 has been created for user root +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat +-- +-- A new session with the ID c2 has been created for the user root. +-- +-- The leading process of the session is 408. +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[977]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[981]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway systemd[1]: Started Session c2 of user root. +-- Subject: Unit session-c2.scope has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit session-c2.scope has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:02:03 RaspberryPi-Gateway login[987]: ROOT LOGIN on '/dev/ttyS0' +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[989]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[991]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 106 +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 99 +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 100 +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 101 +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 102 +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 103 +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 109 +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 108 +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: Error: argument "erouter" is wrong: table id value is invalid +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: Cannot find device "brlan0" +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: Error: argument "erouter" is wrong: table id value is invalid +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: Cannot find device "wan0" +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: Error: argument "erouter" is wrong: table id value is invalid +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: Error: argument "erouter" is wrong: table id value is invalid +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1071]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1071]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1071]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1071]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1071]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1071]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1078]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1078]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1078]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: fe80::/64 proto kernel metric 256 pref medium +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1078]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1078]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key tr_routing_v6entry.fe80::/64_*_erouter0.instance, value 1 +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key tr_routing_v6entry.fe80::/64_*_erouter0.alias, value IPv6Forwarding1 +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key tr_routing_v6entry.fe80::/64_*_erouter0.enabled, value 1 +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 414 +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 33 +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 34 +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 35 +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 36 +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 99 +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1104]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway systemd[1]: Started CcspPandMSsp service. +-- Subject: Unit CcspPandMSsp.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspPandMSsp.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: Entering P&M loop +Dec 05 22:02:03 RaspberryPi-Gateway systemd[1]: Starting CcspTandDSsp service... +-- Subject: Unit CcspTandDSsp.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspTandDSsp.service has begun starting up. +Dec 05 22:02:03 RaspberryPi-Gateway systemd[1]: Starting Check WIFI support on RaspberryPi Device... +-- Subject: Unit checkrpiwifisupport.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit checkrpiwifisupport.service has begun starting up. +Dec 05 22:02:03 RaspberryPi-Gateway sh[1163]: Wifi (single band) driver is initialized +Dec 05 22:02:03 RaspberryPi-Gateway sh[1163]: checking for dual band support:1 +Dec 05 22:02:03 RaspberryPi-Gateway systemd[1]: Started CcspTandDSsp service. +-- Subject: Unit CcspTandDSsp.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspTandDSsp.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:03 RaspberryPi-Gateway sh[1163]: wlan1 No such device +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1207]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1226]: dhcpv6c.status DHCPv6 Client is not enabled +Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: killall: dibbler-client: no process killed +Dec 05 22:02:04 RaspberryPi-Gateway kernel: bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this. +Dec 05 22:02:04 RaspberryPi-Gateway kernel[214]: [ 13.719436] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this. +Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1288]: 2017-12-05 22:02:04., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1289]: 2017-12-05 22:02:04., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:04 RaspberryPi-Gateway kernel: device eth1 entered promiscuous mode +Dec 05 22:02:04 RaspberryPi-Gateway kernel: cdc_ether 1-1.5:2.0 eth1: kevent 12 may have been dropped +Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1291]: 2017-12-05 22:02:04., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:04 RaspberryPi-Gateway kernel[214]: [ 13.771421] device eth1 entered promiscuous mode +Dec 05 22:02:04 RaspberryPi-Gateway kernel[214]: [ 13.771488] cdc_ether 1-1.5:2.0 eth1: kevent 12 may have been dropped +Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1296]: 2017-12-05 22:02:04., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:04 RaspberryPi-Gateway kernel: cdc_ether 1-1.5:2.0 eth1: kevent 11 may have been dropped +Dec 05 22:02:04 RaspberryPi-Gateway kernel[214]: [ 13.779932] cdc_ether 1-1.5:2.0 eth1: kevent 11 may have been dropped +Dec 05 22:02:04 RaspberryPi-Gateway kernel: brlan0: port 1(eth1) entered forwarding state +Dec 05 22:02:04 RaspberryPi-Gateway kernel: brlan0: port 1(eth1) entered forwarding state +Dec 05 22:02:04 RaspberryPi-Gateway kernel[214]: [ 13.788076] brlan0: port 1(eth1) entered forwarding state +Dec 05 22:02:04 RaspberryPi-Gateway kernel[214]: [ 13.788138] brlan0: port 1(eth1) entered forwarding state +Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1377]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1377]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1377]: 2017-12-05 22:02:04., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1377]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1377]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1377]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1490]: 2017-12-05 22:02:04., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:04 RaspberryPi-Gateway CcspTandDSsp[1138]: Conf file /etc/debug.ini open success +Dec 05 22:02:04 RaspberryPi-Gateway sh[1163]: checking for dual band support:2 +Dec 05 22:02:04 RaspberryPi-Gateway sh[1163]: wlan1 No such device +Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1592]: 2017-12-05 22:02:04., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1619]: 2017-12-05 22:02:04., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1681]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1684]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDmlDHCPv6sTriggerRestart -- 3063 !!!!!!!!!!!!!!!!!! +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1721]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1723]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1767]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1768]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1783]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1799]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1798]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1801]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1817]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1827]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1845]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1853]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1867]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1868]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1869]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1869]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1869]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1869]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1869]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1869]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1880]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1912]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1914]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1918]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1923]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1926]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1930]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1934]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1936]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1936]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1936]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1936]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1936]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1936]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1936]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1936]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:05 RaspberryPi-Gateway sh[1163]: checking for dual band support:3 +Dec 05 22:02:05 RaspberryPi-Gateway sh[1163]: wlan1 No such device +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1995]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[2002]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:05 RaspberryPi-Gateway CcspPandMSsp[634]: killall: dibbler-client: no process killed +Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[2005]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2001]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2007]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2006]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2020]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2028]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2067]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2068]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2073]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:06 RaspberryPi-Gateway systemd[1]: Started TDK Test Agent Start. +-- Subject: Unit tdk.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit tdk.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:02:06 RaspberryPi-Gateway systemd[1]: Reached target Multi-User System. +-- Subject: Unit multi-user.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit multi-user.target has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2105]: ddns.status (2011) wan state is down. No ddns update possible +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2113]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2139]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2141]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2196]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway CcspPandMSsp[634]: sh: /etc/dibbler/dibbler-init.sh: No such file or directory +Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq[2207]: started, version 2.76 cachesize 150 +Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq[2207]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect no-inotify +Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq-dhcp[2207]: DHCP, IP range 10.0.0.2 -- 10.0.0.253, lease time 7d +Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq[2207]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# +Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq[2207]: reading /etc/resolv.conf +Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq[2207]: using nameserver 8.8.8.8#53 +Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq[2207]: using nameserver 8.8.4.4#53 +Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq[2207]: read /etc/hosts - 9 addresses +Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq-dhcp[2207]: read /etc/dhcp_static_hosts +Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq-dhcp[2207]: read /var/dhcp_options +Dec 05 22:02:06 RaspberryPi-Gateway CcspPandMSsp[634]: | Dibbler - a portable DHCPv6, version 1.0.1 (CLIENT, Linux port) +Dec 05 22:02:06 RaspberryPi-Gateway CcspPandMSsp[634]: | Authors : Tomasz Mrugalski,Marek Senderski +Dec 05 22:02:06 RaspberryPi-Gateway CcspPandMSsp[634]: | Licence : GNU GPL v2 only. Developed at Gdansk University of Technology. +Dec 05 22:02:06 RaspberryPi-Gateway CcspPandMSsp[634]: | Homepage: http://klub.com.pl/dhcpv6/ +Dec 05 22:02:06 RaspberryPi-Gateway CcspPandMSsp[634]: Starting daemon... +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2250]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2253]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2255]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2257]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2259]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2261]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2265]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2267]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2270]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:06 RaspberryPi-Gateway sh[1163]: checking for dual band support:4 +Dec 05 22:02:06 RaspberryPi-Gateway sh[1163]: wlan1 No such device +Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2313]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2313]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2313]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2313]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2313]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2313]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2313]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2313]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2320]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2323]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2325]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2326]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2332]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2333]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2334]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2353]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2369]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:07 RaspberryPi-Gateway dnsmasq[2207]: read /etc/hosts - 9 addresses +Dec 05 22:02:07 RaspberryPi-Gateway dnsmasq-dhcp[2207]: read /etc/dhcp_static_hosts +Dec 05 22:02:07 RaspberryPi-Gateway dnsmasq-dhcp[2207]: read /var/dhcp_options +Dec 05 22:02:23 RaspberryPi-Gateway systemd-timesyncd[183]: Synchronized to time server 216.239.35.8:123 (time3.google.com). +Dec 05 22:02:23 RaspberryPi-Gateway systemd[1]: Time has been changed +-- Subject: Time change +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- The system clock has been changed to REALTIME microseconds after January 1st, 1970. +Dec 05 22:02:23 RaspberryPi-Gateway sh[1163]: checking for dual band support:5 +Dec 05 22:02:23 RaspberryPi-Gateway sh[1163]: wlan1 No such device +Dec 05 22:02:25 RaspberryPi-Gateway systemd[1]: Started Check WIFI support on RaspberryPi Device. +-- Subject: Unit checkrpiwifisupport.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit checkrpiwifisupport.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:02:25 RaspberryPi-Gateway systemd[1]: Startup finished in 2.134s (kernel) + 17.468s (userspace) = 19.603s. +-- Subject: System start-up is now complete +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- All system services necessary queued for starting at boot have been +-- successfully started. Note that this does not mean that the machine is +-- now idle as services might still be busy with completing start-up. +-- +-- Kernel start-up required 2134706 microseconds. +-- +-- Initial RAM disk start-up required INITRD_USEC microseconds. +-- +-- Userspace start-up required 17468479 microseconds. +Dec 05 22:02:25 RaspberryPi-Gateway systemd[1]: Starting Cosa service... +-- Subject: Unit ccspwifiagent.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit ccspwifiagent.service has begun starting up. +Dec 05 22:02:25 RaspberryPi-Gateway CcspWifiSsp[2402]: eRT.com.cisco.spvtg.ccsp.wifi start to check eRT.com.cisco.spvtg.ccsp.psm status +Dec 05 22:02:25 RaspberryPi-Gateway CcspWifiSsp[2402]: eRT.com.cisco.spvtg.ccsp.psm is ready, eRT.com.cisco.spvtg.ccsp.wifi continue +Dec 05 22:02:25 RaspberryPi-Gateway systemd[1]: Started Cosa service. +-- Subject: Unit ccspwifiagent.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit ccspwifiagent.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: Conf file /etc/debug.ini open success +Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. +Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: ****LOADING DM LIBRARY*************** +Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: THE LIB NAME =libwifi.so +Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: ****LOADING DM LIBRARY*************** +Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: PLUGIN libwifi.so LOADED SUCCESSFULLY +Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiInit +Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetFactoryResetPsmData g_Subsytem = eRT. +Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetFactoryResetPsmData eRT.com.cisco.spvtg.ccsp.tr181pa.Device.WiFi.FactoryReset = 0 +Dec 05 22:02:27 RaspberryPi-Gateway UTOPIA[2412]: 2017-12-05 22:02:27., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: gre0 no wireless extensions. +Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: brlan0 no wireless extensions. +Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: erouter0 no wireless extensions. +Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: gretap0 no wireless extensions. +Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: lo no wireless extensions. +Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: eth1 no wireless extensions. +Dec 05 22:02:27 RaspberryPi-Gateway systemd[1]: Configuration file /lib/systemd/system/hostapd.service is marked executable. Please remove executable permission bits. Proceeding anyway. +Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: Regulatory domain changed to country: US +Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: DFS Master region: FCC +Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) +Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A) +Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (N/A) +Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (0 s) +Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2300 mBm), (0 s) +Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A) +Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A) +Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.954900] cfg80211: Regulatory domain changed to country: US +Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.954924] cfg80211: DFS Master region: FCC +Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.954933] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) +Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.954947] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A) +Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.954962] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (N/A) +Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.954976] cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (0 s) +Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.954989] cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2300 mBm), (0 s) +Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.955011] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A) +Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.955023] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A) +Dec 05 22:02:27 RaspberryPi-Gateway systemd[1]: Starting Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator... +-- Subject: Unit hostapd.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit hostapd.service has begun starting up. +Dec 05 22:02:27 RaspberryPi-Gateway sh[2424]: killall: hostapd: no process killed +Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: wlan1 No such device +Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: Configuration file: /nvram/hostapd0.conf +Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: Failed to create interface mon.wlan0: -95 (Not supported) +Dec 05 22:02:28 RaspberryPi-Gateway kernel: brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists +Dec 05 22:02:28 RaspberryPi-Gateway kernel: brcmfmac: brcmf_add_if: ignore IF event +Dec 05 22:02:28 RaspberryPi-Gateway kernel[214]: [ 22.132470] brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists +Dec 05 22:02:28 RaspberryPi-Gateway kernel[214]: [ 22.139151] brcmfmac: brcmf_add_if: ignore IF event +Dec 05 22:02:28 RaspberryPi-Gateway kernel: IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready +Dec 05 22:02:28 RaspberryPi-Gateway kernel[214]: [ 22.149470] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready +Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: wlan0: Could not connect to kernel driver +Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: Using interface wlan0 with hwaddr b8:27:eb:54:3e:80 and ssid "RPi3_RDKB-AP0" +Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: random: Only 15/20 bytes of strong random data available from /dev/random +Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: random: Not enough entropy pool available for secure operations +Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: WPA: Not enough entropy in random pool for secure operations - update keys later when the first station connects +Dec 05 22:02:28 RaspberryPi-Gateway kernel: brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists +Dec 05 22:02:28 RaspberryPi-Gateway kernel: brcmfmac: brcmf_add_if: ignore IF event +Dec 05 22:02:28 RaspberryPi-Gateway kernel[214]: [ 22.335822] brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists +Dec 05 22:02:28 RaspberryPi-Gateway kernel[214]: [ 22.342474] brcmfmac: brcmf_add_if: ignore IF event +Dec 05 22:02:28 RaspberryPi-Gateway dnsmasq[2207]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# +Dec 05 22:02:28 RaspberryPi-Gateway dnsmasq[2207]: reading /etc/resolv.conf +Dec 05 22:02:28 RaspberryPi-Gateway dnsmasq[2207]: using nameserver 8.8.8.8#53 +Dec 05 22:02:28 RaspberryPi-Gateway dnsmasq[2207]: using nameserver 8.8.4.4#53 +Dec 05 22:02:28 RaspberryPi-Gateway kernel: IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready +Dec 05 22:02:28 RaspberryPi-Gateway kernel[214]: [ 22.409899] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready +Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: wlan0: interface state UNINITIALIZED->ENABLED +Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: wlan0: AP-ENABLED +Dec 05 22:02:28 RaspberryPi-Gateway systemd[1]: Started Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator. +-- Subject: Unit hostapd.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit hostapd.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: [prepare_hostapd_conf]: Default files /usr/ccsp/wifi/hostapd0.conf and /usr/ccsp/wifi/hostapd1.conf presents!! +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: [prepare_hostapd_conf]: /nvram/hostapd0.conf file allready exits!! +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: [prepare_hostapd_conf]: /nvram/hostapd1.conf file allready exits!! +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiCheckWmmParams +Dec 05 22:02:30 RaspberryPi-Gateway kernel: device wlan0 entered promiscuous mode +Dec 05 22:02:30 RaspberryPi-Gateway kernel: brlan0: port 2(wlan0) entered forwarding state +Dec 05 22:02:30 RaspberryPi-Gateway kernel: brlan0: port 2(wlan0) entered forwarding state +Dec 05 22:02:30 RaspberryPi-Gateway kernel[214]: [ 24.431026] device wlan0 entered promiscuous mode +Dec 05 22:02:30 RaspberryPi-Gateway kernel[214]: [ 24.431119] brlan0: port 2(wlan0) entered forwarding state +Dec 05 22:02:30 RaspberryPi-Gateway kernel[214]: [ 24.431155] brlan0: port 2(wlan0) entered forwarding state +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiCheckWmmParams: Resetting Wmm parameters +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetResetHotSpotRequired g_Subsytem = eRT. +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetResetHotSpotRequired: found BssHotSpot value = 0 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetResetHotSpotRequired: found BssHotSpot value = 0 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0CosaDmlWiFiInit: radioActive wifi0 = TRUE +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiInit: radioActive wifi1 = FALSE +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiInit: noEnableVaps = FALSE +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData g_Subsytem = eRT. +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Got 9 Bridge instances +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 0 is Bridge instances 4 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.4.Members.WiFi returned ath5 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.4.Vid returned 103 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.4.l3net returned (null) +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath5 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 1 is Bridge instances 8 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.8.Members.WiFi returned ath9 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.8.Vid returned 105 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.8.l3net returned (null) +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath9 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 2 is Bridge instances 9 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 3 is Bridge instances 1 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.1.Members.WiFi returned ath0 ath1 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.1.Vid returned 100 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.1.l3net returned 4 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l3net.4.V4Addr returned 10.0.0.254 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l3net.4.V4SubnetMask returned 255.255.255.0 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath0 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath1 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 4 is Bridge instances 7 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.7.Members.WiFi returned ath8 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.7.Vid returned 104 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.7.l3net returned (null) +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath8 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 5 is Bridge instances 6 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.6.Members.WiFi returned ath6 ath7 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.6.Vid returned 106 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.6.l3net returned (null) +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath6 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath7 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 6 is Bridge instances 5 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.5.Members.WiFi returned ath14 ath15 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.5.Vid returned 107 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.5.l3net returned (null) +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath14 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath15 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 7 is Bridge instances 3 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.3.Members.WiFi returned ath4 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.3.Vid returned 102 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.3.l3net returned (null) +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath4 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 8 is Bridge instances 2 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.2.Members.WiFi returned ath2 ath3 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.2.Vid returned 101 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.2.l3net returned (null) +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath2 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath3 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetResetRequired g_Subsytem = eRT. +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetResetRequired eRT.com.cisco.spvtg.ccsp.Device.WiFi.VlanCfgVerion = 2 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiInit: Cosa_Init returned True +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: -- CosaDmlWiFi_startDCSScanThread 14633 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFi_startDCSScanThread +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiCheckPreferPrivateFeature +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiCheckPreferPrivateFeature returning +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioGetEntry +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetRadioPsmData g_Subsytem = eRT. +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: Error for wireless request "Set Fragmentation Threshold" (8B24) : +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: SET failed on device ath0 ; No such device. +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: Error for wireless request "Set RTS Threshold" (8B22) : +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: SET failed on device ath0 ; No such device. +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is hw_mode +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string=g +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: G +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: Returning from getRadioStandard +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetRadioPsmData: Found TransmitPower in PSM 100 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioSetTransmitPowerPercent: enter wlanIndex 0 transmitPowerPercent 100 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: Error for wireless request "Set Tx Power" (8B26) : +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: SET failed on device ath0 ; No such device. +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: -- CosaDmlWiFi_setDCSChanPool 14708 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFi_setDCSChanPool +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: -- CosaDmlWiFi_setDCSScan 14651 +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFi_setDCSScan +Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioGetCfg: LastChange 1512511350 +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0wlan0 +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is hw_mode +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string=g +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: G +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Returning from getRadioStandard +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is channel +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: *output_long=6 output from hal=06 +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is vht_oper_chwidth +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioSetTransmitPowerPercent: enter wlanIndex 0 transmitPowerPercent 100 +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Error for wireless request "Set Tx Power" (8B26) : +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: SET failed on device ath0 ; No such device. +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: ath0 No such device +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is basic_rates +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is hw_mode +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is supported_rates +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiRadioGetSinfo +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: ath0 No such device +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioGetSinfo: wifi_getRadioMaxBitRate returned +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: wlan0AP Index for band 0 is 0CosaDmlWiFiRadioGetEntry +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetRadioPsmData g_Subsytem = eRT. +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Error for wireless request "Set RTS Threshold" (8B22) : +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: SET failed on device ath1 ; No such device. +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is hw_mode +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string=a +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Invalid Mode +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Returning from getRadioStandard +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetRadioPsmData: Found TransmitPower in PSM 100 +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioSetTransmitPowerPercent: enter wlanIndex 1 transmitPowerPercent 100 +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Error for wireless request "Set Tx Power" (8B26) : +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: SET failed on device ath1 ; No such device. +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: -- CosaDmlWiFi_setDCSChanPool 14708 +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFi_setDCSChanPool +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: -- CosaDmlWiFi_setDCSScan 14651 +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFi_setDCSScan +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioGetCfg: LastChange 1512511351 +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: wlan1 no frequency information. +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1wlan1 +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is hw_mode +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string=a +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Invalid Mode +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Returning from getRadioStandard +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is channel +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: *output_long=36 output from hal=36 +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is vht_oper_chwidth +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioSetTransmitPowerPercent: enter wlanIndex 1 transmitPowerPercent 100 +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Error for wireless request "Set Tx Power" (8B26) : +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: SET failed on device ath1 ; No such device. +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: ath1 No such device +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is basic_rates +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is hw_mode +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is supported_rates +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiRadioGetSinfo +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: ath1 No such device +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioGetSinfo: wifi_getRadioMaxBitRate returned +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: wlan1 no frequency information. +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: wlan1AP Index for band 1 is 1CosaDmlWiFiSsidGetEntry ulIndex = 0 +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 0 +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0 +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : RPi3_RDKB-AP0getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.SSID +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: gre0 no wireless extensions. +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: brlan0 no wireless extensions. +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: erouter0 no wireless extensions. +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: gretap0 no wireless extensions. +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: lo no wireless extensions. +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: eth1 no wireless extensions. +Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0AP Index for band 0 is 0AP Index for band 0 is 0CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 1 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: sh: -c: line 2: syntax error near unexpected token `|' +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: sh: -c: line 2: ` | grep HWaddr' +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd0.conf +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wlan0 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: ctrl_interface=/var/run/hostapd0 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: B8:27:EB:54:3E:80 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 1 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 1 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : RPi3_RDKB-AP1getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.SSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 2 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: ifconfig: wlan1: error fetching interface information: Device not found +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: sh: -c: line 2: syntax error near unexpected token `|' +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: sh: -c: line 2: ` | grep HWaddr' +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd1.conf +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wlan1 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: ctrl_interface=/var/run/hostapd1 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 2 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 2 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd2.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.3.SSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 3 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd2.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd2.conf +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 3 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 3 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd3.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.4.SSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 4 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd3.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd3.conf +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 4 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 4 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd4.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.5.SSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 5 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd4.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd4.conf +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 5 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 5 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd5.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.6.SSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 6 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd5.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd5.conf +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 6 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 6 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd6.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.7.SSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 7 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd6.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd6.conf +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 7 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 7 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd7.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.8.SSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 8 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd7.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd7.conf +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 8 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 8 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd8.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.9.SSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 9 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd8.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd8.conf +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 9 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 9 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd9.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.10.SSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 10 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd9.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd9.conf +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 10 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 10 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd10.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.11.SSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 11 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd10.conf: No such file or directory +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd10.conf +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 11 +Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 11 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd11.conf: No such file or directory +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.12.SSID +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 12 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd11.conf: No such file or directory +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd11.conf +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 12 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 12 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd12.conf: No such file or directory +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.13.SSID +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 13 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd12.conf: No such file or directory +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd12.conf +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 13 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 13 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd13.conf: No such file or directory +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.14.SSID +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 14 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd13.conf: No such file or directory +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd13.conf +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 14 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 14 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd14.conf: No such file or directory +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.15.SSID +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 15 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd14.conf: No such file or directory +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd14.conf +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 15 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 15 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd15.conf: No such file or directory +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.16.SSID +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 16 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd15.conf: No such file or directory +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd15.conf +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath0 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath0 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0AP Index for band 0 is 0CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 0 ulInstance 1 enabled = TRUE +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 0, 0 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath0 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0CosaDmlWiFiApSecGetEntry pSsid = ath0 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath0 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE0' /etc/sec_file.txt +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string=11i +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 0 return code = 0 for auth mode = SharedAuthentication +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string=rdk@1234 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE0' /etc/sec_file.txt +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is rsn_pairwise +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=TKIP CCMPgetDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.Passphrase +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 1 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 1 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 1 count = 0 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath1 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath1 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 1 ulInstance 2 enabled = FALSE +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 1, 0 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath1 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath1 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath1 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE1' /etc/sec_file.txt +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string=11i +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 1 return code = 0 for auth mode = SharedAuthentication +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string=rdk@1234 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE1' /etc/sec_file.txt +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is rsn_pairwise +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=TKIP CCMPgetDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.Passphrase +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 2 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 2 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 2 count = 0 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath2 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath2 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 2 ulInstance 3 enabled = FALSE +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 2, 0 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath2 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath2 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath2 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE2' /etc/sec_file.txt +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 2 return code = 0 for auth mode = SharedAuthentication +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd2.conf: No such file or directory +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd2.conf: No such file or directory +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE2' /etc/sec_file.txt +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.3.Passphrase +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 3 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 3 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 3 count = 0 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath3 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath3 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 3 ulInstance 4 enabled = FALSE +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 3, 0 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath3 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath3 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath3 +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE3' /etc/sec_file.txt +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 3 return code = 0 for auth mode = SharedAuthentication +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd3.conf: No such file or directory +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd3.conf: No such file or directory +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE3' /etc/sec_file.txt +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.4.Passphrase +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg +Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 4 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 4 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 4 count = 0 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath4 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath4 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 4 ulInstance 5 enabled = FALSE +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 1 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 4, 1 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath4 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath4 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath4 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE4' /etc/sec_file.txt +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 4 return code = 0 for auth mode = SharedAuthentication +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd4.conf: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd4.conf: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE4' /etc/sec_file.txt +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.5.Passphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 5 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 5 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 5 count = 0 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath5 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath5 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 5 ulInstance 6 enabled = FALSE +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 1 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 5, 1 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath5 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath5 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath5 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE5' /etc/sec_file.txt +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 5 return code = 0 for auth mode = SharedAuthentication +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd5.conf: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd5.conf: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE5' /etc/sec_file.txt +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.6.Passphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 6 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 6 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 6 count = 0 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath6 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath6 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 6 ulInstance 7 enabled = FALSE +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 6, 0 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath6 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath6 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath6 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE6' /etc/sec_file.txt +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 6 return code = 0 for auth mode = SharedAuthentication +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd6.conf: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd6.conf: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE6' /etc/sec_file.txt +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.7.Passphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 7 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 7 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 7 count = 0 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath7 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath7 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 7 ulInstance 8 enabled = FALSE +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 7, 0 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath7 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath7 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath7 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE7' /etc/sec_file.txt +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 7 return code = 0 for auth mode = SharedAuthentication +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd7.conf: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd7.conf: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE7' /etc/sec_file.txt +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.8.Passphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 8 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 8 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 8 count = 0 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath8 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath8 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 8 ulInstance 9 enabled = FALSE +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 8, 1 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath8 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath8 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath8 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE8' /etc/sec_file.txt +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 8 return code = 0 for auth mode = SharedAuthentication +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd8.conf: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd8.conf: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE8' /etc/sec_file.txt +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.9.Passphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 9 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 9 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 9 count = 0 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath9 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath9 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 9 ulInstance 10 enabled = FALSE +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 9, 1 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath9 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath9 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath9 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE9' /etc/sec_file.txt +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 9 return code = 0 for auth mode = SharedAuthentication +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd9.conf: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd9.conf: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE9' /etc/sec_file.txt +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.10.Passphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 10 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 10 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 10 count = 0 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath10 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath10 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 10 ulInstance 11 enabled = FALSE +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 10, 0 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath10 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath10 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath10 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE10' /etc/sec_file.txt +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 10 return code = 0 for auth mode = SharedAuthentication +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd10.conf: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd10.conf: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE10' /etc/sec_file.txt +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.11.Passphrase +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 11 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 11 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 11 count = 0 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath11 +Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath11 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 11 ulInstance 12 enabled = FALSE +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 11, 0 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath11 +Dec 05 22:02:35 RaspberryPi-Gateway kernel: brlan0: port 1(eth1) entered forwarding state +Dec 05 22:02:35 RaspberryPi-Gateway kernel[214]: [ 28.813988] brlan0: port 1(eth1) entered forwarding state +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath11 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath11 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE11' /etc/sec_file.txt +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 11 return code = 0 for auth mode = SharedAuthentication +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd11.conf: No such file or directory +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd11.conf: No such file or directory +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE11' /etc/sec_file.txt +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.12.Passphrase +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 12 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 12 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 12 count = 0 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath12 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath12 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 12 ulInstance 13 enabled = FALSE +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 12, 0 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath12 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath12 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath12 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE12' /etc/sec_file.txt +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 12 return code = 0 for auth mode = SharedAuthentication +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd12.conf: No such file or directory +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd12.conf: No such file or directory +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE12' /etc/sec_file.txt +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.13.Passphrase +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 13 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 13 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 13 count = 0 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath13 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath13 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 13 ulInstance 14 enabled = FALSE +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 13, 0 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath13 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath13 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath13 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE13' /etc/sec_file.txt +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 13 return code = 0 for auth mode = SharedAuthentication +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd13.conf: No such file or directory +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd13.conf: No such file or directory +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE13' /etc/sec_file.txt +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.14.Passphrase +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 14 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 14 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 14 count = 0 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath14 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath14 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 14 ulInstance 15 enabled = FALSE +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 14, 0 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath14 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath14 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath14 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE14' /etc/sec_file.txt +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 14 return code = 0 for auth mode = SharedAuthentication +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd14.conf: No such file or directory +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd14.conf: No such file or directory +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE14' /etc/sec_file.txt +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.15.Passphrase +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 15 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 15 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 15 count = 0 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath15 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath15 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 15 ulInstance 16 enabled = FALSE +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 15, 0 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath15 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath15 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath15 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE15' /etc/sec_file.txt +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 15 return code = 0 for auth mode = SharedAuthentication +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd15.conf: No such file or directory +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd15.conf: No such file or directory +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE15' /etc/sec_file.txt +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.16.Passphrase +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 16 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 16 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 16 count = 0 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: ---- CosaWifiRegGetATMInfo ???load from PSM +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiNeighbouringGetEntry +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlGetNeighbouringDiagnosticEnable +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Entry +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Entry 0 +Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Exit +Dec 05 22:02:36 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1Entering Wifi loop +Dec 05 22:02:36 RaspberryPi-Gateway systemd[1]: Starting CcspTr069PaSsp service... +-- Subject: Unit CcspTr069PaSsp.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspTr069PaSsp.service has begun starting up. +Dec 05 22:02:36 RaspberryPi-Gateway systemd[1]: Starting CcspLMLite service... +-- Subject: Unit CcspLMLite.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspLMLite.service has begun starting up. +Dec 05 22:02:36 RaspberryPi-Gateway CcspTr069PaSsp[3488]: Conf file /etc/debug.ini open success +Dec 05 22:02:36 RaspberryPi-Gateway systemd[1]: Started CcspTr069PaSsp service. +-- Subject: Unit CcspTr069PaSsp.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspTr069PaSsp.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:02:36 RaspberryPi-Gateway CcspLMLite[3489]: eRT.com.cisco.spvtg.ccsp.lmlite start to check eRT.com.cisco.spvtg.ccsp.psm status +Dec 05 22:02:36 RaspberryPi-Gateway systemd[1]: Started CcspLMLite service. +-- Subject: Unit CcspLMLite.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspLMLite.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:02:36 RaspberryPi-Gateway systemd[1]: Reached target WiFi Initialization Complete. +-- Subject: Unit wifi-initialized.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit wifi-initialized.target has finished starting up. +-- +-- The start-up result is done. +Dec 05 22:02:36 RaspberryPi-Gateway CcspLMLite[3489]: eRT.com.cisco.spvtg.ccsp.psm is ready, eRT.com.cisco.spvtg.ccsp.lmlite continue +Dec 05 22:02:36 RaspberryPi-Gateway CcspLMLite[3489]: PSM module done. +Dec 05 22:02:36 RaspberryPi-Gateway UTOPIA[3496]: 2017-12-05 22:02:36., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:36 RaspberryPi-Gateway CcspTr069PaSsp[3488]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. +Dec 05 22:02:36 RaspberryPi-Gateway CcspTr069PaSsp[3488]: Device.WiFi.SSID.3.EnableDevice.WiFi.SSID.10102.EnableTLV data file is missing!!! +Dec 05 22:02:36 RaspberryPi-Gateway CcspTr069PaSsp[3488]: TR69 PA: Waiting for Setup env... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Init: Initializing +Dec 05 22:02:41 RaspberryPi-Gateway CcspLMLite[3489]: Conf file /etc/debug.ini open success +Dec 05 22:02:41 RaspberryPi-Gateway CcspLMLite[3489]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. +Dec 05 22:02:41 RaspberryPi-Gateway CcspLMLite[3489]: Conf file /etc/debug.ini open success +Dec 05 22:02:41 RaspberryPi-Gateway CcspLMLite[3489]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. +Dec 05 22:02:41 RaspberryPi-Gateway CcspLMLite[3489]: Conf file /etc/debug.ini open success +Dec 05 22:02:41 RaspberryPi-Gateway CcspLMLite[3489]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. +Dec 05 22:02:41 RaspberryPi-Gateway CcspLMLite[3489]: Send_Eth_Host_Sync_Req : Get Ethernet Clients +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:02:41 RaspberryPi-Gateway CcspLMLite[3489]: Send_MoCA_Host_Sync_Req : Get MoCA Clients +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: 2017-12-05 22:02:41., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: 2017-12-05 22:02:41., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 118 +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 119 +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 120 +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 121 +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 122 +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 123 +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 124 +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 118 +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 119 +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 120 +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 121 +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 122 +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 123 +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 124 +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Free: Freeing +Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:02:41 RaspberryPi-Gateway CcspTr069PaSsp[3488]: TR69 PA: Setup env completed +Dec 05 22:02:41 RaspberryPi-Gateway [3494]: config.utapi s_sysevent_connect: open new sysevent fd 6 +Dec 05 22:02:41 RaspberryPi-Gateway CcspTr069PaSsp[3488]: ***************** Ccsp Tr69 process is up Creatting PID file **** +Dec 05 22:02:45 RaspberryPi-Gateway kernel: brlan0: port 2(wlan0) entered forwarding state +Dec 05 22:02:45 RaspberryPi-Gateway kernel[214]: [ 39.453959] brlan0: port 2(wlan0) entered forwarding state +Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0AP Index for band 0 is 0AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.SSID +Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : RPi3_RDKB-AP0getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.Passphrase +Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase +Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase +Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string=rdk@1234 +Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.SSID +Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid +Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : RPi3_RDKB-AP1getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.Passphrase +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Init: Initializing +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: 2017-12-05 22:03:11., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 118 +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 119 +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 120 +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 121 +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 122 +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 123 +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 124 +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Free: Freeing +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3600]: 2017-12-05 22:03:11., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3603]: 2017-12-05 22:03:11., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx Utopia_Init: Initializing +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: 2017-12-05 22:03:11., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx Utopia_Free: Freeing +Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3668]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3667]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway kernel: Netfilter messages via NETLINK v0.30. +Dec 05 22:03:12 RaspberryPi-Gateway kernel[214]: [ 66.202145] Netfilter messages via NETLINK v0.30. +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3676]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3680]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway [3666]: fw.info firewall called with no arg +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info firewall service initializing +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info firewall opening sysevent_fd 18, token 259 +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3694]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams, Parse the line read from file +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams, Check if interface matches +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams,Interface not found +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams, Parse the line read from file +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams, Check if interface matches +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams,Interface not found +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams, Parse the line read from file +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams, Check if interface matches +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams,Interface not found +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams, Parse the line read from file +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams, Check if interface matches +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams,Interface not found +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info starting firewall service +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3701]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3710]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx Utopia_Init: Initializing +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx Utopia_Free: Freeing +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3727]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3736]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3737]: ddns.status (3657) wan state is down. No ddns update possible +Dec 05 22:03:12 RaspberryPi-Gateway kernel: nf_conntrack version 0.5.0 (14805 buckets, 59220 max) +Dec 05 22:03:12 RaspberryPi-Gateway kernel[214]: [ 66.374334] nf_conntrack version 0.5.0 (14805 buckets, 59220 max) +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx Utopia_Init: Initializing +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx Utopia_Free: Freeing +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3754]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3813]: system.utctx Utopia_Init: Initializing +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3813]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3813]: system.utctx Utopia_Free: Freeing +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3829]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3835]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3839]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3840]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info started firewall service +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info firewall closing firewall_lock +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info firewall closing sysevent_fd 18, token 259 +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info firewall closing dbus connection +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info firewall operation completed +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for firewall-start using /etc/utopia/service.d/firewall_log_handle.sh +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for firewall-stop using /etc/utopia/service.d/firewall_log_handle.sh +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3854]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for firewall-restart using /etc/utopia/service.d/firewall_log_handle.sh +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3851]: service.info Unregistered firewall from firewall-restart +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for firewall-restart using /etc/utopia/service.d/firewall_log_handle.sh +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for syslog-status using /etc/utopia/service.d/firewall_log_handle.sh +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for firewall_trigger_monitor-start using /etc/utopia/service.d/service_firewall/trigger_monitor.sh +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3855]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for firewall_newhost_monitor-start using /etc/utopia/service.d/service_firewall/newhost_monitor.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for syslog_rotated using /etc/utopia/service.d/service_firewall/newhost_monitor.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for ipv6_prefix using /etc/utopia/service.d/firewall_log_handle.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for current_wan_ipv6_interface using /etc/utopia/service.d/firewall_log_handle.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3856]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for ipv6_wan0_dhcp_solicNodeAddr using /etc/utopia/service.d/firewall_log_handle.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for ipv6_erouter0_dhcp_solicNodeAddr using /etc/utopia/service.d/firewall_log_handle.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3874]: fw.trigger Firewall Trigger process started +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3874]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3875]: service.info Registered mcastproxy for mcastproxy-start using /etc/utopia/service.d/service_mcastproxy.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3875]: service.info Registered mcastproxy for mcastproxy-stop using /etc/utopia/service.d/service_mcastproxy.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3875]: service.info Registered mcastproxy for mcastproxy-restart using /etc/utopia/service.d/service_mcastproxy.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3875]: service.info Registered mcastproxy for wan-status using /etc/utopia/service.d/service_mcastproxy.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3875]: service.info Registered mcastproxy for lan-status using /etc/utopia/service.d/service_mcastproxy.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3879]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3875]: service.info Registered mcastproxy for bridge-status using /etc/utopia/service.d/service_mcastproxy.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3885]: service.info Registered mldproxy for mldproxy-start using /etc/utopia/service.d/service_mldproxy.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3885]: service.info Registered mldproxy for mldproxy-stop using /etc/utopia/service.d/service_mldproxy.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3885]: service.info Registered mldproxy for mldproxy-restart using /etc/utopia/service.d/service_mldproxy.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3885]: service.info Registered mldproxy for wan-status using /etc/utopia/service.d/service_mldproxy.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3885]: service.info Registered mldproxy for lan-status using /etc/utopia/service.d/service_mldproxy.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3897]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3896]: service.info Registered igd for igd-start using /etc/utopia/service.d/service_igd.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3896]: service.info Registered igd for igd-stop using /etc/utopia/service.d/service_igd.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3896]: service.info Registered igd for igd-restart using /etc/utopia/service.d/service_igd.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3896]: service.info Registered igd for lan-status using /etc/utopia/service.d/service_igd.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3896]: service.info Registered igd for snmp_subagent-status using /etc/utopia/service.d/service_igd.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3901]: service.info Registered misc for misc-start using /etc/utopia/service.d/service_misc.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3901]: service.info Registered misc for misc-stop using /etc/utopia/service.d/service_misc.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3901]: service.info Registered misc for misc-restart using /etc/utopia/service.d/service_misc.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3901]: service.info Registered misc for start-misc using /etc/utopia/service.d/service_misc.sh +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3922]: system.utctx Utopia_Init: Initializing +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3922]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3922]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3922]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3922]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3922]: system.utctx Utopia_Free: Freeing +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3922]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3923]: system.utctx Utopia_Init: Initializing +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3923]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3923]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3923]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3923]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3923]: system.utctx Utopia_Free: Freeing +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3923]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3929]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:13 RaspberryPi-Gateway dnsmasq[2207]: read /etc/hosts - 9 addresses +Dec 05 22:03:13 RaspberryPi-Gateway dnsmasq-dhcp[2207]: read /etc/dhcp_static_hosts +Dec 05 22:03:13 RaspberryPi-Gateway dnsmasq-dhcp[2207]: read /var/dhcp_options +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3941]: sshd.status stopping sshd service +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3940]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx Utopia_Init: Initializing +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx Utopia_Free: Freeing +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3950]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3966]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3983]: mldproxy.status starting mldproxy service +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3998]: ddns.status (3908) ddns is not enabled +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4003]: sshd.status starting sshd service +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4008]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4065]: mcastproxy.status starting mcastproxy service +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx Utopia_Init: Initializing +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4091]: system.utctx Utopia_Init: Initializing +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx Utopia_Free: Freeing +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4091]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4091]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4091]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4091]: system.utctx Utopia_Free: Freeing +Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4091]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:03:14 RaspberryPi-Gateway [4094]: fw.info firewall called with firewall-restart +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info firewall service initializing +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: 2017-12-05 22:03:14., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info firewall opening sysevent_fd 17, token 329 +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams, Parse the line read from file +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams, Check if interface matches +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams,Interface not found +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams, Parse the line read from file +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams, Check if interface matches +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams,Interface not found +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams, Parse the line read from file +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams, Check if interface matches +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams,Interface not found +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams, Parse the line read from file +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams, Check if interface matches +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams,Interface not found +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info starting firewall service +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info started firewall service +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info firewall closing firewall_lock +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info firewall closing sysevent_fd 17, token 329 +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info firewall closing dbus connection +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info firewall operation completed +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4150]: 2017-12-05 22:03:14., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:14 RaspberryPi-Gateway kernel: ctnetlink v0.93: registering with nfnetlink. +Dec 05 22:03:14 RaspberryPi-Gateway kernel[214]: [ 68.142512] ctnetlink v0.93: registering with nfnetlink. +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4172]: system.utctx Utopia_Init: Initializing +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4172]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4172]: 2017-12-05 22:03:14., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4172]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4172]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4172]: system.utctx Utopia_Free: Freeing +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4172]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx Utopia_Init: Initializing +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: 2017-12-05 22:03:14., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx Utopia_Free: Freeing +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: igd.info IP address:10.0.0.1 +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: igd.info Initilize IGD root device +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx Utopia_Init: Initializing +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: 2017-12-05 22:03:14., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx Utopia_Free: Freeing +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: igd.info + Root Device UUID:uuid:ebf5a0a0-1dd1-11b2-a90f-94103eb8fe9d +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: igd.info + + Create description file +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4175]: system.utctx Utopia_Init: Initializing +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4175]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4175]: 2017-12-05 22:03:14., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4175]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4175]: system.utctx Utopia_Free: Freeing +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4175]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4179]: igd.status starting igd service +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4180]: 2017-12-05 22:03:14., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4200]: mcastproxy.status starting mcastproxy service +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4242]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4256]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4258]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4260]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4261]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4261]: system.syscfg commit to store +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4272]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4274]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4276]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4278]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4280]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4282]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4286]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4288]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4291]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4325]: system.utctx Utopia_Init: Initializing +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4325]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4325]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4325]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4325]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4325]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4325]: system.utctx Utopia_Free: Freeing +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4325]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4328]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4331]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4333]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4334]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4340]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4341]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4363]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4364]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4405]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:16 RaspberryPi-Gateway dnsmasq[2207]: exiting on receipt of SIGTERM +Dec 05 22:03:16 RaspberryPi-Gateway dnsmasq[4434]: started, version 2.76 cachesize 150 +Dec 05 22:03:16 RaspberryPi-Gateway dnsmasq[4434]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect no-inotify +Dec 05 22:03:16 RaspberryPi-Gateway dnsmasq[4434]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# +Dec 05 22:03:16 RaspberryPi-Gateway dnsmasq[4434]: reading /etc/resolv.conf +Dec 05 22:03:16 RaspberryPi-Gateway dnsmasq[4434]: using nameserver 8.8.8.8#53 +Dec 05 22:03:16 RaspberryPi-Gateway dnsmasq[4434]: using nameserver 8.8.4.4#53 +Dec 05 22:03:16 RaspberryPi-Gateway dnsmasq[4434]: read /etc/hosts - 9 addresses +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4444]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4446]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4448]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4449]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4453]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4459]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4462]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4465]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway [4463]: fw.info firewall called with firewall-restart +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info firewall service initializing +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info firewall opening sysevent_fd 17, token 396 +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams, Parse the line read from file +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams, Check if interface matches +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams,Interface not found +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams, Parse the line read from file +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams, Check if interface matches +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams,Interface not found +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams, Parse the line read from file +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams, Check if interface matches +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams,Interface not found +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams, Parse the line read from file +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams, Check if interface matches +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams,Interface not found +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info starting firewall service +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4473]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4476]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4481]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info started firewall service +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info firewall closing firewall_lock +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info firewall closing sysevent_fd 17, token 396 +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info firewall closing dbus connection +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info firewall operation completed +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4502]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4518]: system.utctx Utopia_Init: Initializing +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4518]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4518]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4518]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4518]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4518]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4518]: system.utctx Utopia_Free: Freeing +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4518]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4525]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4528]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4530]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4531]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4537]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4538]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4539]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4558]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4574]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4434]: read /etc/hosts - 9 addresses +Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4434]: exiting on receipt of SIGTERM +Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4597]: started, version 2.76 cachesize 150 +Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4597]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect no-inotify +Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq-dhcp[4597]: DHCP, IP range 10.0.0.2 -- 10.0.0.253, lease time 7d +Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4597]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# +Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4597]: reading /etc/resolv.conf +Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4597]: using nameserver 8.8.8.8#53 +Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4597]: using nameserver 8.8.4.4#53 +Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4597]: read /etc/hosts - 9 addresses +Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq-dhcp[4597]: read /etc/dhcp_static_hosts +Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq-dhcp[4597]: read /var/dhcp_options +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Init: Initializing +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: 2017-12-05 22:03:41., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 118 +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 119 +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 120 +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 121 +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 122 +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 123 +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 124 +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Free: Freeing +Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:03:57 RaspberryPi-Gateway passwd[4688]: pam_unix(passwd:chauthtok): unrecognized option [obscure] +Dec 05 22:03:57 RaspberryPi-Gateway passwd[4688]: pam_unix(passwd:chauthtok): unrecognized option [obscure] +Dec 05 22:03:57 RaspberryPi-Gateway passwd[4688]: pam_unix(passwd:chauthtok): password changed for root +Dec 05 22:03:58 RaspberryPi-Gateway dnsmasq[4597]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# +Dec 05 22:03:58 RaspberryPi-Gateway dnsmasq[4597]: reading /etc/resolv.conf +Dec 05 22:03:58 RaspberryPi-Gateway dnsmasq[4597]: using nameserver 8.8.8.8#53 +Dec 05 22:03:58 RaspberryPi-Gateway dnsmasq[4597]: using nameserver 8.8.4.4#53 +Dec 05 22:03:58 RaspberryPi-Gateway dnsmasq-dhcp[4597]: DHCPRELEASE(brlan0) 10.0.0.155 30:30:31:31:30:31 unknown lease +Dec 05 22:04:00 RaspberryPi-Gateway UTOPIA[4707]: 2017-12-05 22:04:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:04:02 RaspberryPi-Gateway dnsmasq-dhcp[4597]: DHCPDISCOVER(brlan0) 30:30:31:31:30:31 +Dec 05 22:04:02 RaspberryPi-Gateway dnsmasq-dhcp[4597]: DHCPOFFER(brlan0) 10.0.0.155 30:30:31:31:30:31 +Dec 05 22:04:02 RaspberryPi-Gateway dnsmasq-dhcp[4597]: DHCPREQUEST(brlan0) 10.0.0.155 30:30:31:31:30:31 +Dec 05 22:04:02 RaspberryPi-Gateway dnsmasq-dhcp[4597]: DHCPACK(brlan0) 10.0.0.155 30:30:31:31:30:31 bft-node-bond0-101 +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Init: Initializing +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:04:12 RaspberryPi-Gateway CcspLMLite[3489]: LMlite-CLIENT <963> : Connected Mac = 30:30:31:31:30:31 +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: 2017-12-05 22:04:11., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_GetNamed: Failed on index 495 +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Free: Freeing +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Init: Initializing +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: 2017-12-05 22:04:11., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 118 +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 119 +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 120 +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 121 +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 122 +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 123 +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 124 +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Free: Freeing +Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 05 22:04:12 RaspberryPi-Gateway sh[257]: tdk_firewall_service.sh: v4 rule is missing in iptables, adding now +Dec 05 22:04:12 RaspberryPi-Gateway sh[257]: tdk_firewall_service.sh: v6 rule is missing in ip6tables, adding now +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Init: Initializing +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: 2017-12-05 22:04:41., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 118 +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 119 +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 120 +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 121 +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 122 +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 123 +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 124 +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Free: Freeing +Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Free: Freeing lock... diff --git a/reference/master-oe22_rpi3-systemd.log b/reference/master-oe22_rpi3-systemd.log new file mode 100644 index 00000000..d3e2919f --- /dev/null +++ b/reference/master-oe22_rpi3-systemd.log @@ -0,0 +1,4893 @@ + +-- Logs begin at Tue 2017-12-05 23:01:16 UTC, end at Wed 2017-12-06 16:18:23 UTC. -- +Dec 05 23:01:16 RaspberryPi-Gateway systemd-journald[109]: Runtime journal (/run/log/journal/) is 2.0M, max 64.0M, 62.0M free. +-- Subject: Disk space used by the journal +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Runtime journal (/run/log/journal/) is currently using 2.0M. +-- Maximum allowed usage is set to 64.0M. +-- Leaving at least 69.4M free (of currently available 460.6M of disk space). +-- Enforced usage limit is thus 64.0M, of which 62.0M are still available. +-- +-- The limits controlling how much disk space is used by the journal may +-- be configured with SystemMaxUse=, SystemKeepFree=, SystemMaxFileSize=, +-- RuntimeMaxUse=, RuntimeKeepFree=, RuntimeMaxFileSize= settings in +-- /etc/systemd/journald.conf. See journald.conf(5) for details. +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Booting Linux on physical CPU 0x0 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing cgroup subsys cpuset +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing cgroup subsys cpu +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing cgroup subsys cpuacct +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Linux version 4.4.50 (andre@chippy1) (gcc version 6.4.0 (GCC) ) #1 SMP Thu Nov 23 01:18:20 PST 2017 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d +Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Machine model: Raspberry Pi 3 Model B Rev 1.2 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: cma: Reserved 8 MiB at 0x3a800000 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Memory policy: Data cache writealloc +Dec 05 23:01:16 RaspberryPi-Gateway kernel: On node 0 totalpages: 241664 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: free_area_init_node: node 0, pgdat 808ecf40, node_mem_map b9fa6000 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Normal zone: 2124 pages used for memmap +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Normal zone: 0 pages reserved +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Normal zone: 241664 pages, LIFO batch:31 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_smp_init_cpus] enter (9540->f3003010) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_smp_init_cpus] ncores=4 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: PERCPU: Embedded 13 pages/cpu @b9f62000 s22540 r8192 d22516 u53248 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: pcpu-alloc: s22540 r8192 d22516 u53248 alloc=13*4096 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Built 1 zonelists in Zone order, mobility grouping on. Total pages: 239540 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Kernel command line: 8250.nr_uarts=1 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708_fb.fbswap=1 dma.dmachans=0x7f35 bcm2709.boardrev=0xa22082 bcm2709.serial=0x97016bd5 bcm2709.uart_clock=48000000 smsc95xx.macaddr=B8:27:EB:01:6B:D5 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait None +Dec 05 23:01:16 RaspberryPi-Gateway kernel: PID hash table entries: 4096 (order: 2, 16384 bytes) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Memory: 938900K/966656K available (6363K kernel code, 432K rwdata, 1872K rodata, 472K init, 764K bss, 19564K reserved, 8192K cma-reserved) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Virtual kernel memory layout: + vector : 0xffff0000 - 0xffff1000 ( 4 kB) + fixmap : 0xffc00000 - 0xfff00000 (3072 kB) + vmalloc : 0xbb800000 - 0xff800000 (1088 MB) + lowmem : 0x80000000 - 0xbb000000 ( 944 MB) + modules : 0x7f000000 - 0x80000000 ( 16 MB) + .text : 0x80008000 - 0x80813098 (8237 kB) + .init : 0x80814000 - 0x8088a000 ( 472 kB) + .data : 0x8088a000 - 0x808f62a8 ( 433 kB) + .bss : 0x808f9000 - 0x809b8114 ( 765 kB) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Hierarchical RCU implementation. +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Build-time adjustment of leaf fanout to 32. +Dec 05 23:01:16 RaspberryPi-Gateway kernel: NR_IRQS:16 nr_irqs:16 16 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Architected cp15 timer(s) running at 19.20MHz (phys). +Dec 05 23:01:16 RaspberryPi-Gateway kernel: clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns +Dec 05 23:01:16 RaspberryPi-Gateway kernel: sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Switching to timer-based delay loop, resolution 52ns +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Console: colour dummy device 80x30 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: pid_max: default: 32768 minimum: 301 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Disabling cpuset control group subsystem +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing cgroup subsys io +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing cgroup subsys memory +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing cgroup subsys devices +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing cgroup subsys freezer +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing cgroup subsys net_cls +Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU: Testing write buffer coherency: ok +Dec 05 23:01:16 RaspberryPi-Gateway kernel: ftrace: allocating 21146 entries in 63 pages +Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU0: update cpu_capacity 1024 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_smp_prepare_cpus] enter +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Setting up static identity map for 0x8240 - 0x8274 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_boot_secondary] cpu:1 started (0) 17 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_secondary_init] enter cpu:1 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU1: update cpu_capacity 1024 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_boot_secondary] cpu:2 started (0) 18 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_secondary_init] enter cpu:2 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU2: update cpu_capacity 1024 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU2: thread -1, cpu 2, socket 0, mpidr 80000002 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_boot_secondary] cpu:3 started (0) 15 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_secondary_init] enter cpu:3 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU3: update cpu_capacity 1024 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU3: thread -1, cpu 3, socket 0, mpidr 80000003 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Brought up 4 CPUs +Dec 05 23:01:16 RaspberryPi-Gateway kernel: SMP: Total of 4 processors activated (153.60 BogoMIPS). +Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU: All CPU(s) started in HYP mode. +Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU: Virtualization extensions available. +Dec 05 23:01:16 RaspberryPi-Gateway kernel: devtmpfs: initialized +Dec 05 23:01:16 RaspberryPi-Gateway kernel: VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 4 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns +Dec 05 23:01:16 RaspberryPi-Gateway kernel: pinctrl core: initialized pinctrl subsystem +Dec 05 23:01:16 RaspberryPi-Gateway kernel: NET: Registered protocol family 16 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: DMA: preallocated 4096 KiB pool for atomic coherent allocations +Dec 05 23:01:16 RaspberryPi-Gateway kernel: bcm2709: Mini UART enabled +Dec 05 23:01:16 RaspberryPi-Gateway kernel: hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers. +Dec 05 23:01:16 RaspberryPi-Gateway kernel: hw-breakpoint: maximum watchpoint size is 8 bytes. +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Serial: AMBA PL011 UART driver +Dec 05 23:01:16 RaspberryPi-Gateway kernel: uart-pl011 3f201000.uart: could not find pctldev for node /soc/gpio@7e200000/uart0_pins, deferring probe +Dec 05 23:01:16 RaspberryPi-Gateway kernel: bcm2835-mbox 3f00b880.mailbox: mailbox enabled +Dec 05 23:01:16 RaspberryPi-Gateway kernel: bcm2835-dma 3f007000.dma: DMA legacy API manager at f3007000, dmachans=0x1 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: SCSI subsystem initialized +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usbcore: registered new interface driver usbfs +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usbcore: registered new interface driver hub +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usbcore: registered new device driver usb +Dec 05 23:01:16 RaspberryPi-Gateway kernel: raspberrypi-firmware soc:firmware: Attached to firmware from 2017-04-05 11:49 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: clocksource: Switched to clocksource arch_sys_counter +Dec 05 23:01:16 RaspberryPi-Gateway kernel: FS-Cache: Loaded +Dec 05 23:01:16 RaspberryPi-Gateway kernel: CacheFiles: Loaded +Dec 05 23:01:16 RaspberryPi-Gateway kernel: NET: Registered protocol family 2 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: TCP established hash table entries: 8192 (order: 3, 32768 bytes) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: TCP bind hash table entries: 8192 (order: 4, 65536 bytes) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: TCP: Hash tables configured (established 8192 bind 8192) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: UDP hash table entries: 512 (order: 2, 16384 bytes) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: NET: Registered protocol family 1 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: RPC: Registered named UNIX socket transport module. +Dec 05 23:01:16 RaspberryPi-Gateway kernel: RPC: Registered udp transport module. +Dec 05 23:01:16 RaspberryPi-Gateway kernel: RPC: Registered tcp transport module. +Dec 05 23:01:16 RaspberryPi-Gateway kernel: RPC: Registered tcp NFSv4.1 backchannel transport module. +Dec 05 23:01:16 RaspberryPi-Gateway kernel: hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available +Dec 05 23:01:16 RaspberryPi-Gateway kernel: futex hash table entries: 1024 (order: 4, 65536 bytes) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: VFS: Disk quotas dquot_6.6.0 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: FS-Cache: Netfs 'nfs' registered for caching +Dec 05 23:01:16 RaspberryPi-Gateway kernel: NFS: Registering the id_resolver key type +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Key type id_resolver registered +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Key type id_legacy registered +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: io scheduler noop registered +Dec 05 23:01:16 RaspberryPi-Gateway kernel: io scheduler deadline registered +Dec 05 23:01:16 RaspberryPi-Gateway kernel: io scheduler cfq registered (default) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: BCM2708FB: allocated DMA memory fac10000 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: BCM2708FB: allocated DMA channel 0 @ f3007000 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Console: switching to colour frame buffer device 82x26 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled +Dec 05 23:01:16 RaspberryPi-Gateway kernel: console [ttyS0] disabled +Dec 05 23:01:16 RaspberryPi-Gateway kernel: 3f215040.uart: ttyS0 at MMIO 0x3f215040 (irq = 59, base_baud = 31250000) is a 16550 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: console [ttyS0] enabled +Dec 05 23:01:16 RaspberryPi-Gateway kernel: bcm2835-rng 3f104000.rng: hwrng registered +Dec 05 23:01:16 RaspberryPi-Gateway kernel: vc-cma: Videocore CMA driver +Dec 05 23:01:16 RaspberryPi-Gateway kernel: vc-cma: vc_cma_base = 0x00000000 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: vc-cma: vc_cma_size = 0x00000000 (0 MiB) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: vc-cma: vc_cma_initial = 0x00000000 (0 MiB) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: vc-mem: phys_addr:0x00000000 mem_base=0x3dc00000 mem_size:0x3f000000(1008 MiB) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: brd: module loaded +Dec 05 23:01:16 RaspberryPi-Gateway kernel: loop: module loaded +Dec 05 23:01:16 RaspberryPi-Gateway kernel: vchiq: vchiq_init_state: slot_zero = 0xbac80000, is_master = 0 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Loading iSCSI transport class v2.0-870. +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usbcore: registered new interface driver smsc95xx +Dec 05 23:01:16 RaspberryPi-Gateway kernel: dwc_otg: version 3.00a 10-AUG-2012 (platform bus) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Core Release: 2.80a +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Setting default values for core params +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Finished setting default values for core params +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Using Buffer DMA mode +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Periodic Transfer Interrupt Enhancement - disabled +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Multiprocessor Interrupt Enhancement - disabled +Dec 05 23:01:16 RaspberryPi-Gateway kernel: OTG VER PARAM: 0, OTG VER FLAG: 0 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Dedicated Tx FIFOs mode +Dec 05 23:01:16 RaspberryPi-Gateway kernel: WARN::dwc_otg_hcd_init:1047: FIQ DMA bounce buffers: virt = 0xbac04000 dma = 0xfac04000 len=9024 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: FIQ FSM acceleration enabled for : + Non-periodic Split Transactions + Periodic Split Transactions + High-Speed Isochronous Endpoints + Interrupt/Control Split Transaction hack enabled +Dec 05 23:01:16 RaspberryPi-Gateway kernel: dwc_otg: Microframe scheduler enabled +Dec 05 23:01:16 RaspberryPi-Gateway kernel: WARN::hcd_init_fiq:415: FIQ on core 1 at 0x8044accc +Dec 05 23:01:16 RaspberryPi-Gateway kernel: WARN::hcd_init_fiq:416: FIQ ASM at 0x8044b02c length 36 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: WARN::hcd_init_fiq:441: MPHI regs_base at 0xbb87e000 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: dwc_otg 3f980000.usb: DWC OTG Controller +Dec 05 23:01:16 RaspberryPi-Gateway kernel: dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: dwc_otg 3f980000.usb: irq 62, io mem 0x00000000 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Init: Port Power? op_state=1 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Init: Power Port (0) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb usb1: Product: DWC OTG Controller +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb usb1: Manufacturer: Linux 4.4.50 dwc_otg_hcd +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb usb1: SerialNumber: 3f980000.usb +Dec 05 23:01:16 RaspberryPi-Gateway kernel: hub 1-0:1.0: USB hub found +Dec 05 23:01:16 RaspberryPi-Gateway kernel: hub 1-0:1.0: 1 port detected +Dec 05 23:01:16 RaspberryPi-Gateway kernel: dwc_otg: FIQ enabled +Dec 05 23:01:16 RaspberryPi-Gateway kernel: dwc_otg: NAK holdoff enabled +Dec 05 23:01:16 RaspberryPi-Gateway kernel: dwc_otg: FIQ split-transaction FSM enabled +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Module dwc_common_port init +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usbcore: registered new interface driver usb-storage +Dec 05 23:01:16 RaspberryPi-Gateway kernel: mousedev: PS/2 mouse device common for all mice +Dec 05 23:01:16 RaspberryPi-Gateway kernel: bcm2835-cpufreq: min=600000 max=1200000 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: sdhci: Secure Digital Host Controller Interface driver +Dec 05 23:01:16 RaspberryPi-Gateway kernel: sdhci: Copyright(c) Pierre Ossman +Dec 05 23:01:16 RaspberryPi-Gateway kernel: sdhost: log_buf @ bac07000 (fac07000) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc0: sdhost-bcm2835 loaded - DMA enabled (>1) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc-bcm2835 3f300000.mmc: mmc_debug:0 mmc_debug2:0 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc-bcm2835 3f300000.mmc: DMA channel allocated +Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc0: host does not support reading read-only switch, assuming write-enable +Dec 05 23:01:16 RaspberryPi-Gateway kernel: sdhci-pltfm: SDHCI platform and OF driver helper +Dec 05 23:01:16 RaspberryPi-Gateway kernel: ledtrig-cpu: registered to indicate activity on CPUs +Dec 05 23:01:16 RaspberryPi-Gateway kernel: hidraw: raw HID events driver (C) Jiri Kosina +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usbcore: registered new interface driver usbhid +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usbhid: USB HID core driver +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing XFRM netlink socket +Dec 05 23:01:16 RaspberryPi-Gateway kernel: NET: Registered protocol family 17 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Key type dns_resolver registered +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Registering SWP/SWPB emulation handler +Dec 05 23:01:16 RaspberryPi-Gateway kernel: registered taskstats version 1 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: vc-sm: Videocore shared memory driver +Dec 05 23:01:16 RaspberryPi-Gateway kernel: [vc_sm_connected_init]: start +Dec 05 23:01:16 RaspberryPi-Gateway kernel: [vc_sm_connected_init]: end - returning 0 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: of_cfs_init +Dec 05 23:01:16 RaspberryPi-Gateway kernel: of_cfs_init: OK +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Indeed it is in host mode hprt0 = 00021501 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc0: new high speed SDHC card at address 0001 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmcblk0: mmc0:0001 EB1QT 29.8 GiB +Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmcblk0: p1 p2 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: VFS: Mounted root (ext4 filesystem) readonly on device 179:2. +Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc1: queuing unknown CIS tuple 0x80 (2 bytes) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc1: queuing unknown CIS tuple 0x80 (3 bytes) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc1: queuing unknown CIS tuple 0x80 (3 bytes) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc1: queuing unknown CIS tuple 0x80 (7 bytes) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: devtmpfs: mounted +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Freeing unused kernel memory: 472K (80814000 - 8088a000) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc1: new high speed SDIO card at address 0001 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1: new high-speed USB device number 2 using dwc_otg +Dec 05 23:01:16 RaspberryPi-Gateway kernel: Indeed it is in host mode hprt0 = 00001101 +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: System time before build time, advancing clock. +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1: New USB device found, idVendor=0424, idProduct=9514 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: hub 1-1:1.0: USB hub found +Dec 05 23:01:16 RaspberryPi-Gateway kernel: hub 1-1:1.0: 5 ports detected +Dec 05 23:01:16 RaspberryPi-Gateway kernel: NET: Registered protocol family 10 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 47 bits of entropy available) +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: systemd 230 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN) +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Detected architecture arm. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Set hostname to . +Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 59 bits of entropy available) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 61 bits of entropy available) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 62 bits of entropy available) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 64 bits of entropy available) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.1: new high-speed USB device number 3 using dwc_otg +Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: smsc95xx v1.0.4 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:01:6b:d5 +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Listening on Journal Socket. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Listening on Journal Socket (/dev/log). +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Reached target Network. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Reached target Remote File Systems. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Created slice User and Session Slice. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Dispatch Password Requests to Console Directory Watch. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Listening on Syslog Socket. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Listening on udev Kernel Socket. +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.5: new high-speed USB device number 4 using dwc_otg +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Reached target Swap. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Forward Password Requests to Wall Directory Watch. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Listening on udev Control Socket. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Created slice System Slice. +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.5: New USB device found, idVendor=13b1, idProduct=0041 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=6 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.5: Product: Linksys USB3GIGV1 +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.5: Manufacturer: Linksys +Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.5: SerialNumber: 000001000000 +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounting Debug File System... +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting Journal Service... +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounting Temporary Directory... +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Created slice system-serial\x2dgetty.slice. +Dec 05 23:01:16 RaspberryPi-Gateway systemd-journald[109]: Journal started +-- Subject: The journal has been started +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- The system journal process has started up, opened the journal +-- files for writing and is now ready to process requests. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounting POSIX Message Queue File System... +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Created slice system-getty.slice. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounting Configuration File System... +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting Setup Virtual Console... +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting Apply Kernel Variables... +Dec 05 23:01:16 RaspberryPi-Gateway systemd-sysctl[123]: Couldn't write '90' to 'net/ipv4/netfilter/ip_conntrack_udp_timeout', ignoring: No such file or directory +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting Remount Root and Kernel File Systems... +Dec 05 23:01:16 RaspberryPi-Gateway kernel: EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting Create list of required static device nodes for the current kernel... +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Reached target Slices. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Listening on /dev/initctl Compatibility Named Pipe. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounted Debug File System. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounted POSIX Message Queue File System. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounted Configuration File System. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounted Temporary Directory. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Journal Service. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Setup Virtual Console. +-- Subject: Unit systemd-vconsole-setup.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-vconsole-setup.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Apply Kernel Variables. +-- Subject: Unit systemd-sysctl.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-sysctl.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Remount Root and Kernel File Systems. +-- Subject: Unit systemd-remount-fs.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-remount-fs.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Create list of required static device nodes for the current kernel. +-- Subject: Unit kmod-static-nodes.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit kmod-static-nodes.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting Create Static Device Nodes in /dev... +-- Subject: Unit systemd-tmpfiles-setup-dev.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-tmpfiles-setup-dev.service has begun starting up. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting udev Coldplug all Devices... +-- Subject: Unit systemd-udev-trigger.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-udev-trigger.service has begun starting up. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting Load/Save Random Seed... +-- Subject: Unit systemd-random-seed.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-random-seed.service has begun starting up. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting Flush Journal to Persistent Storage... +-- Subject: Unit systemd-journal-flush.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-journal-flush.service has begun starting up. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Create Static Device Nodes in /dev. +-- Subject: Unit systemd-tmpfiles-setup-dev.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-tmpfiles-setup-dev.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Load/Save Random Seed. +-- Subject: Unit systemd-random-seed.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-random-seed.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Reached target Local File Systems (Pre). +-- Subject: Unit local-fs-pre.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit local-fs-pre.target has finished starting up. +-- +-- The start-up result is done. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounting /var/volatile... +-- Subject: Unit var-volatile.mount has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit var-volatile.mount has begun starting up. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting udev Kernel Device Manager... +-- Subject: Unit systemd-udevd.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-udevd.service has begun starting up. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounted /var/volatile. +-- Subject: Unit var-volatile.mount has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit var-volatile.mount has finished starting up. +-- +-- The start-up result is done. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Reached target Local File Systems. +-- Subject: Unit local-fs.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit local-fs.target has finished starting up. +-- +-- The start-up result is done. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Flush Journal to Persistent Storage. +-- Subject: Unit systemd-journal-flush.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-journal-flush.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started udev Kernel Device Manager. +-- Subject: Unit systemd-udevd.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-udevd.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 23:01:17 RaspberryPi-Gateway mtp-probe[164]: checking bus 1, device 4: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5" +Dec 05 23:01:17 RaspberryPi-Gateway mtp-probe[164]: bus: 1, device: 4 was not an MTP device +Dec 05 23:01:17 RaspberryPi-Gateway systemd[1]: Starting Create Volatile Files and Directories... +-- Subject: Unit systemd-tmpfiles-setup.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-tmpfiles-setup.service has begun starting up. +Dec 05 23:01:17 RaspberryPi-Gateway kernel: cdc_ether 1-1.5:2.0 eth1: register 'cdc_ether' at usb-3f980000.usb-1.5, CDC Ethernet Device, 94:10:3e:b8:fe:9d +Dec 05 23:01:17 RaspberryPi-Gateway kernel: usbcore: registered new interface driver cdc_ether +Dec 05 23:01:17 RaspberryPi-Gateway systemd-tmpfiles[177]: "/var/tmp" already exists and is not a directory. +Dec 05 23:01:17 RaspberryPi-Gateway systemd-tmpfiles[177]: "/var/log" already exists and is not a directory. +Dec 05 23:01:17 RaspberryPi-Gateway systemd[1]: Started Create Volatile Files and Directories. +-- Subject: Unit systemd-tmpfiles-setup.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-tmpfiles-setup.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 23:01:17 RaspberryPi-Gateway systemd[1]: Starting Network Time Synchronization... +-- Subject: Unit systemd-timesyncd.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-timesyncd.service has begun starting up. +Dec 05 23:01:17 RaspberryPi-Gateway systemd[1]: Starting Update UTMP about System Boot/Shutdown... +-- Subject: Unit systemd-update-utmp.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-update-utmp.service has begun starting up. +Dec 05 23:01:17 RaspberryPi-Gateway systemd[1]: Started udev Coldplug all Devices. +-- Subject: Unit systemd-udev-trigger.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-udev-trigger.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 23:01:17 RaspberryPi-Gateway kernel: lirc_dev: IR Remote Control driver registered, major 244 +Dec 05 23:01:17 RaspberryPi-Gateway systemd[1]: Started Update UTMP about System Boot/Shutdown. +-- Subject: Unit systemd-update-utmp.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-update-utmp.service has finished starting up. +-- +-- The start-up result is done. +Dec 05 23:01:17 RaspberryPi-Gateway kernel: gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000 +Dec 05 23:01:17 RaspberryPi-Gateway systemd[1]: Found device /dev/ttyAMA0. +-- Subject: Unit dev-ttyAMA0.device has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit dev-ttyAMA0.device has finished starting up. +-- +-- The start-up result is done. +Dec 05 23:01:17 RaspberryPi-Gateway kernel: bcm2835-wdt 3f100000.watchdog: Broadcom BCM2835 watchdog timer +Dec 05 23:01:17 RaspberryPi-Gateway kernel: lirc_rpi: module is from the staging directory, the quality is unknown, you have been warned. +Dec 05 23:01:17 RaspberryPi-Gateway systemd[1]: Found device /dev/ttyS0. +-- Subject: Unit dev-ttyS0.device has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit dev-ttyS0.device has finished starting up. +-- +-- The start-up result is done. +Dec 05 23:01:17 RaspberryPi-Gateway mtp-probe[203]: checking bus 1, device 4: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5" +Dec 05 23:01:17 RaspberryPi-Gateway mtp-probe[203]: bus: 1, device: 4 was not an MTP device +Dec 05 23:01:17 RaspberryPi-Gateway mtp-probe[204]: checking bus 1, device 3: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1" +Dec 05 23:01:17 RaspberryPi-Gateway mtp-probe[204]: bus: 1, device: 3 was not an MTP device +Dec 05 23:01:17 RaspberryPi-Gateway systemd-timesyncd[185]: System clock time unset or jumped backwards, restoring from recorded timestamp: Wed 2017-12-06 16:16:17 UTC +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Time has been changed +-- Subject: Time change +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- The system clock has been changed to REALTIME microseconds after January 1st, 1970. +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started Network Time Synchronization. +-- Subject: Unit systemd-timesyncd.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-timesyncd.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway kernel: random: nonblocking pool is initialized +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Reached target System Time Synchronized. +-- Subject: Unit time-sync.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit time-sync.target has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway kernel: usbcore: registered new interface driver brcmfmac +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Reached target System Initialization. +-- Subject: Unit sysinit.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit sysinit.target has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started Daily Cleanup of Temporary Directories. +-- Subject: Unit systemd-tmpfiles-clean.timer has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-tmpfiles-clean.timer has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Reached target Timers. +-- Subject: Unit timers.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit timers.target has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started Check RPI Wifi Support Initialized Path. +-- Subject: Unit checkrpiwifisupport.path has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit checkrpiwifisupport.path has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Listening on D-Bus System Message Bus Socket. +-- Subject: Unit dbus.socket has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit dbus.socket has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway kernel: brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Aug 29 2016 20:48:16 version 7.45.41.26 (r640327) FWID 01-4527cfab +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started RPI WIFI Initialized Path. +-- Subject: Unit rpiwifiinitialized.path has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit rpiwifiinitialized.path has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway kernel: brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Listening on RPCbind Server Activation Socket. +-- Subject: Unit rpcbind.socket has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit rpcbind.socket has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Reached target Sockets. +-- Subject: Unit sockets.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit sockets.target has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started CcspCrSsp Restart Occurred Path. +-- Subject: Unit crResetDetect.path has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit crResetDetect.path has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started WiFi Initialized Path. +-- Subject: Unit wifiinitialized.path has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit wifiinitialized.path has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Reached target Paths. +-- Subject: Unit paths.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit paths.target has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Reached target Basic System. +-- Subject: Unit basic.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit basic.target has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Starting Login Service... +-- Subject: Unit systemd-logind.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-logind.service has begun starting up. +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started Gwprovapp service. +-- Subject: Unit gwprovapp.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit gwprovapp.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway kernel: brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code +Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: World regulatory domain updated: +Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: DFS Master region: unset +Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) +Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A) +Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz, 92000 KHz AUTO), (N/A, 2000 mBm), (N/A) +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Starting Permit User Sessions... +-- Subject: Unit systemd-user-sessions.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-user-sessions.service has begun starting up. +Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A) +Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A) +Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s) +Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s) +Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A) +Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A) +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started D-Bus System Message Bus. +-- Subject: Unit dbus.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit dbus.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway gw_prov_utopia[218]: syslogd: can't open '/etc/syslog.conf': No such file or directory +Dec 06 16:16:17 RaspberryPi-Gateway gw_prov_utopia[218]: ln: /crontabs: File exists +Dec 06 16:16:17 RaspberryPi-Gateway gw_prov_utopia[218]: ******************************************************************* +Dec 06 16:16:17 RaspberryPi-Gateway gw_prov_utopia[218]: * +Dec 06 16:16:17 RaspberryPi-Gateway gw_prov_utopia[218]: * Copyright (c) 2010 by Cisco Systems, Inc. All Rights Reserved. +Dec 06 16:16:17 RaspberryPi-Gateway gw_prov_utopia[218]: * +Dec 06 16:16:17 RaspberryPi-Gateway gw_prov_utopia[218]: ******************************************************************* +Dec 06 16:16:17 RaspberryPi-Gateway kernel: lirc_rpi: auto-detected active high receiver on GPIO pin 18 +Dec 06 16:16:17 RaspberryPi-Gateway kernel: lirc_rpi lirc_rpi: lirc_dev: driver lirc_rpi registered at minor = 0 +Dec 06 16:16:17 RaspberryPi-Gateway kernel: lirc_rpi: driver registered! +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Starting TDK Test Agent Start... +-- Subject: Unit tdk.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit tdk.service has begun starting up. +Dec 06 16:16:17 RaspberryPi-Gateway UTOPIA[236]: 2017-12-06 16:16:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon.... +-- Subject: Unit snmpd.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit snmpd.service has begun starting up. +Dec 06 16:16:17 RaspberryPi-Gateway UTOPIA[236]: system.syscfg Shared memory file not found +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Starting PsmSsp service... +-- Subject: Unit PsmSsp.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit PsmSsp.service has begun starting up. +Dec 06 16:16:17 RaspberryPi-Gateway UTOPIA[236]: 2017-12-06 16:16:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:513, Error initializing shared memor +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started Kernel Logging Service. +-- Subject: Unit busybox-klogd.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit busybox-klogd.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: klogd started: BusyBox v1.24.1 (2017-11-23 01:22:04 PST) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Booting Linux on physical CPU 0x0 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Initializing cgroup subsys cpuset +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Initializing cgroup subsys cpu +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Initializing cgroup subsys cpuacct +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Linux version 4.4.50 (andre@chippy1) (gcc version 6.4.0 (GCC) ) #1 SMP Thu Nov 23 01:18:20 PST 2017 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Machine model: Raspberry Pi 3 Model B Rev 1.2 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] cma: Reserved 8 MiB at 0x3a800000 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Memory policy: Data cache writealloc +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] On node 0 totalpages: 241664 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] free_area_init_node: node 0, pgdat 808ecf40, node_mem_map b9fa6000 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Normal zone: 2124 pages used for memmap +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Normal zone: 0 pages reserved +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Normal zone: 241664 pages, LIFO batch:31 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] [bcm2709_smp_init_cpus] enter (9540->f3003010) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] [bcm2709_smp_init_cpus] ncores=4 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] PERCPU: Embedded 13 pages/cpu @b9f62000 s22540 r8192 d22516 u53248 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] pcpu-alloc: s22540 r8192 d22516 u53248 alloc=13*4096 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 239540 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Kernel command line: 8250.nr_uarts=1 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708_fb.fbswap=1 dma.dmachans=0x7f35 bcm2709.boardrev=0xa22082 bcm2709.serial=0x97016bd5 bcm2709.uart_clock=48000000 smsc95xx.macaddr=B8:27:EB:01:6B:D5 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait None +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Memory: 938900K/966656K available (6363K kernel code, 432K rwdata, 1872K rodata, 472K init, 764K bss, 19564K reserved, 8192K cma-reserved) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Virtual kernel memory layout: +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Starting CcspCrSsp service... +-- Subject: Unit CcspCrSsp.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspCrSsp.service has begun starting up. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] vmalloc : 0xbb800000 - 0xff800000 (1088 MB) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] lowmem : 0x80000000 - 0xbb000000 ( 944 MB) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] modules : 0x7f000000 - 0x80000000 ( 16 MB) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] .text : 0x80008000 - 0x80813098 (8237 kB) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] .init : 0x80814000 - 0x8088a000 ( 472 kB) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] .data : 0x8088a000 - 0x808f62a8 ( 433 kB) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] .bss : 0x808f9000 - 0x809b8114 ( 765 kB) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Hierarchical RCU implementation. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Build-time adjustment of leaf fanout to 32. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] NR_IRQS:16 nr_irqs:16 16 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Architected cp15 timer(s) running at 19.20MHz (phys). +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started System Logging Service. +-- Subject: Unit busybox-syslog.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit busybox-syslog.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000009] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000024] Switching to timer-based delay loop, resolution 52ns +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000279] Console: colour dummy device 80x30 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000317] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000339] pid_max: default: 32768 minimum: 301 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000646] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000661] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.001606] Disabling cpuset control group subsystem +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.001637] Initializing cgroup subsys io +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.001667] Initializing cgroup subsys memory +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.001706] Initializing cgroup subsys devices +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.001726] Initializing cgroup subsys freezer +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.001745] Initializing cgroup subsys net_cls +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.001793] CPU: Testing write buffer coherency: ok +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.001852] ftrace: allocating 21146 entries in 63 pages +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.051390] CPU0: update cpu_capacity 1024 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.051420] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.051432] [bcm2709_smp_prepare_cpus] enter +Dec 06 16:16:17 RaspberryPi-Gateway sh[278]: bbhm patch is not required +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.051569] Setting up static identity map for 0x8240 - 0x8274 +Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started Permit User Sessions. +-- Subject: Unit systemd-user-sessions.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-user-sessions.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.053215] [bcm2709_boot_secondary] cpu:1 started (0) 17 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.053440] [bcm2709_secondary_init] enter cpu:1 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.053484] CPU1: update cpu_capacity 1024 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.053490] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.053864] [bcm2709_boot_secondary] cpu:2 started (0) 18 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054050] [bcm2709_secondary_init] enter cpu:2 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054070] CPU2: update cpu_capacity 1024 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054076] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054435] [bcm2709_boot_secondary] cpu:3 started (0) 15 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054575] [bcm2709_secondary_init] enter cpu:3 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054595] CPU3: update cpu_capacity 1024 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054600] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054659] Brought up 4 CPUs +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054682] SMP: Total of 4 processors activated (153.60 BogoMIPS). +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054689] CPU: All CPU(s) started in HYP mode. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054696] CPU: Virtualization extensions available. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.055315] devtmpfs: initialized +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.066008] VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 4 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.066337] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.067056] pinctrl core: initialized pinctrl subsystem +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.067578] NET: Registered protocol family 16 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.072734] DMA: preallocated 4096 KiB pool for atomic coherent allocations +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.079861] bcm2709: Mini UART enabled +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.079906] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.079916] hw-breakpoint: maximum watchpoint size is 8 bytes. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.080069] Serial: AMBA PL011 UART driver +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.080205] uart-pl011 3f201000.uart: could not find pctldev for node /soc/gpio@7e200000/uart0_pins, deferring probe +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.080371] bcm2835-mbox 3f00b880.mailbox: mailbox enabled +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.143457] bcm2835-dma 3f007000.dma: DMA legacy API manager at f3007000, dmachans=0x1 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.144021] SCSI subsystem initialized +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.144203] usbcore: registered new interface driver usbfs +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.144280] usbcore: registered new interface driver hub +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.144371] usbcore: registered new device driver usb +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.150934] raspberrypi-firmware soc:firmware: Attached to firmware from 2017-04-05 11:49 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.162292] clocksource: Switched to clocksource arch_sys_counter +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.208279] FS-Cache: Loaded +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.208553] CacheFiles: Loaded +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.220617] NET: Registered protocol family 2 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.221466] TCP established hash table entries: 8192 (order: 3, 32768 bytes) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.221580] TCP bind hash table entries: 8192 (order: 4, 65536 bytes) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.221768] TCP: Hash tables configured (established 8192 bind 8192) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.221861] UDP hash table entries: 512 (order: 2, 16384 bytes) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.221907] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) +Dec 06 16:16:18 RaspberryPi-Gateway snmpd[243]: pcilib: Cannot open /proc/bus/pci +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.222130] NET: Registered protocol family 1 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.222471] RPC: Registered named UNIX socket transport module. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.222481] RPC: Registered udp transport module. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.222490] RPC: Registered tcp transport module. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.222498] RPC: Registered tcp NFSv4.1 backchannel transport module. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.223451] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.224752] futex hash table entries: 1024 (order: 4, 65536 bytes) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.237770] VFS: Disk quotas dquot_6.6.0 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.238077] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.240175] FS-Cache: Netfs 'nfs' registered for caching +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.241053] NFS: Registering the id_resolver key type +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.241103] Key type id_resolver registered +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.241112] Key type id_legacy registered +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.243394] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.243527] io scheduler noop registered +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.243547] io scheduler deadline registered +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.243601] io scheduler cfq registered (default) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.246086] BCM2708FB: allocated DMA memory fac10000 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.246112] BCM2708FB: allocated DMA channel 0 @ f3007000 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.251142] Console: switching to colour frame buffer device 82x26 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.328820] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.330219] console [ttyS0] disabled +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.330292] 3f215040.uart: ttyS0 at MMIO 0x3f215040 (irq = 59, base_baud = 31250000) is a 16550 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.049309] console [ttyS0] enabled +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.054147] bcm2835-rng 3f104000.rng: hwrng registered +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.059455] vc-cma: Videocore CMA driver +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.063452] vc-cma: vc_cma_base = 0x00000000 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.068221] vc-cma: vc_cma_size = 0x00000000 (0 MiB) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.073708] vc-cma: vc_cma_initial = 0x00000000 (0 MiB) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.079401] vc-mem: phys_addr:0x00000000 mem_base=0x3dc00000 mem_size:0x3f000000(1008 MiB) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.102359] brd: module loaded +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.114100] loop: module loaded +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.118177] vchiq: vchiq_init_state: slot_zero = 0xbac80000, is_master = 0 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.126603] Loading iSCSI transport class v2.0-870. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.132174] usbcore: registered new interface driver smsc95xx +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.138087] dwc_otg: version 3.00a 10-AUG-2012 (platform bus) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.344201] Core Release: 2.80a +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.347390] Setting default values for core params +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.352268] Finished setting default values for core params +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.558273] Using Buffer DMA mode +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.561635] Periodic Transfer Interrupt Enhancement - disabled +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.567564] Multiprocessor Interrupt Enhancement - disabled +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.573230] OTG VER PARAM: 0, OTG VER FLAG: 0 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.577650] Dedicated Tx FIFOs mode +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.581481] WARN::dwc_otg_hcd_init:1047: FIQ DMA bounce buffers: virt = 0xbac04000 dma = 0xfac04000 len=9024 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.591490] FIQ FSM acceleration enabled for : +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.591490] Non-periodic Split Transactions +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.591490] Periodic Split Transactions +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.591490] High-Speed Isochronous Endpoints +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.591490] Interrupt/Control Split Transaction hack enabled +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.614187] dwc_otg: Microframe scheduler enabled +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.614231] WARN::hcd_init_fiq:415: FIQ on core 1 at 0x8044accc +Dec 06 16:16:18 RaspberryPi-Gateway PsmSsp[250]: Conf file /etc/debug.ini open success +Dec 06 16:16:18 RaspberryPi-Gateway PsmSsp[250]: ssp_CfmReadCurConfig: Fail to import custom params +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.620238] WARN::hcd_init_fiq:416: FIQ ASM at 0x8044b02c length 36 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.626599] WARN::hcd_init_fiq:441: MPHI regs_base at 0xbb87e000 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.632758] dwc_otg 3f980000.usb: DWC OTG Controller +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.637819] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.645271] dwc_otg 3f980000.usb: irq 62, io mem 0x00000000 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.650964] Init: Port Power? op_state=1 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.654956] Init: Power Port (0) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.658411] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.665319] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.672663] usb usb1: Product: DWC OTG Controller +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.677436] usb usb1: Manufacturer: Linux 4.4.50 dwc_otg_hcd +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.683192] usb usb1: SerialNumber: 3f980000.usb +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.688585] hub 1-0:1.0: USB hub found +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.692459] hub 1-0:1.0: 1 port detected +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.696970] dwc_otg: FIQ enabled +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.696979] dwc_otg: NAK holdoff enabled +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.696987] dwc_otg: FIQ split-transaction FSM enabled +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.697015] Module dwc_common_port init +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.697255] usbcore: registered new interface driver usb-storage +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.703611] mousedev: PS/2 mouse device common for all mice +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.709948] bcm2835-cpufreq: min=600000 max=1200000 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.715198] sdhci: Secure Digital Host Controller Interface driver +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.721466] sdhci: Copyright(c) Pierre Ossman +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.726224] sdhost: log_buf @ bac07000 (fac07000) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.792405] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.800239] mmc-bcm2835 3f300000.mmc: mmc_debug:0 mmc_debug2:0 +Dec 06 16:16:18 RaspberryPi-Gateway sh[294]: Going to check the iptable rules +Dec 06 16:16:18 RaspberryPi-Gateway sh[294]: Enable iptable rules for TDK +Dec 06 16:16:18 RaspberryPi-Gateway sh[294]: Going to start Agent +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.806176] mmc-bcm2835 3f300000.mmc: DMA channel allocated +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.849147] mmc0: host does not support reading read-only switch, assuming write-enable +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.852399] sdhci-pltfm: SDHCI platform and OF driver helper +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.852796] ledtrig-cpu: registered to indicate activity on CPUs +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.852912] hidraw: raw HID events driver (C) Jiri Kosina +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.853095] usbcore: registered new interface driver usbhid +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.853098] usbhid: USB HID core driver +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.853652] Initializing XFRM netlink socket +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.853678] NET: Registered protocol family 17 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.853814] Key type dns_resolver registered +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.854240] Registering SWP/SWPB emulation handler +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.854985] registered taskstats version 1 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.855168] vc-sm: Videocore shared memory driver +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.855175] [vc_sm_connected_init]: start +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.863390] [vc_sm_connected_init]: end - returning 0 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.864749] 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.865131] of_cfs_init +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.865205] of_cfs_init: OK +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.892396] Indeed it is in host mode hprt0 = 00021501 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.941569] mmc0: new high speed SDHC card at address 0001 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.942234] mmcblk0: mmc0:0001 EB1QT 29.8 GiB +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.953561] mmcblk0: p1 p2 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.966170] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.974443] VFS: Mounted root (ext4 filesystem) readonly on device 179:2. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.974565] mmc1: queuing unknown CIS tuple 0x80 (2 bytes) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.976117] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.977672] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.980451] mmc1: queuing unknown CIS tuple 0x80 (7 bytes) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.007348] devtmpfs: mounted +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.011074] Freeing unused kernel memory: 472K (80814000 - 8088a000) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.071090] mmc1: new high speed SDIO card at address 0001 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.072329] usb 1-1: new high-speed USB device number 2 using dwc_otg +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.076771] Indeed it is in host mode hprt0 = 00001101 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.210870] systemd[1]: System time before build time, advancing clock. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.272616] usb 1-1: New USB device found, idVendor=0424, idProduct=9514 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.279429] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.287550] hub 1-1:1.0: USB hub found +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.291503] hub 1-1:1.0: 5 ports detected +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.304260] NET: Registered protocol family 10 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.317609] random: systemd: uninitialized urandom read (16 bytes read, 47 bits of entropy available) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.332463] systemd[1]: systemd 230 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.351417] systemd[1]: Detected architecture arm. +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.383109] systemd[1]: Set hostname to . +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.443248] random: systemd: uninitialized urandom read (16 bytes read, 59 bits of entropy available) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.458844] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 61 bits of entropy available) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.459527] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 62 bits of entropy available) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.479391] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 64 bits of entropy available) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.566790] random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.576619] random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.582323] usb 1-1.1: new high-speed USB device number 3 using dwc_otg +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.593070] random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.602868] random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.613144] random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.692665] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00 +Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.699662] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 +Dec 06 16:16:18 RaspberryPi-Gateway snmpd[243]: pcilib: Cannot find any working access method. +Dec 06 16:16:18 RaspberryPi-Gateway snmpd[243]: pcilib: pci_init failed +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.709942] smsc95xx v1.0.4 +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.775714] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:01:6b:d5 +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.818569] systemd[1]: Listening on Journal Socket. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.842760] systemd[1]: Listening on Journal Socket (/dev/log). +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.872471] systemd[1]: Reached target Network. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.892489] systemd[1]: Reached target Remote File Systems. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.925075] systemd[1]: Created slice User and Session Slice. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.952724] systemd[1]: Started Dispatch Password Requests to Console Directory Watch. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.982575] systemd[1]: Listening on Syslog Socket. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.002559] systemd[1]: Listening on udev Kernel Socket. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.022329] usb 1-1.5: new high-speed USB device number 4 using dwc_otg +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.032454] systemd[1]: Reached target Swap. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.052656] systemd[1]: Started Forward Password Requests to Wall Directory Watch. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.097531] systemd[1]: Listening on udev Control Socket. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.123182] systemd[1]: Created slice System Slice. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.143221] usb 1-1.5: New USB device found, idVendor=13b1, idProduct=0041 +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.150202] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=6 +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.157641] usb 1-1.5: Product: Linksys USB3GIGV1 +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.162444] usb 1-1.5: Manufacturer: Linksys +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.166780] usb 1-1.5: SerialNumber: 000001000000 +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.192603] systemd[1]: Mounting Debug File System... +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.215134] systemd[1]: Starting Journal Service... +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.247256] systemd[1]: Mounting Temporary Directory... +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.260546] systemd[1]: Created slice system-serial\x2dgetty.slice. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.332657] systemd[1]: Mounting POSIX Message Queue File System... +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.363575] systemd[1]: Created slice system-getty.slice. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.397037] systemd[1]: Mounting Configuration File System... +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.413963] systemd[1]: Starting Setup Virtual Console... +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.445259] systemd[1]: Starting Apply Kernel Variables... +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.475426] systemd[1]: Starting Remount Root and Kernel File Systems... +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.500249] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.509067] systemd[1]: Starting Create list of required static device nodes for the current kernel... +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.542597] systemd[1]: Reached target Slices. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.562970] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.627540] systemd[1]: Mounted Debug File System. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.652560] systemd[1]: Mounted POSIX Message Queue File System. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.682505] systemd[1]: Mounted Configuration File System. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.712499] systemd[1]: Mounted Temporary Directory. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.732856] systemd[1]: Started Journal Service. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.135115] systemd-journald[109]: Received request to flush runtime journal from PID 1 +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.281762] cdc_ether 1-1.5:2.0 eth1: register 'cdc_ether' at usb-3f980000.usb-1.5, CDC Ethernet Device, 94:10:3e:b8:fe:9d +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.297130] usbcore: registered new interface driver cdc_ether +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.415534] lirc_dev: IR Remote Control driver registered, major 244 +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.461582] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000 +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.484806] bcm2835-wdt 3f100000.watchdog: Broadcom BCM2835 watchdog timer +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.487794] lirc_rpi: module is from the staging directory, the quality is unknown, you have been warned. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.703295] random: nonblocking pool is initialized +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.729671] usbcore: registered new interface driver brcmfmac +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.855847] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Aug 29 2016 20:48:16 version 7.45.41.26 (r640327) FWID 01-4527cfab +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.893913] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.148211] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.154828] cfg80211: World regulatory domain updated: +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.160040] cfg80211: DFS Master region: unset +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.164499] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.174416] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A) +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.182565] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz, 92000 KHz AUTO), (N/A, 2000 mBm), (N/A) +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.192116] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A) +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.200325] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A) +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.200335] cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s) +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.200342] cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s) +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.200355] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A) +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.200362] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A) +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.443388] lirc_rpi: auto-detected active high receiver on GPIO pin 18 +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.450608] lirc_rpi lirc_rpi: lirc_dev: driver lirc_rpi registered at minor = 0 +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.458185] lirc_rpi: driver registered! +Dec 06 16:16:18 RaspberryPi-Gateway syscfg_create[322]: 2017-12-06 16:16:18., ../../../../git/source/syscfg/lib/syscfg_lib.c:405, Enter in function syscfg_create +Dec 06 16:16:18 RaspberryPi-Gateway syscfg_create[322]: 2017-12-06 16:16:18., ../../../../git/source/syscfg/lib/syscfg_lib.c:422, creating shared memory with store type 0, path /nvram/syscfg.db, size 51200, hdr size 0 +Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[329]: 2017-12-06 16:16:18., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[331]: 2017-12-06 16:16:18., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[332]: 2017-12-06 16:16:18., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[332]: system.syscfg commit to store +Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[340]: 2017-12-06 16:16:18., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:18 RaspberryPi-Gateway sh[294]: tdk_firewall_service.sh: v4 rule is missing in iptables, adding now +Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[352]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[352]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[352]: 2017-12-06 16:16:18., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[352]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[352]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[352]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[352]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:18 RaspberryPi-Gateway kernel: ip_tables: (C) 2000-2006 Netfilter Core Team +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 6.086009] ip_tables: (C) 2000-2006 Netfilter Core Team +Dec 06 16:16:18 RaspberryPi-Gateway kernel: syseventd (363): /proc/363/oom_adj is deprecated, please use /proc/363/oom_score_adj instead. +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 6.114401] syseventd (363): /proc/363/oom_adj is deprecated, please use /proc/363/oom_score_adj instead. +Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[363]: 2017-12-06 16:16:18., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[363]: system.sysevent syseventd started. +Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[369]: system.sysevent Starting fork helper process syseventd_fork_helper +Dec 06 16:16:18 RaspberryPi-Gateway sh[294]: tdk_firewall_service.sh: v6 rule is missing in ip6tables, adding now +Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[383]: system.sysevent syseventd fork helper started using pipe 10 +Dec 06 16:16:18 RaspberryPi-Gateway kernel: ip6_tables: (C) 2000-2006 Netfilter Core Team +Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 6.181860] ip6_tables: (C) 2000-2006 Netfilter Core Team +Dec 06 16:16:18 RaspberryPi-Gateway sh[294]: 12-06-2017 16:16:18.517053 [main():1178] +Dec 06 16:16:18 RaspberryPi-Gateway sh[294]: Process Group Id : 327 +Dec 06 16:16:18 RaspberryPi-Gateway snmpd[243]: error finding row index in _ifXTable_container_row_restore +Dec 06 16:16:18 RaspberryPi-Gateway snmpd[243]: error finding row index in _ifXTable_container_row_restore +Dec 06 16:16:18 RaspberryPi-Gateway snmpd[243]: error finding row index in _ifXTable_container_row_restore +Dec 06 16:16:18 RaspberryPi-Gateway snmpd[243]: NET-SNMP version 5.7.3 +Dec 06 16:16:18 RaspberryPi-Gateway systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon.. +-- Subject: Unit snmpd.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit snmpd.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:18 RaspberryPi-Gateway systemd[1]: Reached target Sound Card. +-- Subject: Unit sound.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit sound.target has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:18 RaspberryPi-Gateway systemd-logind[216]: New seat seat0. +-- Subject: A new seat seat0 is now available +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat +-- +-- A new seat seat0 has been configured and is now available. +Dec 06 16:16:18 RaspberryPi-Gateway systemd[1]: Started Serial Getty on ttyAMA0. +-- Subject: Unit serial-getty@ttyAMA0.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit serial-getty@ttyAMA0.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:18 RaspberryPi-Gateway PsmSsp[250]: eRT.com.cisco.spvtg.ccsp.psm start to check eRT.com.cisco.spvtg.ccsp.CR status +Dec 06 16:16:18 RaspberryPi-Gateway systemd[1]: Started Getty on tty1. +-- Subject: Unit getty@tty1.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit getty@tty1.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:19 RaspberryPi-Gateway systemd[1]: Started Serial Getty on ttyS0. +-- Subject: Unit serial-getty@ttyS0.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit serial-getty@ttyS0.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:19 RaspberryPi-Gateway systemd[1]: Reached target Login Prompts. +-- Subject: Unit getty.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit getty.target has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:19 RaspberryPi-Gateway systemd[1]: Started Login Service. +-- Subject: Unit systemd-logind.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-logind.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:19 RaspberryPi-Gateway systemd[1]: Started CcspCrSsp service. +-- Subject: Unit CcspCrSsp.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspCrSsp.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[413]: 2017-12-06 16:16:19., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[413]: system.syscfg commit to store +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[414]: 2017-12-06 16:16:19., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[417]: 2017-12-06 16:16:19., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[418]: 2017-12-06 16:16:19., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[419]: 2017-12-06 16:16:19., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[438]: service.info Registered bridge for bridge-start using /etc/utopia/service.d/service_bridge.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[438]: service.info Registered bridge for bridge-stop using /etc/utopia/service.d/service_bridge.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[438]: service.info Registered bridge for bridge-restart using /etc/utopia/service.d/service_bridge.sh +Dec 06 16:16:19 RaspberryPi-Gateway kernel: 8021q: 802.1Q VLAN Support v1.8 +Dec 06 16:16:19 RaspberryPi-Gateway kernel[271]: [ 7.339764] 8021q: 802.1Q VLAN Support v1.8 +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[443]: service.info Registered forwarding for forwarding-start using /etc/utopia/service.d/service_forwarding.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[443]: service.info Registered forwarding for forwarding-stop using /etc/utopia/service.d/service_forwarding.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[443]: service.info Registered forwarding for forwarding-restart using /etc/utopia/service.d/service_forwarding.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[446]: 2017-12-06 16:16:19., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-start using /etc/utopia/service.d/service_ipv4.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-stop using /etc/utopia/service.d/service_ipv4.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-restart using /etc/utopia/service.d/service_ipv4.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-resyncAll using /etc/utopia/service.d/service_ipv4.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-resync using /etc/utopia/service.d/service_ipv4.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-down using /etc/utopia/service.d/service_ipv4.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-up using /etc/utopia/service.d/service_ipv4.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-set_dyn_config using /etc/utopia/service.d/service_ipv4.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-sync_tsip_all using /etc/utopia/service.d/service_ipv4.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for[ 128.419238] CcspLMLite[3476]: LMlite-CLIENT <963> : Connected Mac = 30:30:31:31:30:31 ipv4-stop_tsip_all using /etc/utopia/service.d/service_ipv4.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-resync_tsip using /etc/utopia/service.d/service_ipv4.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-resync_tsip_asn using /etc/utopia/service.d/service_ipv4.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[480]: service.info Registered lan for lan-start using /etc/utopia/service.d/lan_handler.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[480]: service.info Registered lan for lan-stop using /etc/utopia/service.d/lan_handler.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[480]: service.info Registered lan for lan-restart using /etc/utopia/service.d/lan_handler.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[480]: service.info Registered lan for pnm-status using /etc/utopia/service.d/lan_handler.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[480]: service.info Registered lan for bring-lan using /etc/utopia/service.d/lan_handler.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[480]: service.info Registered lan for iot_status using /etc/utopia/service.d/lan_handler.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[480]: service.info Registered lan for ipv4-resync using /etc/utopia/service.d/lan_handler.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[480]: service.info Registered lan for erouter_mode-updated using /etc/utopia/service.d/lan_handler.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[483]: service.info Registered multinet for multinet-start using /etc/utopia/service.d/service_multinet_exec +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[483]: service.info Registered multinet for multinet-stop using /etc/utopia/service.d/service_multinet_exec +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[483]: service.info Registered multinet for multinet-restart using /etc/utopia/service.d/service_multinet_exec +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[483]: service.info Registered multinet for multinet-syncNets using /etc/utopia/service.d/service_multinet_exec +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[483]: service.info Registered multinet for multinet-syncMembers using /etc/utopia/service.d/service_multinet_exec +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[483]: service.info Registered multinet for multinet-down using /etc/utopia/service.d/service_multinet_exec +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[483]: service.info Registered multinet for multinet-up using /etc/utopia/service.d/service_multinet_exec +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[483]: service.info Registered multinet for sw_ext_restore using /etc/utopia/service.d/service_multinet/handle_sw.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Registered wan for wan-start using /etc/utopia/service.d/service_wan.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Registered wan for wan-stop using /etc/utopia/service.d/service_wan.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Registered wan for wan-restart using /etc/utopia/service.d/service_wan.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Unregistered wan from wan-restart +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Registered wan for wan-restart using /etc/utopia/service.d/service_wan.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Registered wan for erouter_mode-updated using /etc/utopia/service.d/service_wan.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Registered wan for dhcp_client-restart using /etc/utopia/service.d/service_wan.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Registered wan for dhcp_client-release using /etc/utopia/service.d/service_wan.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Registered wan for dhcp_client-renew using /etc/utopia/service.d/service_wan.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[496]: service.info Registered ccsphs for ccsphs-start using /etc/utopia/service.d/service_ccsphs.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[496]: service.info Registered ccsphs + for ccsphs-stop using /etc/utopia/service.d/service_ccsphs.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[496]: service.info Registered ccsphs for ccsphs-restart using /etc/utopia/service.d/service_ccsphs.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[496]: service.info Registered ccsphs for lan-status using /etc/utopia/service.d/service_ccsphs.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[496]: service.info Registered ccsphs for multinet_2-status using /etc/utopia/service.d/service_ccsphs.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[496]: service.info Registered ccsphs for ipv4_5-status using /etc/utopia/service.d/service_ccsphs.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[500]: service.info Registered ddns for ddns-start using /etc/utopia/service.d/service_ddns.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[500]: service.info Registered ddns for ddns-stop using /etc/utopia/service.d/service_ddns.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[500]: service.info Registered ddns for ddns-restart using /etc/utopia/service.d/service_ddns.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[500]: service.info Registered ddns for wan-status using /etc/utopia/service.d/service_ddns.sh +Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[500]: service.info Registered ddns for current_wan_ipaddr using /etc/utopia/service.d/service_ddns.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[504]: service.info Registered dhcp_server for dhcp_server-start using /etc/utopia/service.d/service_dhcp_server.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[504]: service.info Registered dhcp_server for dhcp_server-stop using /etc/utopia/service.d/service_dhcp_server.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[504]: service.info Registered dhcp_server for dhcp_server-restart using /etc/utopia/service.d/service_dhcp_server.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[504]: service.info Registered dhcp_server for syslog-status using /etc/utopia/service.d/service_dhcp_server.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[504]: service.info Registered dhcp_server for lan-status using /etc/utopia/service.d/service_dhcp_server.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[504]: service.info Registered dhcp_server for dhcp_server-resync using /etc/utopia/service.d/service_dhcp_server.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[511]: 2017-12-06 16:16:20., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[533]: service.info Registered hotspot for hotspot-start using /etc/utopia/service.d/service_multinet/handle_gre.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[533]: service.info Registered hotspot for hotspot-stop using /etc/utopia/service.d/service_multinet/handle_gre.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[533]: service.info Registered hotspot for hotspot-restart using /etc/utopia/service.d/service_multinet/handle_gre.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[533]: service.info Registered hotspot for gre-restart using /etc/utopia/service.d/service_multinet/handle_gre.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[533]: service.info Registered hotspot for gre-forceRestart using /etc/utopia/service.d/service_multinet/handle_gre.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[533]: service.info Registered hotspot for snmp_subagent-status using /etc/utopia/service.d/service_multinet/handle_gre.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[533]: service.info Registered hotspot for hotspot-update_bridges using /etc/utopia/service.d/service_multinet/handle_gre.sh +Dec 06 16:16:20 RaspberryPi-Gateway kernel: MTU Modifier loaded +Dec 06 16:16:20 RaspberryPi-Gateway kernel[271]: [ 7.864739] MTU Modifier loaded +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[552]: service.info Registered sshd for sshd-start using /etc/utopia/service.d/service_sshd.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[552]: service.info Registered sshd for sshd-stop using /etc/utopia/service.d/service_sshd.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[552]: service.info Registered sshd for sshd-restart using /etc/utopia/service.d/service_sshd.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[552]: service.info Registered sshd for bridge-status using /etc/utopia/service.d/service_sshd.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[552]: service.info Registered sshd for lan-status using /etc/utopia/service.d/service_sshd.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[552]: service.info Registered sshd for wan-status using /etc/utopia/service.d/service_sshd.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for routed-start using /etc/utopia/service.d/service_routed.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for routed-stop using /etc/utopia/service.d/service_routed.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for routed-restart using /etc/utopia/service.d/service_routed.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for wan-status using /etc/utopia/service.d/service_routed.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for lan-status using /etc/utopia/service.d/service_routed.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for ipv6_nameserver using /etc/utopia/service.d/service_routed.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for ipv6_prefix using /etc/utopia/service.d/service_routed.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for ripd-restart using /etc/utopia/service.d/service_routed.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for zebra-restart using /etc/utopia/service.d/service_routed.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for staticroute-restart using /etc/utopia/service.d/service_routed.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[582]: service.info Registered crond for crond-start using /etc/utopia/service.d/service_crond.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[582]: service.info Registered crond for crond-stop using /etc/utopia/service.d/service_crond.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[582]: service.info Registered crond for crond-restart using /etc/utopia/service.d/service_crond.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[582]: service.info Registered crond for ntpclient-status using /etc/utopia/service.d/service_crond.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[597]: 2017-12-06 16:16:20., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[218]: 2017-12-06 16:16:20., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[621]: service.info Registered cosa for cosa-start using /etc/utopia/service.d/service_cosa.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[621]: service.info Registered cosa for cosa-stop using /etc/utopia/service.d/service_cosa.sh +Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[621]: service.info Registered cosa for cosa-restart using /etc/utopia/service.d/service_cosa.sh +Dec 06 16:16:20 RaspberryPi-Gateway PsmSsp[250]: eRT.com.cisco.spvtg.ccsp.psm try to check eRT.com.cisco.spvtg.ccsp.CR health for 1 times, health is 0 +Dec 06 16:16:21 RaspberryPi-Gateway PsmSsp[250]: eRT.com.cisco.spvtg.ccsp.CR is ready, eRT.com.cisco.spvtg.ccsp.psm continue +Dec 06 16:16:20 RaspberryPi-Gateway systemd[1]: Started PsmSsp service. +-- Subject: Unit PsmSsp.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit PsmSsp.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:21 RaspberryPi-Gateway systemd[1]: Starting CcspPandMSsp service... +-- Subject: Unit CcspPandMSsp.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspPandMSsp.service has begun starting up. +Dec 06 16:16:21 RaspberryPi-Gateway CcspPandMSsp[627]: Conf file /etc/debug.ini open success +Dec 06 16:16:21 RaspberryPi-Gateway CcspPandMSsp[627]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. +Dec 06 16:16:21 RaspberryPi-Gateway CcspPandMSsp[627]: eRT.com.cisco.spvtg.ccsp.pam start to check eRT.com.cisco.spvtg.ccsp.psm status +Dec 06 16:16:21 RaspberryPi-Gateway CcspPandMSsp[627]: eRT.com.cisco.spvtg.ccsp.psm is ready, eRT.com.cisco.spvtg.ccsp.pam continue +Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: Conf file /etc/debug.ini open success +Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. +Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: ****LOADING DM LIBRARY*************** +Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: THE LIB NAME =libtr181.so +Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: ****LOADING DM LIBRARY*************** +Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: PLUGIN libtr181.so LOADED SUCCESSFULLY +Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: -- CosaBackEndManagerCreate 194 +Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: PandM DM initialize... +Dec 06 16:16:22 RaspberryPi-Gateway kernel: smsc95xx 1-1.1:1.0 erouter0: renamed from eth0 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway kernel[271]: [ 10.253100] smsc95xx 1-1.1:1.0 erouter0: renamed from eth0 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDeviceInfoInitialize : bxfinitywifiEnable value is : 0 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::sw_1, value Interface1,1 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::sw_2, value Interface2,2 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::sw_3, value Interface3,3 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::sw_4, value Interface4,4 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway kernel: smsc95xx 1-1.1:1.0 erouter0: hardware isn't capable of remote wakeup +Dec 06 16:16:22 RaspberryPi-Gateway kernel: IPv6: ADDRCONF(NETDEV_UP): erouter0: link is not ready +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::erouter0, value Interface5,5 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway kernel[271]: [ 10.425180] smsc95xx 1-1.1:1.0 erouter0: hardware isn't capable of remote wakeup +Dec 06 16:16:22 RaspberryPi-Gateway kernel[271]: [ 10.425864] IPv6: ADDRCONF(NETDEV_UP): erouter0: link is not ready +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::lbr0, value Interface6,6 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[669]: crond.status starting crond service +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 423 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 421 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 422 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 424 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 500 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 423 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 421 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 422 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 424 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 500 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 423 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 421 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 422 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 424 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 500 +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway sh[294]: Starting Agent Monitor Process.. +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 431 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 432 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 433 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 434 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 431 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 432 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 433 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 434 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 161 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 159 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 149 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 151 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 154 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 162 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 160 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 165 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 166 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 167 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 168 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 169 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 170 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 414 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 33 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 34 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 35 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 36 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 99 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: config.utapi s_sysevent_connect: open new sysevent fd 8 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway kernel: uart-pl011 3f201000.uart: no DMA platform data +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: Error: argument "erouter" is wrong: table id value is invalid +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: Cannot find device "brlan0" +Dec 06 16:16:23 RaspberryPi-Gateway kernel[271]: [ 11.584550] uart-pl011 3f201000.uart: no DMA platform data +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: Error: argument "erouter" is wrong: table id value is invalid +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway systemd[1]: Created slice User Slice of root. +-- Subject: Unit user-0.slice has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit user-0.slice has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: Cannot find device "wan0" +Dec 06 16:16:24 RaspberryPi-Gateway systemd[1]: Starting User Manager for UID 0... +-- Subject: Unit user@0.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit user@0.service has begun starting up. +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: Error: argument "erouter" is wrong: table id value is invalid +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: Error: argument "erouter" is wrong: table id value is invalid +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: [DM-Bridge] CosaDmlBrgInit -- in: 1512576984.159619 +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway systemd-logind[216]: New session c1 of user root. +-- Subject: A new session c1 has been created for user root +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat +-- +-- A new session with the ID c1 has been created for the user root. +-- +-- The leading process of the session is 408. +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway systemd[740]: user@0.service: Failed at step PAM spawning /lib/systemd/systemd: Operation not permitted +-- Subject: Process /lib/systemd/systemd could not be executed +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- The process /lib/systemd/systemd could not be executed and failed. +-- +-- The error number returned by this process is 1. +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway systemd[1]: Started User Manager for UID 0. +-- Subject: Unit user@0.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit user@0.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway systemd[1]: Started Session c1 of user root. +-- Subject: Unit session-c1.scope has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit session-c1.scope has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway login[408]: pam_lastlog(login:session): file /var/log/lastlog created +Dec 06 16:16:24 RaspberryPi-Gateway login[403]: pam_lastlog(login:session): file /var/log/lastlog created +Dec 06 16:16:24 RaspberryPi-Gateway login[403]: pam_lastlog(login:session): file /var/log/lastlog is locked/write +Dec 06 16:16:24 RaspberryPi-Gateway login[408]: pam_unix(login:session): session opened for user root by LOGIN(uid=0) +Dec 06 16:16:24 RaspberryPi-Gateway snmpd[243]: Name of an interface changed. Such interfaces will keep its old name in IF-MIB. +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway systemd[740]: PAM unable to dlopen(/lib/security/pam_loginuid.so): /lib/security/pam_loginuid.so: cannot open shared object file: No such file or directory +Dec 06 16:16:24 RaspberryPi-Gateway systemd[740]: PAM adding faulty module: /lib/security/pam_loginuid.so +Dec 06 16:16:24 RaspberryPi-Gateway systemd[740]: pam_unix(systemd-user:session): session opened for user root by (uid=0) +Dec 06 16:16:24 RaspberryPi-Gateway login[750]: ROOT LOGIN on '/dev/ttyS0' +Dec 06 16:16:24 RaspberryPi-Gateway kernel: IPv6: ADDRCONF(NETDEV_CHANGE): erouter0: link becomes ready +Dec 06 16:16:24 RaspberryPi-Gateway kernel: smsc95xx 1-1.1:1.0 erouter0: link up, 100Mbps, full-duplex, lpa 0xC1E1 +Dec 06 16:16:24 RaspberryPi-Gateway kernel[271]: [ 12.036712] IPv6: ADDRCONF(NETDEV_CHANGE): erouter0: link becomes ready +Dec 06 16:16:24 RaspberryPi-Gateway kernel[271]: [ 12.037602] smsc95xx 1-1.1:1.0 erouter0: link up, 100Mbps, full-duplex, lpa 0xC1E1 +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: [DM-Bridge] CosaDmlBrgInit -- OUT: 1512576984.433492 +Dec 06 16:16:24 RaspberryPi-Gateway kernel: gre: GRE over IPv4 demultiplexor driver +Dec 06 16:16:24 RaspberryPi-Gateway kernel: ip_gre: GRE over IPv4 tunneling driver +Dec 06 16:16:24 RaspberryPi-Gateway kernel[271]: [ 12.155950] gre: GRE over IPv4 demultiplexor driver +Dec 06 16:16:24 RaspberryPi-Gateway kernel[271]: [ 12.160779] ip_gre: GRE over IPv4 tunneling driver +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 106 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 99 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 100 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 101 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 102 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 103 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 109 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key PPP_Interface_tr_alias, value Interface1 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_WriteLock: Acquring write lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 108 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: sh: avahi-daemon: command not found +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: sh: avahi-autoipd: command not found +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key dhcpv6s00::serverenable, value 1 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: ParseZebraRaConf: fail to open file /etc/zebra.conf +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 4 +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 8 +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 9 +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 1 +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 7 +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 6 +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 5 +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 3 +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 2 +Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: **************** sysevent set pnm-status up +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 118 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 119 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 120 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 121 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 122 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 123 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 124 +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: UTC is not enabled ************* +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDmlTimeGetCfg: UTC Enable file not exists +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: vsystem: ps | grep syslogd | grep -v grep >/dev/null +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 72 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 73 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway systemd-logind[216]: New session c2 of user root. +-- Subject: A new session c2 has been created for user root +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat +-- +-- A new session with the ID c2 has been created for the user root. +-- +-- The leading process of the session is 403. +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway systemd[1]: Started Session c2 of user root. +-- Subject: Unit session-c2.scope has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit session-c2.scope has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDmlRLog_Init: Nothing need to do ! +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDmlRLog_GetConf: get config success ! +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDml_GreInit:387> sysevent_open success +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDml_GreInit:403> Init Hotspot GRE Done +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: load_ipv6rd_conf: no 6RD info in config file +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: -- CosaBackEndManagerInitialize 330 CosaGreTunnelCreate +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: -- CosaGreTunnelCreate CosaGreTunnelInitialize >> +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDml_GreTunnelInit:433> sysevent_open success +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDml_GreTunnelInit:449> Init Hotspot GRE Done +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 82 +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: -- CosaGreTunnelCreate CosaGreTunnelInitialize << +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[853]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDml_HotspotInit:323> Init Hotspot Done +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway login[403]: pam_unix(login:session): session opened for user root by LOGIN(uid=0) +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway login[898]: ROOT LOGIN on '/dev/ttyAMA0' +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: PandM DM initialization done! +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.syscfg commit to store +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.syscfg commit to store +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[921]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[927]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[933]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[936]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[945]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 106 +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 99 +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 100 +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 101 +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 102 +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 103 +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 109 +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 108 +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: Error: argument "erouter" is wrong: table id value is invalid +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: Cannot find device "brlan0" +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: Error: argument "erouter" is wrong: table id value is invalid +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[951]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[962]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[974]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[978]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: Cannot find device "wan0" +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: Error: argument "erouter" is wrong: table id value is invalid +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: Error: argument "erouter" is wrong: table id value is invalid +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[993]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: fe80::/64 proto kernel metric 256 pref medium +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key tr_routing_v6entry.fe80::/64_*_erouter0.instance, value 1 +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key tr_routing_v6entry.fe80::/64_*_erouter0.alias, value IPv6Forwarding1 +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key tr_routing_v6entry.fe80::/64_*_erouter0.enabled, value 1 +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 414 +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[999]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 33 +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 34 +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 35 +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 36 +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 99 +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1060]: 2017-12-06 16:16:26., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:26 RaspberryPi-Gateway systemd[1]: Started CcspPandMSsp service. +-- Subject: Unit CcspPandMSsp.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspPandMSsp.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:26 RaspberryPi-Gateway systemd[1]: Starting CcspTandDSsp service... +-- Subject: Unit CcspTandDSsp.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspTandDSsp.service has begun starting up. +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1078]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:26 RaspberryPi-Gateway CcspPandMSsp[627]: Entering P&M loop +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1078]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1078]: 2017-12-06 16:16:26., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1078]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1078]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:26 RaspberryPi-Gateway systemd[1]: Starting Check WIFI support on RaspberryPi Device... +-- Subject: Unit checkrpiwifisupport.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit checkrpiwifisupport.service has begun starting up. +Dec 06 16:16:26 RaspberryPi-Gateway systemd[1]: Started CcspTandDSsp service. +-- Subject: Unit CcspTandDSsp.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspTandDSsp.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1101]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1101]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1101]: 2017-12-06 16:16:26., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1101]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1101]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1101]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1101]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1101]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:26 RaspberryPi-Gateway sh[1100]: Wifi (single band) driver is initialized +Dec 06 16:16:26 RaspberryPi-Gateway sh[1100]: checking for dual band support:1 +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: 2017-12-06 16:16:26., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:26 RaspberryPi-Gateway sh[1100]: wlan1 No such device +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1181]: dhcpv6c.status DHCPv6 Client is not enabled +Dec 06 16:16:26 RaspberryPi-Gateway CcspPandMSsp[627]: killall: dibbler-client: no process killed +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1199]: 2017-12-06 16:16:26., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:26 RaspberryPi-Gateway kernel: bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this. +Dec 06 16:16:26 RaspberryPi-Gateway kernel[271]: [ 14.567887] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this. +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1270]: 2017-12-06 16:16:26., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1274]: 2017-12-06 16:16:26., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1291]: 2017-12-06 16:16:27., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1300]: 2017-12-06 16:16:27., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:27 RaspberryPi-Gateway kernel: device eth1 entered promiscuous mode +Dec 06 16:16:27 RaspberryPi-Gateway kernel: brlan0: port 1(eth1) entered forwarding state +Dec 06 16:16:27 RaspberryPi-Gateway kernel: brlan0: port 1(eth1) entered forwarding state +Dec 06 16:16:27 RaspberryPi-Gateway kernel[271]: [ 14.751485] device eth1 entered promiscuous mode +Dec 06 16:16:27 RaspberryPi-Gateway kernel[271]: [ 14.751723] brlan0: port 1(eth1) entered forwarding state +Dec 06 16:16:27 RaspberryPi-Gateway kernel[271]: [ 14.751765] brlan0: port 1(eth1) entered forwarding state +Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1365]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1365]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1365]: 2017-12-06 16:16:27., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1365]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1365]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1365]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:27 RaspberryPi-Gateway sh[1100]: checking for dual band support:2 +Dec 06 16:16:27 RaspberryPi-Gateway sh[1100]: wlan1 No such device +Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1482]: 2017-12-06 16:16:27., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1549]: 2017-12-06 16:16:27., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1626]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:28 RaspberryPi-Gateway systemd[1]: Started TDK Test Agent Start. +-- Subject: Unit tdk.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit tdk.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:28 RaspberryPi-Gateway systemd[1]: Reached target Multi-User System. +-- Subject: Unit multi-user.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit multi-user.target has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1630]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1627]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:28 RaspberryPi-Gateway systemd[1]: Starting Update UTMP about System Runlevel Changes... +-- Subject: Unit systemd-update-utmp-runlevel.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-update-utmp-runlevel.service has begun starting up. +Dec 06 16:16:28 RaspberryPi-Gateway systemd[1]: Started Update UTMP about System Runlevel Changes. +-- Subject: Unit systemd-update-utmp-runlevel.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit systemd-update-utmp-runlevel.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:28 RaspberryPi-Gateway sh[1100]: checking for dual band support:3 +Dec 06 16:16:28 RaspberryPi-Gateway sh[1100]: wlan1 No such device +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:28 RaspberryPi-Gateway CcspPandMSsp[627]: killall: dibbler-client: no process killed +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1731]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1733]: ddns.status (1648) wan state is down. No ddns update possible +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1732]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1740]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1757]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1821]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1840]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1867]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1881]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1887]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1873]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1895]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1903]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1910]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1926]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1971]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1973]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1978]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1980]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1986]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway CcspPandMSsp[627]: sh: /etc/dibbler/dibbler-init.sh: No such file or directory +Dec 06 16:16:29 RaspberryPi-Gateway CcspPandMSsp[627]: | Dibbler - a portable DHCPv6, version 1.0.1 (CLIENT, Linux port) +Dec 06 16:16:29 RaspberryPi-Gateway CcspPandMSsp[627]: | Authors : Tomasz Mrugalski,Marek Senderski +Dec 06 16:16:29 RaspberryPi-Gateway CcspPandMSsp[627]: | Licence : GNU GPL v2 only. Developed at Gdansk University of Technology. +Dec 06 16:16:29 RaspberryPi-Gateway CcspPandMSsp[627]: | Homepage: http://klub.com.pl/dhcpv6/ +Dec 06 16:16:29 RaspberryPi-Gateway CcspPandMSsp[627]: Starting daemon... +Dec 06 16:16:29 RaspberryPi-Gateway sh[1100]: checking for dual band support:4 +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2014]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2023]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2027]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2024]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2029]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway sh[1100]: wlan1 No such device +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2031]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2039]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2042]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2042]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2042]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2042]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2042]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2042]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2074]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2074]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2074]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2074]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2074]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2074]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2074]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2074]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2092]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2093]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2100]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2103]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2105]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2116]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2120]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2122]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2126]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2165]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:30 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDmlDHCPv6sTriggerRestart -- 3063 !!!!!!!!!!!!!!!!!! +Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2194]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:30 RaspberryPi-Gateway sh[1100]: checking for dual band support:5 +Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq[2232]: started, version 2.76 cachesize 150 +Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq[2232]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect no-inotify +Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq-dhcp[2232]: DHCP, IP range 10.0.0.2 -- 10.0.0.253, lease time 7d +Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq[2232]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# +Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq[2232]: reading /etc/resolv.conf +Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq[2232]: using nameserver 8.8.8.8#53 +Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq[2232]: using nameserver 8.8.4.4#53 +Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq[2232]: read /etc/hosts - 9 addresses +Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq-dhcp[2232]: read /etc/dhcp_static_hosts +Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq-dhcp[2232]: read /var/dhcp_options +Dec 06 16:16:30 RaspberryPi-Gateway sh[1100]: wlan1 No such device +Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2263]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2265]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2267]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2269]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2271]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2273]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2277]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2279]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2282]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2316]: system.utctx Utopia_Init: Initializing +Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2316]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2316]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2316]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2316]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2316]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2316]: system.utctx Utopia_Free: Freeing +Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2316]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2323]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2326]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2328]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2329]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2335]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2336]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2337]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2356]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2372]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:31 RaspberryPi-Gateway dnsmasq[2232]: read /etc/hosts - 9 addresses +Dec 06 16:16:31 RaspberryPi-Gateway dnsmasq-dhcp[2232]: read /etc/dhcp_static_hosts +Dec 06 16:16:31 RaspberryPi-Gateway dnsmasq-dhcp[2232]: read /var/dhcp_options +Dec 06 16:16:32 RaspberryPi-Gateway systemd[1]: Started Check WIFI support on RaspberryPi Device. +-- Subject: Unit checkrpiwifisupport.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit checkrpiwifisupport.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:32 RaspberryPi-Gateway systemd[1]: Starting Cosa service... +-- Subject: Unit ccspwifiagent.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit ccspwifiagent.service has begun starting up. +Dec 06 16:16:32 RaspberryPi-Gateway CcspWifiSsp[2389]: eRT.com.cisco.spvtg.ccsp.wifi start to check eRT.com.cisco.spvtg.ccsp.psm status +Dec 06 16:16:32 RaspberryPi-Gateway CcspWifiSsp[2389]: eRT.com.cisco.spvtg.ccsp.psm is ready, eRT.com.cisco.spvtg.ccsp.wifi continue +Dec 06 16:16:32 RaspberryPi-Gateway systemd[1]: Started Cosa service. +-- Subject: Unit ccspwifiagent.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit ccspwifiagent.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:32 RaspberryPi-Gateway systemd[1]: Startup finished in 2.169s (kernel) + 18.267s (userspace) = 20.437s. +-- Subject: System start-up is now complete +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- All system services necessary queued for starting at boot have been +-- successfully started. Note that this does not mean that the machine is +-- now idle as services might still be busy with completing start-up. +-- +-- Kernel start-up required 2169585 microseconds. +-- +-- Initial RAM disk start-up required INITRD_USEC microseconds. +-- +-- Userspace start-up required 18267451 microseconds. +Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: Conf file /etc/debug.ini open success +Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. +Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: ****LOADING DM LIBRARY*************** +Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: THE LIB NAME =libwifi.so +Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: ****LOADING DM LIBRARY*************** +Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: PLUGIN libwifi.so LOADED SUCCESSFULLY +Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiInit +Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetFactoryResetPsmData g_Subsytem = eRT. +Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetFactoryResetPsmData eRT.com.cisco.spvtg.ccsp.tr181pa.Device.WiFi.FactoryReset = 0 +Dec 06 16:16:33 RaspberryPi-Gateway UTOPIA[2401]: 2017-12-06 16:16:33., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: gre0 no wireless extensions. +Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: brlan0 no wireless extensions. +Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: erouter0 no wireless extensions. +Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: gretap0 no wireless extensions. +Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: lo no wireless extensions. +Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: eth1 no wireless extensions. +Dec 06 16:16:33 RaspberryPi-Gateway systemd[1]: Configuration file /lib/systemd/system/hostapd.service is marked executable. Please remove executable permission bits. Proceeding anyway. +Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: Regulatory domain changed to country: US +Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: DFS Master region: FCC +Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) +Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A) +Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (N/A) +Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (0 s) +Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2300 mBm), (0 s) +Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A) +Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A) +Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676759] cfg80211: Regulatory domain changed to country: US +Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676782] cfg80211: DFS Master region: FCC +Dec 06 16:16:34 RaspberryPi-Gateway systemd[1]: Starting Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator... +-- Subject: Unit hostapd.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit hostapd.service has begun starting up. +Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676791] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) +Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676805] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A) +Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676819] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (N/A) +Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676856] cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (0 s) +Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676869] cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2300 mBm), (0 s) +Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676880] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A) +Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676892] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A) +Dec 06 16:16:34 RaspberryPi-Gateway sh[2413]: killall: hostapd: no process killed +Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: wlan1 No such device +Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: Configuration file: /nvram/hostapd0.conf +Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: Failed to create interface mon.wlan0: -95 (Operation not supported) +Dec 06 16:16:35 RaspberryPi-Gateway kernel: brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists +Dec 06 16:16:35 RaspberryPi-Gateway kernel: brcmfmac: brcmf_add_if: ignore IF event +Dec 06 16:16:35 RaspberryPi-Gateway kernel[271]: [ 22.853900] brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists +Dec 06 16:16:35 RaspberryPi-Gateway kernel[271]: [ 22.860551] brcmfmac: brcmf_add_if: ignore IF event +Dec 06 16:16:35 RaspberryPi-Gateway kernel: IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready +Dec 06 16:16:35 RaspberryPi-Gateway kernel[271]: [ 22.870786] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready +Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: wlan0: Could not connect to kernel driver +Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: Using interface wlan0 with hwaddr b8:27:eb:54:3e:80 and ssid "RPi3_RDKB-AP0" +Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: random: Only 15/20 bytes of strong random data available from /dev/random +Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: random: Not enough entropy pool available for secure operations +Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: WPA: Not enough entropy in random pool for secure operations - update keys later when the first station connects +Dec 06 16:16:35 RaspberryPi-Gateway kernel: brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists +Dec 06 16:16:35 RaspberryPi-Gateway kernel: brcmfmac: brcmf_add_if: ignore IF event +Dec 06 16:16:35 RaspberryPi-Gateway kernel[271]: [ 23.027150] brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists +Dec 06 16:16:35 RaspberryPi-Gateway kernel[271]: [ 23.033854] brcmfmac: brcmf_add_if: ignore IF event +Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: wlan0: interface state UNINITIALIZED->ENABLED +Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: wlan0: AP-ENABLED +Dec 06 16:16:35 RaspberryPi-Gateway systemd[1]: hostapd.service: PID file /run/hostapd.pid not readable (yet?) after start: No such file or directory +Dec 06 16:16:35 RaspberryPi-Gateway kernel: IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready +Dec 06 16:16:35 RaspberryPi-Gateway kernel[271]: [ 23.105423] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready +Dec 06 16:16:35 RaspberryPi-Gateway systemd[1]: Started Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator. +-- Subject: Unit hostapd.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit hostapd.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: [prepare_hostapd_conf]: Default files /usr/ccsp/wifi/hostapd0.conf and /usr/ccsp/wifi/hostapd1.conf presents!! +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: [prepare_hostapd_conf]: /nvram/hostapd0.conf file allready exits!! +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: [prepare_hostapd_conf]: /nvram/hostapd1.conf file allready exits!! +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiCheckWmmParams +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiCheckWmmParams: Resetting Wmm parameters +Dec 06 16:16:37 RaspberryPi-Gateway kernel: device wlan0 entered promiscuous mode +Dec 06 16:16:37 RaspberryPi-Gateway kernel: brlan0: port 2(wlan0) entered forwarding state +Dec 06 16:16:37 RaspberryPi-Gateway kernel: brlan0: port 2(wlan0) entered forwarding state +Dec 06 16:16:37 RaspberryPi-Gateway kernel[271]: [ 25.135399] device wlan0 entered promiscuous mode +Dec 06 16:16:37 RaspberryPi-Gateway kernel[271]: [ 25.135488] brlan0: port 2(wlan0) entered forwarding state +Dec 06 16:16:37 RaspberryPi-Gateway kernel[271]: [ 25.135522] brlan0: port 2(wlan0) entered forwarding state +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetResetHotSpotRequired g_Subsytem = eRT. +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetResetHotSpotRequired: found BssHotSpot value = 0 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetResetHotSpotRequired: found BssHotSpot value = 0 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0CosaDmlWiFiInit: radioActive wifi0 = TRUE +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiInit: radioActive wifi1 = FALSE +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiInit: noEnableVaps = FALSE +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData g_Subsytem = eRT. +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Got 9 Bridge instances +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 0 is Bridge instances 4 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.4.Members.WiFi returned ath5 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.4.Vid returned 103 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.4.l3net returned (null) +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath5 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 1 is Bridge instances 8 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.8.Members.WiFi returned ath9 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.8.Vid returned 105 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.8.l3net returned (null) +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath9 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 2 is Bridge instances 9 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 3 is Bridge instances 1 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.1.Members.WiFi returned ath0 ath1 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.1.Vid returned 100 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.1.l3net returned 4 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l3net.4.V4Addr returned 10.0.0.254 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l3net.4.V4SubnetMask returned 255.255.255.0 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath0 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath1 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 4 is Bridge instances 7 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.7.Members.WiFi returned ath8 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.7.Vid returned 104 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.7.l3net returned (null) +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath8 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 5 is Bridge instances 6 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.6.Members.WiFi returned ath6 ath7 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.6.Vid returned 106 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.6.l3net returned (null) +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath6 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath7 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 6 is Bridge instances 5 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.5.Members.WiFi returned ath14 ath15 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.5.Vid returned 107 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.5.l3net returned (null) +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath14 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath15 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 7 is Bridge instances 3 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.3.Members.WiFi returned ath4 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.3.Vid returned 102 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.3.l3net returned (null) +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath4 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 8 is Bridge instances 2 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.2.Members.WiFi returned ath2 ath3 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.2.Vid returned 101 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.2.l3net returned (null) +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath2 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath3 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetResetRequired g_Subsytem = eRT. +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetResetRequired eRT.com.cisco.spvtg.ccsp.Device.WiFi.VlanCfgVerion = 2 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiInit: Cosa_Init returned True +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: -- CosaDmlWiFi_startDCSScanThread 14633 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFi_startDCSScanThread +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiCheckPreferPrivateFeature +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiCheckPreferPrivateFeature returning +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioGetEntry +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetRadioPsmData g_Subsytem = eRT. +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Error for wireless request "Set Fragmentation Threshold" (8B24) : +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: SET failed on device ath0 ; No such device. +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Error for wireless request "Set RTS Threshold" (8B22) : +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: SET failed on device ath0 ; No such device. +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is hw_mode +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string=g +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: G +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Returning from getRadioStandard +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetRadioPsmData: Found TransmitPower in PSM 100 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioSetTransmitPowerPercent: enter wlanIndex 0 transmitPowerPercent 100 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Error for wireless request "Set Tx Power" (8B26) : +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: SET failed on device ath0 ; No such device. +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: -- CosaDmlWiFi_setDCSChanPool 14708 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFi_setDCSChanPool +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: -- CosaDmlWiFi_setDCSScan 14651 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFi_setDCSScan +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioGetCfg: LastChange 1512576997 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0wlan0 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is hw_mode +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string=g +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: G +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Returning from getRadioStandard +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is channel +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: *output_long=6 output from hal=06 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is vht_oper_chwidth +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioSetTransmitPowerPercent: enter wlanIndex 0 transmitPowerPercent 100 +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Error for wireless request "Set Tx Power" (8B26) : +Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: SET failed on device ath0 ; No such device. +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: ath0 No such device +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is basic_rates +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is hw_mode +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is supported_rates +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiRadioGetSinfo +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: ath0 No such device +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioGetSinfo: wifi_getRadioMaxBitRate returned +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: wlan0AP Index for band 0 is 0CosaDmlWiFiRadioGetEntry +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetRadioPsmData g_Subsytem = eRT. +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Error for wireless request "Set RTS Threshold" (8B22) : +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: SET failed on device ath1 ; No such device. +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is hw_mode +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string=a +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Invalid Mode +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Returning from getRadioStandard +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetRadioPsmData: Found TransmitPower in PSM 100 +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioSetTransmitPowerPercent: enter wlanIndex 1 transmitPowerPercent 100 +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Error for wireless request "Set Tx Power" (8B26) : +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: SET failed on device ath1 ; No such device. +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: -- CosaDmlWiFi_setDCSChanPool 14708 +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFi_setDCSChanPool +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: -- CosaDmlWiFi_setDCSScan 14651 +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFi_setDCSScan +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioGetCfg: LastChange 1512576998 +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: wlan1 no frequency information. +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1wlan1 +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is hw_mode +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string=a +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Invalid Mode +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Returning from getRadioStandard +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is channel +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: *output_long=36 output from hal=36 +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is vht_oper_chwidth +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioSetTransmitPowerPercent: enter wlanIndex 1 transmitPowerPercent 100 +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Error for wireless request "Set Tx Power" (8B26) : +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: SET failed on device ath1 ; No such device. +Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: ath1 No such device +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is basic_rates +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is hw_mode +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is supported_rates +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiRadioGetSinfo +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: ath1 No such device +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioGetSinfo: wifi_getRadioMaxBitRate returned +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wlan1 no frequency information. +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wlan1AP Index for band 1 is 1CosaDmlWiFiSsidGetEntry ulIndex = 0 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 0 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : RPi3_RDKB-AP0getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.SSID +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: gre0 no wireless extensions. +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: brlan0 no wireless extensions. +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: erouter0 no wireless extensions. +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: gretap0 no wireless extensions. +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: lo no wireless extensions. +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: eth1 no wireless extensions. +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0AP Index for band 0 is 0AP Index for band 0 is 0CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 1 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: sh: -c: line 2: syntax error near unexpected token `|' +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: sh: -c: line 2: ` | grep HWaddr' +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd0.conf +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wlan0 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: ctrl_interface=/var/run/hostapd0 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: B8:27:EB:54:3E:80 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 1 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 1 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : RPi3_RDKB-AP1getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.SSID +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 2 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: ifconfig: wlan1: error fetching interface information: Device not found +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: sh: -c: line 2: syntax error near unexpected token `|' +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: sh: -c: line 2: ` | grep HWaddr' +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd1.conf +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wlan1 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: ctrl_interface=/var/run/hostapd1 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 2 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 2 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd2.conf: No such file or directory +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.3.SSID +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 3 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd2.conf: No such file or directory +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd2.conf +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 3 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 3 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd3.conf: No such file or directory +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.4.SSID +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 4 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd3.conf: No such file or directory +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd3.conf +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 4 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 4 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd4.conf: No such file or directory +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.5.SSID +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 5 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd4.conf: No such file or directory +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd4.conf +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 5 +Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 5 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd5.conf: No such file or directory +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.6.SSID +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 6 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd5.conf: No such file or directory +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd5.conf +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 6 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 6 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd6.conf: No such file or directory +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.7.SSID +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 7 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd6.conf: No such file or directory +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd6.conf +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 7 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 7 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd7.conf: No such file or directory +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.8.SSID +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 8 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd7.conf: No such file or directory +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd7.conf +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 8 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 8 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd8.conf: No such file or directory +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.9.SSID +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 9 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd8.conf: No such file or directory +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd8.conf +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 9 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 9 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd9.conf: No such file or directory +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.10.SSID +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 10 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd9.conf: No such file or directory +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd9.conf +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 10 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 10 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd10.conf: No such file or directory +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.11.SSID +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 11 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd10.conf: No such file or directory +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd10.conf +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 11 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 11 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd11.conf: No such file or directory +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.12.SSID +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 12 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd11.conf: No such file or directory +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd11.conf +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 12 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 12 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd12.conf: No such file or directory +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.13.SSID +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 13 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd12.conf: No such file or directory +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd12.conf +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 13 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 13 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd13.conf: No such file or directory +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.14.SSID +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 14 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd13.conf: No such file or directory +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd13.conf +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 14 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 14 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd14.conf: No such file or directory +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.15.SSID +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 15 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd14.conf: No such file or directory +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd14.conf +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 15 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 15 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd15.conf: No such file or directory +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.16.SSID +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 16 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd15.conf: No such file or directory +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd15.conf +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath0 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath0 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0AP Index for band 0 is 0CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 0 ulInstance 1 enabled = TRUE +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 0, 0 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath0 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0CosaDmlWiFiApSecGetEntry pSsid = ath0 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath0 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE0' /etc/sec_file.txt +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string=11i +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 0 return code = 0 for auth mode = SharedAuthentication +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string=rdk@1234 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE0' /etc/sec_file.txt +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is rsn_pairwise +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=TKIP CCMPgetDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.Passphrase +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 1 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 1 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 1 count = 0 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath1 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath1 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 1 ulInstance 2 enabled = FALSE +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 1, 0 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath1 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath1 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath1 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE1' /etc/sec_file.txt +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string=11i +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 1 return code = 0 for auth mode = SharedAuthentication +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string=rdk@1234 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE1' /etc/sec_file.txt +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is rsn_pairwise +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=TKIP CCMPgetDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.Passphrase +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 2 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 2 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 2 count = 0 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath2 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath2 +Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 2 ulInstance 3 enabled = FALSE +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 2, 0 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath2 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath2 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath2 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE2' /etc/sec_file.txt +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 2 return code = 0 for auth mode = SharedAuthentication +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd2.conf: No such file or directory +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd2.conf: No such file or directory +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE2' /etc/sec_file.txt +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.3.Passphrase +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg +Dec 06 16:16:42 RaspberryPi-Gateway kernel: brlan0: port 1(eth1) entered forwarding state +Dec 06 16:16:42 RaspberryPi-Gateway kernel[271]: [ 29.772328] brlan0: port 1(eth1) entered forwarding state +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 3 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 3 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 3 count = 0 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath3 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath3 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 3 ulInstance 4 enabled = FALSE +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 3, 0 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath3 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath3 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath3 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE3' /etc/sec_file.txt +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 3 return code = 0 for auth mode = SharedAuthentication +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd3.conf: No such file or directory +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd3.conf: No such file or directory +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE3' /etc/sec_file.txt +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.4.Passphrase +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 4 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 4 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 4 count = 0 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath4 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath4 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 4 ulInstance 5 enabled = FALSE +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 1 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 4, 1 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath4 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath4 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath4 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE4' /etc/sec_file.txt +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 4 return code = 0 for auth mode = SharedAuthentication +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd4.conf: No such file or directory +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd4.conf: No such file or directory +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE4' /etc/sec_file.txt +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.5.Passphrase +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 5 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 5 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 5 count = 0 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath5 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath5 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 5 ulInstance 6 enabled = FALSE +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 1 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 5, 1 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath5 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath5 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath5 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE5' /etc/sec_file.txt +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 5 return code = 0 for auth mode = SharedAuthentication +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd5.conf: No such file or directory +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd5.conf: No such file or directory +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE5' /etc/sec_file.txt +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.6.Passphrase +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 6 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 6 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 6 count = 0 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath6 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath6 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 6 ulInstance 7 enabled = FALSE +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 6, 0 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath6 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath6 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath6 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE6' /etc/sec_file.txt +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 6 return code = 0 for auth mode = SharedAuthentication +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd6.conf: No such file or directory +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd6.conf: No such file or directory +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE6' /etc/sec_file.txt +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.7.Passphrase +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 7 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 7 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 7 count = 0 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath7 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath7 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 7 ulInstance 8 enabled = FALSE +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 7, 0 +Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath7 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath7 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath7 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE7' /etc/sec_file.txt +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 7 return code = 0 for auth mode = SharedAuthentication +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd7.conf: No such file or directory +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd7.conf: No such file or directory +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE7' /etc/sec_file.txt +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.8.Passphrase +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 8 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 8 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 8 count = 0 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath8 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath8 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 8 ulInstance 9 enabled = FALSE +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 8, 1 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath8 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath8 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath8 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE8' /etc/sec_file.txt +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 8 return code = 0 for auth mode = SharedAuthentication +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd8.conf: No such file or directory +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd8.conf: No such file or directory +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE8' /etc/sec_file.txt +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.9.Passphrase +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 9 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 9 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 9 count = 0 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath9 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath9 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 9 ulInstance 10 enabled = FALSE +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 9, 1 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath9 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath9 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath9 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE9' /etc/sec_file.txt +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 9 return code = 0 for auth mode = SharedAuthentication +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd9.conf: No such file or directory +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd9.conf: No such file or directory +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE9' /etc/sec_file.txt +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.10.Passphrase +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 10 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 10 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 10 count = 0 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath10 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath10 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 10 ulInstance 11 enabled = FALSE +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 10, 0 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath10 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath10 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath10 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE10' /etc/sec_file.txt +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 10 return code = 0 for auth mode = SharedAuthentication +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd10.conf: No such file or directory +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd10.conf: No such file or directory +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE10' /etc/sec_file.txt +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.11.Passphrase +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 11 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 11 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 11 count = 0 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath11 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath11 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 11 ulInstance 12 enabled = FALSE +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 11, 0 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath11 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath11 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath11 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE11' /etc/sec_file.txt +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 11 return code = 0 for auth mode = SharedAuthentication +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd11.conf: No such file or directory +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd11.conf: No such file or directory +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE11' /etc/sec_file.txt +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.12.Passphrase +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 12 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 12 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 12 count = 0 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath12 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath12 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 12 ulInstance 13 enabled = FALSE +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 12, 0 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath12 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath12 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath12 +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE12' /etc/sec_file.txt +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= +Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 12 return code = 0 for auth mode = SharedAuthentication +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd12.conf: No such file or directory +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd12.conf: No such file or directory +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE12' /etc/sec_file.txt +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.13.Passphrase +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 13 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 13 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 13 count = 0 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath13 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath13 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 13 ulInstance 14 enabled = FALSE +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 13, 0 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath13 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath13 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath13 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE13' /etc/sec_file.txt +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 13 return code = 0 for auth mode = SharedAuthentication +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd13.conf: No such file or directory +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd13.conf: No such file or directory +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE13' /etc/sec_file.txt +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.14.Passphrase +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 14 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 14 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 14 count = 0 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath14 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath14 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 14 ulInstance 15 enabled = FALSE +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 14, 0 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath14 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath14 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath14 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE14' /etc/sec_file.txt +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 14 return code = 0 for auth mode = SharedAuthentication +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd14.conf: No such file or directory +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd14.conf: No such file or directory +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE14' /etc/sec_file.txt +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.15.Passphrase +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 15 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 15 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 15 count = 0 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath15 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath15 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 15 ulInstance 16 enabled = FALSE +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 15, 0 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath15 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath15 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath15 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE15' /etc/sec_file.txt +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 15 return code = 0 for auth mode = SharedAuthentication +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd15.conf: No such file or directory +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd15.conf: No such file or directory +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE15' /etc/sec_file.txt +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.16.Passphrase +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 16 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 16 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 16 count = 0 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: ---- CosaWifiRegGetATMInfo ???load from PSM +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiNeighbouringGetEntry +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlGetNeighbouringDiagnosticEnable +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Entry +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Entry 0 +Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Exit +Dec 06 16:16:45 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1Entering Wifi loop +Dec 06 16:16:45 RaspberryPi-Gateway systemd[1]: Starting CcspTr069PaSsp service... +-- Subject: Unit CcspTr069PaSsp.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspTr069PaSsp.service has begun starting up. +Dec 06 16:16:45 RaspberryPi-Gateway systemd[1]: Starting CcspLMLite service... +-- Subject: Unit CcspLMLite.service has begun start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspLMLite.service has begun starting up. +Dec 06 16:16:45 RaspberryPi-Gateway systemd[1]: Started CcspTr069PaSsp service. +-- Subject: Unit CcspTr069PaSsp.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspTr069PaSsp.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:45 RaspberryPi-Gateway systemd[1]: Started CcspLMLite service. +-- Subject: Unit CcspLMLite.service has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit CcspLMLite.service has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:45 RaspberryPi-Gateway systemd[1]: Reached target WiFi Initialization Complete. +-- Subject: Unit wifi-initialized.target has finished start-up +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- Unit wifi-initialized.target has finished starting up. +-- +-- The start-up result is done. +Dec 06 16:16:45 RaspberryPi-Gateway CcspLMLite[3476]: eRT.com.cisco.spvtg.ccsp.lmlite start to check eRT.com.cisco.spvtg.ccsp.psm status +Dec 06 16:16:45 RaspberryPi-Gateway CcspLMLite[3476]: eRT.com.cisco.spvtg.ccsp.psm is ready, eRT.com.cisco.spvtg.ccsp.lmlite continue +Dec 06 16:16:45 RaspberryPi-Gateway CcspLMLite[3476]: PSM module done. +Dec 06 16:16:45 RaspberryPi-Gateway UTOPIA[3483]: 2017-12-06 16:16:45., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:16:45 RaspberryPi-Gateway CcspTr069PaSsp[3475]: Conf file /etc/debug.ini open success +Dec 06 16:16:45 RaspberryPi-Gateway CcspTr069PaSsp[3475]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. +Dec 06 16:16:45 RaspberryPi-Gateway CcspTr069PaSsp[3475]: Device.WiFi.SSID.3.EnableDevice.WiFi.SSID.10102.EnableTLV data file is missing!!! +Dec 06 16:17:03 RaspberryPi-Gateway systemd-timesyncd[185]: Synchronized to time server 216.239.35.8:123 (time3.google.com). +Dec 06 16:17:03 RaspberryPi-Gateway systemd[1]: Time has been changed +-- Subject: Time change +-- Defined-By: systemd +-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel +-- +-- The system clock has been changed to REALTIME microseconds after January 1st, 1970. +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:06 RaspberryPi-Gateway CcspLMLite[3476]: Conf file /etc/debug.ini open success +Dec 06 16:17:06 RaspberryPi-Gateway CcspLMLite[3476]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. +Dec 06 16:17:06 RaspberryPi-Gateway CcspLMLite[3476]: Conf file /etc/debug.ini open success +Dec 06 16:17:06 RaspberryPi-Gateway CcspLMLite[3476]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. +Dec 06 16:17:06 RaspberryPi-Gateway CcspLMLite[3476]: Conf file /etc/debug.ini open success +Dec 06 16:17:06 RaspberryPi-Gateway CcspLMLite[3476]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. +Dec 06 16:17:06 RaspberryPi-Gateway CcspLMLite[3476]: Send_Eth_Host_Sync_Req : Get Ethernet Clients +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:06 RaspberryPi-Gateway CcspLMLite[3476]: Send_MoCA_Host_Sync_Req : Get MoCA Clients +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: 2017-12-06 16:17:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 118 +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 119 +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 120 +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 121 +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 122 +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 123 +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 124 +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: 2017-12-06 16:17:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 118 +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 119 +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 120 +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 121 +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 122 +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 123 +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 124 +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:07 RaspberryPi-Gateway CcspTr069PaSsp[3475]: TR69 PA: Waiting for Setup env... +Dec 06 16:17:08 RaspberryPi-Gateway kernel: brlan0: port 2(wlan0) entered forwarding state +Dec 06 16:17:08 RaspberryPi-Gateway kernel[271]: [ 40.172303] brlan0: port 2(wlan0) entered forwarding state +Dec 06 16:17:12 RaspberryPi-Gateway CcspTr069PaSsp[3475]: TR69 PA: Setup env completed +Dec 06 16:17:12 RaspberryPi-Gateway CcspTr069PaSsp[3481]: config.utapi s_sysevent_connect: open new sysevent fd 6 +Dec 06 16:17:12 RaspberryPi-Gateway CcspTr069PaSsp[3475]: ***************** Ccsp Tr69 process is up Creatting PID file **** +Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0AP Index for band 0 is 0AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.SSID +Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : RPi3_RDKB-AP0getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.Passphrase +Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase +Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase +Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string=rdk@1234 +Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.SSID +Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid +Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : RPi3_RDKB-AP1getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.Passphrase +Dec 06 16:17:17 RaspberryPi-Gateway UTOPIA[3570]: 2017-12-06 16:17:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3641]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:34 RaspberryPi-Gateway kernel: Netfilter messages via NETLINK v0.30. +Dec 06 16:17:34 RaspberryPi-Gateway kernel[271]: [ 65.713602] Netfilter messages via NETLINK v0.30. +Dec 06 16:17:34 RaspberryPi-Gateway firewall[3638]: fw.info firewall called with no arg +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info firewall service initializing +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3647]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info firewall opening sysevent_fd 18, token 254 +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams, Parse the line read from file +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams, Check if interface matches +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams,Interface not found +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams, Parse the line read from file +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3648]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams, Check if interface matches +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams,Interface not found +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams, Parse the line read from file +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams, Check if interface matches +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams,Interface not found +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams, Parse the line read from file +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams, Check if interface matches +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams,Interface not found +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3655]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info starting firewall service +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3661]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3669]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3678]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:34 RaspberryPi-Gateway kernel: nf_conntrack version 0.5.0 (14805 buckets, 59220 max) +Dec 06 16:17:34 RaspberryPi-Gateway kernel[271]: [ 65.899891] nf_conntrack version 0.5.0 (14805 buckets, 59220 max) +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3688]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3715]: ddns.status (3631) wan state is down. No ddns update possible +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3716]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3720]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3738]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3814]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3813]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3813]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3813]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:35 RaspberryPi-Gateway sh[294]: tdk_firewall_service.sh: v4 rule is missing in iptables, adding now +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3638]: fw.info started firewall service +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3638]: fw.info firewall closing firewall_lock +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3638]: fw.info firewall closing sysevent_fd 18, token 254 +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3638]: fw.info firewall closing dbus connection +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3638]: fw.info firewall operation completed +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for firewall-start using /etc/utopia/service.d/firewall_log_handle.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for firewall-stop using /etc/utopia/service.d/firewall_log_handle.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for firewall-restart using /etc/utopia/service.d/firewall_log_handle.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Unregistered firewall from firewall-restart +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for firewall-restart using /etc/utopia/service.d/firewall_log_handle.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for syslog-status using /etc/utopia/service.d/firewall_log_handle.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for firewall_trigger_monitor-start using /etc/utopia/service.d/service_firewall/trigger_monitor.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for firewall_newhost_monitor-start using /etc/utopia/service.d/service_firewall/newhost_monitor.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for syslog_rotated using /etc/utopia/service.d/service_firewall/newhost_monitor.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3849]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for ipv6_prefix using /etc/utopia/service.d/firewall_log_handle.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for current_wan_ipv6_interface using /etc/utopia/service.d/firewall_log_handle.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for ipv6_wan0_dhcp_solicNodeAddr using /etc/utopia/service.d/firewall_log_handle.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for ipv6_erouter0_dhcp_solicNodeAddr using /etc/utopia/service.d/firewall_log_handle.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3865]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3870]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3871]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3880]: fw.trigger Firewall Trigger process started +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3880]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3882]: service.info Registered mcastproxy for mcastproxy-start using /etc/utopia/service.d/service_mcastproxy.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3882]: service.info Registered mcastproxy for mcastproxy-stop using /etc/utopia/service.d/service_mcastproxy.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3882]: service.info Registered mcastproxy for mcastproxy-restart using /etc/utopia/service.d/service_mcastproxy.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3885]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3887]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3882]: service.info Registered mcastproxy for wan-status using /etc/utopia/service.d/service_mcastproxy.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3882]: service.info Registered mcastproxy for lan-status using /etc/utopia/service.d/service_mcastproxy.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3882]: service.info Registered mcastproxy for bridge-status using /etc/utopia/service.d/service_mcastproxy.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3890]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3889]: service.info Registered mldproxy for mldproxy-start using /etc/utopia/service.d/service_mldproxy.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3889]: service.info Registered mldproxy for mldproxy-stop using /etc/utopia/service.d/service_mldproxy.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3889]: service.info Registered mldproxy for mldproxy-restart using /etc/utopia/service.d/service_mldproxy.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3889]: service.info Registered mldproxy for wan-status using /etc/utopia/service.d/service_mldproxy.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3889]: service.info Registered mldproxy for lan-status using /etc/utopia/service.d/service_mldproxy.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3895]: service.info Registered igd for igd-start using /etc/utopia/service.d/service_igd.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3895]: service.info Registered igd for igd-stop using /etc/utopia/service.d/service_igd.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3895]: service.info Registered igd for igd-restart using /etc/utopia/service.d/service_igd.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3895]: service.info Registered igd for lan-status using /etc/utopia/service.d/service_igd.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3895]: service.info Registered igd for snmp_subagent-status using /etc/utopia/service.d/service_igd.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3908]: service.info Registered misc for misc-start using /etc/utopia/service.d/service_misc.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3908]: service.info Registered misc for misc-stop using /etc/utopia/service.d/service_misc.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3908]: service.info Registered misc for misc-restart using /etc/utopia/service.d/service_misc.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3908]: service.info Registered misc for start-misc using /etc/utopia/service.d/service_misc.sh +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3927]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3931]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3946]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3946]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3946]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3947]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3947]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3947]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3955]: sshd.status stopping sshd service +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3947]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3947]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3947]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3947]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3954]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3977]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3997]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3996]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4043]: mldproxy.status starting mldproxy service +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: 2017-12-06 16:17:36., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4062]: sshd.status starting sshd service +Dec 06 16:17:36 RaspberryPi-Gateway firewall[4069]: fw.info firewall called with firewall-restart +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info firewall service initializing +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: 2017-12-06 16:17:36., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info firewall opening sysevent_fd 17, token 317 +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4092]: ddns.status (3920) ddns is not enabled +Dec 06 16:17:36 RaspberryPi-Gateway dnsmasq[2232]: read /etc/hosts - 9 addresses +Dec 06 16:17:36 RaspberryPi-Gateway dnsmasq-dhcp[2232]: read /etc/dhcp_static_hosts +Dec 06 16:17:36 RaspberryPi-Gateway dnsmasq-dhcp[2232]: read /var/dhcp_options +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams, Parse the line read from file +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams, Check if interface matches +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams,Interface not found +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams, Parse the line read from file +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams, Check if interface matches +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams,Interface not found +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams, Parse the line read from file +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams, Check if interface matches +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams,Interface not found +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams, Parse the line read from file +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams, Check if interface matches +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams,Interface not found +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info starting firewall service +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4109]: mcastproxy.status starting mcastproxy service +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4130]: 2017-12-06 16:17:36., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4151]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4151]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4151]: 2017-12-06 16:17:36., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4151]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4151]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4151]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info started firewall service +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info firewall closing firewall_lock +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info firewall closing sysevent_fd 17, token 317 +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info firewall closing dbus connection +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info firewall operation completed +Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4160]: 2017-12-06 16:17:36., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:37 RaspberryPi-Gateway kernel: ctnetlink v0.93: registering with nfnetlink. +Dec 06 16:17:37 RaspberryPi-Gateway kernel[271]: [ 68.375249] ctnetlink v0.93: registering with nfnetlink. +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: 2017-12-06 16:17:37., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 118 +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 119 +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 120 +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 121 +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 122 +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 123 +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 124 +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4215]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4215]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4215]: 2017-12-06 16:17:37., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4215]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4215]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4215]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4215]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4216]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4216]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4216]: 2017-12-06 16:17:37., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4216]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4216]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4216]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: 2017-12-06 16:17:37., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: igd.info IP address:10.0.0.1 +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: igd.info Initilize IGD root device +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: 2017-12-06 16:17:37., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: igd.info + Root Device UUID:uuid:ebf5a0a0-1dd1-11b2-a90f-94103eb8fe9d +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: igd.info + + Create description file +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4223]: igd.status starting igd service +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4224]: 2017-12-06 16:17:37., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4240]: mcastproxy.status starting mcastproxy service +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4284]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4298]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4300]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4302]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4303]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4303]: system.syscfg commit to store +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4314]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4316]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4318]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4320]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4322]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4324]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4328]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4330]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4333]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4367]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4367]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4367]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4367]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4367]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4367]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4367]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4367]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4370]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4373]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4375]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4376]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4382]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4383]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4396]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4412]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway dnsmasq[2232]: exiting on receipt of SIGTERM +Dec 06 16:17:39 RaspberryPi-Gateway dnsmasq[4424]: started, version 2.76 cachesize 150 +Dec 06 16:17:39 RaspberryPi-Gateway dnsmasq[4424]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect no-inotify +Dec 06 16:17:39 RaspberryPi-Gateway dnsmasq[4424]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# +Dec 06 16:17:39 RaspberryPi-Gateway dnsmasq[4424]: reading /etc/resolv.conf +Dec 06 16:17:39 RaspberryPi-Gateway dnsmasq[4424]: using nameserver 8.8.8.8#53 +Dec 06 16:17:39 RaspberryPi-Gateway dnsmasq[4424]: using nameserver 8.8.4.4#53 +Dec 06 16:17:39 RaspberryPi-Gateway dnsmasq[4424]: read /etc/hosts - 9 addresses +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4434]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4436]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4441]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4438]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4440]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4445]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4448]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4451]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway firewall[4457]: fw.info firewall called with firewall-restart +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info firewall service initializing +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4459]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info firewall opening sysevent_fd 17, token 397 +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams, Parse the line read from file +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams, Check if interface matches +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams,Interface not found +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams, Parse the line read from file +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams, Check if interface matches +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams,Interface not found +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams, Parse the line read from file +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams, Check if interface matches +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams,Interface not found +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams, Parse the line read from file +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams, Check if interface matches +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams,Interface not found +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4464]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info starting firewall service +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info started firewall service +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info firewall closing firewall_lock +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info firewall closing sysevent_fd 17, token 397 +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info firewall closing dbus connection +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info firewall operation completed +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4471]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4472]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4508]: system.utctx Utopia_Init: Initializing +Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4508]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4508]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4508]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4508]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4508]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4508]: system.utctx Utopia_Free: Freeing +Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4508]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4515]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4518]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4520]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4521]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4527]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4528]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4529]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4548]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4564]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4424]: read /etc/hosts - 9 addresses +Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4424]: exiting on receipt of SIGTERM +Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4587]: started, version 2.76 cachesize 150 +Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4587]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect no-inotify +Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq-dhcp[4587]: DHCP, IP range 10.0.0.2 -- 10.0.0.253, lease time 7d +Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4587]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# +Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4587]: reading /etc/resolv.conf +Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4587]: using nameserver 8.8.8.8#53 +Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4587]: using nameserver 8.8.4.4#53 +Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4587]: read /etc/hosts - 9 addresses +Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq-dhcp[4587]: read /etc/dhcp_static_hosts +Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq-dhcp[4587]: read /var/dhcp_options +Dec 06 16:18:00 RaspberryPi-Gateway UTOPIA[4658]: 2017-12-06 16:18:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:18:00 RaspberryPi-Gateway UTOPIA[4701]: system.sysevent syseventd fork helper execve failed. /etc/utopia/service.d/service_firewall/newhost_monitor.sh. Reason: (2) No such file or directory +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Init: Initializing +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: 2017-12-06 16:18:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 118 +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 119 +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 120 +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 121 +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 122 +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 123 +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 124 +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Free: Freeing +Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:18:18 RaspberryPi-Gateway passwd[4731]: pam_unix(passwd:chauthtok): unrecognized option [obscure] +Dec 06 16:18:18 RaspberryPi-Gateway passwd[4731]: pam_unix(passwd:chauthtok): unrecognized option [obscure] +Dec 06 16:18:19 RaspberryPi-Gateway passwd[4731]: pam_unix(passwd:chauthtok): password changed for root +Dec 06 16:18:20 RaspberryPi-Gateway dnsmasq[4587]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# +Dec 06 16:18:20 RaspberryPi-Gateway dnsmasq[4587]: reading /etc/resolv.conf +Dec 06 16:18:20 RaspberryPi-Gateway dnsmasq[4587]: using nameserver 8.8.8.8#53 +Dec 06 16:18:20 RaspberryPi-Gateway dnsmasq[4587]: using nameserver 8.8.4.4#53 +Dec 06 16:18:20 RaspberryPi-Gateway dnsmasq-dhcp[4587]: DHCPRELEASE(brlan0) 10.0.0.155 30:30:31:31:30:31 unknown lease +Dec 06 16:18:23 RaspberryPi-Gateway dnsmasq-dhcp[4587]: DHCPDISCOVER(brlan0) 30:30:31:31:30:31 +Dec 06 16:18:23 RaspberryPi-Gateway dnsmasq-dhcp[4587]: DHCPOFFER(brlan0) 10.0.0.155 30:30:31:31:30:31 +Dec 06 16:18:23 RaspberryPi-Gateway dnsmasq-dhcp[4587]: DHCPREQUEST(brlan0) 10.0.0.155 30:30:31:31:30:31 +Dec 06 16:18:23 RaspberryPi-Gateway dnsmasq-dhcp[4587]: DHCPACK(brlan0) 10.0.0.155 30:30:31:31:30:31 bft-node-bond0-101 +Dec 06 16:18:35 RaspberryPi-Gateway sh[294]: tdk_firewall_service.sh: v4 rule is missing in iptables, adding now +Dec 06 16:18:35 RaspberryPi-Gateway sh[294]: tdk_firewall_service.sh: v6 rule is missing in ip6tables, adding now +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Init: Initializing +Dec 06 16:18:37 RaspberryPi-Gateway CcspLMLite[3476]: LMlite-CLIENT <963> : Connected Mac = 30:30:31:31:30:31 +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: 2017-12-06 16:18:37., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_GetNamed: Failed on index 495 +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Free: Freeing +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Init: Initializing +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Init: Initializing... +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: 2017-12-06 16:18:37., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 118 +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 119 +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 120 +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 121 +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 122 +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 123 +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 124 +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Free: Freeing +Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Free: Freeing lock... +Dec 06 16:19:00 RaspberryPi-Gateway UTOPIA[4816]: 2017-12-06 16:19:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init From 10bbd90f76e7ac57721b42181b4cc5206ccf252d Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 11 Dec 2017 13:49:06 -0800 Subject: [PATCH 068/947] tests: cdrouter: make cdrouter test items configurable per site Signed-off-by: Matthew McClintock --- config.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config.py b/config.py index f8fa0113..c3115b4d 100644 --- a/config.py +++ b/config.py @@ -26,3 +26,7 @@ # Code change server like gerrit, github, etc... Used only in display # of the results html file to list links to code changes tested. code_change_server = None + +cdrouter_server = os.environ.get('BFT_CDROUTERSERVER', None) +cdrouter_wan_iface = os.environ.get('BFT_CDROUTERWANIFACE', "eth1") +cdrouter_lan_iface = os.environ.get('BFT_CDROUTERLANIFACE', "eth2") From e92f0f5a5ac494492c8eb6b4db3eb90881218e44 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 18 Dec 2017 15:17:33 -0600 Subject: [PATCH 069/947] bft: determine gw from LAN dhcp lease This is more dynamic and we can still run and know less about the board. This us helpful for running on already flashed unknown boards Signed-off-by: Matthew McClintock --- devices/debian.py | 8 +++++++- tests/rootfs_boot.py | 3 +-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 351cc183..11c6581a 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -298,6 +298,11 @@ def setup_as_wan_gateway(self): self.turn_off_pppoe() + def get_gw_from_dhclient_leases(self): + self.sendline("cat /var/lib/dhcp/dhclient.leases") + self.expect('option routers (\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})', timeout=5) + return self.match.group(1) + def setup_as_lan_device(self, gw="192.168.1.1"): # potential cleanup so this wan device works self.sendline('killall iperf ab hping3') @@ -324,7 +329,7 @@ def setup_as_lan_device(self, gw="192.168.1.1"): self.sendline('pkill --signal 9 -f dhclient.*eth1') self.expect(self.prompt) - def start_lan_client(self, gw="192.168.1.1"): + def start_lan_client(self): self.sendline('\nifconfig eth1 up') self.expect('ifconfig eth1 up') self.expect(self.prompt) @@ -346,6 +351,7 @@ def start_lan_client(self, gw="192.168.1.1"): raise Exception("Error: Device on LAN couldn't obtain address via DHCP.") self.sendline('ifconfig eth1') self.expect(self.prompt) + gw = self.get_gw_from_dhclient_leases() self.sendline('route del default') self.expect(self.prompt) self.sendline('route del default') diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 72468f0a..fb99e00c 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -141,8 +141,7 @@ def boot(self, reflash=True): self.logged['boot_time'] = end_seconds_up if board.routing and lan and self.config.setup_device_networking: - lan_ip = board.get_interface_ipaddr(board.lan_iface) - lan.start_lan_client(gw=lan_ip) + lan.start_lan_client() reflash = False reboot = False From 49123842e8be8cffb93caca860503fe2fdac9026 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 18 Dec 2017 15:56:14 -0600 Subject: [PATCH 070/947] bft: add docs about running with an unknown board Also, generically pretty good for a getting started as well if no supported hardware is available Signed-off-by: Matthew McClintock --- boardfarm_config_example.json | 35 ++++++++++- docs/BOARD_FARM.md | 111 ++++++++++++++++++++++++++++++++++ 2 files changed, 143 insertions(+), 3 deletions(-) diff --git a/boardfarm_config_example.json b/boardfarm_config_example.json index 257a2183..13898c8e 100644 --- a/boardfarm_config_example.json +++ b/boardfarm_config_example.json @@ -1,7 +1,7 @@ { "rpi3-1": { "board_type": "rpi3", - "conn_cmd": "cu -l /dev/ttyUSB4 -s 115200", + "conn_cmd": "cu -l /dev/ttyUSB1 -s 115200", "devices": [ { "type": "debian", @@ -19,8 +19,8 @@ "name": "lan", "pre_cmd_host": "docker build -t bft:node bft-node", "cmd": "docker run --name lan --privileged -it bft:node /bin/bash", - "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan) dev enx0050b61bfde4", - "post_cmd": "ip link set enx0050b61bfde4 name eth1", + "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan) dev enxc05627904e8c", + "post_cmd": "ip link set enxc05627904e8c name eth1", "cleanup_cmd": "docker stop lan; docker rm lan", "color": "blue" } @@ -56,5 +56,34 @@ ], "connection_type": "local_serial", "notes": "QEMU emulated devices" + }, + "new_device": { + "board_type": "Unknown", + "conn_cmd": "cu -l /dev/ttyUSB1 -s 115200", + "devices": [ + { + "type": "debian", + "name": "wan", + "pre_cmd_host": "docker build -t bft:node bft-node", + "cmd": "docker run --name wan --privileged -it bft:node /bin/bash", + "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' wan) dev enx00249b14dc6e", + "post_cmd": "ip link set enx00249b14dc6e name eth1", + "cleanup_cmd": "docker stop wan; docker rm wan", + "color": "cyan", + "options": "tftpd-server" + }, + { + "type": "debian", + "name": "lan", + "pre_cmd_host": "docker build -t bft:node bft-node", + "cmd": "docker run --name lan --privileged -it bft:node /bin/bash", + "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan) dev enxc05627904e8c", + "post_cmd": "ip link set enxc05627904e8c name eth1", + "cleanup_cmd": "docker stop lan; docker rm lan", + "color": "blue" + } + ], + "connection_type": "local_serial", + "notes": "Unknown device with docker containers attached to WAN/LAN" } } diff --git a/docs/BOARD_FARM.md b/docs/BOARD_FARM.md index 88788cc0..c14ce29f 100644 --- a/docs/BOARD_FARM.md +++ b/docs/BOARD_FARM.md @@ -257,3 +257,114 @@ If running openSUSE, you would run: ``` zypper in uucp ``` + +Starting with an Unknown board +---------------------- + +In a perfect world, the device you are using is already supported but that's +not always the case. This section will highlight some examples for running on +a new unsupported board. + +We've added a board called 'new_device' to the boardfarm example configuration, +with this configuration you can get started easily. This example also makes use of +docker containers for the LAN and WAN virtual devices - so it's also an example of +how that works + +To run this test, you need to have docker install and the user that us running the +boardfarm scripts needs to have sudo permission (or you could add the user to the +docker group as well, but sudo is required for some of the other networking steps). +Also, the user should be configured for password-less sudo. + +The default configuration also assumes that you have no device to power cycle the, +so you need to watch for messages: + +User power-cycle the device now! + +And that would be when you manually go and power cycle the board. After that if +everything works properly, the device will come up and it will run an example test. +Since you are using an unknown board type, you will possibly see some messages +where the tool is probing network interfaces but you can ignore those for the +most part + +To get started run you need to update the boardfarm config with the actual ethernet +devices you have connected to the WAN and LAN ports of the device under test. In the +example it uses enxc05627904e8 and enx0050b61bfde4 - these devices can be any device +as long as the packets arrive at the device on the right ports (e.g. you can use VLAN +devices here as well). Also, you need to update the conn_cmd attribute to be a command +that connects to the serial console of your device. This can be telnet, cu, etc as +long as it's a normal console. + +After that is done you can start a basic shell that just connects to all your devices: + +$ ./bft -n new_device -x connect +[ .. snip .. ] +==================== Begin Interact ==================== +Press Ctrl-] to stop interaction and return to menu + +If you got here, a lot went right. The scripts spawned the docker containers and +connected to the console. Go ahead and enter the menu by following the instructions: + +Current station + Board console: cu -l /dev/ttyUSB1 -s 115200 + wan device: ssh root@29ea56ffcf76 + lan device: ssh root@64386c00d161 +Pro-tip: Increase kernel message verbosity with + echo "7 7 7 7" > /proc/sys/kernel/printk +Menu + 1: Enter console + 2: List all tests + 3: Run test + 4: Reset board + 5: Enter interactive python shell + Type a device name to connect: [u'wan', u'lan'] + x: Exit +Please select: + +From here you can type lan, and press enter.. or wan and press enter. This will +change the shell from the device under test to the WAN and LAN docker containers. +You should verfiy that the eth0 and eth1 devices are present in each containter. +eth1 is the interface name of the device you specified in the boardfarm config. +If something went wrong you will need each command one-by-one outside of the +boardfarm scripts and see if there are errors present. + +Assuming no errors, you can exit the menu and try to run another test but this +time we will let the boardfarm scripts do more than connect, they will bring up +the WAN and LAN containers where the WAN container is hosting DHCP and routing +traffic (like an ISP would) and the LAN container is grabbing an IP via DHCP from +the device under test. Also, after that basic configuration is done, it will then +run a simple test (note: you can run tests from the Interact menu as well). + +$ ./bft -n new_device -e iPerf3Test +[ .. snip .. ] +Test suite "flash" has been specified, will attempt to run tests: + 1 RootFSBootTest from /home/mattsm/git/boardfarm/tests/rootfs_boot.pyc +Extra tests specified on command line: + + + +[ .. snip .. ] +==================== Begin RootFSBootTest ==================== +[ .. snip .. ] +==================== End RootFSBootTest ====================== + +==================== Begin iPerf3Test ==================== +[ .. snip .. ] +==================== End iPerf3Test ====================== + +==================== Begin Interact ==================== + +The above output is severely truncated to save space, but in each section see +the output from the device under test, WAN, and LAN containers. During the run, +you should see the output from the iperf3 command showing the results of the +test, something like this: + +[SUM] 0.00-60.05 sec 498 MBytes 69.6 Mbits/sec 322 sender +[SUM] 0.00-60.05 sec 498 MBytes 69.5 Mbits/sec receiver + +NOTE: since we are running new containers each time keep in mind that the WAN +and LAN devices will be completely reset each time you start the scripts. You +could actual modify the startup and make the containers persistant across +invocations of the script. Each way has it's pros and cons + +Next step is to add proper support for your new board so you can take advantage of +automated flashing and remote power and reset to completly automate your CI flow From c8489ce1ff3ef8f7239cff22d4001f7657d574f8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 18 Dec 2017 16:42:18 -0600 Subject: [PATCH 071/947] config: turn off interfaces when exiting container Signed-off-by: Matthew McClintock --- boardfarm_config_example.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/boardfarm_config_example.json b/boardfarm_config_example.json index 13898c8e..c699909d 100644 --- a/boardfarm_config_example.json +++ b/boardfarm_config_example.json @@ -10,7 +10,7 @@ "cmd": "docker run --name wan --privileged -it bft:node /bin/bash", "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' wan) dev enx00249b14dc6e", "post_cmd": "ip link set enx00249b14dc6e name eth1", - "cleanup_cmd": "docker stop wan; docker rm wan", + "cleanup_cmd": "docker stop wan; docker rm wan; sudo ip link set dev enx00249b14dc6e down", "color": "cyan", "options": "tftpd-server" }, @@ -21,7 +21,7 @@ "cmd": "docker run --name lan --privileged -it bft:node /bin/bash", "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan) dev enxc05627904e8c", "post_cmd": "ip link set enxc05627904e8c name eth1", - "cleanup_cmd": "docker stop lan; docker rm lan", + "cleanup_cmd": "docker stop lan; docker rm lan; sudo ip link set dev enxc05627904e8c down", "color": "blue" } ], @@ -68,7 +68,7 @@ "cmd": "docker run --name wan --privileged -it bft:node /bin/bash", "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' wan) dev enx00249b14dc6e", "post_cmd": "ip link set enx00249b14dc6e name eth1", - "cleanup_cmd": "docker stop wan; docker rm wan", + "cleanup_cmd": "docker stop wan; docker rm wan; sudo ip link set dev enx00249b14dc6e down", "color": "cyan", "options": "tftpd-server" }, @@ -79,7 +79,7 @@ "cmd": "docker run --name lan --privileged -it bft:node /bin/bash", "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan) dev enxc05627904e8c", "post_cmd": "ip link set enxc05627904e8c name eth1", - "cleanup_cmd": "docker stop lan; docker rm lan", + "cleanup_cmd": "docker stop lan; docker rm lan; sudo ip link set dev enxc05627904e8c down", "color": "blue" } ], From a2754444b8825f229404835850a5aac94ed605fd Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 18 Dec 2017 16:44:52 -0600 Subject: [PATCH 072/947] docs: clarify permisions for example Signed-off-by: Matthew McClintock --- docs/BOARD_FARM.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/BOARD_FARM.md b/docs/BOARD_FARM.md index c14ce29f..a3f72232 100644 --- a/docs/BOARD_FARM.md +++ b/docs/BOARD_FARM.md @@ -270,10 +270,9 @@ with this configuration you can get started easily. This example also makes use docker containers for the LAN and WAN virtual devices - so it's also an example of how that works -To run this test, you need to have docker install and the user that us running the -boardfarm scripts needs to have sudo permission (or you could add the user to the -docker group as well, but sudo is required for some of the other networking steps). -Also, the user should be configured for password-less sudo. +You need to add the user to the docker group as well so the boardfarm scripts can +run docker commands. Also for the time being you need to have password-less sudo +so we can run certain networking related commands The default configuration also assumes that you have no device to power cycle the, so you need to watch for messages: From 26d2cfbc927bb061977d6b069aeaec8c9d033546 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 18 Dec 2017 16:46:33 -0600 Subject: [PATCH 073/947] docs: fix MD formatting for example Signed-off-by: Matthew McClintock --- docs/BOARD_FARM.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/BOARD_FARM.md b/docs/BOARD_FARM.md index a3f72232..61de9f7c 100644 --- a/docs/BOARD_FARM.md +++ b/docs/BOARD_FARM.md @@ -277,7 +277,9 @@ so we can run certain networking related commands The default configuration also assumes that you have no device to power cycle the, so you need to watch for messages: +``` User power-cycle the device now! +``` And that would be when you manually go and power cycle the board. After that if everything works properly, the device will come up and it will run an example test. @@ -295,14 +297,17 @@ long as it's a normal console. After that is done you can start a basic shell that just connects to all your devices: +``` $ ./bft -n new_device -x connect [ .. snip .. ] ==================== Begin Interact ==================== Press Ctrl-] to stop interaction and return to menu +``` If you got here, a lot went right. The scripts spawned the docker containers and connected to the console. Go ahead and enter the menu by following the instructions: +``` Current station Board console: cu -l /dev/ttyUSB1 -s 115200 wan device: ssh root@29ea56ffcf76 @@ -318,6 +323,7 @@ Menu Type a device name to connect: [u'wan', u'lan'] x: Exit Please select: +``` From here you can type lan, and press enter.. or wan and press enter. This will change the shell from the device under test to the WAN and LAN docker containers. @@ -333,6 +339,7 @@ traffic (like an ISP would) and the LAN container is grabbing an IP via DHCP fro the device under test. Also, after that basic configuration is done, it will then run a simple test (note: you can run tests from the Interact menu as well). +``` $ ./bft -n new_device -e iPerf3Test [ .. snip .. ] Test suite "flash" has been specified, will attempt to run tests: @@ -351,14 +358,17 @@ Extra tests specified on command line: ==================== End iPerf3Test ====================== ==================== Begin Interact ==================== +``` The above output is severely truncated to save space, but in each section see the output from the device under test, WAN, and LAN containers. During the run, you should see the output from the iperf3 command showing the results of the test, something like this: +``` [SUM] 0.00-60.05 sec 498 MBytes 69.6 Mbits/sec 322 sender [SUM] 0.00-60.05 sec 498 MBytes 69.5 Mbits/sec receiver +``` NOTE: since we are running new containers each time keep in mind that the WAN and LAN devices will be completely reset each time you start the scripts. You From 36d9c207d0643e531ce4ee15880555cd615e2e8b Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 16 Jan 2018 15:30:41 +0000 Subject: [PATCH 074/947] tests: add cdrouter bootstrap test This test will allow bft tools to kick off a cdrouter based test. It will also record the results for each cdrouter test as it would an internal test Signed-off-by: Matthew McClintock --- tests/cdrouter_bootstrap.py | 205 ++++++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 tests/cdrouter_bootstrap.py diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py new file mode 100644 index 00000000..4dfca081 --- /dev/null +++ b/tests/cdrouter_bootstrap.py @@ -0,0 +1,205 @@ +# Copyright (c) 2017 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. + +from cdrouter import CDRouter +from cdrouter.configs import Config +from cdrouter.cdrouter import CDRouterError +from cdrouter.jobs import Job +from cdrouter.packages import Package + +import time +import rootfs_boot +from devices import board, wan, lan, wlan, prompt +import os + +class CDrouterStub(rootfs_boot.RootFSBootTest): + '''First attempt at test that runs a CDrouter job, waits for completion, + and grabs results''' + + # To be overriden by children class + tests = None + extra_config = False + + def runTest(self): + if self.tests is None: + self.skipTest("No tests defined!") + + if self.config.cdrouter_server is None: + self.skipTest("No cdrouter server specified") + + for d in [wan, lan]: + d.sendline('ifconfig eth1 down') + d.expect(prompt) + + board.sendcontrol('c') + board.expect(prompt) + try: + board.sendline('reboot') + board.wait_for_linux() + except: + board.reset() + board.wait_for_linux() + + # TODO: make host configurable in bft config? + c = CDRouter(self.config.cdrouter_server) + + # TODO: more clean edit of a config, and use a special name per config? + try: + c.configs.delete(c.configs.get_by_name("bft-automated-job").id) + except CDRouterError as e: + if e == "no such config": + pass + + board.sendline('ifconfig %s' % board.wan_iface) + board.expect('([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})') + wandutmac = board.match.group() + board.expect(prompt) + + print ("Using %s for WAN mac address" % wandutmac) + + lan.vlan = wan.vlan = 0 + for device in self.config.board['devices']: + d = None + if device['name'] == 'wan': + d = wan + elif device['name'] == 'lan': + d = lan + + if d is not None: + d.vlan = getattr(device, 'vlan', 0) + if d.vlan == 0: + d.sendline('cat /proc/net/vlan/config') + d.expect('eth1.*\|\s([0-9]+).*\|') + d.vlan = d.match.group(1) + d.expect(prompt) + + print ("Using %s for WAN vlan" % wan.vlan) + print ("Using %s for LAN vlan" % lan.vlan) + + # TODO: move wan and lan interface to bft config? + contents=""" +testvar wanInterface """ + self.config.cdrouter_wan_iface + contents=contents +""" +testvar wanDutMac """ + wandutmac + + if wan.vlan != 0: + contents=contents + """ +testvar wanVlanId """ + wan.vlan + + contents=contents + """ +testvar lanInterface """ + self.config.cdrouter_lan_iface + + if lan.vlan != 0: + contents=contents + """ +testvar lanVlanId """ + lan.vlan + + if self.extra_config: + contents=contents + "\n" + self.extra_config.replace(',', '\n') + + print("Using below for config:") + print(contents) + print("#######################") + + cfg = c.configs.create(Config(name='bft-automated-job', contents=contents)) + + # TODO: more clean edit of a config, and use a special name per config? + try: + c.packages.delete(c.packages.get_by_name("bft-automated-job").id) + except CDRouterError as e: + if e == "no such package": + pass + + p = c.packages.create(Package(name="bft-automated-job", + testlist=self.tests, + config_id=cfg.id)) + j = c.jobs.launch(Job(package_id=p.id)) + + while j.result_id is None: + time.sleep(1) + j = c.jobs.get(j.id) + + print('Job Result-ID: {0}'.format(j.result_id)) + + while True: + r = c.results.get(j.result_id) + print(r.status) + + # we are ready to go from boardfarm reset above + if r.status == "paused": + c.results.unpause(j.result_id) + time.sleep(5) + continue + + if r.status != "running": + break + + time.sleep(5) + + print(r.result) + self.result_message = r.result.encode('ascii','ignore') + # TODO: results URL? + + summary = c.results.summary_stats(j.result_id) + + self.result_message += " (Failed= %s, Passed = %s, Skipped = %s)" \ + % (summary.result_breakdown.failed, \ + summary.result_breakdown.passed, \ + summary.result_breakdown.skipped) + + for test in summary.test_summaries: + self.logged[test.name] = vars(test) + + if str(test.name) not in ["start", "final"]: + from lib.common import TestResult + grade_map = {"pass": "OK", "fail": "FAIL", "skip": "SKIP"}[test.result] + tr = TestResult(test.name, grade_map, test.description) + self.subtests.append(tr) + + # TODO: handle skipped tests + + try: + metric = c.results.get(result_id, test.name, "bandwidth") + print vars(metric) + # TODO: decide how to export data to kibana + except: + # Not all tests have this metric, no other way? + pass + + + assert (r.result == "The package completed successfully") + + self.recover() + + def recover(self): + # TODO: full recovery... + for d in [wan,lan]: + d.sendline('ifconfig eth1 up') + d.expect(prompt) + +cdrouter_test_matrix = { + "Basic": { "tests": [ "cdrouter_basic_{0}".format(i) for i in [1, 2, 10, 20] ] }, + "DHCP": { "tests": [ "cdrouter_dhcp_{0}".format(i) for i in [1, 2, 3, 4, 5, 10, 11, 20 ] ] }, + "DHCPServer": { "tests": [ "cdrouter_dhcp_server_{0}".format(i) for i in [1, 2] \ + + range(4, 11) \ + + [30, 31, 100, 200, 300, 301, 401, 501, 520, 540, 600, 610, 620, 630, 700, 710, 720, 800, 801] ], + "extra_config": "testvar dhcpClientStart 10.0.0.2,testvar dhcpClientEnd 10.0.0.253,testvar lanIp 10.0.0.1", + }, + "NAT": { "tests": [ "cdrouter_nat_{0}".format(i) for i in [1, 2, 100, 101, 120, 130, 150, 200, 201, 300, 320, 330, 340, 350, 360, 361, 400, 401, 410, 500, 501, 510, 511, 520, 530, 600, 610] ] }, + "NATTimeout": { "tests": [ "cdrouter_nat_timeout_{0}".format(i) for i in [1, 2, 10, 11, 20, 25, 30, 40] ] }, +} + +for k, v in cdrouter_test_matrix.iteritems(): + name = "CDrouter" + k + + globals()[name] = type(name, (CDrouterStub, ), + { + 'tests': v['tests'], + 'extra_config': v.get('extra_config', False), + }) + +class CDrouterCustom(CDrouterStub): + tests = os.environ.get("BFT_CDROUTER_CUSTOM", "").split(" ") From 1f823ada13c56cee3db5711cc5a5880d44f57d26 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 15 Jan 2018 23:30:43 +0000 Subject: [PATCH 075/947] devices: owrt: allow more time for flashing bootloader Some are large and are hitting the default timeout, so let's increase this. At some point the timeout should be calulated based off the image size and the bootloader write speed Signed-off-by: Matthew McClintock --- devices/openwrt_router.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 0ab8ca2d..2a78e110 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -179,7 +179,7 @@ def tftp_get_file(self, host, filename, timeout=30): self.expect(self.prompt) return new_fname - def tftp_get_file_uboot(self, loadaddr, filename, timeout=30): + def tftp_get_file_uboot(self, loadaddr, filename, timeout=60): '''Within u-boot, download file from tftp server.''' for attempt in range(3): try: From af646e358ac02f5f59ffbe7a1c7cb2f32a30ef18 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 15 Jan 2018 23:31:32 +0000 Subject: [PATCH 076/947] gitignore: ignore extra config files So the user can keep one local here, and override the default via the environment BFT_CONFIG Signed-off-by: Matthew McClintock --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 73fe47ce..fb6255af 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,6 @@ results/ # ctas TAGS + +# Alternate config files +*.json From 6162d1ed041e30f632b704dbb9f491f49d6bf725 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 16 Jan 2018 00:11:17 +0000 Subject: [PATCH 077/947] devices: add simple serial power device You can set simple serial based config to control a relay for example: "powerport": "serial://ttyACM0;on_cmd=relay off 0;off_cmd=relay on 0", Signed-off-by: Matthew McClintock --- devices/power.py | 47 ++++++++++++++++++++++++++++++++++++++++------- requirements.txt | 1 + 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/devices/power.py b/devices/power.py index 7b4b5912..7a1be080 100644 --- a/devices/power.py +++ b/devices/power.py @@ -30,13 +30,16 @@ def get_power_device(ip_address, username=None, password=None, outlet=None): ''' if ip_address is None: - if outlet is not None and "wemo://" in outlet: - if WemoEnv is None: - print("Please install ouimeaux: pip install ouimeaux") - else: - return WemoPowerSwitch(outlet=outlet) - else: - return HumanButtonPusher() + if outlet is not None: + if "wemo://" in outlet: + if WemoEnv is None: + print("Please install ouimeaux: pip install ouimeaux") + else: + return WemoPowerSwitch(outlet=outlet) + if "serial://" in outlet: + return SimpleSerialPower(outlet=outlet) + + return HumanButtonPusher() try: data = urlopen("http://" + ip_address).read().decode() @@ -193,6 +196,36 @@ def reset(self): time.sleep(5) self.switch.on() +class SimpleSerialPower(PowerDevice): + ''' + Simple serial based relay or power on off. Has an on and off string to send + over serial + ''' + serial_dev = '/dev/ttyACM0' + baud = 2400 + off_cmd = b'relay on 0' + delay = 5 + on_cmd = b'relay off 0' + + def __init__(self, outlet): + parsed = outlet.replace("serial://", '').split(';') + self.serial_dev = "/dev/" + parsed[0] + for param in parsed[1:]: + for attr in ['on_cmd', 'off_cmd']: + if attr + '=' in param: + setattr(self, attr, param.replace(attr + '=', '').encode()) + + def reset(self): + import serial + with serial.Serial(self.serial_dev, self.baud) as ser: + if self.off_cmd is not None: + ser.write(self.off_cmd + '\r') + time.sleep(5) + + ser.write(self.on_cmd + '\r') + + ser.close() + if __name__ == "__main__": print("Gathering info about power outlets...") diff --git a/requirements.txt b/requirements.txt index 60e12bd0..52e94074 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,3 +9,4 @@ selenium future dlipower cdrouter +serial From a72e00afa9974eb5e0b0b6224bbce534c1c180bf Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 14 Dec 2017 13:07:19 -0800 Subject: [PATCH 078/947] bft: remove junitxml: not really used This is not really used directly (used to be parsed by Jenkins) but without we can more directly manipulate the results Signed-off-by: Matthew McClintock --- bft | 27 ++++++++++++++------------- requirements.txt | 1 - tests/lib/common.py | 1 - 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/bft b/bft index 3b9ee43b..3aeb2926 100755 --- a/bft +++ b/bft @@ -13,7 +13,6 @@ import os import random import sys import unittest2 -import junitxml import json import hashlib import time @@ -199,12 +198,7 @@ def main(): # Run tests os.environ['TEST_START_TIME'] = datetime.datetime.now().strftime("%s") - result_name = os.path.join(config.output_dir + "test_results.xml") - result_file = open(result_name, "w") - result = junitxml.JUnitXmlResult(result_file) - result.startTestRun() tests_to_run = [] - suite = unittest2.TestSuite() # Add tests from specified suite print_bold('==========\nTest suite "%s" has been specified, will attempt to run tests:' % config.TEST_SUITE) import tests @@ -230,15 +224,24 @@ def main(): print_bold("Unable to find specified extra tests, aborting...") sys.exit(1) - for x in tests_to_run: - suite.addTest(x) - print_bold('==========') try: - print_bold(suite.run(result)) + tests_pass = tests_fail = tests_skip = 0 + for test in tests_to_run: + test.run() + grade = getattr(test, "result_grade", None) + if grade == "OK" or grade == "Unexp OK": + tests_pass += 1 + elif grade == "FAIL" or grade == "Exp FAIL": + tests_fail += 1 + elif grade == "SKIP" or grade is None: + tests_skip += 1 + except KeyboardInterrupt: print_bold("Run interrupted. Wrapping up...") - result.stopTestRun() + + print_bold("Results run=%d failures=%d skipped=%d" % (tests_pass, tests_fail, tests_skip)) + try: config.console.close() config.lan.close() @@ -246,9 +249,7 @@ def main(): except Exception as e: print(e) print_bold("For some reason, could not close a connection.") - print_bold("Wrote %s" % result_name) library.print_board_info(config.board) - result_file.close() with open(os.path.join(config.output_dir, 'console.log'), 'w') as clog: clog.write(config.console.log) diff --git a/requirements.txt b/requirements.txt index 52e94074..1b51e214 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,6 @@ argparse elasticsearch>=1.0.0 unittest2 pexpect==3.1 -junitxml beautifulsoup4 termcolor selenium diff --git a/tests/lib/common.py b/tests/lib/common.py index 4b636d4f..140ee7c9 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -7,7 +7,6 @@ # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 import json -import junitxml import pexpect import sys import subprocess From e73dfc886d79bb3943393f6e17a774e21540db80 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 14 Dec 2017 15:27:18 -0800 Subject: [PATCH 079/947] bft: add notion of subtests A single bft test can expand to multiple in the result parsing phase: from lib.common import TestResult self.subtests = [] self.subtests.append(TestResult("foo", "OK", "This is a message")) self.subtests.append(TestResult("bar", "OK", "This is a message")) self.subtests.append(TestResult("baz", "OK", "This is a message")) Signed-off-by: Matthew McClintock --- library.py | 57 +++++++++++++++++++++++++-------------------- tests/lib/common.py | 6 +++++ tests/linux_boot.py | 1 + 3 files changed, 39 insertions(+), 25 deletions(-) diff --git a/library.py b/library.py index 6e0dab6b..bf92acd1 100644 --- a/library.py +++ b/library.py @@ -24,33 +24,40 @@ def process_test_results(raw_test_results): 'tests_total': 0, } for i, x in enumerate(raw_test_results): - message = None - name = x.__class__.__name__ - grade = None - try: - grade = x.result_grade - except: - pass - if grade == "OK" or grade == "Unexp OK": - full_results['tests_pass'] += 1 - elif grade == "FAIL" or grade == "Exp FAIL": - full_results['tests_fail'] += 1 - elif grade == "SKIP" or grade is None: - full_results['tests_skip'] += 1 - try: - # Use only first line of docstring result message - message = x.__doc__.split('\n')[0] - except: - print_bold("WARN: Please add docstring to %s." % x) + def parse_and_add_results(cls, prefix=""): + name = prefix + getattr(cls, 'name', cls.__class__.__name__) + grade = getattr(cls, 'result_grade', None) + + if grade == "OK" or grade == "Unexp OK": + full_results['tests_pass'] += 1 + elif grade == "FAIL" or grade == "Exp FAIL": + full_results['tests_fail'] += 1 + elif grade == "SKIP" or grade is None: + full_results['tests_skip'] += 1 + + message = getattr(cls, 'result_message', None) + + if message is None: + try: + message = cls.__doc__.split('\n')[0] + except: + message = "Missing description of class (no docstring)" + print_bold("WARN: Please add docstring to %s." % cls) + pass + + long_message = getattr(cls, 'long_result_message', "") + + full_results['test_results'].append({"name": name, "message": message, "long_message": long_message, "grade": grade}) + try: - message = x.result_message - except: + parse_and_add_results(x) + + for subtest in x.subtests: + parse_and_add_results(subtest, prefix=x.__class__.__name__ + "-") + except Exception as e: + print("Failed to parse test result: %s" % e) pass - if hasattr(x, 'long_result_message'): - long_message = x.long_result_message - else: - long_message = "" - full_results['test_results'].append({"name": name, "message": message, "long_message": long_message, "grade": grade}) + full_results['tests_total'] = len(raw_test_results) return full_results diff --git a/tests/lib/common.py b/tests/lib/common.py index 140ee7c9..f12c1d40 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -117,3 +117,9 @@ def firefox_webproxy_driver(ipport): def test_msg(msg): cprint(msg, None, attrs=['bold']) + +class TestResult: + def __init__(self, name, grade, message): + self.name = name + self.result_grade = grade + self.result_message = message diff --git a/tests/linux_boot.py b/tests/linux_boot.py index 86568079..3e49a68c 100644 --- a/tests/linux_boot.py +++ b/tests/linux_boot.py @@ -21,6 +21,7 @@ def __init__(self, config): self.reset_after_fail = True self.dont_retry = False self.logged = dict() + self.subtests = [] def id(self): return self.__class__.__name__ From 1122a11ba2fb531df803d2d81246289f9d2c11f5 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 9 Jan 2018 14:05:52 -0800 Subject: [PATCH 080/947] tests: lib: common: add default logged values This is used in the default class for logging values so let's make and empty one here as well Signed-off-by: Matthew McClintock --- tests/lib/common.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/lib/common.py b/tests/lib/common.py index f12c1d40..4acd572d 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -119,6 +119,7 @@ def test_msg(msg): cprint(msg, None, attrs=['bold']) class TestResult: + logged = {} def __init__(self, name, grade, message): self.name = name self.result_grade = grade From 125ef395c1cd1dcaad5d27d711197298a61e4746 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 9 Jan 2018 14:06:52 -0800 Subject: [PATCH 081/947] bft: publish subtest results to kibana as well These were only in the results email until now, now the results are saved on Kibana like they are distinct test results Signed-off-by: Matthew McClintock --- bft | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/bft b/bft index 3aeb2926..a4becf2b 100755 --- a/bft +++ b/bft @@ -289,14 +289,26 @@ def main(): info_for_remote_log.pop('test_results', None) # but we will add back specific test results data for t in tests_to_run: - if hasattr(t, 'override_kibana_name'): - n = t.override_kibana_name - else: - n = t.__class__.__name__ - for k, v in t.logged.items(): - info_for_remote_log[n + '-' + k] = v - if hasattr(t, 'result_grade'): - info_for_remote_log[n + "-result"] = t.result_grade + def prepare_results_for_kibana(test, prefix=""): + if hasattr(test, 'override_kibana_name'): + n = test.override_kibana_name + elif hasattr(test, 'name'): + n = test.name + else: + n = test.__class__.__name__ + + n = prefix + n + + for k, v in test.logged.items(): + info_for_remote_log[n + '-' + k] = v + if hasattr(test, 'result_grade'): + info_for_remote_log[n + "-result"] = test.result_grade + + return n + + prefix = prepare_results_for_kibana(t) + "-" + for subtest in t.subtests: + prepare_results_for_kibana(subtest, prefix=prefix) try: if config.logging_server is not None: From 30f5f6f0686fcf0ba69e8f5df20735d6d1d3b47f Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 9 Jan 2018 21:20:12 -0800 Subject: [PATCH 082/947] bft: compare results against golden master Point this at a JSON url for the kibana results and we will compare ourselves against that for differences in test results E.g.: ./bft -n rpi3-1 -x connect -e KernelModules -g http://foobar:9200/boardfarm-2018.01.10/bft_run/AWDd9zLmWTl8Sm4Ipc76 Signed-off-by: Matthew McClintock --- arguments.py | 2 ++ bft | 13 ++++++++++++- library.py | 7 ++++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/arguments.py b/arguments.py index ffe2ad2b..3f67191f 100755 --- a/arguments.py +++ b/arguments.py @@ -77,6 +77,7 @@ def parse(): parser.add_argument('-z', '--no-network', action='store_true', help='Skip basic network tests when booting') parser.add_argument('-c', '--config_file', metavar='', type=str, default=boardfarm_config_location, help='JSON config file for boardfarm') parser.add_argument('--bootargs', metavar='', type=str, default=None, help='bootargs to set or append to default args (board dependant)') + parser.add_argument('-g', '--golden', metavar='', type=str, default=None, help='Path to JSON results to compare against (golden master)') args = parser.parse_args() @@ -247,6 +248,7 @@ def add_basic_auth(login_str, request): config.reboot_vms = args.reboot_vms config.setup_device_networking = not args.no_network config.bootargs = args.bootargs + config.golden = args.golden return config diff --git a/bft b/bft index a4becf2b..7b2eb86a 100755 --- a/bft +++ b/bft @@ -256,8 +256,19 @@ def main(): os.environ['TEST_END_TIME'] = datetime.datetime.now().strftime("%s") + # grab golden master results + try: + if config.golden is not None: + import requests + golden = requests.get(config.golden).json() + else: + golden = {} + except: + print_bold("Failed to fetch golden master results, skipping...") + golden = {} + # Write test result messages to a file - full_results = library.process_test_results(tests_to_run) + full_results = library.process_test_results(tests_to_run, golden) json.dump(full_results, open(os.path.join(config.output_dir + 'test_results.json'), 'w'), indent=4, diff --git a/library.py b/library.py index bf92acd1..f1c3ad92 100644 --- a/library.py +++ b/library.py @@ -16,7 +16,7 @@ def print_board_info(x): for key in sorted(x): print_bold(" %s: %s" % (key, x[key])) -def process_test_results(raw_test_results): +def process_test_results(raw_test_results, golden={}): full_results = {'test_results': [], 'tests_pass': 0, 'tests_fail': 0, @@ -28,6 +28,11 @@ def parse_and_add_results(cls, prefix=""): name = prefix + getattr(cls, 'name', cls.__class__.__name__) grade = getattr(cls, 'result_grade', None) + if '_source' in golden: + if name + "-result" in golden['_source']: + if golden['_source'][name + "-result"] != grade: + name = name + "*" + if grade == "OK" or grade == "Unexp OK": full_results['tests_pass'] += 1 elif grade == "FAIL" or grade == "Exp FAIL": From d18c8f49caed3fc4d2c4dc1573d13f78f0a24a58 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 16 Jan 2018 14:08:19 -0800 Subject: [PATCH 083/947] tests: cdrouter: configure basic tests for RDK-B Otherwise it expects a 192.168.1.0/24 address range Signed-off-by: Matthew McClintock --- tests/cdrouter_bootstrap.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 4dfca081..67ccb3b9 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -181,7 +181,8 @@ def recover(self): d.expect(prompt) cdrouter_test_matrix = { - "Basic": { "tests": [ "cdrouter_basic_{0}".format(i) for i in [1, 2, 10, 20] ] }, + "Basic": { "tests": [ "cdrouter_basic_{0}".format(i) for i in [1, 2, 10, 20] ], + "extra_config": "testvar dhcpClientStart 10.0.0.2,testvar dhcpClientEnd 10.0.0.253,testvar lanIp 10.0.0.1" }, "DHCP": { "tests": [ "cdrouter_dhcp_{0}".format(i) for i in [1, 2, 3, 4, 5, 10, 11, 20 ] ] }, "DHCPServer": { "tests": [ "cdrouter_dhcp_server_{0}".format(i) for i in [1, 2] \ + range(4, 11) \ From 357c13429ac65b050bd098b886f79d5191e99677 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 16 Jan 2018 14:08:58 -0800 Subject: [PATCH 084/947] tests: cdrouter: allow config for custom tests as well This is useful for setting config values when running / debugging single tests E.g.: BFT_CDROUTER_CUSTOM_CONFIG="testvar dhcpClientStart 10.0.0.2,testvar dhcpClientEnd 10.0.0.253,testvar lanIp 10.0.0.1" BFT_CDROUTER_CUSTOM=cdrouter_basic_10 ./bft -n rpi3-1 -x connect -e CDrouterCustom Signed-off-by: Matthew McClintock --- tests/cdrouter_bootstrap.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 67ccb3b9..62180927 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -204,3 +204,4 @@ def recover(self): class CDrouterCustom(CDrouterStub): tests = os.environ.get("BFT_CDROUTER_CUSTOM", "").split(" ") + extra_config = os.environ.get("BFT_CDROUTER_CUSTOM_CONFIG", "") From 6547c9d0929be4a6046152334a6ba4e3745f91e1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 16 Jan 2018 15:54:08 -0800 Subject: [PATCH 085/947] bft: parse golden reference for unexpected test results We re-use what is here and parse the golden reference to update expected and unexpected OK/FAIL Signed-off-by: Matthew McClintock --- library.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/library.py b/library.py index f1c3ad92..b23f842b 100644 --- a/library.py +++ b/library.py @@ -22,20 +22,29 @@ def process_test_results(raw_test_results, golden={}): 'tests_fail': 0, 'tests_skip': 0, 'tests_total': 0, + 'unexpected_fail': 0, + 'unexpected_pass': 0, } for i, x in enumerate(raw_test_results): def parse_and_add_results(cls, prefix=""): name = prefix + getattr(cls, 'name', cls.__class__.__name__) grade = getattr(cls, 'result_grade', None) + unexpected = False if '_source' in golden: if name + "-result" in golden['_source']: if golden['_source'][name + "-result"] != grade: - name = name + "*" + unexpected = True - if grade == "OK" or grade == "Unexp OK": + if grade == "Unexp OK" or (grade == "OK" and unexpected): + grade = "Unexp OK" + full_results['unexpected_pass'] += 1 + elif grade == "Exp FAIL" or (grade == "FAIL" and unexpected): + grade = "Exp FAIL" + full_results['unexpected_fail'] += 1 + elif grade == "OK": full_results['tests_pass'] += 1 - elif grade == "FAIL" or grade == "Exp FAIL": + elif grade == "FAIL": full_results['tests_fail'] += 1 elif grade == "SKIP" or grade is None: full_results['tests_skip'] += 1 From bc3cc6454da8d0e48d7912aade42c6b3e84fabdf Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 17 Jan 2018 11:37:11 -0800 Subject: [PATCH 086/947] tests: cdrouter: move most config to separate file This will let you pick known configs for each type of deployment (OE RDK-B, OpenWrt, etc) Ideally these can specified in the distro-like class that specifies distro-like configs but for now that does not exist Signed-off-by: Matthew McClintock --- config.py | 1 + tests/cdrouter_bootstrap.py | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/config.py b/config.py index c3115b4d..05552842 100644 --- a/config.py +++ b/config.py @@ -28,5 +28,6 @@ code_change_server = None cdrouter_server = os.environ.get('BFT_CDROUTERSERVER', None) +cdrouter_config = os.environ.get('BFT_CDROUTERCONFIG', None) cdrouter_wan_iface = os.environ.get('BFT_CDROUTERWANIFACE', "eth1") cdrouter_lan_iface = os.environ.get('BFT_CDROUTERLANIFACE', "eth2") diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 62180927..ce9058f8 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -97,6 +97,9 @@ def runTest(self): contents=contents + """ testvar lanVlanId """ + lan.vlan + if self.config.cdrouter_config is not None: + contents=contents + "\n" + "".join(open(self.config.cdrouter_config, 'r').readlines()) + if self.extra_config: contents=contents + "\n" + self.extra_config.replace(',', '\n') @@ -181,14 +184,11 @@ def recover(self): d.expect(prompt) cdrouter_test_matrix = { - "Basic": { "tests": [ "cdrouter_basic_{0}".format(i) for i in [1, 2, 10, 20] ], - "extra_config": "testvar dhcpClientStart 10.0.0.2,testvar dhcpClientEnd 10.0.0.253,testvar lanIp 10.0.0.1" }, + "Basic": { "tests": [ "cdrouter_basic_{0}".format(i) for i in [1, 10] ] }, "DHCP": { "tests": [ "cdrouter_dhcp_{0}".format(i) for i in [1, 2, 3, 4, 5, 10, 11, 20 ] ] }, "DHCPServer": { "tests": [ "cdrouter_dhcp_server_{0}".format(i) for i in [1, 2] \ + range(4, 11) \ - + [30, 31, 100, 200, 300, 301, 401, 501, 520, 540, 600, 610, 620, 630, 700, 710, 720, 800, 801] ], - "extra_config": "testvar dhcpClientStart 10.0.0.2,testvar dhcpClientEnd 10.0.0.253,testvar lanIp 10.0.0.1", - }, + + [30, 31, 100, 200, 300, 301, 401, 501, 520, 540, 600, 610, 620, 630, 700, 710, 720, 800, 801] ] }, "NAT": { "tests": [ "cdrouter_nat_{0}".format(i) for i in [1, 2, 100, 101, 120, 130, 150, 200, 201, 300, 320, 330, 340, 350, 360, 361, 400, 401, 410, 500, 501, 510, 511, 520, 530, 600, 610] ] }, "NATTimeout": { "tests": [ "cdrouter_nat_timeout_{0}".format(i) for i in [1, 2, 10, 11, 20, 25, 30, 40] ] }, } From 5d8ea811ae59c2e7cf3068c57e48a1c3f17a19f1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 18 Jan 2018 15:07:12 -0800 Subject: [PATCH 087/947] tests: cdrouter: change sleep to timeout so we can see board output during test Signed-off-by: Matthew McClintock --- tests/cdrouter_bootstrap.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index ce9058f8..768072f3 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -15,6 +15,7 @@ import rootfs_boot from devices import board, wan, lan, wlan, prompt import os +import pexpect class CDrouterStub(rootfs_boot.RootFSBootTest): '''First attempt at test that runs a CDrouter job, waits for completion, @@ -122,7 +123,7 @@ def runTest(self): j = c.jobs.launch(Job(package_id=p.id)) while j.result_id is None: - time.sleep(1) + board.expect(pexpect.TIMEOUT, timeout=1) j = c.jobs.get(j.id) print('Job Result-ID: {0}'.format(j.result_id)) @@ -134,13 +135,13 @@ def runTest(self): # we are ready to go from boardfarm reset above if r.status == "paused": c.results.unpause(j.result_id) - time.sleep(5) + board.expect(pexpect.TIMEOUT, timeout=5) continue if r.status != "running": break - time.sleep(5) + board.expect(pexpect.TIMEOUT, timeout=5) print(r.result) self.result_message = r.result.encode('ascii','ignore') From f59cea081e42ff9feaec402a2e49b2559fab4e64 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 23 Jan 2018 10:08:51 -0800 Subject: [PATCH 088/947] bft: add init to tests to run parse after import This let's each test implement a parse function that receives the overall config so it can add tests dynamically. Signed-off-by: Matthew McClintock --- arguments.py | 1 + bft | 1 + tests/__init__.py | 26 +++++++++++++++++++++++++- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/arguments.py b/arguments.py index 3f67191f..e65e4cd4 100755 --- a/arguments.py +++ b/arguments.py @@ -83,6 +83,7 @@ def parse(): if args.list_tests: import tests + tests.init(config) # Print all classes that are a subclass of TestCase for e in dir(tests): thing = getattr(tests, e) diff --git a/bft b/bft index 7b2eb86a..6c45f1a2 100755 --- a/bft +++ b/bft @@ -202,6 +202,7 @@ def main(): # Add tests from specified suite print_bold('==========\nTest suite "%s" has been specified, will attempt to run tests:' % config.TEST_SUITE) import tests + tests.init(config) import testsuites for i, name in enumerate(testsuites.list_tests[config.TEST_SUITE]): if isinstance(name, str): diff --git a/tests/__init__.py b/tests/__init__.py index b0589b21..66ed2d2e 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -9,10 +9,34 @@ # Import from every file import os import glob +import unittest2 +import inspect + test_files = glob.glob(os.path.dirname(__file__)+"/*.py") +test_mappings = { } for x in sorted([os.path.basename(f)[:-3] for f in test_files if not "__" in f]): try: - exec("from %s import *" % x) + exec("import %s as test_file" % x) + test_mappings[test_file] = [] + for obj in dir(test_file): + ref = getattr(test_file, obj) + if inspect.isclass(ref) and issubclass(ref, unittest2.TestCase): + test_mappings[test_file].append(ref) + exec("from %s import %s" % (x, obj)) except Exception as e: print(e) print("Warning: could not import from file %s." % x) + +def init(config): + try: + for test_file, tests in test_mappings.iteritems(): + for test in tests: + #print('checking %s in %s' % (test, test_file)) + if hasattr(test, "parse"): + #print("calling parse on %s" % test) + new_tests = test.parse(config) or [] + for new_test in new_tests: + globals()[new_test] = getattr(test_file, new_test) + except: + print("Failed to run all tests parse function!") + pass From f51cfd406e0260c876be8b8e5001dcfb371a66dd Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 23 Jan 2018 10:09:54 -0800 Subject: [PATCH 089/947] tests: cdrouter: fetch test list from server Instead of hard coding all the tests we fetch a list of avaialble tests and units from the cdrouter server and create them dynamically. Note that each unit has subtests and subtests will show up as tests in the results as well so this effectively translates all cdrouter tests to be presented from a logging standpoint as test Signed-off-by: Matthew McClintock --- tests/cdrouter_bootstrap.py | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 768072f3..d743521b 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -16,6 +16,7 @@ from devices import board, wan, lan, wlan, prompt import os import pexpect +import lib class CDrouterStub(rootfs_boot.RootFSBootTest): '''First attempt at test that runs a CDrouter job, waits for completion, @@ -184,24 +185,22 @@ def recover(self): d.sendline('ifconfig eth1 up') d.expect(prompt) -cdrouter_test_matrix = { - "Basic": { "tests": [ "cdrouter_basic_{0}".format(i) for i in [1, 10] ] }, - "DHCP": { "tests": [ "cdrouter_dhcp_{0}".format(i) for i in [1, 2, 3, 4, 5, 10, 11, 20 ] ] }, - "DHCPServer": { "tests": [ "cdrouter_dhcp_server_{0}".format(i) for i in [1, 2] \ - + range(4, 11) \ - + [30, 31, 100, 200, 300, 301, 401, 501, 520, 540, 600, 610, 620, 630, 700, 710, 720, 800, 801] ] }, - "NAT": { "tests": [ "cdrouter_nat_{0}".format(i) for i in [1, 2, 100, 101, 120, 130, 150, 200, 201, 300, 320, 330, 340, 350, 360, 361, 400, 401, 410, 500, 501, 510, 511, 520, 530, 600, 610] ] }, - "NATTimeout": { "tests": [ "cdrouter_nat_timeout_{0}".format(i) for i in [1, 2, 10, 11, 20, 25, 30, 40] ] }, -} - -for k, v in cdrouter_test_matrix.iteritems(): - name = "CDrouter" + k - - globals()[name] = type(name, (CDrouterStub, ), - { - 'tests': v['tests'], - 'extra_config': v.get('extra_config', False), - }) + @staticmethod + @lib.common.run_once + def parse(config): + c = CDRouter(config.cdrouter_server) + cdrouter_test_matrix = {} + new_tests = [] + for mod in c.testsuites.list_modules(): + name = "CDrouter" + mod.name.replace('.', '').replace('-','_') + list_of_tests = [ x.encode('ascii','ignore') for x in mod.tests ] + globals()[name] = type(name.encode('ascii','ignore') , (CDrouterStub, ), + { + 'tests': list_of_tests + }) + new_tests.append(name) + + return new_tests class CDrouterCustom(CDrouterStub): tests = os.environ.get("BFT_CDROUTER_CUSTOM", "").split(" ") From 7ee6791506edaea67b2171303d58b2544cced7da Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 23 Jan 2018 10:12:00 -0800 Subject: [PATCH 090/947] tests: cdrouter: stop test if we aborted run Signed-off-by: Matthew McClintock --- tests/cdrouter_bootstrap.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index d743521b..c81f8161 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -129,6 +129,8 @@ def runTest(self): print('Job Result-ID: {0}'.format(j.result_id)) + self.job_id = j.result_id + self.results = c.results while True: r = c.results.get(j.result_id) print(r.status) @@ -180,6 +182,11 @@ def runTest(self): self.recover() def recover(self): + if hasattr(self, 'results'): + r = self.results.get(self.job_id) + + if r.status == "running": + self.results.stop(self.job_id) # TODO: full recovery... for d in [wan,lan]: d.sendline('ifconfig eth1 up') From 3db1c84f899e62699e0aa494c72baffcbb498348 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 23 Jan 2018 13:27:38 -0800 Subject: [PATCH 091/947] bft: call recover is test is interrupt This can let remove services clean up too if required Signed-off-by: Matthew McClintock --- bft | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bft b/bft index 6c45f1a2..afe9e6e1 100755 --- a/bft +++ b/bft @@ -228,8 +228,11 @@ def main(): print_bold('==========') try: tests_pass = tests_fail = tests_skip = 0 + curr_test = None for test in tests_to_run: + curr_test = test test.run() + curr_test = None grade = getattr(test, "result_grade", None) if grade == "OK" or grade == "Unexp OK": tests_pass += 1 @@ -240,6 +243,8 @@ def main(): except KeyboardInterrupt: print_bold("Run interrupted. Wrapping up...") + if curr_test is not None: + curr_test.recover() print_bold("Results run=%d failures=%d skipped=%d" % (tests_pass, tests_fail, tests_skip)) From dd752cafbc08e8ebd6872bc6e2963c6d54a55b5e Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 18 Jan 2018 15:06:00 -0800 Subject: [PATCH 092/947] tests: cdrouter: don't fail on unknown map If you manually stop from the GUI a new type of reason will be present, let's just not fail on these types and keep going Signed-off-by: Matthew McClintock --- tests/cdrouter_bootstrap.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index c81f8161..42a5a6fb 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -162,9 +162,12 @@ def runTest(self): if str(test.name) not in ["start", "final"]: from lib.common import TestResult - grade_map = {"pass": "OK", "fail": "FAIL", "skip": "SKIP"}[test.result] - tr = TestResult(test.name, grade_map, test.description) - self.subtests.append(tr) + try: + grade_map = {"pass": "OK", "fail": "FAIL", "skip": "SKIP"}[test.result] + tr = TestResult(test.name, grade_map, test.description) + self.subtests.append(tr) + except: + continue # TODO: handle skipped tests From 7edeaa44f7d29c67bda0064efeeae7ebbadf6a9a Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 25 Jan 2018 06:45:35 -0800 Subject: [PATCH 093/947] tests: cdrouter: try hard to get timing right for rebooting board Also, add a delay after the start test to let things settle, in the future this should be configured per board with a default value Signed-off-by: Matthew McClintock --- tests/cdrouter_bootstrap.py | 39 ++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 42a5a6fb..f47ca9e4 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -39,12 +39,6 @@ def runTest(self): board.sendcontrol('c') board.expect(prompt) - try: - board.sendline('reboot') - board.wait_for_linux() - except: - board.reset() - board.wait_for_linux() # TODO: make host configurable in bft config? c = CDRouter(self.config.cdrouter_server) @@ -121,6 +115,13 @@ def runTest(self): p = c.packages.create(Package(name="bft-automated-job", testlist=self.tests, config_id=cfg.id)) + + try: + board.sendline('reboot') + board.expect('reboot: Restarting system') + except: + board.reset() + j = c.jobs.launch(Job(package_id=p.id)) while j.result_id is None: @@ -131,17 +132,30 @@ def runTest(self): self.job_id = j.result_id self.results = c.results + unpaused = False + end_of_start = False while True: r = c.results.get(j.result_id) print(r.status) # we are ready to go from boardfarm reset above - if r.status == "paused": + if r.status == "paused" and unpaused == False: + c.results.unpause(j.result_id) + unpaused = True + board.expect(pexpect.TIMEOUT, timeout=1) + c.results.pause(j.result_id, when="end-of-test") + end_of_start = True + continue + + + if r.status == "paused" and end_of_start == True: + end_of_start = False + # TODO: make this board specific? + board.expect(pexpect.TIMEOUT, timeout=60) c.results.unpause(j.result_id) - board.expect(pexpect.TIMEOUT, timeout=5) continue - if r.status != "running": + if r.status != "running" and r.status != "paused": break board.expect(pexpect.TIMEOUT, timeout=5) @@ -195,6 +209,13 @@ def recover(self): d.sendline('ifconfig eth1 up') d.expect(prompt) + # make sure board is back in a sane state + board.sendcontrol('c') + board.sendline() + if 0 != board.expect([pexpect.TIMEOUT] + board.uprompt, timeout=5): + board.reset() + board.wait_for_linux() + @staticmethod @lib.common.run_once def parse(config): From 54824cadaed3008e8dc0bea519b7622559237f61 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 25 Jan 2018 14:36:54 -0800 Subject: [PATCH 094/947] devices: add support for flashing cougarpark This adds support for flashing one cougar park image at a time. It can flash an arm or atom image with the -k,kernel parameter Signed-off-by: Matthew McClintock --- devices/cougarpark.py | 61 +++++++++++++++++++++++++++++++++---------- 1 file changed, 47 insertions(+), 14 deletions(-) diff --git a/devices/cougarpark.py b/devices/cougarpark.py index 70166151..18be88c0 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -7,28 +7,61 @@ import common import openwrt_router +import pexpect class CougarPark(openwrt_router.OpenWrtRouter): ''' Intel Cougar Park board ''' - #wan_iface = "erouter0" - #lan_iface = "brlan0" + wan_iface = "erouter0" + lan_iface = "brlan0" - #uprompt = ["U-Boot>"] - #uboot_eth = "sms0" - #uboot_ddr_addr = "0x1000000" - #uboot_net_delay = 0 + uprompt = ["Shell>"] + delaybetweenchar = 0.2 + uboot_ddr_addr = "0x10000000" + uboot_eth = "eth0" - #def flash_uboot(self, uboot): - # common.print_bold("\n===== Flashing bootloader (and u-boot) =====\n") + def wait_for_boot(self): + ''' + Break into Shell. + ''' + # Try to break into uboot + self.expect('Remaining timeout:',timeout=30) + self.send('\x1B') + self.expect('startup.nsh',timeout=30) + self.send('\x1B') + self.expect_exact('Shell>',timeout=30) - #def flash_rootfs(self, ROOTFS): - # common.print_bold("\n===== Flashing rootfs =====\n") + def setup_uboot_network(self): + # line sep for UEFI + self.linesep = '\x0D' + # required delay for networking to work... + self.expect(pexpect.TIMEOUT, timeout=15) + self.sendline('ifconfig -c %s' % self.uboot_eth) + self.sendline('ifconfig -s %s dhcp' % self.uboot_eth) + self.expect_exact('Shell>',timeout=30) + self.sendline('ifconfig -l') + self.expect_exact('IP address: 192.168.0.') + self.expect_exact('Gateway: 192.168.0.1') + self.expect_exact('Shell>',timeout=30) + self.sendline('ping 192.168.0.1') + self.sendline('10 packets transmitted, 10 received, 0% packet loss, time 0ms') + self.expect_exact('Shell>',timeout=30) - #def flash_linux(self, KERNEL): - # common.print_bold("\n===== Flashing linux =====\n") + def flash_linux(self, KERNEL): + print("\n===== Updating kernel and rootfs =====\n") + filename = self.prepare_file(KERNEL) - #def boot_linux(self, rootfs=None, bootargs=""): - # common.print_bold("\n===== Booting linux for %s on %s =====" % (self.model, self.root_type)) + self.sendline('tftp -p %s -d 192.168.0.1 %s' % (self.uboot_ddr_addr, filename)) + self.expect_exact('TFTP general status Success') + self.expect_exact('Shell>',timeout=30) + + self.sendline('update -a A -s %s' % self.uboot_ddr_addr) + self.expect_exact('Congrats! Looks like everything went as planned! Your flash has been updated! Have a good day!') + self.expect_exact('Shell>',timeout=30) + + def boot_linux(self, rootfs=None, bootargs=None): + common.print_bold("\n===== Booting linux for %s on %s =====" % (self.model, self.root_type)) + self.sendline('bootkernel') + self.delaybetweenchar = None From 650840e0cb1ff6f6e87709f9c9267df5ff4214a3 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 25 Jan 2018 14:37:54 -0800 Subject: [PATCH 095/947] tests: rootfsboot: only run debug steps if board is booted in linux Signed-off-by: Matthew McClintock --- tests/rootfs_boot.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index fb99e00c..6ef6ff2e 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -154,10 +154,11 @@ def runTest(self): def recover(self): if self.__class__.__name__ == "RootFSBootTest": try: - board.sendline('ps auxfw || ps w') - board.expect(prompt) - board.sendline('iptables -S') - board.expect(prompt) + if board.linux_booted: + board.sendline('ps auxfw || ps w') + board.expect(prompt) + board.sendline('iptables -S') + board.expect(prompt) except: pass From 8c2923edfac8867c8ee1b04789bfa484ed350ac6 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 25 Jan 2018 17:02:48 -0800 Subject: [PATCH 096/947] devices: cougarpark: fix prompt and spacing issues Signed-off-by: Matthew McClintock --- devices/cougarpark.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/devices/cougarpark.py b/devices/cougarpark.py index 18be88c0..5ebd431a 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -27,11 +27,11 @@ def wait_for_boot(self): Break into Shell. ''' # Try to break into uboot - self.expect('Remaining timeout:',timeout=30) + self.expect('Remaining timeout:', timeout=30) self.send('\x1B') self.expect('startup.nsh',timeout=30) self.send('\x1B') - self.expect_exact('Shell>',timeout=30) + self.expect_exact(self.uprompt, timeout=30) def setup_uboot_network(self): # line sep for UEFI @@ -40,14 +40,14 @@ def setup_uboot_network(self): self.expect(pexpect.TIMEOUT, timeout=15) self.sendline('ifconfig -c %s' % self.uboot_eth) self.sendline('ifconfig -s %s dhcp' % self.uboot_eth) - self.expect_exact('Shell>',timeout=30) + self.expect_exact(self.uprompt, timeout=30) self.sendline('ifconfig -l') self.expect_exact('IP address: 192.168.0.') self.expect_exact('Gateway: 192.168.0.1') - self.expect_exact('Shell>',timeout=30) + self.expect_exact(self.uprompt, timeout=30) self.sendline('ping 192.168.0.1') self.sendline('10 packets transmitted, 10 received, 0% packet loss, time 0ms') - self.expect_exact('Shell>',timeout=30) + self.expect_exact(self.uprompt, timeout=30) def flash_linux(self, KERNEL): print("\n===== Updating kernel and rootfs =====\n") @@ -55,11 +55,11 @@ def flash_linux(self, KERNEL): self.sendline('tftp -p %s -d 192.168.0.1 %s' % (self.uboot_ddr_addr, filename)) self.expect_exact('TFTP general status Success') - self.expect_exact('Shell>',timeout=30) + self.expect_exact(self.uprompt, timeout=30) self.sendline('update -a A -s %s' % self.uboot_ddr_addr) self.expect_exact('Congrats! Looks like everything went as planned! Your flash has been updated! Have a good day!') - self.expect_exact('Shell>',timeout=30) + self.expect_exact(self.uprompt, timeout=30) def boot_linux(self, rootfs=None, bootargs=None): common.print_bold("\n===== Booting linux for %s on %s =====" % (self.model, self.root_type)) From 832c3a47989f667ed37e92ac43314b6e8f5c904e Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 25 Jan 2018 17:03:04 -0800 Subject: [PATCH 097/947] devices: cougarpark: fix booting procedure Signed-off-by: Matthew McClintock --- devices/cougarpark.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/devices/cougarpark.py b/devices/cougarpark.py index 5ebd431a..65af7e5b 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -63,5 +63,6 @@ def flash_linux(self, KERNEL): def boot_linux(self, rootfs=None, bootargs=None): common.print_bold("\n===== Booting linux for %s on %s =====" % (self.model, self.root_type)) - self.sendline('bootkernel') + self.sendline('npcpu start') + self.sendline('bootkernel -c %kernel_cmd_line%') self.delaybetweenchar = None From 5b9375101785af245c8d1522ac18539dec177394 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 31 Jan 2018 23:39:02 -0800 Subject: [PATCH 098/947] devices: add support for dynamic wan gateway ip Before this was hard coded to 192.168.0.1, now the script will be an unused private network address and gateway to use so it can be compatible with various distros that have fixed addresses and possibly conflict with the previous hard coded address Signed-off-by: Matthew McClintock --- bft | 4 +++- devices/debian.py | 55 ++++++++++++++++++++++++++------------------ tests/rootfs_boot.py | 5 ++-- 3 files changed, 39 insertions(+), 25 deletions(-) diff --git a/bft b/bft index afe9e6e1..5bcfd8b5 100755 --- a/bft +++ b/bft @@ -79,7 +79,9 @@ def setup_dynamic_devices(config, env=None): post_cmd_host=device.get('post_cmd_host', None), post_cmd=device.get('post_cmd', None), cleanup_cmd=device.get('cleanup_cmd', None), - env=env) + env=env, + lan_network=config.console.lan_network, + lan_gateway=config.console.lan_gateway) setattr(config, device['name'], d) config.devices.append(device['name']) else: diff --git a/devices/debian.py b/devices/debian.py index 11c6581a..ddf5dc38 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -10,6 +10,7 @@ import pexpect import base import atexit +import ipaddress from termcolor import colored, cprint @@ -35,7 +36,9 @@ def __init__(self, post_cmd_host=None, post_cmd=None, cleanup_cmd=None, - env=None): + env=None, + lan_network=None, + lan_gateway=None): if name is not None: pexpect.spawn.__init__(self, command="ssh", @@ -66,6 +69,18 @@ def __init__(self, self.port = port self.location = location self.env=env + self.lan_network = lan_network + self.lan_gateway = lan_gateway + + # we need to pick a non-conflicting private network here + # also we want it to be consistant and not random for a particular + # board + if (lan_gateway - lan_network.num_addresses).is_private: + self.gw = lan_gateway - lan_network.num_addresses + else: + self.gw = lan_gateway + lan_network.num_addresses + + self.nw = ipaddress.IPv4Network(str(self.gw).decode('utf-8') + '/' + str(lan_network.netmask), strict=False) try: i = self.expect(["yes/no", "assword:", "Last login"] + self.prompt, timeout=30) @@ -184,7 +199,8 @@ def start_tftp_server(self): self.sendline('apt-get -o DPkg::Options::="--force-confnew" -qy install tftpd-hpa') # set WAN ip address, for now this will always be this address for the device side - self.sendline('ifconfig eth1 192.168.0.1') + # TODO: fix gateway for non-WAN tftp_server + self.sendline('ifconfig eth1 %s' % getattr(self, 'gw', '192.168.0.1')) self.expect(self.prompt) #configure tftp server @@ -255,7 +271,7 @@ def setup_as_wan_gateway(self): self.expect(self.prompt) # set WAN ip address - self.sendline('ifconfig eth1 192.168.0.1') + self.sendline('ifconfig eth1 %s' % self.gw) self.expect(self.prompt) self.sendline('ifconfig eth1 up') self.expect(self.prompt) @@ -271,9 +287,10 @@ def setup_as_wan_gateway(self): self.sendline('option domain-name-servers 8.8.8.8, 8.8.4.4;') self.sendline('default-lease-time 600;') self.sendline('max-lease-time 7200;') - self.sendline('subnet 192.168.0.0 netmask 255.255.255.0 {') - self.sendline(' range 192.168.0.10 192.168.0.100;') - self.sendline(' option routers 192.168.0.1;') + # use the same netmask as the lan device + self.sendline('subnet %s netmask %s {' % (self.nw.network_address, self.nw.netmask)) + self.sendline(' range %s %s;' % (self.nw.network_address + 10, self.nw.network_address + 100)) + self.sendline(' option routers %s;' % self.gw) self.sendline('}') self.sendline('EOF') self.expect(self.prompt) @@ -298,12 +315,7 @@ def setup_as_wan_gateway(self): self.turn_off_pppoe() - def get_gw_from_dhclient_leases(self): - self.sendline("cat /var/lib/dhcp/dhclient.leases") - self.expect('option routers (\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})', timeout=5) - return self.match.group(1) - - def setup_as_lan_device(self, gw="192.168.1.1"): + def setup_as_lan_device(self): # potential cleanup so this wan device works self.sendline('killall iperf ab hping3') self.expect(self.prompt) @@ -318,7 +330,7 @@ def setup_as_lan_device(self, gw="192.168.1.1"): self.expect(self.prompt) self.sendline('iptables -F; iptables -X') self.expect(self.prompt) - self.sendline('iptables -t nat -A PREROUTING -p tcp --dport 222 -j DNAT --to-destination %s:22' % gw) + self.sendline('iptables -t nat -A PREROUTING -p tcp --dport 222 -j DNAT --to-destination %s:22' % self.lan_gateway) self.expect(self.prompt) self.sendline('iptables -t nat -A POSTROUTING -o eth1 -p tcp --dport 22 -j MASQUERADE') self.expect(self.prompt) @@ -351,14 +363,13 @@ def start_lan_client(self): raise Exception("Error: Device on LAN couldn't obtain address via DHCP.") self.sendline('ifconfig eth1') self.expect(self.prompt) - gw = self.get_gw_from_dhclient_leases() self.sendline('route del default') self.expect(self.prompt) self.sendline('route del default') self.expect(self.prompt) self.sendline('route del default') self.expect(self.prompt) - self.sendline('route add default gw %s' % gw) + self.sendline('route add default gw %s' % self.lan_gateway) self.expect(self.prompt) # Setup HTTP proxy, so board webserver is accessible via this device self.sendline('apt-get -qy install tinyproxy curl apache2-utils nmap') @@ -380,27 +391,27 @@ def start_lan_client(self): # Write a useful ssh config for routers self.sendline('mkdir -p ~/.ssh') self.sendline('cat > ~/.ssh/config << EOF') - self.sendline('Host %s' % gw) + self.sendline('Host %s' % self.lan_gateway) self.sendline('StrictHostKeyChecking no') self.sendline('UserKnownHostsFile=/dev/null') self.sendline('') self.sendline('Host krouter') - self.sendline('Hostname %s' % gw) + self.sendline('Hostname %s' % self.lan_gateway) self.sendline('StrictHostKeyChecking no') self.sendline('UserKnownHostsFile=/dev/null') self.sendline('EOF') self.expect(self.prompt) # Copy an id to the router so people don't have to type a password to ssh or scp - self.sendline('nc %s 22 -w 1' % gw) - self.expect_exact('nc %s 22 -w 1' % gw) + self.sendline('nc %s 22 -w 1' % self.lan_gateway) + self.expect_exact('nc %s 22 -w 1' % self.lan_gateway) if 0 == self.expect(['SSH'] + self.prompt, timeout=5): self.sendline('[ -e /root/.ssh/id_rsa ] || ssh-keygen -N "" -f /root/.ssh/id_rsa') if 0 != self.expect(['Protocol mismatch.'] + self.prompt): - self.sendline('scp ~/.ssh/id_rsa.pub %s:/etc/dropbear/authorized_keys' % gw) - self.expect_exact('scp ~/.ssh/id_rsa.pub %s:/etc/dropbear/authorized_keys' % gw) + self.sendline('scp ~/.ssh/id_rsa.pub %s:/etc/dropbear/authorized_keys' % self.lan_gateway) + self.expect_exact('scp ~/.ssh/id_rsa.pub %s:/etc/dropbear/authorized_keys' % self.lan_gateway) try: # When resetting, no need for password - self.expect("root@%s's password:" % gw, timeout=5) + self.expect("root@%s's password:" % self.lan_gateway, timeout=5) self.sendline('password') except: pass diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 6ef6ff2e..8283c975 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -31,6 +31,7 @@ def boot(self, reflash=True): # start all tftp servers for now for tftp_server in tftp_servers: tftp_device = getattr(self.config, tftp_server) + # TODO: this means wan.gw != tftp_server tftp_device.start_tftp_server() @@ -43,7 +44,7 @@ def boot(self, reflash=True): self.config.KERNEL or self.config.UBOOT): # Break into U-Boot, set environment variables board.wait_for_boot() - board.setup_uboot_network() + board.setup_uboot_network(wan.gw) if self.config.META_BUILD: for attempt in range(3): try: @@ -53,7 +54,7 @@ def boot(self, reflash=True): print(e) wan.restart_tftp_server() board.reset(break_into_uboot=True) - board.setup_uboot_network() + board.setup_uboot_network(wan.gw) else: raise Exception('Error during flashing...') if self.config.UBOOT: From 63c1be18f2432f19a19a3bffdfb5dc1b946f79e0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 31 Jan 2018 23:40:19 -0800 Subject: [PATCH 099/947] devices: port owrt class to use non-hard coded wan ip Signed-off-by: Matthew McClintock --- devices/openwrt_router.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 2a78e110..d1ed9a64 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -17,6 +17,7 @@ import base from datetime import datetime import time +import ipaddress import error_detect import power @@ -45,11 +46,14 @@ class OpenWrtRouter(base.BaseDevice): lan_gmac_iface = "eth1" lan_iface = "br-lan" wan_iface = "eth0" + tftp_server_int = None delaybetweenchar = None uboot_net_delay = 30 routing = True + lan_network = ipaddress.IPv4Network(u"192.168.1.0/24") + lan_gateway = ipaddress.IPv4Address(u"192.168.1.1") def __init__(self, model, @@ -338,7 +342,11 @@ def get_wan_proto(self): self.expect("wan.proto='?([a-zA-Z0-9\.-]*)'?\r\n", timeout=5) return self.match.group(1) - def setup_uboot_network(self, TFTP_SERVER="192.168.0.1"): + def setup_uboot_network(self, tftp_server=None): + if self.tftp_server_int is None: + if tftp_server is None: + raise Exception("Error in TFTP server configuration") + self.tftp_server_int = tftp_server '''Within U-boot, request IP Address, set server IP, and other networking tasks.''' # Use standard eth1 address of wan-side computer @@ -353,9 +361,9 @@ def setup_uboot_network(self, TFTP_SERVER="192.168.0.1"): if i == 0: self.sendline('setenv ipaddr 192.168.0.2') self.expect(self.uprompt) - self.sendline('setenv serverip %s' % TFTP_SERVER) + self.sendline('setenv serverip %s' % self.tftp_server_int) self.expect(self.uprompt) - if TFTP_SERVER: + if self.tftp_server_int: #interfaces=['eth1','eth0'] passed = False for attempt in range(5): @@ -364,7 +372,7 @@ def setup_uboot_network(self, TFTP_SERVER="192.168.0.1"): self.expect('') self.expect(self.uprompt) self.sendline("ping $serverip") - self.expect("host %s is alive" % TFTP_SERVER) + self.expect("host %s is alive" % self.tftp_server_int) self.expect(self.uprompt) passed = True break From 9f8ec52dbfe2bc4d64c70816848f52de9f2fff97 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 31 Jan 2018 23:40:30 -0800 Subject: [PATCH 100/947] devices: port cougarpark class to use non-hard coded wan ip Signed-off-by: Matthew McClintock --- devices/cougarpark.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/devices/cougarpark.py b/devices/cougarpark.py index 65af7e5b..4af0ebed 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -8,6 +8,7 @@ import common import openwrt_router import pexpect +import ipaddress class CougarPark(openwrt_router.OpenWrtRouter): ''' @@ -17,6 +18,9 @@ class CougarPark(openwrt_router.OpenWrtRouter): wan_iface = "erouter0" lan_iface = "brlan0" + lan_network = ipaddress.IPv4Network(u"192.168.0.0/24") + lan_gateway = ipaddress.IPv4Address(u"192.168.0.1") + uprompt = ["Shell>"] delaybetweenchar = 0.2 uboot_ddr_addr = "0x10000000" @@ -33,7 +37,8 @@ def wait_for_boot(self): self.send('\x1B') self.expect_exact(self.uprompt, timeout=30) - def setup_uboot_network(self): + def setup_uboot_network(self, tftp_server): + self.tftp_server_int = tftp_server # line sep for UEFI self.linesep = '\x0D' # required delay for networking to work... @@ -42,10 +47,11 @@ def setup_uboot_network(self): self.sendline('ifconfig -s %s dhcp' % self.uboot_eth) self.expect_exact(self.uprompt, timeout=30) self.sendline('ifconfig -l') - self.expect_exact('IP address: 192.168.0.') - self.expect_exact('Gateway: 192.168.0.1') + ip_c = str(tftp_server).split('.') + self.expect_exact('IP address: %s.%s.%s' % (ip_c[0], ip_c[1], ip_c[2])) + self.expect_exact('Gateway: %s' % tftp_server) self.expect_exact(self.uprompt, timeout=30) - self.sendline('ping 192.168.0.1') + self.sendline('ping %s' % tftp_server) self.sendline('10 packets transmitted, 10 received, 0% packet loss, time 0ms') self.expect_exact(self.uprompt, timeout=30) @@ -53,12 +59,14 @@ def flash_linux(self, KERNEL): print("\n===== Updating kernel and rootfs =====\n") filename = self.prepare_file(KERNEL) - self.sendline('tftp -p %s -d 192.168.0.1 %s' % (self.uboot_ddr_addr, filename)) + self.sendline('tftp -p %s -d %s %s' % (self.uboot_ddr_addr, self.tftp_server_int, filename)) self.expect_exact('TFTP general status Success') - self.expect_exact(self.uprompt, timeout=30) + if 0 == self.expect_exact(['TFTP TFTP Read File status Time out'] + self.uprompt, timeout=60): + raise Exception("TFTP timed out") self.sendline('update -a A -s %s' % self.uboot_ddr_addr) - self.expect_exact('Congrats! Looks like everything went as planned! Your flash has been updated! Have a good day!') + if 0 == self.expect_exact(['UImage has wrong version magic', 'Congrats! Looks like everything went as planned! Your flash has been updated! Have a good day!']): + raise Exception("Image looks corrupt") self.expect_exact(self.uprompt, timeout=30) def boot_linux(self, rootfs=None, bootargs=None): From ddfa3bb213e635e4516ec75fd643cfb4dd760ffd Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 31 Jan 2018 23:40:41 -0800 Subject: [PATCH 101/947] devices: port rpi3 class to use non-hard coded wan ip Signed-off-by: Matthew McClintock --- devices/rpi.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/devices/rpi.py b/devices/rpi.py index 0c768161..05362ee1 100644 --- a/devices/rpi.py +++ b/devices/rpi.py @@ -8,6 +8,7 @@ import common import openwrt_router import os +import ipaddress class RPI(openwrt_router.OpenWrtRouter): ''' @@ -17,6 +18,9 @@ class RPI(openwrt_router.OpenWrtRouter): wan_iface = "erouter0" lan_iface = "brlan0" + lan_network = ipaddress.IPv4Network(u"10.0.0.0/24") + lan_gateway = ipaddress.IPv4Address(u"10.0.0.1") + uprompt = ["U-Boot>"] uboot_eth = "sms0" uboot_ddr_addr = "0x1000000" From d7c5f2ffedb6765404abd2f8f954565502e373c6 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 31 Jan 2018 23:41:10 -0800 Subject: [PATCH 102/947] tests: iperf3: update test to use dynmic wan ip addr Signed-off-by: Matthew McClintock --- tests/iperf3_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/iperf3_test.py b/tests/iperf3_test.py index 0b0c5754..3347d9ff 100644 --- a/tests/iperf3_test.py +++ b/tests/iperf3_test.py @@ -25,7 +25,7 @@ def runTest(self): wan.expect('-----------------------------------------------------------') - lan.sendline('iperf3 %s -c 192.168.0.1 -P5 -t %s -i 0' % (self.opts, self.time)) + lan.sendline('iperf3 %s -c %s -P5 -t %s -i 0' % (self.opts, wan.gw, self.time)) lan.expect(prompt, timeout=self.time+5) sender = re.findall('SUM.*Bytes\s*(.*/sec).*sender', lan.before)[-1] From f169e50fb3fbfdbfe8c994afa731d1e22acc5a09 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 1 Feb 2018 01:57:55 -0800 Subject: [PATCH 103/947] tests: ping: use wan gw val instead of hard coded wan ip Signed-off-by: Matthew McClintock --- tests/ping.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/ping.py b/tests/ping.py index 4fe4621f..da9f1311 100644 --- a/tests/ping.py +++ b/tests/ping.py @@ -16,7 +16,7 @@ def runTest(self): msg = 'No WAN Device defined, skipping ping WAN test.' lib.common.test_msg(msg) self.skipTest(msg) - board.sendline('\nping -c5 192.168.0.1') + board.sendline('\nping -c5 %s' % wan.gw) board.expect('5 (packets )?received', timeout=15) board.expect(prompt) def recover(self): @@ -60,7 +60,7 @@ def runTest(self): msg = 'No WAN Device defined, skipping ping WAN test.' lib.common.test_msg(msg) self.skipTest(msg) - lan.sendline('\nping -i 0.2 -c 5 192.168.0.1') + lan.sendline('\nping -i 0.2 -c 5 %s' % wan.gw) lan.expect('PING ') lan.expect('5 (packets )?received', timeout=15) lan.expect(prompt) From db4df2cfea631baef692403018ef7646b2ce258d Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 1 Feb 2018 18:39:49 -0800 Subject: [PATCH 104/947] add ipaddress to requirements.txt Signed-off-by: Matthew McClintock --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 1b51e214..dc7aa3f9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,3 +9,4 @@ future dlipower cdrouter serial +ipaddress From 7aa827bee4d66e13482e74d552cf084d192f7689 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 1 Feb 2018 19:41:51 -0800 Subject: [PATCH 105/947] devices: qemu: add extra unused arg to qemu device Signed-off-by: Matthew McClintock --- devices/cougarpark.py | 19 +++++++++++++++++++ devices/qemu.py | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/devices/cougarpark.py b/devices/cougarpark.py index 4af0ebed..070d2874 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -74,3 +74,22 @@ def boot_linux(self, rootfs=None, bootargs=None): self.sendline('npcpu start') self.sendline('bootkernel -c %kernel_cmd_line%') self.delaybetweenchar = None + + def wait_for_networkxxx(self): + self.sendline('ip link set %s down' % self.wan_iface) + self.expect(self.prompt) + self.sendline('ip link set %s name foobar' % self.wan_iface) + self.expect(self.prompt) + self.sendline('ip link set foobar up') + self.expect(self.prompt) + self.sendline('brctl delif brlan0 nsgmii0') + self.expect(self.prompt) + self.sendline('brctl addbr %s' % self.wan_iface) + self.expect(self.prompt) + self.sendline('brctl addif %s nsgmii0' % self.wan_iface) + self.expect(self.prompt) + self.sendline('brctl addif %s foobar' % self.wan_iface) + self.expect(self.prompt) + self.sendline('dhclient %s' % self.wan_iface) + self.expect(self.prompt) + super(type(self), self).wait_for_network() diff --git a/devices/qemu.py b/devices/qemu.py index c3e2ebd7..79d91469 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -78,7 +78,7 @@ def run_cleanup_cmd(self): def wait_for_boot(self): pass - def setup_uboot_network(self): + def setup_uboot_network(self, tftp_server=None): pass def flash_rootfs(self, ROOTFS): From 4e9a26079e8128e4a75e06705ec696ab6cb85f40 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 1 Feb 2018 22:59:41 -0800 Subject: [PATCH 106/947] tests: add notion of external tests BFT_OVERLAY environment var can point to a separate dir that will contain a tests folder that can contain extra tests that live outside of the main repo Signed-off-by: Matthew McClintock --- tests/__init__.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/__init__.py b/tests/__init__.py index 66ed2d2e..eb5ee98e 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -11,8 +11,17 @@ import glob import unittest2 import inspect +import sys test_files = glob.glob(os.path.dirname(__file__)+"/*.py") +if 'BFT_OVERLAY' in os.environ: + for overlay in os.environ['BFT_OVERLAY'].split(' '): + overlay = os.path.abspath(overlay) + sys.path.insert(0, overlay + '/tests') + test_files += glob.glob(overlay + '/tests/*.py') + + sys.path.insert(0, os.getcwd() + '/tests') + test_mappings = { } for x in sorted([os.path.basename(f)[:-3] for f in test_files if not "__" in f]): try: From 59b37aec58b7a61a72e8af1a36fc21d42ec4e0ba Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 1 Feb 2018 23:11:00 -0800 Subject: [PATCH 107/947] tests: systemd: move to LGI specific repo (will rebase away) Signed-off-by: Matthew McClintock --- reference/master-oe22_rpi3-musl-systemd.log | 4939 ------------------- reference/master-oe22_rpi3-systemd.log | 4893 ------------------ 2 files changed, 9832 deletions(-) delete mode 100644 reference/master-oe22_rpi3-musl-systemd.log delete mode 100644 reference/master-oe22_rpi3-systemd.log diff --git a/reference/master-oe22_rpi3-musl-systemd.log b/reference/master-oe22_rpi3-musl-systemd.log deleted file mode 100644 index b8ae38cd..00000000 --- a/reference/master-oe22_rpi3-musl-systemd.log +++ /dev/null @@ -1,4939 +0,0 @@ - --- Logs begin at Fri 2017-12-01 11:35:26 GMT, end at Tue 2017-12-05 22:04:02 GMT. -- -Dec 01 11:35:26 RaspberryPi-Gateway systemd-journald[135]: Runtime journal (/run/log/journal/) is 2.0M, max 64.0M, 62.0M free. --- Subject: Disk space used by the journal --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Runtime journal (/run/log/journal/) is currently using 2.0M. --- Maximum allowed usage is set to 64.0M. --- Leaving at least 69.4M free (of currently available 460.6M of disk space). --- Enforced usage limit is thus 64.0M, of which 62.0M are still available. --- --- The limits controlling how much disk space is used by the journal may --- be configured with SystemMaxUse=, SystemKeepFree=, SystemMaxFileSize=, --- RuntimeMaxUse=, RuntimeKeepFree=, RuntimeMaxFileSize= settings in --- /etc/systemd/journald.conf. See journald.conf(5) for details. -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Booting Linux on physical CPU 0x0 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing cgroup subsys cpuset -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing cgroup subsys cpu -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing cgroup subsys cpuacct -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Linux version 4.4.50 (andre@chippy1) (gcc version 6.4.0 (GCC) ) #1 SMP Fri Dec 1 03:42:12 PST 2017 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d -Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Machine model: Raspberry Pi 3 Model B Rev 1.2 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: cma: Reserved 8 MiB at 0x3a800000 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Memory policy: Data cache writealloc -Dec 01 11:35:26 RaspberryPi-Gateway kernel: On node 0 totalpages: 241664 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: free_area_init_node: node 0, pgdat 808f0f40, node_mem_map b9fa6000 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Normal zone: 2124 pages used for memmap -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Normal zone: 0 pages reserved -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Normal zone: 241664 pages, LIFO batch:31 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_smp_init_cpus] enter (9540->f3003010) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_smp_init_cpus] ncores=4 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: PERCPU: Embedded 13 pages/cpu @b9f62000 s22540 r8192 d22516 u53248 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: pcpu-alloc: s22540 r8192 d22516 u53248 alloc=13*4096 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Built 1 zonelists in Zone order, mobility grouping on. Total pages: 239540 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Kernel command line: 8250.nr_uarts=1 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708_fb.fbswap=1 dma.dmachans=0x7f35 bcm2709.boardrev=0xa22082 bcm2709.serial=0x97016bd5 bcm2709.uart_clock=48000000 smsc95xx.macaddr=B8:27:EB:01:6B:D5 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait None -Dec 01 11:35:26 RaspberryPi-Gateway kernel: PID hash table entries: 4096 (order: 2, 16384 bytes) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Memory: 938884K/966656K available (6363K kernel code, 432K rwdata, 1884K rodata, 476K init, 764K bss, 19580K reserved, 8192K cma-reserved) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Virtual kernel memory layout: - vector : 0xffff0000 - 0xffff1000 ( 4 kB) - fixmap : 0xffc00000 - 0xfff00000 (3072 kB) - vmalloc : 0xbb800000 - 0xff800000 (1088 MB) - lowmem : 0x80000000 - 0xbb000000 ( 944 MB) - modules : 0x7f000000 - 0x80000000 ( 16 MB) - .text : 0x80008000 - 0x80816098 (8249 kB) - .init : 0x80817000 - 0x8088e000 ( 476 kB) - .data : 0x8088e000 - 0x808fa2a8 ( 433 kB) - .bss : 0x808fd000 - 0x809bc114 ( 765 kB) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Hierarchical RCU implementation. -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Build-time adjustment of leaf fanout to 32. -Dec 01 11:35:26 RaspberryPi-Gateway kernel: NR_IRQS:16 nr_irqs:16 16 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Architected cp15 timer(s) running at 19.20MHz (phys). -Dec 01 11:35:26 RaspberryPi-Gateway kernel: clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns -Dec 01 11:35:26 RaspberryPi-Gateway kernel: sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Switching to timer-based delay loop, resolution 52ns -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Console: colour dummy device 80x30 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: pid_max: default: 32768 minimum: 301 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Disabling cpuset control group subsystem -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing cgroup subsys io -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing cgroup subsys memory -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing cgroup subsys devices -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing cgroup subsys freezer -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing cgroup subsys net_cls -Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU: Testing write buffer coherency: ok -Dec 01 11:35:26 RaspberryPi-Gateway kernel: ftrace: allocating 21146 entries in 63 pages -Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU0: update cpu_capacity 1024 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_smp_prepare_cpus] enter -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Setting up static identity map for 0x8240 - 0x8274 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_boot_secondary] cpu:1 started (0) 17 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_secondary_init] enter cpu:1 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU1: update cpu_capacity 1024 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_boot_secondary] cpu:2 started (0) 18 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_secondary_init] enter cpu:2 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU2: update cpu_capacity 1024 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU2: thread -1, cpu 2, socket 0, mpidr 80000002 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_boot_secondary] cpu:3 started (0) 18 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: [bcm2709_secondary_init] enter cpu:3 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU3: update cpu_capacity 1024 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU3: thread -1, cpu 3, socket 0, mpidr 80000003 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Brought up 4 CPUs -Dec 01 11:35:26 RaspberryPi-Gateway kernel: SMP: Total of 4 processors activated (153.60 BogoMIPS). -Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU: All CPU(s) started in HYP mode. -Dec 01 11:35:26 RaspberryPi-Gateway kernel: CPU: Virtualization extensions available. -Dec 01 11:35:26 RaspberryPi-Gateway kernel: devtmpfs: initialized -Dec 01 11:35:26 RaspberryPi-Gateway kernel: VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 4 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns -Dec 01 11:35:26 RaspberryPi-Gateway kernel: pinctrl core: initialized pinctrl subsystem -Dec 01 11:35:26 RaspberryPi-Gateway kernel: NET: Registered protocol family 16 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: DMA: preallocated 4096 KiB pool for atomic coherent allocations -Dec 01 11:35:26 RaspberryPi-Gateway kernel: bcm2709: Mini UART enabled -Dec 01 11:35:26 RaspberryPi-Gateway kernel: hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers. -Dec 01 11:35:26 RaspberryPi-Gateway kernel: hw-breakpoint: maximum watchpoint size is 8 bytes. -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Serial: AMBA PL011 UART driver -Dec 01 11:35:26 RaspberryPi-Gateway kernel: uart-pl011 3f201000.uart: could not find pctldev for node /soc/gpio@7e200000/uart0_pins, deferring probe -Dec 01 11:35:26 RaspberryPi-Gateway kernel: bcm2835-mbox 3f00b880.mailbox: mailbox enabled -Dec 01 11:35:26 RaspberryPi-Gateway kernel: bcm2835-dma 3f007000.dma: DMA legacy API manager at f3007000, dmachans=0x1 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: SCSI subsystem initialized -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usbcore: registered new interface driver usbfs -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usbcore: registered new interface driver hub -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usbcore: registered new device driver usb -Dec 01 11:35:26 RaspberryPi-Gateway kernel: raspberrypi-firmware soc:firmware: Attached to firmware from 2017-04-05 11:49 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: clocksource: Switched to clocksource arch_sys_counter -Dec 01 11:35:26 RaspberryPi-Gateway kernel: FS-Cache: Loaded -Dec 01 11:35:26 RaspberryPi-Gateway kernel: CacheFiles: Loaded -Dec 01 11:35:26 RaspberryPi-Gateway kernel: NET: Registered protocol family 2 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: TCP established hash table entries: 8192 (order: 3, 32768 bytes) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: TCP bind hash table entries: 8192 (order: 4, 65536 bytes) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: TCP: Hash tables configured (established 8192 bind 8192) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: UDP hash table entries: 512 (order: 2, 16384 bytes) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: NET: Registered protocol family 1 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: RPC: Registered named UNIX socket transport module. -Dec 01 11:35:26 RaspberryPi-Gateway kernel: RPC: Registered udp transport module. -Dec 01 11:35:26 RaspberryPi-Gateway kernel: RPC: Registered tcp transport module. -Dec 01 11:35:26 RaspberryPi-Gateway kernel: RPC: Registered tcp NFSv4.1 backchannel transport module. -Dec 01 11:35:26 RaspberryPi-Gateway kernel: hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available -Dec 01 11:35:26 RaspberryPi-Gateway kernel: futex hash table entries: 1024 (order: 4, 65536 bytes) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: VFS: Disk quotas dquot_6.6.0 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: FS-Cache: Netfs 'nfs' registered for caching -Dec 01 11:35:26 RaspberryPi-Gateway kernel: NFS: Registering the id_resolver key type -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Key type id_resolver registered -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Key type id_legacy registered -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: io scheduler noop registered -Dec 01 11:35:26 RaspberryPi-Gateway kernel: io scheduler deadline registered -Dec 01 11:35:26 RaspberryPi-Gateway kernel: io scheduler cfq registered (default) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: BCM2708FB: allocated DMA memory fac10000 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: BCM2708FB: allocated DMA channel 0 @ f3007000 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Console: switching to colour frame buffer device 82x26 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled -Dec 01 11:35:26 RaspberryPi-Gateway kernel: console [ttyS0] disabled -Dec 01 11:35:26 RaspberryPi-Gateway kernel: 3f215040.uart: ttyS0 at MMIO 0x3f215040 (irq = 59, base_baud = 31250000) is a 16550 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: console [ttyS0] enabled -Dec 01 11:35:26 RaspberryPi-Gateway kernel: bcm2835-rng 3f104000.rng: hwrng registered -Dec 01 11:35:26 RaspberryPi-Gateway kernel: vc-cma: Videocore CMA driver -Dec 01 11:35:26 RaspberryPi-Gateway kernel: vc-cma: vc_cma_base = 0x00000000 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: vc-cma: vc_cma_size = 0x00000000 (0 MiB) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: vc-cma: vc_cma_initial = 0x00000000 (0 MiB) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: vc-mem: phys_addr:0x00000000 mem_base=0x3dc00000 mem_size:0x3f000000(1008 MiB) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: brd: module loaded -Dec 01 11:35:26 RaspberryPi-Gateway kernel: loop: module loaded -Dec 01 11:35:26 RaspberryPi-Gateway kernel: vchiq: vchiq_init_state: slot_zero = 0xbac80000, is_master = 0 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Loading iSCSI transport class v2.0-870. -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usbcore: registered new interface driver smsc95xx -Dec 01 11:35:26 RaspberryPi-Gateway kernel: dwc_otg: version 3.00a 10-AUG-2012 (platform bus) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Core Release: 2.80a -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Setting default values for core params -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Finished setting default values for core params -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Using Buffer DMA mode -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Periodic Transfer Interrupt Enhancement - disabled -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Multiprocessor Interrupt Enhancement - disabled -Dec 01 11:35:26 RaspberryPi-Gateway kernel: OTG VER PARAM: 0, OTG VER FLAG: 0 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Dedicated Tx FIFOs mode -Dec 01 11:35:26 RaspberryPi-Gateway kernel: WARN::dwc_otg_hcd_init:1047: FIQ DMA bounce buffers: virt = 0xbac04000 dma = 0xfac04000 len=9024 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: FIQ FSM acceleration enabled for : - Non-periodic Split Transactions - Periodic Split Transactions - High-Speed Isochronous Endpoints - Interrupt/Control Split Transaction hack enabled -Dec 01 11:35:26 RaspberryPi-Gateway kernel: dwc_otg: Microframe scheduler enabled -Dec 01 11:35:26 RaspberryPi-Gateway kernel: WARN::hcd_init_fiq:415: FIQ on core 1 at 0x8044accc -Dec 01 11:35:26 RaspberryPi-Gateway kernel: WARN::hcd_init_fiq:416: FIQ ASM at 0x8044b02c length 36 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: WARN::hcd_init_fiq:441: MPHI regs_base at 0xbb87e000 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: dwc_otg 3f980000.usb: DWC OTG Controller -Dec 01 11:35:26 RaspberryPi-Gateway kernel: dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: dwc_otg 3f980000.usb: irq 62, io mem 0x00000000 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Init: Port Power? op_state=1 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Init: Power Port (0) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb usb1: Product: DWC OTG Controller -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb usb1: Manufacturer: Linux 4.4.50 dwc_otg_hcd -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb usb1: SerialNumber: 3f980000.usb -Dec 01 11:35:26 RaspberryPi-Gateway kernel: hub 1-0:1.0: USB hub found -Dec 01 11:35:26 RaspberryPi-Gateway kernel: hub 1-0:1.0: 1 port detected -Dec 01 11:35:26 RaspberryPi-Gateway kernel: dwc_otg: FIQ enabled -Dec 01 11:35:26 RaspberryPi-Gateway kernel: dwc_otg: NAK holdoff enabled -Dec 01 11:35:26 RaspberryPi-Gateway kernel: dwc_otg: FIQ split-transaction FSM enabled -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Module dwc_common_port init -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usbcore: registered new interface driver usb-storage -Dec 01 11:35:26 RaspberryPi-Gateway kernel: mousedev: PS/2 mouse device common for all mice -Dec 01 11:35:26 RaspberryPi-Gateway kernel: bcm2835-cpufreq: min=600000 max=1200000 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: sdhci: Secure Digital Host Controller Interface driver -Dec 01 11:35:26 RaspberryPi-Gateway kernel: sdhci: Copyright(c) Pierre Ossman -Dec 01 11:35:26 RaspberryPi-Gateway kernel: sdhost: log_buf @ bac07000 (fac07000) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc0: sdhost-bcm2835 loaded - DMA enabled (>1) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc-bcm2835 3f300000.mmc: mmc_debug:0 mmc_debug2:0 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc-bcm2835 3f300000.mmc: DMA channel allocated -Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc0: host does not support reading read-only switch, assuming write-enable -Dec 01 11:35:26 RaspberryPi-Gateway kernel: sdhci-pltfm: SDHCI platform and OF driver helper -Dec 01 11:35:26 RaspberryPi-Gateway kernel: ledtrig-cpu: registered to indicate activity on CPUs -Dec 01 11:35:26 RaspberryPi-Gateway kernel: hidraw: raw HID events driver (C) Jiri Kosina -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usbcore: registered new interface driver usbhid -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usbhid: USB HID core driver -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Initializing XFRM netlink socket -Dec 01 11:35:26 RaspberryPi-Gateway kernel: NET: Registered protocol family 17 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Key type dns_resolver registered -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Registering SWP/SWPB emulation handler -Dec 01 11:35:26 RaspberryPi-Gateway kernel: registered taskstats version 1 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: vc-sm: Videocore shared memory driver -Dec 01 11:35:26 RaspberryPi-Gateway kernel: [vc_sm_connected_init]: start -Dec 01 11:35:26 RaspberryPi-Gateway kernel: [vc_sm_connected_init]: end - returning 0 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: of_cfs_init -Dec 01 11:35:26 RaspberryPi-Gateway kernel: of_cfs_init: OK -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Indeed it is in host mode hprt0 = 00021501 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc0: new high speed SDHC card at address 0001 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmcblk0: mmc0:0001 EB1QT 29.8 GiB -Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmcblk0: p1 p2 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: VFS: Mounted root (ext4 filesystem) readonly on device 179:2. -Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc1: queuing unknown CIS tuple 0x80 (2 bytes) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc1: queuing unknown CIS tuple 0x80 (3 bytes) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc1: queuing unknown CIS tuple 0x80 (3 bytes) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc1: queuing unknown CIS tuple 0x80 (7 bytes) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: devtmpfs: mounted -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Freeing unused kernel memory: 476K (80817000 - 8088e000) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: mmc1: new high speed SDIO card at address 0001 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1: new high-speed USB device number 2 using dwc_otg -Dec 01 11:35:26 RaspberryPi-Gateway kernel: Indeed it is in host mode hprt0 = 00001101 -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: System time before build time, advancing clock. -Dec 01 11:35:26 RaspberryPi-Gateway kernel: NET: Registered protocol family 10 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 40 bits of entropy available) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1: New USB device found, idVendor=0424, idProduct=9514 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: hub 1-1:1.0: USB hub found -Dec 01 11:35:26 RaspberryPi-Gateway kernel: hub 1-1:1.0: 5 ports detected -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: systemd 230 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN) -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Detected architecture arm. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Set hostname to . -Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 53 bits of entropy available) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 59 bits of entropy available) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 59 bits of entropy available) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 61 bits of entropy available) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.1: new high-speed USB device number 3 using dwc_otg -Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: smsc95xx v1.0.4 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:01:6b:d5 -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Created slice System Slice. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Listening on /dev/initctl Compatibility Named Pipe. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Listening on Journal Socket. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting Apply Kernel Variables... -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting Create list of required static device nodes for the current kernel... -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.5: new high-speed USB device number 4 using dwc_otg -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Listening on udev Control Socket. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Mounting Debug File System... -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Mounting Configuration File System... -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Listening on udev Kernel Socket. -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.5: New USB device found, idVendor=13b1, idProduct=0041 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=6 -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.5: Product: Linksys USB3GIGV1 -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Reached target Network. -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.5: Manufacturer: Linksys -Dec 01 11:35:26 RaspberryPi-Gateway kernel: usb 1-1.5: SerialNumber: 000001000000 -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Created slice system-getty.slice. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Mounting Temporary Directory... -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting Remount Root and Kernel File Systems... -Dec 01 11:35:26 RaspberryPi-Gateway kernel: EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Reached target Remote File Systems. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Listening on Journal Socket (/dev/log). -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Forward Password Requests to Wall Directory Watch. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Mounting POSIX Message Queue File System... -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Listening on Syslog Socket. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting Journal Service... -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Created slice User and Session Slice. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Reached target Slices. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Dispatch Password Requests to Console Directory Watch. -Dec 01 11:35:26 RaspberryPi-Gateway systemd-journald[135]: Journal started --- Subject: The journal has been started --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- The system journal process has started up, opened the journal --- files for writing and is now ready to process requests. -Dec 01 11:35:26 RaspberryPi-Gateway systemd-sysctl[104]: Couldn't write '90' to 'net/ipv4/netfilter/ip_conntrack_udp_timeout', ignoring: No such file or directory -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting Setup Virtual Console... -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Reached target Swap. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Created slice system-serial\x2dgetty.slice. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Mounted Debug File System. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Mounted Configuration File System. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Mounted POSIX Message Queue File System. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Mounted Temporary Directory. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Journal Service. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Apply Kernel Variables. --- Subject: Unit systemd-sysctl.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-sysctl.service has finished starting up. --- --- The start-up result is done. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Create list of required static device nodes for the current kernel. --- Subject: Unit kmod-static-nodes.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit kmod-static-nodes.service has finished starting up. --- --- The start-up result is done. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Remount Root and Kernel File Systems. --- Subject: Unit systemd-remount-fs.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-remount-fs.service has finished starting up. --- --- The start-up result is done. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Setup Virtual Console. --- Subject: Unit systemd-vconsole-setup.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-vconsole-setup.service has finished starting up. --- --- The start-up result is done. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting Load/Save Random Seed... --- Subject: Unit systemd-random-seed.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-random-seed.service has begun starting up. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting udev Coldplug all Devices... --- Subject: Unit systemd-udev-trigger.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-udev-trigger.service has begun starting up. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting Create Static Device Nodes in /dev... --- Subject: Unit systemd-tmpfiles-setup-dev.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-tmpfiles-setup-dev.service has begun starting up. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting Flush Journal to Persistent Storage... --- Subject: Unit systemd-journal-flush.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-journal-flush.service has begun starting up. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Load/Save Random Seed. --- Subject: Unit systemd-random-seed.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-random-seed.service has finished starting up. --- --- The start-up result is done. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Started Create Static Device Nodes in /dev. --- Subject: Unit systemd-tmpfiles-setup-dev.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-tmpfiles-setup-dev.service has finished starting up. --- --- The start-up result is done. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Starting udev Kernel Device Manager... --- Subject: Unit systemd-udevd.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-udevd.service has begun starting up. -Dec 01 11:35:26 RaspberryPi-Gateway systemd[1]: Reached target Local File Systems (Pre). --- Subject: Unit local-fs-pre.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit local-fs-pre.target has finished starting up. --- --- The start-up result is done. -Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Mounting /var/volatile... --- Subject: Unit var-volatile.mount has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit var-volatile.mount has begun starting up. -Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Mounted /var/volatile. --- Subject: Unit var-volatile.mount has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit var-volatile.mount has finished starting up. --- --- The start-up result is done. -Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Started udev Kernel Device Manager. --- Subject: Unit systemd-udevd.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-udevd.service has finished starting up. --- --- The start-up result is done. -Dec 01 11:35:27 RaspberryPi-Gateway [164]: checking bus 1, device 4: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5" -Dec 01 11:35:27 RaspberryPi-Gateway [164]: bus: 1, device: 4 was not an MTP device -Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Reached target Local File Systems. --- Subject: Unit local-fs.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit local-fs.target has finished starting up. --- --- The start-up result is done. -Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Started Flush Journal to Persistent Storage. --- Subject: Unit systemd-journal-flush.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-journal-flush.service has finished starting up. --- --- The start-up result is done. -Dec 01 11:35:27 RaspberryPi-Gateway kernel: cdc_ether 1-1.5:2.0 eth1: register 'cdc_ether' at usb-3f980000.usb-1.5, CDC Ethernet Device, 94:10:3e:b8:fe:9d -Dec 01 11:35:27 RaspberryPi-Gateway kernel: usbcore: registered new interface driver cdc_ether -Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Starting Create Volatile Files and Directories... --- Subject: Unit systemd-tmpfiles-setup.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-tmpfiles-setup.service has begun starting up. -Dec 01 11:35:27 RaspberryPi-Gateway systemd-tmpfiles[180]: "/var/tmp" already exists and is not a directory. -Dec 01 11:35:27 RaspberryPi-Gateway systemd-tmpfiles[180]: "/var/log" already exists and is not a directory. -Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Started Create Volatile Files and Directories. --- Subject: Unit systemd-tmpfiles-setup.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-tmpfiles-setup.service has finished starting up. --- --- The start-up result is done. -Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Starting Network Time Synchronization... --- Subject: Unit systemd-timesyncd.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-timesyncd.service has begun starting up. -Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Starting Update UTMP about System Boot/Shutdown... --- Subject: Unit systemd-update-utmp.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-update-utmp.service has begun starting up. -Dec 01 11:35:27 RaspberryPi-Gateway systemd-update-utmp[185]: Failed to write utmp record: Resource temporarily unavailable -Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: systemd-update-utmp.service: Main process exited, code=exited, status=1/FAILURE -Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Failed to start Update UTMP about System Boot/Shutdown. --- Subject: Unit systemd-update-utmp.service has failed --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-update-utmp.service has failed. --- --- The result is failed. -Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Dependency failed for Update UTMP about System Runlevel Changes. --- Subject: Unit systemd-update-utmp-runlevel.service has failed --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-update-utmp-runlevel.service has failed. --- --- The result is dependency. -Dec 01 11:35:27 RaspberryPi-Gateway kernel: lirc_dev: IR Remote Control driver registered, major 244 -Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: systemd-update-utmp-runlevel.service: Job systemd-update-utmp-runlevel.service/start failed with result 'dependency'. -Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: systemd-update-utmp.service: Unit entered failed state. -Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: systemd-update-utmp.service: Failed with result 'exit-code'. -Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Started udev Coldplug all Devices. --- Subject: Unit systemd-udev-trigger.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-udev-trigger.service has finished starting up. --- --- The start-up result is done. -Dec 01 11:35:27 RaspberryPi-Gateway kernel: lirc_rpi: module is from the staging directory, the quality is unknown, you have been warned. -Dec 01 11:35:27 RaspberryPi-Gateway kernel: bcm2835-wdt 3f100000.watchdog: Broadcom BCM2835 watchdog timer -Dec 01 11:35:27 RaspberryPi-Gateway systemd[1]: Found device /dev/ttyAMA0. --- Subject: Unit dev-ttyAMA0.device has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit dev-ttyAMA0.device has finished starting up. --- --- The start-up result is done. -Dec 01 11:35:27 RaspberryPi-Gateway kernel: gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000 -Dec 01 11:35:27 RaspberryPi-Gateway systemd-timesyncd[183]: System clock time unset or jumped backwards, restoring from recorded timestamp: Tue 2017-12-05 22:01:55 GMT -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Time has been changed --- Subject: Time change --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- The system clock has been changed to REALTIME microseconds after January 1st, 1970. -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Found device /dev/ttyS0. --- Subject: Unit dev-ttyS0.device has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit dev-ttyS0.device has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started Network Time Synchronization. --- Subject: Unit systemd-timesyncd.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-timesyncd.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway [206]: checking bus 1, device 3: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1" -Dec 05 22:01:55 RaspberryPi-Gateway [207]: checking bus 1, device 4: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5" -Dec 05 22:01:55 RaspberryPi-Gateway [206]: bus: 1, device: 3 was not an MTP device -Dec 05 22:01:55 RaspberryPi-Gateway [207]: bus: 1, device: 4 was not an MTP device -Dec 05 22:01:55 RaspberryPi-Gateway kernel: random: nonblocking pool is initialized -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Reached target System Time Synchronized. --- Subject: Unit time-sync.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit time-sync.target has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Reached target System Initialization. --- Subject: Unit sysinit.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit sysinit.target has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Listening on D-Bus System Message Bus Socket. --- Subject: Unit dbus.socket has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit dbus.socket has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started WiFi Initialized Path. --- Subject: Unit wifiinitialized.path has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit wifiinitialized.path has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started RPI WIFI Initialized Path. --- Subject: Unit rpiwifiinitialized.path has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit rpiwifiinitialized.path has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started Daily Cleanup of Temporary Directories. --- Subject: Unit systemd-tmpfiles-clean.timer has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-tmpfiles-clean.timer has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway kernel: usbcore: registered new interface driver brcmfmac -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Reached target Timers. --- Subject: Unit timers.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit timers.target has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Listening on RPCbind Server Activation Socket. --- Subject: Unit rpcbind.socket has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit rpcbind.socket has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Reached target Sockets. --- Subject: Unit sockets.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit sockets.target has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started CcspCrSsp Restart Occurred Path. --- Subject: Unit crResetDetect.path has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit crResetDetect.path has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started Check RPI Wifi Support Initialized Path. --- Subject: Unit checkrpiwifisupport.path has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit checkrpiwifisupport.path has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway kernel: brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Aug 29 2016 20:48:16 version 7.45.41.26 (r640327) FWID 01-4527cfab -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Reached target Paths. --- Subject: Unit paths.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit paths.target has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway kernel: brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Reached target Basic System. --- Subject: Unit basic.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit basic.target has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started Kernel Logging Service. --- Subject: Unit busybox-klogd.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit busybox-klogd.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: klogd started: BusyBox v1.24.1 (2017-12-01 03:45:35 PST) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Booting Linux on physical CPU 0x0 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Initializing cgroup subsys cpuset -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Starting PsmSsp service... --- Subject: Unit PsmSsp.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit PsmSsp.service has begun starting up. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Initializing cgroup subsys cpu -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Initializing cgroup subsys cpuacct -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Linux version 4.4.50 (andre@chippy1) (gcc version 6.4.0 (GCC) ) #1 SMP Fri Dec 1 03:42:12 PST 2017 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started D-Bus System Message Bus. --- Subject: Unit dbus.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit dbus.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Machine model: Raspberry Pi 3 Model B Rev 1.2 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] cma: Reserved 8 MiB at 0x3a800000 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Memory policy: Data cache writealloc -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] On node 0 totalpages: 241664 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] free_area_init_node: node 0, pgdat 808f0f40, node_mem_map b9fa6000 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Normal zone: 2124 pages used for memmap -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Normal zone: 0 pages reserved -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Normal zone: 241664 pages, LIFO batch:31 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] [bcm2709_smp_init_cpus] enter (9540->f3003010) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] [bcm2709_smp_init_cpus] ncores=4 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] PERCPU: Embedded 13 pages/cpu @b9f62000 s22540 r8192 d22516 u53248 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] pcpu-alloc: s22540 r8192 d22516 u53248 alloc=13*4096 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 239540 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Kernel command line: 8250.nr_uarts=1 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708_fb.fbswap=1 dma.dmachans=0x7f35 bcm2709.boardrev=0xa22082 bcm2709.serial=0x97016bd5 bcm2709.uart_clock=48000000 smsc95xx.macaddr=B8:27:EB:01:6B:D5 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait None -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Memory: 938884K/966656K available (6363K kernel code, 432K rwdata, 1884K rodata, 476K init, 764K bss, 19580K reserved, 8192K cma-reserved) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Virtual kernel memory layout: -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] vmalloc : 0xbb800000 - 0xff800000 (1088 MB) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] lowmem : 0x80000000 - 0xbb000000 ( 944 MB) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] modules : 0x7f000000 - 0x80000000 ( 16 MB) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] .text : 0x80008000 - 0x80816098 (8249 kB) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] .init : 0x80817000 - 0x8088e000 ( 476 kB) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] .data : 0x8088e000 - 0x808fa2a8 ( 433 kB) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] .bss : 0x808fd000 - 0x809bc114 ( 765 kB) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Hierarchical RCU implementation. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Build-time adjustment of leaf fanout to 32. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] NR_IRQS:16 nr_irqs:16 16 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] Architected cp15 timer(s) running at 19.20MHz (phys). -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idl[ 125.271312] CcspLMLite[3489]: LMlite-CLIENT <963> : Connected Mac = 30:30:31:31:30:31 -e_ns: 440795202767 ns -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000008] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000023] Switching to timer-based delay loop, resolution 52ns -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000278] Console: colour dummy device 80x30 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000318] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000341] pid_max: default: 32768 minimum: 301 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000649] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.000665] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.001608] Disabling cpuset control group subsystem -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.001643] Initializing cgroup subsys io -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.001673] Initializing cgroup subsys memory -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.001713] Initializing cgroup subsys devices -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.001734] Initializing cgroup subsys freezer -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.001753] Initializing cgroup subsys net_cls -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.001801] CPU: Testing write buffer coherency: ok -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.001861] ftrace: allocating 21146 entries in 63 pages -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.053070] CPU0: update cpu_capacity 1024 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.053102] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.053114] [bcm2709_smp_prepare_cpus] enter -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.053262] Setting up static identity map for 0x8240 - 0x8274 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.054933] [bcm2709_boot_secondary] cpu:1 started (0) 17 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.055177] [bcm2709_secondary_init] enter cpu:1 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.055220] CPU1: update cpu_capacity 1024 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.055226] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.055602] [bcm2709_boot_secondary] cpu:2 started (0) 18 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.055788] [bcm2709_secondary_init] enter cpu:2 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.055808] CPU2: update cpu_capacity 1024 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.055814] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.056170] [bcm2709_boot_secondary] cpu:3 started (0) 18 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.056311] [bcm2709_secondary_init] enter cpu:3 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.056331] CPU3: update cpu_capacity 1024 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.056336] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.056396] Brought up 4 CPUs -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.056418] SMP: Total of 4 processors activated (153.60 BogoMIPS). -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.056426] CPU: All CPU(s) started in HYP mode. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.056433] CPU: Virtualization extensions available. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.057044] devtmpfs: initialized -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.067729] VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 4 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.068054] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.068776] pinctrl core: initialized pinctrl subsystem -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.069299] NET: Registered protocol family 16 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.074455] DMA: preallocated 4096 KiB pool for atomic coherent allocations -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.081585] bcm2709: Mini UART enabled -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.081631] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.081642] hw-breakpoint: maximum watchpoint size is 8 bytes. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.081792] Serial: AMBA PL011 UART driver -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.081926] uart-pl011 3f201000.uart: could not find pctldev for node /soc/gpio@7e200000/uart0_pins, deferring probe -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.082091] bcm2835-mbox 3f00b880.mailbox: mailbox enabled -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.145143] bcm2835-dma 3f007000.dma: DMA legacy API manager at f3007000, dmachans=0x1 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.145705] SCSI subsystem initialized -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.145892] usbcore: registered new interface driver usbfs -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.145969] usbcore: registered new interface driver hub -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.146060] usbcore: registered new device driver usb -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.152594] raspberrypi-firmware soc:firmware: Attached to firmware from 2017-04-05 11:49 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.163951] clocksource: Switched to clocksource arch_sys_counter -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.209897] FS-Cache: Loaded -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.210174] CacheFiles: Loaded -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.222249] NET: Registered protocol family 2 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.223094] TCP established hash table entries: 8192 (order: 3, 32768 bytes) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.223208] TCP bind hash table entries: 8192 (order: 4, 65536 bytes) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.223396] TCP: Hash tables configured (established 8192 bind 8192) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.223493] UDP hash table entries: 512 (order: 2, 16384 bytes) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.223539] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.223764] NET: Registered protocol family 1 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.224098] RPC: Registered named UNIX socket transport module. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.224108] RPC: Registered udp transport module. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.224116] RPC: Registered tcp transport module. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.224124] RPC: Registered tcp NFSv4.1 backchannel transport module. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.225072] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.226370] futex hash table entries: 1024 (order: 4, 65536 bytes) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.239430] VFS: Disk quotas dquot_6.6.0 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.239738] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.241838] FS-Cache: Netfs 'nfs' registered for caching -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.242713] NFS: Registering the id_resolver key type -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.242757] Key type id_resolver registered -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.242766] Key type id_legacy registered -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.245053] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.245185] io scheduler noop registered -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.245205] io scheduler deadline registered -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.245258] io scheduler cfq registered (default) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.247741] BCM2708FB: allocated DMA memory fac10000 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.247768] BCM2708FB: allocated DMA channel 0 @ f3007000 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.252802] Console: switching to colour frame buffer device 82x26 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.330474] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.331873] console [ttyS0] disabled -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 0.331938] 3f215040.uart: ttyS0 at MMIO 0x3f215040 (irq = 59, base_baud = 31250000) is a 16550 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.050837] console [ttyS0] enabled -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.055682] bcm2835-rng 3f104000.rng: hwrng registered -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.060991] vc-cma: Videocore CMA driver -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.064987] vc-cma: vc_cma_base = 0x00000000 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.069757] vc-cma: vc_cma_size = 0x00000000 (0 MiB) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.075243] vc-cma: vc_cma_initial = 0x00000000 (0 MiB) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.080935] vc-mem: phys_addr:0x00000000 mem_base=0x3dc00000 mem_size:0x3f000000(1008 MiB) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.103848] brd: module loaded -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.115613] loop: module loaded -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.119693] vchiq: vchiq_init_state: slot_zero = 0xbac80000, is_master = 0 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.128125] Loading iSCSI transport class v2.0-870. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.133693] usbcore: registered new interface driver smsc95xx -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.139603] dwc_otg: version 3.00a 10-AUG-2012 (platform bus) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.345717] Core Release: 2.80a -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.348905] Setting default values for core params -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.353785] Finished setting default values for core params -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.559790] Using Buffer DMA mode -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.563150] Periodic Transfer Interrupt Enhancement - disabled -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.569079] Multiprocessor Interrupt Enhancement - disabled -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.574743] OTG VER PARAM: 0, OTG VER FLAG: 0 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.579163] Dedicated Tx FIFOs mode -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.582992] WARN::dwc_otg_hcd_init:1047: FIQ DMA bounce buffers: virt = 0xbac04000 dma = 0xfac04000 len=9024 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.592999] FIQ FSM acceleration enabled for : -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.592999] Non-periodic Split Transactions -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.592999] Periodic Split Transactions -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.592999] High-Speed Isochronous Endpoints -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.592999] Interrupt/Control Split Transaction hack enabled -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.615696] dwc_otg: Microframe scheduler enabled -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.615740] WARN::hcd_init_fiq:415: FIQ on core 1 at 0x8044accc -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.621747] WARN::hcd_init_fiq:416: FIQ ASM at 0x8044b02c length 36 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.628108] WARN::hcd_init_fiq:441: MPHI regs_base at 0xbb87e000 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.634269] dwc_otg 3f980000.usb: DWC OTG Controller -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.639330] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.646781] dwc_otg 3f980000.usb: irq 62, io mem 0x00000000 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.652473] Init: Port Power? op_state=1 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.656464] Init: Power Port (0) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.659921] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.666830] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.674175] usb usb1: Product: DWC OTG Controller -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.678947] usb usb1: Manufacturer: Linux 4.4.50 dwc_otg_hcd -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.684703] usb usb1: SerialNumber: 3f980000.usb -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.690095] hub 1-0:1.0: USB hub found -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.693929] hub 1-0:1.0: 1 port detected -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.698479] dwc_otg: FIQ enabled -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.698488] dwc_otg: NAK holdoff enabled -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.698495] dwc_otg: FIQ split-transaction FSM enabled -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.698524] Module dwc_common_port init -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.698765] usbcore: registered new interface driver usb-storage -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.705116] mousedev: PS/2 mouse device common for all mice -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.711449] bcm2835-cpufreq: min=600000 max=1200000 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.716700] sdhci: Secure Digital Host Controller Interface driver -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.722967] sdhci: Copyright(c) Pierre Ossman -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.727729] sdhost: log_buf @ bac07000 (fac07000) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.783978] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.791807] mmc-bcm2835 3f300000.mmc: mmc_debug:0 mmc_debug2:0 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.797753] mmc-bcm2835 3f300000.mmc: DMA channel allocated -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.840745] mmc0: host does not support reading read-only switch, assuming write-enable -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.844060] sdhci-pltfm: SDHCI platform and OF driver helper -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.844456] ledtrig-cpu: registered to indicate activity on CPUs -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.844571] hidraw: raw HID events driver (C) Jiri Kosina -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.844754] usbcore: registered new interface driver usbhid -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.844756] usbhid: USB HID core driver -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.845311] Initializing XFRM netlink socket -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.845336] NET: Registered protocol family 17 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.845460] Key type dns_resolver registered -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.845883] Registering SWP/SWPB emulation handler -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.846625] registered taskstats version 1 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.846798] vc-sm: Videocore shared memory driver -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.846805] [vc_sm_connected_init]: start -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.854994] [vc_sm_connected_init]: end - returning 0 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.856356] 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.856741] of_cfs_init -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.856814] of_cfs_init: OK -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.904041] Indeed it is in host mode hprt0 = 00021501 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.933198] mmc0: new high speed SDHC card at address 0001 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.933867] mmcblk0: mmc0:0001 EB1QT 29.8 GiB -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.945259] mmcblk0: p1 p2 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.957829] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.966099] VFS: Mounted root (ext4 filesystem) readonly on device 179:2. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.966181] mmc1: queuing unknown CIS tuple 0x80 (2 bytes) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.967722] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.969269] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.972064] mmc1: queuing unknown CIS tuple 0x80 (7 bytes) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 1.999421] devtmpfs: mounted -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.003153] Freeing unused kernel memory: 476K (80817000 - 8088e000) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.062726] mmc1: new high speed SDIO card at address 0001 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.083993] usb 1-1: new high-speed USB device number 2 using dwc_otg -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.090667] Indeed it is in host mode hprt0 = 00001101 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.177133] systemd[1]: System time before build time, advancing clock. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.277160] NET: Registered protocol family 10 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.288313] random: systemd: uninitialized urandom read (16 bytes read, 40 bits of entropy available) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.297957] usb 1-1: New USB device found, idVendor=0424, idProduct=9514 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.304806] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.312297] hub 1-1:1.0: USB hub found -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.316250] hub 1-1:1.0: 5 ports detected -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.323749] systemd[1]: systemd 230 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.342708] systemd[1]: Detected architecture arm. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.374900] systemd[1]: Set hostname to . -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.423058] random: systemd: uninitialized urandom read (16 bytes read, 53 bits of entropy available) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.464592] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 59 bits of entropy available) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.476138] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 59 bits of entropy available) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.486487] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 61 bits of entropy available) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.574985] random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.584733] random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.593986] usb 1-1.1: new high-speed USB device number 3 using dwc_otg -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.601103] random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.611010] random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.621395] random: systemd: uninitialized urandom read (16 bytes read, 65 bits of entropy available) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.704328] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00 -Dec 05 22:01:55 RaspberryPi-Gateway kernel: brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code -Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: World regulatory domain updated: -Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: DFS Master region: unset -Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.711318] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.721592] smsc95xx v1.0.4 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.787418] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:01:6b:d5 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.824798] systemd[1]: Created slice System Slice. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.854363] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.884337] systemd[1]: Listening on Journal Socket. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.954515] systemd[1]: Starting Apply Kernel Variables... -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 2.997816] systemd[1]: Starting Create list of required static device nodes for the current kernel... -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.033997] usb 1-1.5: new high-speed USB device number 4 using dwc_otg -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.034360] systemd[1]: Listening on udev Control Socket. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.066833] systemd[1]: Mounting Debug File System... -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.096907] systemd[1]: Mounting Configuration File System... -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.124338] systemd[1]: Listening on udev Kernel Socket. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.144893] usb 1-1.5: New USB device found, idVendor=13b1, idProduct=0041 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.151874] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=6 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.159325] usb 1-1.5: Product: Linksys USB3GIGV1 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.159479] systemd[1]: Reached target Network. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.168707] usb 1-1.5: Manufacturer: Linksys -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.168720] usb 1-1.5: SerialNumber: 000001000000 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.194891] systemd[1]: Created slice system-getty.slice. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.264286] systemd[1]: Mounting Temporary Directory... -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.286645] systemd[1]: Starting Remount Root and Kernel File Systems... -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.308178] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.314244] systemd[1]: Reached target Remote File Systems. -Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A) -Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz, 92000 KHz AUTO), (N/A, 2000 mBm), (N/A) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.344567] systemd[1]: Listening on Journal Socket (/dev/log). -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.374389] systemd[1]: Started Forward Password Requests to Wall Directory Watch. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.434269] systemd[1]: Mounting POSIX Message Queue File System... -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.464286] systemd[1]: Listening on Syslog Socket. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.486612] systemd[1]: Starting Journal Service... -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.514913] systemd[1]: Created slice User and Session Slice. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.544210] systemd[1]: Reached target Slices. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.564479] systemd[1]: Started Dispatch Password Requests to Console Directory Watch. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.634440] systemd[1]: Starting Setup Virtual Console... -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.664575] systemd[1]: Reached target Swap. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.684870] systemd[1]: Created slice system-serial\x2dgetty.slice. -Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.758866] systemd[1]: Mounted Debug File System. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.784237] systemd[1]: Mounted Configuration File System. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.814176] systemd[1]: Mounted POSIX Message Queue File System. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.844167] systemd[1]: Mounted Temporary Directory. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 3.864453] systemd[1]: Started Journal Service. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.282016] systemd-journald[135]: Received request to flush runtime journal from PID 1 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.316142] cdc_ether 1-1.5:2.0 eth1: register 'cdc_ether' at usb-3f980000.usb-1.5, CDC Ethernet Device, 94:10:3e:b8:fe:9d -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.328131] usbcore: registered new interface driver cdc_ether -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.539254] lirc_dev: IR Remote Control driver registered, major 244 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.567838] lirc_rpi: module is from the staging directory, the quality is unknown, you have been warned. -Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.593306] bcm2835-wdt 3f100000.watchdog: Broadcom BCM2835 watchdog timer -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.617819] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.716043] random: nonblocking pool is initialized -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.832176] usbcore: registered new interface driver brcmfmac -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.955307] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Aug 29 2016 20:48:16 version 7.45.41.26 (r640327) FWID 01-4527cfab -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 4.993659] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.317716] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.324314] cfg80211: World regulatory domain updated: -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.329528] cfg80211: DFS Master region: unset -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.333973] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.343862] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.352004] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz, 92000 KHz AUTO), (N/A, 2000 mBm), (N/A) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.361602] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A) -Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.369777] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.379454] cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.389126] cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s) -Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s) -Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.397390] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A) -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.405575] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A) -Dec 05 22:01:55 RaspberryPi-Gateway kernel: cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A) -Dec 05 22:01:55 RaspberryPi-Gateway PsmSsp[220]: Conf file /etc/debug.ini open success -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon.... --- Subject: Unit snmpd.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit snmpd.service has begun starting up. -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Starting CcspCrSsp service... --- Subject: Unit CcspCrSsp.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspCrSsp.service has begun starting up. -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Starting TDK Test Agent Start... --- Subject: Unit tdk.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit tdk.service has begun starting up. -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started Gwprovapp service. --- Subject: Unit gwprovapp.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit gwprovapp.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:55 RaspberryPi-Gateway kernel: lirc_rpi: auto-detected active high receiver on GPIO pin 18 -Dec 05 22:01:55 RaspberryPi-Gateway kernel: lirc_rpi lirc_rpi: lirc_dev: driver lirc_rpi registered at minor = 0 -Dec 05 22:01:55 RaspberryPi-Gateway kernel: lirc_rpi: driver registered! -Dec 05 22:01:55 RaspberryPi-Gateway PsmSsp[220]: ssp_CfmReadCurConfig: Fail to import custom params -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Starting Permit User Sessions... --- Subject: Unit systemd-user-sessions.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-user-sessions.service has begun starting up. -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.534031] lirc_rpi: auto-detected active high receiver on GPIO pin 18 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.541501] lirc_rpi lirc_rpi: lirc_dev: driver lirc_rpi registered at minor = 0 -Dec 05 22:01:55 RaspberryPi-Gateway kernel[214]: [ 5.549095] lirc_rpi: driver registered! -Dec 05 22:01:55 RaspberryPi-Gateway systemd[1]: Started System Logging Service. --- Subject: Unit busybox-syslog.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit busybox-syslog.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:56 RaspberryPi-Gateway gw_prov_utopia[232]: Started gw_prov_utopia -Dec 05 22:01:56 RaspberryPi-Gateway kernel: ccspSysConfigEa wrote to core_pattern when file position was not 0! - This will not be supported in the future. To silence this - warning, set kernel.sysctl_writes_strict = -1 -Dec 05 22:01:56 RaspberryPi-Gateway sh[227]: bbhm patch is not required -Dec 05 22:01:56 RaspberryPi-Gateway kernel[214]: [ 5.621350] ccspSysConfigEa wrote to core_pattern when file position was not 0! -Dec 05 22:01:56 RaspberryPi-Gateway systemd[1]: Starting Login Service... --- Subject: Unit systemd-logind.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-logind.service has begun starting up. -Dec 05 22:01:56 RaspberryPi-Gateway gw_prov_utopia[232]: syslogd: can't open '/etc/syslog.conf': No such file or directory -Dec 05 22:01:56 RaspberryPi-Gateway kernel[214]: [ 5.621350] This will not be supported in the future. To silence this -Dec 05 22:01:56 RaspberryPi-Gateway gw_prov_utopia[232]: ln: /crontabs: File exists -Dec 05 22:01:56 RaspberryPi-Gateway kernel[214]: [ 5.621350] warning, set kernel.sysctl_writes_strict = -1 -Dec 05 22:01:56 RaspberryPi-Gateway gw_prov_utopia[232]: ******************************************************************* -Dec 05 22:01:56 RaspberryPi-Gateway gw_prov_utopia[232]: * -Dec 05 22:01:56 RaspberryPi-Gateway gw_prov_utopia[232]: * Copyright (c) 2010 by Cisco Systems, Inc. All Rights Reserved. -Dec 05 22:01:56 RaspberryPi-Gateway gw_prov_utopia[232]: * -Dec 05 22:01:56 RaspberryPi-Gateway gw_prov_utopia[232]: ******************************************************************* -Dec 05 22:01:56 RaspberryPi-Gateway systemd[1]: Started Permit User Sessions. --- Subject: Unit systemd-user-sessions.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-user-sessions.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:56 RaspberryPi-Gateway sh[257]: Going to check the iptable rules -Dec 05 22:01:56 RaspberryPi-Gateway sh[257]: Enable iptable rules for TDK -Dec 05 22:01:56 RaspberryPi-Gateway sh[257]: Going to start Agent -Dec 05 22:01:56 RaspberryPi-Gateway CcspCrSsp[255]: Conf file /etc/debug.ini open success -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[261]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:01:56 RaspberryPi-Gateway snmpd[224]: pcilib: Cannot open /proc/bus/pci -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[261]: system.syscfg Shared memory file not found -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[261]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:513, Error initializing shared memor -Dec 05 22:01:56 RaspberryPi-Gateway snmpd[224]: pcilib: Cannot find any working access method. -Dec 05 22:01:56 RaspberryPi-Gateway snmpd[224]: pcilib: pci_init failed -Dec 05 22:01:56 RaspberryPi-Gateway sh[257]: tdk_firewall_service.sh: v4 rule is missing in iptables, adding now -Dec 05 22:01:56 RaspberryPi-Gateway kernel: ip_tables: (C) 2000-2006 Netfilter Core Team -Dec 05 22:01:56 RaspberryPi-Gateway kernel[214]: [ 5.946977] ip_tables: (C) 2000-2006 Netfilter Core Team -Dec 05 22:01:56 RaspberryPi-Gateway sh[257]: tdk_firewall_service.sh: v6 rule is missing in ip6tables, adding now -Dec 05 22:01:56 RaspberryPi-Gateway kernel: ip6_tables: (C) 2000-2006 Netfilter Core Team -Dec 05 22:01:56 RaspberryPi-Gateway kernel[214]: [ 6.063819] ip6_tables: (C) 2000-2006 Netfilter Core Team -Dec 05 22:01:56 RaspberryPi-Gateway [350]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:405, Enter in function syscfg_create -Dec 05 22:01:56 RaspberryPi-Gateway [350]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:422, creating shared memory with store type 0, path /nvram/syscfg.db, size 51200, hdr size 0 -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[353]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:01:56 RaspberryPi-Gateway sh[257]: 12-05-2017 22:01:56.479049 [main():1178] -Dec 05 22:01:56 RaspberryPi-Gateway sh[257]: Process Group Id : 278 -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[357]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[360]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[360]: system.syscfg commit to store -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[372]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[379]: system.utctx Utopia_Init: Initializing -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[379]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[379]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[379]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[379]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[379]: system.utctx Utopia_Free: Freeing -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[379]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:01:56 RaspberryPi-Gateway kernel: syseventd (384): /proc/384/oom_adj is deprecated, please use /proc/384/oom_score_adj instead. -Dec 05 22:01:56 RaspberryPi-Gateway kernel[214]: [ 6.292324] syseventd (384): /proc/384/oom_adj is deprecated, please use /proc/384/oom_score_adj instead. -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[384]: 2017-12-05 22:01:56., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[384]: system.sysevent syseventd started. -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[387]: system.sysevent Starting fork helper process syseventd_fork_helper -Dec 05 22:01:56 RaspberryPi-Gateway UTOPIA[399]: system.sysevent syseventd fork helper started using pipe 10 -Dec 05 22:01:56 RaspberryPi-Gateway PsmSsp[220]: eRT.com.cisco.spvtg.ccsp.psm start to check eRT.com.cisco.spvtg.ccsp.CR status -Dec 05 22:01:56 RaspberryPi-Gateway snmpd[224]: error finding row index in _ifXTable_container_row_restore -Dec 05 22:01:56 RaspberryPi-Gateway snmpd[224]: error finding row index in _ifXTable_container_row_restore -Dec 05 22:01:56 RaspberryPi-Gateway snmpd[224]: error finding row index in _ifXTable_container_row_restore -Dec 05 22:01:56 RaspberryPi-Gateway snmpd[224]: NET-SNMP version 5.7.3 -Dec 05 22:01:56 RaspberryPi-Gateway systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon.. --- Subject: Unit snmpd.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit snmpd.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:56 RaspberryPi-Gateway systemd[1]: Reached target Sound Card. --- Subject: Unit sound.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit sound.target has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:56 RaspberryPi-Gateway systemd-logind[245]: New seat seat0. --- Subject: A new seat seat0 is now available --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat --- --- A new seat seat0 has been configured and is now available. -Dec 05 22:01:57 RaspberryPi-Gateway systemd[1]: Started Serial Getty on ttyS0. --- Subject: Unit serial-getty@ttyS0.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit serial-getty@ttyS0.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:57 RaspberryPi-Gateway systemd[1]: Started Getty on tty1. --- Subject: Unit getty@tty1.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit getty@tty1.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:57 RaspberryPi-Gateway systemd[1]: Started Serial Getty on ttyAMA0. --- Subject: Unit serial-getty@ttyAMA0.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit serial-getty@ttyAMA0.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:57 RaspberryPi-Gateway systemd[1]: Reached target Login Prompts. --- Subject: Unit getty.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit getty.target has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:57 RaspberryPi-Gateway systemd[1]: Started Login Service. --- Subject: Unit systemd-logind.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-logind.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:57 RaspberryPi-Gateway systemd[1]: Started CcspCrSsp service. --- Subject: Unit CcspCrSsp.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspCrSsp.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[415]: 2017-12-05 22:01:57., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[415]: system.syscfg commit to store -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[416]: 2017-12-05 22:01:57., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[419]: 2017-12-05 22:01:57., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[420]: 2017-12-05 22:01:57., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[421]: 2017-12-05 22:01:57., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[440]: service.info Registered bridge for bridge-start using /etc/utopia/service.d/service_bridge.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[440]: service.info Registered bridge for bridge-stop using /etc/utopia/service.d/service_bridge.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[440]: service.info Registered bridge for bridge-restart using /etc/utopia/service.d/service_bridge.sh -Dec 05 22:01:57 RaspberryPi-Gateway kernel: 8021q: 802.1Q VLAN Support v1.8 -Dec 05 22:01:57 RaspberryPi-Gateway kernel[214]: [ 7.451656] 8021q: 802.1Q VLAN Support v1.8 -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[444]: service.info Registered forwarding for forwarding-start using /etc/utopia/service.d/service_forwarding.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[444]: service.info Registered forwarding for forwarding-stop using /etc/utopia/service.d/service_forwarding.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[444]: service.info Registered forwarding for forwarding-restart using /etc/utopia/service.d/service_forwarding.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[448]: 2017-12-05 22:01:57., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-start using /etc/utopia/service.d/service_ipv4.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-stop using /etc/utopia/service.d/service_ipv4.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-restart using /etc/utopia/service.d/service_ipv4.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-resyncAll using /etc/utopia/service.d/service_ipv4.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-resync using /etc/utopia/service.d/service_ipv4.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-down using /etc/utopia/service.d/service_ipv4.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-up using /etc/utopia/service.d/service_ipv4.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-set_dyn_config using /etc/utopia/service.d/service_ipv4.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-sync_tsip_all using /etc/utopia/service.d/service_ipv4.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-stop_tsip_all using /etc/utopia/service.d/service_ipv4.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-resync_tsip using /etc/utopia/service.d/service_ipv4.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[449]: service.info Registered ipv4 for ipv4-resync_tsip_asn using /etc/utopia/service.d/service_ipv4.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[458]: service.info Registered lan for lan-start using /etc/utopia/service.d/lan_handler.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[458]: service.info Registered lan for lan-stop using /etc/utopia/service.d/lan_handler.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[458]: service.info Registered lan for lan-restart using /etc/utopia/service.d/lan_handler.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[458]: service.info Registered lan for pnm-status using /etc/utopia/service.d/lan_handler.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[458]: service.info Registered lan for bring-lan using /etc/utopia/service.d/lan_handler.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[458]: service.info Registered lan for iot_status using /etc/utopia/service.d/lan_handler.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[458]: service.info Registered lan for ipv4-resync using /etc/utopia/service.d/lan_handler.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[458]: service.info Registered lan for erouter_mode-updated using /etc/utopia/service.d/lan_handler.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[467]: service.info Registered multinet for multinet-start using /etc/utopia/service.d/service_multinet_exec -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[467]: service.info Registered multinet for multinet-stop using /etc/utopia/service.d/service_multinet_exec -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[467]: service.info Registered multinet for multinet-restart using /etc/utopia/service.d/service_multinet_exec -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[467]: service.info Registered multinet for multinet-syncNets using /etc/utopia/service.d/service_multinet_exec -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[467]: service.info Registered multinet for multinet-syncMembers using /etc/utopia/service.d/service_multinet_exec -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[467]: service.info Registered multinet for multinet-down using /etc/utopia/service.d/service_multinet_exec -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[467]: service.info Registered multinet for multinet-up using /etc/utopia/service.d/service_multinet_exec -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[467]: service.info Registered multinet for sw_ext_restore using /etc/utopia/service.d/service_multinet/handle_sw.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Registered wan for wan-start using /etc/utopia/service.d/service_wan.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Registered wan for wan-stop using /etc/utopia/service.d/service_wan.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Registered wan for wan-restart using /etc/utopia/service.d/service_wan.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Unregistered wan from wan-restart -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Registered wan for wan-restart using /etc/utopia/service.d/service_wan.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Registered wan for erouter_mode-updated using /etc/utopia/service.d/service_wan.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Registered wan for dhcp_client-restart using /etc/utopia/service.d/service_wan.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Registered wan for dhcp_client-release using /etc/utopia/service.d/service_wan.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[484]: service.info Registered wan for dhcp_client-renew using /etc/utopia/service.d/service_wan.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[486]: service.info Registered ccsphs for ccsphs-start using /etc/utopia/service.d/service_ccsphs.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[486]: service.info Registered ccsphs for ccsphs-stop using /etc/utopia/service.d/service_ccsphs.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[486]: service.info Registered ccsphs for ccsphs-restart using /etc/utopia/service.d/service_ccsphs.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[486]: service.info Registered ccsphs for lan-status using /etc/utopia/service.d/service_ccsphs.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[486]: service.info Registered ccsphs for multinet_2-status using /etc/utopia/service.d/service_ccsphs.sh -Dec 05 22:01:57 RaspberryPi-Gateway UTOPIA[486]: service.info Registered ccsphs for ipv4_5-status using /etc/utopia/service.d/service_ccsphs.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[490]: service.info Registered ddns for ddns-start using /etc/utopia/service.d/service_ddns.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[490]: service.info Registered ddns for ddns-stop using /etc/utopia/service.d/service_ddns.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[490]: service.info Registered ddns for ddns-restart using /etc/utopia/service.d/service_ddns.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[490]: service.info Registered ddns for wan-status using /etc/utopia/service.d/service_ddns.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[490]: service.info Registered ddns for current_wan_ipaddr using /etc/utopia/service.d/service_ddns.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[499]: service.info Registered dhcp_server for dhcp_server-start using /etc/utopia/service.d/service_dhcp_server.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[499]: service.info Registered dhcp_server for dhcp_server-stop using /etc/utopia/service.d/service_dhcp_server.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[499]: service.info Registered dhcp_server for dhcp_server-restart using /etc/utopia/service.d/service_dhcp_server.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[499]: service.info Registered dhcp_server for syslog-status using /etc/utopia/service.d/service_dhcp_server.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[499]: service.info Registered dhcp_server for lan-status using /etc/utopia/service.d/service_dhcp_server.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[499]: service.info Registered dhcp_server for dhcp_server-resync using /etc/utopia/service.d/service_dhcp_server.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[514]: service.info Registered hotspot for hotspot-start using /etc/utopia/service.d/service_multinet/handle_gre.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[514]: service.info Registered hotspot for hotspot-stop using /etc/utopia/service.d/service_multinet/handle_gre.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[514]: service.info Registered hotspot for hotspot-restart using /etc/utopia/service.d/service_multinet/handle_gre.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[514]: service.info Registered hotspot for gre-restart using /etc/utopia/service.d/service_multinet/handle_gre.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[514]: service.info Registered hotspot for gre-forceRestart using /etc/utopia/service.d/service_multinet/handle_gre.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[514]: service.info Registered hotspot for snmp_subagent-status using /etc/utopia/service.d/service_multinet/handle_gre.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[514]: service.info Registered hotspot for hotspot-update_bridges using /etc/utopia/service.d/service_multinet/handle_gre.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[519]: 2017-12-05 22:01:58., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:01:58 RaspberryPi-Gateway kernel: MTU Modifier loaded -Dec 05 22:01:58 RaspberryPi-Gateway kernel[214]: [ 7.785642] MTU Modifier loaded -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[526]: service.info Registered sshd for sshd-start using /etc/utopia/service.d/service_sshd.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[526]: service.info Registered sshd for sshd-stop using /etc/utopia/service.d/service_sshd.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[526]: service.info Registered sshd for sshd-restart using /etc/utopia/service.d/service_sshd.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[526]: service.info Registered sshd for bridge-status using /etc/utopia/service.d/service_sshd.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[526]: service.info Registered sshd for lan-status using /etc/utopia/service.d/service_sshd.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[526]: service.info Registered sshd for wan-status using /etc/utopia/service.d/service_sshd.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for routed-start using /etc/utopia/service.d/service_routed.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for routed-stop using /etc/utopia/service.d/service_routed.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for routed-restart using /etc/utopia/service.d/service_routed.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for wan-status using /etc/utopia/service.d/service_routed.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for lan-status using /etc/utopia/service.d/service_routed.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for ipv6_nameserver using /etc/utopia/service.d/service_routed.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for ipv6_prefix using /etc/utopia/service.d/service_routed.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for ripd-restart using /etc/utopia/service.d/service_routed.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for zebra-restart using /etc/utopia/service.d/service_routed.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[564]: service.info Registered routed for staticroute-restart using /etc/utopia/service.d/service_routed.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[578]: service.info Registered crond for crond-start using /etc/utopia/service.d/service_crond.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[578]: service.info Registered crond for crond-stop using /etc/utopia/service.d/service_crond.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[578]: service.info Registered crond for crond-restart using /etc/utopia/service.d/service_crond.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[578]: service.info Registered crond for ntpclient-status using /etc/utopia/service.d/service_crond.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[597]: service.info Registered cosa for cosa-start using /etc/utopia/service.d/service_cosa.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[597]: service.info Registered cosa for cosa-stop using /etc/utopia/service.d/service_cosa.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[597]: service.info Registered cosa for cosa-restart using /etc/utopia/service.d/service_cosa.sh -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[606]: 2017-12-05 22:01:58., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:01:58 RaspberryPi-Gateway UTOPIA[232]: 2017-12-05 22:01:58., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:01:58 RaspberryPi-Gateway systemd[1]: Starting RPC Bind Service... --- Subject: Unit rpcbind.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit rpcbind.service has begun starting up. -Dec 05 22:01:58 RaspberryPi-Gateway systemd[1]: Started RPC Bind Service. --- Subject: Unit rpcbind.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit rpcbind.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:58 RaspberryPi-Gateway PsmSsp[220]: eRT.com.cisco.spvtg.ccsp.psm try to check eRT.com.cisco.spvtg.ccsp.CR health for 1 times, health is 0 -Dec 05 22:01:58 RaspberryPi-Gateway PsmSsp[220]: eRT.com.cisco.spvtg.ccsp.CR is ready, eRT.com.cisco.spvtg.ccsp.psm continue -Dec 05 22:01:58 RaspberryPi-Gateway systemd[1]: Started PsmSsp service. --- Subject: Unit PsmSsp.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit PsmSsp.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:01:58 RaspberryPi-Gateway systemd[1]: Starting CcspPandMSsp service... --- Subject: Unit CcspPandMSsp.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspPandMSsp.service has begun starting up. -Dec 05 22:01:59 RaspberryPi-Gateway CcspPandMSsp[634]: Conf file /etc/debug.ini open success -Dec 05 22:01:59 RaspberryPi-Gateway CcspPandMSsp[634]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. -Dec 05 22:01:59 RaspberryPi-Gateway CcspPandMSsp[634]: eRT.com.cisco.spvtg.ccsp.pam start to check eRT.com.cisco.spvtg.ccsp.psm status -Dec 05 22:01:59 RaspberryPi-Gateway CcspPandMSsp[634]: eRT.com.cisco.spvtg.ccsp.psm is ready, eRT.com.cisco.spvtg.ccsp.pam continue -Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: Conf file /etc/debug.ini open success -Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. -Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: ****LOADING DM LIBRARY*************** -Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: THE LIB NAME =libtr181.so -Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: ****LOADING DM LIBRARY*************** -Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: PLUGIN libtr181.so LOADED SUCCESSFULLY -Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: -- CosaBackEndManagerCreate 194 -Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: PandM DM initialize... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDeviceInfoInitialize : bxfinitywifiEnable value is : 0 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::sw_1, value Interface1,1 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::sw_2, value Interface2,2 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::sw_3, value Interface3,3 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::sw_4, value Interface4,4 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::erouter0, value Interface5,5 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway kernel: smsc95xx 1-1.1:1.0 erouter0: renamed from eth0 -Dec 05 22:02:00 RaspberryPi-Gateway kernel[214]: [ 10.150305] smsc95xx 1-1.1:1.0 erouter0: renamed from eth0 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::lbr0, value Interface6,6 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 423 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 421 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 422 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 424 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 500 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 423 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 421 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 422 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 424 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 500 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway kernel: smsc95xx 1-1.1:1.0 erouter0: hardware isn't capable of remote wakeup -Dec 05 22:02:00 RaspberryPi-Gateway kernel: IPv6: ADDRCONF(NETDEV_UP): erouter0: link is not ready -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 423 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 421 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 422 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 424 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_GetIndexed: Failed on index 500 -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway kernel[214]: [ 10.336139] smsc95xx 1-1.1:1.0 erouter0: hardware isn't capable of remote wakeup -Dec 05 22:02:00 RaspberryPi-Gateway kernel[214]: [ 10.336490] IPv6: ADDRCONF(NETDEV_UP): erouter0: link is not ready -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[706]: crond.status starting crond service -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:00 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway sh[257]: Starting Agent Monitor Process.. -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 431 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 432 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 433 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 434 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 431 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 432 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 433 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 434 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 161 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 159 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 149 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 151 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 154 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 162 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 160 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 165 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 166 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 167 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 168 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 169 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 170 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 414 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 33 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 34 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 35 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 36 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 99 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: config.utapi s_sysevent_connect: open new sysevent fd 8 -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway CcspPandMSsp[634]: Error: argument "erouter" is wrong: table id value is invalid -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway CcspPandMSsp[634]: Cannot find device "brlan0" -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway CcspPandMSsp[634]: Error: argument "erouter" is wrong: table id value is invalid -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway CcspPandMSsp[634]: Cannot find device "wan0" -Dec 05 22:02:01 RaspberryPi-Gateway CcspPandMSsp[634]: Error: argument "erouter" is wrong: table id value is invalid -Dec 05 22:02:01 RaspberryPi-Gateway CcspPandMSsp[634]: Error: argument "erouter" is wrong: table id value is invalid -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:01., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:01 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:01 RaspberryPi-Gateway CcspPandMSsp[634]: [DM-Bridge] CosaDmlBrgInit -- in: 1512511321.807306 -Dec 05 22:02:01 RaspberryPi-Gateway kernel: uart-pl011 3f201000.uart: no DMA platform data -Dec 05 22:02:01 RaspberryPi-Gateway kernel[214]: [ 11.545077] uart-pl011 3f201000.uart: no DMA platform data -Dec 05 22:02:02 RaspberryPi-Gateway login[410]: pam_lastlog(login:session): file /var/log/lastlog created -Dec 05 22:02:02 RaspberryPi-Gateway login[408]: pam_lastlog(login:session): file /var/log/lastlog created -Dec 05 22:02:02 RaspberryPi-Gateway login[408]: pam_lastlog(login:session): file /var/log/lastlog is locked/write -Dec 05 22:02:02 RaspberryPi-Gateway login[410]: pam_unix(login:session): session opened for user root by (uid=0) -Dec 05 22:02:02 RaspberryPi-Gateway systemd[1]: Created slice User Slice of root. --- Subject: Unit user-0.slice has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit user-0.slice has finished starting up. --- --- The start-up result is done. -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: [DM-Bridge] CosaDmlBrgInit -- OUT: 1512511322.165173 -Dec 05 22:02:02 RaspberryPi-Gateway systemd[1]: Starting User Manager for UID 0... --- Subject: Unit user@0.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit user@0.service has begun starting up. -Dec 05 22:02:02 RaspberryPi-Gateway [758]: PAM unable to dlopen(/lib/security/pam_loginuid.so): Error loading shared library /lib/security/pam_loginuid.so: No such file or directory -Dec 05 22:02:02 RaspberryPi-Gateway [758]: PAM adding faulty module: /lib/security/pam_loginuid.so -Dec 05 22:02:02 RaspberryPi-Gateway [758]: pam_unix(systemd-user:session): session opened for user root by (uid=0) -Dec 05 22:02:02 RaspberryPi-Gateway systemd[758]: user@0.service: Failed at step PAM spawning /lib/systemd/systemd: Operation not permitted --- Subject: Process /lib/systemd/systemd could not be executed --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- The process /lib/systemd/systemd could not be executed and failed. --- --- The error number returned by this process is 1. -Dec 05 22:02:02 RaspberryPi-Gateway snmpd[224]: Name of an interface changed. Such interfaces will keep its old name in IF-MIB. -Dec 05 22:02:02 RaspberryPi-Gateway kernel: gre: GRE over IPv4 demultiplexor driver -Dec 05 22:02:02 RaspberryPi-Gateway kernel[214]: [ 11.837770] gre: GRE over IPv4 demultiplexor driver -Dec 05 22:02:02 RaspberryPi-Gateway systemd-logind[245]: New session c1 of user root. --- Subject: A new session c1 has been created for user root --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat --- --- A new session with the ID c1 has been created for the user root. --- --- The leading process of the session is 410. -Dec 05 22:02:02 RaspberryPi-Gateway kernel: ip_gre: GRE over IPv4 tunneling driver -Dec 05 22:02:02 RaspberryPi-Gateway kernel[214]: [ 11.846162] ip_gre: GRE over IPv4 tunneling driver -Dec 05 22:02:02 RaspberryPi-Gateway systemd[1]: Started User Manager for UID 0. --- Subject: Unit user@0.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit user@0.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:02:02 RaspberryPi-Gateway systemd[1]: Started Session c1 of user root. --- Subject: Unit session-c1.scope has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit session-c1.scope has finished starting up. --- --- The start-up result is done. -Dec 05 22:02:02 RaspberryPi-Gateway login[782]: ROOT LOGIN on '/dev/ttyAMA0' -Dec 05 22:02:02 RaspberryPi-Gateway kernel: IPv6: ADDRCONF(NETDEV_CHANGE): erouter0: link becomes ready -Dec 05 22:02:02 RaspberryPi-Gateway kernel: smsc95xx 1-1.1:1.0 erouter0: link up, 100Mbps, full-duplex, lpa 0xC1E1 -Dec 05 22:02:02 RaspberryPi-Gateway kernel[214]: [ 11.962773] IPv6: ADDRCONF(NETDEV_CHANGE): erouter0: link becomes ready -Dec 05 22:02:02 RaspberryPi-Gateway kernel[214]: [ 11.963809] smsc95xx 1-1.1:1.0 erouter0: link up, 100Mbps, full-duplex, lpa 0xC1E1 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 106 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 99 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 100 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 101 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 102 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 103 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 109 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key PPP_Interface_tr_alias, value Interface1 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_WriteLock: Acquring write lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 108 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: sh: avahi-daemon: command not found -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: sh: avahi-autoipd: command not found -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key dhcpv6s00::serverenable, value 1 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: ParseZebraRaConf: fail to open file /etc/zebra.conf -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 4 -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 8 -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 9 -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 1 -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 7 -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 6 -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 5 -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 3 -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: 2 -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: **************** sysevent set pnm-status up -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 118 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 119 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: UTC is not enabled ************* -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDmlTimeGetCfg: UTC Enable file not exists -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 120 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 121 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 122 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 123 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 124 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 72 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 73 -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: vsystem: ps | grep syslogd | grep -v grep >/dev/null -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: load_ipv6rd_conf: no 6RD info in config file -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 82 -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDmlRLog_Init: Nothing need to do ! -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDmlRLog_GetConf: get config success ! -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDml_GreInit:387> sysevent_open success -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDml_GreInit:403> Init Hotspot GRE Done -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: -- CosaBackEndManagerInitialize 330 CosaGreTunnelCreate -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: -- CosaGreTunnelCreate CosaGreTunnelInitialize >> -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDml_GreTunnelInit:433> sysevent_open success -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDml_GreTunnelInit:449> Init Hotspot GRE Done -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[867]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: -- CosaGreTunnelCreate CosaGreTunnelInitialize << -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDml_HotspotInit:323> Init Hotspot Done -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[929]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[927]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[932]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway CcspPandMSsp[634]: PandM DM initialization done! -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:02., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.syscfg commit to store -Dec 05 22:02:02 RaspberryPi-Gateway UTOPIA[637]: system.syscfg commit to store -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[946]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[957]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[960]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[966]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway login[408]: pam_unix(login:session): session opened for user root by (uid=0) -Dec 05 22:02:03 RaspberryPi-Gateway systemd-logind[245]: New session c2 of user root. --- Subject: A new session c2 has been created for user root --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat --- --- A new session with the ID c2 has been created for the user root. --- --- The leading process of the session is 408. -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[977]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[981]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway systemd[1]: Started Session c2 of user root. --- Subject: Unit session-c2.scope has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit session-c2.scope has finished starting up. --- --- The start-up result is done. -Dec 05 22:02:03 RaspberryPi-Gateway login[987]: ROOT LOGIN on '/dev/ttyS0' -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[989]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[991]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 106 -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 99 -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 100 -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 101 -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 102 -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 103 -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 109 -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 108 -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: Error: argument "erouter" is wrong: table id value is invalid -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: Cannot find device "brlan0" -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: Error: argument "erouter" is wrong: table id value is invalid -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: Cannot find device "wan0" -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: Error: argument "erouter" is wrong: table id value is invalid -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: Error: argument "erouter" is wrong: table id value is invalid -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1071]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1071]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1071]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1071]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1071]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1071]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1078]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1078]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1078]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: fe80::/64 proto kernel metric 256 pref medium -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1078]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1078]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key tr_routing_v6entry.fe80::/64_*_erouter0.instance, value 1 -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key tr_routing_v6entry.fe80::/64_*_erouter0.alias, value IPv6Forwarding1 -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: config.utctx UtopiaTransact_Set: key tr_routing_v6entry.fe80::/64_*_erouter0.enabled, value 1 -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 414 -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 33 -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 34 -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 35 -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 36 -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Get: Failed on index 99 -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1104]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway systemd[1]: Started CcspPandMSsp service. --- Subject: Unit CcspPandMSsp.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspPandMSsp.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: Entering P&M loop -Dec 05 22:02:03 RaspberryPi-Gateway systemd[1]: Starting CcspTandDSsp service... --- Subject: Unit CcspTandDSsp.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspTandDSsp.service has begun starting up. -Dec 05 22:02:03 RaspberryPi-Gateway systemd[1]: Starting Check WIFI support on RaspberryPi Device... --- Subject: Unit checkrpiwifisupport.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit checkrpiwifisupport.service has begun starting up. -Dec 05 22:02:03 RaspberryPi-Gateway sh[1163]: Wifi (single band) driver is initialized -Dec 05 22:02:03 RaspberryPi-Gateway sh[1163]: checking for dual band support:1 -Dec 05 22:02:03 RaspberryPi-Gateway systemd[1]: Started CcspTandDSsp service. --- Subject: Unit CcspTandDSsp.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspTandDSsp.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1180]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:03 RaspberryPi-Gateway sh[1163]: wlan1 No such device -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1207]: 2017-12-05 22:02:03., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:03 RaspberryPi-Gateway UTOPIA[1226]: dhcpv6c.status DHCPv6 Client is not enabled -Dec 05 22:02:03 RaspberryPi-Gateway CcspPandMSsp[634]: killall: dibbler-client: no process killed -Dec 05 22:02:04 RaspberryPi-Gateway kernel: bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this. -Dec 05 22:02:04 RaspberryPi-Gateway kernel[214]: [ 13.719436] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this. -Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1288]: 2017-12-05 22:02:04., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1289]: 2017-12-05 22:02:04., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:04 RaspberryPi-Gateway kernel: device eth1 entered promiscuous mode -Dec 05 22:02:04 RaspberryPi-Gateway kernel: cdc_ether 1-1.5:2.0 eth1: kevent 12 may have been dropped -Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1291]: 2017-12-05 22:02:04., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:04 RaspberryPi-Gateway kernel[214]: [ 13.771421] device eth1 entered promiscuous mode -Dec 05 22:02:04 RaspberryPi-Gateway kernel[214]: [ 13.771488] cdc_ether 1-1.5:2.0 eth1: kevent 12 may have been dropped -Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1296]: 2017-12-05 22:02:04., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:04 RaspberryPi-Gateway kernel: cdc_ether 1-1.5:2.0 eth1: kevent 11 may have been dropped -Dec 05 22:02:04 RaspberryPi-Gateway kernel[214]: [ 13.779932] cdc_ether 1-1.5:2.0 eth1: kevent 11 may have been dropped -Dec 05 22:02:04 RaspberryPi-Gateway kernel: brlan0: port 1(eth1) entered forwarding state -Dec 05 22:02:04 RaspberryPi-Gateway kernel: brlan0: port 1(eth1) entered forwarding state -Dec 05 22:02:04 RaspberryPi-Gateway kernel[214]: [ 13.788076] brlan0: port 1(eth1) entered forwarding state -Dec 05 22:02:04 RaspberryPi-Gateway kernel[214]: [ 13.788138] brlan0: port 1(eth1) entered forwarding state -Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1377]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1377]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1377]: 2017-12-05 22:02:04., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1377]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1377]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1377]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1490]: 2017-12-05 22:02:04., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:04 RaspberryPi-Gateway CcspTandDSsp[1138]: Conf file /etc/debug.ini open success -Dec 05 22:02:04 RaspberryPi-Gateway sh[1163]: checking for dual band support:2 -Dec 05 22:02:04 RaspberryPi-Gateway sh[1163]: wlan1 No such device -Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1592]: 2017-12-05 22:02:04., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:04 RaspberryPi-Gateway UTOPIA[1619]: 2017-12-05 22:02:04., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1681]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1684]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway CcspPandMSsp[634]: CosaDmlDHCPv6sTriggerRestart -- 3063 !!!!!!!!!!!!!!!!!! -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1721]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1723]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1767]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1768]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1783]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1799]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1798]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1801]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1817]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1827]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1845]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1853]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1867]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1868]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1869]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1869]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1869]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1869]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1869]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1869]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1880]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1912]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1914]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1918]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1923]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1926]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1930]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1934]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1936]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1936]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1936]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1936]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1936]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1936]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1936]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1936]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:05 RaspberryPi-Gateway sh[1163]: checking for dual band support:3 -Dec 05 22:02:05 RaspberryPi-Gateway sh[1163]: wlan1 No such device -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[1995]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[2002]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:05 RaspberryPi-Gateway CcspPandMSsp[634]: killall: dibbler-client: no process killed -Dec 05 22:02:05 RaspberryPi-Gateway UTOPIA[2005]: 2017-12-05 22:02:05., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2001]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2007]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2006]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2020]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2028]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2067]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2068]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2073]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2078]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:06 RaspberryPi-Gateway systemd[1]: Started TDK Test Agent Start. --- Subject: Unit tdk.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit tdk.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:02:06 RaspberryPi-Gateway systemd[1]: Reached target Multi-User System. --- Subject: Unit multi-user.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit multi-user.target has finished starting up. --- --- The start-up result is done. -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2088]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2105]: ddns.status (2011) wan state is down. No ddns update possible -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2113]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2139]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2141]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2196]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway CcspPandMSsp[634]: sh: /etc/dibbler/dibbler-init.sh: No such file or directory -Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq[2207]: started, version 2.76 cachesize 150 -Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq[2207]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect no-inotify -Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq-dhcp[2207]: DHCP, IP range 10.0.0.2 -- 10.0.0.253, lease time 7d -Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq[2207]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# -Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq[2207]: reading /etc/resolv.conf -Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq[2207]: using nameserver 8.8.8.8#53 -Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq[2207]: using nameserver 8.8.4.4#53 -Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq[2207]: read /etc/hosts - 9 addresses -Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq-dhcp[2207]: read /etc/dhcp_static_hosts -Dec 05 22:02:06 RaspberryPi-Gateway dnsmasq-dhcp[2207]: read /var/dhcp_options -Dec 05 22:02:06 RaspberryPi-Gateway CcspPandMSsp[634]: | Dibbler - a portable DHCPv6, version 1.0.1 (CLIENT, Linux port) -Dec 05 22:02:06 RaspberryPi-Gateway CcspPandMSsp[634]: | Authors : Tomasz Mrugalski,Marek Senderski -Dec 05 22:02:06 RaspberryPi-Gateway CcspPandMSsp[634]: | Licence : GNU GPL v2 only. Developed at Gdansk University of Technology. -Dec 05 22:02:06 RaspberryPi-Gateway CcspPandMSsp[634]: | Homepage: http://klub.com.pl/dhcpv6/ -Dec 05 22:02:06 RaspberryPi-Gateway CcspPandMSsp[634]: Starting daemon... -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2250]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2253]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2255]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2257]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2259]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2261]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2265]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2267]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway UTOPIA[2270]: 2017-12-05 22:02:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:06 RaspberryPi-Gateway sh[1163]: checking for dual band support:4 -Dec 05 22:02:06 RaspberryPi-Gateway sh[1163]: wlan1 No such device -Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2313]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2313]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2313]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2313]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2313]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2313]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2313]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2313]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2320]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2323]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2325]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2326]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2332]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2333]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2334]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2353]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:07 RaspberryPi-Gateway UTOPIA[2369]: 2017-12-05 22:02:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:07 RaspberryPi-Gateway dnsmasq[2207]: read /etc/hosts - 9 addresses -Dec 05 22:02:07 RaspberryPi-Gateway dnsmasq-dhcp[2207]: read /etc/dhcp_static_hosts -Dec 05 22:02:07 RaspberryPi-Gateway dnsmasq-dhcp[2207]: read /var/dhcp_options -Dec 05 22:02:23 RaspberryPi-Gateway systemd-timesyncd[183]: Synchronized to time server 216.239.35.8:123 (time3.google.com). -Dec 05 22:02:23 RaspberryPi-Gateway systemd[1]: Time has been changed --- Subject: Time change --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- The system clock has been changed to REALTIME microseconds after January 1st, 1970. -Dec 05 22:02:23 RaspberryPi-Gateway sh[1163]: checking for dual band support:5 -Dec 05 22:02:23 RaspberryPi-Gateway sh[1163]: wlan1 No such device -Dec 05 22:02:25 RaspberryPi-Gateway systemd[1]: Started Check WIFI support on RaspberryPi Device. --- Subject: Unit checkrpiwifisupport.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit checkrpiwifisupport.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:02:25 RaspberryPi-Gateway systemd[1]: Startup finished in 2.134s (kernel) + 17.468s (userspace) = 19.603s. --- Subject: System start-up is now complete --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- All system services necessary queued for starting at boot have been --- successfully started. Note that this does not mean that the machine is --- now idle as services might still be busy with completing start-up. --- --- Kernel start-up required 2134706 microseconds. --- --- Initial RAM disk start-up required INITRD_USEC microseconds. --- --- Userspace start-up required 17468479 microseconds. -Dec 05 22:02:25 RaspberryPi-Gateway systemd[1]: Starting Cosa service... --- Subject: Unit ccspwifiagent.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit ccspwifiagent.service has begun starting up. -Dec 05 22:02:25 RaspberryPi-Gateway CcspWifiSsp[2402]: eRT.com.cisco.spvtg.ccsp.wifi start to check eRT.com.cisco.spvtg.ccsp.psm status -Dec 05 22:02:25 RaspberryPi-Gateway CcspWifiSsp[2402]: eRT.com.cisco.spvtg.ccsp.psm is ready, eRT.com.cisco.spvtg.ccsp.wifi continue -Dec 05 22:02:25 RaspberryPi-Gateway systemd[1]: Started Cosa service. --- Subject: Unit ccspwifiagent.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit ccspwifiagent.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: Conf file /etc/debug.ini open success -Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. -Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: ****LOADING DM LIBRARY*************** -Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: THE LIB NAME =libwifi.so -Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: ****LOADING DM LIBRARY*************** -Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: PLUGIN libwifi.so LOADED SUCCESSFULLY -Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiInit -Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetFactoryResetPsmData g_Subsytem = eRT. -Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetFactoryResetPsmData eRT.com.cisco.spvtg.ccsp.tr181pa.Device.WiFi.FactoryReset = 0 -Dec 05 22:02:27 RaspberryPi-Gateway UTOPIA[2412]: 2017-12-05 22:02:27., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: gre0 no wireless extensions. -Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: brlan0 no wireless extensions. -Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: erouter0 no wireless extensions. -Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: gretap0 no wireless extensions. -Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: lo no wireless extensions. -Dec 05 22:02:27 RaspberryPi-Gateway CcspWifiSsp[2402]: eth1 no wireless extensions. -Dec 05 22:02:27 RaspberryPi-Gateway systemd[1]: Configuration file /lib/systemd/system/hostapd.service is marked executable. Please remove executable permission bits. Proceeding anyway. -Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: Regulatory domain changed to country: US -Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: DFS Master region: FCC -Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) -Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A) -Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (N/A) -Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (0 s) -Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2300 mBm), (0 s) -Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A) -Dec 05 22:02:27 RaspberryPi-Gateway kernel: cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A) -Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.954900] cfg80211: Regulatory domain changed to country: US -Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.954924] cfg80211: DFS Master region: FCC -Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.954933] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) -Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.954947] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A) -Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.954962] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (N/A) -Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.954976] cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (0 s) -Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.954989] cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2300 mBm), (0 s) -Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.955011] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A) -Dec 05 22:02:27 RaspberryPi-Gateway kernel[214]: [ 20.955023] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A) -Dec 05 22:02:27 RaspberryPi-Gateway systemd[1]: Starting Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator... --- Subject: Unit hostapd.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit hostapd.service has begun starting up. -Dec 05 22:02:27 RaspberryPi-Gateway sh[2424]: killall: hostapd: no process killed -Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: wlan1 No such device -Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: Configuration file: /nvram/hostapd0.conf -Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: Failed to create interface mon.wlan0: -95 (Not supported) -Dec 05 22:02:28 RaspberryPi-Gateway kernel: brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists -Dec 05 22:02:28 RaspberryPi-Gateway kernel: brcmfmac: brcmf_add_if: ignore IF event -Dec 05 22:02:28 RaspberryPi-Gateway kernel[214]: [ 22.132470] brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists -Dec 05 22:02:28 RaspberryPi-Gateway kernel[214]: [ 22.139151] brcmfmac: brcmf_add_if: ignore IF event -Dec 05 22:02:28 RaspberryPi-Gateway kernel: IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready -Dec 05 22:02:28 RaspberryPi-Gateway kernel[214]: [ 22.149470] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready -Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: wlan0: Could not connect to kernel driver -Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: Using interface wlan0 with hwaddr b8:27:eb:54:3e:80 and ssid "RPi3_RDKB-AP0" -Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: random: Only 15/20 bytes of strong random data available from /dev/random -Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: random: Not enough entropy pool available for secure operations -Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: WPA: Not enough entropy in random pool for secure operations - update keys later when the first station connects -Dec 05 22:02:28 RaspberryPi-Gateway kernel: brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists -Dec 05 22:02:28 RaspberryPi-Gateway kernel: brcmfmac: brcmf_add_if: ignore IF event -Dec 05 22:02:28 RaspberryPi-Gateway kernel[214]: [ 22.335822] brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists -Dec 05 22:02:28 RaspberryPi-Gateway kernel[214]: [ 22.342474] brcmfmac: brcmf_add_if: ignore IF event -Dec 05 22:02:28 RaspberryPi-Gateway dnsmasq[2207]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# -Dec 05 22:02:28 RaspberryPi-Gateway dnsmasq[2207]: reading /etc/resolv.conf -Dec 05 22:02:28 RaspberryPi-Gateway dnsmasq[2207]: using nameserver 8.8.8.8#53 -Dec 05 22:02:28 RaspberryPi-Gateway dnsmasq[2207]: using nameserver 8.8.4.4#53 -Dec 05 22:02:28 RaspberryPi-Gateway kernel: IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready -Dec 05 22:02:28 RaspberryPi-Gateway kernel[214]: [ 22.409899] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready -Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: wlan0: interface state UNINITIALIZED->ENABLED -Dec 05 22:02:28 RaspberryPi-Gateway sh[2424]: wlan0: AP-ENABLED -Dec 05 22:02:28 RaspberryPi-Gateway systemd[1]: Started Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator. --- Subject: Unit hostapd.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit hostapd.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: [prepare_hostapd_conf]: Default files /usr/ccsp/wifi/hostapd0.conf and /usr/ccsp/wifi/hostapd1.conf presents!! -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: [prepare_hostapd_conf]: /nvram/hostapd0.conf file allready exits!! -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: [prepare_hostapd_conf]: /nvram/hostapd1.conf file allready exits!! -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiCheckWmmParams -Dec 05 22:02:30 RaspberryPi-Gateway kernel: device wlan0 entered promiscuous mode -Dec 05 22:02:30 RaspberryPi-Gateway kernel: brlan0: port 2(wlan0) entered forwarding state -Dec 05 22:02:30 RaspberryPi-Gateway kernel: brlan0: port 2(wlan0) entered forwarding state -Dec 05 22:02:30 RaspberryPi-Gateway kernel[214]: [ 24.431026] device wlan0 entered promiscuous mode -Dec 05 22:02:30 RaspberryPi-Gateway kernel[214]: [ 24.431119] brlan0: port 2(wlan0) entered forwarding state -Dec 05 22:02:30 RaspberryPi-Gateway kernel[214]: [ 24.431155] brlan0: port 2(wlan0) entered forwarding state -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiCheckWmmParams: Resetting Wmm parameters -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetResetHotSpotRequired g_Subsytem = eRT. -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetResetHotSpotRequired: found BssHotSpot value = 0 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetResetHotSpotRequired: found BssHotSpot value = 0 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0CosaDmlWiFiInit: radioActive wifi0 = TRUE -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiInit: radioActive wifi1 = FALSE -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiInit: noEnableVaps = FALSE -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData g_Subsytem = eRT. -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Got 9 Bridge instances -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 0 is Bridge instances 4 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.4.Members.WiFi returned ath5 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.4.Vid returned 103 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.4.l3net returned (null) -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath5 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 1 is Bridge instances 8 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.8.Members.WiFi returned ath9 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.8.Vid returned 105 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.8.l3net returned (null) -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath9 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 2 is Bridge instances 9 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 3 is Bridge instances 1 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.1.Members.WiFi returned ath0 ath1 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.1.Vid returned 100 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.1.l3net returned 4 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l3net.4.V4Addr returned 10.0.0.254 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l3net.4.V4SubnetMask returned 255.255.255.0 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath0 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath1 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 4 is Bridge instances 7 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.7.Members.WiFi returned ath8 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.7.Vid returned 104 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.7.l3net returned (null) -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath8 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 5 is Bridge instances 6 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.6.Members.WiFi returned ath6 ath7 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.6.Vid returned 106 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.6.l3net returned (null) -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath6 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath7 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 6 is Bridge instances 5 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.5.Members.WiFi returned ath14 ath15 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.5.Vid returned 107 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.5.l3net returned (null) -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath14 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath15 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 7 is Bridge instances 3 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.3.Members.WiFi returned ath4 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.3.Vid returned 102 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.3.l3net returned (null) -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath4 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: Index 8 is Bridge instances 2 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.2.Members.WiFi returned ath2 ath3 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.2.Vid returned 101 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.2.l3net returned (null) -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath2 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetBridgePsmData: ssidName = ath3 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetResetRequired g_Subsytem = eRT. -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetResetRequired eRT.com.cisco.spvtg.ccsp.Device.WiFi.VlanCfgVerion = 2 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiInit: Cosa_Init returned True -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: -- CosaDmlWiFi_startDCSScanThread 14633 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFi_startDCSScanThread -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiCheckPreferPrivateFeature -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiCheckPreferPrivateFeature returning -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioGetEntry -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetRadioPsmData g_Subsytem = eRT. -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: Error for wireless request "Set Fragmentation Threshold" (8B24) : -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: SET failed on device ath0 ; No such device. -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: Error for wireless request "Set RTS Threshold" (8B22) : -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: SET failed on device ath0 ; No such device. -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is hw_mode -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string=g -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: G -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: Returning from getRadioStandard -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetRadioPsmData: Found TransmitPower in PSM 100 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioSetTransmitPowerPercent: enter wlanIndex 0 transmitPowerPercent 100 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: Error for wireless request "Set Tx Power" (8B26) : -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: SET failed on device ath0 ; No such device. -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: -- CosaDmlWiFi_setDCSChanPool 14708 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFi_setDCSChanPool -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: -- CosaDmlWiFi_setDCSScan 14651 -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFi_setDCSScan -Dec 05 22:02:30 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioGetCfg: LastChange 1512511350 -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0wlan0 -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is hw_mode -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string=g -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: G -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Returning from getRadioStandard -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is channel -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: *output_long=6 output from hal=06 -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is vht_oper_chwidth -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioSetTransmitPowerPercent: enter wlanIndex 0 transmitPowerPercent 100 -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Error for wireless request "Set Tx Power" (8B26) : -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: SET failed on device ath0 ; No such device. -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: ath0 No such device -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is basic_rates -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is hw_mode -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is supported_rates -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiRadioGetSinfo -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: ath0 No such device -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioGetSinfo: wifi_getRadioMaxBitRate returned -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: wlan0AP Index for band 0 is 0CosaDmlWiFiRadioGetEntry -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetRadioPsmData g_Subsytem = eRT. -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Error for wireless request "Set RTS Threshold" (8B22) : -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: SET failed on device ath1 ; No such device. -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is hw_mode -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string=a -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Invalid Mode -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Returning from getRadioStandard -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetRadioPsmData: Found TransmitPower in PSM 100 -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioSetTransmitPowerPercent: enter wlanIndex 1 transmitPowerPercent 100 -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Error for wireless request "Set Tx Power" (8B26) : -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: SET failed on device ath1 ; No such device. -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: -- CosaDmlWiFi_setDCSChanPool 14708 -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFi_setDCSChanPool -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: -- CosaDmlWiFi_setDCSScan 14651 -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFi_setDCSScan -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioGetCfg: LastChange 1512511351 -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: wlan1 no frequency information. -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1wlan1 -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is hw_mode -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string=a -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Invalid Mode -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Returning from getRadioStandard -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is channel -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: *output_long=36 output from hal=36 -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is vht_oper_chwidth -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioSetTransmitPowerPercent: enter wlanIndex 1 transmitPowerPercent 100 -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Error for wireless request "Set Tx Power" (8B26) : -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: SET failed on device ath1 ; No such device. -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: ath1 No such device -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is basic_rates -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is hw_mode -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is supported_rates -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiRadioGetSinfo -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: ath1 No such device -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiRadioGetSinfo: wifi_getRadioMaxBitRate returned -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: wlan1 no frequency information. -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: wlan1AP Index for band 1 is 1CosaDmlWiFiSsidGetEntry ulIndex = 0 -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 0 -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0 -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : RPi3_RDKB-AP0getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.SSID -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: gre0 no wireless extensions. -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: brlan0 no wireless extensions. -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: erouter0 no wireless extensions. -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: gretap0 no wireless extensions. -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: lo no wireless extensions. -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: eth1 no wireless extensions. -Dec 05 22:02:31 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0AP Index for band 0 is 0AP Index for band 0 is 0CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 1 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: sh: -c: line 2: syntax error near unexpected token `|' -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: sh: -c: line 2: ` | grep HWaddr' -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd0.conf -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wlan0 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: ctrl_interface=/var/run/hostapd0 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: B8:27:EB:54:3E:80 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 1 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 1 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : RPi3_RDKB-AP1getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.SSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 2 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: ifconfig: wlan1: error fetching interface information: Device not found -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: sh: -c: line 2: syntax error near unexpected token `|' -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: sh: -c: line 2: ` | grep HWaddr' -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd1.conf -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wlan1 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: ctrl_interface=/var/run/hostapd1 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 2 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 2 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd2.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.3.SSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 3 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd2.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd2.conf -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 3 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 3 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd3.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.4.SSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 4 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd3.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd3.conf -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 4 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 4 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd4.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.5.SSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 5 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd4.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd4.conf -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 5 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 5 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd5.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.6.SSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 6 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd5.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd5.conf -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 6 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 6 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd6.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.7.SSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 7 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd6.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd6.conf -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 7 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 7 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd7.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.8.SSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 8 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd7.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd7.conf -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 8 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 8 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd8.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.9.SSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 9 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd8.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd8.conf -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 9 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 9 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd9.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.10.SSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 10 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd9.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd9.conf -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 10 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 10 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd10.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.11.SSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 11 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd10.conf: No such file or directory -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd10.conf -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 11 -Dec 05 22:02:32 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 11 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd11.conf: No such file or directory -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.12.SSID -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 12 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd11.conf: No such file or directory -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd11.conf -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 12 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 12 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd12.conf: No such file or directory -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.13.SSID -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 13 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd12.conf: No such file or directory -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd12.conf -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 13 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 13 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd13.conf: No such file or directory -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.14.SSID -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 14 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd13.conf: No such file or directory -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd13.conf -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 14 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 14 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd14.conf: No such file or directory -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.15.SSID -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 15 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd14.conf: No such file or directory -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd14.conf -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiSsidGetEntry ulIndex = 15 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 15 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd15.conf: No such file or directory -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.16.SSID -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 16 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd15.conf: No such file or directory -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getBaseBSSID -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'interface=' /nvram/hostapd15.conf -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath0 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath0 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0AP Index for band 0 is 0CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 0 ulInstance 1 enabled = TRUE -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 0, 0 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath0 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0CosaDmlWiFiApSecGetEntry pSsid = ath0 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath0 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE0' /etc/sec_file.txt -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string=11i -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 0 return code = 0 for auth mode = SharedAuthentication -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string=rdk@1234 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE0' /etc/sec_file.txt -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is rsn_pairwise -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=TKIP CCMPgetDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.Passphrase -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 1 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 1 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 1 count = 0 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath1 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath1 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 1 ulInstance 2 enabled = FALSE -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 1, 0 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath1 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath1 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath1 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE1' /etc/sec_file.txt -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string=11i -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 1 return code = 0 for auth mode = SharedAuthentication -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string=rdk@1234 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE1' /etc/sec_file.txt -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is rsn_pairwise -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=TKIP CCMPgetDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.Passphrase -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 2 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 2 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 2 count = 0 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath2 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath2 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 2 ulInstance 3 enabled = FALSE -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 2, 0 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath2 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath2 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath2 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE2' /etc/sec_file.txt -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 2 return code = 0 for auth mode = SharedAuthentication -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd2.conf: No such file or directory -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd2.conf: No such file or directory -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE2' /etc/sec_file.txt -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.3.Passphrase -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 3 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 3 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 3 count = 0 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath3 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath3 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 3 ulInstance 4 enabled = FALSE -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 3, 0 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath3 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath3 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath3 -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE3' /etc/sec_file.txt -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 3 return code = 0 for auth mode = SharedAuthentication -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd3.conf: No such file or directory -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd3.conf: No such file or directory -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE3' /etc/sec_file.txt -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.4.Passphrase -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg -Dec 05 22:02:33 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 4 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 4 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 4 count = 0 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath4 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath4 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 4 ulInstance 5 enabled = FALSE -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 1 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 4, 1 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath4 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath4 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath4 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE4' /etc/sec_file.txt -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 4 return code = 0 for auth mode = SharedAuthentication -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd4.conf: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd4.conf: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE4' /etc/sec_file.txt -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.5.Passphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 5 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 5 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 5 count = 0 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath5 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath5 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 5 ulInstance 6 enabled = FALSE -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 1 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 5, 1 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath5 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath5 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath5 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE5' /etc/sec_file.txt -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 5 return code = 0 for auth mode = SharedAuthentication -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd5.conf: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd5.conf: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE5' /etc/sec_file.txt -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.6.Passphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 6 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 6 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 6 count = 0 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath6 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath6 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 6 ulInstance 7 enabled = FALSE -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 6, 0 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath6 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath6 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath6 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE6' /etc/sec_file.txt -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 6 return code = 0 for auth mode = SharedAuthentication -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd6.conf: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd6.conf: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE6' /etc/sec_file.txt -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.7.Passphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 7 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 7 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 7 count = 0 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath7 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath7 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 7 ulInstance 8 enabled = FALSE -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 7, 0 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath7 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath7 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath7 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE7' /etc/sec_file.txt -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 7 return code = 0 for auth mode = SharedAuthentication -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd7.conf: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd7.conf: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE7' /etc/sec_file.txt -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.8.Passphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 8 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 8 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 8 count = 0 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath8 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath8 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 8 ulInstance 9 enabled = FALSE -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 8, 1 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath8 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath8 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath8 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE8' /etc/sec_file.txt -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 8 return code = 0 for auth mode = SharedAuthentication -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd8.conf: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd8.conf: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE8' /etc/sec_file.txt -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.9.Passphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 9 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 9 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 9 count = 0 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath9 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath9 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 9 ulInstance 10 enabled = FALSE -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 9, 1 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath9 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath9 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath9 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE9' /etc/sec_file.txt -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 9 return code = 0 for auth mode = SharedAuthentication -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd9.conf: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd9.conf: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE9' /etc/sec_file.txt -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.10.Passphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 10 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 10 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 10 count = 0 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath10 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath10 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 10 ulInstance 11 enabled = FALSE -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 10, 0 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath10 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath10 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath10 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE10' /etc/sec_file.txt -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 10 return code = 0 for auth mode = SharedAuthentication -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd10.conf: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd10.conf: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE10' /etc/sec_file.txt -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.11.Passphrase -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 11 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 11 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 11 count = 0 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath11 -Dec 05 22:02:34 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath11 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 11 ulInstance 12 enabled = FALSE -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 11, 0 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath11 -Dec 05 22:02:35 RaspberryPi-Gateway kernel: brlan0: port 1(eth1) entered forwarding state -Dec 05 22:02:35 RaspberryPi-Gateway kernel[214]: [ 28.813988] brlan0: port 1(eth1) entered forwarding state -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath11 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath11 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE11' /etc/sec_file.txt -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 11 return code = 0 for auth mode = SharedAuthentication -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd11.conf: No such file or directory -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd11.conf: No such file or directory -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE11' /etc/sec_file.txt -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.12.Passphrase -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 12 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 12 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 12 count = 0 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath12 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath12 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 12 ulInstance 13 enabled = FALSE -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 12, 0 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath12 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath12 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath12 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE12' /etc/sec_file.txt -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 12 return code = 0 for auth mode = SharedAuthentication -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd12.conf: No such file or directory -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd12.conf: No such file or directory -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE12' /etc/sec_file.txt -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.13.Passphrase -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 13 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 13 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 13 count = 0 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath13 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath13 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 13 ulInstance 14 enabled = FALSE -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 13, 0 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath13 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath13 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath13 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE13' /etc/sec_file.txt -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 13 return code = 0 for auth mode = SharedAuthentication -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd13.conf: No such file or directory -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd13.conf: No such file or directory -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE13' /etc/sec_file.txt -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.14.Passphrase -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 14 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 14 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 14 count = 0 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath14 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath14 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 14 ulInstance 15 enabled = FALSE -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 14, 0 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath14 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath14 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath14 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE14' /etc/sec_file.txt -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 14 return code = 0 for auth mode = SharedAuthentication -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd14.conf: No such file or directory -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd14.conf: No such file or directory -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE14' /etc/sec_file.txt -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.15.Passphrase -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 15 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 15 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 15 count = 0 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetEntry pSsid = ath15 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetCfg pSsid = ath15 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 15 ulInstance 16 enabled = FALSE -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 15, 0 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApGetInfo pSsid = ath15 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath15 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSecGetCfg pSsid = ath15 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE15' /etc/sec_file.txt -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBeaconType: output_string= -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApBasicAuthenticationMode wanIndex = 15 return code = 0 for auth mode = SharedAuthentication -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd15.conf: No such file or directory -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: grep: /nvram/hostapd15.conf: No such file or directory -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string= -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is beaconType -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: cmd=grep 'AP_SECMODE15' /etc/sec_file.txt -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_pairwise -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.16.Passphrase -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetCfg -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApWpsGetInfo -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiApSetMFQueue apIns = 16 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 16 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlMacFilt_GetNumberOfEntries apIns = 16 count = 0 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: ---- CosaWifiRegGetATMInfo ???load from PSM -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlWiFiNeighbouringGetEntry -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: CosaDmlGetNeighbouringDiagnosticEnable -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Entry -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Entry 0 -Dec 05 22:02:35 RaspberryPi-Gateway CcspWifiSsp[2402]: Exit -Dec 05 22:02:36 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1Entering Wifi loop -Dec 05 22:02:36 RaspberryPi-Gateway systemd[1]: Starting CcspTr069PaSsp service... --- Subject: Unit CcspTr069PaSsp.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspTr069PaSsp.service has begun starting up. -Dec 05 22:02:36 RaspberryPi-Gateway systemd[1]: Starting CcspLMLite service... --- Subject: Unit CcspLMLite.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspLMLite.service has begun starting up. -Dec 05 22:02:36 RaspberryPi-Gateway CcspTr069PaSsp[3488]: Conf file /etc/debug.ini open success -Dec 05 22:02:36 RaspberryPi-Gateway systemd[1]: Started CcspTr069PaSsp service. --- Subject: Unit CcspTr069PaSsp.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspTr069PaSsp.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:02:36 RaspberryPi-Gateway CcspLMLite[3489]: eRT.com.cisco.spvtg.ccsp.lmlite start to check eRT.com.cisco.spvtg.ccsp.psm status -Dec 05 22:02:36 RaspberryPi-Gateway systemd[1]: Started CcspLMLite service. --- Subject: Unit CcspLMLite.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspLMLite.service has finished starting up. --- --- The start-up result is done. -Dec 05 22:02:36 RaspberryPi-Gateway systemd[1]: Reached target WiFi Initialization Complete. --- Subject: Unit wifi-initialized.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit wifi-initialized.target has finished starting up. --- --- The start-up result is done. -Dec 05 22:02:36 RaspberryPi-Gateway CcspLMLite[3489]: eRT.com.cisco.spvtg.ccsp.psm is ready, eRT.com.cisco.spvtg.ccsp.lmlite continue -Dec 05 22:02:36 RaspberryPi-Gateway CcspLMLite[3489]: PSM module done. -Dec 05 22:02:36 RaspberryPi-Gateway UTOPIA[3496]: 2017-12-05 22:02:36., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:36 RaspberryPi-Gateway CcspTr069PaSsp[3488]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. -Dec 05 22:02:36 RaspberryPi-Gateway CcspTr069PaSsp[3488]: Device.WiFi.SSID.3.EnableDevice.WiFi.SSID.10102.EnableTLV data file is missing!!! -Dec 05 22:02:36 RaspberryPi-Gateway CcspTr069PaSsp[3488]: TR69 PA: Waiting for Setup env... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Init: Initializing -Dec 05 22:02:41 RaspberryPi-Gateway CcspLMLite[3489]: Conf file /etc/debug.ini open success -Dec 05 22:02:41 RaspberryPi-Gateway CcspLMLite[3489]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. -Dec 05 22:02:41 RaspberryPi-Gateway CcspLMLite[3489]: Conf file /etc/debug.ini open success -Dec 05 22:02:41 RaspberryPi-Gateway CcspLMLite[3489]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. -Dec 05 22:02:41 RaspberryPi-Gateway CcspLMLite[3489]: Conf file /etc/debug.ini open success -Dec 05 22:02:41 RaspberryPi-Gateway CcspLMLite[3489]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. -Dec 05 22:02:41 RaspberryPi-Gateway CcspLMLite[3489]: Send_Eth_Host_Sync_Req : Get Ethernet Clients -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:02:41 RaspberryPi-Gateway CcspLMLite[3489]: Send_MoCA_Host_Sync_Req : Get MoCA Clients -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: 2017-12-05 22:02:41., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: 2017-12-05 22:02:41., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 118 -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 119 -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 120 -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 121 -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 122 -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 123 -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 124 -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 118 -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 119 -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 120 -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 121 -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 122 -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 123 -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 124 -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Free: Freeing -Dec 05 22:02:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:02:41 RaspberryPi-Gateway CcspTr069PaSsp[3488]: TR69 PA: Setup env completed -Dec 05 22:02:41 RaspberryPi-Gateway [3494]: config.utapi s_sysevent_connect: open new sysevent fd 6 -Dec 05 22:02:41 RaspberryPi-Gateway CcspTr069PaSsp[3488]: ***************** Ccsp Tr69 process is up Creatting PID file **** -Dec 05 22:02:45 RaspberryPi-Gateway kernel: brlan0: port 2(wlan0) entered forwarding state -Dec 05 22:02:45 RaspberryPi-Gateway kernel[214]: [ 39.453959] brlan0: port 2(wlan0) entered forwarding state -Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: AP Index for band 0 is 0AP Index for band 0 is 0AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.SSID -Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : RPi3_RDKB-AP0getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.Passphrase -Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: Func=wifi_getApSecurityKeyPassphrase -Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is wpa_passphrase -Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: output_string=rdk@1234 -Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.SSID -Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: Params Name is ssid -Dec 05 22:02:50 RaspberryPi-Gateway CcspWifiSsp[2402]: [wifi_getSSIDName]: SSID Name is : RPi3_RDKB-AP1getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.Passphrase -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Init: Initializing -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: 2017-12-05 22:03:11., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 118 -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 119 -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 120 -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 121 -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 122 -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 123 -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 124 -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Free: Freeing -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3600]: 2017-12-05 22:03:11., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3603]: 2017-12-05 22:03:11., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx Utopia_Init: Initializing -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: 2017-12-05 22:03:11., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx Utopia_Free: Freeing -Dec 05 22:03:11 RaspberryPi-Gateway UTOPIA[3637]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3668]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3667]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway kernel: Netfilter messages via NETLINK v0.30. -Dec 05 22:03:12 RaspberryPi-Gateway kernel[214]: [ 66.202145] Netfilter messages via NETLINK v0.30. -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3676]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3680]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway [3666]: fw.info firewall called with no arg -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info firewall service initializing -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info firewall opening sysevent_fd 18, token 259 -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3694]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams, Parse the line read from file -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams, Check if interface matches -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams,Interface not found -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams, Parse the line read from file -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams, Check if interface matches -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams,Interface not found -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams, Parse the line read from file -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams, Check if interface matches -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams,Interface not found -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams, Parse the line read from file -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams, Check if interface matches -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info parseProcfileParams,Interface not found -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info starting firewall service -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3701]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3710]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx Utopia_Init: Initializing -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx Utopia_Free: Freeing -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3703]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3727]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3736]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3737]: ddns.status (3657) wan state is down. No ddns update possible -Dec 05 22:03:12 RaspberryPi-Gateway kernel: nf_conntrack version 0.5.0 (14805 buckets, 59220 max) -Dec 05 22:03:12 RaspberryPi-Gateway kernel[214]: [ 66.374334] nf_conntrack version 0.5.0 (14805 buckets, 59220 max) -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx Utopia_Init: Initializing -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx Utopia_Free: Freeing -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3748]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3754]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3813]: system.utctx Utopia_Init: Initializing -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3813]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3813]: system.utctx Utopia_Free: Freeing -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3829]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3835]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3839]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3840]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info started firewall service -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info firewall closing firewall_lock -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info firewall closing sysevent_fd 18, token 259 -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info firewall closing dbus connection -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3666]: fw.info firewall operation completed -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for firewall-start using /etc/utopia/service.d/firewall_log_handle.sh -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for firewall-stop using /etc/utopia/service.d/firewall_log_handle.sh -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3854]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for firewall-restart using /etc/utopia/service.d/firewall_log_handle.sh -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3851]: service.info Unregistered firewall from firewall-restart -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for firewall-restart using /etc/utopia/service.d/firewall_log_handle.sh -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for syslog-status using /etc/utopia/service.d/firewall_log_handle.sh -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for firewall_trigger_monitor-start using /etc/utopia/service.d/service_firewall/trigger_monitor.sh -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3855]: 2017-12-05 22:03:12., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:12 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for firewall_newhost_monitor-start using /etc/utopia/service.d/service_firewall/newhost_monitor.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for syslog_rotated using /etc/utopia/service.d/service_firewall/newhost_monitor.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for ipv6_prefix using /etc/utopia/service.d/firewall_log_handle.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for current_wan_ipv6_interface using /etc/utopia/service.d/firewall_log_handle.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3856]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for ipv6_wan0_dhcp_solicNodeAddr using /etc/utopia/service.d/firewall_log_handle.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3851]: service.info Registered firewall for ipv6_erouter0_dhcp_solicNodeAddr using /etc/utopia/service.d/firewall_log_handle.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3874]: fw.trigger Firewall Trigger process started -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3874]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3875]: service.info Registered mcastproxy for mcastproxy-start using /etc/utopia/service.d/service_mcastproxy.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3875]: service.info Registered mcastproxy for mcastproxy-stop using /etc/utopia/service.d/service_mcastproxy.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3875]: service.info Registered mcastproxy for mcastproxy-restart using /etc/utopia/service.d/service_mcastproxy.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3875]: service.info Registered mcastproxy for wan-status using /etc/utopia/service.d/service_mcastproxy.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3875]: service.info Registered mcastproxy for lan-status using /etc/utopia/service.d/service_mcastproxy.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3879]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3875]: service.info Registered mcastproxy for bridge-status using /etc/utopia/service.d/service_mcastproxy.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3885]: service.info Registered mldproxy for mldproxy-start using /etc/utopia/service.d/service_mldproxy.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3885]: service.info Registered mldproxy for mldproxy-stop using /etc/utopia/service.d/service_mldproxy.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3885]: service.info Registered mldproxy for mldproxy-restart using /etc/utopia/service.d/service_mldproxy.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3885]: service.info Registered mldproxy for wan-status using /etc/utopia/service.d/service_mldproxy.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3885]: service.info Registered mldproxy for lan-status using /etc/utopia/service.d/service_mldproxy.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3897]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3896]: service.info Registered igd for igd-start using /etc/utopia/service.d/service_igd.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3896]: service.info Registered igd for igd-stop using /etc/utopia/service.d/service_igd.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3896]: service.info Registered igd for igd-restart using /etc/utopia/service.d/service_igd.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3896]: service.info Registered igd for lan-status using /etc/utopia/service.d/service_igd.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3896]: service.info Registered igd for snmp_subagent-status using /etc/utopia/service.d/service_igd.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3901]: service.info Registered misc for misc-start using /etc/utopia/service.d/service_misc.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3901]: service.info Registered misc for misc-stop using /etc/utopia/service.d/service_misc.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3901]: service.info Registered misc for misc-restart using /etc/utopia/service.d/service_misc.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3901]: service.info Registered misc for start-misc using /etc/utopia/service.d/service_misc.sh -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3922]: system.utctx Utopia_Init: Initializing -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3922]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3922]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3922]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3922]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3922]: system.utctx Utopia_Free: Freeing -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3922]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3923]: system.utctx Utopia_Init: Initializing -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3923]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3923]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3923]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3923]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3923]: system.utctx Utopia_Free: Freeing -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3923]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3929]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:13 RaspberryPi-Gateway dnsmasq[2207]: read /etc/hosts - 9 addresses -Dec 05 22:03:13 RaspberryPi-Gateway dnsmasq-dhcp[2207]: read /etc/dhcp_static_hosts -Dec 05 22:03:13 RaspberryPi-Gateway dnsmasq-dhcp[2207]: read /var/dhcp_options -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3941]: sshd.status stopping sshd service -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3940]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx Utopia_Init: Initializing -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx Utopia_Free: Freeing -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3950]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3966]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3983]: mldproxy.status starting mldproxy service -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[3998]: ddns.status (3908) ddns is not enabled -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4003]: sshd.status starting sshd service -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4008]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4065]: mcastproxy.status starting mcastproxy service -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx Utopia_Init: Initializing -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4091]: system.utctx Utopia_Init: Initializing -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx Utopia_Free: Freeing -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4086]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4091]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4091]: 2017-12-05 22:03:13., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4091]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4091]: system.utctx Utopia_Free: Freeing -Dec 05 22:03:13 RaspberryPi-Gateway UTOPIA[4091]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:03:14 RaspberryPi-Gateway [4094]: fw.info firewall called with firewall-restart -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info firewall service initializing -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: 2017-12-05 22:03:14., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info firewall opening sysevent_fd 17, token 329 -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams, Parse the line read from file -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams, Check if interface matches -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams,Interface not found -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams, Parse the line read from file -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams, Check if interface matches -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams,Interface not found -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams, Parse the line read from file -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams, Check if interface matches -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams,Interface not found -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams, Parse the line read from file -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams, Check if interface matches -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info parseProcfileParams,Interface not found -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info starting firewall service -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info started firewall service -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info firewall closing firewall_lock -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info firewall closing sysevent_fd 17, token 329 -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info firewall closing dbus connection -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4094]: fw.info firewall operation completed -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4150]: 2017-12-05 22:03:14., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:14 RaspberryPi-Gateway kernel: ctnetlink v0.93: registering with nfnetlink. -Dec 05 22:03:14 RaspberryPi-Gateway kernel[214]: [ 68.142512] ctnetlink v0.93: registering with nfnetlink. -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4172]: system.utctx Utopia_Init: Initializing -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4172]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4172]: 2017-12-05 22:03:14., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4172]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4172]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4172]: system.utctx Utopia_Free: Freeing -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4172]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx Utopia_Init: Initializing -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: 2017-12-05 22:03:14., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx Utopia_Free: Freeing -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: igd.info IP address:10.0.0.1 -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: igd.info Initilize IGD root device -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx Utopia_Init: Initializing -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: 2017-12-05 22:03:14., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx Utopia_Free: Freeing -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: igd.info - Root Device UUID:uuid:ebf5a0a0-1dd1-11b2-a90f-94103eb8fe9d -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4163]: igd.info - - Create description file -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4175]: system.utctx Utopia_Init: Initializing -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4175]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4175]: 2017-12-05 22:03:14., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4175]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4175]: system.utctx Utopia_Free: Freeing -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4175]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4179]: igd.status starting igd service -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4180]: 2017-12-05 22:03:14., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:14 RaspberryPi-Gateway UTOPIA[4200]: mcastproxy.status starting mcastproxy service -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4242]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4256]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4258]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4260]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4261]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4261]: system.syscfg commit to store -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4272]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4274]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4276]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4278]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4280]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4282]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4286]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4288]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4291]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4325]: system.utctx Utopia_Init: Initializing -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4325]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4325]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4325]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4325]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4325]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4325]: system.utctx Utopia_Free: Freeing -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4325]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4328]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4331]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4333]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4334]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4340]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4341]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4363]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4364]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway UTOPIA[4405]: 2017-12-05 22:03:16., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:16 RaspberryPi-Gateway dnsmasq[2207]: exiting on receipt of SIGTERM -Dec 05 22:03:16 RaspberryPi-Gateway dnsmasq[4434]: started, version 2.76 cachesize 150 -Dec 05 22:03:16 RaspberryPi-Gateway dnsmasq[4434]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect no-inotify -Dec 05 22:03:16 RaspberryPi-Gateway dnsmasq[4434]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# -Dec 05 22:03:16 RaspberryPi-Gateway dnsmasq[4434]: reading /etc/resolv.conf -Dec 05 22:03:16 RaspberryPi-Gateway dnsmasq[4434]: using nameserver 8.8.8.8#53 -Dec 05 22:03:16 RaspberryPi-Gateway dnsmasq[4434]: using nameserver 8.8.4.4#53 -Dec 05 22:03:16 RaspberryPi-Gateway dnsmasq[4434]: read /etc/hosts - 9 addresses -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4444]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4446]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4448]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4449]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4453]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4459]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4462]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4465]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway [4463]: fw.info firewall called with firewall-restart -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info firewall service initializing -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info firewall opening sysevent_fd 17, token 396 -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams, Parse the line read from file -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams, Check if interface matches -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams,Interface not found -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams, Parse the line read from file -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams, Check if interface matches -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams,Interface not found -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams, Parse the line read from file -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams, Check if interface matches -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams,Interface not found -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams, Parse the line read from file -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams, Check if interface matches -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info parseProcfileParams,Interface not found -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info starting firewall service -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4473]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4476]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4481]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info started firewall service -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info firewall closing firewall_lock -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info firewall closing sysevent_fd 17, token 396 -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info firewall closing dbus connection -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4463]: fw.info firewall operation completed -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4502]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4518]: system.utctx Utopia_Init: Initializing -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4518]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4518]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4518]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4518]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4518]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4518]: system.utctx Utopia_Free: Freeing -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4518]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4525]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4528]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4530]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4531]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4537]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4538]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4539]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4558]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway UTOPIA[4574]: 2017-12-05 22:03:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4434]: read /etc/hosts - 9 addresses -Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4434]: exiting on receipt of SIGTERM -Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4597]: started, version 2.76 cachesize 150 -Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4597]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect no-inotify -Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq-dhcp[4597]: DHCP, IP range 10.0.0.2 -- 10.0.0.253, lease time 7d -Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4597]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# -Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4597]: reading /etc/resolv.conf -Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4597]: using nameserver 8.8.8.8#53 -Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4597]: using nameserver 8.8.4.4#53 -Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq[4597]: read /etc/hosts - 9 addresses -Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq-dhcp[4597]: read /etc/dhcp_static_hosts -Dec 05 22:03:17 RaspberryPi-Gateway dnsmasq-dhcp[4597]: read /var/dhcp_options -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Init: Initializing -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: 2017-12-05 22:03:41., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 118 -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 119 -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 120 -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 121 -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 122 -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 123 -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 124 -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Free: Freeing -Dec 05 22:03:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:03:57 RaspberryPi-Gateway passwd[4688]: pam_unix(passwd:chauthtok): unrecognized option [obscure] -Dec 05 22:03:57 RaspberryPi-Gateway passwd[4688]: pam_unix(passwd:chauthtok): unrecognized option [obscure] -Dec 05 22:03:57 RaspberryPi-Gateway passwd[4688]: pam_unix(passwd:chauthtok): password changed for root -Dec 05 22:03:58 RaspberryPi-Gateway dnsmasq[4597]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# -Dec 05 22:03:58 RaspberryPi-Gateway dnsmasq[4597]: reading /etc/resolv.conf -Dec 05 22:03:58 RaspberryPi-Gateway dnsmasq[4597]: using nameserver 8.8.8.8#53 -Dec 05 22:03:58 RaspberryPi-Gateway dnsmasq[4597]: using nameserver 8.8.4.4#53 -Dec 05 22:03:58 RaspberryPi-Gateway dnsmasq-dhcp[4597]: DHCPRELEASE(brlan0) 10.0.0.155 30:30:31:31:30:31 unknown lease -Dec 05 22:04:00 RaspberryPi-Gateway UTOPIA[4707]: 2017-12-05 22:04:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:04:02 RaspberryPi-Gateway dnsmasq-dhcp[4597]: DHCPDISCOVER(brlan0) 30:30:31:31:30:31 -Dec 05 22:04:02 RaspberryPi-Gateway dnsmasq-dhcp[4597]: DHCPOFFER(brlan0) 10.0.0.155 30:30:31:31:30:31 -Dec 05 22:04:02 RaspberryPi-Gateway dnsmasq-dhcp[4597]: DHCPREQUEST(brlan0) 10.0.0.155 30:30:31:31:30:31 -Dec 05 22:04:02 RaspberryPi-Gateway dnsmasq-dhcp[4597]: DHCPACK(brlan0) 10.0.0.155 30:30:31:31:30:31 bft-node-bond0-101 -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Init: Initializing -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:04:12 RaspberryPi-Gateway CcspLMLite[3489]: LMlite-CLIENT <963> : Connected Mac = 30:30:31:31:30:31 -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: 2017-12-05 22:04:11., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_GetNamed: Failed on index 495 -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Free: Freeing -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Init: Initializing -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: 2017-12-05 22:04:11., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 118 -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 119 -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 120 -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 121 -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 122 -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 123 -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 124 -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Free: Freeing -Dec 05 22:04:11 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 05 22:04:12 RaspberryPi-Gateway sh[257]: tdk_firewall_service.sh: v4 rule is missing in iptables, adding now -Dec 05 22:04:12 RaspberryPi-Gateway sh[257]: tdk_firewall_service.sh: v6 rule is missing in ip6tables, adding now -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Init: Initializing -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: 2017-12-05 22:04:41., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 118 -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 119 -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 120 -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 121 -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 122 -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 123 -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Get: Failed on index 124 -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx Utopia_Free: Freeing -Dec 05 22:04:41 RaspberryPi-Gateway UTOPIA[3496]: system.utctx UtopiaRWLock_Free: Freeing lock... diff --git a/reference/master-oe22_rpi3-systemd.log b/reference/master-oe22_rpi3-systemd.log deleted file mode 100644 index d3e2919f..00000000 --- a/reference/master-oe22_rpi3-systemd.log +++ /dev/null @@ -1,4893 +0,0 @@ - --- Logs begin at Tue 2017-12-05 23:01:16 UTC, end at Wed 2017-12-06 16:18:23 UTC. -- -Dec 05 23:01:16 RaspberryPi-Gateway systemd-journald[109]: Runtime journal (/run/log/journal/) is 2.0M, max 64.0M, 62.0M free. --- Subject: Disk space used by the journal --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Runtime journal (/run/log/journal/) is currently using 2.0M. --- Maximum allowed usage is set to 64.0M. --- Leaving at least 69.4M free (of currently available 460.6M of disk space). --- Enforced usage limit is thus 64.0M, of which 62.0M are still available. --- --- The limits controlling how much disk space is used by the journal may --- be configured with SystemMaxUse=, SystemKeepFree=, SystemMaxFileSize=, --- RuntimeMaxUse=, RuntimeKeepFree=, RuntimeMaxFileSize= settings in --- /etc/systemd/journald.conf. See journald.conf(5) for details. -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Booting Linux on physical CPU 0x0 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing cgroup subsys cpuset -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing cgroup subsys cpu -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing cgroup subsys cpuacct -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Linux version 4.4.50 (andre@chippy1) (gcc version 6.4.0 (GCC) ) #1 SMP Thu Nov 23 01:18:20 PST 2017 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d -Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Machine model: Raspberry Pi 3 Model B Rev 1.2 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: cma: Reserved 8 MiB at 0x3a800000 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Memory policy: Data cache writealloc -Dec 05 23:01:16 RaspberryPi-Gateway kernel: On node 0 totalpages: 241664 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: free_area_init_node: node 0, pgdat 808ecf40, node_mem_map b9fa6000 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Normal zone: 2124 pages used for memmap -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Normal zone: 0 pages reserved -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Normal zone: 241664 pages, LIFO batch:31 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_smp_init_cpus] enter (9540->f3003010) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_smp_init_cpus] ncores=4 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: PERCPU: Embedded 13 pages/cpu @b9f62000 s22540 r8192 d22516 u53248 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: pcpu-alloc: s22540 r8192 d22516 u53248 alloc=13*4096 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Built 1 zonelists in Zone order, mobility grouping on. Total pages: 239540 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Kernel command line: 8250.nr_uarts=1 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708_fb.fbswap=1 dma.dmachans=0x7f35 bcm2709.boardrev=0xa22082 bcm2709.serial=0x97016bd5 bcm2709.uart_clock=48000000 smsc95xx.macaddr=B8:27:EB:01:6B:D5 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait None -Dec 05 23:01:16 RaspberryPi-Gateway kernel: PID hash table entries: 4096 (order: 2, 16384 bytes) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Memory: 938900K/966656K available (6363K kernel code, 432K rwdata, 1872K rodata, 472K init, 764K bss, 19564K reserved, 8192K cma-reserved) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Virtual kernel memory layout: - vector : 0xffff0000 - 0xffff1000 ( 4 kB) - fixmap : 0xffc00000 - 0xfff00000 (3072 kB) - vmalloc : 0xbb800000 - 0xff800000 (1088 MB) - lowmem : 0x80000000 - 0xbb000000 ( 944 MB) - modules : 0x7f000000 - 0x80000000 ( 16 MB) - .text : 0x80008000 - 0x80813098 (8237 kB) - .init : 0x80814000 - 0x8088a000 ( 472 kB) - .data : 0x8088a000 - 0x808f62a8 ( 433 kB) - .bss : 0x808f9000 - 0x809b8114 ( 765 kB) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Hierarchical RCU implementation. -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Build-time adjustment of leaf fanout to 32. -Dec 05 23:01:16 RaspberryPi-Gateway kernel: NR_IRQS:16 nr_irqs:16 16 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Architected cp15 timer(s) running at 19.20MHz (phys). -Dec 05 23:01:16 RaspberryPi-Gateway kernel: clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns -Dec 05 23:01:16 RaspberryPi-Gateway kernel: sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Switching to timer-based delay loop, resolution 52ns -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Console: colour dummy device 80x30 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: pid_max: default: 32768 minimum: 301 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Disabling cpuset control group subsystem -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing cgroup subsys io -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing cgroup subsys memory -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing cgroup subsys devices -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing cgroup subsys freezer -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing cgroup subsys net_cls -Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU: Testing write buffer coherency: ok -Dec 05 23:01:16 RaspberryPi-Gateway kernel: ftrace: allocating 21146 entries in 63 pages -Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU0: update cpu_capacity 1024 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_smp_prepare_cpus] enter -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Setting up static identity map for 0x8240 - 0x8274 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_boot_secondary] cpu:1 started (0) 17 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_secondary_init] enter cpu:1 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU1: update cpu_capacity 1024 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_boot_secondary] cpu:2 started (0) 18 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_secondary_init] enter cpu:2 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU2: update cpu_capacity 1024 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU2: thread -1, cpu 2, socket 0, mpidr 80000002 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_boot_secondary] cpu:3 started (0) 15 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: [bcm2709_secondary_init] enter cpu:3 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU3: update cpu_capacity 1024 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU3: thread -1, cpu 3, socket 0, mpidr 80000003 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Brought up 4 CPUs -Dec 05 23:01:16 RaspberryPi-Gateway kernel: SMP: Total of 4 processors activated (153.60 BogoMIPS). -Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU: All CPU(s) started in HYP mode. -Dec 05 23:01:16 RaspberryPi-Gateway kernel: CPU: Virtualization extensions available. -Dec 05 23:01:16 RaspberryPi-Gateway kernel: devtmpfs: initialized -Dec 05 23:01:16 RaspberryPi-Gateway kernel: VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 4 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns -Dec 05 23:01:16 RaspberryPi-Gateway kernel: pinctrl core: initialized pinctrl subsystem -Dec 05 23:01:16 RaspberryPi-Gateway kernel: NET: Registered protocol family 16 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: DMA: preallocated 4096 KiB pool for atomic coherent allocations -Dec 05 23:01:16 RaspberryPi-Gateway kernel: bcm2709: Mini UART enabled -Dec 05 23:01:16 RaspberryPi-Gateway kernel: hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers. -Dec 05 23:01:16 RaspberryPi-Gateway kernel: hw-breakpoint: maximum watchpoint size is 8 bytes. -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Serial: AMBA PL011 UART driver -Dec 05 23:01:16 RaspberryPi-Gateway kernel: uart-pl011 3f201000.uart: could not find pctldev for node /soc/gpio@7e200000/uart0_pins, deferring probe -Dec 05 23:01:16 RaspberryPi-Gateway kernel: bcm2835-mbox 3f00b880.mailbox: mailbox enabled -Dec 05 23:01:16 RaspberryPi-Gateway kernel: bcm2835-dma 3f007000.dma: DMA legacy API manager at f3007000, dmachans=0x1 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: SCSI subsystem initialized -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usbcore: registered new interface driver usbfs -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usbcore: registered new interface driver hub -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usbcore: registered new device driver usb -Dec 05 23:01:16 RaspberryPi-Gateway kernel: raspberrypi-firmware soc:firmware: Attached to firmware from 2017-04-05 11:49 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: clocksource: Switched to clocksource arch_sys_counter -Dec 05 23:01:16 RaspberryPi-Gateway kernel: FS-Cache: Loaded -Dec 05 23:01:16 RaspberryPi-Gateway kernel: CacheFiles: Loaded -Dec 05 23:01:16 RaspberryPi-Gateway kernel: NET: Registered protocol family 2 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: TCP established hash table entries: 8192 (order: 3, 32768 bytes) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: TCP bind hash table entries: 8192 (order: 4, 65536 bytes) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: TCP: Hash tables configured (established 8192 bind 8192) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: UDP hash table entries: 512 (order: 2, 16384 bytes) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: NET: Registered protocol family 1 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: RPC: Registered named UNIX socket transport module. -Dec 05 23:01:16 RaspberryPi-Gateway kernel: RPC: Registered udp transport module. -Dec 05 23:01:16 RaspberryPi-Gateway kernel: RPC: Registered tcp transport module. -Dec 05 23:01:16 RaspberryPi-Gateway kernel: RPC: Registered tcp NFSv4.1 backchannel transport module. -Dec 05 23:01:16 RaspberryPi-Gateway kernel: hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available -Dec 05 23:01:16 RaspberryPi-Gateway kernel: futex hash table entries: 1024 (order: 4, 65536 bytes) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: VFS: Disk quotas dquot_6.6.0 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: FS-Cache: Netfs 'nfs' registered for caching -Dec 05 23:01:16 RaspberryPi-Gateway kernel: NFS: Registering the id_resolver key type -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Key type id_resolver registered -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Key type id_legacy registered -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: io scheduler noop registered -Dec 05 23:01:16 RaspberryPi-Gateway kernel: io scheduler deadline registered -Dec 05 23:01:16 RaspberryPi-Gateway kernel: io scheduler cfq registered (default) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: BCM2708FB: allocated DMA memory fac10000 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: BCM2708FB: allocated DMA channel 0 @ f3007000 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Console: switching to colour frame buffer device 82x26 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled -Dec 05 23:01:16 RaspberryPi-Gateway kernel: console [ttyS0] disabled -Dec 05 23:01:16 RaspberryPi-Gateway kernel: 3f215040.uart: ttyS0 at MMIO 0x3f215040 (irq = 59, base_baud = 31250000) is a 16550 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: console [ttyS0] enabled -Dec 05 23:01:16 RaspberryPi-Gateway kernel: bcm2835-rng 3f104000.rng: hwrng registered -Dec 05 23:01:16 RaspberryPi-Gateway kernel: vc-cma: Videocore CMA driver -Dec 05 23:01:16 RaspberryPi-Gateway kernel: vc-cma: vc_cma_base = 0x00000000 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: vc-cma: vc_cma_size = 0x00000000 (0 MiB) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: vc-cma: vc_cma_initial = 0x00000000 (0 MiB) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: vc-mem: phys_addr:0x00000000 mem_base=0x3dc00000 mem_size:0x3f000000(1008 MiB) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: brd: module loaded -Dec 05 23:01:16 RaspberryPi-Gateway kernel: loop: module loaded -Dec 05 23:01:16 RaspberryPi-Gateway kernel: vchiq: vchiq_init_state: slot_zero = 0xbac80000, is_master = 0 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Loading iSCSI transport class v2.0-870. -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usbcore: registered new interface driver smsc95xx -Dec 05 23:01:16 RaspberryPi-Gateway kernel: dwc_otg: version 3.00a 10-AUG-2012 (platform bus) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Core Release: 2.80a -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Setting default values for core params -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Finished setting default values for core params -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Using Buffer DMA mode -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Periodic Transfer Interrupt Enhancement - disabled -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Multiprocessor Interrupt Enhancement - disabled -Dec 05 23:01:16 RaspberryPi-Gateway kernel: OTG VER PARAM: 0, OTG VER FLAG: 0 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Dedicated Tx FIFOs mode -Dec 05 23:01:16 RaspberryPi-Gateway kernel: WARN::dwc_otg_hcd_init:1047: FIQ DMA bounce buffers: virt = 0xbac04000 dma = 0xfac04000 len=9024 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: FIQ FSM acceleration enabled for : - Non-periodic Split Transactions - Periodic Split Transactions - High-Speed Isochronous Endpoints - Interrupt/Control Split Transaction hack enabled -Dec 05 23:01:16 RaspberryPi-Gateway kernel: dwc_otg: Microframe scheduler enabled -Dec 05 23:01:16 RaspberryPi-Gateway kernel: WARN::hcd_init_fiq:415: FIQ on core 1 at 0x8044accc -Dec 05 23:01:16 RaspberryPi-Gateway kernel: WARN::hcd_init_fiq:416: FIQ ASM at 0x8044b02c length 36 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: WARN::hcd_init_fiq:441: MPHI regs_base at 0xbb87e000 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: dwc_otg 3f980000.usb: DWC OTG Controller -Dec 05 23:01:16 RaspberryPi-Gateway kernel: dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: dwc_otg 3f980000.usb: irq 62, io mem 0x00000000 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Init: Port Power? op_state=1 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Init: Power Port (0) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb usb1: Product: DWC OTG Controller -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb usb1: Manufacturer: Linux 4.4.50 dwc_otg_hcd -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb usb1: SerialNumber: 3f980000.usb -Dec 05 23:01:16 RaspberryPi-Gateway kernel: hub 1-0:1.0: USB hub found -Dec 05 23:01:16 RaspberryPi-Gateway kernel: hub 1-0:1.0: 1 port detected -Dec 05 23:01:16 RaspberryPi-Gateway kernel: dwc_otg: FIQ enabled -Dec 05 23:01:16 RaspberryPi-Gateway kernel: dwc_otg: NAK holdoff enabled -Dec 05 23:01:16 RaspberryPi-Gateway kernel: dwc_otg: FIQ split-transaction FSM enabled -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Module dwc_common_port init -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usbcore: registered new interface driver usb-storage -Dec 05 23:01:16 RaspberryPi-Gateway kernel: mousedev: PS/2 mouse device common for all mice -Dec 05 23:01:16 RaspberryPi-Gateway kernel: bcm2835-cpufreq: min=600000 max=1200000 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: sdhci: Secure Digital Host Controller Interface driver -Dec 05 23:01:16 RaspberryPi-Gateway kernel: sdhci: Copyright(c) Pierre Ossman -Dec 05 23:01:16 RaspberryPi-Gateway kernel: sdhost: log_buf @ bac07000 (fac07000) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc0: sdhost-bcm2835 loaded - DMA enabled (>1) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc-bcm2835 3f300000.mmc: mmc_debug:0 mmc_debug2:0 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc-bcm2835 3f300000.mmc: DMA channel allocated -Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc0: host does not support reading read-only switch, assuming write-enable -Dec 05 23:01:16 RaspberryPi-Gateway kernel: sdhci-pltfm: SDHCI platform and OF driver helper -Dec 05 23:01:16 RaspberryPi-Gateway kernel: ledtrig-cpu: registered to indicate activity on CPUs -Dec 05 23:01:16 RaspberryPi-Gateway kernel: hidraw: raw HID events driver (C) Jiri Kosina -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usbcore: registered new interface driver usbhid -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usbhid: USB HID core driver -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Initializing XFRM netlink socket -Dec 05 23:01:16 RaspberryPi-Gateway kernel: NET: Registered protocol family 17 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Key type dns_resolver registered -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Registering SWP/SWPB emulation handler -Dec 05 23:01:16 RaspberryPi-Gateway kernel: registered taskstats version 1 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: vc-sm: Videocore shared memory driver -Dec 05 23:01:16 RaspberryPi-Gateway kernel: [vc_sm_connected_init]: start -Dec 05 23:01:16 RaspberryPi-Gateway kernel: [vc_sm_connected_init]: end - returning 0 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: of_cfs_init -Dec 05 23:01:16 RaspberryPi-Gateway kernel: of_cfs_init: OK -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Indeed it is in host mode hprt0 = 00021501 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc0: new high speed SDHC card at address 0001 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmcblk0: mmc0:0001 EB1QT 29.8 GiB -Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmcblk0: p1 p2 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: VFS: Mounted root (ext4 filesystem) readonly on device 179:2. -Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc1: queuing unknown CIS tuple 0x80 (2 bytes) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc1: queuing unknown CIS tuple 0x80 (3 bytes) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc1: queuing unknown CIS tuple 0x80 (3 bytes) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc1: queuing unknown CIS tuple 0x80 (7 bytes) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: devtmpfs: mounted -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Freeing unused kernel memory: 472K (80814000 - 8088a000) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: mmc1: new high speed SDIO card at address 0001 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1: new high-speed USB device number 2 using dwc_otg -Dec 05 23:01:16 RaspberryPi-Gateway kernel: Indeed it is in host mode hprt0 = 00001101 -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: System time before build time, advancing clock. -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1: New USB device found, idVendor=0424, idProduct=9514 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: hub 1-1:1.0: USB hub found -Dec 05 23:01:16 RaspberryPi-Gateway kernel: hub 1-1:1.0: 5 ports detected -Dec 05 23:01:16 RaspberryPi-Gateway kernel: NET: Registered protocol family 10 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 47 bits of entropy available) -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: systemd 230 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN) -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Detected architecture arm. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Set hostname to . -Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 59 bits of entropy available) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 61 bits of entropy available) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 62 bits of entropy available) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 64 bits of entropy available) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.1: new high-speed USB device number 3 using dwc_otg -Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: smsc95xx v1.0.4 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:01:6b:d5 -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Listening on Journal Socket. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Listening on Journal Socket (/dev/log). -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Reached target Network. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Reached target Remote File Systems. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Created slice User and Session Slice. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Dispatch Password Requests to Console Directory Watch. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Listening on Syslog Socket. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Listening on udev Kernel Socket. -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.5: new high-speed USB device number 4 using dwc_otg -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Reached target Swap. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Forward Password Requests to Wall Directory Watch. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Listening on udev Control Socket. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Created slice System Slice. -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.5: New USB device found, idVendor=13b1, idProduct=0041 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=6 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.5: Product: Linksys USB3GIGV1 -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.5: Manufacturer: Linksys -Dec 05 23:01:16 RaspberryPi-Gateway kernel: usb 1-1.5: SerialNumber: 000001000000 -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounting Debug File System... -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting Journal Service... -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounting Temporary Directory... -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Created slice system-serial\x2dgetty.slice. -Dec 05 23:01:16 RaspberryPi-Gateway systemd-journald[109]: Journal started --- Subject: The journal has been started --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- The system journal process has started up, opened the journal --- files for writing and is now ready to process requests. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounting POSIX Message Queue File System... -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Created slice system-getty.slice. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounting Configuration File System... -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting Setup Virtual Console... -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting Apply Kernel Variables... -Dec 05 23:01:16 RaspberryPi-Gateway systemd-sysctl[123]: Couldn't write '90' to 'net/ipv4/netfilter/ip_conntrack_udp_timeout', ignoring: No such file or directory -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting Remount Root and Kernel File Systems... -Dec 05 23:01:16 RaspberryPi-Gateway kernel: EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting Create list of required static device nodes for the current kernel... -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Reached target Slices. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Listening on /dev/initctl Compatibility Named Pipe. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounted Debug File System. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounted POSIX Message Queue File System. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounted Configuration File System. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounted Temporary Directory. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Journal Service. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Setup Virtual Console. --- Subject: Unit systemd-vconsole-setup.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-vconsole-setup.service has finished starting up. --- --- The start-up result is done. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Apply Kernel Variables. --- Subject: Unit systemd-sysctl.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-sysctl.service has finished starting up. --- --- The start-up result is done. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Remount Root and Kernel File Systems. --- Subject: Unit systemd-remount-fs.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-remount-fs.service has finished starting up. --- --- The start-up result is done. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Create list of required static device nodes for the current kernel. --- Subject: Unit kmod-static-nodes.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit kmod-static-nodes.service has finished starting up. --- --- The start-up result is done. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting Create Static Device Nodes in /dev... --- Subject: Unit systemd-tmpfiles-setup-dev.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-tmpfiles-setup-dev.service has begun starting up. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting udev Coldplug all Devices... --- Subject: Unit systemd-udev-trigger.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-udev-trigger.service has begun starting up. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting Load/Save Random Seed... --- Subject: Unit systemd-random-seed.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-random-seed.service has begun starting up. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting Flush Journal to Persistent Storage... --- Subject: Unit systemd-journal-flush.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-journal-flush.service has begun starting up. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Create Static Device Nodes in /dev. --- Subject: Unit systemd-tmpfiles-setup-dev.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-tmpfiles-setup-dev.service has finished starting up. --- --- The start-up result is done. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Load/Save Random Seed. --- Subject: Unit systemd-random-seed.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-random-seed.service has finished starting up. --- --- The start-up result is done. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Reached target Local File Systems (Pre). --- Subject: Unit local-fs-pre.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit local-fs-pre.target has finished starting up. --- --- The start-up result is done. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounting /var/volatile... --- Subject: Unit var-volatile.mount has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit var-volatile.mount has begun starting up. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Starting udev Kernel Device Manager... --- Subject: Unit systemd-udevd.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-udevd.service has begun starting up. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Mounted /var/volatile. --- Subject: Unit var-volatile.mount has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit var-volatile.mount has finished starting up. --- --- The start-up result is done. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Reached target Local File Systems. --- Subject: Unit local-fs.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit local-fs.target has finished starting up. --- --- The start-up result is done. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started Flush Journal to Persistent Storage. --- Subject: Unit systemd-journal-flush.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-journal-flush.service has finished starting up. --- --- The start-up result is done. -Dec 05 23:01:16 RaspberryPi-Gateway systemd[1]: Started udev Kernel Device Manager. --- Subject: Unit systemd-udevd.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-udevd.service has finished starting up. --- --- The start-up result is done. -Dec 05 23:01:17 RaspberryPi-Gateway mtp-probe[164]: checking bus 1, device 4: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5" -Dec 05 23:01:17 RaspberryPi-Gateway mtp-probe[164]: bus: 1, device: 4 was not an MTP device -Dec 05 23:01:17 RaspberryPi-Gateway systemd[1]: Starting Create Volatile Files and Directories... --- Subject: Unit systemd-tmpfiles-setup.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-tmpfiles-setup.service has begun starting up. -Dec 05 23:01:17 RaspberryPi-Gateway kernel: cdc_ether 1-1.5:2.0 eth1: register 'cdc_ether' at usb-3f980000.usb-1.5, CDC Ethernet Device, 94:10:3e:b8:fe:9d -Dec 05 23:01:17 RaspberryPi-Gateway kernel: usbcore: registered new interface driver cdc_ether -Dec 05 23:01:17 RaspberryPi-Gateway systemd-tmpfiles[177]: "/var/tmp" already exists and is not a directory. -Dec 05 23:01:17 RaspberryPi-Gateway systemd-tmpfiles[177]: "/var/log" already exists and is not a directory. -Dec 05 23:01:17 RaspberryPi-Gateway systemd[1]: Started Create Volatile Files and Directories. --- Subject: Unit systemd-tmpfiles-setup.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-tmpfiles-setup.service has finished starting up. --- --- The start-up result is done. -Dec 05 23:01:17 RaspberryPi-Gateway systemd[1]: Starting Network Time Synchronization... --- Subject: Unit systemd-timesyncd.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-timesyncd.service has begun starting up. -Dec 05 23:01:17 RaspberryPi-Gateway systemd[1]: Starting Update UTMP about System Boot/Shutdown... --- Subject: Unit systemd-update-utmp.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-update-utmp.service has begun starting up. -Dec 05 23:01:17 RaspberryPi-Gateway systemd[1]: Started udev Coldplug all Devices. --- Subject: Unit systemd-udev-trigger.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-udev-trigger.service has finished starting up. --- --- The start-up result is done. -Dec 05 23:01:17 RaspberryPi-Gateway kernel: lirc_dev: IR Remote Control driver registered, major 244 -Dec 05 23:01:17 RaspberryPi-Gateway systemd[1]: Started Update UTMP about System Boot/Shutdown. --- Subject: Unit systemd-update-utmp.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-update-utmp.service has finished starting up. --- --- The start-up result is done. -Dec 05 23:01:17 RaspberryPi-Gateway kernel: gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000 -Dec 05 23:01:17 RaspberryPi-Gateway systemd[1]: Found device /dev/ttyAMA0. --- Subject: Unit dev-ttyAMA0.device has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit dev-ttyAMA0.device has finished starting up. --- --- The start-up result is done. -Dec 05 23:01:17 RaspberryPi-Gateway kernel: bcm2835-wdt 3f100000.watchdog: Broadcom BCM2835 watchdog timer -Dec 05 23:01:17 RaspberryPi-Gateway kernel: lirc_rpi: module is from the staging directory, the quality is unknown, you have been warned. -Dec 05 23:01:17 RaspberryPi-Gateway systemd[1]: Found device /dev/ttyS0. --- Subject: Unit dev-ttyS0.device has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit dev-ttyS0.device has finished starting up. --- --- The start-up result is done. -Dec 05 23:01:17 RaspberryPi-Gateway mtp-probe[203]: checking bus 1, device 4: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5" -Dec 05 23:01:17 RaspberryPi-Gateway mtp-probe[203]: bus: 1, device: 4 was not an MTP device -Dec 05 23:01:17 RaspberryPi-Gateway mtp-probe[204]: checking bus 1, device 3: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1" -Dec 05 23:01:17 RaspberryPi-Gateway mtp-probe[204]: bus: 1, device: 3 was not an MTP device -Dec 05 23:01:17 RaspberryPi-Gateway systemd-timesyncd[185]: System clock time unset or jumped backwards, restoring from recorded timestamp: Wed 2017-12-06 16:16:17 UTC -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Time has been changed --- Subject: Time change --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- The system clock has been changed to REALTIME microseconds after January 1st, 1970. -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started Network Time Synchronization. --- Subject: Unit systemd-timesyncd.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-timesyncd.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway kernel: random: nonblocking pool is initialized -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Reached target System Time Synchronized. --- Subject: Unit time-sync.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit time-sync.target has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway kernel: usbcore: registered new interface driver brcmfmac -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Reached target System Initialization. --- Subject: Unit sysinit.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit sysinit.target has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started Daily Cleanup of Temporary Directories. --- Subject: Unit systemd-tmpfiles-clean.timer has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-tmpfiles-clean.timer has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Reached target Timers. --- Subject: Unit timers.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit timers.target has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started Check RPI Wifi Support Initialized Path. --- Subject: Unit checkrpiwifisupport.path has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit checkrpiwifisupport.path has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Listening on D-Bus System Message Bus Socket. --- Subject: Unit dbus.socket has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit dbus.socket has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway kernel: brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Aug 29 2016 20:48:16 version 7.45.41.26 (r640327) FWID 01-4527cfab -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started RPI WIFI Initialized Path. --- Subject: Unit rpiwifiinitialized.path has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit rpiwifiinitialized.path has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway kernel: brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Listening on RPCbind Server Activation Socket. --- Subject: Unit rpcbind.socket has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit rpcbind.socket has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Reached target Sockets. --- Subject: Unit sockets.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit sockets.target has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started CcspCrSsp Restart Occurred Path. --- Subject: Unit crResetDetect.path has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit crResetDetect.path has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started WiFi Initialized Path. --- Subject: Unit wifiinitialized.path has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit wifiinitialized.path has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Reached target Paths. --- Subject: Unit paths.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit paths.target has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Reached target Basic System. --- Subject: Unit basic.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit basic.target has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Starting Login Service... --- Subject: Unit systemd-logind.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-logind.service has begun starting up. -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started Gwprovapp service. --- Subject: Unit gwprovapp.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit gwprovapp.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway kernel: brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code -Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: World regulatory domain updated: -Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: DFS Master region: unset -Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) -Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A) -Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz, 92000 KHz AUTO), (N/A, 2000 mBm), (N/A) -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Starting Permit User Sessions... --- Subject: Unit systemd-user-sessions.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-user-sessions.service has begun starting up. -Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A) -Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A) -Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s) -Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s) -Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A) -Dec 06 16:16:17 RaspberryPi-Gateway kernel: cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A) -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started D-Bus System Message Bus. --- Subject: Unit dbus.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit dbus.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway gw_prov_utopia[218]: syslogd: can't open '/etc/syslog.conf': No such file or directory -Dec 06 16:16:17 RaspberryPi-Gateway gw_prov_utopia[218]: ln: /crontabs: File exists -Dec 06 16:16:17 RaspberryPi-Gateway gw_prov_utopia[218]: ******************************************************************* -Dec 06 16:16:17 RaspberryPi-Gateway gw_prov_utopia[218]: * -Dec 06 16:16:17 RaspberryPi-Gateway gw_prov_utopia[218]: * Copyright (c) 2010 by Cisco Systems, Inc. All Rights Reserved. -Dec 06 16:16:17 RaspberryPi-Gateway gw_prov_utopia[218]: * -Dec 06 16:16:17 RaspberryPi-Gateway gw_prov_utopia[218]: ******************************************************************* -Dec 06 16:16:17 RaspberryPi-Gateway kernel: lirc_rpi: auto-detected active high receiver on GPIO pin 18 -Dec 06 16:16:17 RaspberryPi-Gateway kernel: lirc_rpi lirc_rpi: lirc_dev: driver lirc_rpi registered at minor = 0 -Dec 06 16:16:17 RaspberryPi-Gateway kernel: lirc_rpi: driver registered! -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Starting TDK Test Agent Start... --- Subject: Unit tdk.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit tdk.service has begun starting up. -Dec 06 16:16:17 RaspberryPi-Gateway UTOPIA[236]: 2017-12-06 16:16:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon.... --- Subject: Unit snmpd.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit snmpd.service has begun starting up. -Dec 06 16:16:17 RaspberryPi-Gateway UTOPIA[236]: system.syscfg Shared memory file not found -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Starting PsmSsp service... --- Subject: Unit PsmSsp.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit PsmSsp.service has begun starting up. -Dec 06 16:16:17 RaspberryPi-Gateway UTOPIA[236]: 2017-12-06 16:16:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:513, Error initializing shared memor -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started Kernel Logging Service. --- Subject: Unit busybox-klogd.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit busybox-klogd.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: klogd started: BusyBox v1.24.1 (2017-11-23 01:22:04 PST) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Booting Linux on physical CPU 0x0 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Initializing cgroup subsys cpuset -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Initializing cgroup subsys cpu -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Initializing cgroup subsys cpuacct -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Linux version 4.4.50 (andre@chippy1) (gcc version 6.4.0 (GCC) ) #1 SMP Thu Nov 23 01:18:20 PST 2017 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Machine model: Raspberry Pi 3 Model B Rev 1.2 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] cma: Reserved 8 MiB at 0x3a800000 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Memory policy: Data cache writealloc -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] On node 0 totalpages: 241664 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] free_area_init_node: node 0, pgdat 808ecf40, node_mem_map b9fa6000 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Normal zone: 2124 pages used for memmap -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Normal zone: 0 pages reserved -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Normal zone: 241664 pages, LIFO batch:31 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] [bcm2709_smp_init_cpus] enter (9540->f3003010) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] [bcm2709_smp_init_cpus] ncores=4 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] PERCPU: Embedded 13 pages/cpu @b9f62000 s22540 r8192 d22516 u53248 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] pcpu-alloc: s22540 r8192 d22516 u53248 alloc=13*4096 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 239540 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Kernel command line: 8250.nr_uarts=1 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708_fb.fbswap=1 dma.dmachans=0x7f35 bcm2709.boardrev=0xa22082 bcm2709.serial=0x97016bd5 bcm2709.uart_clock=48000000 smsc95xx.macaddr=B8:27:EB:01:6B:D5 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait None -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Memory: 938900K/966656K available (6363K kernel code, 432K rwdata, 1872K rodata, 472K init, 764K bss, 19564K reserved, 8192K cma-reserved) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Virtual kernel memory layout: -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Starting CcspCrSsp service... --- Subject: Unit CcspCrSsp.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspCrSsp.service has begun starting up. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] vmalloc : 0xbb800000 - 0xff800000 (1088 MB) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] lowmem : 0x80000000 - 0xbb000000 ( 944 MB) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] modules : 0x7f000000 - 0x80000000 ( 16 MB) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] .text : 0x80008000 - 0x80813098 (8237 kB) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] .init : 0x80814000 - 0x8088a000 ( 472 kB) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] .data : 0x8088a000 - 0x808f62a8 ( 433 kB) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] .bss : 0x808f9000 - 0x809b8114 ( 765 kB) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Hierarchical RCU implementation. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Build-time adjustment of leaf fanout to 32. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] NR_IRQS:16 nr_irqs:16 16 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] Architected cp15 timer(s) running at 19.20MHz (phys). -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started System Logging Service. --- Subject: Unit busybox-syslog.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit busybox-syslog.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000009] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000024] Switching to timer-based delay loop, resolution 52ns -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000279] Console: colour dummy device 80x30 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000317] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000339] pid_max: default: 32768 minimum: 301 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000646] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.000661] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.001606] Disabling cpuset control group subsystem -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.001637] Initializing cgroup subsys io -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.001667] Initializing cgroup subsys memory -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.001706] Initializing cgroup subsys devices -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.001726] Initializing cgroup subsys freezer -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.001745] Initializing cgroup subsys net_cls -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.001793] CPU: Testing write buffer coherency: ok -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.001852] ftrace: allocating 21146 entries in 63 pages -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.051390] CPU0: update cpu_capacity 1024 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.051420] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.051432] [bcm2709_smp_prepare_cpus] enter -Dec 06 16:16:17 RaspberryPi-Gateway sh[278]: bbhm patch is not required -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.051569] Setting up static identity map for 0x8240 - 0x8274 -Dec 06 16:16:17 RaspberryPi-Gateway systemd[1]: Started Permit User Sessions. --- Subject: Unit systemd-user-sessions.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-user-sessions.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.053215] [bcm2709_boot_secondary] cpu:1 started (0) 17 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.053440] [bcm2709_secondary_init] enter cpu:1 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.053484] CPU1: update cpu_capacity 1024 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.053490] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.053864] [bcm2709_boot_secondary] cpu:2 started (0) 18 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054050] [bcm2709_secondary_init] enter cpu:2 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054070] CPU2: update cpu_capacity 1024 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054076] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054435] [bcm2709_boot_secondary] cpu:3 started (0) 15 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054575] [bcm2709_secondary_init] enter cpu:3 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054595] CPU3: update cpu_capacity 1024 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054600] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054659] Brought up 4 CPUs -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054682] SMP: Total of 4 processors activated (153.60 BogoMIPS). -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054689] CPU: All CPU(s) started in HYP mode. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.054696] CPU: Virtualization extensions available. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.055315] devtmpfs: initialized -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.066008] VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 4 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.066337] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.067056] pinctrl core: initialized pinctrl subsystem -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.067578] NET: Registered protocol family 16 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.072734] DMA: preallocated 4096 KiB pool for atomic coherent allocations -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.079861] bcm2709: Mini UART enabled -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.079906] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.079916] hw-breakpoint: maximum watchpoint size is 8 bytes. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.080069] Serial: AMBA PL011 UART driver -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.080205] uart-pl011 3f201000.uart: could not find pctldev for node /soc/gpio@7e200000/uart0_pins, deferring probe -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.080371] bcm2835-mbox 3f00b880.mailbox: mailbox enabled -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.143457] bcm2835-dma 3f007000.dma: DMA legacy API manager at f3007000, dmachans=0x1 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.144021] SCSI subsystem initialized -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.144203] usbcore: registered new interface driver usbfs -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.144280] usbcore: registered new interface driver hub -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.144371] usbcore: registered new device driver usb -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.150934] raspberrypi-firmware soc:firmware: Attached to firmware from 2017-04-05 11:49 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.162292] clocksource: Switched to clocksource arch_sys_counter -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.208279] FS-Cache: Loaded -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.208553] CacheFiles: Loaded -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.220617] NET: Registered protocol family 2 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.221466] TCP established hash table entries: 8192 (order: 3, 32768 bytes) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.221580] TCP bind hash table entries: 8192 (order: 4, 65536 bytes) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.221768] TCP: Hash tables configured (established 8192 bind 8192) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.221861] UDP hash table entries: 512 (order: 2, 16384 bytes) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.221907] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) -Dec 06 16:16:18 RaspberryPi-Gateway snmpd[243]: pcilib: Cannot open /proc/bus/pci -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.222130] NET: Registered protocol family 1 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.222471] RPC: Registered named UNIX socket transport module. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.222481] RPC: Registered udp transport module. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.222490] RPC: Registered tcp transport module. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.222498] RPC: Registered tcp NFSv4.1 backchannel transport module. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.223451] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.224752] futex hash table entries: 1024 (order: 4, 65536 bytes) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.237770] VFS: Disk quotas dquot_6.6.0 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.238077] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.240175] FS-Cache: Netfs 'nfs' registered for caching -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.241053] NFS: Registering the id_resolver key type -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.241103] Key type id_resolver registered -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.241112] Key type id_legacy registered -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.243394] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.243527] io scheduler noop registered -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.243547] io scheduler deadline registered -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.243601] io scheduler cfq registered (default) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.246086] BCM2708FB: allocated DMA memory fac10000 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.246112] BCM2708FB: allocated DMA channel 0 @ f3007000 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.251142] Console: switching to colour frame buffer device 82x26 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.328820] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.330219] console [ttyS0] disabled -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 0.330292] 3f215040.uart: ttyS0 at MMIO 0x3f215040 (irq = 59, base_baud = 31250000) is a 16550 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.049309] console [ttyS0] enabled -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.054147] bcm2835-rng 3f104000.rng: hwrng registered -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.059455] vc-cma: Videocore CMA driver -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.063452] vc-cma: vc_cma_base = 0x00000000 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.068221] vc-cma: vc_cma_size = 0x00000000 (0 MiB) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.073708] vc-cma: vc_cma_initial = 0x00000000 (0 MiB) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.079401] vc-mem: phys_addr:0x00000000 mem_base=0x3dc00000 mem_size:0x3f000000(1008 MiB) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.102359] brd: module loaded -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.114100] loop: module loaded -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.118177] vchiq: vchiq_init_state: slot_zero = 0xbac80000, is_master = 0 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.126603] Loading iSCSI transport class v2.0-870. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.132174] usbcore: registered new interface driver smsc95xx -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.138087] dwc_otg: version 3.00a 10-AUG-2012 (platform bus) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.344201] Core Release: 2.80a -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.347390] Setting default values for core params -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.352268] Finished setting default values for core params -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.558273] Using Buffer DMA mode -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.561635] Periodic Transfer Interrupt Enhancement - disabled -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.567564] Multiprocessor Interrupt Enhancement - disabled -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.573230] OTG VER PARAM: 0, OTG VER FLAG: 0 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.577650] Dedicated Tx FIFOs mode -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.581481] WARN::dwc_otg_hcd_init:1047: FIQ DMA bounce buffers: virt = 0xbac04000 dma = 0xfac04000 len=9024 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.591490] FIQ FSM acceleration enabled for : -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.591490] Non-periodic Split Transactions -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.591490] Periodic Split Transactions -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.591490] High-Speed Isochronous Endpoints -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.591490] Interrupt/Control Split Transaction hack enabled -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.614187] dwc_otg: Microframe scheduler enabled -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.614231] WARN::hcd_init_fiq:415: FIQ on core 1 at 0x8044accc -Dec 06 16:16:18 RaspberryPi-Gateway PsmSsp[250]: Conf file /etc/debug.ini open success -Dec 06 16:16:18 RaspberryPi-Gateway PsmSsp[250]: ssp_CfmReadCurConfig: Fail to import custom params -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.620238] WARN::hcd_init_fiq:416: FIQ ASM at 0x8044b02c length 36 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.626599] WARN::hcd_init_fiq:441: MPHI regs_base at 0xbb87e000 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.632758] dwc_otg 3f980000.usb: DWC OTG Controller -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.637819] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.645271] dwc_otg 3f980000.usb: irq 62, io mem 0x00000000 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.650964] Init: Port Power? op_state=1 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.654956] Init: Power Port (0) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.658411] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.665319] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.672663] usb usb1: Product: DWC OTG Controller -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.677436] usb usb1: Manufacturer: Linux 4.4.50 dwc_otg_hcd -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.683192] usb usb1: SerialNumber: 3f980000.usb -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.688585] hub 1-0:1.0: USB hub found -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.692459] hub 1-0:1.0: 1 port detected -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.696970] dwc_otg: FIQ enabled -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.696979] dwc_otg: NAK holdoff enabled -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.696987] dwc_otg: FIQ split-transaction FSM enabled -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.697015] Module dwc_common_port init -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.697255] usbcore: registered new interface driver usb-storage -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.703611] mousedev: PS/2 mouse device common for all mice -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.709948] bcm2835-cpufreq: min=600000 max=1200000 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.715198] sdhci: Secure Digital Host Controller Interface driver -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.721466] sdhci: Copyright(c) Pierre Ossman -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.726224] sdhost: log_buf @ bac07000 (fac07000) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.792405] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.800239] mmc-bcm2835 3f300000.mmc: mmc_debug:0 mmc_debug2:0 -Dec 06 16:16:18 RaspberryPi-Gateway sh[294]: Going to check the iptable rules -Dec 06 16:16:18 RaspberryPi-Gateway sh[294]: Enable iptable rules for TDK -Dec 06 16:16:18 RaspberryPi-Gateway sh[294]: Going to start Agent -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.806176] mmc-bcm2835 3f300000.mmc: DMA channel allocated -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.849147] mmc0: host does not support reading read-only switch, assuming write-enable -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.852399] sdhci-pltfm: SDHCI platform and OF driver helper -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.852796] ledtrig-cpu: registered to indicate activity on CPUs -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.852912] hidraw: raw HID events driver (C) Jiri Kosina -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.853095] usbcore: registered new interface driver usbhid -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.853098] usbhid: USB HID core driver -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.853652] Initializing XFRM netlink socket -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.853678] NET: Registered protocol family 17 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.853814] Key type dns_resolver registered -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.854240] Registering SWP/SWPB emulation handler -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.854985] registered taskstats version 1 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.855168] vc-sm: Videocore shared memory driver -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.855175] [vc_sm_connected_init]: start -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.863390] [vc_sm_connected_init]: end - returning 0 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.864749] 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.865131] of_cfs_init -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.865205] of_cfs_init: OK -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.892396] Indeed it is in host mode hprt0 = 00021501 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.941569] mmc0: new high speed SDHC card at address 0001 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.942234] mmcblk0: mmc0:0001 EB1QT 29.8 GiB -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.953561] mmcblk0: p1 p2 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.966170] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.974443] VFS: Mounted root (ext4 filesystem) readonly on device 179:2. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.974565] mmc1: queuing unknown CIS tuple 0x80 (2 bytes) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.976117] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.977672] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 1.980451] mmc1: queuing unknown CIS tuple 0x80 (7 bytes) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.007348] devtmpfs: mounted -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.011074] Freeing unused kernel memory: 472K (80814000 - 8088a000) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.071090] mmc1: new high speed SDIO card at address 0001 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.072329] usb 1-1: new high-speed USB device number 2 using dwc_otg -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.076771] Indeed it is in host mode hprt0 = 00001101 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.210870] systemd[1]: System time before build time, advancing clock. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.272616] usb 1-1: New USB device found, idVendor=0424, idProduct=9514 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.279429] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.287550] hub 1-1:1.0: USB hub found -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.291503] hub 1-1:1.0: 5 ports detected -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.304260] NET: Registered protocol family 10 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.317609] random: systemd: uninitialized urandom read (16 bytes read, 47 bits of entropy available) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.332463] systemd[1]: systemd 230 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.351417] systemd[1]: Detected architecture arm. -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.383109] systemd[1]: Set hostname to . -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.443248] random: systemd: uninitialized urandom read (16 bytes read, 59 bits of entropy available) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.458844] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 61 bits of entropy available) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.459527] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 62 bits of entropy available) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.479391] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 64 bits of entropy available) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.566790] random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.576619] random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.582323] usb 1-1.1: new high-speed USB device number 3 using dwc_otg -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.593070] random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.602868] random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.613144] random: systemd: uninitialized urandom read (16 bytes read, 67 bits of entropy available) -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.692665] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00 -Dec 06 16:16:17 RaspberryPi-Gateway kernel[271]: [ 2.699662] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 -Dec 06 16:16:18 RaspberryPi-Gateway snmpd[243]: pcilib: Cannot find any working access method. -Dec 06 16:16:18 RaspberryPi-Gateway snmpd[243]: pcilib: pci_init failed -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.709942] smsc95xx v1.0.4 -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.775714] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:01:6b:d5 -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.818569] systemd[1]: Listening on Journal Socket. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.842760] systemd[1]: Listening on Journal Socket (/dev/log). -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.872471] systemd[1]: Reached target Network. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.892489] systemd[1]: Reached target Remote File Systems. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.925075] systemd[1]: Created slice User and Session Slice. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.952724] systemd[1]: Started Dispatch Password Requests to Console Directory Watch. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 2.982575] systemd[1]: Listening on Syslog Socket. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.002559] systemd[1]: Listening on udev Kernel Socket. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.022329] usb 1-1.5: new high-speed USB device number 4 using dwc_otg -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.032454] systemd[1]: Reached target Swap. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.052656] systemd[1]: Started Forward Password Requests to Wall Directory Watch. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.097531] systemd[1]: Listening on udev Control Socket. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.123182] systemd[1]: Created slice System Slice. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.143221] usb 1-1.5: New USB device found, idVendor=13b1, idProduct=0041 -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.150202] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=6 -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.157641] usb 1-1.5: Product: Linksys USB3GIGV1 -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.162444] usb 1-1.5: Manufacturer: Linksys -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.166780] usb 1-1.5: SerialNumber: 000001000000 -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.192603] systemd[1]: Mounting Debug File System... -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.215134] systemd[1]: Starting Journal Service... -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.247256] systemd[1]: Mounting Temporary Directory... -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.260546] systemd[1]: Created slice system-serial\x2dgetty.slice. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.332657] systemd[1]: Mounting POSIX Message Queue File System... -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.363575] systemd[1]: Created slice system-getty.slice. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.397037] systemd[1]: Mounting Configuration File System... -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.413963] systemd[1]: Starting Setup Virtual Console... -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.445259] systemd[1]: Starting Apply Kernel Variables... -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.475426] systemd[1]: Starting Remount Root and Kernel File Systems... -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.500249] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.509067] systemd[1]: Starting Create list of required static device nodes for the current kernel... -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.542597] systemd[1]: Reached target Slices. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.562970] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.627540] systemd[1]: Mounted Debug File System. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.652560] systemd[1]: Mounted POSIX Message Queue File System. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.682505] systemd[1]: Mounted Configuration File System. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.712499] systemd[1]: Mounted Temporary Directory. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 3.732856] systemd[1]: Started Journal Service. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.135115] systemd-journald[109]: Received request to flush runtime journal from PID 1 -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.281762] cdc_ether 1-1.5:2.0 eth1: register 'cdc_ether' at usb-3f980000.usb-1.5, CDC Ethernet Device, 94:10:3e:b8:fe:9d -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.297130] usbcore: registered new interface driver cdc_ether -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.415534] lirc_dev: IR Remote Control driver registered, major 244 -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.461582] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000 -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.484806] bcm2835-wdt 3f100000.watchdog: Broadcom BCM2835 watchdog timer -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.487794] lirc_rpi: module is from the staging directory, the quality is unknown, you have been warned. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.703295] random: nonblocking pool is initialized -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.729671] usbcore: registered new interface driver brcmfmac -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.855847] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Aug 29 2016 20:48:16 version 7.45.41.26 (r640327) FWID 01-4527cfab -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 4.893913] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.148211] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.154828] cfg80211: World regulatory domain updated: -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.160040] cfg80211: DFS Master region: unset -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.164499] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.174416] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A) -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.182565] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz, 92000 KHz AUTO), (N/A, 2000 mBm), (N/A) -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.192116] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A) -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.200325] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A) -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.200335] cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s) -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.200342] cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s) -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.200355] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A) -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.200362] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A) -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.443388] lirc_rpi: auto-detected active high receiver on GPIO pin 18 -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.450608] lirc_rpi lirc_rpi: lirc_dev: driver lirc_rpi registered at minor = 0 -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 5.458185] lirc_rpi: driver registered! -Dec 06 16:16:18 RaspberryPi-Gateway syscfg_create[322]: 2017-12-06 16:16:18., ../../../../git/source/syscfg/lib/syscfg_lib.c:405, Enter in function syscfg_create -Dec 06 16:16:18 RaspberryPi-Gateway syscfg_create[322]: 2017-12-06 16:16:18., ../../../../git/source/syscfg/lib/syscfg_lib.c:422, creating shared memory with store type 0, path /nvram/syscfg.db, size 51200, hdr size 0 -Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[329]: 2017-12-06 16:16:18., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[331]: 2017-12-06 16:16:18., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[332]: 2017-12-06 16:16:18., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[332]: system.syscfg commit to store -Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[340]: 2017-12-06 16:16:18., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:18 RaspberryPi-Gateway sh[294]: tdk_firewall_service.sh: v4 rule is missing in iptables, adding now -Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[352]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[352]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[352]: 2017-12-06 16:16:18., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[352]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[352]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[352]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[352]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:18 RaspberryPi-Gateway kernel: ip_tables: (C) 2000-2006 Netfilter Core Team -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 6.086009] ip_tables: (C) 2000-2006 Netfilter Core Team -Dec 06 16:16:18 RaspberryPi-Gateway kernel: syseventd (363): /proc/363/oom_adj is deprecated, please use /proc/363/oom_score_adj instead. -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 6.114401] syseventd (363): /proc/363/oom_adj is deprecated, please use /proc/363/oom_score_adj instead. -Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[363]: 2017-12-06 16:16:18., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[363]: system.sysevent syseventd started. -Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[369]: system.sysevent Starting fork helper process syseventd_fork_helper -Dec 06 16:16:18 RaspberryPi-Gateway sh[294]: tdk_firewall_service.sh: v6 rule is missing in ip6tables, adding now -Dec 06 16:16:18 RaspberryPi-Gateway UTOPIA[383]: system.sysevent syseventd fork helper started using pipe 10 -Dec 06 16:16:18 RaspberryPi-Gateway kernel: ip6_tables: (C) 2000-2006 Netfilter Core Team -Dec 06 16:16:18 RaspberryPi-Gateway kernel[271]: [ 6.181860] ip6_tables: (C) 2000-2006 Netfilter Core Team -Dec 06 16:16:18 RaspberryPi-Gateway sh[294]: 12-06-2017 16:16:18.517053 [main():1178] -Dec 06 16:16:18 RaspberryPi-Gateway sh[294]: Process Group Id : 327 -Dec 06 16:16:18 RaspberryPi-Gateway snmpd[243]: error finding row index in _ifXTable_container_row_restore -Dec 06 16:16:18 RaspberryPi-Gateway snmpd[243]: error finding row index in _ifXTable_container_row_restore -Dec 06 16:16:18 RaspberryPi-Gateway snmpd[243]: error finding row index in _ifXTable_container_row_restore -Dec 06 16:16:18 RaspberryPi-Gateway snmpd[243]: NET-SNMP version 5.7.3 -Dec 06 16:16:18 RaspberryPi-Gateway systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon.. --- Subject: Unit snmpd.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit snmpd.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:18 RaspberryPi-Gateway systemd[1]: Reached target Sound Card. --- Subject: Unit sound.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit sound.target has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:18 RaspberryPi-Gateway systemd-logind[216]: New seat seat0. --- Subject: A new seat seat0 is now available --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat --- --- A new seat seat0 has been configured and is now available. -Dec 06 16:16:18 RaspberryPi-Gateway systemd[1]: Started Serial Getty on ttyAMA0. --- Subject: Unit serial-getty@ttyAMA0.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit serial-getty@ttyAMA0.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:18 RaspberryPi-Gateway PsmSsp[250]: eRT.com.cisco.spvtg.ccsp.psm start to check eRT.com.cisco.spvtg.ccsp.CR status -Dec 06 16:16:18 RaspberryPi-Gateway systemd[1]: Started Getty on tty1. --- Subject: Unit getty@tty1.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit getty@tty1.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:19 RaspberryPi-Gateway systemd[1]: Started Serial Getty on ttyS0. --- Subject: Unit serial-getty@ttyS0.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit serial-getty@ttyS0.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:19 RaspberryPi-Gateway systemd[1]: Reached target Login Prompts. --- Subject: Unit getty.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit getty.target has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:19 RaspberryPi-Gateway systemd[1]: Started Login Service. --- Subject: Unit systemd-logind.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-logind.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:19 RaspberryPi-Gateway systemd[1]: Started CcspCrSsp service. --- Subject: Unit CcspCrSsp.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspCrSsp.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[413]: 2017-12-06 16:16:19., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[413]: system.syscfg commit to store -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[414]: 2017-12-06 16:16:19., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[417]: 2017-12-06 16:16:19., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[418]: 2017-12-06 16:16:19., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[419]: 2017-12-06 16:16:19., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[438]: service.info Registered bridge for bridge-start using /etc/utopia/service.d/service_bridge.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[438]: service.info Registered bridge for bridge-stop using /etc/utopia/service.d/service_bridge.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[438]: service.info Registered bridge for bridge-restart using /etc/utopia/service.d/service_bridge.sh -Dec 06 16:16:19 RaspberryPi-Gateway kernel: 8021q: 802.1Q VLAN Support v1.8 -Dec 06 16:16:19 RaspberryPi-Gateway kernel[271]: [ 7.339764] 8021q: 802.1Q VLAN Support v1.8 -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[443]: service.info Registered forwarding for forwarding-start using /etc/utopia/service.d/service_forwarding.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[443]: service.info Registered forwarding for forwarding-stop using /etc/utopia/service.d/service_forwarding.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[443]: service.info Registered forwarding for forwarding-restart using /etc/utopia/service.d/service_forwarding.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[446]: 2017-12-06 16:16:19., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-start using /etc/utopia/service.d/service_ipv4.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-stop using /etc/utopia/service.d/service_ipv4.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-restart using /etc/utopia/service.d/service_ipv4.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-resyncAll using /etc/utopia/service.d/service_ipv4.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-resync using /etc/utopia/service.d/service_ipv4.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-down using /etc/utopia/service.d/service_ipv4.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-up using /etc/utopia/service.d/service_ipv4.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-set_dyn_config using /etc/utopia/service.d/service_ipv4.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-sync_tsip_all using /etc/utopia/service.d/service_ipv4.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for[ 128.419238] CcspLMLite[3476]: LMlite-CLIENT <963> : Connected Mac = 30:30:31:31:30:31 ipv4-stop_tsip_all using /etc/utopia/service.d/service_ipv4.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-resync_tsip using /etc/utopia/service.d/service_ipv4.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[447]: service.info Registered ipv4 for ipv4-resync_tsip_asn using /etc/utopia/service.d/service_ipv4.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[480]: service.info Registered lan for lan-start using /etc/utopia/service.d/lan_handler.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[480]: service.info Registered lan for lan-stop using /etc/utopia/service.d/lan_handler.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[480]: service.info Registered lan for lan-restart using /etc/utopia/service.d/lan_handler.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[480]: service.info Registered lan for pnm-status using /etc/utopia/service.d/lan_handler.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[480]: service.info Registered lan for bring-lan using /etc/utopia/service.d/lan_handler.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[480]: service.info Registered lan for iot_status using /etc/utopia/service.d/lan_handler.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[480]: service.info Registered lan for ipv4-resync using /etc/utopia/service.d/lan_handler.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[480]: service.info Registered lan for erouter_mode-updated using /etc/utopia/service.d/lan_handler.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[483]: service.info Registered multinet for multinet-start using /etc/utopia/service.d/service_multinet_exec -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[483]: service.info Registered multinet for multinet-stop using /etc/utopia/service.d/service_multinet_exec -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[483]: service.info Registered multinet for multinet-restart using /etc/utopia/service.d/service_multinet_exec -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[483]: service.info Registered multinet for multinet-syncNets using /etc/utopia/service.d/service_multinet_exec -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[483]: service.info Registered multinet for multinet-syncMembers using /etc/utopia/service.d/service_multinet_exec -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[483]: service.info Registered multinet for multinet-down using /etc/utopia/service.d/service_multinet_exec -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[483]: service.info Registered multinet for multinet-up using /etc/utopia/service.d/service_multinet_exec -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[483]: service.info Registered multinet for sw_ext_restore using /etc/utopia/service.d/service_multinet/handle_sw.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Registered wan for wan-start using /etc/utopia/service.d/service_wan.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Registered wan for wan-stop using /etc/utopia/service.d/service_wan.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Registered wan for wan-restart using /etc/utopia/service.d/service_wan.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Unregistered wan from wan-restart -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Registered wan for wan-restart using /etc/utopia/service.d/service_wan.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Registered wan for erouter_mode-updated using /etc/utopia/service.d/service_wan.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Registered wan for dhcp_client-restart using /etc/utopia/service.d/service_wan.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Registered wan for dhcp_client-release using /etc/utopia/service.d/service_wan.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[492]: service.info Registered wan for dhcp_client-renew using /etc/utopia/service.d/service_wan.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[496]: service.info Registered ccsphs for ccsphs-start using /etc/utopia/service.d/service_ccsphs.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[496]: service.info Registered ccsphs - for ccsphs-stop using /etc/utopia/service.d/service_ccsphs.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[496]: service.info Registered ccsphs for ccsphs-restart using /etc/utopia/service.d/service_ccsphs.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[496]: service.info Registered ccsphs for lan-status using /etc/utopia/service.d/service_ccsphs.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[496]: service.info Registered ccsphs for multinet_2-status using /etc/utopia/service.d/service_ccsphs.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[496]: service.info Registered ccsphs for ipv4_5-status using /etc/utopia/service.d/service_ccsphs.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[500]: service.info Registered ddns for ddns-start using /etc/utopia/service.d/service_ddns.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[500]: service.info Registered ddns for ddns-stop using /etc/utopia/service.d/service_ddns.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[500]: service.info Registered ddns for ddns-restart using /etc/utopia/service.d/service_ddns.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[500]: service.info Registered ddns for wan-status using /etc/utopia/service.d/service_ddns.sh -Dec 06 16:16:19 RaspberryPi-Gateway UTOPIA[500]: service.info Registered ddns for current_wan_ipaddr using /etc/utopia/service.d/service_ddns.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[504]: service.info Registered dhcp_server for dhcp_server-start using /etc/utopia/service.d/service_dhcp_server.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[504]: service.info Registered dhcp_server for dhcp_server-stop using /etc/utopia/service.d/service_dhcp_server.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[504]: service.info Registered dhcp_server for dhcp_server-restart using /etc/utopia/service.d/service_dhcp_server.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[504]: service.info Registered dhcp_server for syslog-status using /etc/utopia/service.d/service_dhcp_server.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[504]: service.info Registered dhcp_server for lan-status using /etc/utopia/service.d/service_dhcp_server.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[504]: service.info Registered dhcp_server for dhcp_server-resync using /etc/utopia/service.d/service_dhcp_server.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[511]: 2017-12-06 16:16:20., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[533]: service.info Registered hotspot for hotspot-start using /etc/utopia/service.d/service_multinet/handle_gre.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[533]: service.info Registered hotspot for hotspot-stop using /etc/utopia/service.d/service_multinet/handle_gre.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[533]: service.info Registered hotspot for hotspot-restart using /etc/utopia/service.d/service_multinet/handle_gre.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[533]: service.info Registered hotspot for gre-restart using /etc/utopia/service.d/service_multinet/handle_gre.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[533]: service.info Registered hotspot for gre-forceRestart using /etc/utopia/service.d/service_multinet/handle_gre.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[533]: service.info Registered hotspot for snmp_subagent-status using /etc/utopia/service.d/service_multinet/handle_gre.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[533]: service.info Registered hotspot for hotspot-update_bridges using /etc/utopia/service.d/service_multinet/handle_gre.sh -Dec 06 16:16:20 RaspberryPi-Gateway kernel: MTU Modifier loaded -Dec 06 16:16:20 RaspberryPi-Gateway kernel[271]: [ 7.864739] MTU Modifier loaded -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[552]: service.info Registered sshd for sshd-start using /etc/utopia/service.d/service_sshd.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[552]: service.info Registered sshd for sshd-stop using /etc/utopia/service.d/service_sshd.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[552]: service.info Registered sshd for sshd-restart using /etc/utopia/service.d/service_sshd.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[552]: service.info Registered sshd for bridge-status using /etc/utopia/service.d/service_sshd.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[552]: service.info Registered sshd for lan-status using /etc/utopia/service.d/service_sshd.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[552]: service.info Registered sshd for wan-status using /etc/utopia/service.d/service_sshd.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for routed-start using /etc/utopia/service.d/service_routed.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for routed-stop using /etc/utopia/service.d/service_routed.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for routed-restart using /etc/utopia/service.d/service_routed.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for wan-status using /etc/utopia/service.d/service_routed.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for lan-status using /etc/utopia/service.d/service_routed.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for ipv6_nameserver using /etc/utopia/service.d/service_routed.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for ipv6_prefix using /etc/utopia/service.d/service_routed.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for ripd-restart using /etc/utopia/service.d/service_routed.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for zebra-restart using /etc/utopia/service.d/service_routed.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[575]: service.info Registered routed for staticroute-restart using /etc/utopia/service.d/service_routed.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[582]: service.info Registered crond for crond-start using /etc/utopia/service.d/service_crond.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[582]: service.info Registered crond for crond-stop using /etc/utopia/service.d/service_crond.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[582]: service.info Registered crond for crond-restart using /etc/utopia/service.d/service_crond.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[582]: service.info Registered crond for ntpclient-status using /etc/utopia/service.d/service_crond.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[597]: 2017-12-06 16:16:20., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[218]: 2017-12-06 16:16:20., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[621]: service.info Registered cosa for cosa-start using /etc/utopia/service.d/service_cosa.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[621]: service.info Registered cosa for cosa-stop using /etc/utopia/service.d/service_cosa.sh -Dec 06 16:16:20 RaspberryPi-Gateway UTOPIA[621]: service.info Registered cosa for cosa-restart using /etc/utopia/service.d/service_cosa.sh -Dec 06 16:16:20 RaspberryPi-Gateway PsmSsp[250]: eRT.com.cisco.spvtg.ccsp.psm try to check eRT.com.cisco.spvtg.ccsp.CR health for 1 times, health is 0 -Dec 06 16:16:21 RaspberryPi-Gateway PsmSsp[250]: eRT.com.cisco.spvtg.ccsp.CR is ready, eRT.com.cisco.spvtg.ccsp.psm continue -Dec 06 16:16:20 RaspberryPi-Gateway systemd[1]: Started PsmSsp service. --- Subject: Unit PsmSsp.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit PsmSsp.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:21 RaspberryPi-Gateway systemd[1]: Starting CcspPandMSsp service... --- Subject: Unit CcspPandMSsp.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspPandMSsp.service has begun starting up. -Dec 06 16:16:21 RaspberryPi-Gateway CcspPandMSsp[627]: Conf file /etc/debug.ini open success -Dec 06 16:16:21 RaspberryPi-Gateway CcspPandMSsp[627]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. -Dec 06 16:16:21 RaspberryPi-Gateway CcspPandMSsp[627]: eRT.com.cisco.spvtg.ccsp.pam start to check eRT.com.cisco.spvtg.ccsp.psm status -Dec 06 16:16:21 RaspberryPi-Gateway CcspPandMSsp[627]: eRT.com.cisco.spvtg.ccsp.psm is ready, eRT.com.cisco.spvtg.ccsp.pam continue -Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: Conf file /etc/debug.ini open success -Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. -Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: ****LOADING DM LIBRARY*************** -Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: THE LIB NAME =libtr181.so -Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: ****LOADING DM LIBRARY*************** -Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: PLUGIN libtr181.so LOADED SUCCESSFULLY -Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: -- CosaBackEndManagerCreate 194 -Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: PandM DM initialize... -Dec 06 16:16:22 RaspberryPi-Gateway kernel: smsc95xx 1-1.1:1.0 erouter0: renamed from eth0 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway kernel[271]: [ 10.253100] smsc95xx 1-1.1:1.0 erouter0: renamed from eth0 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDeviceInfoInitialize : bxfinitywifiEnable value is : 0 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::sw_1, value Interface1,1 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::sw_2, value Interface2,2 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::sw_3, value Interface3,3 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::sw_4, value Interface4,4 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway kernel: smsc95xx 1-1.1:1.0 erouter0: hardware isn't capable of remote wakeup -Dec 06 16:16:22 RaspberryPi-Gateway kernel: IPv6: ADDRCONF(NETDEV_UP): erouter0: link is not ready -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::erouter0, value Interface5,5 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway kernel[271]: [ 10.425180] smsc95xx 1-1.1:1.0 erouter0: hardware isn't capable of remote wakeup -Dec 06 16:16:22 RaspberryPi-Gateway kernel[271]: [ 10.425864] IPv6: ADDRCONF(NETDEV_UP): erouter0: link is not ready -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key CosaEthIntIDs::lbr0, value Interface6,6 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[669]: crond.status starting crond service -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 423 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 421 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 422 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 424 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 500 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 423 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 421 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 422 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 424 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 500 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 423 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 421 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 422 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 424 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_GetIndexed: Failed on index 500 -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:22 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:22., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway sh[294]: Starting Agent Monitor Process.. -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 431 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 432 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 433 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 434 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 431 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 432 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 433 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 434 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 161 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 159 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 149 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 151 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 154 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 162 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 160 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 165 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 166 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 167 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 168 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 169 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 170 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 414 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 33 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 34 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 35 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 36 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 99 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: config.utapi s_sysevent_connect: open new sysevent fd 8 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:23., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway kernel: uart-pl011 3f201000.uart: no DMA platform data -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: Error: argument "erouter" is wrong: table id value is invalid -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: Cannot find device "brlan0" -Dec 06 16:16:23 RaspberryPi-Gateway kernel[271]: [ 11.584550] uart-pl011 3f201000.uart: no DMA platform data -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: Error: argument "erouter" is wrong: table id value is invalid -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway systemd[1]: Created slice User Slice of root. --- Subject: Unit user-0.slice has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit user-0.slice has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: Cannot find device "wan0" -Dec 06 16:16:24 RaspberryPi-Gateway systemd[1]: Starting User Manager for UID 0... --- Subject: Unit user@0.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit user@0.service has begun starting up. -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: Error: argument "erouter" is wrong: table id value is invalid -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: Error: argument "erouter" is wrong: table id value is invalid -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: [DM-Bridge] CosaDmlBrgInit -- in: 1512576984.159619 -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway systemd-logind[216]: New session c1 of user root. --- Subject: A new session c1 has been created for user root --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat --- --- A new session with the ID c1 has been created for the user root. --- --- The leading process of the session is 408. -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway systemd[740]: user@0.service: Failed at step PAM spawning /lib/systemd/systemd: Operation not permitted --- Subject: Process /lib/systemd/systemd could not be executed --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- The process /lib/systemd/systemd could not be executed and failed. --- --- The error number returned by this process is 1. -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway systemd[1]: Started User Manager for UID 0. --- Subject: Unit user@0.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit user@0.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway systemd[1]: Started Session c1 of user root. --- Subject: Unit session-c1.scope has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit session-c1.scope has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:23 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway login[408]: pam_lastlog(login:session): file /var/log/lastlog created -Dec 06 16:16:24 RaspberryPi-Gateway login[403]: pam_lastlog(login:session): file /var/log/lastlog created -Dec 06 16:16:24 RaspberryPi-Gateway login[403]: pam_lastlog(login:session): file /var/log/lastlog is locked/write -Dec 06 16:16:24 RaspberryPi-Gateway login[408]: pam_unix(login:session): session opened for user root by LOGIN(uid=0) -Dec 06 16:16:24 RaspberryPi-Gateway snmpd[243]: Name of an interface changed. Such interfaces will keep its old name in IF-MIB. -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway systemd[740]: PAM unable to dlopen(/lib/security/pam_loginuid.so): /lib/security/pam_loginuid.so: cannot open shared object file: No such file or directory -Dec 06 16:16:24 RaspberryPi-Gateway systemd[740]: PAM adding faulty module: /lib/security/pam_loginuid.so -Dec 06 16:16:24 RaspberryPi-Gateway systemd[740]: pam_unix(systemd-user:session): session opened for user root by (uid=0) -Dec 06 16:16:24 RaspberryPi-Gateway login[750]: ROOT LOGIN on '/dev/ttyS0' -Dec 06 16:16:24 RaspberryPi-Gateway kernel: IPv6: ADDRCONF(NETDEV_CHANGE): erouter0: link becomes ready -Dec 06 16:16:24 RaspberryPi-Gateway kernel: smsc95xx 1-1.1:1.0 erouter0: link up, 100Mbps, full-duplex, lpa 0xC1E1 -Dec 06 16:16:24 RaspberryPi-Gateway kernel[271]: [ 12.036712] IPv6: ADDRCONF(NETDEV_CHANGE): erouter0: link becomes ready -Dec 06 16:16:24 RaspberryPi-Gateway kernel[271]: [ 12.037602] smsc95xx 1-1.1:1.0 erouter0: link up, 100Mbps, full-duplex, lpa 0xC1E1 -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: [DM-Bridge] CosaDmlBrgInit -- OUT: 1512576984.433492 -Dec 06 16:16:24 RaspberryPi-Gateway kernel: gre: GRE over IPv4 demultiplexor driver -Dec 06 16:16:24 RaspberryPi-Gateway kernel: ip_gre: GRE over IPv4 tunneling driver -Dec 06 16:16:24 RaspberryPi-Gateway kernel[271]: [ 12.155950] gre: GRE over IPv4 demultiplexor driver -Dec 06 16:16:24 RaspberryPi-Gateway kernel[271]: [ 12.160779] ip_gre: GRE over IPv4 tunneling driver -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 106 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 99 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 100 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 101 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 102 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 103 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 109 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key PPP_Interface_tr_alias, value Interface1 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_WriteLock: Acquring write lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 108 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: sh: avahi-daemon: command not found -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: sh: avahi-autoipd: command not found -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key dhcpv6s00::serverenable, value 1 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: ParseZebraRaConf: fail to open file /etc/zebra.conf -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 4 -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 8 -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 9 -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 1 -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 7 -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 6 -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 5 -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 3 -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: 2 -Dec 06 16:16:24 RaspberryPi-Gateway CcspPandMSsp[627]: **************** sysevent set pnm-status up -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 118 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 119 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 120 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 121 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 122 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 123 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 124 -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: UTC is not enabled ************* -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDmlTimeGetCfg: UTC Enable file not exists -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: vsystem: ps | grep syslogd | grep -v grep >/dev/null -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 72 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 73 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway systemd-logind[216]: New session c2 of user root. --- Subject: A new session c2 has been created for user root --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat --- --- A new session with the ID c2 has been created for the user root. --- --- The leading process of the session is 403. -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway systemd[1]: Started Session c2 of user root. --- Subject: Unit session-c2.scope has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit session-c2.scope has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDmlRLog_Init: Nothing need to do ! -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDmlRLog_GetConf: get config success ! -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDml_GreInit:387> sysevent_open success -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDml_GreInit:403> Init Hotspot GRE Done -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: load_ipv6rd_conf: no 6RD info in config file -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: -- CosaBackEndManagerInitialize 330 CosaGreTunnelCreate -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: -- CosaGreTunnelCreate CosaGreTunnelInitialize >> -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDml_GreTunnelInit:433> sysevent_open success -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDml_GreTunnelInit:449> Init Hotspot GRE Done -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 82 -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: -- CosaGreTunnelCreate CosaGreTunnelInitialize << -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:24., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:24 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[853]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDml_HotspotInit:323> Init Hotspot Done -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway login[403]: pam_unix(login:session): session opened for user root by LOGIN(uid=0) -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway login[898]: ROOT LOGIN on '/dev/ttyAMA0' -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: PandM DM initialization done! -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.syscfg commit to store -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.syscfg commit to store -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[921]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[927]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[933]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[936]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[945]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 106 -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 99 -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 100 -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 101 -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 102 -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 103 -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 109 -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 108 -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: Error: argument "erouter" is wrong: table id value is invalid -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: Cannot find device "brlan0" -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: Error: argument "erouter" is wrong: table id value is invalid -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[951]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[962]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[974]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[978]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: Cannot find device "wan0" -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: Error: argument "erouter" is wrong: table id value is invalid -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: Error: argument "erouter" is wrong: table id value is invalid -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[993]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway CcspPandMSsp[627]: fe80::/64 proto kernel metric 256 pref medium -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key tr_routing_v6entry.fe80::/64_*_erouter0.instance, value 1 -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key tr_routing_v6entry.fe80::/64_*_erouter0.alias, value IPv6Forwarding1 -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: config.utctx UtopiaTransact_Set: key tr_routing_v6entry.fe80::/64_*_erouter0.enabled, value 1 -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 414 -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[999]: 2017-12-06 16:16:25., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 33 -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 34 -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 35 -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 36 -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Get: Failed on index 99 -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:25 RaspberryPi-Gateway UTOPIA[632]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1060]: 2017-12-06 16:16:26., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:26 RaspberryPi-Gateway systemd[1]: Started CcspPandMSsp service. --- Subject: Unit CcspPandMSsp.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspPandMSsp.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:26 RaspberryPi-Gateway systemd[1]: Starting CcspTandDSsp service... --- Subject: Unit CcspTandDSsp.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspTandDSsp.service has begun starting up. -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1078]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:26 RaspberryPi-Gateway CcspPandMSsp[627]: Entering P&M loop -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1078]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1078]: 2017-12-06 16:16:26., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1078]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1078]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1078]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:26 RaspberryPi-Gateway systemd[1]: Starting Check WIFI support on RaspberryPi Device... --- Subject: Unit checkrpiwifisupport.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit checkrpiwifisupport.service has begun starting up. -Dec 06 16:16:26 RaspberryPi-Gateway systemd[1]: Started CcspTandDSsp service. --- Subject: Unit CcspTandDSsp.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspTandDSsp.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1101]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1101]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1101]: 2017-12-06 16:16:26., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1101]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1101]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1101]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1101]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1101]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:26 RaspberryPi-Gateway sh[1100]: Wifi (single band) driver is initialized -Dec 06 16:16:26 RaspberryPi-Gateway sh[1100]: checking for dual band support:1 -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: 2017-12-06 16:16:26., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1135]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:26 RaspberryPi-Gateway sh[1100]: wlan1 No such device -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1181]: dhcpv6c.status DHCPv6 Client is not enabled -Dec 06 16:16:26 RaspberryPi-Gateway CcspPandMSsp[627]: killall: dibbler-client: no process killed -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1199]: 2017-12-06 16:16:26., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:26 RaspberryPi-Gateway kernel: bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this. -Dec 06 16:16:26 RaspberryPi-Gateway kernel[271]: [ 14.567887] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this. -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1270]: 2017-12-06 16:16:26., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:26 RaspberryPi-Gateway UTOPIA[1274]: 2017-12-06 16:16:26., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1291]: 2017-12-06 16:16:27., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1300]: 2017-12-06 16:16:27., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:27 RaspberryPi-Gateway kernel: device eth1 entered promiscuous mode -Dec 06 16:16:27 RaspberryPi-Gateway kernel: brlan0: port 1(eth1) entered forwarding state -Dec 06 16:16:27 RaspberryPi-Gateway kernel: brlan0: port 1(eth1) entered forwarding state -Dec 06 16:16:27 RaspberryPi-Gateway kernel[271]: [ 14.751485] device eth1 entered promiscuous mode -Dec 06 16:16:27 RaspberryPi-Gateway kernel[271]: [ 14.751723] brlan0: port 1(eth1) entered forwarding state -Dec 06 16:16:27 RaspberryPi-Gateway kernel[271]: [ 14.751765] brlan0: port 1(eth1) entered forwarding state -Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1365]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1365]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1365]: 2017-12-06 16:16:27., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1365]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1365]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1365]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:27 RaspberryPi-Gateway sh[1100]: checking for dual band support:2 -Dec 06 16:16:27 RaspberryPi-Gateway sh[1100]: wlan1 No such device -Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1482]: 2017-12-06 16:16:27., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:27 RaspberryPi-Gateway UTOPIA[1549]: 2017-12-06 16:16:27., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1626]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:28 RaspberryPi-Gateway systemd[1]: Started TDK Test Agent Start. --- Subject: Unit tdk.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit tdk.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:28 RaspberryPi-Gateway systemd[1]: Reached target Multi-User System. --- Subject: Unit multi-user.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit multi-user.target has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1630]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1627]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:28 RaspberryPi-Gateway systemd[1]: Starting Update UTMP about System Runlevel Changes... --- Subject: Unit systemd-update-utmp-runlevel.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-update-utmp-runlevel.service has begun starting up. -Dec 06 16:16:28 RaspberryPi-Gateway systemd[1]: Started Update UTMP about System Runlevel Changes. --- Subject: Unit systemd-update-utmp-runlevel.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit systemd-update-utmp-runlevel.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:28 RaspberryPi-Gateway sh[1100]: checking for dual band support:3 -Dec 06 16:16:28 RaspberryPi-Gateway sh[1100]: wlan1 No such device -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1716]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:28 RaspberryPi-Gateway CcspPandMSsp[627]: killall: dibbler-client: no process killed -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1731]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1733]: ddns.status (1648) wan state is down. No ddns update possible -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1732]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1740]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1757]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1821]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: 2017-12-06 16:16:28., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:28 RaspberryPi-Gateway UTOPIA[1845]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1840]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1867]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1881]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1887]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1873]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1895]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1903]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1910]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1926]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1971]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1973]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1978]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1980]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[1986]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway CcspPandMSsp[627]: sh: /etc/dibbler/dibbler-init.sh: No such file or directory -Dec 06 16:16:29 RaspberryPi-Gateway CcspPandMSsp[627]: | Dibbler - a portable DHCPv6, version 1.0.1 (CLIENT, Linux port) -Dec 06 16:16:29 RaspberryPi-Gateway CcspPandMSsp[627]: | Authors : Tomasz Mrugalski,Marek Senderski -Dec 06 16:16:29 RaspberryPi-Gateway CcspPandMSsp[627]: | Licence : GNU GPL v2 only. Developed at Gdansk University of Technology. -Dec 06 16:16:29 RaspberryPi-Gateway CcspPandMSsp[627]: | Homepage: http://klub.com.pl/dhcpv6/ -Dec 06 16:16:29 RaspberryPi-Gateway CcspPandMSsp[627]: Starting daemon... -Dec 06 16:16:29 RaspberryPi-Gateway sh[1100]: checking for dual band support:4 -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2014]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2023]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2027]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2024]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2029]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway sh[1100]: wlan1 No such device -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2031]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2039]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2042]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2042]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2042]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2042]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2042]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2042]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2074]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2074]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2074]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2074]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2074]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2074]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2074]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2074]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2092]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2093]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2100]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2103]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:29 RaspberryPi-Gateway UTOPIA[2105]: 2017-12-06 16:16:29., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2116]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2120]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2122]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2126]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2165]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:30 RaspberryPi-Gateway CcspPandMSsp[627]: CosaDmlDHCPv6sTriggerRestart -- 3063 !!!!!!!!!!!!!!!!!! -Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2194]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:30 RaspberryPi-Gateway sh[1100]: checking for dual band support:5 -Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq[2232]: started, version 2.76 cachesize 150 -Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq[2232]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect no-inotify -Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq-dhcp[2232]: DHCP, IP range 10.0.0.2 -- 10.0.0.253, lease time 7d -Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq[2232]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# -Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq[2232]: reading /etc/resolv.conf -Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq[2232]: using nameserver 8.8.8.8#53 -Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq[2232]: using nameserver 8.8.4.4#53 -Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq[2232]: read /etc/hosts - 9 addresses -Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq-dhcp[2232]: read /etc/dhcp_static_hosts -Dec 06 16:16:30 RaspberryPi-Gateway dnsmasq-dhcp[2232]: read /var/dhcp_options -Dec 06 16:16:30 RaspberryPi-Gateway sh[1100]: wlan1 No such device -Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2263]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2265]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2267]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2269]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2271]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2273]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2277]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2279]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:30 RaspberryPi-Gateway UTOPIA[2282]: 2017-12-06 16:16:30., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2316]: system.utctx Utopia_Init: Initializing -Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2316]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2316]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2316]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2316]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2316]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2316]: system.utctx Utopia_Free: Freeing -Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2316]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2323]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2326]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2328]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2329]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2335]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2336]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2337]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2356]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:31 RaspberryPi-Gateway UTOPIA[2372]: 2017-12-06 16:16:31., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:31 RaspberryPi-Gateway dnsmasq[2232]: read /etc/hosts - 9 addresses -Dec 06 16:16:31 RaspberryPi-Gateway dnsmasq-dhcp[2232]: read /etc/dhcp_static_hosts -Dec 06 16:16:31 RaspberryPi-Gateway dnsmasq-dhcp[2232]: read /var/dhcp_options -Dec 06 16:16:32 RaspberryPi-Gateway systemd[1]: Started Check WIFI support on RaspberryPi Device. --- Subject: Unit checkrpiwifisupport.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit checkrpiwifisupport.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:32 RaspberryPi-Gateway systemd[1]: Starting Cosa service... --- Subject: Unit ccspwifiagent.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit ccspwifiagent.service has begun starting up. -Dec 06 16:16:32 RaspberryPi-Gateway CcspWifiSsp[2389]: eRT.com.cisco.spvtg.ccsp.wifi start to check eRT.com.cisco.spvtg.ccsp.psm status -Dec 06 16:16:32 RaspberryPi-Gateway CcspWifiSsp[2389]: eRT.com.cisco.spvtg.ccsp.psm is ready, eRT.com.cisco.spvtg.ccsp.wifi continue -Dec 06 16:16:32 RaspberryPi-Gateway systemd[1]: Started Cosa service. --- Subject: Unit ccspwifiagent.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit ccspwifiagent.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:32 RaspberryPi-Gateway systemd[1]: Startup finished in 2.169s (kernel) + 18.267s (userspace) = 20.437s. --- Subject: System start-up is now complete --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- All system services necessary queued for starting at boot have been --- successfully started. Note that this does not mean that the machine is --- now idle as services might still be busy with completing start-up. --- --- Kernel start-up required 2169585 microseconds. --- --- Initial RAM disk start-up required INITRD_USEC microseconds. --- --- Userspace start-up required 18267451 microseconds. -Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: Conf file /etc/debug.ini open success -Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. -Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: ****LOADING DM LIBRARY*************** -Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: THE LIB NAME =libwifi.so -Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: ****LOADING DM LIBRARY*************** -Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: PLUGIN libwifi.so LOADED SUCCESSFULLY -Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiInit -Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetFactoryResetPsmData g_Subsytem = eRT. -Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetFactoryResetPsmData eRT.com.cisco.spvtg.ccsp.tr181pa.Device.WiFi.FactoryReset = 0 -Dec 06 16:16:33 RaspberryPi-Gateway UTOPIA[2401]: 2017-12-06 16:16:33., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: gre0 no wireless extensions. -Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: brlan0 no wireless extensions. -Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: erouter0 no wireless extensions. -Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: gretap0 no wireless extensions. -Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: lo no wireless extensions. -Dec 06 16:16:33 RaspberryPi-Gateway CcspWifiSsp[2389]: eth1 no wireless extensions. -Dec 06 16:16:33 RaspberryPi-Gateway systemd[1]: Configuration file /lib/systemd/system/hostapd.service is marked executable. Please remove executable permission bits. Proceeding anyway. -Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: Regulatory domain changed to country: US -Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: DFS Master region: FCC -Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) -Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A) -Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (N/A) -Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (0 s) -Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2300 mBm), (0 s) -Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A) -Dec 06 16:16:33 RaspberryPi-Gateway kernel: cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A) -Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676759] cfg80211: Regulatory domain changed to country: US -Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676782] cfg80211: DFS Master region: FCC -Dec 06 16:16:34 RaspberryPi-Gateway systemd[1]: Starting Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator... --- Subject: Unit hostapd.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit hostapd.service has begun starting up. -Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676791] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time) -Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676805] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A) -Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676819] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (N/A) -Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676856] cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2300 mBm), (0 s) -Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676869] cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2300 mBm), (0 s) -Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676880] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A) -Dec 06 16:16:33 RaspberryPi-Gateway kernel[271]: [ 21.676892] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A) -Dec 06 16:16:34 RaspberryPi-Gateway sh[2413]: killall: hostapd: no process killed -Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: wlan1 No such device -Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: Configuration file: /nvram/hostapd0.conf -Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: Failed to create interface mon.wlan0: -95 (Operation not supported) -Dec 06 16:16:35 RaspberryPi-Gateway kernel: brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists -Dec 06 16:16:35 RaspberryPi-Gateway kernel: brcmfmac: brcmf_add_if: ignore IF event -Dec 06 16:16:35 RaspberryPi-Gateway kernel[271]: [ 22.853900] brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists -Dec 06 16:16:35 RaspberryPi-Gateway kernel[271]: [ 22.860551] brcmfmac: brcmf_add_if: ignore IF event -Dec 06 16:16:35 RaspberryPi-Gateway kernel: IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready -Dec 06 16:16:35 RaspberryPi-Gateway kernel[271]: [ 22.870786] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready -Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: wlan0: Could not connect to kernel driver -Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: Using interface wlan0 with hwaddr b8:27:eb:54:3e:80 and ssid "RPi3_RDKB-AP0" -Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: random: Only 15/20 bytes of strong random data available from /dev/random -Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: random: Not enough entropy pool available for secure operations -Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: WPA: Not enough entropy in random pool for secure operations - update keys later when the first station connects -Dec 06 16:16:35 RaspberryPi-Gateway kernel: brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists -Dec 06 16:16:35 RaspberryPi-Gateway kernel: brcmfmac: brcmf_add_if: ignore IF event -Dec 06 16:16:35 RaspberryPi-Gateway kernel[271]: [ 23.027150] brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists -Dec 06 16:16:35 RaspberryPi-Gateway kernel[271]: [ 23.033854] brcmfmac: brcmf_add_if: ignore IF event -Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: wlan0: interface state UNINITIALIZED->ENABLED -Dec 06 16:16:35 RaspberryPi-Gateway sh[2413]: wlan0: AP-ENABLED -Dec 06 16:16:35 RaspberryPi-Gateway systemd[1]: hostapd.service: PID file /run/hostapd.pid not readable (yet?) after start: No such file or directory -Dec 06 16:16:35 RaspberryPi-Gateway kernel: IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready -Dec 06 16:16:35 RaspberryPi-Gateway kernel[271]: [ 23.105423] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready -Dec 06 16:16:35 RaspberryPi-Gateway systemd[1]: Started Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator. --- Subject: Unit hostapd.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit hostapd.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: [prepare_hostapd_conf]: Default files /usr/ccsp/wifi/hostapd0.conf and /usr/ccsp/wifi/hostapd1.conf presents!! -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: [prepare_hostapd_conf]: /nvram/hostapd0.conf file allready exits!! -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: [prepare_hostapd_conf]: /nvram/hostapd1.conf file allready exits!! -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiCheckWmmParams -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiCheckWmmParams: Resetting Wmm parameters -Dec 06 16:16:37 RaspberryPi-Gateway kernel: device wlan0 entered promiscuous mode -Dec 06 16:16:37 RaspberryPi-Gateway kernel: brlan0: port 2(wlan0) entered forwarding state -Dec 06 16:16:37 RaspberryPi-Gateway kernel: brlan0: port 2(wlan0) entered forwarding state -Dec 06 16:16:37 RaspberryPi-Gateway kernel[271]: [ 25.135399] device wlan0 entered promiscuous mode -Dec 06 16:16:37 RaspberryPi-Gateway kernel[271]: [ 25.135488] brlan0: port 2(wlan0) entered forwarding state -Dec 06 16:16:37 RaspberryPi-Gateway kernel[271]: [ 25.135522] brlan0: port 2(wlan0) entered forwarding state -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetResetHotSpotRequired g_Subsytem = eRT. -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetResetHotSpotRequired: found BssHotSpot value = 0 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetResetHotSpotRequired: found BssHotSpot value = 0 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0CosaDmlWiFiInit: radioActive wifi0 = TRUE -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiInit: radioActive wifi1 = FALSE -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiInit: noEnableVaps = FALSE -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData g_Subsytem = eRT. -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Got 9 Bridge instances -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 0 is Bridge instances 4 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.4.Members.WiFi returned ath5 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.4.Vid returned 103 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.4.l3net returned (null) -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath5 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 1 is Bridge instances 8 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.8.Members.WiFi returned ath9 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.8.Vid returned 105 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.8.l3net returned (null) -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath9 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 2 is Bridge instances 9 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 3 is Bridge instances 1 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.1.Members.WiFi returned ath0 ath1 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.1.Vid returned 100 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.1.l3net returned 4 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l3net.4.V4Addr returned 10.0.0.254 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l3net.4.V4SubnetMask returned 255.255.255.0 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath0 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath1 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 4 is Bridge instances 7 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.7.Members.WiFi returned ath8 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.7.Vid returned 104 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.7.l3net returned (null) -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath8 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 5 is Bridge instances 6 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.6.Members.WiFi returned ath6 ath7 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.6.Vid returned 106 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.6.l3net returned (null) -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath6 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath7 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 6 is Bridge instances 5 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.5.Members.WiFi returned ath14 ath15 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.5.Vid returned 107 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.5.l3net returned (null) -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath14 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath15 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 7 is Bridge instances 3 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.3.Members.WiFi returned ath4 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.3.Vid returned 102 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.3.l3net returned (null) -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath4 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: Index 8 is Bridge instances 2 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.2.Members.WiFi returned ath2 ath3 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.l2net.2.Vid returned 101 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: dmsb.atom.l2net.2.l3net returned (null) -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath2 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetBridgePsmData: ssidName = ath3 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetResetRequired g_Subsytem = eRT. -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetResetRequired eRT.com.cisco.spvtg.ccsp.Device.WiFi.VlanCfgVerion = 2 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiInit: Cosa_Init returned True -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: -- CosaDmlWiFi_startDCSScanThread 14633 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFi_startDCSScanThread -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiCheckPreferPrivateFeature -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiCheckPreferPrivateFeature returning -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioGetEntry -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetRadioPsmData g_Subsytem = eRT. -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Error for wireless request "Set Fragmentation Threshold" (8B24) : -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: SET failed on device ath0 ; No such device. -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Error for wireless request "Set RTS Threshold" (8B22) : -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: SET failed on device ath0 ; No such device. -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is hw_mode -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string=g -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: G -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Returning from getRadioStandard -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetRadioPsmData: Found TransmitPower in PSM 100 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioSetTransmitPowerPercent: enter wlanIndex 0 transmitPowerPercent 100 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Error for wireless request "Set Tx Power" (8B26) : -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: SET failed on device ath0 ; No such device. -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: -- CosaDmlWiFi_setDCSChanPool 14708 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFi_setDCSChanPool -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: -- CosaDmlWiFi_setDCSScan 14651 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFi_setDCSScan -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioGetCfg: LastChange 1512576997 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0wlan0 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is hw_mode -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string=g -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: G -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Returning from getRadioStandard -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is channel -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: *output_long=6 output from hal=06 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is vht_oper_chwidth -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioSetTransmitPowerPercent: enter wlanIndex 0 transmitPowerPercent 100 -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: Error for wireless request "Set Tx Power" (8B26) : -Dec 06 16:16:37 RaspberryPi-Gateway CcspWifiSsp[2389]: SET failed on device ath0 ; No such device. -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: ath0 No such device -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is basic_rates -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is hw_mode -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is supported_rates -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiRadioGetSinfo -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: ath0 No such device -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioGetSinfo: wifi_getRadioMaxBitRate returned -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: wlan0AP Index for band 0 is 0CosaDmlWiFiRadioGetEntry -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetRadioPsmData g_Subsytem = eRT. -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Error for wireless request "Set RTS Threshold" (8B22) : -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: SET failed on device ath1 ; No such device. -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is hw_mode -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string=a -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Invalid Mode -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Returning from getRadioStandard -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetRadioPsmData: Found TransmitPower in PSM 100 -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioSetTransmitPowerPercent: enter wlanIndex 1 transmitPowerPercent 100 -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Error for wireless request "Set Tx Power" (8B26) : -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: SET failed on device ath1 ; No such device. -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: -- CosaDmlWiFi_setDCSChanPool 14708 -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFi_setDCSChanPool -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: -- CosaDmlWiFi_setDCSScan 14651 -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFi_setDCSScan -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioGetCfg: LastChange 1512576998 -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: wlan1 no frequency information. -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1wlan1 -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is hw_mode -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string=a -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Invalid Mode -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Returning from getRadioStandard -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is channel -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: *output_long=36 output from hal=36 -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is vht_oper_chwidth -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioSetTransmitPowerPercent: enter wlanIndex 1 transmitPowerPercent 100 -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: Error for wireless request "Set Tx Power" (8B26) : -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: SET failed on device ath1 ; No such device. -Dec 06 16:16:38 RaspberryPi-Gateway CcspWifiSsp[2389]: ath1 No such device -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is basic_rates -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is hw_mode -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is supported_rates -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiRadioGetSinfo -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: ath1 No such device -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiRadioGetSinfo: wifi_getRadioMaxBitRate returned -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wlan1 no frequency information. -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wlan1AP Index for band 1 is 1CosaDmlWiFiSsidGetEntry ulIndex = 0 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 0 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : RPi3_RDKB-AP0getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.SSID -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: gre0 no wireless extensions. -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: brlan0 no wireless extensions. -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: erouter0 no wireless extensions. -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: gretap0 no wireless extensions. -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: lo no wireless extensions. -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: eth1 no wireless extensions. -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0AP Index for band 0 is 0AP Index for band 0 is 0CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 1 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: sh: -c: line 2: syntax error near unexpected token `|' -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: sh: -c: line 2: ` | grep HWaddr' -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd0.conf -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wlan0 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: ctrl_interface=/var/run/hostapd0 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: B8:27:EB:54:3E:80 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 1 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 1 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : RPi3_RDKB-AP1getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.SSID -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 2 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: ifconfig: wlan1: error fetching interface information: Device not found -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: sh: -c: line 2: syntax error near unexpected token `|' -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: sh: -c: line 2: ` | grep HWaddr' -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd1.conf -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wlan1 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: ctrl_interface=/var/run/hostapd1 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 2 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 2 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd2.conf: No such file or directory -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.3.SSID -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 3 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd2.conf: No such file or directory -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd2.conf -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 3 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 3 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd3.conf: No such file or directory -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.4.SSID -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 4 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd3.conf: No such file or directory -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd3.conf -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 4 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 4 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd4.conf: No such file or directory -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.5.SSID -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 5 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd4.conf: No such file or directory -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd4.conf -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 5 -Dec 06 16:16:39 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 5 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd5.conf: No such file or directory -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.6.SSID -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 6 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd5.conf: No such file or directory -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd5.conf -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 6 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 6 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd6.conf: No such file or directory -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.7.SSID -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 7 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd6.conf: No such file or directory -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd6.conf -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 7 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 7 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd7.conf: No such file or directory -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.8.SSID -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 8 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd7.conf: No such file or directory -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd7.conf -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 8 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 8 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd8.conf: No such file or directory -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.9.SSID -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 9 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd8.conf: No such file or directory -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd8.conf -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 9 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 9 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd9.conf: No such file or directory -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.10.SSID -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 10 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd9.conf: No such file or directory -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd9.conf -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 10 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 10 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd10.conf: No such file or directory -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.11.SSID -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 11 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd10.conf: No such file or directory -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd10.conf -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 11 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 11 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd11.conf: No such file or directory -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.12.SSID -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 12 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd11.conf: No such file or directory -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd11.conf -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 12 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 12 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd12.conf: No such file or directory -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:16:40 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.13.SSID -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 13 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd12.conf: No such file or directory -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd12.conf -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 13 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 13 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd13.conf: No such file or directory -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.14.SSID -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 14 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd13.conf: No such file or directory -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd13.conf -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 14 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 14 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd14.conf: No such file or directory -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.15.SSID -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 15 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd14.conf: No such file or directory -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd14.conf -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiSsidGetEntry ulIndex = 15 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: [CosaDmlWiFiSsidGetCfg] THE wlanIndex = 15 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd15.conf: No such file or directory -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.16.SSID -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiSsidGetSinfo: ulInstanceNumber = 16 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd15.conf: No such file or directory -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getBaseBSSID -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'interface=' /nvram/hostapd15.conf -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Error 2031:wifi_getBaseBSSID:../git/source/wifi/wifi_hal.c -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath0 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath0 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0AP Index for band 0 is 0CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 0 ulInstance 1 enabled = TRUE -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 0, 0 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath0 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0CosaDmlWiFiApSecGetEntry pSsid = ath0 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath0 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE0' /etc/sec_file.txt -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string=11i -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 0 return code = 0 for auth mode = SharedAuthentication -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string=rdk@1234 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE0' /etc/sec_file.txt -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is rsn_pairwise -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=TKIP CCMPgetDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.Passphrase -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 1 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 1 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 1 count = 0 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath1 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath1 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 1 ulInstance 2 enabled = FALSE -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 1, 0 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath1 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath1 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath1 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE1' /etc/sec_file.txt -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string=11i -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 1 return code = 0 for auth mode = SharedAuthentication -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string=rdk@1234 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE1' /etc/sec_file.txt -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is rsn_pairwise -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=TKIP CCMPgetDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.Passphrase -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 2 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 2 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 2 count = 0 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath2 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath2 -Dec 06 16:16:41 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 2 ulInstance 3 enabled = FALSE -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 2, 0 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath2 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath2 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath2 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE2' /etc/sec_file.txt -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 2 return code = 0 for auth mode = SharedAuthentication -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd2.conf: No such file or directory -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd2.conf: No such file or directory -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE2' /etc/sec_file.txt -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.3.Passphrase -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg -Dec 06 16:16:42 RaspberryPi-Gateway kernel: brlan0: port 1(eth1) entered forwarding state -Dec 06 16:16:42 RaspberryPi-Gateway kernel[271]: [ 29.772328] brlan0: port 1(eth1) entered forwarding state -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 3 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 3 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 3 count = 0 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath3 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath3 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 3 ulInstance 4 enabled = FALSE -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 3, 0 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath3 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath3 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath3 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE3' /etc/sec_file.txt -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 3 return code = 0 for auth mode = SharedAuthentication -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd3.conf: No such file or directory -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd3.conf: No such file or directory -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE3' /etc/sec_file.txt -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.4.Passphrase -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 4 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 4 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 4 count = 0 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath4 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath4 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 4 ulInstance 5 enabled = FALSE -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 1 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 4, 1 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath4 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath4 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath4 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE4' /etc/sec_file.txt -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 4 return code = 0 for auth mode = SharedAuthentication -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd4.conf: No such file or directory -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd4.conf: No such file or directory -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE4' /etc/sec_file.txt -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.5.Passphrase -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 5 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 5 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 5 count = 0 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath5 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath5 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 5 ulInstance 6 enabled = FALSE -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 1 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 5, 1 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath5 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath5 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath5 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE5' /etc/sec_file.txt -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 5 return code = 0 for auth mode = SharedAuthentication -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd5.conf: No such file or directory -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd5.conf: No such file or directory -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE5' /etc/sec_file.txt -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.6.Passphrase -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 6 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 6 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 6 count = 0 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath6 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath6 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 6 ulInstance 7 enabled = FALSE -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 6, 0 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath6 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath6 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath6 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE6' /etc/sec_file.txt -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 6 return code = 0 for auth mode = SharedAuthentication -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd6.conf: No such file or directory -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd6.conf: No such file or directory -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE6' /etc/sec_file.txt -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.7.Passphrase -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 7 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 7 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 7 count = 0 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath7 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath7 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 7 ulInstance 8 enabled = FALSE -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 7, 0 -Dec 06 16:16:42 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath7 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath7 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath7 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE7' /etc/sec_file.txt -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 7 return code = 0 for auth mode = SharedAuthentication -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd7.conf: No such file or directory -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd7.conf: No such file or directory -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE7' /etc/sec_file.txt -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.8.Passphrase -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 8 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 8 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 8 count = 0 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath8 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath8 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 8 ulInstance 9 enabled = FALSE -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 8, 1 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath8 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath8 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath8 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE8' /etc/sec_file.txt -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 8 return code = 0 for auth mode = SharedAuthentication -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd8.conf: No such file or directory -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd8.conf: No such file or directory -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE8' /etc/sec_file.txt -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.9.Passphrase -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 9 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 9 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 9 count = 0 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath9 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath9 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 9 ulInstance 10 enabled = FALSE -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 9, 1 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath9 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath9 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath9 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE9' /etc/sec_file.txt -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 9 return code = 0 for auth mode = SharedAuthentication -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd9.conf: No such file or directory -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd9.conf: No such file or directory -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE9' /etc/sec_file.txt -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.10.Passphrase -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 10 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 10 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 10 count = 0 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath10 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath10 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 10 ulInstance 11 enabled = FALSE -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 10, 0 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath10 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath10 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath10 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE10' /etc/sec_file.txt -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 10 return code = 0 for auth mode = SharedAuthentication -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd10.conf: No such file or directory -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd10.conf: No such file or directory -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE10' /etc/sec_file.txt -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.11.Passphrase -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 11 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 11 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 11 count = 0 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath11 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath11 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 11 ulInstance 12 enabled = FALSE -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 11, 0 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath11 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath11 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath11 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE11' /etc/sec_file.txt -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 11 return code = 0 for auth mode = SharedAuthentication -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd11.conf: No such file or directory -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd11.conf: No such file or directory -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE11' /etc/sec_file.txt -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.12.Passphrase -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 12 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 12 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 12 count = 0 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath12 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath12 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 12 ulInstance 13 enabled = FALSE -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 12, 0 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath12 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath12 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath12 -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE12' /etc/sec_file.txt -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= -Dec 06 16:16:43 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 12 return code = 0 for auth mode = SharedAuthentication -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd12.conf: No such file or directory -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd12.conf: No such file or directory -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE12' /etc/sec_file.txt -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.13.Passphrase -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 13 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 13 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 13 count = 0 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath13 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath13 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 13 ulInstance 14 enabled = FALSE -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 13, 0 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath13 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath13 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath13 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE13' /etc/sec_file.txt -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 13 return code = 0 for auth mode = SharedAuthentication -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd13.conf: No such file or directory -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd13.conf: No such file or directory -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE13' /etc/sec_file.txt -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.14.Passphrase -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 14 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 14 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 14 count = 0 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath14 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath14 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 14 ulInstance 15 enabled = FALSE -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 14, 0 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath14 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath14 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath14 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE14' /etc/sec_file.txt -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 14 return code = 0 for auth mode = SharedAuthentication -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd14.conf: No such file or directory -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd14.conf: No such file or directory -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE14' /etc/sec_file.txt -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.15.Passphrase -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 15 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 15 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 15 count = 0 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetEntry pSsid = ath15 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetCfg pSsid = ath15 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1AP Index for band 1 is 1CosaDmlWiFiGetAccessPointPsmData g_Subsytem = eRT. wlanIndex 15 ulInstance 16 enabled = FALSE -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: found BssHotSpot value = 0 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiGetAccessPointPsmData: wifi_setApIsolationEnable 15, 0 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApGetInfo pSsid = ath15 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 1 is 1CosaDmlWiFiApSecGetEntry pSsid = ath15 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSecGetCfg pSsid = ath15 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE15' /etc/sec_file.txt -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBeaconType: output_string= -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApBasicAuthenticationMode wanIndex = 15 return code = 0 for auth mode = SharedAuthentication -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd15.conf: No such file or directory -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: grep: /nvram/hostapd15.conf: No such file or directory -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string= -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is beaconType -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: cmd=grep 'AP_SECMODE15' /etc/sec_file.txt -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_pairwise -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: wifi_getApWpaEncryptionMode output_string=getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.16.Passphrase -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetCfg -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApWpsGetInfo -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Failed to connect to hostapd - wpa_ctrl_open: No such file or directory -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiApSetMFQueue apIns = 16 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 16 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlMacFilt_GetNumberOfEntries apIns = 16 count = 0 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: ---- CosaWifiRegGetATMInfo ???load from PSM -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlWiFiNeighbouringGetEntry -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: CosaDmlGetNeighbouringDiagnosticEnable -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Entry -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Entry 0 -Dec 06 16:16:44 RaspberryPi-Gateway CcspWifiSsp[2389]: Exit -Dec 06 16:16:45 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1Entering Wifi loop -Dec 06 16:16:45 RaspberryPi-Gateway systemd[1]: Starting CcspTr069PaSsp service... --- Subject: Unit CcspTr069PaSsp.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspTr069PaSsp.service has begun starting up. -Dec 06 16:16:45 RaspberryPi-Gateway systemd[1]: Starting CcspLMLite service... --- Subject: Unit CcspLMLite.service has begun start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspLMLite.service has begun starting up. -Dec 06 16:16:45 RaspberryPi-Gateway systemd[1]: Started CcspTr069PaSsp service. --- Subject: Unit CcspTr069PaSsp.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspTr069PaSsp.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:45 RaspberryPi-Gateway systemd[1]: Started CcspLMLite service. --- Subject: Unit CcspLMLite.service has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit CcspLMLite.service has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:45 RaspberryPi-Gateway systemd[1]: Reached target WiFi Initialization Complete. --- Subject: Unit wifi-initialized.target has finished start-up --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- Unit wifi-initialized.target has finished starting up. --- --- The start-up result is done. -Dec 06 16:16:45 RaspberryPi-Gateway CcspLMLite[3476]: eRT.com.cisco.spvtg.ccsp.lmlite start to check eRT.com.cisco.spvtg.ccsp.psm status -Dec 06 16:16:45 RaspberryPi-Gateway CcspLMLite[3476]: eRT.com.cisco.spvtg.ccsp.psm is ready, eRT.com.cisco.spvtg.ccsp.lmlite continue -Dec 06 16:16:45 RaspberryPi-Gateway CcspLMLite[3476]: PSM module done. -Dec 06 16:16:45 RaspberryPi-Gateway UTOPIA[3483]: 2017-12-06 16:16:45., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:16:45 RaspberryPi-Gateway CcspTr069PaSsp[3475]: Conf file /etc/debug.ini open success -Dec 06 16:16:45 RaspberryPi-Gateway CcspTr069PaSsp[3475]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. -Dec 06 16:16:45 RaspberryPi-Gateway CcspTr069PaSsp[3475]: Device.WiFi.SSID.3.EnableDevice.WiFi.SSID.10102.EnableTLV data file is missing!!! -Dec 06 16:17:03 RaspberryPi-Gateway systemd-timesyncd[185]: Synchronized to time server 216.239.35.8:123 (time3.google.com). -Dec 06 16:17:03 RaspberryPi-Gateway systemd[1]: Time has been changed --- Subject: Time change --- Defined-By: systemd --- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel --- --- The system clock has been changed to REALTIME microseconds after January 1st, 1970. -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:06 RaspberryPi-Gateway CcspLMLite[3476]: Conf file /etc/debug.ini open success -Dec 06 16:17:06 RaspberryPi-Gateway CcspLMLite[3476]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. -Dec 06 16:17:06 RaspberryPi-Gateway CcspLMLite[3476]: Conf file /etc/debug.ini open success -Dec 06 16:17:06 RaspberryPi-Gateway CcspLMLite[3476]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. -Dec 06 16:17:06 RaspberryPi-Gateway CcspLMLite[3476]: Conf file /etc/debug.ini open success -Dec 06 16:17:06 RaspberryPi-Gateway CcspLMLite[3476]: rdk_logger_init /etc/debug.ini Already Stack Level Logging processed... not processing again. -Dec 06 16:17:06 RaspberryPi-Gateway CcspLMLite[3476]: Send_Eth_Host_Sync_Req : Get Ethernet Clients -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:06 RaspberryPi-Gateway CcspLMLite[3476]: Send_MoCA_Host_Sync_Req : Get MoCA Clients -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: 2017-12-06 16:17:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 118 -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 119 -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 120 -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 121 -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 122 -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 123 -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 124 -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: 2017-12-06 16:17:06., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 118 -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 119 -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 120 -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 121 -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 122 -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 123 -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 124 -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:06 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:07 RaspberryPi-Gateway CcspTr069PaSsp[3475]: TR69 PA: Waiting for Setup env... -Dec 06 16:17:08 RaspberryPi-Gateway kernel: brlan0: port 2(wlan0) entered forwarding state -Dec 06 16:17:08 RaspberryPi-Gateway kernel[271]: [ 40.172303] brlan0: port 2(wlan0) entered forwarding state -Dec 06 16:17:12 RaspberryPi-Gateway CcspTr069PaSsp[3475]: TR69 PA: Setup env completed -Dec 06 16:17:12 RaspberryPi-Gateway CcspTr069PaSsp[3481]: config.utapi s_sysevent_connect: open new sysevent fd 6 -Dec 06 16:17:12 RaspberryPi-Gateway CcspTr069PaSsp[3475]: ***************** Ccsp Tr69 process is up Creatting PID file **** -Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: AP Index for band 0 is 0AP Index for band 0 is 0AP Index for band 1 is 1AP Index for band 1 is 1AP Index for band 1 is 1getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.SSID -Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : RPi3_RDKB-AP0getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.Passphrase -Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: Func=wifi_getApSecurityKeyPassphrase -Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is wpa_passphrase -Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: output_string=rdk@1234 -Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: getDefaultSSID fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.SSID -Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: Params Name is ssid -Dec 06 16:17:16 RaspberryPi-Gateway CcspWifiSsp[2389]: [wifi_getSSIDName]: SSID Name is : RPi3_RDKB-AP1getDefaultPassphrase fetching eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.Passphrase -Dec 06 16:17:17 RaspberryPi-Gateway UTOPIA[3570]: 2017-12-06 16:17:17., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3641]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:34 RaspberryPi-Gateway kernel: Netfilter messages via NETLINK v0.30. -Dec 06 16:17:34 RaspberryPi-Gateway kernel[271]: [ 65.713602] Netfilter messages via NETLINK v0.30. -Dec 06 16:17:34 RaspberryPi-Gateway firewall[3638]: fw.info firewall called with no arg -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info firewall service initializing -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3647]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info firewall opening sysevent_fd 18, token 254 -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams, Parse the line read from file -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams, Check if interface matches -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams,Interface not found -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams, Parse the line read from file -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3648]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams, Check if interface matches -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams,Interface not found -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams, Parse the line read from file -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams, Check if interface matches -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams,Interface not found -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams, Parse the line read from file -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams, Check if interface matches -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info parseProcfileParams,Interface not found -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3655]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3638]: fw.info starting firewall service -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3661]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3669]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3670]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3678]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:34 RaspberryPi-Gateway kernel: nf_conntrack version 0.5.0 (14805 buckets, 59220 max) -Dec 06 16:17:34 RaspberryPi-Gateway kernel[271]: [ 65.899891] nf_conntrack version 0.5.0 (14805 buckets, 59220 max) -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3688]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3715]: ddns.status (3631) wan state is down. No ddns update possible -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3716]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3720]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3739]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:34 RaspberryPi-Gateway UTOPIA[3738]: 2017-12-06 16:17:34., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3814]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3813]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3813]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3813]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3813]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:35 RaspberryPi-Gateway sh[294]: tdk_firewall_service.sh: v4 rule is missing in iptables, adding now -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3638]: fw.info started firewall service -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3638]: fw.info firewall closing firewall_lock -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3638]: fw.info firewall closing sysevent_fd 18, token 254 -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3638]: fw.info firewall closing dbus connection -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3638]: fw.info firewall operation completed -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for firewall-start using /etc/utopia/service.d/firewall_log_handle.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for firewall-stop using /etc/utopia/service.d/firewall_log_handle.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for firewall-restart using /etc/utopia/service.d/firewall_log_handle.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Unregistered firewall from firewall-restart -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for firewall-restart using /etc/utopia/service.d/firewall_log_handle.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for syslog-status using /etc/utopia/service.d/firewall_log_handle.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for firewall_trigger_monitor-start using /etc/utopia/service.d/service_firewall/trigger_monitor.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for firewall_newhost_monitor-start using /etc/utopia/service.d/service_firewall/newhost_monitor.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for syslog_rotated using /etc/utopia/service.d/service_firewall/newhost_monitor.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3849]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for ipv6_prefix using /etc/utopia/service.d/firewall_log_handle.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for current_wan_ipv6_interface using /etc/utopia/service.d/firewall_log_handle.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for ipv6_wan0_dhcp_solicNodeAddr using /etc/utopia/service.d/firewall_log_handle.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3839]: service.info Registered firewall for ipv6_erouter0_dhcp_solicNodeAddr using /etc/utopia/service.d/firewall_log_handle.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3865]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3870]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3871]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3876]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3880]: fw.trigger Firewall Trigger process started -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3880]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3882]: service.info Registered mcastproxy for mcastproxy-start using /etc/utopia/service.d/service_mcastproxy.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3882]: service.info Registered mcastproxy for mcastproxy-stop using /etc/utopia/service.d/service_mcastproxy.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3882]: service.info Registered mcastproxy for mcastproxy-restart using /etc/utopia/service.d/service_mcastproxy.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3885]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3887]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3882]: service.info Registered mcastproxy for wan-status using /etc/utopia/service.d/service_mcastproxy.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3882]: service.info Registered mcastproxy for lan-status using /etc/utopia/service.d/service_mcastproxy.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3882]: service.info Registered mcastproxy for bridge-status using /etc/utopia/service.d/service_mcastproxy.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3890]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3889]: service.info Registered mldproxy for mldproxy-start using /etc/utopia/service.d/service_mldproxy.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3889]: service.info Registered mldproxy for mldproxy-stop using /etc/utopia/service.d/service_mldproxy.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3889]: service.info Registered mldproxy for mldproxy-restart using /etc/utopia/service.d/service_mldproxy.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3889]: service.info Registered mldproxy for wan-status using /etc/utopia/service.d/service_mldproxy.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3889]: service.info Registered mldproxy for lan-status using /etc/utopia/service.d/service_mldproxy.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3895]: service.info Registered igd for igd-start using /etc/utopia/service.d/service_igd.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3895]: service.info Registered igd for igd-stop using /etc/utopia/service.d/service_igd.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3895]: service.info Registered igd for igd-restart using /etc/utopia/service.d/service_igd.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3895]: service.info Registered igd for lan-status using /etc/utopia/service.d/service_igd.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3895]: service.info Registered igd for snmp_subagent-status using /etc/utopia/service.d/service_igd.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3908]: service.info Registered misc for misc-start using /etc/utopia/service.d/service_misc.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3908]: service.info Registered misc for misc-stop using /etc/utopia/service.d/service_misc.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3908]: service.info Registered misc for misc-restart using /etc/utopia/service.d/service_misc.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3908]: service.info Registered misc for start-misc using /etc/utopia/service.d/service_misc.sh -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3927]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3931]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3946]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3946]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3946]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3946]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3947]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3947]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3947]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3955]: sshd.status stopping sshd service -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3947]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3947]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3947]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3947]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3954]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3977]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3997]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[3996]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: 2017-12-06 16:17:35., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:35 RaspberryPi-Gateway UTOPIA[4000]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4043]: mldproxy.status starting mldproxy service -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: 2017-12-06 16:17:36., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4046]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4062]: sshd.status starting sshd service -Dec 06 16:17:36 RaspberryPi-Gateway firewall[4069]: fw.info firewall called with firewall-restart -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info firewall service initializing -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: 2017-12-06 16:17:36., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info firewall opening sysevent_fd 17, token 317 -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4092]: ddns.status (3920) ddns is not enabled -Dec 06 16:17:36 RaspberryPi-Gateway dnsmasq[2232]: read /etc/hosts - 9 addresses -Dec 06 16:17:36 RaspberryPi-Gateway dnsmasq-dhcp[2232]: read /etc/dhcp_static_hosts -Dec 06 16:17:36 RaspberryPi-Gateway dnsmasq-dhcp[2232]: read /var/dhcp_options -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams, Parse the line read from file -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams, Check if interface matches -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams,Interface not found -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams, Parse the line read from file -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams, Check if interface matches -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams,Interface not found -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams, Parse the line read from file -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams, Check if interface matches -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams,Interface not found -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams, Parse the line read from file -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams, Check if interface matches -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info parseProcfileParams,Interface not found -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info starting firewall service -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4109]: mcastproxy.status starting mcastproxy service -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4130]: 2017-12-06 16:17:36., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4151]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4151]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4151]: 2017-12-06 16:17:36., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4151]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4151]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4151]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info started firewall service -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info firewall closing firewall_lock -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info firewall closing sysevent_fd 17, token 317 -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info firewall closing dbus connection -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4069]: fw.info firewall operation completed -Dec 06 16:17:36 RaspberryPi-Gateway UTOPIA[4160]: 2017-12-06 16:17:36., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:37 RaspberryPi-Gateway kernel: ctnetlink v0.93: registering with nfnetlink. -Dec 06 16:17:37 RaspberryPi-Gateway kernel[271]: [ 68.375249] ctnetlink v0.93: registering with nfnetlink. -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: 2017-12-06 16:17:37., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 118 -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 119 -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 120 -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 121 -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 122 -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 123 -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 124 -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4215]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4215]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4215]: 2017-12-06 16:17:37., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4215]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4215]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4215]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4215]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4216]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4216]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4216]: 2017-12-06 16:17:37., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4216]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4216]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4216]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: 2017-12-06 16:17:37., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: igd.info IP address:10.0.0.1 -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: igd.info Initilize IGD root device -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: 2017-12-06 16:17:37., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: igd.info - Root Device UUID:uuid:ebf5a0a0-1dd1-11b2-a90f-94103eb8fe9d -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4206]: igd.info - - Create description file -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4223]: igd.status starting igd service -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4224]: 2017-12-06 16:17:37., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:37 RaspberryPi-Gateway UTOPIA[4240]: mcastproxy.status starting mcastproxy service -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4284]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4298]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4300]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4302]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4303]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4303]: system.syscfg commit to store -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4314]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4316]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4318]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4320]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4322]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4324]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4328]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4330]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4333]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4367]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4367]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4367]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4367]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4367]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4367]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4367]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4367]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:38 RaspberryPi-Gateway UTOPIA[4370]: 2017-12-06 16:17:38., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4373]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4375]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4376]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4382]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4383]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4396]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4412]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway dnsmasq[2232]: exiting on receipt of SIGTERM -Dec 06 16:17:39 RaspberryPi-Gateway dnsmasq[4424]: started, version 2.76 cachesize 150 -Dec 06 16:17:39 RaspberryPi-Gateway dnsmasq[4424]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect no-inotify -Dec 06 16:17:39 RaspberryPi-Gateway dnsmasq[4424]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# -Dec 06 16:17:39 RaspberryPi-Gateway dnsmasq[4424]: reading /etc/resolv.conf -Dec 06 16:17:39 RaspberryPi-Gateway dnsmasq[4424]: using nameserver 8.8.8.8#53 -Dec 06 16:17:39 RaspberryPi-Gateway dnsmasq[4424]: using nameserver 8.8.4.4#53 -Dec 06 16:17:39 RaspberryPi-Gateway dnsmasq[4424]: read /etc/hosts - 9 addresses -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4434]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4436]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4441]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4438]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4440]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4445]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4448]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4451]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway firewall[4457]: fw.info firewall called with firewall-restart -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info firewall service initializing -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4459]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info firewall opening sysevent_fd 17, token 397 -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams, Parse the line read from file -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams, Check if interface matches -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams,Interface not found -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams, Parse the line read from file -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams, Check if interface matches -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams,Interface not found -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams, Parse the line read from file -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams, Check if interface matches -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams,Interface not found -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams, Parse the line read from file -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams, Check if interface matches -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info parseProcfileParams,Interface not found -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4464]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info starting firewall service -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info started firewall service -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info firewall closing firewall_lock -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info firewall closing sysevent_fd 17, token 397 -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info firewall closing dbus connection -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4457]: fw.info firewall operation completed -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4471]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:39 RaspberryPi-Gateway UTOPIA[4472]: 2017-12-06 16:17:39., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4508]: system.utctx Utopia_Init: Initializing -Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4508]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4508]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4508]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4508]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4508]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4508]: system.utctx Utopia_Free: Freeing -Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4508]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4515]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4518]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4520]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4521]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4527]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4528]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4529]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4548]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:40 RaspberryPi-Gateway UTOPIA[4564]: 2017-12-06 16:17:40., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4424]: read /etc/hosts - 9 addresses -Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4424]: exiting on receipt of SIGTERM -Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4587]: started, version 2.76 cachesize 150 -Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4587]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect no-inotify -Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq-dhcp[4587]: DHCP, IP range 10.0.0.2 -- 10.0.0.253, lease time 7d -Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4587]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# -Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4587]: reading /etc/resolv.conf -Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4587]: using nameserver 8.8.8.8#53 -Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4587]: using nameserver 8.8.4.4#53 -Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq[4587]: read /etc/hosts - 9 addresses -Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq-dhcp[4587]: read /etc/dhcp_static_hosts -Dec 06 16:17:40 RaspberryPi-Gateway dnsmasq-dhcp[4587]: read /var/dhcp_options -Dec 06 16:18:00 RaspberryPi-Gateway UTOPIA[4658]: 2017-12-06 16:18:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:18:00 RaspberryPi-Gateway UTOPIA[4701]: system.sysevent syseventd fork helper execve failed. /etc/utopia/service.d/service_firewall/newhost_monitor.sh. Reason: (2) No such file or directory -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Init: Initializing -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: 2017-12-06 16:18:07., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 118 -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 119 -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 120 -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 121 -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 122 -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 123 -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 124 -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Free: Freeing -Dec 06 16:18:07 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:18:18 RaspberryPi-Gateway passwd[4731]: pam_unix(passwd:chauthtok): unrecognized option [obscure] -Dec 06 16:18:18 RaspberryPi-Gateway passwd[4731]: pam_unix(passwd:chauthtok): unrecognized option [obscure] -Dec 06 16:18:19 RaspberryPi-Gateway passwd[4731]: pam_unix(passwd:chauthtok): password changed for root -Dec 06 16:18:20 RaspberryPi-Gateway dnsmasq[4587]: ############# XDNS : reload_servers() read file : /etc/resolv.conf ############# -Dec 06 16:18:20 RaspberryPi-Gateway dnsmasq[4587]: reading /etc/resolv.conf -Dec 06 16:18:20 RaspberryPi-Gateway dnsmasq[4587]: using nameserver 8.8.8.8#53 -Dec 06 16:18:20 RaspberryPi-Gateway dnsmasq[4587]: using nameserver 8.8.4.4#53 -Dec 06 16:18:20 RaspberryPi-Gateway dnsmasq-dhcp[4587]: DHCPRELEASE(brlan0) 10.0.0.155 30:30:31:31:30:31 unknown lease -Dec 06 16:18:23 RaspberryPi-Gateway dnsmasq-dhcp[4587]: DHCPDISCOVER(brlan0) 30:30:31:31:30:31 -Dec 06 16:18:23 RaspberryPi-Gateway dnsmasq-dhcp[4587]: DHCPOFFER(brlan0) 10.0.0.155 30:30:31:31:30:31 -Dec 06 16:18:23 RaspberryPi-Gateway dnsmasq-dhcp[4587]: DHCPREQUEST(brlan0) 10.0.0.155 30:30:31:31:30:31 -Dec 06 16:18:23 RaspberryPi-Gateway dnsmasq-dhcp[4587]: DHCPACK(brlan0) 10.0.0.155 30:30:31:31:30:31 bft-node-bond0-101 -Dec 06 16:18:35 RaspberryPi-Gateway sh[294]: tdk_firewall_service.sh: v4 rule is missing in iptables, adding now -Dec 06 16:18:35 RaspberryPi-Gateway sh[294]: tdk_firewall_service.sh: v6 rule is missing in ip6tables, adding now -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Init: Initializing -Dec 06 16:18:37 RaspberryPi-Gateway CcspLMLite[3476]: LMlite-CLIENT <963> : Connected Mac = 30:30:31:31:30:31 -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: 2017-12-06 16:18:37., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_GetNamed: Failed on index 495 -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Free: Freeing -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Init: Initializing -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Init: Initializing... -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: 2017-12-06 16:18:37., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 118 -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 119 -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 120 -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 121 -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 122 -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 123 -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_ReadLock: Acquring read lock... -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Get: Failed on index 124 -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx Utopia_Free: Freeing -Dec 06 16:18:37 RaspberryPi-Gateway UTOPIA[3483]: system.utctx UtopiaRWLock_Free: Freeing lock... -Dec 06 16:19:00 RaspberryPi-Gateway UTOPIA[4816]: 2017-12-06 16:19:00., ../../../../git/source/syscfg/lib/syscfg_lib.c:504, entering syscfg_init From e18b57a6282aa7cfe55bbe1a74226c7fc73ed6d4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 1 Feb 2018 23:24:33 -0800 Subject: [PATCH 108/947] testsuites: add support for adding testsuites from external file Signed-off-by: Matthew McClintock --- config.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config.py b/config.py index 05552842..d4daf049 100644 --- a/config.py +++ b/config.py @@ -13,6 +13,9 @@ # Test Suite config files. Standard python config file format. testsuite_config_files = [os.path.join(os.path.dirname(os.path.realpath(__file__)), 'testsuites.cfg'), ] +if 'BFT_OVERLAY' in os.environ: + for overlay in os.environ['BFT_OVERLAY'].split(' '): + testsuite_config_files.append(overlay + '/testsuites.cfg') # Logstash server - a place to send JSON-format results to # when finished. Set to None or name:port, e.g. 'logstash.mysite.com:1300' From 60339ef6c81980ac5bd6da15eeca2b49b20f1734 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Sun, 4 Feb 2018 20:28:18 -0800 Subject: [PATCH 109/947] devices: move board selection into devices themselves Instead of adding a board and editting the board selector we can just encode all the required information into the device class and use that instead Signed-off-by: Matthew McClintock --- bft | 4 +-- devices/__init__.py | 30 ++++++++++++++++++ devices/board_decider.py | 59 ----------------------------------- devices/cougarpark.py | 1 + devices/marvell.py | 1 + devices/qcom_akronite_nand.py | 2 ++ devices/qcom_akronite_nor.py | 1 + devices/qcom_dakota_nand.py | 1 + devices/qcom_dakota_nor.py | 1 + devices/qcom_mips.py | 2 ++ devices/qemu.py | 1 + devices/rpi.py | 1 + 12 files changed, 43 insertions(+), 61 deletions(-) delete mode 100644 devices/board_decider.py diff --git a/bft b/bft index 5bcfd8b5..e379c74b 100755 --- a/bft +++ b/bft @@ -22,7 +22,7 @@ import time import site site.addsitedir(os.path.dirname(os.path.realpath(__file__))) -from devices import board_decider, debian, logstash, elasticlogger +from devices import debian, logstash, elasticlogger def setup_legacy_devices(config): '''This will setup legacy hard coded devices to into the config''' @@ -143,7 +143,7 @@ def main(): "uniq_id": uniqid} # Connect to board - config.console = board_decider.board(config.board['board_type'], + config.console = devices.board_decider(config.board['board_type'], conn_cmd=config.board['conn_cmd'], power_ip=config.board.get('powerip', None), power_outlet=config.board.get('powerport', None), diff --git a/devices/__init__.py b/devices/__init__.py index 109b0ac1..6e8ec8fd 100644 --- a/devices/__init__.py +++ b/devices/__init__.py @@ -36,3 +36,33 @@ def initialize_devices(configuration): for d in (board, lan, wan, wlan): prompt += getattr(d, "prompt", []) prompt = list(set(prompt)) + +def board_decider(model, **kwargs): + import os + import glob + import inspect + device_files = glob.glob(os.path.dirname(__file__)+"/*.py") + device_mappings = { } + for x in sorted([os.path.basename(f)[:-3] for f in device_files if not "__" in f]): + try: + exec("import %s as device_file" % x) + device_mappings[device_file] = [] + for obj in dir(device_file): + ref = getattr(device_file, obj) + if inspect.isclass(ref) and issubclass(ref, base.BaseDevice): + device_mappings[device_file].append(ref) + exec("from %s import %s" % (x, obj)) + except Exception as e: + print(e) + print("Warning: could not import from file %s." % x) + + for device_file, devs in device_mappings.iteritems(): + for dev in devs: + if 'model' in dev.__dict__ and model in dev.__dict__['model']: + return dev(model, **kwargs) + + # Default for all other models + print("\nWARNING: Unknown board model '%s'." % model) + print("Please check spelling, or write an appropriate class " + "to handle that kind of board.") + return openwrt_router.OpenWrtRouter(model, **kwargs) diff --git a/devices/board_decider.py b/devices/board_decider.py deleted file mode 100644 index 68b494b0..00000000 --- a/devices/board_decider.py +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright (c) 2015 -# -# All rights reserved. -# -# This file is distributed under the Clear BSD license. -# The full text can be found in LICENSE in the root directory. - -import openwrt_router -import qcom_akronite_nand -import qcom_akronite_nor -import qcom_dakota_nor -import qcom_dakota_nand -import qcom_mips -import marvell -import rpi -import cougarpark -import qemu - -def board(model, **kwargs): - ''' - Depending on the given model, return an object of the appropriate class type. - - Different boards are flashed with different commands, have - different memory addresses, and must be handled differently. - ''' - if model in ("db120", "ap135", "ap143", "ap147", "ap152", "ap151", - "ap151-16M", "ap143", "ap152-8M", "tew-823dru"): - return qcom_mips.QcomMipsRouter(model, **kwargs) - - if model in ("ipq8066", "db149", "ap145", "ap148", "ap148-osprey", - "ap148-beeliner", "ap160-1", "ap160-2", "ap161"): - return qcom_akronite_nand.QcomAkroniteRouterNAND(model, **kwargs) - - if model in ("ap148-nor"): - return qcom_akronite_nor.QcomAkroniteRouterNOR(model, **kwargs) - - if model in ("dk01-nor", "dk04-nor"): - return qcom_dakota_nor.QcomDakotaRouterNOR(model, **kwargs) - - if model in ("dk07-nand", "dk04-nand", "ea8300"): - return qcom_dakota_nand.QcomDakotaRouterNAND(model, **kwargs) - - if model in ("wrt3200acm"): - return marvell.WRT3200ACM(model, **kwargs) - - if model in ("rpi3"): - return rpi.RPI(model, **kwargs) - - if model in ("cougarpark"): - return cougarpark.CougarPark(model, **kwargs) - - if model in ("qemux86"): - return qemu.Qemu(model, **kwargs) - - # Default for all other models - print("\nWARNING: Unknown board model '%s'." % model) - print("Please check spelling, or write an appropriate class " - "to handle that kind of board.") - return openwrt_router.OpenWrtRouter(model, **kwargs) diff --git a/devices/cougarpark.py b/devices/cougarpark.py index 070d2874..f16dd837 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -14,6 +14,7 @@ class CougarPark(openwrt_router.OpenWrtRouter): ''' Intel Cougar Park board ''' + model = ("cougarpark") wan_iface = "erouter0" lan_iface = "brlan0" diff --git a/devices/marvell.py b/devices/marvell.py index 99cf4823..47554521 100644 --- a/devices/marvell.py +++ b/devices/marvell.py @@ -14,6 +14,7 @@ class WRT3200ACM(openwrt_router.OpenWrtRouter): ''' Marvell board ''' + model = ("wrt3200acm") prompt = ['root\\@.*:.*#', ] uprompt = ['Venom>>'] diff --git a/devices/qcom_akronite_nand.py b/devices/qcom_akronite_nand.py index af7825ab..3d6db0fc 100644 --- a/devices/qcom_akronite_nand.py +++ b/devices/qcom_akronite_nand.py @@ -13,6 +13,8 @@ class QcomAkroniteRouterNAND(qcom_arm_base.QcomArmBase): ''' Board with an Akronite processor. ''' + model = ("ipq8066", "db149", "ap145", "ap148", "ap148-osprey", + "ap148-beeliner", "ap160-1", "ap160-2", "ap161") machid_table = {"db149": "125b", "ap145": "12ca", "ap148": "1260", "ap148-beeliner": "1260", diff --git a/devices/qcom_akronite_nor.py b/devices/qcom_akronite_nor.py index 55497927..280cb80a 100644 --- a/devices/qcom_akronite_nor.py +++ b/devices/qcom_akronite_nor.py @@ -12,6 +12,7 @@ class QcomAkroniteRouterNOR(qcom_arm_base.QcomArmBase): ''' Board with an Akronite processor. ''' + model = ("ap148-nor") def __init__(self, *args, **kwargs): super(QcomAkroniteRouterNOR, self).__init__(*args, **kwargs) diff --git a/devices/qcom_dakota_nand.py b/devices/qcom_dakota_nand.py index 3b33968f..d3c6c8de 100644 --- a/devices/qcom_dakota_nand.py +++ b/devices/qcom_dakota_nand.py @@ -13,6 +13,7 @@ class QcomDakotaRouterNAND(qcom_akronite_nand.QcomAkroniteRouterNAND): ''' Board with a Dakota processor. ''' + model = ("dk07-nand", "dk04-nand") uboot_ddr_addr = "0x88000000" machid_table = {"dk03": "8010100", "dk04-nand": "8010001", "dk06-nand": "8010005", "dk07-nand": "8010006", "ea8300": "8010006"} diff --git a/devices/qcom_dakota_nor.py b/devices/qcom_dakota_nor.py index 4af84a93..4718ae97 100644 --- a/devices/qcom_dakota_nor.py +++ b/devices/qcom_dakota_nor.py @@ -12,6 +12,7 @@ class QcomDakotaRouterNOR(qcom_arm_base.QcomArmBase): ''' Board with an Dakota processor. ''' + model = ("dk01-nor", "dk04-nor") uboot_ddr_addr = "0x88000000" machid_table = {"dk01-nor": "8010000", "dk04-nor": "8010001"} diff --git a/devices/qcom_mips.py b/devices/qcom_mips.py index 447d75ef..a8e1f48e 100644 --- a/devices/qcom_mips.py +++ b/devices/qcom_mips.py @@ -13,6 +13,8 @@ class QcomMipsRouter(openwrt_router.OpenWrtRouter): ''' Board with a MIPS processor. ''' + model = ("db120", "ap135", "ap143", "ap147", "ap152", "ap151", + "ap151-16M", "ap143", "ap152-8M", "tew-823dru") prompt = ['root\\@.*:.*#', ] uprompt = ['ath>', 'ar7240>'] diff --git a/devices/qemu.py b/devices/qemu.py index 79d91469..a904d8f5 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -15,6 +15,7 @@ class Qemu(openwrt_router.OpenWrtRouter): ''' Emulated QEMU board ''' + model = ("qemux86") wan_iface = "eth0" lan_iface = "brlan0" diff --git a/devices/rpi.py b/devices/rpi.py index 05362ee1..744c74ae 100644 --- a/devices/rpi.py +++ b/devices/rpi.py @@ -14,6 +14,7 @@ class RPI(openwrt_router.OpenWrtRouter): ''' Raspberry pi board ''' + model = ("rpi3") wan_iface = "erouter0" lan_iface = "brlan0" From 33612b78ec1ae5d1fef96e2d7300f5e9a6bc9380 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Sun, 4 Feb 2018 22:19:00 -0800 Subject: [PATCH 110/947] devices: allow devices to be in overlays as well This continues to extend the overlay feature to allow devices to be separate from the main repository as well Signed-off-by: Matthew McClintock --- devices/__init__.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/devices/__init__.py b/devices/__init__.py index 6e8ec8fd..d488727e 100644 --- a/devices/__init__.py +++ b/devices/__init__.py @@ -39,9 +39,18 @@ def initialize_devices(configuration): def board_decider(model, **kwargs): import os + import sys import glob import inspect device_files = glob.glob(os.path.dirname(__file__)+"/*.py") + if 'BFT_OVERLAY' in os.environ: + for overlay in os.environ['BFT_OVERLAY'].split(' '): + overlay = os.path.abspath(overlay) + sys.path.insert(0, overlay + '/devices') + device_files += glob.glob(overlay + '/devices/*.py') + + sys.path.insert(0, os.getcwd() + '/devices') + device_mappings = { } for x in sorted([os.path.basename(f)[:-3] for f in device_files if not "__" in f]): try: From effd888b4213664b9fd1054e7c25a571cc75c516 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 6 Feb 2018 02:02:38 -0800 Subject: [PATCH 111/947] devices: owrt: handle an array for conn_cmd Assume that if a list is provided we will use the first entry as the primary console Signed-off-by: Matthew McClintock --- devices/openwrt_router.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index d1ed9a64..a7778b6b 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -37,6 +37,7 @@ class OpenWrtRouter(base.BaseDevice): power_ip: IP Address of power unit to which this device is connected power_outlet: Outlet # this device is connected ''' + conn_list = None prompt = ['root\\@.*:.*#', '/ # ', '@R7500:/# '] uprompt = ['ath>', '\(IPQ\) #', 'ar7240>', '\(IPQ40xx\)'] @@ -71,7 +72,9 @@ def __init__(self, power_username=None, power_password=None, **kwargs): - + if type(conn_cmd) is list: + self.conn_list = conn_cmd + conn_cmd = self.conn_list[0] if connection_type is None: print("\nWARNING: Unknown connection type using ser2net\n") From 6f80148028c3848674937f9fc131b59f1c86199a Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 6 Feb 2018 17:57:29 -0800 Subject: [PATCH 112/947] devices: handle second serial connection to arm device Signed-off-by: Matthew McClintock --- devices/cougarpark.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/devices/cougarpark.py b/devices/cougarpark.py index f16dd837..3648e256 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -9,6 +9,7 @@ import openwrt_router import pexpect import ipaddress +import connection_decider class CougarPark(openwrt_router.OpenWrtRouter): ''' @@ -27,6 +28,16 @@ class CougarPark(openwrt_router.OpenWrtRouter): uboot_ddr_addr = "0x10000000" uboot_eth = "eth0" + arm = None + + def __init__(self, *args, **kwargs): + super(type(self), self).__init__(*args, **kwargs) + + del kwargs['conn_cmd'] + self.arm = pexpect.spawn.__new__(pexpect.spawn) + arm_conn = connection_decider.connection(kwargs['connection_type'], device=self.arm, conn_cmd=self.conn_list[1], **kwargs) + arm_conn.connect() + def wait_for_boot(self): ''' Break into Shell. From cfbba7206a4f03840786ef0c1cb6ec0ac565d317 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 6 Feb 2018 19:50:23 -0800 Subject: [PATCH 113/947] bft: use email template from overlay if it exists Signed-off-by: Matthew McClintock --- bft-node/Dockerfile | 2 +- make_human_readable.py | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/bft-node/Dockerfile b/bft-node/Dockerfile index b4efb093..ddd99000 100755 --- a/bft-node/Dockerfile +++ b/bft-node/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:8 +FROM debian:9 RUN echo "root:bigfoot1" | chpasswd diff --git a/make_human_readable.py b/make_human_readable.py index 9a70bdd0..ba320b35 100644 --- a/make_human_readable.py +++ b/make_human_readable.py @@ -27,8 +27,17 @@ def pick_template_filename(): Decide which HTML file to use as template for results. This allows for different format for different audiences. ''' - templates = {'basic': owrt_tests_dir+"/html/template_results_basic.html", - 'full': owrt_tests_dir+"/html/template_results.html"} + + basic = owrt_tests_dir+"/html/template_results_basic.html" + full = owrt_tests_dir+"/html/template_results.html" + if 'BFT_OVERLAY' in os.environ: + if os.path.isfile(os.environ['BFT_OVERLAY'] + "/html/template_results_basic.html"): + basic = os.environ['BFT_OVERLAY'] + "/html/template_results_basic.html" + if os.path.isfile(os.environ['BFT_OVERLAY'] + "/html/template_results.html"): + full = os.environ['BFT_OVERLAY'] + "/html/template_results.html" + + templates = {'basic': basic, + 'full': full} if os.environ.get('test_suite') == 'daily_au': return templates['basic'] else: From 68f2ed157f2add805a8c8a2e54fa888bebf9c431 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 18 Jan 2018 18:10:38 -0800 Subject: [PATCH 114/947] configs: add rdk-b cdrouter config Signed-off-by: Matthew McClintock --- configs/cdrouter-rdkb.conf | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 configs/cdrouter-rdkb.conf diff --git a/configs/cdrouter-rdkb.conf b/configs/cdrouter-rdkb.conf new file mode 100644 index 00000000..28d4be90 --- /dev/null +++ b/configs/cdrouter-rdkb.conf @@ -0,0 +1,3 @@ +testvar dhcpClientStart 10.0.0.2 +testvar dhcpClientEnd 10.0.0.253 +testvar lanIp 10.0.0.1 From ec815c3d87dbafff2fdf0b2d8d0975a38b3bfd06 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 6 Feb 2018 21:56:53 -0800 Subject: [PATCH 115/947] devices: debian: add support for new formats for new versions This should work with debian 9 now Signed-off-by: Matthew McClintock --- devices/debian.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index ddf5dc38..f438de8d 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -163,7 +163,9 @@ def reset(self): def get_ip_addr(self, interface): self.sendline("\nifconfig %s" % interface) - self.expect('addr:(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).*(Bcast|P-t-P):', timeout=5) + regex = ['addr:(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).*(Bcast|P-t-P):', + 'inet (\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).*(broadcast|P-t-P)'] + self.expect(regex, timeout=5) ipaddr = self.match.group(1) self.expect(self.prompt) return ipaddr @@ -295,7 +297,7 @@ def setup_as_wan_gateway(self): self.sendline('EOF') self.expect(self.prompt) self.sendline('/etc/init.d/isc-dhcp-server start') - self.expect(['Starting ISC DHCP server.*dhcpd.', 'Starting isc-dhcp-server.*']) + self.expect(['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*']) self.expect(self.prompt) # configure routing From d7423bee9b28c8dbffbd75f7fc872275cf175618 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 7 Feb 2018 00:55:03 -0800 Subject: [PATCH 116/947] arguments: append location info to each board in that location This let's us specify location information one time instead of repeatedly Signed-off-by: Matthew McClintock --- arguments.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arguments.py b/arguments.py index e65e4cd4..449da99d 100755 --- a/arguments.py +++ b/arguments.py @@ -101,6 +101,17 @@ def parse(): else: data = open(args.config_file, 'r').read() config.boardfarm_config = json.loads(data) + + if 'locations' in config.boardfarm_config: + location = config.boardfarm_config['locations'] + del config.boardfarm_config['locations'] + + for board in config.boardfarm_config: + if 'location' in config.boardfarm_config[board]: + board_location = config.boardfarm_config[board]['location'] + if board_location in location: + config.boardfarm_config[board].update(location[board_location]) + except Exception as e: print(e) print('Unable to access/read Board Farm configuration\n%s' % boardfarm_config_location) From d926967b27eb0eef6ad822598f618006d225d508 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 7 Feb 2018 00:55:38 -0800 Subject: [PATCH 117/947] config: make sure testsuites exist in overly Signed-off-by: Matthew McClintock --- config.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config.py b/config.py index d4daf049..eeaed397 100644 --- a/config.py +++ b/config.py @@ -15,7 +15,8 @@ testsuite_config_files = [os.path.join(os.path.dirname(os.path.realpath(__file__)), 'testsuites.cfg'), ] if 'BFT_OVERLAY' in os.environ: for overlay in os.environ['BFT_OVERLAY'].split(' '): - testsuite_config_files.append(overlay + '/testsuites.cfg') + if os.path.isfile(overlay + '/testsuites.cfg'): + testsuite_config_files.append(overlay + '/testsuites.cfg') # Logstash server - a place to send JSON-format results to # when finished. Set to None or name:port, e.g. 'logstash.mysite.com:1300' From f72548c6bd091aa627ff6613bdb8641c8e2473fd Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 7 Feb 2018 01:17:18 -0800 Subject: [PATCH 118/947] tests: update cdrouter test to use config from json Moving twoards using this from the boardfarm config and not from an environment variable Signed-off-by: Matthew McClintock --- tests/cdrouter_bootstrap.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index f47ca9e4..7f047390 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -25,12 +25,18 @@ class CDrouterStub(rootfs_boot.RootFSBootTest): # To be overriden by children class tests = None extra_config = False + cdrouter_server = None def runTest(self): + if 'cdrouter_server' in self.config.board: + self.cdrouter_server = self.config.board['cdrouter_server'] + elif self.config.cdrouter_server is not None: + self.cdrouter_server = self.config.cdrouter_server + if self.tests is None: self.skipTest("No tests defined!") - if self.config.cdrouter_server is None: + if self.cdrouter_server is None: self.skipTest("No cdrouter server specified") for d in [wan, lan]: @@ -41,7 +47,7 @@ def runTest(self): board.expect(prompt) # TODO: make host configurable in bft config? - c = CDRouter(self.config.cdrouter_server) + c = CDRouter(self.cdrouter_server) # TODO: more clean edit of a config, and use a special name per config? try: @@ -219,7 +225,12 @@ def recover(self): @staticmethod @lib.common.run_once def parse(config): - c = CDRouter(config.cdrouter_server) + if 'cdrouter_server' in config.board: + cdrouter_server = config.board['cdrouter_server'] + elif config.cdrouter_server is not None: + cdrouter_server = config.cdrouter_server + + c = CDRouter(cdrouter_server) cdrouter_test_matrix = {} new_tests = [] for mod in c.testsuites.list_modules(): From b367e8969010c60cfb77e0bf28cc7af90839691a Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 13 Feb 2018 12:13:28 -0800 Subject: [PATCH 119/947] devices: cougarpark: kill extra telnet session The ARM core telnet is not reliably killed without this, so let's add our own implentation and kill both console ports Signed-off-by: Matthew McClintock --- devices/cougarpark.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/devices/cougarpark.py b/devices/cougarpark.py index 3648e256..492f70a6 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -10,6 +10,7 @@ import pexpect import ipaddress import connection_decider +import signal class CougarPark(openwrt_router.OpenWrtRouter): ''' @@ -38,6 +39,10 @@ def __init__(self, *args, **kwargs): arm_conn = connection_decider.connection(kwargs['connection_type'], device=self.arm, conn_cmd=self.conn_list[1], **kwargs) arm_conn.connect() + def kill_console_at_exit(self): + self.kill(signal.SIGKILL) + self.arm.kill(signal.SIGKILL) + def wait_for_boot(self): ''' Break into Shell. From 5b6c8d044c00786741a418d19d247c081d369303 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 13 Feb 2018 12:14:08 -0800 Subject: [PATCH 120/947] devices: debian: print port if non-standard This will show different port numbers so the text is not the same for all devices attached Signed-off-by: Matthew McClintock --- devices/debian.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index f438de8d..94cb3447 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -107,7 +107,10 @@ def __init__(self, self.expect(self.prompt) name = self.name = self.before.strip() - cprint("%s device console = %s" % (name, colored(color, color)), None, attrs=['bold']) + if self.port != 22: + cprint("%s port %s device console = %s" % (name, port, colored(color, color)), None, attrs=['bold']) + else: + cprint("%s device console = %s" % (name, colored(color, color)), None, attrs=['bold']) if post_cmd_host is not None: sys.stdout.write("\tRunning post_cmd_host.... ") From 108713ee8cdae80ba18bcfeea61b3e85ef61e49e Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 13 Feb 2018 12:19:18 -0800 Subject: [PATCH 121/947] devices: cougarpark: flash from UEFI via addl usb eth For now we need to use a USB ethernet from the BIOS, this is not ideal since we have to use an extra port just for this but it's working Signed-off-by: Matthew McClintock --- devices/cougarpark.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/devices/cougarpark.py b/devices/cougarpark.py index 492f70a6..f59b28a5 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -61,12 +61,9 @@ def setup_uboot_network(self, tftp_server): # required delay for networking to work... self.expect(pexpect.TIMEOUT, timeout=15) self.sendline('ifconfig -c %s' % self.uboot_eth) - self.sendline('ifconfig -s %s dhcp' % self.uboot_eth) self.expect_exact(self.uprompt, timeout=30) - self.sendline('ifconfig -l') - ip_c = str(tftp_server).split('.') - self.expect_exact('IP address: %s.%s.%s' % (ip_c[0], ip_c[1], ip_c[2])) - self.expect_exact('Gateway: %s' % tftp_server) + # this does tftp from a USB in the bios, so it's staticly configured + self.sendline('ifconfig -s %s static %s 255.255.255.0 %s' % (self.uboot_eth, tftp_server+1, tftp_server)) self.expect_exact(self.uprompt, timeout=30) self.sendline('ping %s' % tftp_server) self.sendline('10 packets transmitted, 10 received, 0% packet loss, time 0ms') From 319b4d5a93dd5a7b4a5be9567db0fa6f2052a67d Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 14 Feb 2018 08:12:38 -0800 Subject: [PATCH 122/947] tests: rootfs_boot: refactor to allow tftp_server instead of WAN device This let's the user not specify a WAN device in their config and do a LAN device only. The only requirement is that if you run this test you still need to have a tftpd-server speicifed in the configuration Signed-off-by: Matthew McClintock --- tests/rootfs_boot.py | 45 ++++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 8283c975..b77eba7f 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -14,26 +14,29 @@ class RootFSBootTest(linux_boot.LinuxBootTest): '''Flashed image and booted successfully.''' def boot(self, reflash=True): - if not wan: - msg = 'No WAN Device defined, skipping flash.' + # start tftpd server on appropriate device + tftp_servers = [ x['name'] for x in self.config.board['devices'] if 'tftpd-server' in x.get('options', "") ] + tftp_device = None + # start all tftp servers for now + for tftp_server in tftp_servers: + tftp_device = getattr(self.config, tftp_server) + # TODO: this means wan.gw != tftp_server + tftp_device.start_tftp_server() + + if not wan and len(tftp_servers) == 0: + msg = 'No WAN Device or tftp_server defined, skipping flash.' lib.common.test_msg(msg) self.skipTest(msg) - wan.configure(kind="wan_device") - if lan: - lan.configure(kind="lan_device") - - # start tftpd server on appropriate device + # This still needs some clean up, the fall back is to assuming the + # WAN provides the tftpd server, but it's not always the case if self.config.board.get('wan_device', None) is not None: wan.start_tftp_server() - else: - tftp_servers = [ x['name'] for x in self.config.board['devices'] if 'tftpd-server' in x.get('options', "") ] - # start all tftp servers for now - for tftp_server in tftp_servers: - tftp_device = getattr(self.config, tftp_server) - # TODO: this means wan.gw != tftp_server - tftp_device.start_tftp_server() + tftp_device = wan + wan.configure(kind="wan_device") + if lan: + lan.configure(kind="lan_device") board.reset() rootfs = None @@ -44,7 +47,7 @@ def boot(self, reflash=True): self.config.KERNEL or self.config.UBOOT): # Break into U-Boot, set environment variables board.wait_for_boot() - board.setup_uboot_network(wan.gw) + board.setup_uboot_network(tftp_device.gw) if self.config.META_BUILD: for attempt in range(3): try: @@ -52,9 +55,9 @@ def boot(self, reflash=True): break except Exception as e: print(e) - wan.restart_tftp_server() + tftp_device.restart_tftp_server() board.reset(break_into_uboot=True) - board.setup_uboot_network(wan.gw) + board.setup_uboot_network(tftp_device.gw) else: raise Exception('Error during flashing...') if self.config.UBOOT: @@ -93,14 +96,16 @@ def boot(self, reflash=True): # Router mac addresses are likely to change, so flush arp if lan: lan.ip_neigh_flush() - wan.ip_neigh_flush() + if wan: + wan.ip_neigh_flush() # Clear default routes perhaps left over from prior use if lan: lan.sendline('\nip -6 route del default') lan.expect(prompt) - wan.sendline('\nip -6 route del default') - wan.expect(prompt) + if wan: + wan.sendline('\nip -6 route del default') + wan.expect(prompt) # Give other daemons time to boot and settle if self.config.setup_device_networking: From 8d93cb9b3d67aa117db53696e7db06f78a81072a Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 14 Feb 2018 08:20:23 -0800 Subject: [PATCH 123/947] devices: owrt: add another Linux boot message to check for Signed-off-by: Matthew McClintock --- devices/openwrt_router.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index a7778b6b..c487d524 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -404,7 +404,7 @@ def boot_linux(self, rootfs=None, bootargs=""): def wait_for_linux(self): '''Verify Linux starts up.''' - i = self.expect(['Reset Button Push down', 'Booting Linux', 'Starting kernel ...', 'Kernel command line specified:'], timeout=45) + i = self.expect(['Reset Button Push down', 'Linux version', 'Booting Linux', 'Starting kernel ...', 'Kernel command line specified:'], timeout=45) if i == 0: self.expect('httpd') self.sendcontrol('c') From 2ce4f906e3f610bd8e9de3effb43cbef4f61f212 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Fri, 16 Feb 2018 06:22:13 -0800 Subject: [PATCH 124/947] devices: move pexpect debug wrapper to base base This let's us see debug messages for all consoles. This is useful esp. for boards with multiple serial ports and also debugging other devices Signed-off-by: Matthew McClintock --- devices/base.py | 59 +++++++++++++++++++++++++++++++++++++++ devices/openwrt_router.py | 58 -------------------------------------- 2 files changed, 59 insertions(+), 58 deletions(-) diff --git a/devices/base.py b/devices/base.py index 50344829..83800324 100644 --- a/devices/base.py +++ b/devices/base.py @@ -9,11 +9,18 @@ from termcolor import colored from datetime import datetime import re +import os +import time +import common +import error_detect +# To Do: maybe make this config variable +BFT_DEBUG = "BFT_DEBUG" in os.environ class BaseDevice(pexpect.spawn): prompt = ['root\\@.*:.*#', ] + delaybetweenchar = None def get_interface_ipaddr(self, interface): self.sendline("\nifconfig %s" % interface) @@ -138,3 +145,55 @@ def parse_perf(self, events): return ret # end perf related + + # Optional send and expect functions to try and be fancy at catching errors + def send(self, s): + if BFT_DEBUG: + common.print_bold("%s = sending: %s" % + (error_detect.caller_file_line(3), repr(s))) + + if self.delaybetweenchar is not None: + ret = 0 + for char in s: + ret += super(BaseDevice, self).send(char) + time.sleep(self.delaybetweenchar) + return ret + + return super(BaseDevice, self).send(s) + + def expect_helper(self, pattern, wrapper, *args, **kwargs): + if not BFT_DEBUG: + return wrapper(pattern, *args, **kwargs) + + common.print_bold("%s = expecting: %s" % + (error_detect.caller_file_line(2), repr(pattern))) + try: + ret = wrapper(pattern, *args, **kwargs) + if hasattr(self.match, "group"): + common.print_bold("%s = matched: %s" % + (error_detect.caller_file_line(2), repr(self.match.group()))) + else: + common.print_bold("%s = matched: %s" % + (error_detect.caller_file_line(2), repr(pattern))) + return ret + except: + common.print_bold("expired") + raise + + def expect(self, pattern, *args, **kwargs): + wrapper = super(BaseDevice, self).expect + + return self.expect_helper(pattern, wrapper, *args, **kwargs) + + def expect_exact(self, pattern, *args, **kwargs): + wrapper = super(BaseDevice, self).expect_exact + + return self.expect_helper(pattern, wrapper, *args, **kwargs) + + def sendcontrol(self, char): + if BFT_DEBUG: + common.print_bold("%s = sending: control-%s" % + (error_detect.caller_file_line(3), repr(char))) + + return super(BaseDevice, self).sendcontrol(char) + diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index c487d524..81d3ebe0 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -16,19 +16,12 @@ import pexpect import base from datetime import datetime -import time import ipaddress -import error_detect import power import common import connection_decider - -# To Do: maybe make this config variable -BFT_DEBUG = "BFT_DEBUG" in os.environ - - class OpenWrtRouter(base.BaseDevice): ''' Args: @@ -49,7 +42,6 @@ class OpenWrtRouter(base.BaseDevice): wan_iface = "eth0" tftp_server_int = None - delaybetweenchar = None uboot_net_delay = 30 routing = True @@ -486,56 +478,6 @@ def wait_for_mounts(self): else: print("WARN: Overlay still not mounted") - # Optional send and expect functions to try and be fancy at catching errors - def send(self, s): - if BFT_DEBUG: - common.print_bold("%s = sending: %s" % - (error_detect.caller_file_line(3), repr(s))) - - if self.delaybetweenchar is not None: - ret = 0 - for char in s: - ret += super(OpenWrtRouter, self).send(char) - time.sleep(self.delaybetweenchar) - return ret - - return super(OpenWrtRouter, self).send(s) - - def expect_helper(self, pattern, wrapper, *args, **kwargs): - if not BFT_DEBUG: - return wrapper(pattern, *args, **kwargs) - - common.print_bold("%s = expecting: %s" % - (error_detect.caller_file_line(2), repr(pattern))) - try: - ret = wrapper(pattern, *args, **kwargs) - if hasattr(self.match, "group"): - common.print_bold("%s = matched: %s" % - (error_detect.caller_file_line(2), repr(self.match.group()))) - else: - common.print_bold("%s = matched: %s" % - (error_detect.caller_file_line(2), repr(pattern))) - return ret - except: - common.print_bold("expired") - raise - - def expect(self, pattern, *args, **kwargs): - wrapper = super(OpenWrtRouter, self).expect - - return self.expect_helper(pattern, wrapper, *args, **kwargs) - - def expect_exact(self, pattern, *args, **kwargs): - wrapper = super(OpenWrtRouter, self).expect_exact - - return self.expect_helper(pattern, wrapper, *args, **kwargs) - - def sendcontrol(self, char): - if BFT_DEBUG: - common.print_bold("%s = sending: control-%s" % - (error_detect.caller_file_line(3), repr(char))) - - return super(OpenWrtRouter, self).sendcontrol(char) if __name__ == '__main__': # Example use From f4ae21886894c4d31c18bceffe9b334b75db07bf Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Fri, 16 Feb 2018 07:12:55 -0800 Subject: [PATCH 125/947] devices: make array of consoles to board This is so we can access them generically from other places, for now the interact test is the coming example Signed-off-by: Matthew McClintock --- devices/cougarpark.py | 1 + devices/openwrt_router.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/devices/cougarpark.py b/devices/cougarpark.py index f59b28a5..704bf7fa 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -38,6 +38,7 @@ def __init__(self, *args, **kwargs): self.arm = pexpect.spawn.__new__(pexpect.spawn) arm_conn = connection_decider.connection(kwargs['connection_type'], device=self.arm, conn_cmd=self.conn_list[1], **kwargs) arm_conn.connect() + self.consoles.append(self.arm) def kill_console_at_exit(self): self.kill(signal.SIGKILL) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 81d3ebe0..91c1e28c 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -31,6 +31,7 @@ class OpenWrtRouter(base.BaseDevice): power_outlet: Outlet # this device is connected ''' conn_list = None + consoles = [] prompt = ['root\\@.*:.*#', '/ # ', '@R7500:/# '] uprompt = ['ath>', '\(IPQ\) #', 'ar7240>', '\(IPQ40xx\)'] @@ -64,6 +65,9 @@ def __init__(self, power_username=None, power_password=None, **kwargs): + + self.consoles.append(self) + if type(conn_cmd) is list: self.conn_list = conn_cmd conn_cmd = self.conn_list[0] From b246ec065f5012c5ee1f0f2b79faa0489989084a Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Fri, 16 Feb 2018 07:13:28 -0800 Subject: [PATCH 126/947] tests: interact: handle more than one console This will let you interact with multiple consoles not just the first one Signed-off-by: Matthew McClintock --- tests/interact.py | 95 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 65 insertions(+), 30 deletions(-) diff --git a/tests/interact.py b/tests/interact.py index 5bc0b169..63a559db 100644 --- a/tests/interact.py +++ b/tests/interact.py @@ -48,13 +48,22 @@ def runTest(self): print('Pro-tip: Increase kernel message verbosity with\n' ' echo "7 7 7 7" > /proc/sys/kernel/printk') print("Menu") - print(" 1: Enter console") i = 2 + if board.consoles is None: + print(" 1: Enter console") + i += 1 + else: + i = 1 + for c in board.consoles: + print(" %s: Enter console" % i) + i += 1 if legacy: - print(" 2: Enter wan console") - print(" 3: Enter lan console") - print(" 4: Enter wlan console") - i = 5 + print(" %s: Enter wan console" % i) + i += 1 + print(" %s: Enter lan console" % i) + i += 1 + print(" %s: Enter wlan console" % i) + i += 1 print(" %s: List all tests" % i) i += 1 @@ -73,15 +82,29 @@ def runTest(self): d = getattr(self.config, key) d.interact() - if key == "1": - board.interact() - elif legacy and key == "2": - wan.interact() - elif legacy and key == "3": - lan.interact() - elif legacy and key == "4": - wlan.interact() - elif (legacy and key == "5") or key == "2": + i = 1 + for c in board.consoles: + if key == str(i): + c.interact() + i += 1 + + if legacy: + if key == str(i): + wan.interact() + continue + i += 1 + + if key == str(i): + lan.interact() + continue + i += 1 + + if key == str(i): + wlan.interact() + continue + i += 1 + + if key == str(i): try: # re import the tests test_files = glob.glob(os.path.dirname(__file__)+"/*.py") @@ -94,7 +117,10 @@ def runTest(self): rfs_boot = rootfs_boot.RootFSBootTest print("Available tests:") print_subclasses(rfs_boot) - elif (legacy and key == "6") or key == "3": + continue + i += 1 + + if key == str(i): try: # re import the tests test_files = glob.glob(os.path.dirname(__file__)+"/*.py") @@ -107,24 +133,30 @@ def runTest(self): print("Type test to run: ") test = sys.stdin.readline() - try: - board.sendline() - board.sendline('echo \"1 1 1 7\" > /proc/sys/kernel/printk') - board.expect(prompt) - t = eval(test) - cls = t(self.config) - lib.common.test_msg("\n==================== Begin %s ====================" % cls.__class__.__name__) - cls.testWrapper() - lib.common.test_msg("\n==================== End %s ======================" % cls.__class__.__name__) - board.sendline() - except: - print("Unable to (re-)run specified test") + #try: + board.sendline() + board.sendline('echo \"1 1 1 7\" > /proc/sys/kernel/printk') + board.expect(prompt) + t = eval(test) + cls = t(self.config) + lib.common.test_msg("\n==================== Begin %s ====================" % cls.__class__.__name__) + cls.testWrapper() + lib.common.test_msg("\n==================== End %s ======================" % cls.__class__.__name__) + board.sendline() + #except: + # print("Unable to (re-)run specified test") + + continue + i += 1 - elif (legacy and key == "7") or key == "4": + if key == str(i): board.reset() print("Press Ctrl-] to stop interaction and return to menu") board.interact() - elif (legacy and key == "8") or key == "5": + continue + i += 1 + + if key == str(i): print "Enter python shell, press Ctrl-D to exit" try: from IPython import embed @@ -139,5 +171,8 @@ def runTest(self): shell.interact() except: print "Unable to spawn interactive shell!" - elif key == "x": + continue + i += 1 + + if key == "x": break From dd4cf2e5820eded6630cb5039077027b531abcb1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 20 Feb 2018 11:29:02 -0800 Subject: [PATCH 127/947] README: add documentation about overlays to README Signed-off-by: Matthew McClintock --- README.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/README.md b/README.md index d08eeed4..e63c890f 100644 --- a/README.md +++ b/README.md @@ -230,4 +230,37 @@ The best automated tests share a few qualities: The goal is to catch bugs in the software being tested. It is an annoying distraction when tests themselves crash. Keep your tests simple so that others can easily figure them out. +Boarfarm overlays +----------------- + +Recently support for having overlays in a separate directory (e.g. a separat +git repository was added. This allows your own private tests, boards, and +testsuites, templates that you want to keep separate for whatever reason. +It's expected that if this is not private you can create a git repo and share +your layer with others. + +The layout of the overlay will look exactly the same as the boardfarm repo: + +my_overlay/ +├── devices +│   ├── my_device.py +├── html +│   └── template_results.html +├── tests +│   ├── this.py +│   ├── that.py +│   └── foobar.py +└── testsuites.cfg + +Tests, devices, and testsuites in your overlay are added to the available +tests, devices, testsuites. The email templates replace the ones from the main +boardfarm repo + +To specify an over lay you simply need to the space separated overlays to the +BFT_OVERLAY environment variable: + +export BFT_OVERLAY="../boardfarm-foo/ ../boardfarm-bar" + +Then after running bft you should have access to your new tests, device types, etc + Good luck and thanks for reading! From 9ba99bac2b4423ea3ba102322b98a720f1793342 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 21 Feb 2018 07:39:01 -0800 Subject: [PATCH 128/947] bft: fix closing dynamic devices We never updated this for dynamic device list, so let's fix it up properly. Also only conditionally call close on classic wan and lan devices if they are not None since they are optional in general now Signed-off-by: Matthew McClintock --- bft | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/bft b/bft index e379c74b..1a40b9f9 100755 --- a/bft +++ b/bft @@ -252,8 +252,14 @@ def main(): try: config.console.close() - config.lan.close() - config.wan.close() + if 'devices' in config.board: + for device in config.devices: + getattr(config, device).close() + else: + if config.lan is not None: + config.lan.close() + if config.wan is not None: + config.wan.close() except Exception as e: print(e) print_bold("For some reason, could not close a connection.") From 41b7df82065d0c55a52e063c78c4682e672165e5 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 21 Feb 2018 11:41:04 -0800 Subject: [PATCH 129/947] devices: check model attribute instead of class inheritance Signed-off-by: Matthew McClintock --- devices/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/__init__.py b/devices/__init__.py index d488727e..bc965796 100644 --- a/devices/__init__.py +++ b/devices/__init__.py @@ -58,7 +58,7 @@ def board_decider(model, **kwargs): device_mappings[device_file] = [] for obj in dir(device_file): ref = getattr(device_file, obj) - if inspect.isclass(ref) and issubclass(ref, base.BaseDevice): + if inspect.isclass(ref) and hasattr(ref, "model"): device_mappings[device_file].append(ref) exec("from %s import %s" % (x, obj)) except Exception as e: From 6994397e0adda60e4225bb32186b5399e7d93d8b Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 22 Feb 2018 08:02:01 -0800 Subject: [PATCH 130/947] travis: add travis yml for automated builds / test Signed-off-by: Matthew McClintock --- .travis.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..763d9633 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,6 @@ +language: python +python: + - "2.7" +script: + - ./bft -l + - ./bft -i From f3f6e9114a4a2933e1ee09f8e8df7c28f2af50e7 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 22 Feb 2018 12:28:27 -0800 Subject: [PATCH 131/947] bft: pass kernel through to device instatiation Signed-off-by: Matthew McClintock --- bft | 1 + 1 file changed, 1 insertion(+) diff --git a/bft b/bft index 1a40b9f9..59b756cd 100755 --- a/bft +++ b/bft @@ -157,6 +157,7 @@ def main(): power_username=config.board.get('power_username', None), power_password=config.board.get('power_password', None), rootfs=config.ROOTFS, + kernel=config.KERNEL, env=env) print_bold("dut device console = %s" % colored("black", 'grey')) From 88251c559f39671657730b9ce75b0e0228ea3eab Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 22 Feb 2018 12:51:41 -0800 Subject: [PATCH 132/947] devices: qemu: allow second kernel argument for changing bootargs This is required to boot some images, so let's start adding the framework to pass kernel images. Right now the params are hard coded but we can expand that later. Signed-off-by: Matthew McClintock --- devices/qemu.py | 70 +++++++++++++++++++++++++++++++------------------ 1 file changed, 45 insertions(+), 25 deletions(-) diff --git a/devices/qemu.py b/devices/qemu.py index a904d8f5..01126110 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -10,6 +10,7 @@ import sys import pexpect import atexit +import os class Qemu(openwrt_router.OpenWrtRouter): ''' @@ -23,6 +24,8 @@ class Qemu(openwrt_router.OpenWrtRouter): # allowed open ports (starting point, dns is on wan?) wan_open_ports = ['22', '53'] + cleanup_files = [] + def __init__(self, model, conn_cmd, @@ -39,42 +42,55 @@ def __init__(self, power_username=None, power_password=None, rootfs=None, + kernel=None, env=None, **kwargs): + self.consoles.append(self) + if rootfs is None: raise Exception("The QEMU device type requires specifying a rootfs") - self.dl_console = None - if rootfs.startswith("http://") or rootfs.startswith("https://"): - self.dl_console = pexpect.spawn("bash --noprofile --norc") - self.dl_console.sendline('export PS1="prompt>>"') - self.dl_console.expect_exact("prompt>>") - self.dl_console.sendline('mktemp') - self.dl_console.expect('/tmp/tmp.*') - self.fname = self.dl_console.match.group(0).strip() - self.dl_console.expect_exact("prompt>>") + def temp_download(url): + dl_console = pexpect.spawn("bash --noprofile --norc") + dl_console.sendline('export PS1="prompt>>"') + dl_console.expect_exact("prompt>>") + dl_console.sendline('mktemp') + dl_console.expect('/tmp/tmp.*') + fname = dl_console.match.group(0).strip() + dl_console.expect_exact("prompt>>") + self.cleanup_files.append(fname) atexit.register(self.run_cleanup_cmd) - self.dl_console.logfile_read = sys.stdout - print("Temp downloaded rootfs = %s" % rootfs) - self.dl_console.sendline("curl -n -L -k '%s' > %s" % (rootfs, self.fname)) - self.dl_console.expect_exact("prompt>>", timeout=500) - rootfs = self.fname + dl_console.logfile_read = sys.stdout + print("Temp downloaded file = %s" % url) + dl_console.sendline("curl -n -L -k '%s' > %s" % (url, fname)) + dl_console.expect_exact("prompt>>", timeout=500) + dl_console.logfile_read = None + dl_console.sendline('exit') + dl_console.expect(pexpect.EOF) + return fname + + if rootfs.startswith("http://") or rootfs.startswith("https://"): + rootfs = temp_download(rootfs) cmd = "%s %s" % (conn_cmd, rootfs) + if kernel is not None: + if kernel.startswith("http://") or kernel.startswith("https://"): + kernel = temp_download(kernel) + cmd += " -kernel %s --append root=/dev/hda2" % kernel + # spawn a simple bash shell for now, will launch qemu later + self.cmd = cmd pexpect.spawn.__init__(self, command='/bin/bash', args=["-c", cmd], env=env) - self.expect("SYSLINUX") + if kernel is None: + self.expect("SYSLINUX") self.logfile_read = output - # we can delete the downloaded rootfs now - if self.dl_console is not None: - self.dl_console.sendline('rm %s' % self.fname) - def run_cleanup_cmd(self): - if self.dl_console is not None: - self.dl_console.sendline('rm %s' % self.fname) + for f in self.cleanup_files: + if os.path.isfile(f): + os.remove(f) def wait_for_boot(self): pass @@ -85,10 +101,12 @@ def setup_uboot_network(self, tftp_server=None): def flash_rootfs(self, ROOTFS): pass + def flash_linux(self, KERNEL): + pass + def wait_for_linux(self): - if 0 != self.expect(["login:", "Automatic boot in"]): - self.sendline() - self.expect('login:') + self.expect('login:') + self.sendline('root') def boot_linux(self, rootfs=None, bootargs=None): pass @@ -97,6 +115,8 @@ def reset(self): self.sendcontrol('a') self.send('c') self.sendline('system_reset') - self.expect('SYSLINUX') + self.expect_exact('system_reset') + if '-kernel' not in self.cmd: + self.expect('SYSLINUX') self.sendcontrol('a') self.send('c') From 46291d32d884f1a28796d4d5a6c84c59d9be2014 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 22 Feb 2018 13:04:47 -0800 Subject: [PATCH 133/947] devices: base: expect wrapper: traverse call stack to right call func This was previously priting the same call function in the wrong spot on the call stack for all call sites when BFT_DEBUG is set, so let's do the right func in the call stack Signed-off-by: Matthew McClintock --- devices/base.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/base.py b/devices/base.py index 83800324..78f069f6 100644 --- a/devices/base.py +++ b/devices/base.py @@ -171,10 +171,10 @@ def expect_helper(self, pattern, wrapper, *args, **kwargs): ret = wrapper(pattern, *args, **kwargs) if hasattr(self.match, "group"): common.print_bold("%s = matched: %s" % - (error_detect.caller_file_line(2), repr(self.match.group()))) + (error_detect.caller_file_line(1), repr(self.match.group()))) else: common.print_bold("%s = matched: %s" % - (error_detect.caller_file_line(2), repr(pattern))) + (error_detect.caller_file_line(1), repr(pattern))) return ret except: common.print_bold("expired") From 7a7b84eab45ece2c246cfc2f72bdcd473afaea6b Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 22 Feb 2018 13:54:54 -0800 Subject: [PATCH 134/947] devices: qemu: don't run in kvm if not supported Signed-off-by: Matthew McClintock --- devices/qemu.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/devices/qemu.py b/devices/qemu.py index 01126110..ac347b7b 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -79,6 +79,11 @@ def temp_download(url): kernel = temp_download(kernel) cmd += " -kernel %s --append root=/dev/hda2" % kernel + # check if we can run kvm + kvm_chk = pexpect.spawn('sudo kvm-ok') + if 0 != kvm_chk.expect(['KVM acceleration can be used', pexpect.EOF]): + cmd = cmd.replace('--enable-kvm ', '') + # spawn a simple bash shell for now, will launch qemu later self.cmd = cmd pexpect.spawn.__init__(self, command='/bin/bash', From 9f22e5749b62a1d71e87a1ac6a349d3a31976615 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 22 Feb 2018 16:13:46 -0800 Subject: [PATCH 135/947] devices: qemu: wait for prompt after logining in Signed-off-by: Matthew McClintock --- devices/qemu.py | 1 + 1 file changed, 1 insertion(+) diff --git a/devices/qemu.py b/devices/qemu.py index ac347b7b..e43e8d1e 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -112,6 +112,7 @@ def flash_linux(self, KERNEL): def wait_for_linux(self): self.expect('login:') self.sendline('root') + self.expect(self.prompt, timeout=60) # long for non-kvm qemu def boot_linux(self, rootfs=None, bootargs=None): pass From 628d67068439a7c471d75d7d7d37f3452696d07c Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 22 Feb 2018 08:15:01 -0800 Subject: [PATCH 136/947] travis: install components to run virtualized test Signed-off-by: Matthew McClintock --- .travis.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.travis.yml b/.travis.yml index 763d9633..7e25220f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,19 @@ +sudo: required language: python python: - "2.7" +before_install: + - sudo apt-get -qq update + - sudo apt-get remove docker docker-engine docker.io + - sudo apt-get install apt-transport-https ca-certificates curl software-properties-common + - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - + - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" + - sudo apt-get -qq update + - sudo apt-get install -y qemu-system-x86 docker-ce script: - ./bft -l - ./bft -i + - yes | ./bft -b qemux86 -r http://autobuilder.yoctoproject.org/pub/releases/yocto-2.3.2/machines/qemu/qemux86/core-image-minimal-dev-qemux86.wic -k http://autobuilder.yoctoproject.org/pub/releases/yocto-2.3.2/machines/qemu/qemux86/bzImage-qemux86.bin -z -y + - grep tests_fail...0, results/test_results.json +after_failure: + - yes | BFT_DEBUG=y ./bft -b qemux86 -r http://autobuilder.yoctoproject.org/pub/releases/yocto-2.3.2/machines/qemu/qemux86/core-image-minimal-dev-qemux86.wic -k http://autobuilder.yoctoproject.org/pub/releases/yocto-2.3.2/machines/qemu/qemux86/bzImage-qemux86.bin -z -y From 4da54b5f37c83f19b2965a31e36f39357e2ef29a Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Fri, 23 Feb 2018 07:33:41 -0800 Subject: [PATCH 137/947] README: fix some MD formatting for web display Signed-off-by: Matthew McClintock --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e63c890f..db8997de 100644 --- a/README.md +++ b/README.md @@ -241,6 +241,7 @@ your layer with others. The layout of the overlay will look exactly the same as the boardfarm repo: +``` my_overlay/ ├── devices │   ├── my_device.py @@ -251,6 +252,7 @@ my_overlay/ │   ├── that.py │   └── foobar.py └── testsuites.cfg +``` Tests, devices, and testsuites in your overlay are added to the available tests, devices, testsuites. The email templates replace the ones from the main From 1bff01014e240414929ead43b84eb18d6a57459d Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 27 Feb 2018 08:42:40 -0800 Subject: [PATCH 138/947] travis: update to use newer buildbot server Signed-off-by: Matthew McClintock --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7e25220f..1b092a7a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,7 @@ before_install: script: - ./bft -l - ./bft -i - - yes | ./bft -b qemux86 -r http://autobuilder.yoctoproject.org/pub/releases/yocto-2.3.2/machines/qemu/qemux86/core-image-minimal-dev-qemux86.wic -k http://autobuilder.yoctoproject.org/pub/releases/yocto-2.3.2/machines/qemu/qemux86/bzImage-qemux86.bin -z -y + - yes | ./bft -b qemux86 -r https://autobuilder.yocto.io/pub/releases/yocto-2.4.2/machines/genericx86/core-image-minimal-genericx86.wic -k https://autobuilder.yocto.io/pub/releases/yocto-2.4.2/machines/genericx86/bzImage-genericx86.bin -z -y - grep tests_fail...0, results/test_results.json after_failure: - - yes | BFT_DEBUG=y ./bft -b qemux86 -r http://autobuilder.yoctoproject.org/pub/releases/yocto-2.3.2/machines/qemu/qemux86/core-image-minimal-dev-qemux86.wic -k http://autobuilder.yoctoproject.org/pub/releases/yocto-2.3.2/machines/qemu/qemux86/bzImage-qemux86.bin -z -y + - yes | BFT_DEBUG=y ./bft -b qemux86 -r https://autobuilder.yocto.io/pub/releases/yocto-2.4.2/machines/genericx86/core-image-minimal-genericx86.wic -k https://autobuilder.yocto.io/pub/releases/yocto-2.4.2/machines/genericx86/bzImage-genericx86.bin -z -y From 4f5117b6d680cb574f229906a41bd0072189ef45 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 1 Mar 2018 13:19:02 -0800 Subject: [PATCH 139/947] README: fix typo Signed-off-by: Matthew McClintock --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index db8997de..7b69ebde 100644 --- a/README.md +++ b/README.md @@ -230,7 +230,7 @@ The best automated tests share a few qualities: The goal is to catch bugs in the software being tested. It is an annoying distraction when tests themselves crash. Keep your tests simple so that others can easily figure them out. -Boarfarm overlays +Boardfarm overlays ----------------- Recently support for having overlays in a separate directory (e.g. a separat From 4d220681bc790f42a25eb1b119fb7bc1c4f3ecc9 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 1 Mar 2018 15:47:45 -0800 Subject: [PATCH 140/947] tests: cdrouter: cancel test if we're paused in wrong spot Some debug / defensive code so we abort tests and it does not run forever. Maybe we can try unpause again if the past unpause did not go through? Signed-off-by: Matthew McClintock --- tests/cdrouter_bootstrap.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 7f047390..5a169120 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -140,6 +140,7 @@ def runTest(self): self.results = c.results unpaused = False end_of_start = False + no_more_pausing = False while True: r = c.results.get(j.result_id) print(r.status) @@ -159,8 +160,15 @@ def runTest(self): # TODO: make this board specific? board.expect(pexpect.TIMEOUT, timeout=60) c.results.unpause(j.result_id) + board.expect(pexpect.TIMEOUT, timeout=1) + no_more_pausing = True continue + if no_more_pausing and r.status == "paused": + print("Error: test is still paused") + c.results.stop(j.result_id) + break + if r.status != "running" and r.status != "paused": break From 1e59d006d2c3ee7707b567589f5765facc4c4bc2 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 12 Mar 2018 18:48:15 -0700 Subject: [PATCH 141/947] bft: check dynamic devices for tftp_server post boot We don't know the IP address for containers before they are booted for talking to it from the host. So let's scan again if tftp_server is still none for tftp servers options and get the ip address instead of falling back to the legacy wan option... then try wan as the last ditch effort. Signed-off-by: Matthew McClintock --- bft | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/bft b/bft index 59b756cd..ab3c4a8b 100755 --- a/bft +++ b/bft @@ -166,16 +166,29 @@ def main(): if 'devices' in config.board: setup_dynamic_devices(config, env=env) - # legacy wan device - if tftp_server is None and hasattr(config, 'wan'): + def get_tftp_config(dev): saved = config.console.logfile_read config.console.logfile_read = None - config.console.tftp_server = config.wan.get_ip_addr("eth0") + config.console.tftp_server = dev.get_ip_addr("eth0") config.console.tftp_username = "root" config.console.tftp_password = "bigfoot1" config.console.tftp_port = "22" config.console.logfile_read = saved + # check devices after they start for tftpd-server option if + # if we still have not configured a tftp server + if tftp_server is None: + for x in config.board['devices']: + if 'tftpd-server' in x.get('options', ""): + get_tftp_config(getattr(config, x['name'])) + # TODO: how do we handle multiple tftp servers, break for now + break + + # legacy wan device + if tftp_server is None and getattr(config, 'wan') is not None: + get_tftp_config(config.wan) + + except Exception as e: print(e) connected_to_board = False From 4c23fb4c55eada28725017623c57cba270a84600 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 13 Mar 2018 10:45:35 -0700 Subject: [PATCH 142/947] Dockerfile: fix sed for allowing root login Signed-off-by: Matthew McClintock --- bft-node/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bft-node/Dockerfile b/bft-node/Dockerfile index ddd99000..c84e1097 100755 --- a/bft-node/Dockerfile +++ b/bft-node/Dockerfile @@ -26,6 +26,6 @@ RUN apt-get update && \ python-mysqldb RUN mkdir /var/run/sshd -RUN sed -i 's/PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config +RUN sed -i 's/.*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config EXPOSE 22 From a4f5eddc9e694e7e86bbfcebe462d6ca46d715a9 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 13 Mar 2018 11:11:00 -0700 Subject: [PATCH 143/947] bft: fix sed for allowing root login Signed-off-by: Matthew McClintock --- devices/debian.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index 94cb3447..79a7faf5 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -248,7 +248,7 @@ def configure(self, kind): # start openssh server if not running: self.sendline('/etc/init.d/ssh start') self.expect(self.prompt) - self.sendline('sed "s/PermitRootLogin.*/PermitRootLogin yes/g" -i /etc/ssh/sshd_config') + self.sendline('sed "s/.*PermitRootLogin.*/PermitRootLogin yes/g" -i /etc/ssh/sshd_config') self.expect(self.prompt) self.sendline('/etc/init.d/ssh reload') self.expect(self.prompt) From 376d30220557069ac5bc5089cc9f490634034c33 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 13 Mar 2018 14:28:38 -0700 Subject: [PATCH 144/947] bft: only warn if one more more tftp servers specified no tftpd servers could be valid Signed-off-by: Matthew McClintock --- bft | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bft b/bft index ab3c4a8b..f810cfce 100755 --- a/bft +++ b/bft @@ -123,7 +123,7 @@ def main(): if len(tftp_dev) == 1: tftp_server = tftp_dev[0]['ipaddr'] tftp_port = tftp_dev[0].get('port', '22') - else: + elif len(tftp_dev) > 1: print("WARN: more than one TFTP server is configured, please pick one") elif tftp_server is None: if len(tftp_dev) == 1: From 3134bf0d4d3e235bf30ec6991e7e262b4e9e073a Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Tue, 13 Mar 2018 15:08:58 -0700 Subject: [PATCH 145/947] bft: setup wan if device is set Previous commits from setting up the WAN device properly, we did not noticed because we were reusing WAN devices that were configured properly Signed-off-by: Matthew McClintock --- tests/rootfs_boot.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index b77eba7f..0f429776 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -34,6 +34,8 @@ def boot(self, reflash=True): wan.start_tftp_server() tftp_device = wan wan.configure(kind="wan_device") + elif wan: + wan.configure(kind="wan_device") if lan: lan.configure(kind="lan_device") From 0f3e0444e60d744adaaed3c05c825352c7d222d5 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 15 Mar 2018 09:42:10 -0700 Subject: [PATCH 146/947] tests: cdrouter: add provision for alt macaddr for wan device This config item is pulled from the WAN config for the device under test. It's used when there is some device between the DUT and the WAN such as a CMTS Signed-off-by: Matthew McClintock --- tests/cdrouter_bootstrap.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 5a169120..36d9258d 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -56,10 +56,22 @@ def runTest(self): if e == "no such config": pass - board.sendline('ifconfig %s' % board.wan_iface) - board.expect('([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})') - wandutmac = board.match.group() - board.expect(prompt) + # If alt mac addr is specified in config, use that.. + # This is used when a CMTS for example is placed between + # the device under test and the WAN + wandutmac = None + for device in self.config.board['devices']: + if device['name'] == 'wan': + if 'alt_macaddr' in device: + wandutmac = device['alt_macaddr'] + break + + # Otherwise grab this from the device interface + if wandutmac is None: + board.sendline('ifconfig %s' % board.wan_iface) + board.expect('([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})') + wandutmac = board.match.group() + board.expect(prompt) print ("Using %s for WAN mac address" % wandutmac) From de9e2399a42be148bef3cc8a6a28716acc651b46 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 15 Mar 2018 09:43:52 -0700 Subject: [PATCH 147/947] tests: cdrouter: track test time and abort if test does not start Seems like we can get stuck because a Cdrouter job does not actually start. So let's give it 60 seconds and then abort for now. In the future we can probably try to start the same job again. Signed-off-by: Matthew McClintock --- tests/cdrouter_bootstrap.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 36d9258d..327d7059 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -140,9 +140,13 @@ def runTest(self): except: board.reset() + self.start_time = time.time() j = c.jobs.launch(Job(package_id=p.id)) while j.result_id is None: + if time.time() - self.start_time > 60: + raise Exception("Failed to start CDrouter job") + board.expect(pexpect.TIMEOUT, timeout=1) j = c.jobs.get(j.id) @@ -189,6 +193,8 @@ def runTest(self): print(r.result) self.result_message = r.result.encode('ascii','ignore') # TODO: results URL? + elapsed_time = time.time() - self.start_time + print("Test took %s" % time.strftime("%H:%M:%S", time.gmtime(elapsed_time))) summary = c.results.summary_stats(j.result_id) From d00c1c7e985e07aacda6bb481f8300d530609036 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 15 Mar 2018 13:17:48 -0700 Subject: [PATCH 148/947] bft: resolve tftp ip addr after spawning if not explicit It's possible the ip address is not known from the config provided and it's only know after it's started. So let's try to resolve the ip address later in that case so we don't get an error. Might be simplier to always do this, but this is the minimial invasive change at the moment. All this device options foo should go in it's own file at some point to refactor it out of bft as it's getting quite messy Signed-off-by: Matthew McClintock --- bft | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/bft b/bft index f810cfce..d38b33ab 100755 --- a/bft +++ b/bft @@ -121,14 +121,20 @@ def main(): if 'devices' in config.board: tftp_dev = [ x for x in config.board['devices'] if 'tftpd-server' in x.get('options', "") ] if len(tftp_dev) == 1: - tftp_server = tftp_dev[0]['ipaddr'] + if 'ipaddr' in tftp_dev[0]: + tftp_server = tftp_dev[0]['ipaddr'] + else: + tftp_server = tftp_dev[0]['name'] tftp_port = tftp_dev[0].get('port', '22') elif len(tftp_dev) > 1: print("WARN: more than one TFTP server is configured, please pick one") elif tftp_server is None: if len(tftp_dev) == 1: tftp_dev = [ x for x in config.board['devices'] if x['name'] == 'wan' ] - tftp_server = tftp_dev[0]['ipaddr'] + if 'ipaddr' in tftp_dev[0]: + tftp_server = tftp_dev[0]['ipaddr'] + else: + tftp_server = tftp_dev[0]['name'] tftp_port = tftp_dev[0].get('port', '22') else: print("WARN: more than one TFTP server is configured, please pick one") @@ -183,6 +189,11 @@ def main(): get_tftp_config(getattr(config, x['name'])) # TODO: how do we handle multiple tftp servers, break for now break + else: + # check if the tftp_server is an unresolved name and resolve the ip + for x in config.board['devices']: + if tftp_server == x.get('name', ""): + get_tftp_config(getattr(config, tftp_server)) # legacy wan device if tftp_server is None and getattr(config, 'wan') is not None: From bc2d78daefc700afdefe12261a3cfa0189be4f72 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 15 Mar 2018 14:45:04 -0700 Subject: [PATCH 149/947] tests: cdrouter: uniq board config per run So we can always go back and see what happened Signed-off-by: Matthew McClintock --- tests/cdrouter_bootstrap.py | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 327d7059..1974e7d6 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -49,13 +49,6 @@ def runTest(self): # TODO: make host configurable in bft config? c = CDRouter(self.cdrouter_server) - # TODO: more clean edit of a config, and use a special name per config? - try: - c.configs.delete(c.configs.get_by_name("bft-automated-job").id) - except CDRouterError as e: - if e == "no such config": - pass - # If alt mac addr is specified in config, use that.. # This is used when a CMTS for example is placed between # the device under test and the WAN @@ -121,16 +114,10 @@ def runTest(self): print(contents) print("#######################") - cfg = c.configs.create(Config(name='bft-automated-job', contents=contents)) - - # TODO: more clean edit of a config, and use a special name per config? - try: - c.packages.delete(c.packages.get_by_name("bft-automated-job").id) - except CDRouterError as e: - if e == "no such package": - pass + config_name="bft-automated-job-%s" % str(time.time()).replace('.', '') + cfg = c.configs.create(Config(name=config_name, contents=contents)) - p = c.packages.create(Package(name="bft-automated-job", + p = c.packages.create(Package(name=config_name, testlist=self.tests, config_id=cfg.id)) From e46bd19e321418109756001279023d3f3adf29d2 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Fri, 16 Mar 2018 10:07:24 -0500 Subject: [PATCH 150/947] requirements: serial -> pyserial Signed-off-by: Matthew McClintock --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index dc7aa3f9..00a1371a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,5 +8,5 @@ selenium future dlipower cdrouter -serial +pyserial ipaddress From de3fea016c29000acea2ea80bc696b50136ad658 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Fri, 16 Mar 2018 10:07:35 -0500 Subject: [PATCH 151/947] devices: refactor dhcp server function Now we can call this for specific devices Signed-off-by: Matthew McClintock --- devices/debian.py | 45 ++++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 79a7faf5..438ad058 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -258,6 +258,29 @@ def configure(self, kind): elif kind == "lan_device": self.setup_as_lan_device() + def setup_dhcp_server(self): + # configure DHCP server + self.sendline('/etc/init.d/isc-dhcp-server stop') + self.expect(self.prompt) + self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') + self.expect(self.prompt) + self.sendline('cat > /etc/dhcp/dhcpd.conf << EOF') + self.sendline('ddns-update-style none;') + self.sendline('option domain-name "bigfoot-test";') + self.sendline('option domain-name-servers 8.8.8.8, 8.8.4.4;') + self.sendline('default-lease-time 600;') + self.sendline('max-lease-time 7200;') + # use the same netmask as the lan device + self.sendline('subnet %s netmask %s {' % (self.nw.network_address, self.nw.netmask)) + self.sendline(' range %s %s;' % (self.nw.network_address + 10, self.nw.network_address + 100)) + self.sendline(' option routers %s;' % self.gw) + self.sendline('}') + self.sendline('EOF') + self.expect(self.prompt) + self.sendline('/etc/init.d/isc-dhcp-server start') + self.expect(['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*']) + self.expect(self.prompt) + def setup_as_wan_gateway(self): self.sendline('killall iperf ab hping3') self.expect(self.prompt) @@ -281,27 +304,7 @@ def setup_as_wan_gateway(self): self.sendline('ifconfig eth1 up') self.expect(self.prompt) - # configure DHCP server - self.sendline('/etc/init.d/isc-dhcp-server stop') - self.expect(self.prompt) - self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') - self.expect(self.prompt) - self.sendline('cat > /etc/dhcp/dhcpd.conf << EOF') - self.sendline('ddns-update-style none;') - self.sendline('option domain-name "bigfoot-test";') - self.sendline('option domain-name-servers 8.8.8.8, 8.8.4.4;') - self.sendline('default-lease-time 600;') - self.sendline('max-lease-time 7200;') - # use the same netmask as the lan device - self.sendline('subnet %s netmask %s {' % (self.nw.network_address, self.nw.netmask)) - self.sendline(' range %s %s;' % (self.nw.network_address + 10, self.nw.network_address + 100)) - self.sendline(' option routers %s;' % self.gw) - self.sendline('}') - self.sendline('EOF') - self.expect(self.prompt) - self.sendline('/etc/init.d/isc-dhcp-server start') - self.expect(['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*']) - self.expect(self.prompt) + self.setup_dhcp_server(self) # configure routing self.sendline('sysctl net.ipv4.ip_forward=1') From d275b6f4721d00946c343df823f0f863bbaa13bb Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Fri, 16 Mar 2018 10:14:52 -0500 Subject: [PATCH 152/947] tests: rootfs: spawn dhcp servers if configured Signed-off-by: Matthew McClintock --- devices/debian.py | 2 +- tests/rootfs_boot.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index 438ad058..a0f8a8dc 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -304,7 +304,7 @@ def setup_as_wan_gateway(self): self.sendline('ifconfig eth1 up') self.expect(self.prompt) - self.setup_dhcp_server(self) + self.setup_dhcp_server() # configure routing self.sendline('sysctl net.ipv4.ip_forward=1') diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 0f429776..749ca4b8 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -23,6 +23,11 @@ def boot(self, reflash=True): # TODO: this means wan.gw != tftp_server tftp_device.start_tftp_server() + # start dhcp servers + for device in self.config.board['devices']: + if 'options' in device and 'dhcp-server' in device['options']: + getattr(self.config, device['name']).setup_dhcp_server() + if not wan and len(tftp_servers) == 0: msg = 'No WAN Device or tftp_server defined, skipping flash.' lib.common.test_msg(msg) From 0552d3402e606db6fa09de365ef4b09f9ca5bf40 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Fri, 16 Mar 2018 10:54:54 -0500 Subject: [PATCH 153/947] devices: owrt: don't fail if we can't resovle hostnames Signed-off-by: Matthew McClintock --- devices/openwrt_router.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 91c1e28c..a6c16a78 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -84,13 +84,16 @@ def __init__(self, self.model = model self.web_proxy = web_proxy if tftp_server: - self.tftp_server = socket.gethostbyname(tftp_server) - if tftp_username: - self.tftp_username = tftp_username - if tftp_password: - self.tftp_password = tftp_password - if tftp_port: - self.tftp_port = tftp_port + try: + self.tftp_server = socket.gethostbyname(tftp_server) + if tftp_username: + self.tftp_username = tftp_username + if tftp_password: + self.tftp_password = tftp_password + if tftp_port: + self.tftp_port = tftp_port + except: + pass else: self.tftp_server = None atexit.register(self.kill_console_at_exit) From 5cd10daca59a90ae88ff517927554b77e4904042 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Fri, 16 Mar 2018 12:22:57 -0500 Subject: [PATCH 154/947] devices: debian: refactor starting sshd server so we can run standalone Signed-off-by: Matthew McClintock --- devices/debian.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index a0f8a8dc..2c96579d 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -244,8 +244,7 @@ def restart_tftp_server(self): self.expect('Restarting') self.expect(self.prompt) - def configure(self, kind): - # start openssh server if not running: + def start_sshd_server(self): self.sendline('/etc/init.d/ssh start') self.expect(self.prompt) self.sendline('sed "s/.*PermitRootLogin.*/PermitRootLogin yes/g" -i /etc/ssh/sshd_config') @@ -253,6 +252,10 @@ def configure(self, kind): self.sendline('/etc/init.d/ssh reload') self.expect(self.prompt) + def configure(self, kind): + # start openssh server if not running: + self.start_sshd_server() + if kind == "wan_device": self.setup_as_wan_gateway() elif kind == "lan_device": From b254188b38aa6f0af870682690723fe651d78c9c Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Fri, 16 Mar 2018 12:31:58 -0500 Subject: [PATCH 155/947] devices: debian: start sshd if we start aa tftp server Signed-off-by: Matthew McClintock --- devices/debian.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index 2c96579d..50220496 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -196,6 +196,10 @@ def turn_off_pppoe(self): self.expect(self.prompt) def start_tftp_server(self): + # the entire reason to start tftp is to copy files to devices + # which we do via ssh so let's start that as well + self.start_sshd_server() + # set WAN ip address, for now this will always be this address for the device side self.sendline('ifconfig eth1 down') self.expect(self.prompt) From 5458b4ea8d3464c75ec9645d5b02f22ee40ff08c Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Thu, 15 Mar 2018 15:14:47 -0700 Subject: [PATCH 156/947] bft: append device config to device itself This will make iterating through not required anymore since we can do a direct lookup Signed-off-by: Matthew McClintock --- bft | 1 + 1 file changed, 1 insertion(+) diff --git a/bft b/bft index d38b33ab..08cfbada 100755 --- a/bft +++ b/bft @@ -83,6 +83,7 @@ def setup_dynamic_devices(config, env=None): lan_network=config.console.lan_network, lan_gateway=config.console.lan_gateway) setattr(config, device['name'], d) + d.config = device config.devices.append(device['name']) else: print("Unknown device type for %d", device) From d4a6c69067fe1b92f584806dcda73b3186e3e875 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Fri, 16 Mar 2018 12:29:42 -0700 Subject: [PATCH 157/947] tests: cdrouter: kill job if it does not start running in time Also give a bit more time to start since we really want to run this test even if it's delayed in starting Signed-off-by: Matthew McClintock --- tests/cdrouter_bootstrap.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 1974e7d6..f303c9a8 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -131,7 +131,9 @@ def runTest(self): j = c.jobs.launch(Job(package_id=p.id)) while j.result_id is None: - if time.time() - self.start_time > 60: + if (time.time() - self.start_time) > 300: + # delete job if it fails to start + c.jobs.delete(j.id) raise Exception("Failed to start CDrouter job") board.expect(pexpect.TIMEOUT, timeout=1) From 64463435df48b31edf1859f1cc631c494ee5c650 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 19 Mar 2018 09:59:45 -0700 Subject: [PATCH 158/947] bft: pass config at when devices are created This way we have access to the values when we are running the config login in the __init__ function for the classes Signed-off-by: Matthew McClintock --- bft | 4 ++-- devices/debian.py | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/bft b/bft index 08cfbada..157f8a3b 100755 --- a/bft +++ b/bft @@ -81,9 +81,9 @@ def setup_dynamic_devices(config, env=None): cleanup_cmd=device.get('cleanup_cmd', None), env=env, lan_network=config.console.lan_network, - lan_gateway=config.console.lan_gateway) + lan_gateway=config.console.lan_gateway, + config=device) setattr(config, device['name'], d) - d.config = device config.devices.append(device['name']) else: print("Unknown device type for %d", device) diff --git a/devices/debian.py b/devices/debian.py index 50220496..0912af41 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -38,7 +38,8 @@ def __init__(self, cleanup_cmd=None, env=None, lan_network=None, - lan_gateway=None): + lan_gateway=None, + config=None): if name is not None: pexpect.spawn.__init__(self, command="ssh", @@ -71,6 +72,7 @@ def __init__(self, self.env=env self.lan_network = lan_network self.lan_gateway = lan_gateway + self.config = config # we need to pick a non-conflicting private network here # also we want it to be consistant and not random for a particular From 091f2d7b0cbbe9e8f1de057fe7e34de3f6d43256 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 19 Mar 2018 10:00:25 -0700 Subject: [PATCH 159/947] devices: debian: parse wan ip/route options from config If the WAN device is not attached directly to the DUT, then we might need a static ip and static routes to properly talk to the WAN side of the device. This adds support for two options: For example: "devices": [ { "type": "debian", "name": "wan", "ipaddr": "chippy3.lgirdk.com", "port": "5136", "color": "cyan", "options": "wan-static-ip:192.168.3.1, wan-static-route:192.168.201.0/24-192.168.3.222", "alt_macaddr": "ac:22:05:fe:b5:b7" }, Signed-off-by: Matthew McClintock --- devices/debian.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index 0912af41..c2fa4b95 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -21,6 +21,7 @@ class DebianBox(base.BaseDevice): ''' prompt = ['root\\@.*:.*#', '/ # ', ".*:~ #" ] + static_route = None def __init__(self, name, @@ -84,6 +85,14 @@ def __init__(self, self.nw = ipaddress.IPv4Network(str(self.gw).decode('utf-8') + '/' + str(lan_network.netmask), strict=False) + # override above values if set in wan options + options = [x.strip() for x in self.config['options'].split(',')] + for opt in options: + if opt.startswith('wan-static-ip:'): + self.gw = opt.replace('wan-static-ip:', '') + if opt.startswith('wan-static-route:'): + self.static_route = opt.replace('wan-static-route:', '').replace('-', ' via ') + try: i = self.expect(["yes/no", "assword:", "Last login"] + self.prompt, timeout=30) except pexpect.TIMEOUT as e: @@ -332,6 +341,11 @@ def setup_as_wan_gateway(self): self.turn_off_pppoe() + if self.static_route is not None: + # TODO: add some ppint handle this more robustly + self.sendline('ip route add %s' % self.static_route) + self.expect(self.prompt) + def setup_as_lan_device(self): # potential cleanup so this wan device works self.sendline('killall iperf ab hping3') From f131b7794e9e5cd98f7c00b9848a6ce63aed398c Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 19 Mar 2018 10:15:33 -0700 Subject: [PATCH 160/947] devices: debian: only parse options if present Signed-off-by: Matthew McClintock --- devices/debian.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index c2fa4b95..67e942c9 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -86,12 +86,13 @@ def __init__(self, self.nw = ipaddress.IPv4Network(str(self.gw).decode('utf-8') + '/' + str(lan_network.netmask), strict=False) # override above values if set in wan options - options = [x.strip() for x in self.config['options'].split(',')] - for opt in options: - if opt.startswith('wan-static-ip:'): - self.gw = opt.replace('wan-static-ip:', '') - if opt.startswith('wan-static-route:'): - self.static_route = opt.replace('wan-static-route:', '').replace('-', ' via ') + if 'options' in self.config: + options = [x.strip() for x in self.config['options'].split(',')] + for opt in options: + if opt.startswith('wan-static-ip:'): + self.gw = opt.replace('wan-static-ip:', '') + if opt.startswith('wan-static-route:'): + self.static_route = opt.replace('wan-static-route:', '').replace('-', ' via ') try: i = self.expect(["yes/no", "assword:", "Last login"] + self.prompt, timeout=30) From f7e44707fe066e85c2b87cf208b9010a20353991 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Mon, 19 Mar 2018 12:41:41 -0700 Subject: [PATCH 161/947] tests: iperf: add iperf server running on second port This is useful if we are sharing common resources and need to run an iperf server on an alterate port. Signed-off-by: Matthew McClintock --- tests/iperf3_test.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tests/iperf3_test.py b/tests/iperf3_test.py index 3347d9ff..32d95478 100644 --- a/tests/iperf3_test.py +++ b/tests/iperf3_test.py @@ -15,18 +15,19 @@ class iPerf3Test(rootfs_boot.RootFSBootTest): opts= "" time = 60 + server_port = "5201" def runTest(self): installers.install_iperf3(wan) installers.install_iperf3(lan) - wan.sendline('iperf3 -s') + wan.sendline('iperf3 -s -p %s' % self.server_port) wan.expect('-----------------------------------------------------------') wan.expect('-----------------------------------------------------------') - lan.sendline('iperf3 %s -c %s -P5 -t %s -i 0' % (self.opts, wan.gw, self.time)) - lan.expect(prompt, timeout=self.time+5) + lan.sendline('iperf3 %s -c %s -P5 -t %s -i 0 -p %s' % (self.opts, wan.gw, self.time, self.server_port)) + lan.expect(prompt, timeout=self.time+10) sender = re.findall('SUM.*Bytes\s*(.*/sec).*sender', lan.before)[-1] if 'Mbits' in sender: @@ -64,3 +65,8 @@ class iPerf3RTest(iPerf3Test): '''iPerf3 reverse generic performance tests''' opts = "-R" + + +class iPerf3Test2nd(iPerf3Test): + '''iPerf3 on second server port''' + server_port = "5202" From 79650752b7bdef32c853a07f8de0346a69213eca Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 21 Mar 2018 09:09:15 -0700 Subject: [PATCH 162/947] devices: debian: add sane default values If we try to create a simple DebianBox we don't want to fail so let's add some saner default values so things work Signed-off-by: Matthew McClintock --- devices/debian.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 67e942c9..c10e6d35 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -38,9 +38,9 @@ def __init__(self, post_cmd=None, cleanup_cmd=None, env=None, - lan_network=None, - lan_gateway=None, - config=None): + lan_network=ipaddress.IPv4Network(u"192.168.1.0/24"), + lan_gateway=ipaddress.IPv4Address(u"192.168.1.1"), + config=[]): if name is not None: pexpect.spawn.__init__(self, command="ssh", From 0ac7c51a1b729bf5d2d479d5b8eb047d556b03e7 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 21 Mar 2018 09:13:32 -0700 Subject: [PATCH 163/947] devices: debian: fixup starting example DebianBox Signed-off-by: Matthew McClintock --- devices/debian.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index c10e6d35..be8279d4 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -480,15 +480,15 @@ def add_new_user(self, id, pwd): if __name__ == '__main__': # Example use - dev = DebianBox('10.0.0.173', + try: + ipaddr, port = sys.argv[1].split(':') + except: + raise Exception("First argument should be in form of ipaddr:port") + dev = DebianBox(ipaddr, 'blue', username="root", password="bigfoot1", - port="22") - dev.sendline('echo Hello') - dev.expect('Hello', timeout=4) - dev.expect(dev.prompt) - dev.reset() + port=port) dev.sendline('echo Hello') dev.expect('Hello', timeout=4) dev.expect(dev.prompt) From fc824a7e9276811fdfa2b1e4cbb6d1d31b09c77d Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 21 Mar 2018 09:48:58 -0700 Subject: [PATCH 164/947] devices: debian: allow running some config options by specifying extra arg E.g. python ./devices/debian.py $ipaddr:$port setup_as_wan_gateway Signed-off-by: Matthew McClintock --- devices/debian.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index be8279d4..2267d365 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -492,3 +492,11 @@ def add_new_user(self, id, pwd): dev.sendline('echo Hello') dev.expect('Hello', timeout=4) dev.expect(dev.prompt) + + if sys.argv[2] == "setup_as_lan_device": + dev.configure("lan_device") + if sys.argv[2] == "setup_as_wan_gateway": + dev.configure("wan_device") + + print + From 13e0866ec699a28d1c2d30aafca93d7808850e14 Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 21 Mar 2018 10:47:48 -0700 Subject: [PATCH 165/947] devices: debian: add function to copy any file to server We encode the file as ascii and decode on the machine Signed-off-by: Matthew McClintock --- devices/debian.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index 2267d365..a48f07c8 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -11,6 +11,8 @@ import base import atexit import ipaddress +import os +import binascii from termcolor import colored, cprint @@ -268,6 +270,20 @@ def start_sshd_server(self): self.sendline('/etc/init.d/ssh reload') self.expect(self.prompt) + def copy_file_to_server(self, src, dst=None): + with open(src, mode='rb') as file: + bin_file = binascii.hexlify(file.read()) + if dst is None: + dst = '/tftpboot/' + os.path.basename(src) + print ("Copying %s to %s" % (src, dst)) + saved_logfile_read = self.logfile_read + self.logfile_read = None + self.sendline('''cat << EOFEOFEOFEOF | xxd -r -p > %s +%s +EOFEOFEOFEOF''' % (dst, bin_file)) + self.expect(self.prompt) + self.logfile_read = saved_logfile_read + def configure(self, kind): # start openssh server if not running: self.start_sshd_server() From e02a26987c7016dec96f7ccc32487ae87311f9ad Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 21 Mar 2018 10:48:26 -0700 Subject: [PATCH 166/947] devices: debian: add option to configure device as cmts provisioner This starts a DHCP server with a specific config, tftp server, copies CM cfg from devices/cm-cfg/*.cfg to tftp server and starts a time server You can test via: $ python ./devices/debian.py $ipaddr:$port setup_as_cmts_provisioner Signed-off-by: Matthew McClintock --- devices/debian.py | 77 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index a48f07c8..4c3b010e 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -13,6 +13,7 @@ import ipaddress import os import binascii +import glob from termcolor import colored, cprint @@ -292,6 +293,80 @@ def configure(self, kind): self.setup_as_wan_gateway() elif kind == "lan_device": self.setup_as_lan_device() + elif kind == "cmts_provisioner": + self.setup_as_cmts_provisioner() + + def setup_as_cmts_provisioner(self): + self.sendline('apt-get -o DPkg::Options::="--force-confnew" -qy install isc-dhcp-server xinetd') + self.expect(self.prompt) + self.sendline('/etc/init.d/isc-dhcp-server stop') + self.expect(self.prompt) + self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') + self.expect(self.prompt) + self.sendline('ifconfig eth1 192.168.100.2') + self.expect(self.prompt) + self.sendline('ip route add 192.168.201.0/24 via 192.168.100.1') + self.expect(self.prompt) + self.sendline('ip route add 192.168.200.0/24 via 192.168.100.1') + self.expect(self.prompt) + self.sendline('''cat > /etc/dhcp/dhcpd.conf << EOF +log-facility local7; +option log-servers 192.168.100.2; +option time-servers 192.168.100.2; +next-server 192.168.100.2; +default-lease-time 604800; +max-lease-time 604800; +allow leasequery; +option time-servers 192.168.100.1; +subnet 192.168.100.0 netmask 255.255.255.0 { + interface eth1; +} +subnet 192.168.200.0 netmask 255.255.255.0 +{ + interface eth1; + range 192.168.200.10 192.168.200.250; + option routers 192.168.200.1; + option broadcast-address 192.168.200.255; + option dhcp-parameter-request-list 43; + option domain-name "local"; + option time-offset 1; + option tftp-server-name "192.168.100.2"; + filename "UNLIMITCASA.cfg"; + allow unknown-clients; +} +subnet 192.168.201.0 netmask 255.255.255.0 +{ + interface eth1; + range 192.168.201.10 192.168.201.250; + option routers 192.168.201.1; + option broadcast-address 192.168.201.255; + option time-offset 1; + option domain-name-servers 8.8.4.4; + allow unknown-clients; +} +EOF''') + self.expect(self.prompt) + self.sendline('/etc/init.d/isc-dhcp-server start') + self.expect(['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*']) + self.expect(self.prompt) + + self.start_tftp_server() + + # Look in all overlays as well, and PATH as a workaround for standalone + cfg_list = [] + for path in os.environ['PATH'].split(os.pathsep): + for cfg in glob.glob(path + 'devices/cm-cfg/*.cfg'): + cfg_list.append(cfg) + cfg_set = set(cfg_list) + + # Copy binary files to tftp server + for cfg in cfg_set: + self.copy_file_to_server(cfg) + + self.sendline("sed 's/disable\\t\\t= yes/disable\\t\\t= no/g' -i /etc/xinetd.d/time") + self.expect(self.prompt) + self.sendline('/etc/init.d/xinetd restart') + self.expect(self.prompt) def setup_dhcp_server(self): # configure DHCP server @@ -513,6 +588,8 @@ def add_new_user(self, id, pwd): dev.configure("lan_device") if sys.argv[2] == "setup_as_wan_gateway": dev.configure("wan_device") + if sys.argv[2] == "setup_as_cmts_provisioner": + dev.configure("cmts_provisioner") print From eabc1adf9d461d4ab96f5b3cf27c5a22b1094fcb Mon Sep 17 00:00:00 2001 From: Matthew McClintock Date: Wed, 7 Feb 2018 23:43:55 -0800 Subject: [PATCH 167/947] devices: add Ip9258 power cycle support This can be used like most other power devices, it just needs the following attributes in the boardfarm config: "powerip": "172.19.17.165", "powerport":"1", "power_username":"admin", "power_password":"12345678", Signed-off-by: Matthew McClintock --- devices/power.py | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/devices/power.py b/devices/power.py index 7a1be080..4a92461d 100644 --- a/devices/power.py +++ b/devices/power.py @@ -54,6 +54,8 @@ def get_power_device(ip_address, username=None, password=None, outlet=None): return SentrySwitchedCDU(ip_address, outlet=outlet) if 'APC ' in data: return APCPower(ip_address, outlet=outlet) + if '<b>IP9258 Log In</b>' in data: + return Ip9258(ip_address, outlet, username=username, password=password) else: raise Exception("No code written to handle power device found at %s" % ip_address) @@ -226,6 +228,55 @@ def reset(self): ser.close() +# +# IP Power 9258 networked power switch class +# +# This work is released under the Creative Commons Zero (CC0) license. +# See http://creativecommons.org/publicdomain/zero/1.0/ + +# Example use: +# +# import time +# from ip9258 import Ip9258 +# +# ip9258 = Ip9258('192.168.1.10', 'admin', 'password') +# +# for i in range(4): +# ip9258.on(i) +# time.delay(1) +# +# ip9258.off(i) +# time.delay(1) + +import urllib2 + +class Ip9258(PowerDevice): + def __init__(self, ip_address, port, username="admin", password="12345678"): + PowerDevice.__init__(self, ip_address, username, password) + self._ip_address = ip_address + self.port = port + + # create a password manager + password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm() + password_mgr.add_password(None, 'http://' + ip_address, username, password) + handler = urllib2.HTTPBasicAuthHandler(password_mgr) + opener = urllib2.build_opener(handler) + # Now all calls to urllib2.urlopen use our opener. + urllib2.install_opener(opener) + + def on(self): + print("Power On Port(%s)\n" % self.port) + return urllib2.urlopen('http://' + self._ip_address + '/set.cmd?cmd=setpower+p6' + str(self.port) + '=1') + + def off(self): + print("Power Off Port(%s)\n" % self.port) + return urllib2.urlopen('http://' + self._ip_address + '/set.cmd?cmd=setpower+p6' + str(self.port) + '=0') + + def reset(self): + self.off() + time.sleep(5) + self.on() + if __name__ == "__main__": print("Gathering info about power outlets...") From c91ea055a8ddfb9406bd959e153b0aa7c0abd181 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 27 Mar 2018 19:33:44 -0700 Subject: [PATCH 168/947] devices: debian: set self.gw so we don't change ip address later Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 1 + 1 file changed, 1 insertion(+) diff --git a/devices/debian.py b/devices/debian.py index 4c3b010e..c3d7d5da 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -304,6 +304,7 @@ def setup_as_cmts_provisioner(self): self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') self.expect(self.prompt) self.sendline('ifconfig eth1 192.168.100.2') + self.gw = "192.168.100.2" self.expect(self.prompt) self.sendline('ip route add 192.168.201.0/24 via 192.168.100.1') self.expect(self.prompt) From ed16360a916eb7d70b931a21c28f5481f8a967ff Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 27 Mar 2018 19:40:21 -0700 Subject: [PATCH 169/947] devices: debian: don't mess with eth1 if ip address is already set Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index c3d7d5da..e675e7e1 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -215,17 +215,24 @@ def start_tftp_server(self): # which we do via ssh so let's start that as well self.start_sshd_server() + try: + eth1_addr = self.get_ip_addr('eth1') + except: + eth1_addr = None + # set WAN ip address, for now this will always be this address for the device side - self.sendline('ifconfig eth1 down') - self.expect(self.prompt) + if self.gw != eth1_addr: + self.sendline('ifconfig eth1 down') + self.expect(self.prompt) # install packages required self.sendline('apt-get -o DPkg::Options::="--force-confnew" -qy install tftpd-hpa') # set WAN ip address, for now this will always be this address for the device side # TODO: fix gateway for non-WAN tftp_server - self.sendline('ifconfig eth1 %s' % getattr(self, 'gw', '192.168.0.1')) - self.expect(self.prompt) + if self.gw != eth1_addr: + self.sendline('ifconfig eth1 %s' % getattr(self, 'gw', '192.168.0.1')) + self.expect(self.prompt) #configure tftp server self.sendline('/etc/init.d/tftpd-hpa stop') From cb3d13f8224429125039ac9d80dee48758f76bbc Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 27 Mar 2018 20:49:24 -0700 Subject: [PATCH 170/947] devices: debian: verify a file was copied copy_file_to_server can fail silently, let's fix that Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index e675e7e1..b99f84a1 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -290,6 +290,9 @@ def copy_file_to_server(self, src, dst=None): %s EOFEOFEOFEOF''' % (dst, bin_file)) self.expect(self.prompt) + self.sendline('ls %s' % dst) + self.expect_exact('ls %s' % dst) + self.expect('%s' % dst) self.logfile_read = saved_logfile_read def configure(self, kind): From 1a24a867b16946b5db10294d1f7e8e57e5c17c1c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 27 Mar 2018 05:29:55 +0000 Subject: [PATCH 171/947] devices: debian: parse wan-dhcp-client from options Instead of a hard coded or static ip use DHCP for the ip address on the wan side interface. This assumes that the network is not isolated on the WAN side "options": "wan-dhcp-client" Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index b99f84a1..8f0a5473 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -25,6 +25,7 @@ class DebianBox(base.BaseDevice): prompt = ['root\\@.*:.*#', '/ # ', ".*:~ #" ] static_route = None + wan_dhcp = False def __init__(self, name, @@ -96,6 +97,8 @@ def __init__(self, self.gw = opt.replace('wan-static-ip:', '') if opt.startswith('wan-static-route:'): self.static_route = opt.replace('wan-static-route:', '').replace('-', ' via ') + if opt.startswith('wan-dhcp-client'): + self.wan_dhcp = True try: i = self.expect(["yes/no", "assword:", "Last login"] + self.prompt, timeout=30) @@ -420,12 +423,20 @@ def setup_as_wan_gateway(self): self.expect(self.prompt) # set WAN ip address - self.sendline('ifconfig eth1 %s' % self.gw) - self.expect(self.prompt) - self.sendline('ifconfig eth1 up') - self.expect(self.prompt) - - self.setup_dhcp_server() + if self.wan_dhcp: + self.sendline('/etc/init.d/isc-dhcp-server stop') + self.expect(self.prompt) + self.sendline('dhclient -r eth1') + self.expect(self.prompt) + self.sendline('dhclient eth1') + self.expect(self.prompt) + self.gw = self.get_ip_addr("eth1") + else: + self.sendline('ifconfig eth1 %s' % self.gw) + self.expect(self.prompt) + self.sendline('ifconfig eth1 up') + self.expect(self.prompt) + self.setup_dhcp_server() # configure routing self.sendline('sysctl net.ipv4.ip_forward=1') From 8a8d2d9125ecd9a683ffa4b19d340b85091c66ad Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 27 Mar 2018 05:43:52 +0000 Subject: [PATCH 172/947] deploy-boardfarm-script: add script to deploy docker containers on ethernet interface This script can be run as follows: $ ./deploy-boardfarm-nodes.sh eth0 101 106 This will deploy a docker container where eth0 has the access to the internet and the ssh port (22) and http proxy port (8080) are exposed to the host on 5NNN and 8NNN based on the vlan tags used (101 -> 106 above) Also eth1 will be mapped to eth.NNN vlan interface within Linux. This allows you to mux a single ethernet interface (or perhaps bonded) interface to a switch as an example and turn 1 ethernet interface into many interfaces on a switch. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 deploy-boardfarm-nodes.sh diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh new file mode 100755 index 00000000..212e7ea0 --- /dev/null +++ b/deploy-boardfarm-nodes.sh @@ -0,0 +1,38 @@ +#!/bin/bash -xe + +IFACE=${1:-bond0} +START_VLAN=${2:-101} +END_VLAN=${3:-144} + +echo "Creating nodes starting on vlan $START_VLAN to $END_VLAN on iface $IFACE" + +random_private_mac () { + echo $1$1$1$1$1$1 | od -An -N6 -tx1 | sed -e 's/^ *//' -e 's/ */:/g' -e 's/:$//' -e 's/^\(.\)[13579bdf]/\10/' +} + +for vlan in $(seq $START_VLAN $END_VLAN); do + echo "Creating node on vlan $vlan" + + cname=bft-node-$IFACE-$vlan + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -p $(( 5000 + $vlan )):22 \ + -p $(( 8000 + $vlan )):8080 \ + -d bft:node /usr/sbin/sshd -D + + sudo ip link del $IFACE.$vlan || true + sudo ip link add link $IFACE name $IFACE.$vlan type vlan id $vlan + + cspace=$(docker inspect --format '{{.State.Pid}}' $cname) + sudo ip link set netns $cspace dev $IFACE.$vlan + docker exec $cname ip link set $IFACE.$vlan name eth1 + docker exec $cname ip link set dev eth1 address $(random_private_mac $vlan) + + # TODO: This is a problem if the router network matches the host network + host_dev=$(ip route list | grep ^default | awk '{print $5}') + local_route=$(ip route | grep "dev $host_dev" | grep -v ^default | awk '{print $1}') + docker exec $cname ip route add $local_route dev eth0 via 172.17.0.1 +done + +echo "Running the command below will stop all containers and clean up everything:" +echo 'docker stop $(docker ps -q) && docker rm $(docker ps -a -q)' From 55884260685cca2b3d46cb524e9cd2f7aed99646 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 27 Mar 2018 05:48:40 +0000 Subject: [PATCH 173/947] deploy-boardfarm-script: ignore non-default routes by grepping out via and take first match An interface might have more than one default route if it has two ip addresses for just take the first one. At some point this can be more dynamic to determine the connection connect via Also ignore specific routes by grepping out via as we don't to keep those in the container as well Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 212e7ea0..4fd3fadb 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -30,7 +30,7 @@ for vlan in $(seq $START_VLAN $END_VLAN); do # TODO: This is a problem if the router network matches the host network host_dev=$(ip route list | grep ^default | awk '{print $5}') - local_route=$(ip route | grep "dev $host_dev" | grep -v ^default | awk '{print $1}') + local_route=$(ip route | grep "dev $host_dev" | grep -v ^default | grep -v via | awk '{print $1}' | head -n1) docker exec $cname ip route add $local_route dev eth0 via 172.17.0.1 done From d9a67c41516bbb01f965b87731914804afe0e2f3 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 27 Mar 2018 05:52:24 +0000 Subject: [PATCH 174/947] deploy-boardfarm-script: refactor local_route to it's own function No functional change Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 4fd3fadb..42ca9e27 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -10,6 +10,13 @@ random_private_mac () { echo $1$1$1$1$1$1 | od -An -N6 -tx1 | sed -e 's/^ *//' -e 's/ */:/g' -e 's/:$//' -e 's/^\(.\)[13579bdf]/\10/' } +local_route () { + # TODO: This is a problem if the router network matches the host network + host_dev=$(ip route list | grep ^default | awk '{print $5}' ) + local_route=$(ip route | grep "dev $host_dev" | grep -v ^default | grep -v via | awk '{print $1}' | head -n1) + docker exec $cname ip route add $local_route dev eth0 via 172.17.0.1 +} + for vlan in $(seq $START_VLAN $END_VLAN); do echo "Creating node on vlan $vlan" @@ -28,10 +35,7 @@ for vlan in $(seq $START_VLAN $END_VLAN); do docker exec $cname ip link set $IFACE.$vlan name eth1 docker exec $cname ip link set dev eth1 address $(random_private_mac $vlan) - # TODO: This is a problem if the router network matches the host network - host_dev=$(ip route list | grep ^default | awk '{print $5}') - local_route=$(ip route | grep "dev $host_dev" | grep -v ^default | grep -v via | awk '{print $1}' | head -n1) - docker exec $cname ip route add $local_route dev eth0 via 172.17.0.1 + local_route done echo "Running the command below will stop all containers and clean up everything:" From 9667593e0fb3703cc3803845869bfd2a04b9cf08 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 27 Mar 2018 05:59:47 +0000 Subject: [PATCH 175/947] deploy-boardfarm-script: add option to limit local route setting Sometimes we don't want to muck with the containers routes so we add a 4th paramter to limit this This is useful when the wan-dhcp-client option is set and we don't need to enable the things local_route is setting Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 42ca9e27..d87644b8 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -3,6 +3,7 @@ IFACE=${1:-bond0} START_VLAN=${2:-101} END_VLAN=${3:-144} +LOCAL_ROUTE=${4:-"both"} # both, odd, even echo "Creating nodes starting on vlan $START_VLAN to $END_VLAN on iface $IFACE" @@ -35,7 +36,12 @@ for vlan in $(seq $START_VLAN $END_VLAN); do docker exec $cname ip link set $IFACE.$vlan name eth1 docker exec $cname ip link set dev eth1 address $(random_private_mac $vlan) - local_route + [ "$LOCAL_ROUTE" = "both" ] && { local_route; continue; } + if [ $((vlan%2)) -eq 0 ]; then + [ "$LOCAL_ROUTE" = "even" ] && local_route + elif [ "$LOCAL_ROUTE" = "odd" ]; then + local_route + fi done echo "Running the command below will stop all containers and clean up everything:" From dcbfa99907bcf6074abaf565037a73581ea2148f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 27 Mar 2018 09:42:13 +0000 Subject: [PATCH 176/947] devices: debian: small attempt to remove default route before adding new one Sometimes you can't add a new route because something already exists, let's remove that first. This can still be improved greatly as far as robustness goes Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 1 + 1 file changed, 1 insertion(+) diff --git a/devices/debian.py b/devices/debian.py index 8f0a5473..c290d744 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -457,6 +457,7 @@ def setup_as_wan_gateway(self): if self.static_route is not None: # TODO: add some ppint handle this more robustly + self.send('ip route del %s; ' % self.static_route.split(' via ')[0]) self.sendline('ip route add %s' % self.static_route) self.expect(self.prompt) From 991498c1433fcfd91a23cdc5a235e6dfbb129624 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 27 Mar 2018 10:25:31 +0000 Subject: [PATCH 177/947] devices: debian: set route to wan if lan-fixed-route-to-wan is in lan options This is useful for when our local route in our container is conflicting with the route to the wan device via the DUT. We set it manually in this case by setting the option Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 11 ++++++++++- tests/rootfs_boot.py | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index c290d744..aee65d4f 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -487,7 +487,7 @@ def setup_as_lan_device(self): self.sendline('pkill --signal 9 -f dhclient.*eth1') self.expect(self.prompt) - def start_lan_client(self): + def start_lan_client(self, wan_gw=None): self.sendline('\nifconfig eth1 up') self.expect('ifconfig eth1 up') self.expect(self.prompt) @@ -563,6 +563,15 @@ def start_lan_client(self): pass self.expect(self.prompt) + if wan_gw is not None and 'options' in self.config and \ + 'lan-fixed-route-to-wan' in self.config['options']: + self.sendline("ip route list 0/0 | awk '{print $3}'") + self.expect_exact("ip route list 0/0 | awk '{print $3}'") + self.expect(self.prompt) + default_route=self.before.strip() + self.sendline('ip route add %s via %s' % (wan_gw, default_route)) + self.expect(self.prompt) + def add_new_user(self, id, pwd): '''Create new login ID. But check if already exists''' self.sendline('\nadduser %s' % id) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 749ca4b8..928ba9f3 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -154,7 +154,7 @@ def boot(self, reflash=True): self.logged['boot_time'] = end_seconds_up if board.routing and lan and self.config.setup_device_networking: - lan.start_lan_client() + lan.start_lan_client(wan_gw=wan.gw) reflash = False reboot = False From 67944af4066aa0adff0ddbff97ccce256ea5ca53 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 28 Mar 2018 07:36:30 +0000 Subject: [PATCH 178/947] devices: ser2net: add expect text for NTI serial server Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/ser2net_connection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/ser2net_connection.py b/devices/ser2net_connection.py index aa6ca5d4..f7815582 100644 --- a/devices/ser2net_connection.py +++ b/devices/ser2net_connection.py @@ -11,7 +11,7 @@ def connect(self): args=['-c', self.conn_cmd]) try: - result = self.device.expect(["assword:", "ser2net.*\r\n", "OpenGear Serial Server"]) + result = self.device.expect(["assword:", "ser2net.*\r\n", "OpenGear Serial Server", "to access the port escape menu"]) except pexpect.EOF as e: raise Exception("Board is in use (connection refused).") if result == 0: From 93ca2db2abc5f90cbf6b903d4022dd1d82c2d3f3 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 29 Mar 2018 08:09:03 +0000 Subject: [PATCH 179/947] bft: remove duplicate get_ip_addr This was also called get_interface_ipaddr, so let's just use one Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 2 +- devices/debian.py | 8 ++++---- devices/openwrt_router.py | 8 -------- tests/ping.py | 2 +- 4 files changed, 6 insertions(+), 14 deletions(-) diff --git a/bft b/bft index 157f8a3b..9106f625 100755 --- a/bft +++ b/bft @@ -176,7 +176,7 @@ def main(): def get_tftp_config(dev): saved = config.console.logfile_read config.console.logfile_read = None - config.console.tftp_server = dev.get_ip_addr("eth0") + config.console.tftp_server = dev.get_interface_ipaddr("eth0") config.console.tftp_username = "root" config.console.tftp_password = "bigfoot1" config.console.tftp_port = "22" diff --git a/devices/debian.py b/devices/debian.py index aee65d4f..61b3d432 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -182,7 +182,7 @@ def reset(self): self.password, self.port, reboot=False) - def get_ip_addr(self, interface): + def get_interface_ipaddr(self, interface): self.sendline("\nifconfig %s" % interface) regex = ['addr:(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).*(Bcast|P-t-P):', 'inet (\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).*(broadcast|P-t-P)'] @@ -219,7 +219,7 @@ def start_tftp_server(self): self.start_sshd_server() try: - eth1_addr = self.get_ip_addr('eth1') + eth1_addr = self.get_interface_ipaddr('eth1') except: eth1_addr = None @@ -430,7 +430,7 @@ def setup_as_wan_gateway(self): self.expect(self.prompt) self.sendline('dhclient eth1') self.expect(self.prompt) - self.gw = self.get_ip_addr("eth1") + self.gw = self.get_interface_ipaddr("eth1") else: self.sendline('ifconfig eth1 %s' % self.gw) self.expect(self.prompt) @@ -441,7 +441,7 @@ def setup_as_wan_gateway(self): # configure routing self.sendline('sysctl net.ipv4.ip_forward=1') self.expect(self.prompt) - wan_ip_uplink = self.get_ip_addr("eth0") + wan_ip_uplink = self.get_interface_ipaddr("eth0") self.sendline('iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source %s' % wan_ip_uplink) self.expect(self.prompt) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index a6c16a78..5c88e1ac 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -121,14 +121,6 @@ def reset(self, break_into_uboot=False): print(e) print("\nWe appeared to have failed to break into U-Boot...") - def get_ip_addr(self, interface): - '''Return IP Address for given interface.''' - self.sendline("\nifconfig %s" % interface) - self.expect('addr:(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).*(Bcast|P-t-P):', timeout=5) - ipaddr = self.match.group(1) - self.expect(self.prompt) - return ipaddr - def get_seconds_uptime(self): '''Return seconds since last reboot. Stored in /proc/uptime''' self.sendcontrol('c') diff --git a/tests/ping.py b/tests/ping.py index da9f1311..402ae097 100644 --- a/tests/ping.py +++ b/tests/ping.py @@ -43,7 +43,7 @@ def runTest(self): msg = 'No LAN Device defined, skipping ping test from LAN.' lib.common.test_msg(msg) self.skipTest(msg) - router_ip = board.get_ip_addr(board.lan_iface) + router_ip = board.get_interface_ipaddr(board.lan_iface) lan.sendline('\nping -i 0.2 -c 5 %s' % router_ip) lan.expect('PING ') lan.expect('5 (packets )?received', timeout=15) From 77cebcc34fc7f76281362d5bf843bb13db5f1258 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 29 Mar 2018 09:01:10 +0000 Subject: [PATCH 180/947] devices: owrt: don't timeout in 30 seconds for simple route command This is hitting an error on 2-core devices, because the interface is not on the same core. For now let's at least timeout a lot faster so we don't split for 5 minutes here Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 5c88e1ac..990e0119 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -293,7 +293,7 @@ def wait_for_network(self): if not ipaddr: continue self.sendline("route -n") - self.expect(interface) + self.expect(interface, timeout=2) self.expect(self.prompt) except pexpect.TIMEOUT: print("waiting for wan/lan ipaddr") From 25eb6b2d462ab18a02762dfa96452a29bcfcef60 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 2 Apr 2018 10:26:06 -0700 Subject: [PATCH 181/947] tests: nmap: keep board active Depending on setup, board can timeout connection so let's keep some activity going Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/nmap.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/nmap.py b/tests/nmap.py index 913e638b..4feea56c 100644 --- a/tests/nmap.py +++ b/tests/nmap.py @@ -7,6 +7,7 @@ import random import re +import pexpect import rootfs_boot from devices import board, wan, lan, wlan, prompt @@ -18,7 +19,11 @@ def recover(self): def runTest(self): lan.sendline('nmap -sS -A -v -p 1-10000 %s' % board.get_interface_ipaddr(board.lan_iface)) lan.expect('Starting Nmap') - lan.expect('Nmap scan report', timeout=1200) + for i in range(12): + if 0 == lan.expect(['Nmap scan report', pexpect.TIMEOUT], timeout=100): + break + board.sendcontrol('c') + board.expect(prompt) lan.expect(prompt, timeout=60) open_ports = re.findall("(\d+)/tcp\s+open", lan.before) msg = "Found %s open TCP ports on LAN interface: %s." % \ From d5283207256dde81c1a574dce932de4f1c691e98 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 4 Apr 2018 13:55:02 -0700 Subject: [PATCH 182/947] bft: export TERM as dumb so we attempt to disable colors We've not been setup to handle colors so let's try to prevent them from being sent over connections Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bft b/bft index 9106f625..ad1989ad 100755 --- a/bft +++ b/bft @@ -100,6 +100,8 @@ def main(): from termcolor import colored from library import print_bold + os.environ["TERM"] = "dumb" + # Connect to any board in list connected_to_board = False random.shuffle(config.BOARD_NAMES) From 1019e580c101720366a934b67f6a401018ee1179 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 4 Apr 2018 13:55:53 -0700 Subject: [PATCH 183/947] devices: debian: add prompt expect for shell with non-root user We mostly test with root user for the lan devices, but it's possible to run as a non-root users so let's account for that unique prompt here Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index 61b3d432..4a8279d7 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -71,6 +71,8 @@ def __init__(self, self.color = color self.output = output self.username = username + if username != "root": + self.prompt.append('%s\\@.*:.*$' % username) self.password = password self.port = port self.location = location From 1ac05aa1e6bb139c921bac08b41d4980a0234dd0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 30 Mar 2018 06:09:45 +0000 Subject: [PATCH 184/947] deploy-boardfarm-script: refactor containter creation function No functional change Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index d87644b8..39d27ba4 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -18,8 +18,9 @@ local_route () { docker exec $cname ip route add $local_route dev eth0 via 172.17.0.1 } -for vlan in $(seq $START_VLAN $END_VLAN); do - echo "Creating node on vlan $vlan" +# eth0 is docker private network, eth1 is vlan on specific interface +create_container_eth1_vlan () { + local vlan=$1 cname=bft-node-$IFACE-$vlan docker stop $cname && docker rm $cname @@ -35,6 +36,12 @@ for vlan in $(seq $START_VLAN $END_VLAN); do sudo ip link set netns $cspace dev $IFACE.$vlan docker exec $cname ip link set $IFACE.$vlan name eth1 docker exec $cname ip link set dev eth1 address $(random_private_mac $vlan) +} + +for vlan in $(seq $START_VLAN $END_VLAN); do + echo "Creating node on vlan $vlan" + + create_container_eth1_vlan $vlan [ "$LOCAL_ROUTE" = "both" ] && { local_route; continue; } if [ $((vlan%2)) -eq 0 ]; then From db28c7355326908583546f8ba6a2aa50f7f1cb4f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 30 Mar 2018 06:11:57 +0000 Subject: [PATCH 185/947] deploy-boardfarm-script: rename LOCAL_ROUTE to OPTS for any options Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 39d27ba4..eb09db03 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -3,7 +3,7 @@ IFACE=${1:-bond0} START_VLAN=${2:-101} END_VLAN=${3:-144} -LOCAL_ROUTE=${4:-"both"} # both, odd, even +OPTS=${4:-"both"} # both, odd, even, odd-dhcp, even-dhcp echo "Creating nodes starting on vlan $START_VLAN to $END_VLAN on iface $IFACE" @@ -43,10 +43,10 @@ for vlan in $(seq $START_VLAN $END_VLAN); do create_container_eth1_vlan $vlan - [ "$LOCAL_ROUTE" = "both" ] && { local_route; continue; } + [ "$OPTS" = "both" ] && { local_route; continue; } if [ $((vlan%2)) -eq 0 ]; then - [ "$LOCAL_ROUTE" = "even" ] && local_route - elif [ "$LOCAL_ROUTE" = "odd" ]; then + [ "$OPTS" = "even" ] && local_route + elif [ "$OPTS" = "odd" ]; then local_route fi done From 790b30b1b749ee8a6449c56c13dd9f72f15e66e9 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 30 Mar 2018 06:49:21 +0000 Subject: [PATCH 186/947] deploy-boardfarm-script: add option to create eth1 dhcp container This container will run on the local network, and just use DHCP for eth1 (and will be missing eth0 for now) Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index eb09db03..8e2eb4c8 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -4,6 +4,7 @@ IFACE=${1:-bond0} START_VLAN=${2:-101} END_VLAN=${3:-144} OPTS=${4:-"both"} # both, odd, even, odd-dhcp, even-dhcp +BRINT=br-bft echo "Creating nodes starting on vlan $START_VLAN to $END_VLAN on iface $IFACE" @@ -38,6 +39,26 @@ create_container_eth1_vlan () { docker exec $cname ip link set dev eth1 address $(random_private_mac $vlan) } +# eth0/eth1 are both dhcp on the main network +create_container_eth1_dhcp () { + local vlan=$1 + + cname=bft-node-$IFACE-$vlan + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -d --network=none bft:node /usr/sbin/sshd -D + + cspace=$(docker inspect --format '{{.State.Pid}}' $cname) + + # create lab network access port + sudo ip link add tempfoo link $IFACE type macvlan mode bridge + sudo ip link set dev tempfoo up + sudo ip link set netns $cspace dev tempfoo + docker exec $cname ip link set tempfoo name eth1 + docker exec $cname ifconfig eth1 up + docker exec $cname dhclient eth1 +} + for vlan in $(seq $START_VLAN $END_VLAN); do echo "Creating node on vlan $vlan" From 317c9edbd5a61c0361760ce6de8500c81fe91528 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 30 Mar 2018 07:49:44 +0000 Subject: [PATCH 187/947] deploy-boardfarm-script: allow script to be sourced and not run default config Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 8e2eb4c8..5525685c 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -1,13 +1,11 @@ #!/bin/bash -xe -IFACE=${1:-bond0} +IFACE=${1:-undefined} START_VLAN=${2:-101} END_VLAN=${3:-144} OPTS=${4:-"both"} # both, odd, even, odd-dhcp, even-dhcp BRINT=br-bft -echo "Creating nodes starting on vlan $START_VLAN to $END_VLAN on iface $IFACE" - random_private_mac () { echo $1$1$1$1$1$1 | od -An -N6 -tx1 | sed -e 's/^ *//' -e 's/ */:/g' -e 's/:$//' -e 's/^\(.\)[13579bdf]/\10/' } @@ -59,6 +57,10 @@ create_container_eth1_dhcp () { docker exec $cname dhclient eth1 } +[ "$IFACE" = "undefined" ] && return + +echo "Creating nodes starting on vlan $START_VLAN to $END_VLAN on iface $IFACE" + for vlan in $(seq $START_VLAN $END_VLAN); do echo "Creating node on vlan $vlan" From e2170da33f8a415c8a30fa4b01ec949657062629 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 30 Mar 2018 09:07:26 +0000 Subject: [PATCH 188/947] devices: debian: fixes to use wan with single ip interface release and renew dhcp on same command so we dont lose our ssh connection and use eth1 for some misc gateway if we are using wan dhcp mode Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 4a8279d7..af4a58b3 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -428,9 +428,7 @@ def setup_as_wan_gateway(self): if self.wan_dhcp: self.sendline('/etc/init.d/isc-dhcp-server stop') self.expect(self.prompt) - self.sendline('dhclient -r eth1') - self.expect(self.prompt) - self.sendline('dhclient eth1') + self.sendline('dhclient -r eth1; dhclient eth1') self.expect(self.prompt) self.gw = self.get_interface_ipaddr("eth1") else: @@ -443,8 +441,13 @@ def setup_as_wan_gateway(self): # configure routing self.sendline('sysctl net.ipv4.ip_forward=1') self.expect(self.prompt) - wan_ip_uplink = self.get_interface_ipaddr("eth0") - self.sendline('iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source %s' % wan_ip_uplink) + if not self.wan_dhcp: + wan_uplink_iface = "eth0" + else: + wan_uplink_iface = "eth1" + + wan_ip_uplink = self.get_interface_ipaddr(wan_uplink_iface) + self.sendline('iptables -t nat -A POSTROUTING -o %s -j SNAT --to-source %s' % (wan_uplink_iface, wan_ip_uplink)) self.expect(self.prompt) self.sendline('echo 0 > /proc/sys/net/ipv4/tcp_timestamps') From c57337337b4c5d53f7dd99e20713012704640936 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 5 Apr 2018 07:17:49 -0700 Subject: [PATCH 189/947] devices: cougarpark: replace hard coded ESC key with name Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/cougarpark.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/devices/cougarpark.py b/devices/cougarpark.py index 704bf7fa..39dac4ce 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -12,6 +12,8 @@ import connection_decider import signal +KEY_ESCAPE = '\x1B' + class CougarPark(openwrt_router.OpenWrtRouter): ''' Intel Cougar Park board @@ -50,9 +52,9 @@ def wait_for_boot(self): ''' # Try to break into uboot self.expect('Remaining timeout:', timeout=30) - self.send('\x1B') + self.send(KEY_ESCAPE) self.expect('startup.nsh',timeout=30) - self.send('\x1B') + self.send(KEY_ESCAPE) self.expect_exact(self.uprompt, timeout=30) def setup_uboot_network(self, tftp_server): From dd455205e32497a48300f6e665715bee4849a845 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 5 Apr 2018 10:07:22 -0700 Subject: [PATCH 190/947] tests: rootfs_boot: set wan device to tftp_device if it's still not set tftp_device should always be set at this point, so we can always run this. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/rootfs_boot.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 928ba9f3..83c71444 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -20,8 +20,6 @@ def boot(self, reflash=True): # start all tftp servers for now for tftp_server in tftp_servers: tftp_device = getattr(self.config, tftp_server) - # TODO: this means wan.gw != tftp_server - tftp_device.start_tftp_server() # start dhcp servers for device in self.config.board['devices']: @@ -41,6 +39,10 @@ def boot(self, reflash=True): wan.configure(kind="wan_device") elif wan: wan.configure(kind="wan_device") + if tftp_device is None: + tftp_device = wan + + tftp_device.start_tftp_server() if lan: lan.configure(kind="lan_device") From c1fd14e3a6d7a0446aa6809573c5741fab2e91e2 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 5 Apr 2018 10:08:47 -0700 Subject: [PATCH 191/947] devices: cougarpark: show networking config and fail properly on ping We did not fail if ping failed due to the message printed by the BIOS which are very confusing. Also print our the networking config a few times for verbosity Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/cougarpark.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/devices/cougarpark.py b/devices/cougarpark.py index 39dac4ce..5fcf05b4 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -63,13 +63,18 @@ def setup_uboot_network(self, tftp_server): self.linesep = '\x0D' # required delay for networking to work... self.expect(pexpect.TIMEOUT, timeout=15) + self.sendline('ifconfig -l') + self.expect_exact(self.uprompt) self.sendline('ifconfig -c %s' % self.uboot_eth) self.expect_exact(self.uprompt, timeout=30) # this does tftp from a USB in the bios, so it's staticly configured self.sendline('ifconfig -s %s static %s 255.255.255.0 %s' % (self.uboot_eth, tftp_server+1, tftp_server)) self.expect_exact(self.uprompt, timeout=30) + self.sendline('ifconfig -l') + self.expect_exact(self.uprompt) self.sendline('ping %s' % tftp_server) - self.sendline('10 packets transmitted, 10 received, 0% packet loss, time 0ms') + if 0 == self.expect(['Echo request sequence 1 timeout', '10 packets transmitted, 10 received, 0% packet loss, time 0ms']): + raise Exception("Failing to ping tftp server, aborting") self.expect_exact(self.uprompt, timeout=30) def flash_linux(self, KERNEL): From 9f3d9a6b6dfb70163c89bce7f50c45b46e53b21a Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 5 Apr 2018 11:10:50 -0700 Subject: [PATCH 192/947] devices: cougarpark: remove flashing from extra usb device With this change, we can now flash from the BIOS without an addl cable to the box. This switches to mode from from the for the onboard ethernet to make it work Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/cougarpark.py | 46 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/devices/cougarpark.py b/devices/cougarpark.py index 5fcf05b4..927b3fa0 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -13,6 +13,13 @@ import signal KEY_ESCAPE = '\x1B' +KEY_UP = '\x1b[A' +KEY_DOWN = '\x1b[B' +KEY_F4 = '\x1b[OS' + +MODE_DISABLED = 0 +MODE_NSGMII1 = 2 +MODE_NSGMII2 = 3 class CougarPark(openwrt_router.OpenWrtRouter): ''' @@ -57,17 +64,49 @@ def wait_for_boot(self): self.send(KEY_ESCAPE) self.expect_exact(self.uprompt, timeout=30) + def switch_to_mode(self, index): + self.sendline('exit') + self.expect_exact('Device Manager') + self.send(KEY_DOWN) + self.send(KEY_DOWN) + self.sendline(KEY_DOWN) + self.expect_exact('System Setup') + self.sendline() + self.expect_exact('Puma7 Configuration') + self.sendline(KEY_DOWN) + self.expect_exact('BIOS Network Configuration') + self.send(KEY_DOWN) + self.send(KEY_DOWN) + self.sendline(KEY_DOWN) + self.expect_exact('Disabled') + self.send(KEY_UP) + self.send(KEY_UP) + self.send(KEY_UP) + self.send(KEY_UP) + for i in range(1,index): + self.send(KEY_DOWN) + self.sendline() + self.send(KEY_F4) + self.send(KEY_F4) + self.send('Y') + self.send(KEY_ESCAPE) + self.send(KEY_UP) + self.send(KEY_UP) + self.sendline(KEY_UP) + self.sendline() + self.wait_for_boot() + def setup_uboot_network(self, tftp_server): self.tftp_server_int = tftp_server # line sep for UEFI self.linesep = '\x0D' - # required delay for networking to work... - self.expect(pexpect.TIMEOUT, timeout=15) + + self.switch_to_mode(MODE_NSGMII2) + self.sendline('ifconfig -l') self.expect_exact(self.uprompt) self.sendline('ifconfig -c %s' % self.uboot_eth) self.expect_exact(self.uprompt, timeout=30) - # this does tftp from a USB in the bios, so it's staticly configured self.sendline('ifconfig -s %s static %s 255.255.255.0 %s' % (self.uboot_eth, tftp_server+1, tftp_server)) self.expect_exact(self.uprompt, timeout=30) self.sendline('ifconfig -l') @@ -93,6 +132,7 @@ def flash_linux(self, KERNEL): def boot_linux(self, rootfs=None, bootargs=None): common.print_bold("\n===== Booting linux for %s on %s =====" % (self.model, self.root_type)) + self.switch_to_mode(MODE_DISABLED) self.sendline('npcpu start') self.sendline('bootkernel -c %kernel_cmd_line%') self.delaybetweenchar = None From 62b19afd8317b2ecde77c38567dcfb807b5532df Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 5 Apr 2018 11:52:48 -0700 Subject: [PATCH 193/947] tests: rootfs_boot: don't depend on wan device If we run without a WAN device, this will fail so let's fix that Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/rootfs_boot.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 83c71444..d68f0ddf 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -156,7 +156,10 @@ def boot(self, reflash=True): self.logged['boot_time'] = end_seconds_up if board.routing and lan and self.config.setup_device_networking: - lan.start_lan_client(wan_gw=wan.gw) + if wan is not None: + lan.start_lan_client(wan_gw=wan.gw) + else: + lan.start_lan_client() reflash = False reboot = False From 0b0b3d2f3b3f5f55bc4e6444e2d8235af93b81be Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 9 Apr 2018 16:57:55 -0700 Subject: [PATCH 194/947] devices: power: add mechanism to run a command to power device on/off Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/power.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/devices/power.py b/devices/power.py index 4a92461d..ea450eee 100644 --- a/devices/power.py +++ b/devices/power.py @@ -38,6 +38,8 @@ def get_power_device(ip_address, username=None, password=None, outlet=None): return WemoPowerSwitch(outlet=outlet) if "serial://" in outlet: return SimpleSerialPower(outlet=outlet) + if "cmd://" in outlet: + return SimpleCommandPower(outlet=outlet) return HumanButtonPusher() @@ -198,6 +200,26 @@ def reset(self): time.sleep(5) self.switch.on() +class SimpleCommandPower(PowerDevice): + ''' + Runs a simple command to turn power on/off + ''' + + on_cmd = "true" + off_cmd = "false" + + def __init__(self, outlet): + parsed = outlet.replace("cmd://", '').split(';') + for param in parsed: + for attr in ['on_cmd', 'off_cmd']: + if attr + '=' in param: + setattr(self, attr, param.replace(attr + '=', '').encode()) + + def reset(self): + pexpect.spawn(self.off_cmd).expect(pexpect.EOF) + time.sleep(5) + pexpect.spawn(self.on_cmd).expect(pexpect.EOF) + class SimpleSerialPower(PowerDevice): ''' Simple serial based relay or power on off. Has an on and off string to send From e48ab4f26329a1b7f1b9ce7271b2f1841b317146 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 9 Apr 2018 17:11:48 -0700 Subject: [PATCH 195/947] devices: debian: add function to wrap sudo if we're not root Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index af4a58b3..79b669b5 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -162,6 +162,11 @@ def run_cleanup_cmd(self): cc.expect(pexpect.EOF, timeout=120) print("cleanup_cmd done.") + def sudo_sendline(self, s): + if self.username != "root": + s = "sudo " + s + return super(type(self), self).sendline(s) + def reset(self): self.sendline('reboot') self.expect(['going down','disconnected']) From 07614a5c68334193ec173c80fe3d0baa9bc246cf Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 12 Apr 2018 09:58:25 -0700 Subject: [PATCH 196/947] devices: debian: configure wan as cmts if configure option set Now we configure the WAN device to route traffic AND be a CMTS provisoning server if the right option is set A known working config looks like this: "options": "wan-static-ip:192.168.3.1, wan-static-route:192.168.201.0/24-192.168.3.222, wan-cmts-provisioner" And this assumes the CMTS has an ip address of 192.168.3.222 and that the CMTS is configured to allow 192.168.3.1 as a cable helper Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 79b669b5..d9df5fdb 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -26,6 +26,7 @@ class DebianBox(base.BaseDevice): prompt = ['root\\@.*:.*#', '/ # ', ".*:~ #" ] static_route = None wan_dhcp = False + wan_cmts_provisioner = False def __init__(self, name, @@ -101,6 +102,8 @@ def __init__(self, self.static_route = opt.replace('wan-static-route:', '').replace('-', ' via ') if opt.startswith('wan-dhcp-client'): self.wan_dhcp = True + if opt.startswith('wan-cmts-provisioner'): + self.wan_cmts_provisioner = True try: i = self.expect(["yes/no", "assword:", "Last login"] + self.prompt, timeout=30) @@ -311,10 +314,11 @@ def configure(self, kind): if kind == "wan_device": self.setup_as_wan_gateway() + if self.wan_cmts_provisioner: + self.setup_as_cmts_provisioner() elif kind == "lan_device": self.setup_as_lan_device() - elif kind == "cmts_provisioner": - self.setup_as_cmts_provisioner() + def setup_as_cmts_provisioner(self): self.sendline('apt-get -o DPkg::Options::="--force-confnew" -qy install isc-dhcp-server xinetd') @@ -323,23 +327,23 @@ def setup_as_cmts_provisioner(self): self.expect(self.prompt) self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') self.expect(self.prompt) - self.sendline('ifconfig eth1 192.168.100.2') - self.gw = "192.168.100.2" + self.sendline('ifconfig eth1 %s' % self.gw) self.expect(self.prompt) - self.sendline('ip route add 192.168.201.0/24 via 192.168.100.1') + # TODO: specify these via config + self.sendline('ip route add 192.168.201.0/24 via 192.168.3.222') self.expect(self.prompt) - self.sendline('ip route add 192.168.200.0/24 via 192.168.100.1') + self.sendline('ip route add 192.168.200.0/24 via 192.168.3.222') self.expect(self.prompt) self.sendline('''cat > /etc/dhcp/dhcpd.conf << EOF log-facility local7; -option log-servers 192.168.100.2; -option time-servers 192.168.100.2; -next-server 192.168.100.2; +option log-servers 192.168.3.1; +option time-servers 192.168.3.1; +next-server 192.168.3.1; default-lease-time 604800; max-lease-time 604800; allow leasequery; -option time-servers 192.168.100.1; -subnet 192.168.100.0 netmask 255.255.255.0 { +option time-servers 192.168.3.222; +subnet 192.168.3.0 netmask 255.255.255.0 { interface eth1; } subnet 192.168.200.0 netmask 255.255.255.0 @@ -351,7 +355,7 @@ def setup_as_cmts_provisioner(self): option dhcp-parameter-request-list 43; option domain-name "local"; option time-offset 1; - option tftp-server-name "192.168.100.2"; + option tftp-server-name "192.168.3.1"; filename "UNLIMITCASA.cfg"; allow unknown-clients; } @@ -371,6 +375,8 @@ def setup_as_cmts_provisioner(self): self.expect(['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*']) self.expect(self.prompt) + # this might be redundant, but since might not have a tftpd server running + # here we have to start one for the CM configs self.start_tftp_server() # Look in all overlays as well, and PATH as a workaround for standalone @@ -441,7 +447,8 @@ def setup_as_wan_gateway(self): self.expect(self.prompt) self.sendline('ifconfig eth1 up') self.expect(self.prompt) - self.setup_dhcp_server() + if not self.wan_cmts_provisioner: + self.setup_dhcp_server() # configure routing self.sendline('sysctl net.ipv4.ip_forward=1') From 3302a0173bae1b1de73b6561291eae8e768f2d0a Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 12 Apr 2018 10:20:27 -0700 Subject: [PATCH 197/947] devices: debian: fix issue copying files to tftp server Creating the path was wrong, and we were not looking in BFT_OVERLAY so just fix the issues Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index d9df5fdb..c7d684f8 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -380,9 +380,11 @@ def setup_as_cmts_provisioner(self): self.start_tftp_server() # Look in all overlays as well, and PATH as a workaround for standalone + paths = os.environ['PATH'].split(os.pathsep) + paths += os.environ['BFT_OVERLAY'].split(' ') cfg_list = [] - for path in os.environ['PATH'].split(os.pathsep): - for cfg in glob.glob(path + 'devices/cm-cfg/*.cfg'): + for path in paths: + for cfg in glob.glob(path + '/devices/cm-cfg/*.cfg'): cfg_list.append(cfg) cfg_set = set(cfg_list) From 2c6d7e27610c24f0ac6d8e93ee240fa7dac7a2c5 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 12 Apr 2018 10:33:21 -0700 Subject: [PATCH 198/947] devices: debian: install deps for xxd This is heavy handed but this is what provides xxd, should probably move to base64 or something else at some point Also, add some better error checking... should go even farther as well by checking md5um etc Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index c7d684f8..57cd24fa 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -292,6 +292,8 @@ def start_sshd_server(self): self.expect(self.prompt) def copy_file_to_server(self, src, dst=None): + self.sendline('apt-get -o DPkg::Options::="--force-confnew" -qy install vim-common') + self.expect(self.prompt) with open(src, mode='rb') as file: bin_file = binascii.hexlify(file.read()) if dst is None: @@ -305,7 +307,9 @@ def copy_file_to_server(self, src, dst=None): self.expect(self.prompt) self.sendline('ls %s' % dst) self.expect_exact('ls %s' % dst) - self.expect('%s' % dst) + i = self.expect(['ls: cannot access %s: No such file or directory' % dst] + self.prompt) + if i == 0: + raise Exception("Failed to copy file") self.logfile_read = saved_logfile_read def configure(self, kind): From b40c348f87c96eb21df7234e19a6228754974622 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 18 Apr 2018 19:11:21 -0700 Subject: [PATCH 199/947] devices: debian: compress file sent over console These are getting slow so let's just throw in some compression as well Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 57cd24fa..28756ef0 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -294,14 +294,23 @@ def start_sshd_server(self): def copy_file_to_server(self, src, dst=None): self.sendline('apt-get -o DPkg::Options::="--force-confnew" -qy install vim-common') self.expect(self.prompt) + + def gzip_str(string_): + import gzip + import io + out = io.BytesIO() + with gzip.GzipFile(fileobj=out, mode='w') as fo: + fo.write(string_) + return out.getvalue() + with open(src, mode='rb') as file: - bin_file = binascii.hexlify(file.read()) + bin_file = binascii.hexlify(gzip_str(file.read())) if dst is None: dst = '/tftpboot/' + os.path.basename(src) print ("Copying %s to %s" % (src, dst)) saved_logfile_read = self.logfile_read self.logfile_read = None - self.sendline('''cat << EOFEOFEOFEOF | xxd -r -p > %s + self.sendline('''cat << EOFEOFEOFEOF | xxd -r -p | gunzip > %s %s EOFEOFEOFEOF''' % (dst, bin_file)) self.expect(self.prompt) From efb8d197379dabaa1cdf6f027325ec716a631082 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 18 Apr 2018 19:13:19 -0700 Subject: [PATCH 200/947] devices: debian: pass board config to debian configure The configure steps might need to know about the board so let's pass the entire configure section. This will be used for board mac addresses needed early before the board is booted and we can dynamically query them Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 6 +++--- tests/rootfs_boot.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 28756ef0..c6b56afc 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -321,19 +321,19 @@ def gzip_str(string_): raise Exception("Failed to copy file") self.logfile_read = saved_logfile_read - def configure(self, kind): + def configure(self, kind, config=[]): # start openssh server if not running: self.start_sshd_server() if kind == "wan_device": self.setup_as_wan_gateway() if self.wan_cmts_provisioner: - self.setup_as_cmts_provisioner() + self.setup_as_cmts_provisioner(config) elif kind == "lan_device": self.setup_as_lan_device() - def setup_as_cmts_provisioner(self): + def setup_as_cmts_provisioner(self, board_config): self.sendline('apt-get -o DPkg::Options::="--force-confnew" -qy install isc-dhcp-server xinetd') self.expect(self.prompt) self.sendline('/etc/init.d/isc-dhcp-server stop') diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index d68f0ddf..400676df 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -36,9 +36,9 @@ def boot(self, reflash=True): if self.config.board.get('wan_device', None) is not None: wan.start_tftp_server() tftp_device = wan - wan.configure(kind="wan_device") + wan.configure(kind="wan_device", config=self.config.board) elif wan: - wan.configure(kind="wan_device") + wan.configure(kind="wan_device", config=self.config.board) if tftp_device is None: tftp_device = wan From 922eb437a3fe5fe8b4beb9b41ba4eab898baa9bb Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 18 Apr 2018 15:29:31 -0700 Subject: [PATCH 201/947] devices: dell_switch: add some crude support for automating a dell switch You can load a basic example config like this: python ./devices/dell_switch.py 'telnet 172.19.17.180 6048' It will make private ports (via VLANs on 1-42 ) and trunk ports to those VLAN ports on 43-48 Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/dell_switch.py | 108 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 devices/dell_switch.py diff --git a/devices/dell_switch.py b/devices/dell_switch.py new file mode 100644 index 00000000..45cbf8dc --- /dev/null +++ b/devices/dell_switch.py @@ -0,0 +1,108 @@ +# Copyright (c) 2018 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. +#!/usr/bin/env python + +import pexpect +import sys +import base + + +class DellSwitch(base.BaseDevice): + ''' + Connects to and configures a Dell Switch + ''' + + prompt = ['console>', 'console#', 'console\(config.*\)#'] + + def __init__(self, + conn_cmd, + password=''): + pexpect.spawn.__init__(self, '/bin/bash', args=['-c', conn_cmd]) + self.logfile_read = sys.stdout + self.password = password + + def connect(self): + for i in range(10): + self.sendline('exit') + if 0 == self.expect([pexpect.TIMEOUT] + self.prompt, timeout=5): + self.sendline('enable') + if 0 == self.expect(['Password:'] + self.prompt): + self.sendline(self.password) + self.expect(self.prompt) + self.sendline('config') + self.expect(self.prompt) + return + + raise Exception("Unable to get prompt on Dell switch") + + def configure_basic_settings(self): + self.sendline('ip address dhcp') + self.expect(self.prompt) + self.sendline('ip address vlan 4093') + self.expect(self.prompt) + self.sendline('vlan database') + self.expect(self.prompt) + self.sendline('vlan 101-148,4093') + self.expect(self.prompt) + self.sendline('exit') + self.expect(self.prompt) + + def configure_eth_private_port(self, port): + self.sendline('interface ethernet 1/g%s' % port) + self.expect(self.prompt) + self.sendline('spanning-tree disable') + self.expect(self.prompt) + self.sendline('switchport mode general') + self.expect(self.prompt) + self.sendline('switchport general pvid %s' % (100 + port)) + self.expect(self.prompt) + self.sendline('switchport general ingress-filtering disable') + self.expect(self.prompt) + self.sendline('switchport forbidden vlan add 1,4093') + self.expect(self.prompt) + self.sendline('switchport general allowed vlan add %s' % (100 + port)) + self.expect(self.prompt) + self.sendline('exit') + self.expect(self.prompt) + + def configure_eth_trunk_port(self, port): + self.sendline('interface ethernet 1/g%s' % port) + self.expect(self.prompt) + self.sendline('switchport mode trunk') + self.expect(self.prompt) + self.sendline('switchport forbidden vlan add 1') + self.expect(self.prompt) + self.sendline('switchport trunk allowed vlan add 101-148,4093') + self.expect(self.prompt) + self.sendline('exit') + self.expect(self.prompt) + + def save_running_to_startup_config(self): + self.sendline('exit') + self.expect(self.prompt) + self.sendline('copy running-config startup-config') + self.expect(self.prompt) + self.sendline('config') + self.expect(self.prompt) + +if __name__ == '__main__': + import time + + dell_switch = DellSwitch(sys.argv[1]) + dell_switch.connect() + + dell_switch.configure_basic_settings() + for i in range(1, 42+1): + dell_switch.configure_eth_private_port(i) + for i in range(43, 48+1): + dell_switch.configure_eth_trunk_port(i) + + print + print("Press Control-] to exit interact mode") + print("=====================================") + dell_switch.interact() + print From f49a45082329cbd0ea82fd2abbf43bfcc9bbde3f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 19 Apr 2018 16:43:18 -0700 Subject: [PATCH 202/947] devices: casa_cmts: add support for configuring a casa cmts Super basic config, you can test by running: python ./devices/casa_cmts.py 'telnet 172.19.17.180 6047' Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/casa_cmts.py | 273 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 devices/casa_cmts.py diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py new file mode 100644 index 00000000..effd67fd --- /dev/null +++ b/devices/casa_cmts.py @@ -0,0 +1,273 @@ +# Copyright (c) 2018 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. +#!/usr/bin/env python + +import pexpect +import sys +import base +import re + +class CasaCMTS(base.BaseDevice): + ''' + Connects to and configures a CASA CMTS + ''' + + prompt = ['CASA-C3200>', 'CASA-C3200#', 'CASA-C3200\(.*\)#'] + + def __init__(self, + conn_cmd, + password='casa'): + pexpect.spawn.__init__(self, '/bin/bash', args=['-c', conn_cmd]) + self.logfile_read = sys.stdout + self.password = password + + def connect(self): + for i in range(10): + self.sendline('exit') + if 0 == self.expect([pexpect.TIMEOUT] + self.prompt, timeout=5): + self.sendline('enable') + if 0 == self.expect(['Password:'] + self.prompt): + self.sendline(self.password) + self.expect(self.prompt) + self.sendline('config') + self.expect(self.prompt) + self.sendline('page-off') + self.expect(self.prompt) + return + + raise Exception("Unable to get prompt on CASA device") + + def reset(self): + self.sendline('exit') + self.expect(self.prompt) + self.sendline('del startup-config') + self.expect('Please type YES to confirm deleting startup-config:') + self.sendline('YES') + self.expect(self.prompt) + self.sendline('system reboot') + if 0 == self.expect(['Proceed with reload\? please type YES to confirm :', 'starting up console shell ...'], timeout=150): + self.sendline('YES') + self.expect('starting up console shell ...', timeout=150) + self.sendline() + self.expect(self.prompt) + self.sendline('page-off') + self.expect(self.prompt) + self.sendline('enable') + self.expect('Password:') + self.sendline(self.password) + self.expect(self.prompt) + self.sendline('config') + self.expect(self.prompt) + + def wait_for_ready(self): + self.sendline('show system') + while 0 == self.expect(['NotReady'] + self.prompt): + self.expect(self.prompt) + self.expect(pexpect.TIMEOUT, timeout=5) + self.sendline('show system') + + def save_running_to_startup_config(self): + self.sendline('exit') + self.expect(self.prompt) + self.sendline('copy running-config startup-config') + self.expect(self.prompt) + self.sendline('config') + self.expect(self.prompt) + + def save_running_config_to_local(self, filename): + self.sendline('show running-config') + self.expect('show running-config') + self.expect(self.prompt) + + f = open(filename, "w") + f.write(self.before) + f.close() + + def set_iface_ipaddr(self, iface, ipaddr): + self.sendline('interface %s' % iface) + self.expect(self.prompt) + self.sendline('ip address %s' % ipaddr) + self.expect(self.prompt) + self.sendline('no shutdown') + self.expect(self.prompt) + self.sendline('exit') + self.expect(self.prompt) + + def add_ip_bundle(self, index, ip1, ip2, helper_ip): + self.sendline('interface ip-bundle %s' % index) + self.expect(self.prompt) + self.sendline('ip address %s 255.255.255.0' % ip1) + self.expect(self.prompt) + self.sendline('ip address %s 255.255.255.0 secondary' % ip2) + self.expect(self.prompt) + self.sendline('cable helper-address %s cable-modem' % helper_ip) + self.expect(self.prompt) + self.sendline('cable helper-address %s mta' % helper_ip) + self.expect(self.prompt) + self.sendline('cable helper-address %s host' % helper_ip) + self.expect(self.prompt) + self.sendline('exit') + self.expect(self.prompt) + + def add_route(self, net, mask, gw): + self.sendline('route net %s %s gw %s' % (net, mask, gw)) + self.expect(self.prompt) + + def get_qam_module(self): + self.sendline('show system') + self.expect(self.prompt) + return re.findall('Module (\d+) QAM', self.before)[0] + + def get_ups_module(self): + self.sendline('show system') + self.expect(self.prompt) + return re.findall('Module (\d+) UPS', self.before)[0] + + def set_iface_qam(self, index, sub, annex, interleave, power): + self.sendline('interface qam %s/%s' % (index, sub)) + self.expect(self.prompt) + self.sendline('annex %s' % annex) + self.expect(self.prompt) + self.sendline('interleave %s' % interleave) + self.expect(self.prompt) + self.sendline('power %s' % power) + self.expect(self.prompt) + self.sendline('no shutdown') + self.expect(self.prompt) + self.sendline('exit') + self.expect(self.prompt) + + def set_iface_qam_freq(self, index, sub, channel, freq): + self.sendline('interface qam %s/%s' % (index, sub)) + self.expect(self.prompt) + self.sendline('channel %s freq %s' % (channel, freq)) + self.expect(self.prompt) + self.sendline('no channel %s shutdown' % channel) + self.expect(self.prompt) + self.sendline('exit') + self.expect(self.prompt) + + def set_iface_upstream(self, ups_idx, ups_ch, freq, width, power): + self.sendline('interface upstream %s/%s' % (ups_idx, ups_ch)) + self.expect(self.prompt) + self.sendline('frequency %s' % freq) + self.expect(self.prompt) + self.sendline('channel-width %s' % width) + self.expect(self.prompt) + self.sendline('power-level %s' % power) + self.expect(self.prompt) + self.sendline('ingress-cancellation') + self.expect(self.prompt) + self.sendline('logical-channel 0 profile 3') + self.expect(self.prompt) + self.sendline('logical-channel 0 minislot 1') + self.expect(self.prompt) + self.sendline('no logical-channel 0 shutdown') + self.expect(self.prompt) + self.sendline('logical-channel 1 shutdown') + self.expect(self.prompt) + self.sendline('no shutdown') + self.expect(self.prompt) + self.sendline('exit') + self.expect(self.prompt) + + def add_iface_docsis_mac(self, index, ip_bundle, qam_idx, qam_sub, qam_ch, ups_idx, ups_ch): + self.sendline('interface docsis-mac %s' % index) + self.expect(self.prompt) + self.sendline('no shutdown') + self.expect(self.prompt) + self.sendline('no dhcp-authorization') + self.expect(self.prompt) + self.sendline('no multicast-dsid-forward') + self.expect(self.prompt) + self.sendline('no tftp-enforce') + self.expect(self.prompt) + self.sendline('tftp-proxy') + self.expect(self.prompt) + self.sendline('ip bundle %s' % ip_bundle) + self.expect(self.prompt) + count = 1; + for ch in qam_ch: + self.sendline('downstream %s interface qam %s/%s/%s' % (count, qam_idx, qam_sub, ch)) + self.expect(self.prompt) + count += 1 + count = 1; + for ch in ups_ch: + self.sendline('upstream %s interface upstream %s/%s/0' % (count, ups_idx, ch)) + self.expect(self.prompt) + count += 1 + self.sendline('exit') + self.expect(self.prompt) + + def add_service_class(self, index, name, max_rate, max_burst, downstream=False): + self.sendline('cable service-class %s' % index) + self.expect(self.prompt) + self.sendline('name %s' % name) + self.expect(self.prompt) + self.sendline('max-traffic-rate %s' % max_rate) + self.expect(self.prompt) + self.sendline('max-traffic-burst %s' % max_burst) + self.expect(self.prompt) + self.sendline('max-concat-burst 0') + self.expect(self.prompt) + if downstream: + self.sendline('downstream') + self.expect(self.prompt) + self.sendline('exit') + self.expect(self.prompt) + + def add_service_group(self, index, qam_idx, qam_sub, qam_channels, ups_idx, ups_channels): + self.sendline('service group %s' % index) + self.expect(self.prompt) + for ch in qam_channels: + self.sendline('qam %s/%s/%s' % (qam_idx, qam_sub, ch)) + self.expect(self.prompt) + for ch in ups_channels: + self.sendline('upstream %s/%s' % (ups_idx, ch)) + self.expect(self.prompt) + self.sendline('exit') + self.expect(self.prompt) + +if __name__ == '__main__': + import time + + cmts = CasaCMTS(sys.argv[1]) + cmts.connect() + cmts.save_running_to_startup_config() + cmts.save_running_config_to_local("saved-casa-config-" + time.strftime("%Y%m%d-%H%M%S") + ".cfg") + cmts.reset() + cmts.wait_for_ready() + + cmts.set_iface_ipaddr('eth 0', 'dhcp') + cmts.set_iface_ipaddr('gige 0', '192.168.3.222 255.255.255.0') + cmts.add_ip_bundle(1, "192.168.200.1", "192.168.201.1", "192.168.3.1") + + cmts.add_route("0.0.0.0", "0", "192.168.3.1") + + qam_idx = cmts.get_qam_module() + ups_idx = cmts.get_ups_module() + + cmts.set_iface_qam(qam_idx, 0, 'A', 12, 550) + cmts.set_iface_qam_freq(qam_idx, 0, 0, 235000000) + cmts.set_iface_qam_freq(qam_idx, 0, 1, 243000000) + cmts.set_iface_qam_freq(qam_idx, 0, 2, 251000000) + cmts.set_iface_qam_freq(qam_idx, 0, 3, 259000000) + + cmts.add_service_class(1, 'UNLIMITED_down', 100000, 10000, downstream=True) + cmts.add_service_class(2, 'UNLIMITED_up', 100000, 16320) + + cmts.add_service_group(1, qam_idx, 0, range(4), ups_idx, [0.0, 1.0]) + + cmts.add_iface_docsis_mac(1, 1, qam_idx, 0, range(4), ups_idx, [0.0, 1.0]) + + cmts.set_iface_upstream(ups_idx, 0.0, 47000000, 6400000, 6) + + print + print("Press Control-] to exit interact mode") + print("=====================================") + cmts.interact() + print From 162545bbcc4225d2c0e3ad24be3e4dcdf8533c82 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 19 Apr 2018 18:14:52 -0700 Subject: [PATCH 203/947] bft: run update config if it exists This is to let the board update the station config, this is useful for settings such as files that are needed by other devices types Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bft b/bft index ad1989ad..f4a25f16 100755 --- a/bft +++ b/bft @@ -223,6 +223,11 @@ def main(): # Write board info to json file and stdout config.board['station'] = name + + # Update config from board info + if hasattr(config.console, "update_config"): + config.console.update_config(config.board) + print_bold('\n==========') library.print_board_info(config.board) From 492b538b93a64c0ee7dc8be25f0f98063a148d8c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 19 Apr 2018 19:59:42 -0700 Subject: [PATCH 204/947] devices: debian: add support for board specific isc dhcp config Also, a few other cleanups such as copying on the required config files and adding some entries for isc dhcp config values. And letting the board specify the list of config files it needs Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index c6b56afc..d936ea45 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -356,6 +356,14 @@ def setup_as_cmts_provisioner(self, board_config): max-lease-time 604800; allow leasequery; option time-servers 192.168.3.222; + +option space docsis-mta; +option docsis-mta.dhcp-server-1 code 1 = ip-address; +option docsis-mta.dhcp-server-2 code 2 = ip-address; +option docsis-mta.provision-server code 3 = { integer 8, string }; +option docsis-mta-encap code 122 = encapsulate docsis-mta; +option docsis-mta.kerberos-realm code 6 = string; + subnet 192.168.3.0 netmask 255.255.255.0 { interface eth1; } @@ -384,6 +392,14 @@ def setup_as_cmts_provisioner(self, board_config): } EOF''') self.expect(self.prompt) + + if 'extra_isc_dhcp_config' in board_config: + self.sendline('''cat > /etc/dhcp/dhcpd.conf.''' + board_config['station'] + ''' << EOF +''' + board_config['extra_isc_dhcp_config'] + ''' +EOF''') + self.expect(self.prompt) + self.sendline("cat /etc/dhcp/dhcpd.conf.* >> /etc/dhcp/dhcpd.conf") + self.expect(self.prompt) self.sendline('/etc/init.d/isc-dhcp-server start') self.expect(['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*']) self.expect(self.prompt) @@ -396,9 +412,14 @@ def setup_as_cmts_provisioner(self, board_config): paths = os.environ['PATH'].split(os.pathsep) paths += os.environ['BFT_OVERLAY'].split(' ') cfg_list = [] - for path in paths: - for cfg in glob.glob(path + '/devices/cm-cfg/*.cfg'): - cfg_list.append(cfg) + + if 'tftp_cfg_files' in board_config: + for path in paths: + for cfg in board_config['tftp_cfg_files']: + cfg_list += glob.glob(path + '/devices/cm-cfg/%s' % cfg) + else: + for path in paths: + cfg_list += glob.glob(path + '/devices/cm-cfg/UNLIMITCASA.cfg') cfg_set = set(cfg_list) # Copy binary files to tftp server From f2b927277c4aba102a3ba9b09ce428a3ab3a57dd Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Sun, 22 Apr 2018 20:30:34 -0700 Subject: [PATCH 205/947] devices: base: add func to get ipv6 addr Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/base.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/devices/base.py b/devices/base.py index 78f069f6..130bcbe0 100644 --- a/devices/base.py +++ b/devices/base.py @@ -29,6 +29,13 @@ def get_interface_ipaddr(self, interface): self.expect(self.prompt) return ipaddr + def get_interface_ip6addr(self, interface): + self.sendline("\nifconfig %s" % interface) + self.expect('inet6 addr: (200(.+)) Scope:Global', timeout=5) + ipaddr = self.match.group(1) + self.expect(self.prompt) + return ipaddr + def get_logfile_read(self): if hasattr(self, "_logfile_read"): return self._logfile_read From 7f8cef85233e37c8e84d8878f9f5162fc649c7e7 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 23 Apr 2018 16:17:03 -0700 Subject: [PATCH 206/947] devices: debian: add default values for MTA provisioning options These are required so we always offer option 122 to all the DHCP requests so provisioning for some devices will work Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index d936ea45..0cb8ace5 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -359,10 +359,14 @@ def setup_as_cmts_provisioner(self, board_config): option space docsis-mta; option docsis-mta.dhcp-server-1 code 1 = ip-address; +option docsis-mta.dhcp-server-1 192.168.3.1; option docsis-mta.dhcp-server-2 code 2 = ip-address; +option docsis-mta.dhcp-server-2 192.168.3.1; option docsis-mta.provision-server code 3 = { integer 8, string }; +option docsis-mta.provision-server 0 08:54:43:4F:4D:4C:41:42:53:03:43:4F:4D:00 ; option docsis-mta-encap code 122 = encapsulate docsis-mta; option docsis-mta.kerberos-realm code 6 = string; +option docsis-mta.kerberos-realm 05:42:41:53:49:43:01:31:00 ; subnet 192.168.3.0 netmask 255.255.255.0 { interface eth1; From cb241ff3443375ed8cc3f351c73bc46396e0a45c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 23 Apr 2018 16:17:55 -0700 Subject: [PATCH 207/947] devices: debian: remove old config before creating new one Sometimes we don't create a new one so we need to delete the old stale one so it's not used instead Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index 0cb8ace5..eee59dd0 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -397,6 +397,9 @@ def setup_as_cmts_provisioner(self, board_config): EOF''') self.expect(self.prompt) + self.sendline('rm /etc/dhcp/dhcpd.conf.''' + board_config['station']) + self.expect(self.prompt) + if 'extra_isc_dhcp_config' in board_config: self.sendline('''cat > /etc/dhcp/dhcpd.conf.''' + board_config['station'] + ''' << EOF ''' + board_config['extra_isc_dhcp_config'] + ''' From f96b836d84f5e05b14b110541ba74a64a8f77f68 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 23 Apr 2018 16:24:49 -0700 Subject: [PATCH 208/947] devices: dell_switch: add addl vlans to port This let's us add more VLANs to a specific port without effecting it's previous functionality of having a private container on the primary VLAN associated with the port Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/dell_switch.py | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/devices/dell_switch.py b/devices/dell_switch.py index 45cbf8dc..9a45a63a 100644 --- a/devices/dell_switch.py +++ b/devices/dell_switch.py @@ -39,32 +39,42 @@ def connect(self): raise Exception("Unable to get prompt on Dell switch") - def configure_basic_settings(self): - self.sendline('ip address dhcp') - self.expect(self.prompt) - self.sendline('ip address vlan 4093') - self.expect(self.prompt) + def create_vlan(self, vlan): self.sendline('vlan database') self.expect(self.prompt) - self.sendline('vlan 101-148,4093') + self.sendline('vlan %s' % vlan) self.expect(self.prompt) self.sendline('exit') self.expect(self.prompt) - def configure_eth_private_port(self, port): + def configure_basic_settings(self): + self.create_vlan(4093) + self.sendline('ip address dhcp') + self.expect(self.prompt) + self.sendline('ip address vlan 4093') + self.expect(self.prompt) + + def configure_eth_private_port(self, port, override_vlan=None): + if override_vlan is None: + vlan = 100 + port + else: + vlan = override_vlan + + self.create_vlan(vlan) self.sendline('interface ethernet 1/g%s' % port) self.expect(self.prompt) self.sendline('spanning-tree disable') self.expect(self.prompt) self.sendline('switchport mode general') self.expect(self.prompt) + # NOTE: we can't change the PVID otherwise it breaks other containers self.sendline('switchport general pvid %s' % (100 + port)) self.expect(self.prompt) self.sendline('switchport general ingress-filtering disable') self.expect(self.prompt) self.sendline('switchport forbidden vlan add 1,4093') self.expect(self.prompt) - self.sendline('switchport general allowed vlan add %s' % (100 + port)) + self.sendline('switchport general allowed vlan add %s' % vlan) self.expect(self.prompt) self.sendline('exit') self.expect(self.prompt) @@ -76,7 +86,9 @@ def configure_eth_trunk_port(self, port): self.expect(self.prompt) self.sendline('switchport forbidden vlan add 1') self.expect(self.prompt) - self.sendline('switchport trunk allowed vlan add 101-148,4093') + # TODO: this secondary range should be configurable + # maybe setting trunk ports on the device class first? + self.sendline('switchport trunk allowed vlan add 101-148,200-210,4093') self.expect(self.prompt) self.sendline('exit') self.expect(self.prompt) @@ -98,6 +110,8 @@ def save_running_to_startup_config(self): dell_switch.configure_basic_settings() for i in range(1, 42+1): dell_switch.configure_eth_private_port(i) + for i in range(200,210+1): + dell_switch.configure_eth_private_port(36, override_vlan=i) for i in range(43, 48+1): dell_switch.configure_eth_trunk_port(i) From b0dd55e4a6e885b96e629c05cb4ef71642dd66ee Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 23 Apr 2018 16:12:15 -0700 Subject: [PATCH 209/947] tests: snmp: add snmp test to get common sysDescr string This is a well defined SNMP lookup. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/snmp.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 tests/snmp.py diff --git a/tests/snmp.py b/tests/snmp.py new file mode 100644 index 00000000..f792ebed --- /dev/null +++ b/tests/snmp.py @@ -0,0 +1,24 @@ +# Copyright (c) 2015 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. + +import rootfs_boot +from devices import board, wan, lan, wlan, prompt + +class SNMPSysDescrWAN(rootfs_boot.RootFSBootTest): + '''Runs SNMP sysDescr on WAN iface''' + + def runTest(self): + wan.sendline('apt-get -o DPkg::Options::="--force-confnew" -y --force-yes install snmp') + wan.expect(prompt) + + wan_ip = board.get_interface_ipaddr(board.wan_iface) + + wan.sendline('snmpget -v2c -c public %s 1.3.6.1.2.1.1.1.0' % wan_ip) + wan.expect('iso.3.6.1.2.1.1.1.0 = STRING: ') + wan.expect(prompt) + + self.result_message = wan.before From 1993e094d3ba6ca12c3981ed213f398f7c20a5ed Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 23 Apr 2018 16:13:11 -0700 Subject: [PATCH 210/947] tests: tcpdump: example test to capture tcpdump on wan and lan for 15 seconds This will save tcpdump to a temp file for later extraction (can be automated in the future as well) Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/tcpdump.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 tests/tcpdump.py diff --git a/tests/tcpdump.py b/tests/tcpdump.py new file mode 100644 index 00000000..60a733ca --- /dev/null +++ b/tests/tcpdump.py @@ -0,0 +1,29 @@ +# Copyright (c) 2018 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. + +import pexpect +import rootfs_boot +from devices import board, wan, lan, wlan, prompt + +class TCPDumpWANandLAN(rootfs_boot.RootFSBootTest): + '''Captures traces for WAN and LAN devices''' + + opts = "" + + def runTest(self): + for d in [wan, lan]: + d.sendline('tcpdump -i eth1 -w /tmp/tcpdump.pcap %s' % self.opts) + + board.expect(pexpect.TIMEOUT, timeout=15) + + for d in [wan, lan]: + d.sendcontrol('c') + + # TODO: copy dumps to results/ dir for logging + +class TCPDumpWANandLANfilterICMP(TCPDumpWANandLAN): + opts = "icmp" From 225b7633b63c23a22d0435118026a71928d06cbd Mon Sep 17 00:00:00 2001 From: sy_huang <sy_huang@compalbn.com> Date: Thu, 26 Apr 2018 06:42:39 +0800 Subject: [PATCH 211/947] Update Cyber Power switch class Use telnet secction to control cyber power switch Cyber power switch support telnet and SNMP protocol Signed-off-by: sy_huang <sy_huang@compalbn.com> --- devices/power.py | 88 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/devices/power.py b/devices/power.py index ea450eee..44399d91 100644 --- a/devices/power.py +++ b/devices/power.py @@ -299,6 +299,94 @@ def reset(self): time.sleep(5) self.on() +class CyberPowerPdu(PowerDevice): + def __init__(self, + ip_address, + outlet, + username='cyber', + password='cyber'): + PowerDevice.__init__(self, ip_address, username, password) + self.outlet = outlet + + def on(self): + pcon = pexpect.spawn('telnet %s' % self.ip_address) + pcon.expect("Login Name:") + + pcon.send(self.username + "\r\n") + pcon.expect("Login_Pass:") + + pcon.send(self.password + "\r\n") + pcon.expect("> ") + pcon.send("1" + "\r\n") + pcon.expect(">") + + pcon.send("2" + "\r\n") + pcon.expect(">") + + pcon.send("1" + "\r\n") + pcon.expect(">") + + pcon.send('%s\r\n' % self.outlet) + pcon.expect(">") + + # ON + pcon.send("1" + "\r\n") + pcon.expect(">") + + pcon.send('yes' + "\r\n") + pcon.expect(">") + + pcon.send(b'\x1b') + pcon.expect(">") + + pcon.send(b'\x1b') + pcon.expect(">") + + pcon.send('4' + "\r\n") + pcon.expect("Goodbye") + + def off(self): + pcon = pexpect.spawn('telnet %s' % self.ip_address) + pcon.expect("Login Name:") + + pcon.send(self.username + "\r\n") + pcon.expect("Login_Pass:") + + pcon.send(self.password + "\r\n") + pcon.expect("> ") + pcon.send("1" + "\r\n") + pcon.expect(">") + + pcon.send("2" + "\r\n") + pcon.expect(">") + + pcon.send("1" + "\r\n") + pcon.expect(">") + + pcon.send('%s\r\n' % self.outlet) + pcon.expect(">") + + # OFF + pcon.send("2" + "\r\n") + pcon.expect(">") + + pcon.send('yes' + "\r\n") + pcon.expect(">") + + pcon.send(b'\x1b') + pcon.expect(">") + + pcon.send(b'\x1b') + pcon.expect(">") + + pcon.send('4' + "\r\n") + pcon.expect("Goodbye") + + def reset(self): + self.off() + time.sleep(5) + self.on() + if __name__ == "__main__": print("Gathering info about power outlets...") From cc14b552ec1ca6e35aa1f0f9d4cc88afbff6340a Mon Sep 17 00:00:00 2001 From: sy_huang <sy_huang@compalbn.com> Date: Thu, 26 Apr 2018 06:21:35 +0800 Subject: [PATCH 212/947] Update Cyber Power Switch for 24 ports Add cyber power switch equipment on power.py Read http information to decide cyber power switch Signed-off-by: sy_huang <sy_huang@compalbn.com> --- devices/power.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/power.py b/devices/power.py index 44399d91..c4b98021 100644 --- a/devices/power.py +++ b/devices/power.py @@ -58,6 +58,8 @@ def get_power_device(ip_address, username=None, password=None, outlet=None): return APCPower(ip_address, outlet=outlet) if '<b>IP9258 Log In</b>' in data: return Ip9258(ip_address, outlet, username=username, password=password) + if 'Cyber Power Systems' in data: + return CyberPowerPdu(ip_address, outlet=outlet, username=username, password=password) else: raise Exception("No code written to handle power device found at %s" % ip_address) From 967c81676a196793d5b70aebd4eb49f0426fac29 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 25 Apr 2018 00:29:17 -0700 Subject: [PATCH 213/947] bft: pass tftp_dev to console device Let's pass the info and the device itself for now, not used yet but could be useful for certain devices Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bft b/bft index f4a25f16..eeef29da 100755 --- a/bft +++ b/bft @@ -182,6 +182,7 @@ def main(): config.console.tftp_username = "root" config.console.tftp_password = "bigfoot1" config.console.tftp_port = "22" + config.console.tftp_dev = dev config.console.logfile_read = saved # check devices after they start for tftpd-server option if @@ -197,6 +198,9 @@ def main(): for x in config.board['devices']: if tftp_server == x.get('name', ""): get_tftp_config(getattr(config, tftp_server)) + # call for ip addr too since we want to fields populated + if tftp_server == x.get('ipaddr', ""): + config.console.tftp_dev = getattr(config, x.get('name')) # legacy wan device if tftp_server is None and getattr(config, 'wan') is not None: From a9c77f6418bc412bb17dec5932c9a9ee98c7908b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 25 Apr 2018 00:30:45 -0700 Subject: [PATCH 214/947] devices: flash_meta: pass in wan and lan devices to function So devices can only flash a meta or combined image from after the device is booted and it required running arbitrary commands on those devices as well to initiate an upgrade so let's just pass the raw devices through to this function Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 2 +- devices/qcom_arm_base.py | 2 +- tests/rootfs_boot.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 990e0119..3c9e5f8c 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -237,7 +237,7 @@ def flash_rootfs(self, ROOTFS): def flash_linux(self, KERNEL): raise Exception('Code not written for flash_linux for this board type, %s.' % self.model) - def flash_meta(self, META_BUILD): + def flash_meta(self, META_BUILD, wan, lan): raise Exception('Code not written for flash_meta for this board type, %s.' % self.model) def prepare_nfsroot(self, NFSROOT): diff --git a/devices/qcom_arm_base.py b/devices/qcom_arm_base.py index 3baab460..70bb20dd 100644 --- a/devices/qcom_arm_base.py +++ b/devices/qcom_arm_base.py @@ -47,7 +47,7 @@ def check_memory_addresses(self): self.sendline('setenv ethaddr %s' % self.randomMAC()) self.expect(self.uprompt) - def flash_meta(self, META_BUILD): + def flash_meta(self, META_BUILD, wan, lan): ''' A meta image contains several components wrapped up into one file. Here we flash a meta image onto the board. diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 400676df..a455891d 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -60,7 +60,7 @@ def boot(self, reflash=True): if self.config.META_BUILD: for attempt in range(3): try: - board.flash_meta(self.config.META_BUILD) + board.flash_meta(self.config.META_BUILD, wan, lan) break except Exception as e: print(e) From 6dcbe723691a101df3d88878f7095d01248f9cc2 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 25 Apr 2018 01:38:35 -0700 Subject: [PATCH 215/947] devices: owrt: allow overriding tftp server for file upload Useful if at runtime we need to start a tftp server somewhere else and copy a file to the server Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 3c9e5f8c..b9750cd4 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -195,13 +195,22 @@ def tftp_get_file_uboot(self, loadaddr, filename, timeout=60): self.expect(self.uprompt) raise Exception("TFTP failed, try rebooting the board.") - def prepare_file(self, fname): + def prepare_file(self, fname, tserver=None, tusername=None, tpassword=None, tport=None): '''Copy file to tftp server, so that it it available to tftp to the board itself.''' + if tserver is None: + tserver = self.tftp_server + if tusername is None: + tusername = self.tftp_username + if tpassword is None: + tpassword = self.tftp_password + if tport is None: + tport = self.tftp_port + if fname.startswith("http://") or fname.startswith("https://"): - return common.download_from_web(fname, self.tftp_server, self.tftp_username, self.tftp_password, self.tftp_port) + return common.download_from_web(fname, tserver, tusername, tpassword, tport) else: - return common.scp_to_tftp_server(os.path.abspath(fname), self.tftp_server, self.tftp_username, self.tftp_password, self.tftp_port) + return common.scp_to_tftp_server(os.path.abspath(fname), tserver, tusername, tpassword, tport) def install_package(self, fname): '''Install OpenWrt package (opkg).''' From f3932343a5ab0b5a9758739a46d87b38be0fcb09 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 26 Apr 2018 03:47:21 +0000 Subject: [PATCH 216/947] devices: power: if decode fails, try to use raw data It's possible the data we have might still work, so let's proceed without the decode Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/power.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/power.py b/devices/power.py index c4b98021..5d9612d6 100644 --- a/devices/power.py +++ b/devices/power.py @@ -45,6 +45,8 @@ def get_power_device(ip_address, username=None, password=None, outlet=None): try: data = urlopen("http://" + ip_address).read().decode() + except UnicodeDecodeError as e: + data = urlopen("http://" + ip_address).read() except HTTPError as e: data = e.read().decode() except Exception as e: From 5599596a99b116b611f0cd72d5df1fab596d486c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 30 Apr 2018 13:53:12 -0700 Subject: [PATCH 217/947] devices: power: fix indent Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/power.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/devices/power.py b/devices/power.py index 5d9612d6..2e8d15f7 100644 --- a/devices/power.py +++ b/devices/power.py @@ -87,10 +87,10 @@ class SentrySwitchedCDU(PowerDevice): Power Unit from Server Technology. ''' def __init__(self, - ip_address, - outlet, - username='admn', - password='admn'): + ip_address, + outlet, + username='admn', + password='admn'): PowerDevice.__init__(self, ip_address, username, password) self.outlet = outlet # Verify connection @@ -146,10 +146,10 @@ def reset(self): class APCPower(PowerDevice): '''Resets an APC style power control port''' def __init__(self, - ip_address, - outlet, - username='apc', - password='apc'): + ip_address, + outlet, + username='apc', + password='apc'): PowerDevice.__init__(self, ip_address, username, password) self.outlet = outlet def reset(self): @@ -177,10 +177,10 @@ def reset(self): class DLIPowerSwitch(PowerDevice): '''Resets a DLI based power switch''' def __init__(self, - ip_address, - outlet, - username, - password): + ip_address, + outlet, + username, + password): PowerDevice.__init__(self, ip_address, username, password) self.switch = dlipower.PowerSwitch(hostname=ip_address, userid=username, password=password) self.outlet = outlet @@ -299,9 +299,9 @@ def off(self): return urllib2.urlopen('http://' + self._ip_address + '/set.cmd?cmd=setpower+p6' + str(self.port) + '=0') def reset(self): - self.off() - time.sleep(5) - self.on() + self.off() + time.sleep(5) + self.on() class CyberPowerPdu(PowerDevice): def __init__(self, From 831525d1b4dddd668323493a03bdb9bb3bac9f08 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 30 Apr 2018 14:06:53 -0700 Subject: [PATCH 218/947] devices: power: use snmp for cyberpower reset The telnet interface is completly unreliable. To build easysnmp you likely need these installed: sudo apt-get install libsnmp-dev snmp-mibs-downloader Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- .travis.yml | 1 + devices/power.py | 81 ++++++------------------------------------------ requirements.txt | 1 + 3 files changed, 12 insertions(+), 71 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1b092a7a..a6362b3a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,6 +10,7 @@ before_install: - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" - sudo apt-get -qq update - sudo apt-get install -y qemu-system-x86 docker-ce + - sudo apt-get install -y libsnmp-dev snmp-mibs-downloader script: - ./bft -l - ./bft -i diff --git a/devices/power.py b/devices/power.py index 2e8d15f7..be6e371b 100644 --- a/devices/power.py +++ b/devices/power.py @@ -15,6 +15,8 @@ import dlipower import time +from easysnmp import Session + try: from ouimeaux.environment import Environment as WemoEnv from ouimeaux.device.switch import Switch as WemoSwitch @@ -310,81 +312,18 @@ def __init__(self, username='cyber', password='cyber'): PowerDevice.__init__(self, ip_address, username, password) - self.outlet = outlet + self.port = outlet + self.ip_address = ip_address + self.oid_Outlet = '1.3.6.1.4.1.3808.1.1.3.3.3.1.1.4' + self.session = Session(hostname=self.ip_address, community="private", version=2) def on(self): - pcon = pexpect.spawn('telnet %s' % self.ip_address) - pcon.expect("Login Name:") - - pcon.send(self.username + "\r\n") - pcon.expect("Login_Pass:") - - pcon.send(self.password + "\r\n") - pcon.expect("> ") - pcon.send("1" + "\r\n") - pcon.expect(">") - - pcon.send("2" + "\r\n") - pcon.expect(">") - - pcon.send("1" + "\r\n") - pcon.expect(">") - - pcon.send('%s\r\n' % self.outlet) - pcon.expect(">") - - # ON - pcon.send("1" + "\r\n") - pcon.expect(">") - - pcon.send('yes' + "\r\n") - pcon.expect(">") - - pcon.send(b'\x1b') - pcon.expect(">") - - pcon.send(b'\x1b') - pcon.expect(">") - - pcon.send('4' + "\r\n") - pcon.expect("Goodbye") + oid = self.oid_Outlet + '.' + str(self.port) + self.session.set(oid, 1, 'i') def off(self): - pcon = pexpect.spawn('telnet %s' % self.ip_address) - pcon.expect("Login Name:") - - pcon.send(self.username + "\r\n") - pcon.expect("Login_Pass:") - - pcon.send(self.password + "\r\n") - pcon.expect("> ") - pcon.send("1" + "\r\n") - pcon.expect(">") - - pcon.send("2" + "\r\n") - pcon.expect(">") - - pcon.send("1" + "\r\n") - pcon.expect(">") - - pcon.send('%s\r\n' % self.outlet) - pcon.expect(">") - - # OFF - pcon.send("2" + "\r\n") - pcon.expect(">") - - pcon.send('yes' + "\r\n") - pcon.expect(">") - - pcon.send(b'\x1b') - pcon.expect(">") - - pcon.send(b'\x1b') - pcon.expect(">") - - pcon.send('4' + "\r\n") - pcon.expect("Goodbye") + oid = self.oid_Outlet + '.' + str(self.port) + self.session.set(oid, 2, 'i') def reset(self): self.off() diff --git a/requirements.txt b/requirements.txt index 00a1371a..fd966ad4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,3 +10,4 @@ dlipower cdrouter pyserial ipaddress +easysnmp From 0d21dddbe1a3f8acf1605582e40a22483b65c79a Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 30 Apr 2018 17:26:50 -0700 Subject: [PATCH 219/947] devices: owrt: make regex less greedy for uptime Sometimes this regex will eat the next prompt and then the next expect prompt will fail, let's make sure that does not happen Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index b9750cd4..6da79345 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -126,8 +126,8 @@ def get_seconds_uptime(self): self.sendcontrol('c') self.expect(self.prompt) self.sendline('\ncat /proc/uptime') - self.expect('(\d+).(\d+).*\r\n') - seconds_up = int(self.match.group(1)) + self.expect('((\d+)\.(\d+)(\s)?)((\d+)\.(\d+))?((\d+)\.(\d+))?\r\n') + seconds_up = float(self.match.group(1)) self.expect(self.prompt) return seconds_up From 1fe44c2e928f59e646c60f5ed88ac15a50468052 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 8 May 2018 08:36:13 -0700 Subject: [PATCH 220/947] bft: track each individual test time Track the time each test takes and add to results html Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- html/template_results.html | 1 + html/template_results_basic.html | 1 + library.py | 8 +++++++- make_human_readable.py | 2 +- tests/cdrouter_bootstrap.py | 5 +++++ tests/linux_boot.py | 7 +++++++ 6 files changed, 22 insertions(+), 2 deletions(-) diff --git a/html/template_results.html b/html/template_results.html index c180ab15..50548976 100644 --- a/html/template_results.html +++ b/html/template_results.html @@ -56,6 +56,7 @@ <h2 style="margin: 0px;">${summary_title}</h2> <th>Result</th> <th>Name</th> <th>Description</th> + <th>Time</th> </tr> ${table_results} </table> diff --git a/html/template_results_basic.html b/html/template_results_basic.html index 46b0479f..89bde97e 100644 --- a/html/template_results_basic.html +++ b/html/template_results_basic.html @@ -49,6 +49,7 @@ <h2 style="margin: 0px;">${summary_title}</h2> <th>Result</th> <th>Name</th> <th>Description</th> + <th>Time</th> </tr> ${table_results} </table> diff --git a/library.py b/library.py index b23f842b..8894372c 100644 --- a/library.py +++ b/library.py @@ -29,6 +29,12 @@ def process_test_results(raw_test_results, golden={}): def parse_and_add_results(cls, prefix=""): name = prefix + getattr(cls, 'name', cls.__class__.__name__) grade = getattr(cls, 'result_grade', None) + if hasattr(cls, 'elapsed_time'): + elapsed_time = getattr(cls, 'elapsed_time') + else: + start_time = getattr(cls, 'start_time') + stop_time = getattr(cls, 'stop_time') + elapsed_time = stop_time - start_time unexpected = False if '_source' in golden: @@ -61,7 +67,7 @@ def parse_and_add_results(cls, prefix=""): long_message = getattr(cls, 'long_result_message', "") - full_results['test_results'].append({"name": name, "message": message, "long_message": long_message, "grade": grade}) + full_results['test_results'].append({"name": name, "message": message, "long_message": long_message, "grade": grade, "elapsed_time": elapsed_time}) try: parse_and_add_results(x) diff --git a/make_human_readable.py b/make_human_readable.py index ba320b35..0706f963 100644 --- a/make_human_readable.py +++ b/make_human_readable.py @@ -106,7 +106,7 @@ def xmlresults_to_html(test_results, grade_counter[t['grade']] += 1 if 'FAIL' == t['grade']: results_fail_table_lines.append('<tr class="%(row_style)s"><td>%(num)s</td><td class="%(style)s">%(grade)s</td><td>%(name)s</td></tr>' % t) - results_table_lines.append('<tr class="%(row_style)s"><td>%(num)s</td><td class="%(style)s">%(grade)s</td><td>%(name)s</td><td>%(message)s</td></tr>' % t) + results_table_lines.append('<tr class="%(row_style)s"><td>%(num)s</td><td class="%(style)s">%(grade)s</td><td>%(name)s</td><td>%(message)s</td><td>%(elapsed_time).2fs</td></tr>' % t) if t['long_message'] != "": results_table_lines.append('<tr class="%(row_style)s"><td colspan=4><pre align="left">' % t) results_table_lines.append("%(long_message)s" % t) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index f303c9a8..fa7a326b 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -200,6 +200,11 @@ def runTest(self): try: grade_map = {"pass": "OK", "fail": "FAIL", "skip": "SKIP"}[test.result] tr = TestResult(test.name, grade_map, test.description) + if test.started is not None: + tr.start_time = test.started + tr.stop_time = test.started + test.duration + else: + tr.elapsed_time = test.duration self.subtests.append(tr) except: continue diff --git a/tests/linux_boot.py b/tests/linux_boot.py index 3e49a68c..7f56b6f4 100644 --- a/tests/linux_boot.py +++ b/tests/linux_boot.py @@ -10,6 +10,7 @@ import lib import sys import traceback +import time from devices import board, wan, lan, wlan, prompt @@ -50,6 +51,8 @@ def wlan_cleanup(self): None def testWrapper(self): + self.start_time = time.time() + if not board.isalive(): self.result_grade = "SKIP" self.skipTest("Board is not alive") @@ -92,11 +95,15 @@ def testWrapper(self): self.result_grade = "Unexp OK" else: self.result_grade = "OK" + + self.stop_time = time.time() except unittest2.case.SkipTest: + self.stop_time = time.time() self.result_grade = "SKIP" print("\n\n=========== Test skipped! Moving on... =============") raise except Exception as e: + self.stop_time = time.time() if hasattr(self, 'expected_failure') and self.expected_failure: self.result_grade = "Exp FAIL" else: From 124c7546f33a506f50e780abfa631015a014cf80 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 9 May 2018 08:05:44 -0700 Subject: [PATCH 221/947] bft: if test fails, set time to zero Instead of generating an error Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- library.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/library.py b/library.py index 8894372c..f2f02ede 100644 --- a/library.py +++ b/library.py @@ -29,12 +29,15 @@ def process_test_results(raw_test_results, golden={}): def parse_and_add_results(cls, prefix=""): name = prefix + getattr(cls, 'name', cls.__class__.__name__) grade = getattr(cls, 'result_grade', None) - if hasattr(cls, 'elapsed_time'): - elapsed_time = getattr(cls, 'elapsed_time') - else: - start_time = getattr(cls, 'start_time') - stop_time = getattr(cls, 'stop_time') - elapsed_time = stop_time - start_time + try: + if hasattr(cls, 'elapsed_time'): + elapsed_time = getattr(cls, 'elapsed_time') + else: + start_time = getattr(cls, 'start_time') + stop_time = getattr(cls, 'stop_time') + elapsed_time = stop_time - start_time + except: + elapsed_time = 0 unexpected = False if '_source' in golden: From 4958ec9c507a207e68ca48b7bb0b418439276a74 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 8 May 2018 22:49:22 +0800 Subject: [PATCH 222/947] deploy-boardfarm-script: add option for static wan node You can create a static wan node via the following: $ . ./deploy-boardfarm-nodes.sh $ set -x; IFACE=eth1 create_container_eth1_static wan-shared 172.16.1.154/24 172.16.1.1; set +x $ ssh root@172.16.1.154 The static ip address and the default gateway are the 2nd and 3rd argument Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 5525685c..aad68fc2 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -57,6 +57,29 @@ create_container_eth1_dhcp () { docker exec $cname dhclient eth1 } +# eth1 is on main network and static +create_container_eth1_static () { + local name=$1 + local ip=$2 + local default_route=$3 + + cname=bft-node-$IFACE-$name + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -d --network=none bft:node /usr/sbin/sshd -D + + cspace=$(docker inspect --format {{.State.Pid}} $cname) + + # create lab network access port + sudo ip link add tempfoo link $IFACE type macvlan mode bridge + sudo ip link set dev tempfoo up + sudo ip link set netns $cspace dev tempfoo + docker exec $cname ip link set tempfoo name eth1 + docker exec $cname ip link set eth1 up + docker exec $cname ip addr add $ip dev eth1 + docker exec $cname ip route add default via $default_route dev eth1 +} + [ "$IFACE" = "undefined" ] && return echo "Creating nodes starting on vlan $START_VLAN to $END_VLAN on iface $IFACE" From f0a3267936197383320d1e9c2d4319b35b8b93fc Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 9 May 2018 09:24:58 -0700 Subject: [PATCH 223/947] devices: debian: add wan-no-eth0 option It's possible to have a container that has no eth0 and eth1 is the only connected interface to the board and outside. So let's add an option to skip using that interface Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index eee59dd0..e506d1ac 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -26,6 +26,7 @@ class DebianBox(base.BaseDevice): prompt = ['root\\@.*:.*#', '/ # ', ".*:~ #" ] static_route = None wan_dhcp = False + wan_no_eth0 = False wan_cmts_provisioner = False def __init__(self, @@ -104,6 +105,8 @@ def __init__(self, self.wan_dhcp = True if opt.startswith('wan-cmts-provisioner'): self.wan_cmts_provisioner = True + if opt.startswith('wan-no-eth0'): + self.wan_no_eth0 = True try: i = self.expect(["yes/no", "assword:", "Last login"] + self.prompt, timeout=30) @@ -496,10 +499,10 @@ def setup_as_wan_gateway(self): # configure routing self.sendline('sysctl net.ipv4.ip_forward=1') self.expect(self.prompt) - if not self.wan_dhcp: - wan_uplink_iface = "eth0" - else: + if self.wan_no_eth0 or self.wan_dhcp: wan_uplink_iface = "eth1" + else: + wan_uplink_iface = "eth0" wan_ip_uplink = self.get_interface_ipaddr(wan_uplink_iface) self.sendline('iptables -t nat -A POSTROUTING -o %s -j SNAT --to-source %s' % (wan_uplink_iface, wan_ip_uplink)) From 380d6d1966e78da8afe2c561fa7f522332b3301e Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 10 May 2018 00:29:55 +0800 Subject: [PATCH 224/947] deploy-boardfarm-script: add filter out non-link local ip addresses for containers There can be multiple routes and we filtered all but the first out with head -n1 but that does not work in all cases. So let's do this update, in the future we need a way to specify a site's local addresses Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index aad68fc2..7a4148e7 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -13,7 +13,7 @@ random_private_mac () { local_route () { # TODO: This is a problem if the router network matches the host network host_dev=$(ip route list | grep ^default | awk '{print $5}' ) - local_route=$(ip route | grep "dev $host_dev" | grep -v ^default | grep -v via | awk '{print $1}' | head -n1) + local_route=$(ip route | grep "dev $host_dev" | grep src | awk '{print $1}' | head -n1) docker exec $cname ip route add $local_route dev eth0 via 172.17.0.1 } From d081e7579b4d3f18fe13236c21ccffaf6f6e04d6 Mon Sep 17 00:00:00 2001 From: shakul hameed <shameed.contractor@libertyglobal.com> Date: Thu, 26 Apr 2018 11:27:54 +0200 Subject: [PATCH 225/947] bft: Adding initial changes for reporting test execution results to zephyr Need to add a configuration file, and test case mappings to your own layer. Signed-off-by: shakul hameed <shameed.contractor@libertyglobal.com> --- bft | 28 ++++++ requirements.txt | 2 + zephyr/README.md | 32 ++++++ zephyr/boardfarm_tc_meta_file.csv | 1 + zephyr/zapi.py | 146 +++++++++++++++++++++++++++ zephyr/zephyr_reporter.py | 157 ++++++++++++++++++++++++++++++ 6 files changed, 366 insertions(+) create mode 100644 zephyr/README.md create mode 100644 zephyr/boardfarm_tc_meta_file.csv create mode 100644 zephyr/zapi.py create mode 100644 zephyr/zephyr_reporter.py diff --git a/bft b/bft index eeef29da..d1df0a35 100755 --- a/bft +++ b/bft @@ -16,6 +16,13 @@ import unittest2 import json import hashlib import time +import json +import argparse +import re +import csv + +sys.path.insert(0, './zephyr/') +import zephyr_reporter # Put this directory into the python path, so # that devices may be imported. @@ -390,6 +397,27 @@ def main(): print("Unable to store results to elasticsearch_server specified in config. " "Results stored locally.") + #Update the results in Zephyr + print_bold('Starting Zephyr Execution....') + + result_data = json.load(open('./results/test_results.json')) + length = len(result_data["test_results"]) + test_cases_list = [] + test_cases_list.append([]) + test_cases_list.append([]) + + for tc in range(0, length): + test_case = result_data["test_results"][tc]["name"] + test_cases_list[tc].append(test_case) + test_result = result_data["test_results"][tc]["grade"] + test_cases_list[tc].append(test_result) + + try: + zephyr_reporter.update_zephyr(test_cases_list) + except Exception as e: + print(e) + print("Unable to Update results in Zephyr") + # Create Pretty HTML output import make_human_readable try: diff --git a/requirements.txt b/requirements.txt index fd966ad4..b4b55b33 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,3 +11,5 @@ cdrouter pyserial ipaddress easysnmp +jira +simplejson diff --git a/zephyr/README.md b/zephyr/README.md new file mode 100644 index 00000000..4e7e4c9e --- /dev/null +++ b/zephyr/README.md @@ -0,0 +1,32 @@ +Zephyr Integration with boardfarm: +=================================== +Zephyr is an add-on for Jira that allows us to integrate test management into the one system. + +Folder and file structure follows as below for the integration of Zephyr with boardfarm + +1. boardfarm_tc_meta_file.csv + Meta file which has the mapping between Boardfarm test cases with JIRA test cases + +2. zapi_configuration.json + Configuration file which has the basic configuration settings for Zephyr, main values as follows, + + 1. metafile : "zephyr/boardfarm_tc_meta_file.csv" + Meta file location which has the mapping between boardfarm test cases with JIRA cases + 2. project : "RDKB" + JIRA projet name in which JIRA tickets has been created + 3. release" : "7.6.1" + JIRA relase version + 4. cycle : "Demo-zephyr-cycle" + Zephyr cycle name for the test cases execution. Set of all testcase execution result will be updated in a single cycle in Zephyr + 5. build : "DemoBuild" + Specify the build name, boardfarm testcases are testing against. + 6. Jira_url : "JIRAURL" + 7. user : "JIRAuser" + 8. passwd : "JIRApasswd", + Username and password to access JIRA + +3. zapi.py + Rest Api for Zephyr Functionlities + +4. zephyr_reporter.py + Code to update the reault data from boardfarm execution to Zephyr diff --git a/zephyr/boardfarm_tc_meta_file.csv b/zephyr/boardfarm_tc_meta_file.csv new file mode 100644 index 00000000..df0bc6b9 --- /dev/null +++ b/zephyr/boardfarm_tc_meta_file.csv @@ -0,0 +1 @@ +Jira ID,TestScript Name,Jira_tittle diff --git a/zephyr/zapi.py b/zephyr/zapi.py new file mode 100644 index 00000000..20a56d1f --- /dev/null +++ b/zephyr/zapi.py @@ -0,0 +1,146 @@ +#!/usr/bin/python2 +""""Methods to interact with the Zephyr API on top of Jira""" +import re +from requests import get, put, post +from simplejson import loads + + +STATUS_CODE_DICT = {'SCHEDULED': -1, + 'PASS': 1, + 'FAIL': 2, + 'WORK IN PROGRESS': 3, + 'TEST SUSPENDED': 4, + 'ACCEPTED FAILED': 5, + 'NOT TESTED': 6, + 'BLOCKED': 7, + 'NA': 8, + 'DEPRECATED': 9, + 'PASSED WITH REMARKS': 10} + + +class Zapi(object): + """Zephyr API interface""" + def __init__(self, + project_id=None, + version_id=None, + environment="", + build=None, + usr=None, + pwd=None, + jira_url=None): + self._jira_url = jira_url + self._zapi_url = self._jira_url + 'rest/zapi/latest/' + self._zapi_hdr = {'Content-type': 'application/json'} + self._proj_id = project_id + self._vers_id = version_id + self._environment = environment + self._usr = usr + self._pwd = pwd + self._cycl_id = None + self._build = build + + def create_cycle(self, name): + """Creata a test cycle for the given projectid, versionid""" + data = {"name": name, + "projectId": self._proj_id, + "versionId": self._vers_id, + "environment": self._environment, + "build": self._build} + req_url = self._zapi_url + 'cycle' + response = post(req_url, + json=data, + headers=self._zapi_hdr, + auth=(self._usr, self._pwd)) + data = loads(response.text) + return data['id'] + + def get_cycle_id(self, cycle_name): + """Retrieve the cyccle id for a given Zephyr cycle name""" + req_url = "{}cycle?projectID={}&versionId={}".format( + self._zapi_url, self._proj_id, self._vers_id) + response = get(req_url, + headers=self._zapi_hdr, + auth=(self._usr, self._pwd)) + data = loads(response.text) + pattern = re.compile('-?\\d') + for k in dict(data).keys(): + match = pattern.match(k) + cycle_id = 0 + if match: + cycle_id = int(k) + if cycle_id > 0 and data[str(k)]['name'] == cycle_name: + return k + return '' + + def get_or_create_cycle(self, name): + """Return the cycleId for a given cycle name + If not found the cycle is created""" + cycle_id = self.get_cycle_id(name) + if not cycle_id: + cycle_id = self.create_cycle(name) + self._cycl_id = cycle_id + + def create_execution(self, test_id, assignee=None): + """Create a Zephyr execution of the given test in the given project and + release""" + payload = {'projectId': self._proj_id, + 'cycleId': self._cycl_id, + 'issueId': test_id, + 'versionId': self._vers_id, + 'assigneeType': 'assignee', + 'assignee': assignee or self._usr} + req_url = self._zapi_url + 'execution' + response = post(req_url, + json=payload, + headers=self._zapi_hdr, + auth=(self._usr, self._pwd)) + data = loads(response.text) + execution_id = dict(data).keys()[0] + #execution_id = "442290" + if response.status_code <> 200: + print ("WARNING: " + response.text) + print (req_url) + print (payload) + return execution_id + + def get_executions(self, test_id=None, assignee=None): + """Create a Zephyr execution of the given test in the given project and + release""" + payload = {'projectId': self._proj_id, + 'cycleId': self._cycl_id, + 'issueId': test_id, + 'versionId': self._vers_id + } + req_url = self._zapi_url + 'execution' + response = get(req_url, + params=payload, + headers=self._zapi_hdr, + auth=(self._usr, self._pwd)) + data = loads(response.text) + executions = data.get('executions') or [] + return executions + + def set_execution_field(self, execution_id, field, value): + """Set the execution status of a given test's executionid""" + data = {field: value} + req_url = self._zapi_url + 'execution/' + execution_id + '/' + response = post(req_url, + params=data, + headers=self._zapi_hdr, + auth=(self._usr, self._pwd)) + if response.status_code <> 200: + print ("WARNING: " + response.text) + print (req_url) + print (data) + return response + + def set_execution(self, exec_status, execution_id, comment=""): + """Set the execution status of a given test's executionid""" + data = {"status": STATUS_CODE_DICT[exec_status], + "comment": comment} + req_url = self._zapi_url + 'execution/' + execution_id + '/execute' + response = put(req_url, + json=data, + headers=self._zapi_hdr, + auth=(self._usr, self._pwd)) + return response diff --git a/zephyr/zephyr_reporter.py b/zephyr/zephyr_reporter.py new file mode 100644 index 00000000..ab21998f --- /dev/null +++ b/zephyr/zephyr_reporter.py @@ -0,0 +1,157 @@ +#!/usr/bin/python2 +import argparse +import os +import sys +import re +import csv +import datetime +import json +from pprint import pprint +from time import gmtime, strftime +from jira import JIRA +import zapi +from jira import JIRA + +COLUMN_SCRIPT_NAME="TestScript Name" +COLUMN_JIRA_TEST_ID="Jira ID" + +def parse_arguments(): + """Parses imput arguments and returns them to the main routine. + Also takes care of prompting help""" + parser = argparse.ArgumentParser( + description='Post TDK Framework execution results to Zephyr (Jira)', + epilog="i.e. %(prog)s") + parser.add_argument("--report", "-rf", + help="The TDK Framework output file. \ + Default: output.xml", + default="output.xml") + parser.add_argument("--metafile", "-mf", + help="The csv file containing TDK tests and test case IDs \ + Default: tdktests.csv", + default="tdktests.csv") + parser.add_argument("--project", "-pr", + help="The Jira project where to update the results \ + Default: RDK-B", + default="RDKB") + parser.add_argument("--release", "-r", + help="The release version in Jira", + default="7.6.1") + parser.add_argument("--environment", "-e", required=False, + help="A string that identifies the environment.", + default="Lab 5C") + parser.add_argument("--cycle", "-c", required=False, + help="The name of the test cycle. \ + When not given, the cycle gets the name of the build", + default=None) + parser.add_argument("--build", "-b", required=False, + help="The build (software version) under test. \ + A cycle with this name is created if not otherwise \ + specified", default = "DemoBuild") + parser.add_argument("--user", "-u", required=False, + help="The Jira user that is publishing the results", default = USR) + parser.add_argument("--passwd", "-p", required=False, + help="The Jira password of the given user", default = PWD) + parser.add_argument("--updateautomationstatus", "-a", required=False, + help="When True it marks the test automation status \ + in Jira", + action="store_true") + + args = parser.parse_args() + return args + +def get_jira_release_id(rel_name, jira, proj): + """Return the ID of the release in a given project""" + versions = jira.project_versions(proj) + for version in reversed(versions): + #if version.name == rel_name: + version.id = "32880" + return version.id + #return '' + + +def update_automation_status(issue): + """Update the Jira custom field to track that the test is automated""" + #if issue.fields.customfield_11640.value != 'Automated test': + # issue.update(fields={'customfield_11640': {'value': 'Automated test'}}) + #return + + +def get_test_id_from_meta_file(meta_file, test_name): + reader = csv.DictReader(open(meta_file)) + test_id = "" + for row in reader: + if row["TestScript Name"] == test_name: + test_id = row[COLUMN_JIRA_TEST_ID] + return test_id + +def parse_zapi_config(): + data = json.load(open('zephyr/zapi_configuration.json')) + return data + + length = len(data["test_results"]) + + for len in range(0, length): + + test_case = data["test_results"][len]["name"] + +def update_zephyr(test_cases_list): + args=parse_zapi_config() + + """"Main routine""" + + jira = JIRA(basic_auth=(args["user"], args["passwd"]), + options={'server': args["jira_url"]}) + + proj = jira.project(args["project"]) + #verid = get_jira_release_id(args.release, jira, proj) + verid = "32880" + cycleName = args["cycle"] + cycleName = cycleName + "_" + str((datetime.datetime.now()).strftime("%Y%m%d%H%M%S")) + + + reporter = zapi.Zapi(project_id=proj.id, + version_id=verid, + environment=str(args["environment"]), + build=args["build"], + jira_url=args["jira_url"], + usr=args["user"], + pwd=args["passwd"]) + if args["cycle"] is None: + args["cycle"] = args["build"] + reporter.get_or_create_cycle(str(cycleName)) + + result = "" + + for i in range(len(test_cases_list)): + test_name = test_cases_list[i][0] + print "Test_name :" + test_name + test_id = get_test_id_from_meta_file(args["metafile"], test_name) + + if test_id: + print "Found Test ID in Meta file : " + test_id + issue = jira.issue(test_id) + if args["updateautomationstatus"]: + update_automation_status(issue) + + exec_id = reporter.create_execution(str(issue.id)) + result = test_cases_list[i][1] + print "Test case Result: " + result + log_data = "sample log data" + if result == 'FAIL': + result = 'FAIL' + if result == 'OK': + result = 'PASS' + if result == 'None': + result = 'FAIL' + if result == 'SKIP': + result = 'NOT TESTED' + if result == 'Exp FAIL': + result = 'FAIL' + + reporter.set_execution(result, + exec_id, + log_data) + +if __name__ == "__main__": + ARGS = parse_arguments() + main(ARGS) From 2cd10ff1989150c23daf8f4585fb3c55cc3dd0f5 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 14 May 2018 14:44:00 -0700 Subject: [PATCH 226/947] devices: common: mkdir before copying It's possible under certain circumstances this directory is not yet created Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/common.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/common.py b/devices/common.py index b5030a8b..3198290a 100644 --- a/devices/common.py +++ b/devices/common.py @@ -56,7 +56,7 @@ def copy_file_to_server(cmd, password): raise Exception("Unable to copy file to server") def download_from_web(url, server, username, password, port): - cmd = "curl -n -L -k '%s' 2>/dev/null | ssh -p %s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -x %s@%s \"tmpfile=\`mktemp /tftpboot/tmp/XXXXX\`; cat - > \$tmpfile; chmod a+rw \$tmpfile; echo \$tmpfile\"" % (url, port, username, server) + cmd = "curl -n -L -k '%s' 2>/dev/null | ssh -p %s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -x %s@%s \"mkdir -p /tftpboot/tmp; tmpfile=\`mktemp /tftpboot/tmp/XXXXX\`; cat - > \$tmpfile; chmod a+rw \$tmpfile; echo \$tmpfile\"" % (url, port, username, server) return copy_file_to_server(cmd, password) def scp_to_tftp_server(fname, server, username, password, port): @@ -65,7 +65,7 @@ def scp_to_tftp_server(fname, server, username, password, port): print_bold("File passed as parameter does not exist! Failing!\n") sys.exit(10) - cmd = "cat %s | ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p %s -x %s@%s \"tmpfile=\`mktemp /tftpboot/tmp/XXXXX\`; cat - > \$tmpfile; chmod a+rw \$tmpfile; echo \$tmpfile\"" % (fname, port, username, server) + cmd = "cat %s | ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p %s -x %s@%s \"mkdir -p /tftpboot/tmp; tmpfile=\`mktemp /tftpboot/tmp/XXXXX\`; cat - > \$tmpfile; chmod a+rw \$tmpfile; echo \$tmpfile\"" % (fname, port, username, server) return copy_file_to_server(cmd, password) def print_bold(msg): From 52883b0374dcd73587e7fe0563092a32544b07c1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 14 May 2018 15:27:35 -0700 Subject: [PATCH 227/947] devices: owrt: add option to flash meta AFTER booted Some boards need to flash their combined meta style images after a board has been booted. So let's add some basics bits to support that model Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 1 + tests/rootfs_boot.py | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 6da79345..8e18a263 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -42,6 +42,7 @@ class OpenWrtRouter(base.BaseDevice): lan_iface = "br-lan" wan_iface = "eth0" tftp_server_int = None + flash_meta_booted = False uboot_net_delay = 30 diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index a455891d..79413857 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -52,7 +52,10 @@ def boot(self, reflash=True): # Reflash only if at least one or more of these # variables are set, or else there is nothing to do in u-boot - if reflash and (self.config.META_BUILD or self.config.ROOTFS or\ + meta_interrupt = False + if self.config.META_BUILD and not board.flash_meta_booted: + meta_interrupt = True + if reflash and (meta_interrupt or self.config.ROOTFS or\ self.config.KERNEL or self.config.UBOOT): # Break into U-Boot, set environment variables board.wait_for_boot() @@ -85,6 +88,8 @@ def boot(self, reflash=True): board.pre_boot_linux(wan=wan, lan=lan) board.linux_booted = True board.wait_for_linux() + if self.config.META_BUILD and board.flash_meta_booted: + board.flash_meta(self.config.META_BUILD, wan, lan) linux_booted_seconds_up = board.get_seconds_uptime() # Retry setting up wan protocol if self.config.setup_device_networking: From b00c1d3752e717ba496ef31bd1a14e6950c2504a Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 15 May 2018 12:09:40 -0700 Subject: [PATCH 228/947] bft: enclose all zehpyr execution in try/except Avoids the following which causes bft to exit: Starting Zephyr Execution.... Traceback (most recent call last): File "./bft", line 441, in <module> main() File "./bft", line 411, in main test_cases_list[tc].append(test_case) IndexError: list index out of range Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/bft b/bft index d1df0a35..9b27fbe1 100755 --- a/bft +++ b/bft @@ -400,19 +400,19 @@ def main(): #Update the results in Zephyr print_bold('Starting Zephyr Execution....') - result_data = json.load(open('./results/test_results.json')) - length = len(result_data["test_results"]) - test_cases_list = [] - test_cases_list.append([]) - test_cases_list.append([]) - - for tc in range(0, length): - test_case = result_data["test_results"][tc]["name"] - test_cases_list[tc].append(test_case) - test_result = result_data["test_results"][tc]["grade"] - test_cases_list[tc].append(test_result) - try: + result_data = json.load(open('./results/test_results.json')) + length = len(result_data["test_results"]) + test_cases_list = [] + test_cases_list.append([]) + test_cases_list.append([]) + + for tc in range(0, length): + test_case = result_data["test_results"][tc]["name"] + test_cases_list[tc].append(test_case) + test_result = result_data["test_results"][tc]["grade"] + test_cases_list[tc].append(test_result) + zephyr_reporter.update_zephyr(test_cases_list) except Exception as e: print(e) From dfefa261948dc98de5c92b3c750b654f0525d233 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 15 May 2018 12:12:32 -0700 Subject: [PATCH 229/947] zephyr: skip trying to send reuslts if default config present Simple check so we don't get weird messages printed if we have not set a configuration Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- zephyr/zephyr_reporter.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/zephyr/zephyr_reporter.py b/zephyr/zephyr_reporter.py index ab21998f..2a236630 100644 --- a/zephyr/zephyr_reporter.py +++ b/zephyr/zephyr_reporter.py @@ -97,6 +97,10 @@ def parse_zapi_config(): def update_zephyr(test_cases_list): args=parse_zapi_config() + if "JIRA_URL" == args['jira_url']: + print("Zephyr is not configured, skipping...") + return + """"Main routine""" jira = JIRA(basic_auth=(args["user"], args["passwd"]), From 3f224ea7a7730422628d814ada329f6b88dc33f7 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 15 May 2018 16:49:49 -0700 Subject: [PATCH 230/947] devices: base: fix stack offsets for expect helper Now we print the correct calling function for expect or send functions when BFT_DEBUG is set in the environment There are still some issues, and we should track them down but to get more detailed info you can uncomment the added debug lines and it should provide all the infomation except very verbose Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/base.py | 9 ++++++--- devices/error_detect.py | 6 ++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/devices/base.py b/devices/base.py index 130bcbe0..d89ee296 100644 --- a/devices/base.py +++ b/devices/base.py @@ -173,15 +173,18 @@ def expect_helper(self, pattern, wrapper, *args, **kwargs): return wrapper(pattern, *args, **kwargs) common.print_bold("%s = expecting: %s" % - (error_detect.caller_file_line(2), repr(pattern))) + (error_detect.caller_file_line(3), repr(pattern))) try: ret = wrapper(pattern, *args, **kwargs) + + frame = error_detect.caller_file_line(3) + if hasattr(self.match, "group"): common.print_bold("%s = matched: %s" % - (error_detect.caller_file_line(1), repr(self.match.group()))) + (frame, repr(self.match.group()))) else: common.print_bold("%s = matched: %s" % - (error_detect.caller_file_line(1), repr(pattern))) + (frame, repr(pattern))) return ret except: common.print_bold("expired") diff --git a/devices/error_detect.py b/devices/error_detect.py index 40fa4d5b..2ea15d1e 100644 --- a/devices/error_detect.py +++ b/devices/error_detect.py @@ -67,6 +67,12 @@ def detect_fatal_error(console): #detect_kernel_panic(console, s) def caller_file_line(i): + #line = 0 + #print "##################### %s" % i + #for s in inspect.stack(): + # print "%s: %s" % (line, s) + # line = line + 1 + #print "##################### %s" % i caller = inspect.stack()[i] # caller of spawn or pexpect frame = caller[0] info = inspect.getframeinfo(frame) From 80e1f4117837bce8c1452bb2009517d68dac8987 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 16 May 2018 12:09:04 -0700 Subject: [PATCH 231/947] devices: debian: don't limit tftp to ipv4 only Not sure why this was initially added but lets allow ipv6 for now Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index e506d1ac..a6a4000e 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -272,7 +272,11 @@ def start_tftp_server(self): self.expect(self.prompt) self.sendline('sed /TFTP_OPTIONS/d -i /etc/default/tftpd-hpa') self.expect(self.prompt) - self.sendline('echo TFTP_OPTIONS=\\"-4 --secure --create\\" >> /etc/default/tftpd-hpa') + self.sendline('echo TFTP_OPTIONS=\\"--secure --create\\" >> /etc/default/tftpd-hpa') + self.expect(self.prompt) + self.sendline('sed /TFTP_ADDRESS/d -i /etc/default/tftpd-hpa') + self.expect(self.prompt) + self.sendline('echo TFTP_ADDRESS=\\":69\\" >> /etc/default/tftpd-hpa') self.expect(self.prompt) self.sendline('sed /TFTP_DIRECTORY/d -i /etc/default/tftpd-hpa') self.expect(self.prompt) From 91fa16de2560e5b675c3845b730f46a3dcddb6b1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 16 May 2018 12:10:53 -0700 Subject: [PATCH 232/947] devices: debian: start syslog server so we can see more logs One obvious use of this is checking auth.log to see other users Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index a6a4000e..afbed63e 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -291,6 +291,8 @@ def restart_tftp_server(self): self.expect(self.prompt) def start_sshd_server(self): + self.sendline('/etc/init.d/rsyslog start') + self.expect(self.prompt) self.sendline('/etc/init.d/ssh start') self.expect(self.prompt) self.sendline('sed "s/.*PermitRootLogin.*/PermitRootLogin yes/g" -i /etc/ssh/sshd_config') From 97ab1a16eda41fb958ab93b170fb3dca4d5b8577 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 16 May 2018 15:47:58 -0700 Subject: [PATCH 233/947] device: common: allow more time to transfer files Some files have grown quite large and we run over VPN type lines that are not always as fast, so let's double the amount of time. At some point we need to just monitor for progress of the copied file and / or start the file transfer when we launch bft so we don't have to stop and wait whenever we choose to begin the transfer Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/common.py b/devices/common.py index 3198290a..ab1c898a 100644 --- a/devices/common.py +++ b/devices/common.py @@ -32,7 +32,7 @@ def copy_file_to_server(cmd, password): for attempt in range(5): try: print_bold(cmd) - p = pexpect.spawn(command='/bin/bash', args=['-c', cmd], timeout=120) + p = pexpect.spawn(command='/bin/bash', args=['-c', cmd], timeout=240) p.logfile_read = sys.stdout i = p.expect(["yes/no", "password:", "/tftpboot/.*"]) From 1d968c9d2043a09cecb14b2310c8744a65050a63 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 22 May 2018 10:35:12 -0700 Subject: [PATCH 234/947] devices: rpi3: add support to flash complete SD image This will flash a complete SD image after Linux is booted. This is done incase u-boot env sector is corrupt or you just want to risk flashing an entire image. If the image is bad, the board will be bricked Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/rpi.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/devices/rpi.py b/devices/rpi.py index 744c74ae..00cb567a 100644 --- a/devices/rpi.py +++ b/devices/rpi.py @@ -9,6 +9,7 @@ import openwrt_router import os import ipaddress +import pexpect class RPI(openwrt_router.OpenWrtRouter): ''' @@ -36,6 +37,8 @@ class RPI(openwrt_router.OpenWrtRouter): # allowed open ports (starting point) wan_open_ports = ['22', '8080', '8087', '8088', '8090'] + flash_meta_booted = True + def flash_uboot(self, uboot): '''In this case it's flashing the vfat partition of the bootload. Need to have that image u-boot and serial turned on via dtoverlay @@ -113,6 +116,42 @@ def flash_linux(self, KERNEL): self.sendline('fatwrite mmc 0 %s %s $filesize' % (self.kernel_file, self.uboot_ddr_addr)) self.expect(self.uprompt) + def flash_meta(self, META, wan, lan): + '''Flashes a combine signed image over TFTP''' + print("\n===== Updating entire SD card image =====\n") + # must start before we copy as it erases files + wan.start_tftp_server() + + filename = self.prepare_file(META, tserver=wan.config['ipaddr'], tport=wan.config.get('port', '22')) + + wan_ip = wan.get_interface_ipaddr('eth1') + self.sendline('ping -c1 %s' % wan_ip) + self.expect_exact('1 packets transmitted, 1 packets received, 0% packet loss') + self.expect(self.prompt) + + self.sendline('cd /tmp') + self.expect(self.prompt) + self.sendline(' tftp -g -r %s 10.0.1.1' % filename) + self.expect(self.prompt, timeout=240) + + self.sendline('systemctl isolate rescue.target') + if 0 == self.expect(['Give root password for maintenance', 'Welcome Press Enter for maintenance', 'Press Enter for maintenance']): + self.sendline('password') + else: + self.sendline() + self.expect_exact('sh-3.2# ') + self.sendline('cd /tmp') + self.expect_exact('sh-3.2# ') + self.sendline('mount -no remount,ro /') + self.expect_exact('sh-3.2# ') + self.sendline('dd if=$(basename %s) of=/dev/mmcblk0 && sync' % filename) + self.expect(pexpect.TIMEOUT, timeout=120) + self.reset() + self.wait_for_boot() + # we need to update bootargs, should be doing this at build time + self.boot_linux() + self.wait_for_linux() + def wait_for_linux(self): super(RPI, self).wait_for_linux() From 85f3328ed0e335b15d16b2759900e2cd44960d84 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 23 May 2018 08:49:09 -0700 Subject: [PATCH 235/947] devices: rpi: default sane uImage name if not defined Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/rpi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/rpi.py b/devices/rpi.py index 00cb567a..f79f6768 100644 --- a/devices/rpi.py +++ b/devices/rpi.py @@ -180,7 +180,7 @@ def boot_linux(self, rootfs=None, bootargs=""): self.sendline('setenv bootargs "$bcm_bootargs %s"' % bootargs) self.expect(self.uprompt) - self.sendline("setenv bootcmd 'fatload mmc 0 ${kernel_addr_r} %s; bootm ${kernel_addr_r} - ${fdt_addr}; booti ${kernel_addr_r} - ${fdt_addr}'" % self.kernel_file) + self.sendline("setenv bootcmd 'fatload mmc 0 ${kernel_addr_r} %s; bootm ${kernel_addr_r} - ${fdt_addr}; booti ${kernel_addr_r} - ${fdt_addr}'" % getattr(self, 'kernel_file', 'uImage')) self.expect(self.uprompt) self.sendline('saveenv') self.expect(self.uprompt) From 389a39a3b9f124f4eba0a957d780bbef1305cde2 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 24 May 2018 11:36:39 -0700 Subject: [PATCH 236/947] devices: debian: remove duplicate time-servers option in cmts dhcp config This was causing the wrong time server to be set on the server Reported-by: Rachel Lei <rlei@libertyglobal.com> Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 1 - 1 file changed, 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index afbed63e..9e1a6945 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -364,7 +364,6 @@ def setup_as_cmts_provisioner(self, board_config): default-lease-time 604800; max-lease-time 604800; allow leasequery; -option time-servers 192.168.3.222; option space docsis-mta; option docsis-mta.dhcp-server-1 code 1 = ip-address; From ba6ecce8190b5eade02496571fde6432bd3bd1c1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 22 May 2018 17:20:46 -0700 Subject: [PATCH 237/947] devices: add ip for mgmt port for casa Don't use DHCP, it can break our routing Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/casa_cmts.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index effd67fd..f7123fd2 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -242,7 +242,7 @@ def add_service_group(self, index, qam_idx, qam_sub, qam_channels, ups_idx, ups_ cmts.reset() cmts.wait_for_ready() - cmts.set_iface_ipaddr('eth 0', 'dhcp') + cmts.set_iface_ipaddr('eth 0', '172.19.17.136 255.255.255.192') cmts.set_iface_ipaddr('gige 0', '192.168.3.222 255.255.255.0') cmts.add_ip_bundle(1, "192.168.200.1", "192.168.201.1", "192.168.3.1") From 702ee2d822ac5ae65ab59978e049f4766679f0b9 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 22 May 2018 17:59:07 -0700 Subject: [PATCH 238/947] devices: casa_cmts: add helper func to mirror traffic Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/casa_cmts.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index f7123fd2..57cfe36d 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -232,6 +232,28 @@ def add_service_group(self, index, qam_idx, qam_sub, qam_channels, ups_idx, ups_ self.sendline('exit') self.expect(self.prompt) + def mirror_traffic(self, macaddr=""): + self.sendline('diag') + self.expect('Password:') + self.sendline('casadiag') + self.expect(self.prompt) + self.sendline('mirror cm traffic 127.1.0.7 %s' % macaddr) + if 0 == self.expect(['Please type YES to confirm you want to mirror all CM traffic:'] + self.prompt): + self.sendline("YES") + self.expect(self.prompt) + self.sendline('exit') + self.expect(self.prompt) + + def unmirror_traffic(self): + self.sendline('diag') + self.expect('Password:') + self.sendline('casadiag') + self.expect(self.prompt) + self.sendline('mirror cm traffic 0') + self.expect(self.prompt) + self.sendline('exit') + self.expect(self.prompt) + if __name__ == '__main__': import time From 9e70d10aff4d10cd7b9df42bf042e7e78c4935bc Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 25 May 2018 11:49:22 -0700 Subject: [PATCH 239/947] devices: casa_cmts: add example to capture pcap on cmts Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/casa_cmts.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 57cfe36d..494c8b06 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -254,11 +254,37 @@ def unmirror_traffic(self): self.sendline('exit') self.expect(self.prompt) + def run_tcpdump(self, time, opts=""): + self.sendline('diag') + self.expect('Password:') + self.sendline('casadiag') + self.expect(self.prompt) + self.sendline('tcpdump "-i any %s"' % opts) + self.expect(pexpect.TIMEOUT, timeout=time) + self.sendcontrol('c') + self.expect(self.prompt) + self.sendline('exit') + self.expect(self.prompt) + + def del_file(self, f): + self.sendline('del %s' % f) + self.expect(self.prompt) + if __name__ == '__main__': import time cmts = CasaCMTS(sys.argv[1]) cmts.connect() + + # TODO: example for now, need to parse args + if False: + cmts.mirror_traffic() + cmts.run_tcpdump(15, opts="-w dump.pcap") + # TODO: extract pcap from CMTS + cmts.del_file("dump.pcap") + cmts.unmirror_traffic() + sys.exit(0) + cmts.save_running_to_startup_config() cmts.save_running_config_to_local("saved-casa-config-" + time.strftime("%Y%m%d-%H%M%S") + ".cfg") cmts.reset() From a9c834eca223382cf44234cfe59ad7a88b37aa95 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 22 May 2018 17:57:42 -0700 Subject: [PATCH 240/947] devices: refactor __init__ bits to always run This will be used shortly for dynamic devices attached to boards so we need to run this before we decide on a board class type Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/__init__.py | 56 +++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/devices/__init__.py b/devices/__init__.py index bc965796..45d88289 100644 --- a/devices/__init__.py +++ b/devices/__init__.py @@ -4,6 +4,11 @@ devices over a network. ''' +import os +import sys +import glob +import inspect + board = None lan = None wan = None @@ -11,6 +16,30 @@ wlan2g = None wlan5g = None prompt = None + +device_files = glob.glob(os.path.dirname(__file__)+"/*.py") +if 'BFT_OVERLAY' in os.environ: + for overlay in os.environ['BFT_OVERLAY'].split(' '): + overlay = os.path.abspath(overlay) + sys.path.insert(0, overlay + '/devices') + device_files += glob.glob(overlay + '/devices/*.py') + + sys.path.insert(0, os.getcwd() + '/devices') + +device_mappings = { } +for x in sorted([os.path.basename(f)[:-3] for f in device_files if not "__" in f]): + try: + exec("import %s as device_file" % x) + device_mappings[device_file] = [] + for obj in dir(device_file): + ref = getattr(device_file, obj) + if inspect.isclass(ref) and hasattr(ref, "model"): + device_mappings[device_file].append(ref) + exec("from %s import %s" % (x, obj)) + except Exception as e: + print(e) + print("Warning: could not import from file %s." % x) + def initialize_devices(configuration): # Init random global variables. To Do: clean these. global power_ip, power_outlet @@ -38,33 +67,6 @@ def initialize_devices(configuration): prompt = list(set(prompt)) def board_decider(model, **kwargs): - import os - import sys - import glob - import inspect - device_files = glob.glob(os.path.dirname(__file__)+"/*.py") - if 'BFT_OVERLAY' in os.environ: - for overlay in os.environ['BFT_OVERLAY'].split(' '): - overlay = os.path.abspath(overlay) - sys.path.insert(0, overlay + '/devices') - device_files += glob.glob(overlay + '/devices/*.py') - - sys.path.insert(0, os.getcwd() + '/devices') - - device_mappings = { } - for x in sorted([os.path.basename(f)[:-3] for f in device_files if not "__" in f]): - try: - exec("import %s as device_file" % x) - device_mappings[device_file] = [] - for obj in dir(device_file): - ref = getattr(device_file, obj) - if inspect.isclass(ref) and hasattr(ref, "model"): - device_mappings[device_file].append(ref) - exec("from %s import %s" % (x, obj)) - except Exception as e: - print(e) - print("Warning: could not import from file %s." % x) - for device_file, devs in device_mappings.iteritems(): for dev in devs: if 'model' in dev.__dict__ and model in dev.__dict__['model']: From cd5427d98783bf9dc4f0be540efa6872c91609fd Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 23 May 2018 12:50:46 -0700 Subject: [PATCH 241/947] devices: debian: refactor cmts isc config to separate function Just a simple refactoring, we will call this separately when updating the CM and MTA cfg Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 9e1a6945..4008d3bb 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -341,21 +341,7 @@ def configure(self, kind, config=[]): elif kind == "lan_device": self.setup_as_lan_device() - - def setup_as_cmts_provisioner(self, board_config): - self.sendline('apt-get -o DPkg::Options::="--force-confnew" -qy install isc-dhcp-server xinetd') - self.expect(self.prompt) - self.sendline('/etc/init.d/isc-dhcp-server stop') - self.expect(self.prompt) - self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') - self.expect(self.prompt) - self.sendline('ifconfig eth1 %s' % self.gw) - self.expect(self.prompt) - # TODO: specify these via config - self.sendline('ip route add 192.168.201.0/24 via 192.168.3.222') - self.expect(self.prompt) - self.sendline('ip route add 192.168.200.0/24 via 192.168.3.222') - self.expect(self.prompt) + def update_cmts_isc_dhcp_config(self, board_config): self.sendline('''cat > /etc/dhcp/dhcpd.conf << EOF log-facility local7; option log-servers 192.168.3.1; @@ -415,6 +401,22 @@ def setup_as_cmts_provisioner(self, board_config): self.expect(self.prompt) self.sendline("cat /etc/dhcp/dhcpd.conf.* >> /etc/dhcp/dhcpd.conf") self.expect(self.prompt) + + def setup_as_cmts_provisioner(self, board_config): + self.sendline('apt-get -o DPkg::Options::="--force-confnew" -qy install isc-dhcp-server xinetd') + self.expect(self.prompt) + self.sendline('/etc/init.d/isc-dhcp-server stop') + self.expect(self.prompt) + self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') + self.expect(self.prompt) + self.sendline('ifconfig eth1 %s' % self.gw) + self.expect(self.prompt) + # TODO: specify these via config + self.sendline('ip route add 192.168.201.0/24 via 192.168.3.222') + self.expect(self.prompt) + self.sendline('ip route add 192.168.200.0/24 via 192.168.3.222') + self.expect(self.prompt) + self.update_cmts_isc_dhcp_config(board_config) self.sendline('/etc/init.d/isc-dhcp-server start') self.expect(['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*']) self.expect(self.prompt) From 6edf8b55515ca092c6947490f86fd089ba3867fa Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 23 May 2018 12:55:49 -0700 Subject: [PATCH 242/947] devices: debian: refactor copying provisioning files to server Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 4008d3bb..e8b3a065 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -402,6 +402,25 @@ def update_cmts_isc_dhcp_config(self, board_config): self.sendline("cat /etc/dhcp/dhcpd.conf.* >> /etc/dhcp/dhcpd.conf") self.expect(self.prompt) + def copy_cmts_provisioning_files(self, board_config): + # Look in all overlays as well, and PATH as a workaround for standalone + paths = os.environ['PATH'].split(os.pathsep) + paths += os.environ['BFT_OVERLAY'].split(' ') + cfg_list = [] + + if 'tftp_cfg_files' in board_config: + for path in paths: + for cfg in board_config['tftp_cfg_files']: + cfg_list += glob.glob(path + '/devices/cm-cfg/%s' % cfg) + else: + for path in paths: + cfg_list += glob.glob(path + '/devices/cm-cfg/UNLIMITCASA.cfg') + cfg_set = set(cfg_list) + + # Copy binary files to tftp server + for cfg in cfg_set: + self.copy_file_to_server(cfg) + def setup_as_cmts_provisioner(self, board_config): self.sendline('apt-get -o DPkg::Options::="--force-confnew" -qy install isc-dhcp-server xinetd') self.expect(self.prompt) @@ -425,23 +444,7 @@ def setup_as_cmts_provisioner(self, board_config): # here we have to start one for the CM configs self.start_tftp_server() - # Look in all overlays as well, and PATH as a workaround for standalone - paths = os.environ['PATH'].split(os.pathsep) - paths += os.environ['BFT_OVERLAY'].split(' ') - cfg_list = [] - - if 'tftp_cfg_files' in board_config: - for path in paths: - for cfg in board_config['tftp_cfg_files']: - cfg_list += glob.glob(path + '/devices/cm-cfg/%s' % cfg) - else: - for path in paths: - cfg_list += glob.glob(path + '/devices/cm-cfg/UNLIMITCASA.cfg') - cfg_set = set(cfg_list) - - # Copy binary files to tftp server - for cfg in cfg_set: - self.copy_file_to_server(cfg) + self.copy_cmts_provisioning_files(board_config) self.sendline("sed 's/disable\\t\\t= yes/disable\\t\\t= no/g' -i /etc/xinetd.d/time") self.expect(self.prompt) From 1db3e03ee5c145ce3d51d24d7d3c626ee2ee1a3b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 29 May 2018 09:12:13 -0700 Subject: [PATCH 243/947] devices: debian: use dict to setup dhcp server Instead of hard coded the DHCP server config in ISC format, let's move it to something more generic where one could in theory extract the config and setup a separate a DHCP server Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index e8b3a065..5f060145 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -394,11 +394,27 @@ def update_cmts_isc_dhcp_config(self, board_config): self.sendline('rm /etc/dhcp/dhcpd.conf.''' + board_config['station']) self.expect(self.prompt) - if 'extra_isc_dhcp_config' in board_config: - self.sendline('''cat > /etc/dhcp/dhcpd.conf.''' + board_config['station'] + ''' << EOF -''' + board_config['extra_isc_dhcp_config'] + ''' -EOF''') + if 'extra_provisioning' in board_config: + cfg_file = "/etc/dhcp/dhcpd.conf." + board_config['station'] + + # zero out old config + self.sendline('cp /dev/null %s' % cfg_file) self.expect(self.prompt) + + # there is probably a better way to construct this file... + for dev, cfg_sec in board_config['extra_provisioning'].iteritems(): + self.sendline("echo 'host %s-%s {' >> %s" % (dev, board_config['station'], cfg_file)) + for key, value in cfg_sec.iteritems(): + if key == "options": + for k2, v2 in value.iteritems(): + self.sendline("echo ' option %s %s;' >> %s" % (k2, v2, cfg_file)) + self.expect(self.prompt) + else: + self.sendline("echo ' %s %s;' >> %s" % (key, value, cfg_file)) + self.expect(self.prompt) + self.sendline("echo '}' >> %s" % cfg_file) + + # combine all configs into one self.sendline("cat /etc/dhcp/dhcpd.conf.* >> /etc/dhcp/dhcpd.conf") self.expect(self.prompt) From 3d30aa3c78ed74a57e66a43deb40bc5bb7b6756a Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 29 May 2018 13:35:08 -0700 Subject: [PATCH 244/947] devices: debian: add ability to reprovision a board We want to be able to change a single boards provisioning so let's add the option to copy new files to the tftp server and rebuild the board specific DHCP config Also, remove broken direct inovation of this script to deploy a CMTS node. Will update this later if that feature is required. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 5f060145..69c96114 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -337,7 +337,7 @@ def configure(self, kind, config=[]): if kind == "wan_device": self.setup_as_wan_gateway() if self.wan_cmts_provisioner: - self.setup_as_cmts_provisioner(config) + self.provision_board(config) elif kind == "lan_device": self.setup_as_lan_device() @@ -437,7 +437,8 @@ def copy_cmts_provisioning_files(self, board_config): for cfg in cfg_set: self.copy_file_to_server(cfg) - def setup_as_cmts_provisioner(self, board_config): + def provision_board(self, board_config): + ''' Setup DHCP and time server etc for CM provisioning''' self.sendline('apt-get -o DPkg::Options::="--force-confnew" -qy install isc-dhcp-server xinetd') self.expect(self.prompt) self.sendline('/etc/init.d/isc-dhcp-server stop') @@ -467,6 +468,14 @@ def setup_as_cmts_provisioner(self, board_config): self.sendline('/etc/init.d/xinetd restart') self.expect(self.prompt) + def reprovision_board(self, board_config): + '''New DHCP, cfg files etc for board after it's been provisioned once''' + self.copy_cmts_provisioning_files(board_config) + self.update_cmts_isc_dhcp_config(board_config) + self.sendline('/etc/init.d/isc-dhcp-server restart') + self.expect(['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*']) + self.expect(self.prompt) + def setup_dhcp_server(self): # configure DHCP server self.sendline('/etc/init.d/isc-dhcp-server stop') @@ -709,8 +718,6 @@ def add_new_user(self, id, pwd): dev.configure("lan_device") if sys.argv[2] == "setup_as_wan_gateway": dev.configure("wan_device") - if sys.argv[2] == "setup_as_cmts_provisioner": - dev.configure("cmts_provisioner") print From 675205a269dbcba8824366cfd98561540866e8ad Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 29 May 2018 13:54:08 -0700 Subject: [PATCH 245/947] bft: add a placeholder device to act as a provisioner Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 6 ++++++ devices/debian.py | 2 -- tests/rootfs_boot.py | 6 +++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/bft b/bft index 9b27fbe1..d5d4b54f 100755 --- a/bft +++ b/bft @@ -92,6 +92,12 @@ def setup_dynamic_devices(config, env=None): config=device) setattr(config, device['name'], d) config.devices.append(device['name']) + + # if this device is a wan cmts provisioner, we set the device name + if d.wan_cmts_provisioner: + setattr(config, 'provisioner', d) + config.devices.append('provisioner') + else: print("Unknown device type for %d", device) diff --git a/devices/debian.py b/devices/debian.py index 69c96114..7a5a79c4 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -336,8 +336,6 @@ def configure(self, kind, config=[]): if kind == "wan_device": self.setup_as_wan_gateway() - if self.wan_cmts_provisioner: - self.provision_board(config) elif kind == "lan_device": self.setup_as_lan_device() diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 79413857..44a5dd65 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -8,7 +8,7 @@ import time import linux_boot import lib -from devices import board, wan, lan, wlan, prompt +from devices import board, wan, lan, prompt class RootFSBootTest(linux_boot.LinuxBootTest): '''Flashed image and booted successfully.''' @@ -42,6 +42,10 @@ def boot(self, reflash=True): if tftp_device is None: tftp_device = wan + prov = getattr(self.config, 'provisioner', None) + if prov is not None: + prov.provision_board(self.config.board) + tftp_device.start_tftp_server() if lan: From 1cc8d2cb12344c3f16aad8830bdb73585fb25c0e Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 30 May 2018 12:53:40 -0700 Subject: [PATCH 246/947] arguments: add lists together and replace all other config items This let's you make devices in the locations list that can be used by all boards: "locations": { "somewhere": { + "devices": [ + { + "type": "some-type", + "name": "some-name", + "ipaddr": "some-ip" + } + ] } } } Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- arguments.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arguments.py b/arguments.py index 449da99d..66a97502 100755 --- a/arguments.py +++ b/arguments.py @@ -110,7 +110,11 @@ def parse(): if 'location' in config.boardfarm_config[board]: board_location = config.boardfarm_config[board]['location'] if board_location in location: - config.boardfarm_config[board].update(location[board_location]) + for key, value in location[board_location].iteritems(): + if type(value) == list: + config.boardfarm_config[board][key].extend(value) + else: + config.boardfarm_config[board][key] = value except Exception as e: print(e) From f2db145b781411f770a5e2b90a99005c17383fef Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 30 May 2018 12:56:16 -0700 Subject: [PATCH 247/947] devices: don't skip error importing devices Right now we just skip devices we can't parse, well it's safer to error and exit so the user can correct the error because some devices will fall back to the default type and sort of work but that's a terrible situation to be in Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/__init__.py | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/devices/__init__.py b/devices/__init__.py index 45d88289..963b64f7 100644 --- a/devices/__init__.py +++ b/devices/__init__.py @@ -28,17 +28,13 @@ device_mappings = { } for x in sorted([os.path.basename(f)[:-3] for f in device_files if not "__" in f]): - try: - exec("import %s as device_file" % x) - device_mappings[device_file] = [] - for obj in dir(device_file): - ref = getattr(device_file, obj) - if inspect.isclass(ref) and hasattr(ref, "model"): - device_mappings[device_file].append(ref) - exec("from %s import %s" % (x, obj)) - except Exception as e: - print(e) - print("Warning: could not import from file %s." % x) + exec("import %s as device_file" % x) + device_mappings[device_file] = [] + for obj in dir(device_file): + ref = getattr(device_file, obj) + if inspect.isclass(ref) and hasattr(ref, "model"): + device_mappings[device_file].append(ref) + exec("from %s import %s" % (x, obj)) def initialize_devices(configuration): # Init random global variables. To Do: clean these. From f3d9c31e660dde657b908075ca385c100c5a0325 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 30 May 2018 12:57:18 -0700 Subject: [PATCH 248/947] devices: refactor get_device function This function will be used to create dynamic devices the same way we decide the board type for devices attached to boards Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/__init__.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/devices/__init__.py b/devices/__init__.py index 963b64f7..3bccc93b 100644 --- a/devices/__init__.py +++ b/devices/__init__.py @@ -62,12 +62,19 @@ def initialize_devices(configuration): prompt += getattr(d, "prompt", []) prompt = list(set(prompt)) -def board_decider(model, **kwargs): +def get_device(model, **kwargs): for device_file, devs in device_mappings.iteritems(): for dev in devs: if 'model' in dev.__dict__ and model in dev.__dict__['model']: return dev(model, **kwargs) + return None + +def board_decider(model, **kwargs): + dynamic_dev = get_device(model, **kwargs) + if dynamic_dev is not None: + return dynamic_dev + # Default for all other models print("\nWARNING: Unknown board model '%s'." % model) print("Please check spelling, or write an appropriate class " From 34e7c95150b25a28badbb5621ee8ee6bb1f5ff8a Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 30 May 2018 12:59:00 -0700 Subject: [PATCH 249/947] bft: make dynamic devices if present in config Now we check the model field of the device class to see if it matches the type in the config file and create the device dynamically. The device is passed the config section. The old debian device needs to be converted to this model at some point in the future Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/bft b/bft index d5d4b54f..17dfac7e 100755 --- a/bft +++ b/bft @@ -29,7 +29,7 @@ import zephyr_reporter import site site.addsitedir(os.path.dirname(os.path.realpath(__file__))) -from devices import debian, logstash, elasticlogger +from devices import debian, logstash, elasticlogger, get_device def setup_legacy_devices(config): '''This will setup legacy hard coded devices to into the config''' @@ -75,6 +75,7 @@ def setup_dynamic_devices(config, env=None): config.devices = [] for device in config.board['devices']: if device['type'] == 'debian': + # old static name lookup, now we use model but this lingers d = debian.DebianBox(name=device.get('ipaddr', None), color=device.get('color', 'black'), reboot=config.reboot_vms, @@ -98,8 +99,16 @@ def setup_dynamic_devices(config, env=None): setattr(config, 'provisioner', d) config.devices.append('provisioner') - else: - print("Unknown device type for %d", device) + # done with wan/lan devices + continue + + dyn_dev = get_device(device['type'], **device) + if dyn_dev is not None: + setattr(config, device['name'], dyn_dev) + config.devices.append(device['name']) + continue + + print("Unknown device type for %s" % device) def main(): '''Connect to devices, run tests, record results.''' From 4afd2ff6f0ab9f8835e81429f2c4b54bf8dd0a74 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 30 May 2018 13:00:30 -0700 Subject: [PATCH 250/947] bft: save config in the board object We need the configuration in the board object so let's save it there for future use. Also we don't need to pass it to update_config either since it's already in the board object Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 3 ++- devices/openwrt_router.py | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/bft b/bft index 17dfac7e..1ee3d137 100755 --- a/bft +++ b/bft @@ -189,6 +189,7 @@ def main(): power_password=config.board.get('power_password', None), rootfs=config.ROOTFS, kernel=config.KERNEL, + config=config.board, env=env) print_bold("dut device console = %s" % colored("black", 'grey')) @@ -252,7 +253,7 @@ def main(): # Update config from board info if hasattr(config.console, "update_config"): - config.console.update_config(config.board) + config.console.update_config() print_bold('\n==========') library.print_board_info(config.board) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 8e18a263..0864e3dc 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -65,8 +65,10 @@ def __init__(self, connection_type=None, power_username=None, power_password=None, + config=None, **kwargs): + self.config = config self.consoles.append(self) if type(conn_cmd) is list: From e44269217671f8329f9b488baa384ddcb0bebd83 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 30 May 2018 13:01:37 -0700 Subject: [PATCH 251/947] tests: interact: display info about dynamic devices Just use the string representation of this object for now, we need to move the other debian device to do the same thing. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/interact.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/interact.py b/tests/interact.py index 63a559db..e8e318e5 100644 --- a/tests/interact.py +++ b/tests/interact.py @@ -28,7 +28,11 @@ def print_legacy_devices(self): def print_dynamic_devices(self): for device in self.config.devices: d = getattr(self.config, device) - print(" %s device: ssh %s@%s" % (device, d.username, d.name)) + # TODO: should move all classes to use string repr + if hasattr(d, 'username'): + print(" %s device: ssh %s@%s" % (device, d.username, d.name)) + else: + print(" %s device: %s" % (d.name, d)) def runTest(self): legacy = hasattr(self.config, "wan_device") From 0a77b8a2f540d59feb0f06ee156eb8678417a103 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 24 May 2018 18:11:03 -0500 Subject: [PATCH 252/947] boardfarm_config: open port 8080 for tinyproxy to qemu Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- boardfarm_config_example.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/boardfarm_config_example.json b/boardfarm_config_example.json index c699909d..8f239bf0 100644 --- a/boardfarm_config_example.json +++ b/boardfarm_config_example.json @@ -47,11 +47,12 @@ "type": "debian", "name": "lan", "pre_cmd_host": "docker build -t bft:node bft-node", - "cmd": "docker run --name lan-${uniq_id} --privileged -it bft:node /bin/bash", + "cmd": "docker run --name lan-${uniq_id} --privileged -p 8080:8080 -it bft:node /bin/bash", "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan-${uniq_id}) dev ${lan_iface}", "post_cmd": "ip link set ${lan_iface} name eth1", "cleanup_cmd": "docker stop lan-${uniq_id}; docker rm lan-${uniq_id}", - "color": "blue" + "color": "blue", + "http_proxy": "localhost:8080" } ], "connection_type": "local_serial", From b60869ce3bebdc6a1d622182d084314b20183dc4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 24 May 2018 18:11:44 -0500 Subject: [PATCH 253/947] tests: interact: reload test from disk before running And then we also don't exit if the test fails we just return to the interfact menu Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/interact.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/tests/interact.py b/tests/interact.py index e8e318e5..0f08c534 100644 --- a/tests/interact.py +++ b/tests/interact.py @@ -141,12 +141,17 @@ def runTest(self): board.sendline() board.sendline('echo \"1 1 1 7\" > /proc/sys/kernel/printk') board.expect(prompt) - t = eval(test) - cls = t(self.config) - lib.common.test_msg("\n==================== Begin %s ====================" % cls.__class__.__name__) - cls.testWrapper() - lib.common.test_msg("\n==================== End %s ======================" % cls.__class__.__name__) - board.sendline() + try: + t = eval(test) + reload(sys.modules[t.__module__]) + cls = t(self.config) + lib.common.test_msg("\n==================== Begin %s ====================" % cls.__class__.__name__) + cls.testWrapper() + lib.common.test_msg("\n==================== End %s ======================" % cls.__class__.__name__) + board.sendline() + except: + lib.common.test_msg("Failed to find and/or run test, continuing..") + continue #except: # print("Unable to (re-)run specified test") From ed1bf4a0f68f7b687ef16f4d0f90410c000f5f85 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 24 May 2018 18:13:28 -0500 Subject: [PATCH 254/947] devices: debian: account for new config file for tinyproxy This could be in a different location, so let's just do both for now Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 7a5a79c4..230f212a 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -623,9 +623,9 @@ def start_lan_client(self, wan_gw=None): self.expect(self.prompt) self.sendline('nmap --version') self.expect(self.prompt) - self.sendline("sed -i 's/^Port 8888/Port 8080/' /etc/tinyproxy.conf") + self.sendline("sed -i 's/^Port 8888/Port 8080/' /etc/tinyproxy.conf /etc/tinyproxy/tinyproxy.conf") self.expect(self.prompt) - self.sendline("sed 's/#Allow/Allow/g' -i /etc/tinyproxy.conf") + self.sendline("sed 's/#Allow/Allow/g' -i /etc/tinyproxy.conf /etc/tinyproxy/tinyproxy.conf") self.expect(self.prompt) self.sendline('/etc/init.d/tinyproxy restart') self.expect('Restarting') From 3c7f2e092c5708b2542b98e47e3a64356e9fcefe Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 24 May 2018 18:15:25 -0500 Subject: [PATCH 255/947] devices: qemu: add lan gateway and network info Useful for tests that use this info, and just filling in missing info Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/qemu.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/devices/qemu.py b/devices/qemu.py index e43e8d1e..e567178d 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -11,6 +11,7 @@ import pexpect import atexit import os +import ipaddress class Qemu(openwrt_router.OpenWrtRouter): ''' @@ -21,6 +22,9 @@ class Qemu(openwrt_router.OpenWrtRouter): wan_iface = "eth0" lan_iface = "brlan0" + lan_network = ipaddress.IPv4Network(u"10.0.0.0/24") + lan_gateway = ipaddress.IPv4Address(u"10.0.0.1") + # allowed open ports (starting point, dns is on wan?) wan_open_ports = ['22', '53'] From f8161a54c4d2ed9ea2573731801e03200a138c98 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 24 May 2018 18:14:37 -0500 Subject: [PATCH 256/947] tests: lib: common: update firefox webdriver to use new proxy config The old way appears to no longer work, so let's use this new method for now Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/common.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/tests/lib/common.py b/tests/lib/common.py index 4acd572d..76ee73ad 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -97,22 +97,23 @@ def firefox_webproxy_driver(ipport): ''' Use this if you started web proxy on a machine connected to router's LAN. ''' - proxy = Proxy({ - 'proxyType': 'MANUAL', - 'httpProxy': ipport, - 'ftpProxy': ipport, - 'sslProxy': ipport, - 'noProxy': '' - }) - print("Attempting to open firefox via proxy %s" % ipport) + + ip, port = ipport.split(':') + profile = webdriver.FirefoxProfile() - profile.set_preference('network.http.phishy-userpass-length', 255) - driver = webdriver.Firefox(proxy=proxy, firefox_profile=profile) - caps = webdriver.DesiredCapabilities.FIREFOX - proxy.add_to_capabilities(caps) - #driver = webdriver.Remote(desired_capabilities=caps) + profile.set_preference("network.proxy.type", 1) + profile.set_preference("network.proxy.http", ip) + profile.set_preference("network.proxy.http_port", int(port)) + profile.set_preference("network.proxy.ftp", ip) + profile.set_preference("network.proxy.ftp_port", int(port)) + profile.set_preference("network.proxy.socks", ip) + profile.set_preference("network.proxy.socks_port", int(port)) + profile.set_preference("network.proxy.socks_remote_dns", True) + profile.update_preferences() + driver = webdriver.Firefox(firefox_profile=profile) driver.implicitly_wait(30) driver.set_page_load_timeout(30) + return driver def test_msg(msg): From 3609eefbfaedd3b8d74f97388721c6b481d4438f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 24 May 2018 18:17:35 -0500 Subject: [PATCH 257/947] tests: screenshot: add a test that starts firefox via selenium and takes a ss This has some external dependencies that are not added everywhere yet (e.q. requirements.txt) Install firefox: sudo apt install firefox Install geckodriver: curl -L https://github.com/mozilla/geckodriver/releases/download/v0.20.1/geckodriver-v0.20.1-linux64.tar.gz | tar -xz -C ~/bin/ Install Xvfb: sudo apt-get install xvfb Install pyvirtualdisplay: sudo pip install pyvirtualdisplay Update selenium: sudo pip install -U selenium Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/screenshot_gui.py | 53 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 tests/screenshot_gui.py diff --git a/tests/screenshot_gui.py b/tests/screenshot_gui.py new file mode 100644 index 00000000..40e6894c --- /dev/null +++ b/tests/screenshot_gui.py @@ -0,0 +1,53 @@ +# Copyright (c) 2015 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. + +import rootfs_boot +import lib +from devices import board, wan, lan, prompt + +from pyvirtualdisplay import Display +import pexpect +import os + +class ScreenshotGUI(rootfs_boot.RootFSBootTest): + '''Starts Firefox via a proxy to the LAN and takes a screenshot''' + def runTest(self): + display = Display(visible=0, size=(1366, 768)) + display.start() + + try: + if 'http_proxy' in lan.config: + proxy = lan.config['http_proxy'] + else: + ip = lan.config['ipaddr'] + lan.sendline('cat /proc/net/vlan/config') + lan.expect('eth1.*\|\s([0-9]+).*\|') + port = 8000 + int(lan.match.group(1)) + lan.expect(prompt) + proxy = "%s:%s" % (ip, port) + except: + raise Exception("No reasonable http proxy found, please add one to the board config") + + print("Using proxy %s" % proxy) + driver = lib.common.firefox_webproxy_driver(proxy) + driver.maximize_window() + print ("taking ss of http://%s" % board.lan_gateway) + driver.get("http://%s" % board.lan_gateway) + + # wait for possible redirects to settle down + url = driver.current_url + for i in range(10): + board.expect(pexpect.TIMEOUT, timeout=5) + if url == driver.current_url: + break + url = driver.current_url + board.expect(pexpect.TIMEOUT, timeout=10) + + # take screenshot + driver.save_screenshot(self.config.output_dir + os.sep + 'lan_portal.png') + + driver.close() From 36454859ce9b8ae991961c66d0d02bd5fa64b88c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 25 May 2018 13:45:44 -0500 Subject: [PATCH 258/947] devices: qemu: make stopping qemu more robust This prevents stale qemu's laying around Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/qemu.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/devices/qemu.py b/devices/qemu.py index e567178d..38f82e27 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -96,11 +96,26 @@ def temp_download(url): self.expect("SYSLINUX") self.logfile_read = output + atexit.register(self.kill_console_at_exit) + def run_cleanup_cmd(self): for f in self.cleanup_files: if os.path.isfile(f): os.remove(f) + def close(self, *args, **kwargs): + self.kill_console_at_exit() + return super(type(self), self).close(*args, **kwargs) + + def kill_console_at_exit(self): + try: + self.sendcontrol('a') + self.send('c') + self.sendline('q') + self.kill(signal.SIGKILL) + except: + pass + def wait_for_boot(self): pass From 1f1aeaeeaa1625e97b0ad7d0dea2c2680946ead5 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 25 May 2018 16:41:46 -0500 Subject: [PATCH 259/947] requirements: add pyvirtualdisplay This is used by tests that need a display, notably firefox/selinium tests Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index b4b55b33..7fdb5073 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,3 +13,4 @@ ipaddress easysnmp jira simplejson +pyvirtualdisplay From 70313943ae7eb9b09a11f91d31adc138407b6b31 Mon Sep 17 00:00:00 2001 From: Rachel Lei <rlei@libertyglobal.com> Date: Fri, 25 May 2018 17:26:18 -0700 Subject: [PATCH 260/947] devices: debian: support ipv6 dhcp srever This only starts a ipv6 server so far, it does not copy the provisioning files, it does not setup provisioning per device, it does not check the CMTS (or change the CMTS) to be in the right provisioning mode. Signed-of-by: Rachel Lei <rlei@libertyglobal.com> MSM: Various updates and comments added, reworked commit message Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 65 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index 230f212a..ae8154ea 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -389,6 +389,56 @@ def update_cmts_isc_dhcp_config(self, board_config): EOF''') self.expect(self.prompt) + # The board will ignore this unless the docsis-mac is set to ipv6 + # That needs to be done manually as well as copying any CM cfg files + # to the provisioner (e.g. still not fully automated) + self.sendline('''cat > /etc/dhcp/dhcpd6.conf << EOF +preferred-lifetime 7500; +option dhcp-renewal-time 3600; +option dhcp-rebinding-time 5400; +allow leasequery; +option dhcp6.name-servers 2001:4860:4860::8888; +option dhcp6.domain-search "test.example.com","example.com"; +option dhcp6.info-refresh-time 21600; +option dhcp6.ia_pd code 25 = { integer 32, integer 32, integer 32, integer 16, integer 16, integer 32, integer 32, integer 8, ip6-address}; +option dhcp6.gateway code 32003 = ip6-address; +option space docsis code width 2 length width 2 hash size 100; +option docsis.tftp-servers code 32 = array of ip6-address; +option docsis.configuration-file code 33 = text; +option docsis.syslog-servers code 34 = array of ip6-address; +#option docsis.device-id code 36 = string; +option docsis.time-servers code 37 = array of ip6-address; +option docsis.time-offset code 38 = signed integer 32; +option vsio.docsis code 4491 = encapsulate docsis; + +subnet6 2001:ed8:77b5:3::/64 { + range6 2001:ed8:77b5:3::10 2001:ed8:77b5:3::100; + interface eth1; + option docsis.tftp-servers 2001:ed8:77b5:3::101; + option docsis.time-servers 2001:ed8:77b5:3::101; + option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; + option docsis.syslog-servers 2001:ed8:77b5:3::101 ; + option docsis.time-offset 5000; +} +subnet6 2001:ed8:77b5:2000::/64 { + range6 2001:ed8:77b5:2000::10 2001:ed8:77b5:2000::100; + interface eth1; + option docsis.tftp-servers 2001:ed8:77b5:3::101; + option docsis.time-servers 2001:ed8:77b5:3::101; + option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; + option docsis.syslog-servers 2001:ed8:77b5:3::101; + option docsis.time-offset 5000; +} +subnet6 2001:ed8:77b5:2001::/64 { + range6 2001:ed8:77b5:2001::10 2001:ed8:77b5:2001::100; + interface eth1; + option dhcp6.ia_pd 1234 20000 40000 26 25 30000 60000 64 2001:ed8:77b5:4::; + option dhcp6.solmax-rt 240; + option dhcp6.inf-max-rt 360; +} +EOF''') + self.expect(self.prompt) + self.sendline('rm /etc/dhcp/dhcpd.conf.''' + board_config['station']) self.expect(self.prompt) @@ -412,6 +462,8 @@ def update_cmts_isc_dhcp_config(self, board_config): self.expect(self.prompt) self.sendline("echo '}' >> %s" % cfg_file) + # TODO: extra per board dhcp6 provisioning + # combine all configs into one self.sendline("cat /etc/dhcp/dhcpd.conf.* >> /etc/dhcp/dhcpd.conf") self.expect(self.prompt) @@ -445,14 +497,25 @@ def provision_board(self, board_config): self.expect(self.prompt) self.sendline('ifconfig eth1 %s' % self.gw) self.expect(self.prompt) + self.sendline('ifconfig eth1 inet6 add 2001:ed8:77b5:3::101/64') + self.expect(self.prompt) # TODO: specify these via config self.sendline('ip route add 192.168.201.0/24 via 192.168.3.222') self.expect(self.prompt) self.sendline('ip route add 192.168.200.0/24 via 192.168.3.222') self.expect(self.prompt) + self.sendline('ip -6 route add 2001:ed8:77b5:2000::/64 via 2001:ed8:77b5:3::222 dev eth1 metric 1024') + self.expect(self.prompt) + self.sendline('ip -6 route add 2001:ed8:77b5:2001::/64 via 2001:ed8:77b5:3::222 dev eth1 metric 1024') + self.expect(self.prompt) + self.sendline('ip addr show eth1') + if 0 == self.expect(['dadfailed'] + self.prompt): + raise Exception("ipv6 duplicate address detection triggered!") self.update_cmts_isc_dhcp_config(board_config) self.sendline('/etc/init.d/isc-dhcp-server start') - self.expect(['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*']) + # We expect both, so we need debian 9 or greater for this device + self.expect('Starting ISC DHCPv4 server.*dhcpd.') + self.expect('Starting ISC DHCPv6 server.*dhcpd.') self.expect(self.prompt) # this might be redundant, but since might not have a tftpd server running From 91199191834467ca4d57ef13972f835066a7d13f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 14 Jun 2018 11:46:19 -0700 Subject: [PATCH 261/947] devices: dell_switch: don't make port 36 private This is just an example config, but don't make this port private for now Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/dell_switch.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/devices/dell_switch.py b/devices/dell_switch.py index 9a45a63a..6e99c29c 100644 --- a/devices/dell_switch.py +++ b/devices/dell_switch.py @@ -110,8 +110,6 @@ def save_running_to_startup_config(self): dell_switch.configure_basic_settings() for i in range(1, 42+1): dell_switch.configure_eth_private_port(i) - for i in range(200,210+1): - dell_switch.configure_eth_private_port(36, override_vlan=i) for i in range(43, 48+1): dell_switch.configure_eth_trunk_port(i) From d757eeb8f031dcd87735250db5938d5bfa627c30 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 14 Jun 2018 09:53:29 -0700 Subject: [PATCH 262/947] devices: casa_cmts: update to use connection decider This waits properly for various connection methods to be established before attempting to run commands Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/casa_cmts.py | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 494c8b06..13730a9a 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -10,6 +10,7 @@ import sys import base import re +import connection_decider class CasaCMTS(base.BaseDevice): ''' @@ -20,26 +21,29 @@ class CasaCMTS(base.BaseDevice): def __init__(self, conn_cmd, + connection_type="local_serial", password='casa'): - pexpect.spawn.__init__(self, '/bin/bash', args=['-c', conn_cmd]) + self.connection = connection_decider.connection(connection_type, device=self, conn_cmd=conn_cmd) + self.connection.connect() self.logfile_read = sys.stdout self.password = password def connect(self): - for i in range(10): + try: + self.sendline('q') self.sendline('exit') - if 0 == self.expect([pexpect.TIMEOUT] + self.prompt, timeout=5): - self.sendline('enable') - if 0 == self.expect(['Password:'] + self.prompt): - self.sendline(self.password) - self.expect(self.prompt) - self.sendline('config') + self.expect([pexpect.TIMEOUT] + self.prompt, timeout=5) + self.sendline('enable') + if 0 == self.expect(['Password:'] + self.prompt): + self.sendline(self.password) self.expect(self.prompt) - self.sendline('page-off') - self.expect(self.prompt) - return - - raise Exception("Unable to get prompt on CASA device") + self.sendline('config') + self.expect(self.prompt) + self.sendline('page-off') + self.expect(self.prompt) + return + except: + raise Exception("Unable to get prompt on CASA device") def reset(self): self.sendline('exit') @@ -273,7 +277,12 @@ def del_file(self, f): if __name__ == '__main__': import time - cmts = CasaCMTS(sys.argv[1]) + if 'telnet' in sys.argv[1]: + connection_type = "ser2net" + else: + connection_type = "local_serial" + + cmts = CasaCMTS(sys.argv[1], connection_type=connection_type) cmts.connect() # TODO: example for now, need to parse args From 7b082f4557384a0cc4790d8cca1eba67c84533ca Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 14 Jun 2018 10:26:59 -0700 Subject: [PATCH 263/947] devices: debian: bypass DAD errors for now We are using 4 gige link to our switch for our devices. We will get DAD failures (dupliate address detection) if the switch is not configured to do LAG properly. We need to revist the switch config to fix this issue but to unblock ipv6 we do this for now Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index ae8154ea..45a6396d 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -495,6 +495,9 @@ def provision_board(self, board_config): self.expect(self.prompt) self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') self.expect(self.prompt) + # we are bypass this for now (see http://patchwork.ozlabs.org/patch/117949/) + self.sendline('sysctl -w net.ipv6.conf.eth1.accept_dad=0') + self.expect(self.prompt) self.sendline('ifconfig eth1 %s' % self.gw) self.expect(self.prompt) self.sendline('ifconfig eth1 inet6 add 2001:ed8:77b5:3::101/64') @@ -508,9 +511,6 @@ def provision_board(self, board_config): self.expect(self.prompt) self.sendline('ip -6 route add 2001:ed8:77b5:2001::/64 via 2001:ed8:77b5:3::222 dev eth1 metric 1024') self.expect(self.prompt) - self.sendline('ip addr show eth1') - if 0 == self.expect(['dadfailed'] + self.prompt): - raise Exception("ipv6 duplicate address detection triggered!") self.update_cmts_isc_dhcp_config(board_config) self.sendline('/etc/init.d/isc-dhcp-server start') # We expect both, so we need debian 9 or greater for this device From aece88656be9185a118b855342c795c7b7f614d0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 15 Jun 2018 06:36:08 -0700 Subject: [PATCH 264/947] bft: add ability for test to specific results to log to file Make a generic way for tests to save results to a file. This is an example how to use this: import rootfs_boot import pexpect from devices import board, wan, lan, wlan, prompt class FooBar(rootfs_boot.RootFSBootTest): def runTest(self): board.expect(pexpect.TIMEOUT, timeout=5) self.log_to_file = "WRITE THIS TO FILE" Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/bft b/bft index 1ee3d137..584341af 100755 --- a/bft +++ b/bft @@ -452,6 +452,14 @@ def main(): print(e) print("Unable to log results to mysql database.") + for t in tests_to_run: + if hasattr(t, 'log_to_file'): + filename = type(t).__name__ + '-' + time.strftime("%Y%m%d-%H%M%S") + ".txt" + testtime = t.stop_time - t.start_time + with open(os.path.join(config.output_dir, filename), 'w') as log: + log.write(t.log_to_file) + log.write('\n%s test result: %s' % (type(t).__name__, t.result_grade)) + log.write('\nTotal test time: %s seconds\n' % testtime) if __name__ == '__main__': main() From 904a2f586a11e65e2d4ef911a8302a724809cf56 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 19 Jun 2018 11:04:03 -0700 Subject: [PATCH 265/947] bft: add warning about missing name on devices These are required, since we import them into the test namespace. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bft b/bft index 584341af..40155d0a 100755 --- a/bft +++ b/bft @@ -104,6 +104,8 @@ def setup_dynamic_devices(config, env=None): dyn_dev = get_device(device['type'], **device) if dyn_dev is not None: + if 'name' not in device: + raise Exception("Device in config is not named! This is required") setattr(config, device['name'], dyn_dev) config.devices.append(device['name']) continue From 83024e54de9282faba650da3534691e52411cb87 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 19 Jun 2018 11:06:16 -0700 Subject: [PATCH 266/947] devices: casa_cmts: allow casa cmts to be created as a boardfarm device We can now connect to our CASA CMTS as a device for each board: "locations": "sunnyvale-cmts1": { "devices": [ { "naem": "cmts", "type": "casa_cmts", "conn_cmd": "telnet 172.19.17.136" } ] } } } Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/casa_cmts.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 13730a9a..f8d51d91 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -18,11 +18,19 @@ class CasaCMTS(base.BaseDevice): ''' prompt = ['CASA-C3200>', 'CASA-C3200#', 'CASA-C3200\(.*\)#'] + model = "casa_cmts" def __init__(self, - conn_cmd, - connection_type="local_serial", - password='casa'): + *args, + **kwargs): + conn_cmd = kwargs.get('conn_cmd', None) + connection_type = kwargs.get('connection_type', 'local_serial') + password = kwargs.get('password', 'casa') + + if conn_cmd is None: + # TODO: try to parse from ipaddr, etc + raise Exception("No command specified to connect to Casa CMTS") + self.connection = connection_decider.connection(connection_type, device=self, conn_cmd=conn_cmd) self.connection.connect() self.logfile_read = sys.stdout @@ -282,7 +290,7 @@ def del_file(self, f): else: connection_type = "local_serial" - cmts = CasaCMTS(sys.argv[1], connection_type=connection_type) + cmts = CasaCMTS(conn_cmd=sys.argv[1], connection_type=connection_type) cmts.connect() # TODO: example for now, need to parse args From c37b4755e48e76f420ac7dc405971b84d595e0a8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 19 Jun 2018 11:21:57 -0700 Subject: [PATCH 267/947] devices: casa_cmts: allow device to connect over serial or telnet Minor fixes for handling serial connection and telnet at the same time Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/casa_cmts.py | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index f8d51d91..68c6b389 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -25,22 +25,30 @@ def __init__(self, **kwargs): conn_cmd = kwargs.get('conn_cmd', None) connection_type = kwargs.get('connection_type', 'local_serial') - password = kwargs.get('password', 'casa') + self.username = kwargs.get('username', 'root') + self.password = kwargs.get('password', 'casa') if conn_cmd is None: # TODO: try to parse from ipaddr, etc raise Exception("No command specified to connect to Casa CMTS") self.connection = connection_decider.connection(connection_type, device=self, conn_cmd=conn_cmd) - self.connection.connect() self.logfile_read = sys.stdout - self.password = password + self.connection.connect() def connect(self): try: - self.sendline('q') - self.sendline('exit') - self.expect([pexpect.TIMEOUT] + self.prompt, timeout=5) + if 0 == self.expect(['login:', pexpect.TIMEOUT], timeout=3): + self.sendline(self.username) + self.expect('assword:') + self.sendline(self.password) + self.expect(self.prompt) + else: + # Over telnet we come in at the right prompt + # over serial it could be stale so we try to recover + self.sendline('q') + self.sendline('exit') + self.expect([pexpect.TIMEOUT] + self.prompt, timeout=5) self.sendline('enable') if 0 == self.expect(['Password:'] + self.prompt): self.sendline(self.password) @@ -285,11 +293,7 @@ def del_file(self, f): if __name__ == '__main__': import time - if 'telnet' in sys.argv[1]: - connection_type = "ser2net" - else: - connection_type = "local_serial" - + connection_type = "local_cmd" cmts = CasaCMTS(conn_cmd=sys.argv[1], connection_type=connection_type) cmts.connect() From 67b30a2d4ca48f291af561d8698a10c6c7e5e20e Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 20 Jun 2018 14:24:43 -0700 Subject: [PATCH 268/947] devices: debian: update apt cache before running commands Otherwise it will grow stale and the apt-get install can fail because mirrors have moved around, etc Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index 45a6396d..85be4dc6 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -489,7 +489,7 @@ def copy_cmts_provisioning_files(self, board_config): def provision_board(self, board_config): ''' Setup DHCP and time server etc for CM provisioning''' - self.sendline('apt-get -o DPkg::Options::="--force-confnew" -qy install isc-dhcp-server xinetd') + self.sendline('apt-get update && apt-get -o DPkg::Options::="--force-confnew" -qy install isc-dhcp-server xinetd') self.expect(self.prompt) self.sendline('/etc/init.d/isc-dhcp-server stop') self.expect(self.prompt) From ef16ac4a61d2060e382fb6e9109fd736aaa757c0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 20 Jun 2018 14:27:43 -0700 Subject: [PATCH 269/947] devices: debian: set dhcp iface for newer isc dhcp server These fields change some, so let's try to set them all Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index 85be4dc6..e9aebd1e 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -495,6 +495,10 @@ def provision_board(self, board_config): self.expect(self.prompt) self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') self.expect(self.prompt) + self.sendline('sed s/INTERFACESv4=.*/INTERFACESv4=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') + self.expect(self.prompt) + self.sendline('sed s/INTERFACESv6=.*/INTERFACESv6=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') + self.expect(self.prompt) # we are bypass this for now (see http://patchwork.ozlabs.org/patch/117949/) self.sendline('sysctl -w net.ipv6.conf.eth1.accept_dad=0') self.expect(self.prompt) @@ -543,6 +547,10 @@ def setup_dhcp_server(self): self.expect(self.prompt) self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') self.expect(self.prompt) + self.sendline('sed s/INTERFACESv4=.*/INTERFACESv4=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') + self.expect(self.prompt) + self.sendline('sed s/INTERFACESv6=.*/INTERFACESv6=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') + self.expect(self.prompt) self.sendline('cat > /etc/dhcp/dhcpd.conf << EOF') self.sendline('ddns-update-style none;') self.sendline('option domain-name "bigfoot-test";') From e9d740d8de9474155e32c4dbc9f9a8aee11f2d6e Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 20 Jun 2018 14:28:19 -0700 Subject: [PATCH 270/947] devices: debian: try harder to make sure xinetd is configured right Set flags right, make sure we get info about it starting and not just the next prompt Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index e9aebd1e..8d3ad958 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -530,7 +530,10 @@ def provision_board(self, board_config): self.sendline("sed 's/disable\\t\\t= yes/disable\\t\\t= no/g' -i /etc/xinetd.d/time") self.expect(self.prompt) + self.sendline("grep -q flags.*=.*IPv6 /etc/xinetd.d/time || sed '/wait.*=/a \\tflags\t\t= IPv6' -i /etc/xinetd.d/time") + self.expect(self.prompt) self.sendline('/etc/init.d/xinetd restart') + self.expect('Starting internet superserver: xinetd.') self.expect(self.prompt) def reprovision_board(self, board_config): From a4b8941a5ac764546b87b2f95b2ce4e5c22ac7c1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Jun 2018 12:26:39 -0700 Subject: [PATCH 271/947] devices: debian: fix sed issue in setting timeserver config Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index 8d3ad958..e0ab3c64 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -530,7 +530,7 @@ def provision_board(self, board_config): self.sendline("sed 's/disable\\t\\t= yes/disable\\t\\t= no/g' -i /etc/xinetd.d/time") self.expect(self.prompt) - self.sendline("grep -q flags.*=.*IPv6 /etc/xinetd.d/time || sed '/wait.*=/a \\tflags\t\t= IPv6' -i /etc/xinetd.d/time") + self.sendline("grep -q flags.*=.*IPv6 /etc/xinetd.d/time || sed '/wait.*=/a\\\\tflags\\t\\t= IPv6' -i /etc/xinetd.d/time") self.expect(self.prompt) self.sendline('/etc/init.d/xinetd restart') self.expect('Starting internet superserver: xinetd.') From a60be75d587c9b3c4622ff0a1a7a0fe8d470a695 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 22 Jun 2018 21:26:26 -0500 Subject: [PATCH 272/947] tests: bittorrent: add a basic test to simulate bittorrent Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- requirements.txt | 1 + tests/bittorrent.py | 69 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 tests/bittorrent.py diff --git a/requirements.txt b/requirements.txt index 7fdb5073..390fff6a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,3 +14,4 @@ easysnmp jira simplejson pyvirtualdisplay +Faker diff --git a/tests/bittorrent.py b/tests/bittorrent.py new file mode 100644 index 00000000..00b05a1c --- /dev/null +++ b/tests/bittorrent.py @@ -0,0 +1,69 @@ +# Copyright (c) 2018 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. + +import re +import rootfs_boot +from devices import board, wan, lan, prompt + +import random +import socket +import struct +import ipaddress +from faker import Factory + +fake_generator = Factory.create() + +class BitTorrentBasic(rootfs_boot.RootFSBootTest): + '''Super basic simulate of bittorrent traffic''' + def runTest(self): + #lan.sendline('apt-get update && apt-get -o Dpkg::Options::="--force-confnew" -y install socat') + #lan.expect(prompt) + + self.all_ips = [] + + # TODO: query interfaces but this is OK for now + bad_nets = list(ipaddress.ip_network(u"192.168.0.0/24")) + \ + list(ipaddress.ip_network(u"192.168.1.0/24")) + \ + list(ipaddress.ip_network(u"10.200.150.0/24")) + + for i in range(1000): + while True: + random_ip = fake_generator.ipv4() + if ipaddress.ip_address(random_ip.decode()) not in bad_nets: + if ipaddress.ip_address(random_ip.decode()) not in self.all_ips: + break + else: + print ("Skipping ip addr: %s" % random_ip) + random_port = random.randint(1024, 65535) + print("Connecting to %s:%s" % (random_ip, random_port)) + + self.all_ips.append(random_ip) + + # start listners + wan.sendline('ip addr add %s/32 dev eth1' % random_ip) + wan.expect(prompt) + + # this listens on this port on all ips, so we probably want unique ports too + wan.sendline('nc -w5 -ulp %s > /dev/null &' % random_port) + + args = (random.randint(64, 1073741824), random_ip, random_port) + lan.sendline('(echo d1:ad2:id20:; head -c %s < /dev/urandom) | nc -u %s %s &' % args) + lan.expect(prompt) + + lan.sendline('wait', timeout=120) + lan.expect(prompt) + self.recover() + + def recover(self): + for ip in self.all_ips: + wan.sendline('ip addr del %s/32 dev eth1' % ip) + wan.expect(prompt) + + wan.sendline('killall nc') + wan.expect(prompt) + lan.sendline('killall nc') + lan.expect(prompt) From 46b30be05b73cf3dd5196dfb1236ddef5f5552b0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 25 Jun 2018 09:14:59 -0500 Subject: [PATCH 273/947] devices: debian: kill nc after test nc can get stuck, even if it works and lead to a timeout, so let's send a control-c over and recover the prompt Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index e0ab3c64..d8e3357b 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -721,6 +721,8 @@ def start_lan_client(self, wan_gw=None): self.sendline('nc %s 22 -w 1' % self.lan_gateway) self.expect_exact('nc %s 22 -w 1' % self.lan_gateway) if 0 == self.expect(['SSH'] + self.prompt, timeout=5): + self.sendcontrol('c') + self.expect(self.prompt) self.sendline('[ -e /root/.ssh/id_rsa ] || ssh-keygen -N "" -f /root/.ssh/id_rsa') if 0 != self.expect(['Protocol mismatch.'] + self.prompt): self.sendline('scp ~/.ssh/id_rsa.pub %s:/etc/dropbear/authorized_keys' % self.lan_gateway) @@ -732,6 +734,9 @@ def start_lan_client(self, wan_gw=None): except: pass self.expect(self.prompt) + else: + self.sendcontrol('c') + self.expect(self.prompt) if wan_gw is not None and 'options' in self.config and \ 'lan-fixed-route-to-wan' in self.config['options']: From b28d4929c38a902acf17e7fd1656605bd610433d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Jun 2018 05:54:24 -0700 Subject: [PATCH 274/947] devices: owrt: add default implementation of getting dns server Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 0864e3dc..8e5b87a4 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -489,6 +489,9 @@ def wait_for_mounts(self): else: print("WARN: Overlay still not mounted") + def get_dns_server(self): + return "%s" % lan_gateway + if __name__ == '__main__': # Example use From 0f2a1e2bfc6e4f86684983c1f7ec2b06ac7cb359 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Jun 2018 05:57:40 -0700 Subject: [PATCH 275/947] devices: owrt: set default to no CMTS This basically will mean that the WAN and the device are not directly connected. Some tests will need to query other configuration values that are TBD when this flag is set. This is off by default Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 1 + 1 file changed, 1 insertion(+) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 8e5b87a4..c8269b42 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -43,6 +43,7 @@ class OpenWrtRouter(base.BaseDevice): wan_iface = "eth0" tftp_server_int = None flash_meta_booted = False + has_cmts = False uboot_net_delay = 30 From 9f114bc64b1a29629595e9528b49da14f7f838ec Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Jun 2018 05:59:55 -0700 Subject: [PATCH 276/947] tests: cdrouter: parse config from default value and look in overlays Make add board specific config more robust. We now look in the overlay and we can take a default value from the devices class if not is specfied as an env var or on the config Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 1 + tests/cdrouter_bootstrap.py | 22 +++++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index c8269b42..5f013318 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -44,6 +44,7 @@ class OpenWrtRouter(base.BaseDevice): tftp_server_int = None flash_meta_booted = False has_cmts = False + cdrouter_config = None uboot_net_delay = 30 diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index fa7a326b..0a67c0ed 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -104,8 +104,28 @@ def runTest(self): contents=contents + """ testvar lanVlanId """ + lan.vlan + def add_cdrouter_config(config): + cdr_conf = None + + # TODO: make a generic helper to search path and overlays + if os.path.isfile(config): + cdr_conf = open(config, 'r').readlines() + elif 'BFT_OVERLAY' in os.environ: + for p in os.environ['BFT_OVERLAY'].split(' '): + try: + cdr_conf = open(os.path.join(p, config), 'r').readlines() + except: + continue + else: + break + + return "\n" + "".join(cdr_conf) + + # Take config from overall config, but fallback to board config if self.config.cdrouter_config is not None: - contents=contents + "\n" + "".join(open(self.config.cdrouter_config, 'r').readlines()) + contents = contents + add_cdrouter_config(self.config.cdrouter_config) + elif board.cdrouter_config is not None: + contents = contents + add_cdrouter_config(board.cdrouter_config) if self.extra_config: contents=contents + "\n" + self.extra_config.replace(',', '\n') From 7f2719b699b95888f99648fe378a0c27526262c5 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Jun 2018 06:01:47 -0700 Subject: [PATCH 277/947] tests: cdrouter: don't take wan down if using CMTS This is in a shared environment now, so we don't have to take this down. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/cdrouter_bootstrap.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 0a67c0ed..7264cadc 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -39,9 +39,12 @@ def runTest(self): if self.cdrouter_server is None: self.skipTest("No cdrouter server specified") - for d in [wan, lan]: - d.sendline('ifconfig eth1 down') - d.expect(prompt) + lan.sendline('ifconfig eth1 down') + lan.expect(prompt) + + if not board.has_cmts: + wan.sendline('ifconfig eth1 down') + wan.expect(prompt) board.sendcontrol('c') board.expect(prompt) From 22e3ee55b17327a2314ea407b592ab5bfdd4b563 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Jun 2018 06:03:06 -0700 Subject: [PATCH 278/947] tests: cdrouter: update config for using CMTS This is the extra required config needed to run CDrouter on a CMTS in shared mode. Many of these values need to be moved into a config instead of hard coded ip addreses (or queried dynamically). That will come in followup changes Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/cdrouter_bootstrap.py | 43 ++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 7264cadc..ced3871a 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -53,23 +53,23 @@ def runTest(self): c = CDRouter(self.cdrouter_server) # If alt mac addr is specified in config, use that.. - # This is used when a CMTS for example is placed between - # the device under test and the WAN + # CMTS = we route so no wan mac is used wandutmac = None - for device in self.config.board['devices']: - if device['name'] == 'wan': - if 'alt_macaddr' in device: - wandutmac = device['alt_macaddr'] - break + if not board.has_cmts: + for device in self.config.board['devices']: + if device['name'] == 'wan': + if 'alt_macaddr' in device: + wandutmac = device['alt_macaddr'] + break - # Otherwise grab this from the device interface - if wandutmac is None: - board.sendline('ifconfig %s' % board.wan_iface) - board.expect('([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})') - wandutmac = board.match.group() - board.expect(prompt) + # Otherwise grab this from the device interface + if wandutmac is None: + board.sendline('ifconfig %s' % board.wan_iface) + board.expect('([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})') + wandutmac = board.match.group() + board.expect(prompt) - print ("Using %s for WAN mac address" % wandutmac) + print ("Using %s for WAN mac address" % wandutmac) lan.vlan = wan.vlan = 0 for device in self.config.board['devices']: @@ -93,7 +93,8 @@ def runTest(self): # TODO: move wan and lan interface to bft config? contents=""" testvar wanInterface """ + self.config.cdrouter_wan_iface - contents=contents +""" + if wandutmac is not None: + contents=contents +""" testvar wanDutMac """ + wandutmac if wan.vlan != 0: @@ -107,6 +108,18 @@ def runTest(self): contents=contents + """ testvar lanVlanId """ + lan.vlan + if board.has_cmts: + wan_ip = board.get_interface_ipaddr(board.erouter_iface) + contents=contents + """ +testvar wanMode static +testvar wanIspIp 192.168.3.2 +testvar wanIspGateway 192.168.3.1 +testvar wanIspMask 255.255.255.0 +testvar wanIspAssignIp %s +testvar wanNatIp %s +testvar IPv4HopCount 2 +testvar lanDnsServer %s""" % (wan_ip, wan_ip, board.get_dns_server()) + def add_cdrouter_config(config): cdr_conf = None From 707904f47f77c4997299668eb41cf4816f10de60 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Jun 2018 10:32:01 -0700 Subject: [PATCH 279/947] tests: cdrouter: wait for network to come back up after reset Since CDrouter does test the network and all... Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/cdrouter_bootstrap.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index ced3871a..2ba86d80 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -162,6 +162,8 @@ def add_cdrouter_config(config): board.expect('reboot: Restarting system') except: board.reset() + board.wait_for_linux() + board.wait_for_network() self.start_time = time.time() j = c.jobs.launch(Job(package_id=p.id)) From 6005dbc6501a4dfe17bebd062bf70a97218d949b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Jun 2018 11:49:43 -0700 Subject: [PATCH 280/947] tests: cdrouter: reorder board reset and parsing config from board When running CDrouter with a CMTS, we need to get the interface ip for the CM so we can tell CDrouter how to route traffic to that device. Well, when we reboot it we have to wait until that device comes up. This reorders things, and adds some extra checks for waiting to get the correct info from the board without failing with an error Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/cdrouter_bootstrap.py | 50 ++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 2ba86d80..8f97ded2 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -52,6 +52,14 @@ def runTest(self): # TODO: make host configurable in bft config? c = CDRouter(self.cdrouter_server) + try: + board.sendline('reboot') + board.expect('reboot: Restarting system') + except: + board.reset() + board.wait_for_linux() + board.wait_for_network() + # If alt mac addr is specified in config, use that.. # CMTS = we route so no wan mac is used wandutmac = None @@ -108,18 +116,6 @@ def runTest(self): contents=contents + """ testvar lanVlanId """ + lan.vlan - if board.has_cmts: - wan_ip = board.get_interface_ipaddr(board.erouter_iface) - contents=contents + """ -testvar wanMode static -testvar wanIspIp 192.168.3.2 -testvar wanIspGateway 192.168.3.1 -testvar wanIspMask 255.255.255.0 -testvar wanIspAssignIp %s -testvar wanNatIp %s -testvar IPv4HopCount 2 -testvar lanDnsServer %s""" % (wan_ip, wan_ip, board.get_dns_server()) - def add_cdrouter_config(config): cdr_conf = None @@ -146,6 +142,28 @@ def add_cdrouter_config(config): if self.extra_config: contents=contents + "\n" + self.extra_config.replace(',', '\n') + if board.has_cmts: + for i in range(5): + try: + wan_ip = board.get_interface_ipaddr(board.erouter_iface) + except: + board.expect(pexpect.TIMEOUT, timeout=15) + continue + else: + if i == 4: + raise Exception("Failed to get erouter ip address") + break + + contents=contents + """ +testvar wanMode static +testvar wanIspIp 192.168.3.2 +testvar wanIspGateway 192.168.3.1 +testvar wanIspMask 255.255.255.0 +testvar wanIspAssignIp %s +testvar wanNatIp %s +testvar IPv4HopCount 2 +testvar lanDnsServer %s""" % (wan_ip, wan_ip, board.get_dns_server()) + print("Using below for config:") print(contents) print("#######################") @@ -157,14 +175,6 @@ def add_cdrouter_config(config): testlist=self.tests, config_id=cfg.id)) - try: - board.sendline('reboot') - board.expect('reboot: Restarting system') - except: - board.reset() - board.wait_for_linux() - board.wait_for_network() - self.start_time = time.time() j = c.jobs.launch(Job(package_id=p.id)) From 28ebf632a6338fed73e915ef0df62943d53b72c4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Jun 2018 11:56:06 -0700 Subject: [PATCH 281/947] devices: rpi3: add cdrouter conf file for rpi3 Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/rpi.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/rpi.py b/devices/rpi.py index f79f6768..93fd82b7 100644 --- a/devices/rpi.py +++ b/devices/rpi.py @@ -39,6 +39,8 @@ class RPI(openwrt_router.OpenWrtRouter): flash_meta_booted = True + cdrouter_config = "configs/cdrouter-rdkb.conf" + def flash_uboot(self, uboot): '''In this case it's flashing the vfat partition of the bootload. Need to have that image u-boot and serial turned on via dtoverlay From 40a492eca864f3c1644bb7a02821d77afc081808 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Jun 2018 13:59:47 -0700 Subject: [PATCH 282/947] tests: cdrouter: add some default routes for cdrouter services This is just one route that CDrouter uses to run tests, we need to add the rest later Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/cdrouter_bootstrap.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 8f97ded2..69b2ceb9 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -62,8 +62,13 @@ def runTest(self): # If alt mac addr is specified in config, use that.. # CMTS = we route so no wan mac is used + # if we route, we need to add routes wandutmac = None - if not board.has_cmts: + if board.has_cmts: + # TODO: there are more missing ones + wan.sendline('ip route add 200.0.0.0/8 via 192.168.3.2') + wan.expect(prompt) + else: for device in self.config.board['devices']: if device['name'] == 'wan': if 'alt_macaddr' in device: @@ -273,6 +278,11 @@ def add_cdrouter_config(config): self.recover() def recover(self): + if board.has_cmts: + # TODO: there are more missing ones (see above) + wan.sendline('ip route del 200.0.0.0/8 via 192.168.3.2') + wan.expect(prompt) + if hasattr(self, 'results'): r = self.results.get(self.job_id) From 4d35c23cf1580969885ae3a087c9505ccecbe63b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 28 Jun 2018 15:36:24 -0500 Subject: [PATCH 283/947] travis: update image to point at RDK-B qemu image We can also enable networking since this will route traffic between the WAN and LAN devices Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index a6362b3a..2faabd61 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,7 +14,7 @@ before_install: script: - ./bft -l - ./bft -i - - yes | ./bft -b qemux86 -r https://autobuilder.yocto.io/pub/releases/yocto-2.4.2/machines/genericx86/core-image-minimal-genericx86.wic -k https://autobuilder.yocto.io/pub/releases/yocto-2.4.2/machines/genericx86/bzImage-genericx86.bin -z -y + - yes | ./bft -b qemux86 -r https://www.dropbox.com/s/ydgqcjz3wy5v0pm/X86EMLTRBB_default_20180627181048.vmdk?dl=0 -y - grep tests_fail...0, results/test_results.json after_failure: - - yes | BFT_DEBUG=y ./bft -b qemux86 -r https://autobuilder.yocto.io/pub/releases/yocto-2.4.2/machines/genericx86/core-image-minimal-genericx86.wic -k https://autobuilder.yocto.io/pub/releases/yocto-2.4.2/machines/genericx86/bzImage-genericx86.bin -z -y + - yes | BFT_DEBUG=y ./bft -b qemux86 -r https://www.dropbox.com/s/ydgqcjz3wy5v0pm/X86EMLTRBB_default_20180627181048.vmdk?dl=0 -y From 0d10c2da04b2c2105f4e1321651e01290e439b9b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 28 Jun 2018 15:51:35 -0500 Subject: [PATCH 284/947] devices: qemu: give even more time for non-kvm qemu runs These can be really slow, especially on a shared instance such as travis ci Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/qemu.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/devices/qemu.py b/devices/qemu.py index 38f82e27..8cb78e0b 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -29,6 +29,7 @@ class Qemu(openwrt_router.OpenWrtRouter): wan_open_ports = ['22', '53'] cleanup_files = [] + kvm = False def __init__(self, model, @@ -87,6 +88,7 @@ def temp_download(url): kvm_chk = pexpect.spawn('sudo kvm-ok') if 0 != kvm_chk.expect(['KVM acceleration can be used', pexpect.EOF]): cmd = cmd.replace('--enable-kvm ', '') + self.kvm = True # spawn a simple bash shell for now, will launch qemu later self.cmd = cmd @@ -129,9 +131,16 @@ def flash_linux(self, KERNEL): pass def wait_for_linux(self): - self.expect('login:') + if self.kvm: + self.expect('login:', timeout=60) + else: + self.expect('login:') self.sendline('root') - self.expect(self.prompt, timeout=60) # long for non-kvm qemu + if self.kvm: + tout = 60 + else: + tout = 180 + self.expect(self.prompt, timeout=tout) def boot_linux(self, rootfs=None, bootargs=None): pass From 09415304117ed76f441153f72a34b8d68911f9c1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 28 Jun 2018 16:13:29 -0500 Subject: [PATCH 285/947] tests: rootfs_boot: remove requirement router has been up 30 seconds Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/rootfs_boot.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 44a5dd65..09cebf7b 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -160,7 +160,6 @@ def boot(self, reflash=True): print("\nThe router has been up %s seconds." % end_seconds_up) if self.config.setup_device_networking: assert end_seconds_up > linux_booted_seconds_up - assert end_seconds_up > 30 self.logged['boot_time'] = end_seconds_up From 4bf8427d68a3103e00695495c02e678cbbfc0225 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 27 Jun 2018 15:30:36 -0500 Subject: [PATCH 286/947] boardfarm_config: switch to a less commonly used port for default proxy This is just an example but let's increase the likelyhood of it working. Switch the port from 8080 to 9909 Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- boardfarm_config_example.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/boardfarm_config_example.json b/boardfarm_config_example.json index 8f239bf0..7448ce15 100644 --- a/boardfarm_config_example.json +++ b/boardfarm_config_example.json @@ -47,12 +47,12 @@ "type": "debian", "name": "lan", "pre_cmd_host": "docker build -t bft:node bft-node", - "cmd": "docker run --name lan-${uniq_id} --privileged -p 8080:8080 -it bft:node /bin/bash", + "cmd": "docker run --name lan-${uniq_id} --privileged -p 9909:9909 -it bft:node /bin/bash", "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan-${uniq_id}) dev ${lan_iface}", "post_cmd": "ip link set ${lan_iface} name eth1", "cleanup_cmd": "docker stop lan-${uniq_id}; docker rm lan-${uniq_id}", "color": "blue", - "http_proxy": "localhost:8080" + "http_proxy": "localhost:9909" } ], "connection_type": "local_serial", From c8aac3648324df313a6ba2d362e79d5005ded95d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 27 Jun 2018 17:29:46 -0500 Subject: [PATCH 287/947] devices: debian: install psmisc for killall Also, needed to reorder some of the apt commands to consolidate Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index d8e3357b..f93f5b27 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -572,6 +572,10 @@ def setup_dhcp_server(self): self.expect(self.prompt) def setup_as_wan_gateway(self): + # install packages required + self.sendline('apt-get -o DPkg::Options::="--force-confnew" -qy install isc-dhcp-server procps iptables lighttpd psmisc') + self.expect(self.prompt) + self.sendline('killall iperf ab hping3') self.expect(self.prompt) self.sendline('\nsysctl net.ipv6.conf.all.disable_ipv6=0') @@ -584,10 +588,6 @@ def setup_as_wan_gateway(self): self.sendline('iptables -t nat -F') self.expect(self.prompt) - # install packages required - self.sendline('apt-get -o DPkg::Options::="--force-confnew" -qy install isc-dhcp-server procps iptables lighttpd') - self.expect(self.prompt) - # set WAN ip address if self.wan_dhcp: self.sendline('/etc/init.d/isc-dhcp-server stop') @@ -632,6 +632,9 @@ def setup_as_wan_gateway(self): self.expect(self.prompt) def setup_as_lan_device(self): + self.sendline('apt-get update && apt-get -qy install tinyproxy curl apache2-utils nmap psmisc') + self.expect('Reading package') + self.expect(self.prompt, timeout=150) # potential cleanup so this wan device works self.sendline('killall iperf ab hping3') self.expect(self.prompt) @@ -688,9 +691,6 @@ def start_lan_client(self, wan_gw=None): self.sendline('route add default gw %s' % self.lan_gateway) self.expect(self.prompt) # Setup HTTP proxy, so board webserver is accessible via this device - self.sendline('apt-get -qy install tinyproxy curl apache2-utils nmap') - self.expect('Reading package') - self.expect(self.prompt, timeout=150) self.sendline('curl --version') self.expect(self.prompt) self.sendline('ab -V') From 7ebc102282a17bf35c2d32c501d13dceb86ec3ee Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 27 Jun 2018 17:43:20 -0500 Subject: [PATCH 288/947] tests: bittorrent: more aggresively kill nc These were lingering Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/bittorrent.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/bittorrent.py b/tests/bittorrent.py index 00b05a1c..2dcc0784 100644 --- a/tests/bittorrent.py +++ b/tests/bittorrent.py @@ -63,7 +63,7 @@ def recover(self): wan.sendline('ip addr del %s/32 dev eth1' % ip) wan.expect(prompt) - wan.sendline('killall nc') + wan.sendline('killall -9 nc') wan.expect(prompt) - lan.sendline('killall nc') + lan.sendline('killall -9 nc') lan.expect(prompt) From 35bdb265efbf48f28f34a4e5a029930886fc87af Mon Sep 17 00:00:00 2001 From: sy_huang <sy_huang@compalbn.com> Date: Fri, 29 Jun 2018 21:23:47 +0800 Subject: [PATCH 289/947] devices: casa_cmts: Add logout and clear_offline function 1. logout: send exit command to exit casa 2. clear_offline: send clear cable modem command to remove cm of offline info Signed-off-by: sy_huang <sy_huang@compalbn.com> --- devices/casa_cmts.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 68c6b389..50c9dd1a 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -61,6 +61,13 @@ def connect(self): except: raise Exception("Unable to get prompt on CASA device") + def logout(self): + self.sendline('exit') + + def clear_offline(self, cmmac): + self.sendline('clear cable modem %s offline' % cmmac) + self.expect(self.prompt) + def reset(self): self.sendline('exit') self.expect(self.prompt) From 04e3d5d5107b448f37a8d1fe1e1a956b33ddbf45 Mon Sep 17 00:00:00 2001 From: sy_huang <sy_huang@compalbn.com> Date: Fri, 29 Jun 2018 21:28:05 +0800 Subject: [PATCH 290/947] devices: casa_cmts: add check_online function Use show cable modem online command to check DUT online status Signed-off-by: sy_huang <sy_huang@compalbn.com> --- devices/casa_cmts.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 50c9dd1a..bceaa977 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -64,6 +64,19 @@ def connect(self): def logout(self): self.sendline('exit') + def check_online(self, cmmac): + output = "offline" + self.sendline('show cable modem %s' % cmmac) + self.expect('.+ranging cm \d+') + result = self.match.group() + match = re.search('\d+/\d+/\d+\**\s+([^\s]+)', result) + if match != None: + output = match.group(1) + else: + output = "offline" + self.expect(self.prompt) + return output + def clear_offline(self, cmmac): self.sendline('clear cable modem %s offline' % cmmac) self.expect(self.prompt) From 3abd43a5c581d55cd8b2e76e4a0607d34b39151b Mon Sep 17 00:00:00 2001 From: sy_huang <sy_huang@compalbn.com> Date: Fri, 29 Jun 2018 21:30:47 +0800 Subject: [PATCH 291/947] devices: casa_cmts: add check_PartialService function This function is detect CM online singal correctly. When modem online, it can use this function to check if modem missing downstream or upstream. When modem shows # end of info, it's meaning modem status on PartialService. Signed-off-by: sy_huang <sy_huang@compalbn.com> --- devices/casa_cmts.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index bceaa977..a7cf6bc2 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -81,6 +81,18 @@ def clear_offline(self, cmmac): self.sendline('clear cable modem %s offline' % cmmac) self.expect(self.prompt) + def check_PartialService(self, cmmac): + self.sendline('show cable modem %s' % cmmac) + self.expect('(\d+/\d+\.\d+/\d+(\*|\#)\s+\d+/\d+/\d+(\*|\#))\s+online') + result = self.match.group(1) + match = re.search('\#', result) + if match != None: + output = 1 + else: + output = 0 + self.expect(self.prompt) + return output + def reset(self): self.sendline('exit') self.expect(self.prompt) From 89119bfe39db769dbafb1a7f0e45e09b31e6082d Mon Sep 17 00:00:00 2001 From: sy_huang <sy_huang@compalbn.com> Date: Fri, 29 Jun 2018 21:45:03 +0800 Subject: [PATCH 292/947] devices: casa_cmts: add get cm ip and mta ip Due to some test cases need to get wan ip and mta ip from CMTS. Add to get wan ip and mta ip function from casa. Signed-off-by: sy_huang <sy_huang@compalbn.com> --- devices/casa_cmts.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index a7cf6bc2..2220e910 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -93,6 +93,28 @@ def check_PartialService(self, cmmac): self.expect(self.prompt) return output + def get_cmip(self, cmmac): + self.sendline('show cable modem %s' % cmmac) + self.expect(cmmac + '\s+([\d\.]+)') + result = self.match.group(1) + if self.match != None: + output = result + else: + output = "None" + self.expect(self.prompt) + return output + + def get_mtaip(self, cmmac, mtamac): + self.sendline('show cable modem %s cpe' % cmmac) + self.expect('([\d\.]+)\s+dhcp\s+' + mtamac) + result = self.match.group(1) + if self.match != None: + output = result + else: + output = "None" + self.expect(self.prompt) + return output + def reset(self): self.sendline('exit') self.expect(self.prompt) From 60b7a35bceae7816d190224bd5642c2275bf3205 Mon Sep 17 00:00:00 2001 From: anil shetty <adshetty@libertyglobal.com> Date: Thu, 28 Jun 2018 14:49:56 -0700 Subject: [PATCH 293/947] tests/lib/installers.py: Added support to install snmp module Signed-off-by: anil shetty <adshetty@libertyglobal.com> --- tests/lib/installers.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 3ba78f60..356dd7d3 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -257,3 +257,14 @@ def install_xampp(device): device.expect(device.prompt) device.sendline('touch /opt/lampp/htdocs/test.txt') device.expect(device.prompt, timeout=120) + +def install_snmp(device): + '''Install snmp if not present.''' + device.sendline('\nsnmpget --version') + try: + device.expect('NET-SNMP version:', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install snmp -y') + device.expect(device.prompt, timeout=60) From 2fc9c8e14fdb82f422097bdfc0d4954b19bd3034 Mon Sep 17 00:00:00 2001 From: sy_huang <sy_huang@compalbn.com> Date: Tue, 3 Jul 2018 18:12:06 +0800 Subject: [PATCH 294/947] devices: casa_cmts.py: fix logout issue When logout to exit cmts, it missed exit to cmts terminal for 2 layer. Add exit command. Signed-off-by: sy_huang <sy_huang@compalbn.com> --- devices/casa_cmts.py | 1 + 1 file changed, 1 insertion(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 2220e910..b1c9de4b 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -63,6 +63,7 @@ def connect(self): def logout(self): self.sendline('exit') + self.sendline('exit') def check_online(self, cmmac): output = "offline" From ae4bf7356bd8c147eddf05cf7cfea2a8d5bce6f0 Mon Sep 17 00:00:00 2001 From: luke_tseng <luke_tseng@compalbn.com> Date: Tue, 3 Jul 2018 15:14:23 +0800 Subject: [PATCH 295/947] devices: casa_cmts: Add C10G CMTS Due to CBN have C10G CMTS to run test case. So that we need to add C10G CMTS type. Signed-off-by: luke_tseng <luke_tseng@compalbn.com> --- devices/casa_cmts.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index b1c9de4b..20350084 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -17,7 +17,7 @@ class CasaCMTS(base.BaseDevice): Connects to and configures a CASA CMTS ''' - prompt = ['CASA-C3200>', 'CASA-C3200#', 'CASA-C3200\(.*\)#'] + prompt = ['CASA-C3200>', 'CASA-C3200#', 'CASA-C3200\(.*\)#', 'CASA-C10G>', 'CASA-C10G#', 'CASA-C10G\(.*\)#'] model = "casa_cmts" def __init__(self, From 8c4eda832d6074ef782b3d51591397945b58b941 Mon Sep 17 00:00:00 2001 From: luke_tseng <luke_tseng@compalbn.com> Date: Tue, 3 Jul 2018 15:20:42 +0800 Subject: [PATCH 296/947] devices: casa_cmts: add modify_docsis_mac_ip_provisioning_mode function add this function to change docs-mac ip_provisioning_mode Signed-off-by: luke_tseng <luke_tseng@compalbn.com> --- devices/casa_cmts.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 20350084..7376fcb4 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -278,6 +278,12 @@ def add_iface_docsis_mac(self, index, ip_bundle, qam_idx, qam_sub, qam_ch, ups_i self.sendline('exit') self.expect(self.prompt) + def modify_docsis_mac_ip_provisioning_mode(self, index, ip_pvmode='dual-stack'): + self.sendline('interface docsis-mac %s' % index) + self.expect(self.prompt) + self.sendline('ip-provisioning-mode %s' % ip_pvmode) + self.expect(self.prompt) + def add_service_class(self, index, name, max_rate, max_burst, downstream=False): self.sendline('cable service-class %s' % index) self.expect(self.prompt) From 8cbf24a0e9c8334bcb202b7d78511b0ffc6506b1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 3 Jul 2018 11:17:51 -0700 Subject: [PATCH 297/947] tests: improve error when failing to run parse function Now we fail on a single test, and continue and also print useful that we failed on a specific test Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/__init__.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/__init__.py b/tests/__init__.py index eb5ee98e..8af9a3e2 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -37,15 +37,15 @@ print("Warning: could not import from file %s." % x) def init(config): - try: for test_file, tests in test_mappings.iteritems(): for test in tests: #print('checking %s in %s' % (test, test_file)) if hasattr(test, "parse"): - #print("calling parse on %s" % test) - new_tests = test.parse(config) or [] - for new_test in new_tests: - globals()[new_test] = getattr(test_file, new_test) - except: - print("Failed to run all tests parse function!") - pass + try: + #print("calling parse on %s" % test) + new_tests = test.parse(config) or [] + for new_test in new_tests: + globals()[new_test] = getattr(test_file, new_test) + except: + print("Failed to run %s parse function!" % test) + pass From 65af4b74d8746fb761e55ac73a0d7a86144f621c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 3 Jul 2018 11:18:23 -0700 Subject: [PATCH 298/947] devices: print error message if we fail to parse a device Throw an exception and continue, but also print some useful info about which type of device we failed to create Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/__init__.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/devices/__init__.py b/devices/__init__.py index 3bccc93b..a537ec2e 100644 --- a/devices/__init__.py +++ b/devices/__init__.py @@ -66,7 +66,11 @@ def get_device(model, **kwargs): for device_file, devs in device_mappings.iteritems(): for dev in devs: if 'model' in dev.__dict__ and model in dev.__dict__['model']: - return dev(model, **kwargs) + try: + return dev(model, **kwargs) + except: + print("Failed to create a %s, device likely missing or invalid config" % model) + raise Exception("Failed to create a %s, device likely missing or invalid config" % model) return None From f8357d704522202819d335759ef868ecd3cdfa07 Mon Sep 17 00:00:00 2001 From: luke_tseng <luke_tseng@compalbn.com> Date: Fri, 6 Jul 2018 18:32:35 +0800 Subject: [PATCH 299/947] devices: base.py:fix_get_interface_ip6addr Fix regexp to get ipv6 function ex: inet6 addr: fe80::40ec:26b8:95a5:1132/64 function return 'fe80::40ec:26b8:95a5:1132/64' change to 'fe80::40ec:26b8:95a5:1132' Signed-off-by: luke_tseng <luke_tseng@compalbn.com> --- devices/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/base.py b/devices/base.py index d89ee296..34bf2b0a 100644 --- a/devices/base.py +++ b/devices/base.py @@ -31,7 +31,7 @@ def get_interface_ipaddr(self, interface): def get_interface_ip6addr(self, interface): self.sendline("\nifconfig %s" % interface) - self.expect('inet6 addr: (200(.+)) Scope:Global', timeout=5) + self.expect('inet6 addr: (200(.+))/\d+ Scope:Global', timeout=5) ipaddr = self.match.group(1) self.expect(self.prompt) return ipaddr From 6377a3f29c8e6d37bfd580df1d8a54ae8029ab96 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 3 Jul 2018 13:11:17 -0700 Subject: [PATCH 300/947] devices: debian: consolidate installing packages Let's install all packages when we start, also let's bring down eth1 the DUT interface so it's not replied on to install packages Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft-node/Dockerfile | 29 +++++++++++++--------- devices/debian.py | 59 ++++++++++++++++++++++++++++++--------------- 2 files changed, 56 insertions(+), 32 deletions(-) diff --git a/bft-node/Dockerfile b/bft-node/Dockerfile index c84e1097..2a695da5 100755 --- a/bft-node/Dockerfile +++ b/bft-node/Dockerfile @@ -4,26 +4,31 @@ RUN echo "root:bigfoot1" | chpasswd RUN apt-get update && \ apt-get install -y --no-install-recommends \ + apache2-utils \ + curl \ + dnsutils \ + iperf \ + iperf3 \ iproute \ - net-tools \ - openssh-server \ + iptables \ isc-dhcp-server \ isc-dhcp-client \ - procps \ - iptables \ lighttpd \ - tinyproxy \ - curl \ - apache2-utils \ + net-tools \ + netcat \ nmap \ + openssh-server \ pppoe \ + psmisc \ + procps \ + python-pip \ + python-mysqldb \ + tinyproxy \ + traceroute \ tftpd-hpa \ tcpdump \ - iperf \ - iperf3 \ - netcat \ - python-pip \ - python-mysqldb + vim-common \ + xinetd RUN mkdir /var/run/sshd RUN sed -i 's/.*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config diff --git a/devices/debian.py b/devices/debian.py index f93f5b27..3f5c1fed 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -17,7 +17,6 @@ from termcolor import colored, cprint - class DebianBox(base.BaseDevice): ''' A linux machine running an ssh server. @@ -28,6 +27,7 @@ class DebianBox(base.BaseDevice): wan_dhcp = False wan_no_eth0 = False wan_cmts_provisioner = False + pkgs_installed = False def __init__(self, name, @@ -204,14 +204,46 @@ def get_interface_ipaddr(self, interface): self.expect(self.prompt) return ipaddr + def install_pkgs(self): + if self.pkgs_installed == True: + return + + if not self.wan_no_eth0 and not self.wan_dhcp: + self.sendline('ifconfig eth1 down') + self.expect(self.prompt) + + # TODO: use netns for all this? + undo_default_route = None + self.sendline('ping -c1 deb.debian.org') + if 0 == self.expect(['ping: unknown host'] + self.prompt): + # TODO: don't reference eth0, but the uplink iface + self.sendline("echo SYNC; ip route list | grep 'via.*dev eth0' | awk '{print $3}'") + self.expect_exact("SYNC\r\n") + if 0 == self.expect(['\r\n(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})\r\n'] + self.prompt, timeout=5): + possible_default_gw = self.match.group(1) + self.sendline("ip route add default via %s" % possible_default_gw) + self.expect(self.prompt) + self.sendline('ping -c1 deb.debian.org') + self.expect(self.prompt) + undo_default_route = possible_default_gw + + self.sendline('apt-get update && apt-get -o DPkg::Options::="--force-confnew" -qy install isc-dhcp-server xinetd tinyproxy curl apache2-utils nmap psmisc vim-common tftpd-hpa pppoe isc-dhcp-server procps iptables lighttpd psmisc') + self.expect('Reading package') + self.expect(self.prompt, timeout=150) + + if undo_default_route is not None: + self.sendline("ip route del default via %s" % undo_default_route) + self.expect(self.prompt) + + self.pkgs_installed = True + + def ip_neigh_flush(self): self.sendline('\nip -s neigh flush all') self.expect('flush all') self.expect(self.prompt) def turn_on_pppoe(self): - self.sendline('apt-get -o Dpkg::Options::="--force-confnew" -y install pppoe') - self.expect(self.prompt) self.sendline('cat > /etc/ppp/pppoe-server-options << EOF') self.sendline('noauth') self.sendline('ms-dns 8.8.8.8') @@ -227,6 +259,9 @@ def turn_off_pppoe(self): self.expect(self.prompt) def start_tftp_server(self): + # we can call this first, before configure so we need to do this here + # as well + self.install_pkgs() # the entire reason to start tftp is to copy files to devices # which we do via ssh so let's start that as well self.start_sshd_server() @@ -241,9 +276,6 @@ def start_tftp_server(self): self.sendline('ifconfig eth1 down') self.expect(self.prompt) - # install packages required - self.sendline('apt-get -o DPkg::Options::="--force-confnew" -qy install tftpd-hpa') - # set WAN ip address, for now this will always be this address for the device side # TODO: fix gateway for non-WAN tftp_server if self.gw != eth1_addr: @@ -301,9 +333,6 @@ def start_sshd_server(self): self.expect(self.prompt) def copy_file_to_server(self, src, dst=None): - self.sendline('apt-get -o DPkg::Options::="--force-confnew" -qy install vim-common') - self.expect(self.prompt) - def gzip_str(string_): import gzip import io @@ -331,9 +360,8 @@ def gzip_str(string_): self.logfile_read = saved_logfile_read def configure(self, kind, config=[]): - # start openssh server if not running: + self.install_pkgs() self.start_sshd_server() - if kind == "wan_device": self.setup_as_wan_gateway() elif kind == "lan_device": @@ -489,8 +517,6 @@ def copy_cmts_provisioning_files(self, board_config): def provision_board(self, board_config): ''' Setup DHCP and time server etc for CM provisioning''' - self.sendline('apt-get update && apt-get -o DPkg::Options::="--force-confnew" -qy install isc-dhcp-server xinetd') - self.expect(self.prompt) self.sendline('/etc/init.d/isc-dhcp-server stop') self.expect(self.prompt) self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') @@ -572,10 +598,6 @@ def setup_dhcp_server(self): self.expect(self.prompt) def setup_as_wan_gateway(self): - # install packages required - self.sendline('apt-get -o DPkg::Options::="--force-confnew" -qy install isc-dhcp-server procps iptables lighttpd psmisc') - self.expect(self.prompt) - self.sendline('killall iperf ab hping3') self.expect(self.prompt) self.sendline('\nsysctl net.ipv6.conf.all.disable_ipv6=0') @@ -632,9 +654,6 @@ def setup_as_wan_gateway(self): self.expect(self.prompt) def setup_as_lan_device(self): - self.sendline('apt-get update && apt-get -qy install tinyproxy curl apache2-utils nmap psmisc') - self.expect('Reading package') - self.expect(self.prompt, timeout=150) # potential cleanup so this wan device works self.sendline('killall iperf ab hping3') self.expect(self.prompt) From 77deb37ffc646d02dd2f6b53a6e7a0e4f3a353a8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 9 Jul 2018 07:43:51 -0700 Subject: [PATCH 301/947] devices: rpi3: increase full image download timeout Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/rpi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/rpi.py b/devices/rpi.py index 93fd82b7..da834e7f 100644 --- a/devices/rpi.py +++ b/devices/rpi.py @@ -134,7 +134,7 @@ def flash_meta(self, META, wan, lan): self.sendline('cd /tmp') self.expect(self.prompt) self.sendline(' tftp -g -r %s 10.0.1.1' % filename) - self.expect(self.prompt, timeout=240) + self.expect(self.prompt, timeout=500) self.sendline('systemctl isolate rescue.target') if 0 == self.expect(['Give root password for maintenance', 'Welcome Press Enter for maintenance', 'Press Enter for maintenance']): From daad1abb96cc289626d68a6b172cd123109eb62d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 9 Jul 2018 08:09:26 -0700 Subject: [PATCH 302/947] devices: debian: fix error in previous commit Previous one was too aggressive and failed to match the IP, this is a quick fix Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index 3f5c1fed..35e30637 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -219,7 +219,7 @@ def install_pkgs(self): # TODO: don't reference eth0, but the uplink iface self.sendline("echo SYNC; ip route list | grep 'via.*dev eth0' | awk '{print $3}'") self.expect_exact("SYNC\r\n") - if 0 == self.expect(['\r\n(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})\r\n'] + self.prompt, timeout=5): + if 0 == self.expect(['(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})\r\n'] + self.prompt, timeout=5): possible_default_gw = self.match.group(1) self.sendline("ip route add default via %s" % possible_default_gw) self.expect(self.prompt) From 4817d45be7cd6ceace3dc58c0ab0ba175e05fe74 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 9 Jul 2018 08:17:30 -0700 Subject: [PATCH 303/947] devices: update confusing message about device possibly in use This message also get's printed if the device is in use, so let's make that clear Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/__init__.py b/devices/__init__.py index a537ec2e..fbbeea4d 100644 --- a/devices/__init__.py +++ b/devices/__init__.py @@ -69,8 +69,8 @@ def get_device(model, **kwargs): try: return dev(model, **kwargs) except: - print("Failed to create a %s, device likely missing or invalid config" % model) - raise Exception("Failed to create a %s, device likely missing or invalid config" % model) + msg = "Failed to create a %s, unable to connect (in use) or possibly misconfigured" % model + raise Exception(msg) return None From 1b050471a8b797280834a560f8ab7ba564c9de8d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 9 Jul 2018 08:27:52 -0700 Subject: [PATCH 304/947] devices: debian: fix expecting password when copying keys This fails often, so let's fix it up so it's more reliable Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 35e30637..f4889b69 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -746,13 +746,10 @@ def start_lan_client(self, wan_gw=None): if 0 != self.expect(['Protocol mismatch.'] + self.prompt): self.sendline('scp ~/.ssh/id_rsa.pub %s:/etc/dropbear/authorized_keys' % self.lan_gateway) self.expect_exact('scp ~/.ssh/id_rsa.pub %s:/etc/dropbear/authorized_keys' % self.lan_gateway) - try: - # When resetting, no need for password - self.expect("root@%s's password:" % self.lan_gateway, timeout=5) + if 0 == self.expect(['assword:'] + self.prompt): self.sendline('password') - except: - pass - self.expect(self.prompt) + self.expect(self.prompt) + else: self.sendcontrol('c') self.expect(self.prompt) From b2390eb400fa435fc4b63afd8133380b2c5d19c9 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 9 Jul 2018 10:33:25 -0700 Subject: [PATCH 305/947] bft: print stack of failed board connection Devices can fail to be created for a variety of reasons, so let's not hide the stack anymore Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bft b/bft index 40155d0a..50ad260a 100755 --- a/bft +++ b/bft @@ -20,6 +20,7 @@ import json import argparse import re import csv +import traceback sys.path.insert(0, './zephyr/') import zephyr_reporter @@ -234,6 +235,7 @@ def main(): except Exception as e: print(e) + traceback.print_exc(file=sys.stdout) connected_to_board = False continue connected_to_board = True From 40225fbbc3d12ceb43f37657e0f6699548fa4622 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 9 Jul 2018 10:34:19 -0700 Subject: [PATCH 306/947] devices: pass through explicit exceptions Otherwise, we keep going through all the boards one-by-one Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 3 +++ devices/__init__.py | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/bft b/bft index 50ad260a..9baff8a2 100755 --- a/bft +++ b/bft @@ -233,6 +233,9 @@ def main(): get_tftp_config(config.wan) + except KeyboardInterrupt: + print_bold("Keyboard interrupt") + sys.exit(2) except Exception as e: print(e) traceback.print_exc(file=sys.stdout) diff --git a/devices/__init__.py b/devices/__init__.py index fbbeea4d..e9b00d0b 100644 --- a/devices/__init__.py +++ b/devices/__init__.py @@ -68,6 +68,10 @@ def get_device(model, **kwargs): if 'model' in dev.__dict__ and model in dev.__dict__['model']: try: return dev(model, **kwargs) + except KeyboardInterrupt: + raise + except Exception as e: + raise except: msg = "Failed to create a %s, unable to connect (in use) or possibly misconfigured" % model raise Exception(msg) From 6da26649454c7006bb9fb7079c962101cb33e92f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 9 Jul 2018 11:34:13 -0700 Subject: [PATCH 307/947] devices: power: don't use urllib2 directly Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/power.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/devices/power.py b/devices/power.py index be6e371b..45ab3c6e 100644 --- a/devices/power.py +++ b/devices/power.py @@ -276,8 +276,6 @@ def reset(self): # ip9258.off(i) # time.delay(1) -import urllib2 - class Ip9258(PowerDevice): def __init__(self, ip_address, port, username="admin", password="12345678"): PowerDevice.__init__(self, ip_address, username, password) @@ -285,20 +283,20 @@ def __init__(self, ip_address, port, username="admin", password="12345678"): self.port = port # create a password manager - password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm() + password_mgr = _urllib.HTTPPasswordMgrWithDefaultRealm() password_mgr.add_password(None, 'http://' + ip_address, username, password) - handler = urllib2.HTTPBasicAuthHandler(password_mgr) - opener = urllib2.build_opener(handler) + handler = _urllib.HTTPBasicAuthHandler(password_mgr) + opener = _urllib.build_opener(handler) # Now all calls to urllib2.urlopen use our opener. - urllib2.install_opener(opener) + _urllib.install_opener(opener) def on(self): print("Power On Port(%s)\n" % self.port) - return urllib2.urlopen('http://' + self._ip_address + '/set.cmd?cmd=setpower+p6' + str(self.port) + '=1') + return _urllib.urlopen('http://' + self._ip_address + '/set.cmd?cmd=setpower+p6' + str(self.port) + '=1') def off(self): print("Power Off Port(%s)\n" % self.port) - return urllib2.urlopen('http://' + self._ip_address + '/set.cmd?cmd=setpower+p6' + str(self.port) + '=0') + return _urllib.urlopen('http://' + self._ip_address + '/set.cmd?cmd=setpower+p6' + str(self.port) + '=0') def reset(self): self.off() From f6dcccf399abb58393a56856e6d8ab3aeab582e5 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 9 Jul 2018 13:11:15 -0700 Subject: [PATCH 308/947] devices: debian: more fixups for installing packages Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index f4889b69..46182fde 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -212,10 +212,13 @@ def install_pkgs(self): self.sendline('ifconfig eth1 down') self.expect(self.prompt) + pkgs = "isc-dhcp-server xinetd tinyproxy curl apache2-utils nmap psmisc vim-common tftpd-hpa pppoe isc-dhcp-server procps iptables lighttpd psmisc" + # TODO: use netns for all this? undo_default_route = None self.sendline('ping -c1 deb.debian.org') - if 0 == self.expect(['ping: unknown host'] + self.prompt): + i = self.expect(['ping: unknown host', pexpect.TIMEOUT] + self.prompt, timeout=10) + if 0 == i: # TODO: don't reference eth0, but the uplink iface self.sendline("echo SYNC; ip route list | grep 'via.*dev eth0' | awk '{print $3}'") self.expect_exact("SYNC\r\n") @@ -226,10 +229,20 @@ def install_pkgs(self): self.sendline('ping -c1 deb.debian.org') self.expect(self.prompt) undo_default_route = possible_default_gw - - self.sendline('apt-get update && apt-get -o DPkg::Options::="--force-confnew" -qy install isc-dhcp-server xinetd tinyproxy curl apache2-utils nmap psmisc vim-common tftpd-hpa pppoe isc-dhcp-server procps iptables lighttpd psmisc') - self.expect('Reading package') - self.expect(self.prompt, timeout=150) + self.sendline('apt-get update && apt-get -o DPkg::Options::="--force-confnew" -qy install %s' % pkgs) + if 0 == self.expect(['Reading package', pexpect.TIMEOUT], timeout=10): + self.expect(self.prompt, timeout=150) + else: + print("Failed to download packages, things might not work") + self.sendcontrol('c') + self.expect(self.prompt) + elif 1 == i: + self.sendcontrol('c') + self.expect(self.prompt) + else: + self.sendline('apt-get update && apt-get -o DPkg::Options::="--force-confnew" -qy install %s' % pkgs) + if 0 == self.expect(['Reading package', pexpect.TIMEOUT], timeout=10): + self.expect(self.prompt, timeout=150) if undo_default_route is not None: self.sendline("ip route del default via %s" % undo_default_route) From 105304f98a5173a3e53dd65eb8394693d92d9a6c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 10 Jul 2018 11:10:46 -0700 Subject: [PATCH 309/947] devices: cougarpark: don't use type(self) This stops working when you have a device that inherits from cougarpark so let's use the class name specifically Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/cougarpark.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/cougarpark.py b/devices/cougarpark.py index 927b3fa0..01bafdd5 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -41,7 +41,7 @@ class CougarPark(openwrt_router.OpenWrtRouter): arm = None def __init__(self, *args, **kwargs): - super(type(self), self).__init__(*args, **kwargs) + super(CougarPark, self).__init__(*args, **kwargs) del kwargs['conn_cmd'] self.arm = pexpect.spawn.__new__(pexpect.spawn) @@ -154,4 +154,4 @@ def wait_for_networkxxx(self): self.expect(self.prompt) self.sendline('dhclient %s' % self.wan_iface) self.expect(self.prompt) - super(type(self), self).wait_for_network() + super(CougarPark, self).wait_for_network() From 9c92d35a43cbef94765b3c928ae08bf8f4883829 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 11 Jul 2018 16:59:46 -0700 Subject: [PATCH 310/947] devices: elasticlogger: fix for new API Results are reported a bit differently, so let's fix that. Be sure to update your python elasticsearch component: pip install --upgrade elasticsearch Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/elasticlogger.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/elasticlogger.py b/devices/elasticlogger.py index 5dbfbb6e..aa4fbc61 100644 --- a/devices/elasticlogger.py +++ b/devices/elasticlogger.py @@ -48,7 +48,7 @@ def log(self, data, debug=False): self.default_data['@timestamp'] = datetime.datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S.000Z") data.update(self.default_data) result = self.es.index(index=self.index, doc_type=self.doc_type, body=data) - if result and 'created' in result and result['created'] == True: + if result and u'result' in result and result[u'result'] == u'created': doc_url = "%s%s/%s/%s" % (self.server, self.index, self.doc_type, result['_id']) print("Elasticsearch: Data stored at %s" % (doc_url)) else: From c27edc77d01970fce791c4bc5de0773925fad844 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 16 Jul 2018 13:55:39 -0700 Subject: [PATCH 311/947] devices: casa_cmts: run connect on creation This was not getting run so each test needed to run it, better to run it once so if it fails we attempt another board and the tests don't need to worry about this state Also, don't start showing output until after we have logged in Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/casa_cmts.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 7376fcb4..b720fb5e 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -33,8 +33,9 @@ def __init__(self, raise Exception("No command specified to connect to Casa CMTS") self.connection = connection_decider.connection(connection_type, device=self, conn_cmd=conn_cmd) - self.logfile_read = sys.stdout self.connection.connect() + self.connect() + self.logfile_read = sys.stdout def connect(self): try: From d0df89627a54335eeb73283b3c63e1104b563c4f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 9 Jul 2018 11:34:43 -0700 Subject: [PATCH 312/947] devices: power: if we can't parse results, try logging in If we don't get identifiable data we try logging into the device next and parsing data Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/power.py | 87 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 75 insertions(+), 12 deletions(-) diff --git a/devices/power.py b/devices/power.py index 45ab3c6e..b2a9f98a 100644 --- a/devices/power.py +++ b/devices/power.py @@ -8,12 +8,21 @@ try: from urllib.request import urlopen from urllib.error import HTTPError + import urllib as _urllib except: from urllib2 import urlopen, HTTPError + import urllib2 as _urllib import pexpect import dlipower import time +import re + +import inspect + +def get_default_for_arg(function, arg): + args, varargs, keywords, defaults = inspect.getargspec(function) + return defaults from easysnmp import Session @@ -31,6 +40,14 @@ def get_power_device(ip_address, username=None, password=None, outlet=None): interact with that type of switch. ''' + login_failed = False + all_login_defaults = [] + for name, obj in globals().iteritems(): + if inspect.isclass(obj) and issubclass(obj, PowerDevice): + defaults = get_default_for_arg(obj.__init__, "username") + if defaults is not None and len(defaults) == 2: + all_login_defaults.append((defaults[0], defaults[1])) + if ip_address is None: if outlet is not None: if "wemo://" in outlet: @@ -50,23 +67,69 @@ def get_power_device(ip_address, username=None, password=None, outlet=None): except UnicodeDecodeError as e: data = urlopen("http://" + ip_address).read() except HTTPError as e: + if str(e) == 'HTTP Error 401: Unauthorized': + login_failed = True + + # still try to read data data = e.read().decode() except Exception as e: print(e) raise Exception("\nError connecting to %s" % ip_address) - if '<title>Power Controller' in data: - return DLIPowerSwitch(ip_address, outlet=outlet, username=username, password=password) - if 'Sentry Switched CDU' in data: - return SentrySwitchedCDU(ip_address, outlet=outlet) - if '<title>APC ' in data: - return APCPower(ip_address, outlet=outlet) - if '<b>IP9258 Log In</b>' in data: - return Ip9258(ip_address, outlet, username=username, password=password) - if 'Cyber Power Systems' in data: - return CyberPowerPdu(ip_address, outlet=outlet, username=username, password=password) - else: - raise Exception("No code written to handle power device found at %s" % ip_address) + def check_data(data): + if '<title>Power Controller' in data: + return DLIPowerSwitch(ip_address, outlet=outlet, username=username, password=password) + if 'Sentry Switched CDU' in data: + return SentrySwitchedCDU(ip_address, outlet=outlet) + if '<title>APC ' in data: + return APCPower(ip_address, outlet=outlet) + if '<b>IP9258 Log In</b>' in data: + return Ip9258(ip_address, outlet, username=username, password=password) + if 'Cyber Power Systems' in data: + return CyberPowerPdu(ip_address, outlet=outlet, username=username, password=password) + if 'IP9820' in data: + return Ip9820(ip_address, outlet) + + return None + + ret = check_data(data) + if ret is not None: + return ret + + if login_failed: + # TODO: prioritize Ip9820 since it requires login? + def get_with_username_password(username, password): + # create a password manager + password_mgr = _urllib.HTTPPasswordMgrWithDefaultRealm() + password_mgr.add_password(None, 'http://' + ip_address, username, password) + handler = _urllib.HTTPBasicAuthHandler(password_mgr) + opener = _urllib.build_opener(handler) + opener.open('http://' + ip_address) + _urllib.install_opener(opener) + + request = _urllib.Request('http://' + ip_address) + response = opener.open(request) + data = response.read() + return data + + # try with passed in info first + ret = check_data(get_with_username_password(username, password)) + if ret is not None: + return ret + + for username, password in all_login_defaults: + try: + ret = check_data(get_with_username_password(username, password)) + except: + continue + else: + break + + ret = check_data(data) + if ret is not None: + return ret + + raise Exception("No code written to handle power device found at %s" % ip_address) class PowerDevice(): ''' From 787991b887d678a00c99f7ef5a2c1dfe9a638805 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 9 Jul 2018 11:35:24 -0700 Subject: [PATCH 313/947] devices: power: add support for ip9820 power reset Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/power.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/devices/power.py b/devices/power.py index b2a9f98a..1a1678ef 100644 --- a/devices/power.py +++ b/devices/power.py @@ -391,6 +391,33 @@ def reset(self): time.sleep(5) self.on() +class Ip9820(PowerDevice): + def __init__(self, ip_address, port, username="admin", password="12345678"): + PowerDevice.__init__(self, ip_address, username, password) + self._ip_address = ip_address + self.port = port + + # create a password manager + password_mgr = _urllib.HTTPPasswordMgrWithDefaultRealm() + password_mgr.add_password(None, 'http://' + ip_address, username, password) + handler = _urllib.HTTPBasicAuthHandler(password_mgr) + opener = _urllib.build_opener(handler) + # Now all calls to _urllib.urlopen use our opener. + _urllib.install_opener(opener) + + def on(self): + print("Power On Port(%s)\n" % self.port) + return _urllib.urlopen('http://' + self._ip_address + '/set.cmd?cmd=setpower+p6' + str(self.port) + '=1') + + def off(self): + print("Power Off Port(%s)\n" % self.port) + return _urllib.urlopen('http://' + self._ip_address + '/set.cmd?cmd=setpower+p6' + str(self.port) + '=0') + + def reset(self): + self.off() + time.sleep(5) + self.on() + if __name__ == "__main__": print("Gathering info about power outlets...") From 4e27a6c1cf2ff52f3b170b72fe70fafc8e84a490 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 18 Jul 2018 13:44:02 -0700 Subject: [PATCH 314/947] devices: windows_telnet: add inital device for a windows telnet device This connects to a windows machine over telnet. Here is a basic example test: from devices import winwifi class wintest(rootfs_boot.RootFSBootTest): def runTest(self): winwifi.sendline('dir') winwifi.expect(winwifi.prompt) You can add a device in the boarfarm config via: "devices": [ { "name": "winwifi", "type": "windows-telnet", "ipaddr": "$ipaddr", "username": "user", "password": "pass" } Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/windows_telnet.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 devices/windows_telnet.py diff --git a/devices/windows_telnet.py b/devices/windows_telnet.py new file mode 100644 index 00000000..51b55939 --- /dev/null +++ b/devices/windows_telnet.py @@ -0,0 +1,33 @@ + +import sys +import base +import connection_decider + +class WindowsTelnet(base.BaseDevice): + + model = ('windows-telnet') + # This prompt regex could use more work + prompt = ['[a-zA-Z]:\\\\.*>$'] + + def __init__(self, *args, **kwargs): + self.args = args + self.kwargs = kwargs + + self.ip = self.kwargs['ipaddr'] + self.username = self.kwargs.get('username', 'Administrator') + self.password = self.kwargs.get('password', 'bigfoot1') + + conn_cmd = "telnet %s" % self.ip + + self.connection = connection_decider.connection("local_cmd", device=self, conn_cmd=conn_cmd) + self.connection.connect() + self.logfile_read = sys.stdout + self.linesep = '\r' + + self.expect('login: ') + self.sendline(self.username) + self.expect('password: ') + self.sendline(self.password) + self.expect(self.prompt) + + # Hide login prints, resume after that's done From 76e3fe11a7e0492aa374a5ec85e7318718bf1086 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 23 Jul 2018 12:14:27 -0700 Subject: [PATCH 315/947] devices: debian: increase some timeout's fix logic for failed apt-get Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 46182fde..db255ac6 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -230,8 +230,8 @@ def install_pkgs(self): self.expect(self.prompt) undo_default_route = possible_default_gw self.sendline('apt-get update && apt-get -o DPkg::Options::="--force-confnew" -qy install %s' % pkgs) - if 0 == self.expect(['Reading package', pexpect.TIMEOUT], timeout=10): - self.expect(self.prompt, timeout=150) + if 0 == self.expect(['Reading package', pexpect.TIMEOUT], timeout=60): + self.expect(self.prompt, timeout=300) else: print("Failed to download packages, things might not work") self.sendcontrol('c') @@ -241,8 +241,12 @@ def install_pkgs(self): self.expect(self.prompt) else: self.sendline('apt-get update && apt-get -o DPkg::Options::="--force-confnew" -qy install %s' % pkgs) - if 0 == self.expect(['Reading package', pexpect.TIMEOUT], timeout=10): - self.expect(self.prompt, timeout=150) + if 0 == self.expect(['Reading package', pexpect.TIMEOUT], timeout=60): + self.expect(self.prompt, timeout=300) + else: + print("Failed to download packages, things might not work") + self.sendcontrol('c') + self.expect(self.prompt) if undo_default_route is not None: self.sendline("ip route del default via %s" % undo_default_route) From b7a7621698c4975a784a139ee76153c3c6712334 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 25 Jul 2018 09:37:18 -0700 Subject: [PATCH 316/947] devices: windows_telnet: move stdout to after we are logged in This is a bug introduced from debugging code, let's change it back Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/windows_telnet.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/windows_telnet.py b/devices/windows_telnet.py index 51b55939..1af81cd6 100644 --- a/devices/windows_telnet.py +++ b/devices/windows_telnet.py @@ -21,7 +21,6 @@ def __init__(self, *args, **kwargs): self.connection = connection_decider.connection("local_cmd", device=self, conn_cmd=conn_cmd) self.connection.connect() - self.logfile_read = sys.stdout self.linesep = '\r' self.expect('login: ') @@ -31,3 +30,4 @@ def __init__(self, *args, **kwargs): self.expect(self.prompt) # Hide login prints, resume after that's done + self.logfile_read = sys.stdout From 0a04844e6f7b1721bc992944bb75b08dd206f1a2 Mon Sep 17 00:00:00 2001 From: Nero_Chen <nero_chen@compalbn.com> Date: Thu, 26 Jul 2018 16:21:55 +0800 Subject: [PATCH 317/947] devices: windows_telnet: add function add get_ip ,ping ,set_dhcp ,set_fixip function Signed-off-by: Nero_Chen <nero_chen@compalbn.com> --- devices/windows_telnet.py | 41 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) mode change 100644 => 100755 devices/windows_telnet.py diff --git a/devices/windows_telnet.py b/devices/windows_telnet.py old mode 100644 new mode 100755 index 1af81cd6..b1ecdc0c --- a/devices/windows_telnet.py +++ b/devices/windows_telnet.py @@ -1,5 +1,5 @@ -import sys +import sys, re import base import connection_decider @@ -21,6 +21,7 @@ def __init__(self, *args, **kwargs): self.connection = connection_decider.connection("local_cmd", device=self, conn_cmd=conn_cmd) self.connection.connect() + self.logfile_read = sys.stdout self.linesep = '\r' self.expect('login: ') @@ -30,4 +31,40 @@ def __init__(self, *args, **kwargs): self.expect(self.prompt) # Hide login prints, resume after that's done - self.logfile_read = sys.stdout + + def get_ip(self, wifi_interface): + + self.sendline('netsh interface ip show config '+wifi_interface) + + self.expect("(.+)>",timeout=30) + Wifi_log = self.match.group(1) + + match = re.search('IP Address:\s+([\d.]+)' , str(Wifi_log)) + if match: + return match.group(1) + else: + return None + + def ping(self, ping_ip ,source_ip=None): + + if source_ip == None : + self.sendline('ping '+ping_ip) + else: + self.sendline('ping -S %s %s' % (source_ip , ping_ip)) + + self.expect("(.+)>",timeout=30) + Wifi_log = self.match.group(1) + + match = re.search('Reply from .+: bytes=.+ TTL=' , str(Wifi_log)) + if match: + return 'True' + else: + return 'False' + + def set_dhcp(self , wifi_interface): + self.sendline('netsh interface ip set address '+wifi_interface+" dhcp") + self.expect(self.prompt) + + def set_fixip(self , wifi_interface, fix_ip, fix_mark, fix_gateway): + self.sendline('netsh interface ip set address '+wifi_interface+" static "+fix_ip+" "+fix_mark+" "+fix_gateway+" 1") + self.expect(self.prompt) From 259db9f12f33a4a929e9583a3015feaf80c83d1c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 24 Jul 2018 11:45:33 -0700 Subject: [PATCH 318/947] devices: debian: add functio nto extract tftp server ip address If a test needs to know the tftp server IP address that the DUT can see then they need to use this function to parse it Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index db255ac6..5d89071b 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -809,6 +809,10 @@ def add_new_user(self, id, pwd): except: self.expect(self.prompt, timeout=30) + def tftp_server_ip_int(self): + '''Returns the DUT facing side tftp server ip''' + return self.gw + if __name__ == '__main__': # Example use try: From 2a77c14203d9dacee542a7948469800992edb759 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 26 Jul 2018 13:15:47 -0700 Subject: [PATCH 319/947] devices: debian: save args and kwargs if we need to access them Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index 5d89071b..39e8c1a6 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -46,7 +46,12 @@ def __init__(self, env=None, lan_network=ipaddress.IPv4Network(u"192.168.1.0/24"), lan_gateway=ipaddress.IPv4Address(u"192.168.1.1"), - config=[]): + config=[], + *args, + **kwargs): + self.args = args + self.kwargs = kwargs + if name is not None: pexpect.spawn.__init__(self, command="ssh", From 3c2a5df6ef5115fa28bfbb5d63c86a6d27b7f562 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 25 Jul 2018 09:37:18 -0700 Subject: [PATCH 320/947] devices: windows_telnet: move stdout to after we are logged in This is a regression, fixing the bug Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/windows_telnet.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/windows_telnet.py b/devices/windows_telnet.py index b1ecdc0c..0a2a9c3d 100755 --- a/devices/windows_telnet.py +++ b/devices/windows_telnet.py @@ -21,7 +21,6 @@ def __init__(self, *args, **kwargs): self.connection = connection_decider.connection("local_cmd", device=self, conn_cmd=conn_cmd) self.connection.connect() - self.logfile_read = sys.stdout self.linesep = '\r' self.expect('login: ') @@ -31,6 +30,7 @@ def __init__(self, *args, **kwargs): self.expect(self.prompt) # Hide login prints, resume after that's done + self.logfile_read = sys.stdout def get_ip(self, wifi_interface): From bee1f47263cbd3fec254da5f4823ae37ebfc9590 Mon Sep 17 00:00:00 2001 From: Nero_Chen <nero_chen@compalbn.com> Date: Tue, 31 Jul 2018 16:11:56 +0800 Subject: [PATCH 321/947] devices: windows_telnet.py: modify function name modify set_fixip to set_static_ip Signed-off-by: Nero_Chen <nero_chen@compalbn.com> --- devices/windows_telnet.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/windows_telnet.py b/devices/windows_telnet.py index 0a2a9c3d..78408cf6 100755 --- a/devices/windows_telnet.py +++ b/devices/windows_telnet.py @@ -65,6 +65,6 @@ def set_dhcp(self , wifi_interface): self.sendline('netsh interface ip set address '+wifi_interface+" dhcp") self.expect(self.prompt) - def set_fixip(self , wifi_interface, fix_ip, fix_mark, fix_gateway): + def set_static_ip(self , wifi_interface, fix_ip, fix_mark, fix_gateway): self.sendline('netsh interface ip set address '+wifi_interface+" static "+fix_ip+" "+fix_mark+" "+fix_gateway+" 1") self.expect(self.prompt) From 63818aee8e071faa9f9c4d8686d714347abca0b9 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 31 Jul 2018 12:25:44 -0700 Subject: [PATCH 322/947] devices: debian: add config flag for static ip This might be used for test when looking at the test network topology for configuring things (CDrouter will be the first use) Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index 39e8c1a6..712fd434 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -24,6 +24,7 @@ class DebianBox(base.BaseDevice): prompt = ['root\\@.*:.*#', '/ # ', ".*:~ #" ] static_route = None + static_ip = False wan_dhcp = False wan_no_eth0 = False wan_cmts_provisioner = False @@ -104,6 +105,7 @@ def __init__(self, for opt in options: if opt.startswith('wan-static-ip:'): self.gw = opt.replace('wan-static-ip:', '') + self.static_ip = True if opt.startswith('wan-static-route:'): self.static_route = opt.replace('wan-static-route:', '').replace('-', ' via ') if opt.startswith('wan-dhcp-client'): From ec1fc5995615022ac8c9d46ce5d4e8aae4ec9136 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 31 Jul 2018 12:31:08 -0700 Subject: [PATCH 323/947] tests: cdrouter: fix static routes and wan mac addr We only add static route if we are the CMTS provisioner and all the traffic is being routed through us Also, we only care about the WAN mac if we did not add a static ip as they are not physically connected. TODO: This second IF should depend on the boardfarm config for the board location Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/cdrouter_bootstrap.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 69b2ceb9..93bff471 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -64,11 +64,11 @@ def runTest(self): # CMTS = we route so no wan mac is used # if we route, we need to add routes wandutmac = None - if board.has_cmts: - # TODO: there are more missing ones + if board.has_cmts and wan.wan_cmts_provisioner: + # TODO: there are more missing ones CDrouter expects wan.sendline('ip route add 200.0.0.0/8 via 192.168.3.2') wan.expect(prompt) - else: + elif not wan.static_ip: for device in self.config.board['devices']: if device['name'] == 'wan': if 'alt_macaddr' in device: @@ -278,7 +278,7 @@ def add_cdrouter_config(config): self.recover() def recover(self): - if board.has_cmts: + if board.has_cmts and wan.wan_cmts_provisioner: # TODO: there are more missing ones (see above) wan.sendline('ip route del 200.0.0.0/8 via 192.168.3.2') wan.expect(prompt) From 9d08a78441f921b25c2d4a05a048941c62554ceb Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 31 Jul 2018 12:33:26 -0700 Subject: [PATCH 324/947] tests: cdrouter: fiskip non wan/lan devices for now Also, properly timeout and set vlan to zero if there is no match Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/cdrouter_bootstrap.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 93bff471..12b99b4e 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -91,13 +91,18 @@ def runTest(self): d = wan elif device['name'] == 'lan': d = lan + else: + continue if d is not None: d.vlan = getattr(device, 'vlan', 0) if d.vlan == 0: d.sendline('cat /proc/net/vlan/config') - d.expect('eth1.*\|\s([0-9]+).*\|') - d.vlan = d.match.group(1) + d.expect_exact('cat /proc/net/vlan/config') + if 0 == d.expect([pexpect.TIMEOUT, 'eth1.*\|\s([0-9]+).*\|'], timeout=5): + d.vlan = 0 + else: + d.vlan = d.match.group(1) d.expect(prompt) print ("Using %s for WAN vlan" % wan.vlan) From 54624e740f22e1e0b080db2ca8df73426a61cf22 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 31 Jul 2018 12:38:22 -0700 Subject: [PATCH 325/947] tests: cdrouter: set cdrouter wan/lan iface based on boardfarm config Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/cdrouter_bootstrap.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 12b99b4e..9f5ecea9 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -33,6 +33,16 @@ def runTest(self): elif self.config.cdrouter_server is not None: self.cdrouter_server = self.config.cdrouter_server + if 'cdrouter_wan_iface' in self.config.board: + self.cdrouter_wan_iface = self.config.board['cdrouter_wan_iface'] + else: + self.cdrouter_wan_iface = self.config.cdrouter_wan_iface + + if 'cdrouter_lan_iface' in self.config.board: + self.cdrouter_lan_iface = self.config.board['cdrouter_lan_iface'] + else: + self.cdrouter_lan_iface = self.config.cdrouter_lan_iface + if self.tests is None: self.skipTest("No tests defined!") @@ -110,7 +120,7 @@ def runTest(self): # TODO: move wan and lan interface to bft config? contents=""" -testvar wanInterface """ + self.config.cdrouter_wan_iface +testvar wanInterface """ + self.cdrouter_wan_iface if wandutmac is not None: contents=contents +""" testvar wanDutMac """ + wandutmac @@ -120,7 +130,7 @@ def runTest(self): testvar wanVlanId """ + wan.vlan contents=contents + """ -testvar lanInterface """ + self.config.cdrouter_lan_iface +testvar lanInterface """ + self.cdrouter_lan_iface if lan.vlan != 0: contents=contents + """ From d6d28f504cf5d998473f6d5c37d75bae54abb530 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 31 Jul 2018 12:54:11 -0700 Subject: [PATCH 326/947] tests: cdrouter: pull non-direct (cmts) config elements from boardfarm config Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/cdrouter_bootstrap.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 9f5ecea9..a20b60ec 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -174,15 +174,20 @@ def add_cdrouter_config(config): raise Exception("Failed to get erouter ip address") break + # TODO: mask from config? wanNatIp vs. wanIspAssignGateway? contents=contents + """ testvar wanMode static -testvar wanIspIp 192.168.3.2 -testvar wanIspGateway 192.168.3.1 +testvar wanIspIp %s +testvar wanIspGateway %s testvar wanIspMask 255.255.255.0 testvar wanIspAssignIp %s testvar wanNatIp %s -testvar IPv4HopCount 2 -testvar lanDnsServer %s""" % (wan_ip, wan_ip, board.get_dns_server()) +testvar IPv4HopCount %s +testvar lanDnsServer %s""" % (self.config.board['cdrouter_wanispip'], \ + self.config.board['cdrouter_wanispgateway'], \ + wan_ip, wan_ip, \ + self.config.board['cdrouter_ipv4hopcount'], \ + board.get_dns_server()) print("Using below for config:") print(contents) From 3ae153ba4d2e514e477a43737ddfe190d6724320 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 31 Jul 2018 15:12:45 -0700 Subject: [PATCH 327/947] tests: cdrouter: add a board specific delay Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/cdrouter_bootstrap.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index a20b60ec..66864ead 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -70,6 +70,9 @@ def runTest(self): board.wait_for_linux() board.wait_for_network() + # Add extra board specific delay + board.expect(pexpect.TIMEOUT, timeout=getattr(board, 'cdrouter_bootdelay', 0)) + # If alt mac addr is specified in config, use that.. # CMTS = we route so no wan mac is used # if we route, we need to add routes @@ -235,7 +238,7 @@ def add_cdrouter_config(config): if r.status == "paused" and end_of_start == True: end_of_start = False - # TODO: make this board specific? + # TODO: do we need this anymore? we have board specific cdrouter_bootdelay board.expect(pexpect.TIMEOUT, timeout=60) c.results.unpause(j.result_id) board.expect(pexpect.TIMEOUT, timeout=1) From 7dd863a8719d51713564a57e0f202e311f81cb7c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 31 Jul 2018 18:32:17 -0700 Subject: [PATCH 328/947] tests: cdrouter: attempt to ctrl-c with reset Doing this, and failing to break into the board and failing the test is bad if we could have just reset the board and gotten into it that way. So let's rearrange things. Also update a comment Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/cdrouter_bootstrap.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 66864ead..b5156d3f 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -56,13 +56,11 @@ def runTest(self): wan.sendline('ifconfig eth1 down') wan.expect(prompt) - board.sendcontrol('c') - board.expect(prompt) - - # TODO: make host configurable in bft config? c = CDRouter(self.cdrouter_server) try: + board.sendcontrol('c') + board.expect(prompt) board.sendline('reboot') board.expect('reboot: Restarting system') except: From d61e6039241d076934c34acb90d918b22c0e85e1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 6 Aug 2018 13:24:04 -0700 Subject: [PATCH 329/947] devices: owrt: add func to get dns of wan side This will return the DNS server that this board will use to relay or get DNS entries Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 5f013318..119b22a9 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -494,6 +494,13 @@ def wait_for_mounts(self): def get_dns_server(self): return "%s" % lan_gateway + def get_dns_server_upstream(self): + self.sendline('cat /etc/resolv.conf') + self.expect('nameserver (.*)\r\n', timeout=5) + ret = self.match.group(1) + self.expect(self.prompt) + return ret + if __name__ == '__main__': # Example use From 75956fb1de51086e26aea27e392653f81da5d76c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 6 Aug 2018 13:29:29 -0700 Subject: [PATCH 330/947] tests: cdrouter: add wanDnsServer option from runtime We can use the new board get_dns_server_upstream function to extract this value at runtime so let's add it to the CDrouter config Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/cdrouter_bootstrap.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index b5156d3f..4644c861 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -184,11 +184,13 @@ def add_cdrouter_config(config): testvar wanIspAssignIp %s testvar wanNatIp %s testvar IPv4HopCount %s -testvar lanDnsServer %s""" % (self.config.board['cdrouter_wanispip'], \ +testvar lanDnsServer %s +testvar wanDnsServer %s""" % (self.config.board['cdrouter_wanispip'], \ self.config.board['cdrouter_wanispgateway'], \ wan_ip, wan_ip, \ self.config.board['cdrouter_ipv4hopcount'], \ - board.get_dns_server()) + board.get_dns_server(), \ + board.get_dns_server_upstream()) print("Using below for config:") print(contents) From 498a4aeef7a774a10e7f010cdd92f4508b9de3e8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 6 Aug 2018 13:43:04 -0700 Subject: [PATCH 331/947] devices: debian: add options to keep ssh connection alive Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index 712fd434..c351e29d 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -59,7 +59,9 @@ def __init__(self, args=['%s@%s' % (username, name), '-p', port, '-o', 'StrictHostKeyChecking=no', - '-o', 'UserKnownHostsFile=/dev/null']) + '-o', 'UserKnownHostsFile=/dev/null', + '-o', 'ServerAliveInterval=60', + '-o', 'ServerAliveCountMax=5']) self.name = name else: name = None From 1a9fd5c71ecd7447a20914f75bfc19c21eb5a2d2 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 20 Aug 2018 11:27:42 -0700 Subject: [PATCH 332/947] bft: skip test if not found Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bft b/bft index 9baff8a2..bd61351f 100755 --- a/bft +++ b/bft @@ -275,6 +275,9 @@ def main(): import testsuites for i, name in enumerate(testsuites.list_tests[config.TEST_SUITE]): if isinstance(name, str): + if not hasattr(tests, name): + print_bold("\tTest %s skipped, not found..." % name) + continue test = getattr(tests, name) else: test = name From 5a832426a159e2ace868daeface9ced094712498 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 20 Aug 2018 12:41:10 -0700 Subject: [PATCH 333/947] tests: screenshot_gui: add some debug provisions Start vnc server if available, and then print a message and wait for user to connect if BFT_DEBUG is set in env... fallback to Xvfb otherwise. Close display after we are done in recover() Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/screenshot_gui.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/tests/screenshot_gui.py b/tests/screenshot_gui.py index 40e6894c..3075e35b 100644 --- a/tests/screenshot_gui.py +++ b/tests/screenshot_gui.py @@ -16,8 +16,18 @@ class ScreenshotGUI(rootfs_boot.RootFSBootTest): '''Starts Firefox via a proxy to the LAN and takes a screenshot''' def runTest(self): - display = Display(visible=0, size=(1366, 768)) - display.start() + try: + # try to start vnc server + self.display = Display(backend='xvnc', rfbport='5904', visible=0, size=(1366, 768)) + self.display.start() + + if "BFT_DEBUG" in os.environ: + print("Connect to VNC display running on localhost:5904") + raw_input("Press any key after connecting to display....") + except: + # fallback xvfb + display = Display(visible=0, size=(1366, 768)) + display.start() try: if 'http_proxy' in lan.config: @@ -51,3 +61,8 @@ def runTest(self): driver.save_screenshot(self.config.output_dir + os.sep + 'lan_portal.png') driver.close() + + self.recover() + + def recover(self): + self.display.stop() From 7ceda93ef38c862238f5d2f2014b996f2c6a0af3 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Sun, 26 Aug 2018 08:23:43 -0700 Subject: [PATCH 334/947] devices: power: add simple power/reset for PX2 PDU To test: >>> from devices import power >>> power.PX2('px2://10.64.51.3;1').reset() Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/power.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/devices/power.py b/devices/power.py index 1a1678ef..5fc3d0aa 100644 --- a/devices/power.py +++ b/devices/power.py @@ -59,6 +59,8 @@ def get_power_device(ip_address, username=None, password=None, outlet=None): return SimpleSerialPower(outlet=outlet) if "cmd://" in outlet: return SimpleCommandPower(outlet=outlet) + if "px2://" in outlet: + return PX2(outlet=outlet) return HumanButtonPusher() @@ -199,6 +201,33 @@ def reset(self, retry_attempts=2): continue raise Exception("\nProblem resetting outlet %s." % self.outlet) +class PX2(PowerDevice): + ''' + Power Unit from Raritan. + ''' + def __init__(self, + outlet, + username='admin', + password='scripter99'): + ip_address, self.outlet = outlet.replace("px2://", '').split(';') + PowerDevice.__init__(self, ip_address, username, password) + + pcon = pexpect.spawn('telnet %s' % self.ip_address) + pcon.expect('Login for PX2 CLI') + pcon.expect('Username:') + pcon.sendline(self.username) + pcon.expect('Password:') + pcon.sendline(self.password) + pcon.expect('Welcome to PX2 CLI!') + pcon.expect('# ') + + self.pcon = pcon + + def reset(self): + self.pcon.sendline('power outlets %s cycle /y' % self.outlet) + self.pcon.expect('# ') + + class HumanButtonPusher(PowerDevice): ''' Tell a person to physically reboot the router. From b467b8c83668af1d7d124df0154b2b81faa44abd Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 30 Aug 2018 16:04:57 -0500 Subject: [PATCH 335/947] devices: check for tftp vs tftpboot command in u-boot Some versions will fail or vice versa- so let's check help to see what command we have Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 119b22a9..62d80adc 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -186,8 +186,15 @@ def tftp_get_file_uboot(self, loadaddr, filename, timeout=60): '''Within u-boot, download file from tftp server.''' for attempt in range(3): try: - self.sendline("tftpboot %s %s" % (loadaddr, filename)) - self.expect_exact("tftpboot %s %s" % (loadaddr, filename)) + self.sendline('help') + self.expect_exact('help') + self.expect(self.uprompt) + if 'tftpboot' in self.before: + cmd = 'tftpboot' + else: + cmd = 'tftp' + self.sendline("%s %s %s" % (cmd, loadaddr, filename)) + self.expect_exact("%s %s %s" % (cmd, loadaddr, filename)) i = self.expect(['Bytes transferred = (\d+) (.* hex)'] + self.uprompt, timeout=timeout) if i != 0: continue From 7f7fcbd1b11b1b5aa328a352153af812e98f2f82 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 30 Aug 2018 16:05:51 -0500 Subject: [PATCH 336/947] devices: owrt: add helper to allow wan https Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 62d80adc..c85909eb 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -465,6 +465,10 @@ def uci_allow_wan_http(self, lan_ip="192.168.1.1"): def uci_allow_wan_ssh(self, lan_ip="192.168.1.1"): self.uci_forward_traffic_redirect("tcp", "22", lan_ip) + def uci_allow_wan_https(self): + '''Allow access to webgui from devices on WAN interface.''' + self.uci_forward_traffic_redirect("tcp", "443", "192.168.1.1") + def uci_forward_traffic_redirect(self, tcp_udp, port_wan, ip_lan): self.sendline('uci add firewall redirect') self.sendline('uci set firewall.@redirect[-1].src=wan') From b4ab85a4de8eb47fec4eff2e6ed9511cbc737f58 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 30 Aug 2018 16:06:14 -0500 Subject: [PATCH 337/947] devices: owrt: add expect for prompts Otherwise, we just blown right through all the prompts Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index c85909eb..48a30082 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -471,22 +471,38 @@ def uci_allow_wan_https(self): def uci_forward_traffic_redirect(self, tcp_udp, port_wan, ip_lan): self.sendline('uci add firewall redirect') + self.expect(self.prompt) self.sendline('uci set firewall.@redirect[-1].src=wan') + self.expect(self.prompt) self.sendline('uci set firewall.@redirect[-1].src_dport=%s' % port_wan) + self.expect(self.prompt) self.sendline('uci set firewall.@redirect[-1].proto=%s' % tcp_udp) + self.expect(self.prompt) + self.sendline('uci set firewall.@redirect[-1].dest=lan') + self.expect(self.prompt) self.sendline('uci set firewall.@redirect[-1].dest_ip=%s' % ip_lan) + self.expect(self.prompt) self.sendline('uci commit firewall') + self.expect(self.prompt) self.firewall_restart() def uci_forward_traffic_rule(self, tcp_udp, port, ip, target="ACCEPT"): self.sendline('uci add firewall rule') + self.expect(self.prompt) self.sendline('uci set firewall.@rule[-1].src=wan') + self.expect(self.prompt) self.sendline('uci set firewall.@rule[-1].proto=%s' % tcp_udp) + self.expect(self.prompt) self.sendline('uci set firewall.@rule[-1].dest=lan') + self.expect(self.prompt) self.sendline('uci set firewall.@rule[-1].dest_ip=%s' % ip) + self.expect(self.prompt) self.sendline('uci set firewall.@rule[-1].dest_port=%s' % port) + self.expect(self.prompt) self.sendline('uci set firewall.@rule[-1].target=%s' % target) + self.expect(self.prompt) self.sendline('uci commit firewall') + self.expect(self.prompt) self.firewall_restart() def wait_for_mounts(self): From bb675877796360a27f37e51610eaaa774ec4d67e Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 30 Aug 2018 16:12:07 -0500 Subject: [PATCH 338/947] tests: ubus: remove usused bits Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/ubus.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/tests/ubus.py b/tests/ubus.py index a19349b3..bb11cfd0 100644 --- a/tests/ubus.py +++ b/tests/ubus.py @@ -109,11 +109,3 @@ def runTest(self): ubus_system_reboot(session_id) board.wait_for_linux() - -class UBusTestKrouter(rootfs_boot.RootFSBootTest): - '''Krouter UBus tests''' - def runTest(self): - ubus_call("00000000000000000000000000000000", "krouter", "add_krouter_endpoint", { "macaddr": "00:11:22:33:44:55" }) - session_id = ubus_login_session() - ret = ubus_call(session_id, "krouter", "is_krouter_endpoint", { "macaddr": "00:11:22:33:44:55" }) - print ret From e1511cd3268b6b40c6f8be7a7bee8814e8be8ca1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 30 Aug 2018 16:24:27 -0500 Subject: [PATCH 339/947] devices: qcom_arm_base: refuse to flash 0x0 address This is wrong, so refuse for now, can determine why the SMEM is wrong later Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/qcom_arm_base.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/devices/qcom_arm_base.py b/devices/qcom_arm_base.py index 70bb20dd..5153c5a9 100644 --- a/devices/qcom_arm_base.py +++ b/devices/qcom_arm_base.py @@ -81,6 +81,9 @@ def nand_flash_bin(self, addr, size, src): # make sure we round writes up to the next sector size hsize = hex((((int(size, 0) - 1) / self.flash_block_size) + 1) * self.flash_block_size) + if addr == None or addr == "0x0": + raise Exception("Refusing to flash 0x0 or None values for addr") + self.sendline("nand erase %s %s" % (addr, size)) self.expect("OK", timeout=90) self.expect(self.uprompt) @@ -97,6 +100,9 @@ def nand_flash_bin(self, addr, size, src): self.expect(self.uprompt) def spi_flash_bin(self, addr, size, src, esize=None): + if addr == None or addr == "0x0": + raise Exception("Refusing to flash 0x0 or None values for addr") + if esize == None: esize = size From 0660dd06e572400ac56637b17704709c8a98926b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 30 Aug 2018 16:28:20 -0500 Subject: [PATCH 340/947] tests: bittorrent: various bt additions Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/bittorrent.py | 231 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 191 insertions(+), 40 deletions(-) diff --git a/tests/bittorrent.py b/tests/bittorrent.py index 2dcc0784..7f0666d0 100644 --- a/tests/bittorrent.py +++ b/tests/bittorrent.py @@ -9,61 +9,212 @@ import rootfs_boot from devices import board, wan, lan, prompt -import random +from random import randint import socket import struct import ipaddress from faker import Factory +import pexpect +import re +import time fake_generator = Factory.create() class BitTorrentBasic(rootfs_boot.RootFSBootTest): '''Super basic simulate of bittorrent traffic''' + + all_ips = [] + all_conns = [] + bad_nets = list(ipaddress.ip_network(u"192.168.0.0/24")) + \ + list(ipaddress.ip_network(u"192.168.1.0/24")) + \ + list(ipaddress.ip_network(u"10.200.150.0/24")) + + def startSingleUDP(self, maxtime=60): + while True: + random_ip = fake_generator.ipv4() + random_port = randint(1024, 65535) + if ipaddress.ip_address(random_ip.decode()) not in self.bad_nets: + if (ipaddress.ip_address(random_ip.decode()), random_port) not in self.all_ips: + break + else: + print ("Skipping ip addr: %s" % random_ip) + print("Connecting to %s:%s" % (random_ip, random_port)) + + self.all_ips.append((random_ip, random_port)) + + # start listners + wan.sendline('ip addr add %s/32 dev eth1' % random_ip) + wan.expect(prompt) + + random_rate = randint(1,1024) + random_size = randint(64, int(1024*random_rate*maxtime)) + + wan.sendline("nohup socat UDP4-RECVFROM:%s,bind=%s system:'(echo -n d1:ad2:id20:; head /dev/zero) | pv -L %sk' &" % (random_port, random_ip, random_rate)) + wan.expect(prompt) + + args = (random_size, random_rate, random_ip, random_port) + lan.sendline("nohup socat system:'(echo -n d1:ad2:id20:; head -c %s /dev/zero) | pv -L %sk' UDP4-SENDTO:%s:%s &" % args) + lan.expect(prompt) + + self.all_conns.append(args) + # size, rate, ip, port + return args + def runTest(self): - #lan.sendline('apt-get update && apt-get -o Dpkg::Options::="--force-confnew" -y install socat') - #lan.expect(prompt) + #for d in [wan, lan]: + #d.sendline('apt-get update && apt-get -o Dpkg::Options::="--force-confnew" -y install socat pv') + #d.expect(prompt) - self.all_ips = [] + max_time = 0 + single_max = 45 # TODO: query interfaces but this is OK for now - bad_nets = list(ipaddress.ip_network(u"192.168.0.0/24")) + \ - list(ipaddress.ip_network(u"192.168.1.0/24")) + \ - list(ipaddress.ip_network(u"10.200.150.0/24")) - for i in range(1000): - while True: - random_ip = fake_generator.ipv4() - if ipaddress.ip_address(random_ip.decode()) not in bad_nets: - if ipaddress.ip_address(random_ip.decode()) not in self.all_ips: - break - else: - print ("Skipping ip addr: %s" % random_ip) - random_port = random.randint(1024, 65535) - print("Connecting to %s:%s" % (random_ip, random_port)) - - self.all_ips.append(random_ip) - - # start listners - wan.sendline('ip addr add %s/32 dev eth1' % random_ip) - wan.expect(prompt) - - # this listens on this port on all ips, so we probably want unique ports too - wan.sendline('nc -w5 -ulp %s > /dev/null &' % random_port) - - args = (random.randint(64, 1073741824), random_ip, random_port) - lan.sendline('(echo d1:ad2:id20:; head -c %s < /dev/urandom) | nc -u %s %s &' % args) - lan.expect(prompt) - - lan.sendline('wait', timeout=120) - lan.expect(prompt) - self.recover() + # keep long running test alive + board.sendline() + board.expect(prompt) + print ("Starting connection %s" % i) + sz, rate, ip, port = self.startSingleUDP(maxtime=single_max) + print ("started UDP to %s:%s sz = %s, rate = %sk" % (ip, port, sz, rate)) - def recover(self): - for ip in self.all_ips: - wan.sendline('ip addr del %s/32 dev eth1' % ip) - wan.expect(prompt) + max_time = max(max_time, sz / ( rate * 1024)) + self.check_and_clean_ips() - wan.sendline('killall -9 nc') + print ("waiting max time of %ss" % max_time) + + start = time.time() + while time.time() - start < max_time + 5: + lan.sendline('wait') + lan.expect_exact('wait') + if 0 != lan.expect([pexpect.TIMEOUT] + prompt, timeout=max_time + 5): + lan.sendcontrol('c') + lan.expect(prompt) + self.check_and_clean_ips() + + self.recover() + + def cleanup_ip(self, ip): + wan.sendline('ip addr del %s/32 dev eth1' % ip) + wan.expect_exact('ip addr del %s/32 dev eth1' % ip) + wan.expect(prompt) + wan.sendline('pkill -9 -f socat.*bind=%s' % ip) wan.expect(prompt) - lan.sendline('killall -9 nc') + lan.sendline('pkill -9 -f socat.*UDP4-SENDTO:%s' % ip) + lan.expect(prompt) + + def check_and_clean_ips(self): + lan.sendline("echo SYNC; ps aux | grep socat | sed -e 's/.*UDP/UDP/g' | tr '\n' ' '") + lan.expect_exact("SYNC\r\n") lan.expect(prompt) + seen_ips = re.findall('UDP4-SENDTO:([^:]*):', lan.before) + + for done_ip in set(zip(*self.all_ips)[0]) - set(seen_ips): + self.cleanup_ip(done_ip) + self.all_ips = [e for e in self.all_ips if e[0] != done_ip ] + + def recover(self): + wan.sendcontrol('c') + wan.expect(prompt) + wan.sendline('killall -9 socat pv') + wan.expect_exact('killall -9 socat pv') + wan.expect(prompt) + + for d in [wan, lan]: + d.sendcontrol('c') + d.expect(prompt) + d.sendline('pgrep -f d1:ad2:id20') + d.expect_exact('pgrep -f d1:ad2:id20') + d.expect(prompt) + d.sendline('pkill -9 -f d1:ad2:id20') + d.expect_exact('pkill -9 -f d1:ad2:id20') + d.expect(prompt) + d.sendline('killall -9 socat') + d.expect_exact('killall -9 socat') + d.expect(prompt) + + for ip, port in self.all_ips: + self.cleanup_ip(ip) + +class BitTorrentSingle(BitTorrentBasic): + '''Single UDP/Bittorrent flow''' + + def runTest(self): + #for d in [wan, lan]: + #d.sendline('apt-get update && apt-get -o Dpkg::Options::="--force-confnew" -y install socat pv') + #d.expect(prompt) + + sz, rate, ip, port = self.startSingleUDP() + print ("started UDP to %s:%s sz = %s, rate = %sk" % (ip, port, sz, rate)) + time = sz / ( rate * 1024) + print("time should be ~%s" % time) + self.check_and_clean_ips() + lan.sendline('fg') + lan.expect(prompt, timeout=time+10) + + board.sendline('cat /proc/net/nf_conntrack | grep dst=%s.*dport=%s' % (ip, port)) + board.expect(prompt) + + self.recover() + +class BitTorrentB2B(BitTorrentBasic): + '''Single UDP/Bittorrent flow back-to-back''' + + def runTest(self): + #for d in [wan, lan]: + #d.sendline('apt-get update && apt-get -o Dpkg::Options::="--force-confnew" -y install socat pv') + #d.expect(prompt) + + maxtime=5 + + for i in range(10000): + sz, rate, ip, port = self.startSingleUDP(maxtime=maxtime) + print ("started UDP to %s:%s sz = %s, rate = %sk" % (ip, port, sz, rate)) + time = sz / ( rate * 1024) + print("time should be ~%s" % time) + self.check_and_clean_ips() + lan.sendline('fg') + lan.expect(prompt, timeout=5) + + board.sendline('cat /proc/net/nf_conntrack | grep dst=%s.*dport=%s' % (ip, port)) + board.expect(prompt) + + self.recover() + +class BitTorrentClient(rootfs_boot.RootFSBootTest): + def runTest(self): + board.sendcontrol('c') + board.expect(board.prompt) + board.sendline('logread -f &') + board.expect(board.prompt) + + lan.sendline('rm -rf Fedora*') + lan.expect(lan.prompt) + # TODO: apt-get install bittornado + for i in range(10): + lan.sendline("btdownloadheadless 'https://torrent.fedoraproject.org/torrents/Fedora-Games-Live-x86_64-28_Beta.torrent'") + lan.expect('saving:') + done = False + while not done: + lan.expect(pexpect.TIMEOUT, timeout=1) # flush buffer + if 0 == lan.expect(['time left: Download Succeeded!', pexpect.TIMEOUT], timeout=10): + print("Finished, restarting....") + done = True + board.expect(pexpect.TIMEOUT, timeout=5) + board.sendline() # keepalive + lan.sendcontrol('c') + lan.sendcontrol('c') + lan.sendcontrol('c') + lan.expect(lan.prompt) + lan.sendline('rm -rf Fedora*') + lan.expect(lan.prompt) + + def recover(self): + lan.sendcontrol('c') + lan.expect(lan.prompt) + lan.sendline('rm -rf Fedora*') + lan.expect(lan.prompt) + board.sendcontrol('c') + board.expect(board.prompt) + board.sendline('fg') + board.sendcontrol('c') + board.expect(board.prompt) From 54b423a2a446e9d6b333608f4c1912215f41da3f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 30 Aug 2018 17:34:00 -0500 Subject: [PATCH 341/947] devices: debian: make ssh expect slightly shorter This aboves some line wrap issues Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index c351e29d..9565f7e3 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -763,15 +763,14 @@ def start_lan_client(self, wan_gw=None): self.sendline('EOF') self.expect(self.prompt) # Copy an id to the router so people don't have to type a password to ssh or scp - self.sendline('nc %s 22 -w 1' % self.lan_gateway) - self.expect_exact('nc %s 22 -w 1' % self.lan_gateway) + self.sendline('nc %s 22 -w 1 | cut -c1-3' % self.lan_gateway) + self.expect_exact('nc %s 22 -w 1 | cut -c1-3' % self.lan_gateway) if 0 == self.expect(['SSH'] + self.prompt, timeout=5): self.sendcontrol('c') self.expect(self.prompt) self.sendline('[ -e /root/.ssh/id_rsa ] || ssh-keygen -N "" -f /root/.ssh/id_rsa') if 0 != self.expect(['Protocol mismatch.'] + self.prompt): self.sendline('scp ~/.ssh/id_rsa.pub %s:/etc/dropbear/authorized_keys' % self.lan_gateway) - self.expect_exact('scp ~/.ssh/id_rsa.pub %s:/etc/dropbear/authorized_keys' % self.lan_gateway) if 0 == self.expect(['assword:'] + self.prompt): self.sendline('password') self.expect(self.prompt) From e73b26c585741bad61f625b3e1fb4eca37b9651a Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 30 Aug 2018 22:39:21 -0500 Subject: [PATCH 342/947] devices: debian: allow installing packages after DHCP fails on lan device Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 9565f7e3..2ec6ee56 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -29,6 +29,7 @@ class DebianBox(base.BaseDevice): wan_no_eth0 = False wan_cmts_provisioner = False pkgs_installed = False + install_pkgs_after_dhcp = False def __init__(self, name, @@ -217,16 +218,27 @@ def install_pkgs(self): if self.pkgs_installed == True: return - if not self.wan_no_eth0 and not self.wan_dhcp: + if not self.wan_no_eth0 and not self.wan_dhcp and not self.install_pkgs_after_dhcp: self.sendline('ifconfig eth1 down') self.expect(self.prompt) pkgs = "isc-dhcp-server xinetd tinyproxy curl apache2-utils nmap psmisc vim-common tftpd-hpa pppoe isc-dhcp-server procps iptables lighttpd psmisc" + def _install_pkgs(): + self.sendline('apt-get update && apt-get -o DPkg::Options::="--force-confnew" -qy install %s' % pkgs) + if 0 == self.expect(['Reading package', pexpect.TIMEOUT], timeout=60): + self.expect(self.prompt, timeout=300) + else: + print("Failed to download packages, things might not work") + self.sendcontrol('c') + self.expect(self.prompt) + + self.pkgs_installed = True + # TODO: use netns for all this? undo_default_route = None self.sendline('ping -c1 deb.debian.org') - i = self.expect(['ping: unknown host', pexpect.TIMEOUT] + self.prompt, timeout=10) + i = self.expect(['ping: unknown host', 'connect: Network is unreachable', pexpect.TIMEOUT] + self.prompt, timeout=10) if 0 == i: # TODO: don't reference eth0, but the uplink iface self.sendline("echo SYNC; ip route list | grep 'via.*dev eth0' | awk '{print $3}'") @@ -246,24 +258,21 @@ def install_pkgs(self): self.sendcontrol('c') self.expect(self.prompt) elif 1 == i: + if self.install_pkgs_after_dhcp: + _install_pkgs() + else: + self.install_pkgs_after_dhcp = True + return + elif 2 == i: self.sendcontrol('c') self.expect(self.prompt) else: - self.sendline('apt-get update && apt-get -o DPkg::Options::="--force-confnew" -qy install %s' % pkgs) - if 0 == self.expect(['Reading package', pexpect.TIMEOUT], timeout=60): - self.expect(self.prompt, timeout=300) - else: - print("Failed to download packages, things might not work") - self.sendcontrol('c') - self.expect(self.prompt) + _install_pkgs() if undo_default_route is not None: self.sendline("ip route del default via %s" % undo_default_route) self.expect(self.prompt) - self.pkgs_installed = True - - def ip_neigh_flush(self): self.sendline('\nip -s neigh flush all') self.expect('flush all') @@ -774,11 +783,13 @@ def start_lan_client(self, wan_gw=None): if 0 == self.expect(['assword:'] + self.prompt): self.sendline('password') self.expect(self.prompt) - else: self.sendcontrol('c') self.expect(self.prompt) + if self.install_pkgs_after_dhcp: + self.install_pkgs() + if wan_gw is not None and 'options' in self.config and \ 'lan-fixed-route-to-wan' in self.config['options']: self.sendline("ip route list 0/0 | awk '{print $3}'") From cdf4a3ca2dce1648a1ff653ce771cb40136cfc01 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 31 Aug 2018 10:24:58 -0500 Subject: [PATCH 343/947] devices: fix case where model is a string not a set If model is just a string (which a set of one string gets reduced to a string for some reason) then substrings will start to match so model ap148 will match ap148-nor device class. So we need to handle this case to make the devices stay the same Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/__init__.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/devices/__init__.py b/devices/__init__.py index e9b00d0b..1fc0d5ee 100644 --- a/devices/__init__.py +++ b/devices/__init__.py @@ -65,7 +65,15 @@ def initialize_devices(configuration): def get_device(model, **kwargs): for device_file, devs in device_mappings.iteritems(): for dev in devs: - if 'model' in dev.__dict__ and model in dev.__dict__['model']: + if 'model' in dev.__dict__: + + attr = dev.__dict__['model'] + + if type(attr) is str and model != attr: + continue + elif type(attr) is tuple and model not in attr: + continue + try: return dev(model, **kwargs) except KeyboardInterrupt: From 212a692161a17bc3fdab1bc5e69b920249de859f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 4 Sep 2018 13:51:54 -0700 Subject: [PATCH 344/947] bft: add feature selection option While one could use the filter for most of this, you can more precisely specify what features you want on the command line: $ ./bft -b rpi3 -q feature1 feature2 Then it will pick from boards with the given features Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- arguments.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arguments.py b/arguments.py index 66a97502..6fbf16bf 100755 --- a/arguments.py +++ b/arguments.py @@ -78,6 +78,7 @@ def parse(): parser.add_argument('-c', '--config_file', metavar='', type=str, default=boardfarm_config_location, help='JSON config file for boardfarm') parser.add_argument('--bootargs', metavar='', type=str, default=None, help='bootargs to set or append to default args (board dependant)') parser.add_argument('-g', '--golden', metavar='', type=str, default=None, help='Path to JSON results to compare against (golden master)') + parser.add_argument('-q', '--feature', metavar='', type=str, default=[], nargs='+', help='Features required for this test run') args = parser.parse_args() @@ -239,6 +240,14 @@ def add_basic_auth(login_str, request): config.boardfarm_config[b]['available_for_autotests'] == False: # Skip this board continue + if args.feature != [] : + if 'feature' not in config.boardfarm_config[b]: + continue + features = config.boardfarm_config[b]['feature'] + if type(features) is str or type(features) is unicode: + features = [features] + if set(args.feature) != set(args.feature) & set(features): + continue for t in args.board_type: if config.boardfarm_config[b]['board_type'].lower() == t.lower(): if args.filter: @@ -265,6 +274,7 @@ def add_basic_auth(login_str, request): config.setup_device_networking = not args.no_network config.bootargs = args.bootargs config.golden = args.golden + config.features = args.feature return config From f8008f1c54ffb5bfaa2da5ea2d04cf1dba111100 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 4 Sep 2018 14:13:41 -0700 Subject: [PATCH 345/947] bft: move devices with a feature to end of list We will select these boards last, if no feature option was passed in. The idea here is that we will "save" boards with features for the tests designed to run on them. If no other boards are available we will take on of the feature boards and give the test run a shot Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bft b/bft index bd61351f..1839287d 100755 --- a/bft +++ b/bft @@ -130,6 +130,9 @@ def main(): # Connect to any board in list connected_to_board = False random.shuffle(config.BOARD_NAMES) + if config.features == []: + # move boards with a feature to end of the list + config.BOARD_NAMES = sorted(config.BOARD_NAMES, key=lambda x: 'feature' in config.boardfarm_config[x]) for name in config.BOARD_NAMES: try: config.board = config.boardfarm_config[name] From 09f0e925c68d0e52e2b0416b65b4b303e21206af Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 28 Jun 2018 16:48:11 -0500 Subject: [PATCH 346/947] travis: add travisci testsuite for automated test Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- .travis.yml | 4 ++-- testsuites.cfg | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2faabd61..0130138d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,7 +14,7 @@ before_install: script: - ./bft -l - ./bft -i - - yes | ./bft -b qemux86 -r https://www.dropbox.com/s/ydgqcjz3wy5v0pm/X86EMLTRBB_default_20180627181048.vmdk?dl=0 -y + - yes | ./bft -b qemux86 -r https://www.dropbox.com/s/ydgqcjz3wy5v0pm/X86EMLTRBB_default_20180627181048.vmdk?dl=0 -y -x travisci - grep tests_fail...0, results/test_results.json after_failure: - - yes | BFT_DEBUG=y ./bft -b qemux86 -r https://www.dropbox.com/s/ydgqcjz3wy5v0pm/X86EMLTRBB_default_20180627181048.vmdk?dl=0 -y + - yes | BFT_DEBUG=y ./bft -b qemux86 -r https://www.dropbox.com/s/ydgqcjz3wy5v0pm/X86EMLTRBB_default_20180627181048.vmdk?dl=0 -y -x travisci diff --git a/testsuites.cfg b/testsuites.cfg index a5e90a86..de628d55 100644 --- a/testsuites.cfg +++ b/testsuites.cfg @@ -124,3 +124,14 @@ RebootHard MemoryUse RebootHard MemoryUse + +[travisci] +RootFSBootTest +SleepHalfMinute +KernelModules +MemoryUse +InterfacesShow +LanDevPingRouter +RouterPingWanDev +LanDevPingWanDev +iPerf3Test From f9c683faa61458c176c81515e4ffc33101608b7a Mon Sep 17 00:00:00 2001 From: MartinCBN <martin_wu@compalbn.com> Date: Fri, 7 Sep 2018 19:36:56 +0800 Subject: [PATCH 347/947] tests:lib:installers.py: add vsftpd server setup -tests:lib:installers.py: add vsftpd server setup add install vsftpd server setup Signed-off-by: MartinCBN <martin_wu@compalbn.com> --- tests/lib/installers.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 356dd7d3..3444d8ad 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -268,3 +268,20 @@ def install_snmp(device): device.expect(device.prompt) device.sendline('apt-get install snmp -y') device.expect(device.prompt, timeout=60) + +def install_vsftpd(device): + '''Install vsftpd if not present.''' + device.sendline('\nvsftpd -v') + try: + device.expect('vsftpd: version', timeout=10) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install vsftpd -y') + device.expect(device.prompt, timeout=60) + device.sendline('sed -i "s/pam_service_name=vsftpd/pam_service_name=ftp/g" /etc/vsftpd.conf') + device.expect(device.prompt, timeout=5) + device.sendline('sed -i "s/#write_enable=YES/write_enable=YES/g" /etc/vsftpd.conf') + device.expect(device.prompt, timeout=5) + device.sendline('service vsftpd restart') + device.expect(device.prompt, timeout=60) From cfdb43905ecd2fec39d63a30da44a307f4c3bc9f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 7 Sep 2018 11:03:05 -0500 Subject: [PATCH 348/947] devices: qemu: if kvm in use, retry without kvm KVM can be used by something else even though we are capable, so if we fail for that reason, let's try again without KVM Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/qemu.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/devices/qemu.py b/devices/qemu.py index 8cb78e0b..56b51de3 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -88,12 +88,23 @@ def temp_download(url): kvm_chk = pexpect.spawn('sudo kvm-ok') if 0 != kvm_chk.expect(['KVM acceleration can be used', pexpect.EOF]): cmd = cmd.replace('--enable-kvm ', '') - self.kvm = True + self.kvm = False + + try: + pexpect.spawn.__init__(self, command='/bin/bash', + args=["-c", cmd], env=env) + self.expect(pexpect.TIMEOUT, timeout=1) + except pexpect.EOF as e: + if 'failed to initialize KVM: Device or resource busy' in self.before or \ + 'failed to initialize KVM: Cannot allocate memory' in self.before: + cmd = cmd.replace('--enable-kvm ', '') + self.kvm = False + pexpect.spawn.__init__(self, command='/bin/bash', + args=["-c", cmd], env=env) + else: + raise - # spawn a simple bash shell for now, will launch qemu later self.cmd = cmd - pexpect.spawn.__init__(self, command='/bin/bash', - args=["-c", cmd], env=env) if kernel is None: self.expect("SYSLINUX") self.logfile_read = output @@ -134,7 +145,7 @@ def wait_for_linux(self): if self.kvm: self.expect('login:', timeout=60) else: - self.expect('login:') + self.expect('login:', timeout=120) self.sendline('root') if self.kvm: tout = 60 From 63af0dd590ebc9268434dcf740dc76361af308f6 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 7 Sep 2018 11:10:06 -0500 Subject: [PATCH 349/947] tests: cdrouter: don't generate error if cdrouter server not defined This fixes this error: Failed to run <class 'tests.cdrouter_bootstrap.CDrouterCustom'> parse function! Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/cdrouter_bootstrap.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 4644c861..807f1fe1 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -330,6 +330,8 @@ def parse(config): cdrouter_server = config.board['cdrouter_server'] elif config.cdrouter_server is not None: cdrouter_server = config.cdrouter_server + else: + return [] c = CDRouter(cdrouter_server) cdrouter_test_matrix = {} From 5a8da43da4a8af906251b243f10cf5113804cb36 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 6 Sep 2018 15:19:33 -0700 Subject: [PATCH 350/947] zephyr: don't hard code verid, fix function We should be looking this value up Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- zephyr/zephyr_reporter.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/zephyr/zephyr_reporter.py b/zephyr/zephyr_reporter.py index 2a236630..739e8c41 100644 --- a/zephyr/zephyr_reporter.py +++ b/zephyr/zephyr_reporter.py @@ -63,10 +63,10 @@ def get_jira_release_id(rel_name, jira, proj): """Return the ID of the release in a given project""" versions = jira.project_versions(proj) for version in reversed(versions): - #if version.name == rel_name: - version.id = "32880" + if version.name == rel_name: return version.id - #return '' + + raise Exception("Failed to get version id for release %s" % rel_name) def update_automation_status(issue): @@ -107,8 +107,7 @@ def update_zephyr(test_cases_list): options={'server': args["jira_url"]}) proj = jira.project(args["project"]) - #verid = get_jira_release_id(args.release, jira, proj) - verid = "32880" + verid = get_jira_release_id(args['release'], jira, proj) cycleName = args["cycle"] cycleName = cycleName + "_" + str((datetime.datetime.now()).strftime("%Y%m%d%H%M%S")) From 59ad6c2d8e5fc1d259311a81bfd5a80440f4e6ec Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 6 Sep 2018 15:20:09 -0700 Subject: [PATCH 351/947] zephyr: look in BFT_OVERLAY for zephyr config Fall back to the default one... we prioritize configs based on order they are set in BFT_OVERLAY for the time being Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- zephyr/zephyr_reporter.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/zephyr/zephyr_reporter.py b/zephyr/zephyr_reporter.py index 739e8c41..dd6a1599 100644 --- a/zephyr/zephyr_reporter.py +++ b/zephyr/zephyr_reporter.py @@ -85,15 +85,17 @@ def get_test_id_from_meta_file(meta_file, test_name): return test_id def parse_zapi_config(): - data = json.load(open('zephyr/zapi_configuration.json')) + if 'BFT_OVERLAY' in os.environ: + for overlay in os.environ['BFT_OVERLAY'].split(' '): + zdir = os.path.join(os.path.abspath(overlay), 'zephyr') + if os.path.exists(zdir): + data = json.load(open(os.path.join(zdir, 'zapi_configuration.json'))) + data['metafile'] = os.path.join(zdir, 'boardfarm_tc_meta_file.csv') + return data + + data = json.load(open('zephyr/zapi_configuration.json')) return data - length = len(data["test_results"]) - - for len in range(0, length): - - test_case = data["test_results"][len]["name"] - def update_zephyr(test_cases_list): args=parse_zapi_config() From bcb1e7fbb1b774415b98a23593935801f615887d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 6 Sep 2018 15:21:10 -0700 Subject: [PATCH 352/947] zephyr: print error message with getting 403 error Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- zephyr/zephyr_reporter.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/zephyr/zephyr_reporter.py b/zephyr/zephyr_reporter.py index dd6a1599..f2134fe9 100644 --- a/zephyr/zephyr_reporter.py +++ b/zephyr/zephyr_reporter.py @@ -11,6 +11,7 @@ from jira import JIRA import zapi from jira import JIRA +import requests COLUMN_SCRIPT_NAME="TestScript Name" COLUMN_JIRA_TEST_ID="Jira ID" @@ -153,10 +154,13 @@ def update_zephyr(test_cases_list): if result == 'Exp FAIL': result = 'FAIL' - reporter.set_execution(result, + ret = reporter.set_execution(result, exec_id, log_data) + if ret.status_code != requests.codes.ok: + raise Exception("Error = %s, when trying to set execution status" % ret) + if __name__ == "__main__": ARGS = parse_arguments() main(ARGS) From 21357a732b3ef343362075cc4e5f36fdd7feee64 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 7 Sep 2018 16:26:31 -0500 Subject: [PATCH 353/947] devices: base: add function to get iface mac addr Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/base.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/devices/base.py b/devices/base.py index 34bf2b0a..d5170fad 100644 --- a/devices/base.py +++ b/devices/base.py @@ -36,6 +36,12 @@ def get_interface_ip6addr(self, interface): self.expect(self.prompt) return ipaddr + def get_interface_macaddr(self, interface): + self.sendline('cat /sys/class/net/%s/address' % interface) + self.expect_exact('cat /sys/class/net/%s/address' % interface) + self.expect(self.prompt) + return self.before.strip() + def get_logfile_read(self): if hasattr(self, "_logfile_read"): return self._logfile_read From 03241fc71c6307b87e0d5bfe635bd208328b2e9d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 7 Sep 2018 16:26:49 -0500 Subject: [PATCH 354/947] tests: bittorrent: add mintime option to udp bt conn Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/bittorrent.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/bittorrent.py b/tests/bittorrent.py index 7f0666d0..6e731597 100644 --- a/tests/bittorrent.py +++ b/tests/bittorrent.py @@ -29,7 +29,7 @@ class BitTorrentBasic(rootfs_boot.RootFSBootTest): list(ipaddress.ip_network(u"192.168.1.0/24")) + \ list(ipaddress.ip_network(u"10.200.150.0/24")) - def startSingleUDP(self, maxtime=60): + def startSingleUDP(self, mintime=1, maxtime=60): while True: random_ip = fake_generator.ipv4() random_port = randint(1024, 65535) @@ -47,7 +47,7 @@ def startSingleUDP(self, maxtime=60): wan.expect(prompt) random_rate = randint(1,1024) - random_size = randint(64, int(1024*random_rate*maxtime)) + random_size = randint(int(1*random_rate*mintime), int(1024*random_rate*maxtime)) wan.sendline("nohup socat UDP4-RECVFROM:%s,bind=%s system:'(echo -n d1:ad2:id20:; head /dev/zero) | pv -L %sk' &" % (random_port, random_ip, random_rate)) wan.expect(prompt) From 5aa1779c50c75cfc87d1243ead0dccf9388386cf Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 10 Sep 2018 10:04:28 -0700 Subject: [PATCH 355/947] zephyr: allow config to override exec status codes This just needs to be added as a dict in the zapi config json file Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- zephyr/zapi.py | 4 ++-- zephyr/zephyr_reporter.py | 12 +++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/zephyr/zapi.py b/zephyr/zapi.py index 20a56d1f..199f13c1 100644 --- a/zephyr/zapi.py +++ b/zephyr/zapi.py @@ -134,9 +134,9 @@ def set_execution_field(self, execution_id, field, value): print (data) return response - def set_execution(self, exec_status, execution_id, comment=""): + def set_execution(self, exec_status, execution_id, comment="", status_code_dict=STATUS_CODE_DICT): """Set the execution status of a given test's executionid""" - data = {"status": STATUS_CODE_DICT[exec_status], + data = {"status": status_code_dict[exec_status], "comment": comment} req_url = self._zapi_url + 'execution/' + execution_id + '/execute' response = put(req_url, diff --git a/zephyr/zephyr_reporter.py b/zephyr/zephyr_reporter.py index f2134fe9..0fc524fa 100644 --- a/zephyr/zephyr_reporter.py +++ b/zephyr/zephyr_reporter.py @@ -154,9 +154,15 @@ def update_zephyr(test_cases_list): if result == 'Exp FAIL': result = 'FAIL' - ret = reporter.set_execution(result, - exec_id, - log_data) + if 'status_codes' in args: + ret = reporter.set_execution(result, + exec_id, + log_data, + status_code_dict=args['status_codes']) + else: + ret = reporter.set_execution(result, + exec_id, + log_data) if ret.status_code != requests.codes.ok: raise Exception("Error = %s, when trying to set execution status" % ret) From 29cc4995d4c05e7eb4047bbc511beae1af185a84 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 10 Sep 2018 10:05:14 -0700 Subject: [PATCH 356/947] zephyr: print error info if set exec status fails Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- zephyr/zapi.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/zephyr/zapi.py b/zephyr/zapi.py index 199f13c1..7f2ef0ad 100644 --- a/zephyr/zapi.py +++ b/zephyr/zapi.py @@ -143,4 +143,8 @@ def set_execution(self, exec_status, execution_id, comment="", status_code_dict= json=data, headers=self._zapi_hdr, auth=(self._usr, self._pwd)) + if response.status_code <> 200: + print ("WARNING: " + response.text) + print (req_url) + print (data) return response From 8795942257fadcda1029110682ee15bc385a99ed Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 10 Sep 2018 10:05:27 -0700 Subject: [PATCH 357/947] zephyr: continue to next test if test id not found This fixes a bug where an undefined test will overwrite the status of the previously run test Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- zephyr/zephyr_reporter.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/zephyr/zephyr_reporter.py b/zephyr/zephyr_reporter.py index 0fc524fa..213c71e9 100644 --- a/zephyr/zephyr_reporter.py +++ b/zephyr/zephyr_reporter.py @@ -136,6 +136,9 @@ def update_zephyr(test_cases_list): if test_id: print "Found Test ID in Meta file : " + test_id issue = jira.issue(test_id) + else: + continue + if args["updateautomationstatus"]: update_automation_status(issue) From 4f2c224d630187eb5df031bd7202974485ed88fe Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 10 Sep 2018 10:22:37 -0700 Subject: [PATCH 358/947] zephyr: allow reporting results to multiple servers It will attempt to upload results to multiple JIRA/Zephyr servers Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- zephyr/zephyr_reporter.py | 155 ++++++++++++++++++++------------------ 1 file changed, 81 insertions(+), 74 deletions(-) diff --git a/zephyr/zephyr_reporter.py b/zephyr/zephyr_reporter.py index 213c71e9..c6110f0a 100644 --- a/zephyr/zephyr_reporter.py +++ b/zephyr/zephyr_reporter.py @@ -86,89 +86,96 @@ def get_test_id_from_meta_file(meta_file, test_name): return test_id def parse_zapi_config(): - if 'BFT_OVERLAY' in os.environ: - for overlay in os.environ['BFT_OVERLAY'].split(' '): - zdir = os.path.join(os.path.abspath(overlay), 'zephyr') - if os.path.exists(zdir): - data = json.load(open(os.path.join(zdir, 'zapi_configuration.json'))) - data['metafile'] = os.path.join(zdir, 'boardfarm_tc_meta_file.csv') - return data + data = [] + if 'BFT_OVERLAY' in os.environ: + for overlay in os.environ['BFT_OVERLAY'].split(' '): + zdir = os.path.join(os.path.abspath(overlay), 'zephyr') + if os.path.exists(zdir): + data.append(json.load(open(os.path.join(zdir, 'zapi_configuration.json')))) + data[-1]['metafile'] = os.path.join(zdir, 'boardfarm_tc_meta_file.csv') - data = json.load(open('zephyr/zapi_configuration.json')) - return data + # TODO: opensource zephyr for boardfarm tests? + if os.path.exists('zephyr/zapi_configuration.json'): + data.append(json.load(open('zephyr/zapi_configuration.json'))) + + return data def update_zephyr(test_cases_list): args=parse_zapi_config() - - if "JIRA_URL" == args['jira_url']: + if len(args) == 0: print("Zephyr is not configured, skipping...") return - """"Main routine""" - - jira = JIRA(basic_auth=(args["user"], args["passwd"]), - options={'server': args["jira_url"]}) - - proj = jira.project(args["project"]) - verid = get_jira_release_id(args['release'], jira, proj) - cycleName = args["cycle"] - cycleName = cycleName + "_" + str((datetime.datetime.now()).strftime("%Y%m%d%H%M%S")) - - - reporter = zapi.Zapi(project_id=proj.id, - version_id=verid, - environment=str(args["environment"]), - build=args["build"], - jira_url=args["jira_url"], - usr=args["user"], - pwd=args["passwd"]) - if args["cycle"] is None: - args["cycle"] = args["build"] - reporter.get_or_create_cycle(str(cycleName)) - - result = "" - - for i in range(len(test_cases_list)): - test_name = test_cases_list[i][0] - print "Test_name :" + test_name - test_id = get_test_id_from_meta_file(args["metafile"], test_name) - - if test_id: - print "Found Test ID in Meta file : " + test_id - issue = jira.issue(test_id) - else: + for z in args: + if "JIRA_URL" == z['jira_url'] or "JIRAPASSWORD" == z['passwd']: + # This is not configure, skip to next continue - if args["updateautomationstatus"]: - update_automation_status(issue) - - exec_id = reporter.create_execution(str(issue.id)) - result = test_cases_list[i][1] - print "Test case Result: " + result - log_data = "sample log data" - if result == 'FAIL': - result = 'FAIL' - if result == 'OK': - result = 'PASS' - if result == 'None': - result = 'FAIL' - if result == 'SKIP': - result = 'NOT TESTED' - if result == 'Exp FAIL': - result = 'FAIL' - - if 'status_codes' in args: - ret = reporter.set_execution(result, - exec_id, - log_data, - status_code_dict=args['status_codes']) - else: - ret = reporter.set_execution(result, - exec_id, - log_data) - - if ret.status_code != requests.codes.ok: - raise Exception("Error = %s, when trying to set execution status" % ret) + """"Main routine""" + + jira = JIRA(basic_auth=(z["user"], z["passwd"]), + options={'server': z["jira_url"]}) + + proj = jira.project(z["project"]) + verid = get_jira_release_id(z['release'], jira, proj) + cycleName = z["cycle"] + cycleName = cycleName + "_" + str((datetime.datetime.now()).strftime("%Y%m%d%H%M%S")) + + + reporter = zapi.Zapi(project_id=proj.id, + version_id=verid, + environment=str(z["environment"]), + build=z["build"], + jira_url=z["jira_url"], + usr=z["user"], + pwd=z["passwd"]) + if z["cycle"] is None: + z["cycle"] = z["build"] + reporter.get_or_create_cycle(str(cycleName)) + + result = "" + + for i in range(len(test_cases_list)): + test_name = test_cases_list[i][0] + print "Test_name :" + test_name + test_id = get_test_id_from_meta_file(z["metafile"], test_name) + + if test_id: + print "Found Test ID in Meta file : " + test_id + issue = jira.issue(test_id) + else: + continue + + if z["updateautomationstatus"]: + update_automation_status(issue) + + exec_id = reporter.create_execution(str(issue.id)) + result = test_cases_list[i][1] + print "Test case Result: " + result + log_data = "sample log data" + if result == 'FAIL': + result = 'FAIL' + if result == 'OK': + result = 'PASS' + if result == 'None': + result = 'FAIL' + if result == 'SKIP': + result = 'NOT TESTED' + if result == 'Exp FAIL': + result = 'FAIL' + + if 'status_codes' in z: + ret = reporter.set_execution(result, + exec_id, + log_data, + status_code_dict=z['status_codes']) + else: + ret = reporter.set_execution(result, + exec_id, + log_data) + + if ret.status_code != requests.codes.ok: + raise Exception("Error = %s, when trying to set execution status" % ret) if __name__ == "__main__": ARGS = parse_arguments() From 70c766167f237540245e9fa1d0c73f9de661ef55 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 6 Sep 2018 09:59:28 -0700 Subject: [PATCH 359/947] devices: local_cmd: skip to next device if cmd closes This will simply fail if we don't connect to the device via this comamnd. Let's raise an exception instead so it backs out and trys another board if one is available Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/local_cmd.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/devices/local_cmd.py b/devices/local_cmd.py index 877be0fb..f08445fb 100644 --- a/devices/local_cmd.py +++ b/devices/local_cmd.py @@ -9,9 +9,13 @@ def __init__(self, device=None, conn_cmd=None, **kwargs): self.conn_cmd = conn_cmd def connect(self): - pexpect.spawn.__init__(self.device, - command='/bin/bash', - args=['-c', self.conn_cmd]) + try: + pexpect.spawn.__init__(self.device, + command='/bin/bash', + args=['-c', self.conn_cmd]) + self.device.expect(pexpect.TIMEOUT, timeout=5) + except pexpect.EOF as e: + raise Exception("Board is in use (connection refused).") def close(): self.device.sendcontrol('c') From fac4b9851b30fa9513fd0994a375f5db9c054038 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 6 Sep 2018 16:40:47 +0000 Subject: [PATCH 360/947] deploy-boardfarm-nodes: ping default route Wake up these containers so the upstream switch knows about these mac addresses Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 7a4148e7..77eddb2a 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -14,7 +14,7 @@ local_route () { # TODO: This is a problem if the router network matches the host network host_dev=$(ip route list | grep ^default | awk '{print $5}' ) local_route=$(ip route | grep "dev $host_dev" | grep src | awk '{print $1}' | head -n1) - docker exec $cname ip route add $local_route dev eth0 via 172.17.0.1 + docker exec $cname ip route add $local_route dev eth0 via 192.168.101.1 } # eth0 is docker private network, eth1 is vlan on specific interface @@ -78,6 +78,7 @@ create_container_eth1_static () { docker exec $cname ip link set eth1 up docker exec $cname ip addr add $ip dev eth1 docker exec $cname ip route add default via $default_route dev eth1 + docker exec $cname ping $default_route -c3 } [ "$IFACE" = "undefined" ] && return From 522328309529efe94dd0d43139c132606d11fc01 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 5 Sep 2018 15:28:35 -0700 Subject: [PATCH 361/947] devices: debian: make static route for lan device as well Keep static route for wan with the 'wan-' prefix and make this work for both wan and lan if required. This let's us keep static routes set for wan and lan devices. The use case here is to keep the main SSH connection established to the device. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 2ec6ee56..350a83ac 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -111,6 +111,9 @@ def __init__(self, self.static_ip = True if opt.startswith('wan-static-route:'): self.static_route = opt.replace('wan-static-route:', '').replace('-', ' via ') + # TODO: remove wan-static-route at some point above + if opt.startswith('static-route:'): + self.static_route = opt.replace('static-route:', '').replace('-', ' via ') if opt.startswith('wan-dhcp-client'): self.wan_dhcp = True if opt.startswith('wan-cmts-provisioner'): @@ -402,6 +405,12 @@ def configure(self, kind, config=[]): elif kind == "lan_device": self.setup_as_lan_device() + if self.static_route is not None: + # TODO: add some ppint handle this more robustly + self.send('ip route del %s; ' % self.static_route.split(' via ')[0]) + self.sendline('ip route add %s' % self.static_route) + self.expect(self.prompt) + def update_cmts_isc_dhcp_config(self, board_config): self.sendline('''cat > /etc/dhcp/dhcpd.conf << EOF log-facility local7; @@ -682,12 +691,6 @@ def setup_as_wan_gateway(self): self.turn_off_pppoe() - if self.static_route is not None: - # TODO: add some ppint handle this more robustly - self.send('ip route del %s; ' % self.static_route.split(' via ')[0]) - self.sendline('ip route add %s' % self.static_route) - self.expect(self.prompt) - def setup_as_lan_device(self): # potential cleanup so this wan device works self.sendline('killall iperf ab hping3') From affd4e7f2b7d3012ce8c2d6b78fdb848ec126f89 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 10 Sep 2018 13:40:00 -0700 Subject: [PATCH 362/947] html: scan all overlays for html and use first one in overlay list This fixes regressions where we did not use the template in the html dir Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- make_human_readable.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/make_human_readable.py b/make_human_readable.py index 0706f963..df1ceb83 100644 --- a/make_human_readable.py +++ b/make_human_readable.py @@ -31,10 +31,13 @@ def pick_template_filename(): basic = owrt_tests_dir+"/html/template_results_basic.html" full = owrt_tests_dir+"/html/template_results.html" if 'BFT_OVERLAY' in os.environ: - if os.path.isfile(os.environ['BFT_OVERLAY'] + "/html/template_results_basic.html"): - basic = os.environ['BFT_OVERLAY'] + "/html/template_results_basic.html" - if os.path.isfile(os.environ['BFT_OVERLAY'] + "/html/template_results.html"): - full = os.environ['BFT_OVERLAY'] + "/html/template_results.html" + for overlay in os.environ['BFT_OVERLAY'].split(' '): + if os.path.isfile(overlay + "/html/template_results_basic.html"): + basic = overlay + "/html/template_results_basic.html" + break + if os.path.isfile(overlay + "/html/template_results.html"): + full = overlay + "/html/template_results.html" + break templates = {'basic': basic, 'full': full} From 7859f9c66ff4e9d545236e50660a2c9d0d267789 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 13 Sep 2018 16:06:46 -0500 Subject: [PATCH 363/947] testsuites: wait longer or board to stabilize See issues where network is not stable yet and tests will fail. Since this is an automated test we need it to work around our unstable virtualized build Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- testsuites.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testsuites.cfg b/testsuites.cfg index de628d55..e995e892 100644 --- a/testsuites.cfg +++ b/testsuites.cfg @@ -127,7 +127,7 @@ MemoryUse [travisci] RootFSBootTest -SleepHalfMinute +Sleep5Minute KernelModules MemoryUse InterfacesShow From 1807e156f31e88e5524a7d2ccb05d3c67685ba58 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 18 Sep 2018 22:27:58 -0500 Subject: [PATCH 364/947] deploy-boardfarm-nodes: pick docker0 as interface to route via Previous commit changed this from the default docker route, so let's just ask the interface instead Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 77eddb2a..961bf8bd 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -14,7 +14,8 @@ local_route () { # TODO: This is a problem if the router network matches the host network host_dev=$(ip route list | grep ^default | awk '{print $5}' ) local_route=$(ip route | grep "dev $host_dev" | grep src | awk '{print $1}' | head -n1) - docker exec $cname ip route add $local_route dev eth0 via 192.168.101.1 + docker0=$(ip -4 addr show docker0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}') + docker exec $cname ip route add $local_route dev eth0 via $docker0 } # eth0 is docker private network, eth1 is vlan on specific interface From df83123f50a08e21eec99969c6093d0da35a94be Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 21 Sep 2018 16:03:12 -0500 Subject: [PATCH 365/947] tests: interact: allow running tests in overlay These were just missing before, this should add them back Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/interact.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/interact.py b/tests/interact.py index 0f08c534..74127e37 100644 --- a/tests/interact.py +++ b/tests/interact.py @@ -114,6 +114,12 @@ def runTest(self): test_files = glob.glob(os.path.dirname(__file__)+"/*.py") for x in sorted([os.path.basename(f)[:-3] for f in test_files if not "__" in f]): exec("from %s import *" % x) + + if 'BFT_OVERLAY' in os.environ: + for o in os.environ['BFT_OVERLAY'].split(' ' ): + test_files = glob.glob(o + "/tests/*.py") + for x in sorted([os.path.basename(f)[:-3] for f in test_files if not "__" in f]): + exec("from %s import *" % x) except: print("Unable to re-import tests!") else: @@ -130,6 +136,12 @@ def runTest(self): test_files = glob.glob(os.path.dirname(__file__)+"/*.py") for x in sorted([os.path.basename(f)[:-3] for f in test_files if not "__" in f]): exec("from %s import *" % x) + + if 'BFT_OVERLAY' in os.environ: + for o in os.environ['BFT_OVERLAY'].split(' ' ): + test_files = glob.glob(o + "/tests/*.py") + for x in sorted([os.path.basename(f)[:-3] for f in test_files if not "__" in f]): + exec("from %s import *" % x) except: print("Unable to re-import tests!") else: From a3cd7be0a5f94b2850270248ee193133ac8e3f3a Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Sat, 22 Sep 2018 08:06:19 -0700 Subject: [PATCH 366/947] tests: oe: skip if oe version is not present Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/oe.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/oe.py b/tests/oe.py index 4eeebcbd..335269ed 100644 --- a/tests/oe.py +++ b/tests/oe.py @@ -13,7 +13,8 @@ class OEVersion(rootfs_boot.RootFSBootTest): def runTest(self): board.sendline('cat /etc/os-release') # PRETTY_NAME=RDK (A Yocto Project 1.6 based Distro) 2.0 (krogoth) - board.expect('PRETTY_NAME=([^\s]*) \(A Yocto Project (?:[^\s]*?)\s?based Distro\) ([^\s]*) \(([^\)]*)\)') + if 0 == board.expect(["cat: can't open '/etc/os-release': No such file or directory", 'PRETTY_NAME=([^\s]*) \(A Yocto Project (?:[^\s]*?)\s?based Distro\) ([^\s]*) \(([^\)]*)\)']): + self.skipTest("Skipping, not not an OE based distro") index = 1 bsp_type = board.match.group(index) From 07152cc8e77bb2aa609a17b70e056e34051c2e2d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 19 Sep 2018 15:25:35 -0500 Subject: [PATCH 367/947] devices: qemu: add more expect for qemu images that use grub .... and not just syslinux Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/qemu.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/qemu.py b/devices/qemu.py index 56b51de3..a5346d87 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -106,7 +106,7 @@ def temp_download(url): self.cmd = cmd if kernel is None: - self.expect("SYSLINUX") + self.expect(["SYSLINUX", "GNU GRUB"]) self.logfile_read = output atexit.register(self.kill_console_at_exit) @@ -162,6 +162,6 @@ def reset(self): self.sendline('system_reset') self.expect_exact('system_reset') if '-kernel' not in self.cmd: - self.expect('SYSLINUX') + self.expect(['SYSLINUX', 'GNU GRUB']) self.sendcontrol('a') self.send('c') From 710b35c1addc7908f552de8218a55e155b5998c1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 19 Sep 2018 15:32:37 -0500 Subject: [PATCH 368/947] devices: qemu: simply timeout logic Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/qemu.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/devices/qemu.py b/devices/qemu.py index a5346d87..3390b519 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -142,15 +142,13 @@ def flash_linux(self, KERNEL): pass def wait_for_linux(self): - if self.kvm: - self.expect('login:', timeout=60) - else: - self.expect('login:', timeout=120) - self.sendline('root') if self.kvm: tout = 60 else: tout = 180 + + self.expect('login:', timeout=tout) + self.sendline('root') self.expect(self.prompt, timeout=tout) def boot_linux(self, rootfs=None, bootargs=None): From 0eec1b9d31c8e877c0718acc13de74e028cfcb9c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 19 Sep 2018 16:11:51 -0500 Subject: [PATCH 369/947] devices: qemu: try harder to login and get prompt This works work RDK-B and OpenWrt Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/qemu.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/devices/qemu.py b/devices/qemu.py index 3390b519..ab9d7228 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -147,9 +147,14 @@ def wait_for_linux(self): else: tout = 180 - self.expect('login:', timeout=tout) - self.sendline('root') - self.expect(self.prompt, timeout=tout) + for t in range(0, tout, 10): + self.sendline() + i = self.expect([pexpect.TIMEOUT, 'login:'] + self.prompt, timeout=10) + if i == 1: + self.sendline('root') + self.expect(self.prompt, timeout=tout) + if i >= 1: + break def boot_linux(self, rootfs=None, bootargs=None): pass From 11266816ed14ea9118f17489f3c19b417dee97f2 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 19 Sep 2018 16:12:46 -0500 Subject: [PATCH 370/947] devices: qemu_openwrt: add qemu device for openwrt This let's us boot up OpenWrt images: $ ./bft -b qemux86-openwrt -r ~/git/openwrt/bin/targets/x86/generic/openwrt-x86-generic-combined-ext4.vmdk Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- boardfarm_config_example.json | 30 ++++++++++++++++++++++++++++++ devices/qemu_openwrt.py | 21 +++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 devices/qemu_openwrt.py diff --git a/boardfarm_config_example.json b/boardfarm_config_example.json index 7448ce15..e464cb34 100644 --- a/boardfarm_config_example.json +++ b/boardfarm_config_example.json @@ -58,6 +58,36 @@ "connection_type": "local_serial", "notes": "QEMU emulated devices" }, + "qemux86-openwrt-1": { + "board_type": "qemux86-openwrt", + "conn_cmd": "sudo qemu-system-i386 -m 256 -nographic --enable-kvm -netdev tap,id=wan,ifname=${wan_iface} -device e1000,netdev=wan -netdev tap,id=lan,ifname=${lan_iface} -device e1000,netdev=lan", + "devices": [ + { + "type": "debian", + "name": "lan", + "pre_cmd_host": "docker build -t bft:node bft-node", + "cmd": "docker run --name wan-${uniq_id} --privileged -it bft:node /bin/bash", + "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' wan-${uniq_id}) dev ${wan_iface}", + "post_cmd": "ip link set ${wan_iface} name eth1", + "cleanup_cmd": "docker stop wan-${uniq_id}; docker rm wan-${uniq_id}", + "color": "cyan", + "options": "tftpd-server" + }, + { + "type": "debian", + "name": "wan", + "pre_cmd_host": "docker build -t bft:node bft-node", + "cmd": "docker run --name lan-${uniq_id} --privileged -p 9910:9910 -it bft:node /bin/bash", + "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan-${uniq_id}) dev ${lan_iface}", + "post_cmd": "ip link set ${lan_iface} name eth1", + "cleanup_cmd": "docker stop lan-${uniq_id}; docker rm lan-${uniq_id}", + "color": "blue", + "http_proxy": "localhost:9910" + } + ], + "connection_type": "local_serial", + "notes": "QEMU emulated devices" + }, "new_device": { "board_type": "Unknown", "conn_cmd": "cu -l /dev/ttyUSB1 -s 115200", diff --git a/devices/qemu_openwrt.py b/devices/qemu_openwrt.py new file mode 100644 index 00000000..3ded86bc --- /dev/null +++ b/devices/qemu_openwrt.py @@ -0,0 +1,21 @@ +# Copyright (c) 2017 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. + +import qemu +import ipaddress + +class QemuOpenWrt(qemu.Qemu): + ''' + Emulated QEMU board + ''' + model = ("qemux86-openwrt") + + wan_iface = "eth1" + lan_iface = "br-lan" + + lan_network = ipaddress.IPv4Network(u"192.168.1.0/24") + lan_gateway = ipaddress.IPv4Address(u"192.168.1.1") From bbb834a53f1dc28a36ca5829d1360bd4f84a9536 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 19 Sep 2018 16:19:30 -0500 Subject: [PATCH 371/947] devices: qemu: don't use type(self) This will fail for devices that inherit from this type Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/qemu.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/qemu.py b/devices/qemu.py index ab9d7228..5b6797a4 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -118,7 +118,7 @@ def run_cleanup_cmd(self): def close(self, *args, **kwargs): self.kill_console_at_exit() - return super(type(self), self).close(*args, **kwargs) + return super(Qemu, self).close(*args, **kwargs) def kill_console_at_exit(self): try: From 04e15b8dc08e36b5874641e806336a4627039933 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Sat, 22 Sep 2018 10:33:13 -0500 Subject: [PATCH 372/947] travisci: move to using openwrt image for testing RDK-B image is not reliable... let's try this image instead Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0130138d..25fe8f72 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,7 +14,7 @@ before_install: script: - ./bft -l - ./bft -i - - yes | ./bft -b qemux86 -r https://www.dropbox.com/s/ydgqcjz3wy5v0pm/X86EMLTRBB_default_20180627181048.vmdk?dl=0 -y -x travisci + - yes | ./bft -b qemux86-openwrt -r https://www.dropbox.com/s/ak58icpzta1f0if/openwrt-x86-generic-combined-ext4.vmdk?dl=0 -y -x travisci - grep tests_fail...0, results/test_results.json after_failure: - - yes | BFT_DEBUG=y ./bft -b qemux86 -r https://www.dropbox.com/s/ydgqcjz3wy5v0pm/X86EMLTRBB_default_20180627181048.vmdk?dl=0 -y -x travisci + - yes | BFT_DEBUG=y ./bft -b qemux86-openwrt -r https://www.dropbox.com/s/ak58icpzta1f0if/openwrt-x86-generic-combined-ext4.vmdk?dl=0 -y -x travisci From b05078f2503c69d91f79b893b588c47a958e93c2 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 25 Sep 2018 12:50:12 -0700 Subject: [PATCH 373/947] testsuites: remove 5 min sleep for travis testsuite Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- testsuites.cfg | 1 - 1 file changed, 1 deletion(-) diff --git a/testsuites.cfg b/testsuites.cfg index e995e892..19220ae4 100644 --- a/testsuites.cfg +++ b/testsuites.cfg @@ -127,7 +127,6 @@ MemoryUse [travisci] RootFSBootTest -Sleep5Minute KernelModules MemoryUse InterfacesShow From 9a24b47e897b9b7d749ec703346dec6718b91b5d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 25 Sep 2018 20:35:38 -0500 Subject: [PATCH 374/947] bft: remove legacy devices entirely This mostly consists of changing debian class to the new format so they are created dynamically. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 90 +++++++++------------------------------------ devices/__init__.py | 10 ++--- devices/debian.py | 61 +++++++++++++++--------------- 3 files changed, 53 insertions(+), 108 deletions(-) diff --git a/bft b/bft index 1839287d..644ff53e 100755 --- a/bft +++ b/bft @@ -32,76 +32,15 @@ site.addsitedir(os.path.dirname(os.path.realpath(__file__))) from devices import debian, logstash, elasticlogger, get_device -def setup_legacy_devices(config): - '''This will setup legacy hard coded devices to into the config''' - - config.wan = None - config.lan = None - config.wlan = None - config.wlan5g = None - config.wlan2g = None - - if config.board.get('wan_device'): - config.wan = debian.DebianBox(config.board.get('wan_device'), - color='cyan', reboot=config.reboot_vms, - location=config.board.get('location'), - username=config.board.get('wan_username', "root"), - password=config.board.get('wan_password', "bigfoot1"), - port=config.board.get('wan_port', "22")) - if config.board.get('lan_device'): - config.lan = debian.DebianBox(config.board.get('lan_device'), color='blue', reboot=config.reboot_vms, - username=config.board.get('lan_username', "root"), - password=config.board.get('lan_password', "bigfoot1"), - port=config.board.get('lan_port', "22")) - if config.board.get('wlan_device'): - config.wlan = debian.DebianBox(config.board.get('wlan_device'), color='green', reboot=config.reboot_vms, - username=config.board.get('wlan_username', "root"), - password=config.board.get('wlan_password', "bigfoot1"), - port=config.board.get('wlan_port', "22")) - if config.board.get('5g_device'): - config.wlan5g = debian.DebianBox(config.board.get('5g_device'), color='grey', reboot=config.reboot_vms, - username=config.board.get('5g_username', "root"), - password=config.board.get('5g_password', "bigfoot1"), - port=config.board.get('5g_port', "22")) - if config.board.get('2g_device'): - config.wlan2g = debian.DebianBox(config.board.get('2g_device'), color='magenta', reboot=config.reboot_vms, - username=config.board.get('2g_username', "root"), - password=config.board.get('2g_password', "bigfoot1"), - port=config.board.get('2g_port', "22")) - - def setup_dynamic_devices(config, env=None): '''Sets up dynamic devices from devices node in JSON config file''' config.devices = [] for device in config.board['devices']: - if device['type'] == 'debian': - # old static name lookup, now we use model but this lingers - d = debian.DebianBox(name=device.get('ipaddr', None), - color=device.get('color', 'black'), - reboot=config.reboot_vms, - username=device.get('username', "root"), - password=device.get('password', "bigfoot1"), - port=device.get('port', "22"), - pre_cmd_host=device.get('pre_cmd_host', None), - cmd=device.get('cmd', None), - post_cmd_host=device.get('post_cmd_host', None), - post_cmd=device.get('post_cmd', None), - cleanup_cmd=device.get('cleanup_cmd', None), - env=env, - lan_network=config.console.lan_network, - lan_gateway=config.console.lan_gateway, - config=device) - setattr(config, device['name'], d) - config.devices.append(device['name']) - - # if this device is a wan cmts provisioner, we set the device name - if d.wan_cmts_provisioner: - setattr(config, 'provisioner', d) - config.devices.append('provisioner') - - # done with wan/lan devices - continue + device['reboot'] = config.reboot_vms + device['env'] = env + device['lan_network'] = config.console.lan_network + device['lan_gateway'] = config.console.lan_gateway dyn_dev = get_device(device['type'], **device) if dyn_dev is not None: @@ -109,6 +48,20 @@ def setup_dynamic_devices(config, env=None): raise Exception("Device in config is not named! This is required") setattr(config, device['name'], dyn_dev) config.devices.append(device['name']) + + # TODO: set the following: + # reboot=config.reboot_vms, + # env=env, + # lan_network=config.console.lan_network, + # lan_gateway=config.console.lan_gateway, + # config=device) + + # if this device is a wan cmts provisioner, we set the device name + # TODO: this should be generic + if dyn_dev.wan_cmts_provisioner: + setattr(config, 'provisioner', d) + config.devices.append('provisioner') + continue print("Unknown device type for %s" % device) @@ -199,8 +152,6 @@ def main(): env=env) print_bold("dut device console = %s" % colored("black", 'grey')) - setup_legacy_devices(config) - if 'devices' in config.board: setup_dynamic_devices(config, env=env) @@ -231,11 +182,6 @@ def main(): if tftp_server == x.get('ipaddr', ""): config.console.tftp_dev = getattr(config, x.get('name')) - # legacy wan device - if tftp_server is None and getattr(config, 'wan') is not None: - get_tftp_config(config.wan) - - except KeyboardInterrupt: print_bold("Keyboard interrupt") sys.exit(2) diff --git a/devices/__init__.py b/devices/__init__.py index 1fc0d5ee..2a4d5b32 100644 --- a/devices/__init__.py +++ b/devices/__init__.py @@ -45,11 +45,11 @@ def initialize_devices(configuration): # Init devices global board, lan, wan, wlan, wlan2g, wlan5g, prompt board = configuration.console - lan = configuration.lan - wan = configuration.wan - wlan = configuration.wlan - wlan2g = configuration.wlan2g - wlan5g = configuration.wlan5g + lan = None + wan = None + wlan = None + wlan2g = None + wlan5g = None for device in configuration.devices: globals()[device] = getattr(configuration, device) diff --git a/devices/debian.py b/devices/debian.py index 350a83ac..e356d1e6 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -22,6 +22,7 @@ class DebianBox(base.BaseDevice): A linux machine running an ssh server. ''' + model = ('debian') prompt = ['root\\@.*:.*#', '/ # ', ".*:~ #" ] static_route = None static_ip = False @@ -32,40 +33,39 @@ class DebianBox(base.BaseDevice): install_pkgs_after_dhcp = False def __init__(self, - name, - color, - username, - password, - port, - output=sys.stdout, - reboot=False, - location=None, - pre_cmd_host=None, - cmd=None, - post_cmd_host=None, - post_cmd=None, - cleanup_cmd=None, - env=None, - lan_network=ipaddress.IPv4Network(u"192.168.1.0/24"), - lan_gateway=ipaddress.IPv4Address(u"192.168.1.1"), - config=[], *args, **kwargs): self.args = args self.kwargs = kwargs - - if name is not None: + name = kwargs.pop('name', None) + ipaddr = kwargs.pop('ipaddr', None) + color = kwargs.pop('color', 'black') + username = kwargs.pop('username', 'root') + password = kwargs.pop('password', 'bigfoot1') + port = kwargs.pop('port', '22') + output = kwargs.pop('output', sys.stdout) + reboot = kwargs.pop('reboot', False) + location = kwargs.pop('location', None) + pre_cmd_host = kwargs.pop('pre_cmd_host', None) + cmd = kwargs.pop('cmd', None) + post_cmd_host = kwargs.pop('post_cmd_host', None) + post_cmd = kwargs.pop('post_cmd', None) + cleanup_cmd = kwargs.pop('cleanup_cmd', None) + env = kwargs.pop('env', None) + lan_network = kwargs.pop('lan_network', ipaddress.IPv4Network(u"192.168.1.0/24")) + lan_gateway = kwargs.pop('lan_gateway', ipaddress.IPv4Address(u"192.168.1.1")) + + self.name = name + if ipaddr is not None: pexpect.spawn.__init__(self, command="ssh", - args=['%s@%s' % (username, name), + args=['%s@%s' % (username, ipaddr), '-p', port, '-o', 'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', '-o', 'ServerAliveInterval=60', '-o', 'ServerAliveCountMax=5']) - self.name = name else: - name = None if pre_cmd_host is not None: sys.stdout.write("\tRunning pre_cmd_host.... ") sys.stdout.flush() @@ -90,7 +90,6 @@ def __init__(self, self.env=env self.lan_network = lan_network self.lan_gateway = lan_gateway - self.config = config # we need to pick a non-conflicting private network here # also we want it to be consistant and not random for a particular @@ -103,8 +102,8 @@ def __init__(self, self.nw = ipaddress.IPv4Network(str(self.gw).decode('utf-8') + '/' + str(lan_network.netmask), strict=False) # override above values if set in wan options - if 'options' in self.config: - options = [x.strip() for x in self.config['options'].split(',')] + if 'options' in kwargs: + options = [x.strip() for x in kwargs['options'].split(',')] for opt in options: if opt.startswith('wan-static-ip:'): self.gw = opt.replace('wan-static-ip:', '') @@ -140,16 +139,16 @@ def __init__(self, if i < 3: self.expect(self.prompt) - if name is None: + if ipaddr is None: self.sendline('hostname') self.expect('hostname') self.expect(self.prompt) - name = self.name = self.before.strip() + ipaddr = self.ipaddr = self.before.strip() if self.port != 22: - cprint("%s port %s device console = %s" % (name, port, colored(color, color)), None, attrs=['bold']) + cprint("%s port %s device console = %s" % (ipaddr, port, colored(color, color)), None, attrs=['bold']) else: - cprint("%s device console = %s" % (name, colored(color, color)), None, attrs=['bold']) + cprint("%s device console = %s" % (ipaddr, colored(color, color)), None, attrs=['bold']) if post_cmd_host is not None: sys.stdout.write("\tRunning post_cmd_host.... ") @@ -793,8 +792,8 @@ def start_lan_client(self, wan_gw=None): if self.install_pkgs_after_dhcp: self.install_pkgs() - if wan_gw is not None and 'options' in self.config and \ - 'lan-fixed-route-to-wan' in self.config['options']: + if wan_gw is not None and 'options' in self.kwargs and \ + 'lan-fixed-route-to-wan' in self.kwargs['options']: self.sendline("ip route list 0/0 | awk '{print $3}'") self.expect_exact("ip route list 0/0 | awk '{print $3}'") self.expect(self.prompt) From 9bdfc0703d03a8edb4fb9a2cf3a4c45570fb6b50 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 26 Sep 2018 20:21:32 -0700 Subject: [PATCH 375/947] bft: fix bugs in previous commit Need to have a default value, and also change d -> dyn_dev Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bft b/bft index 644ff53e..cfa08137 100755 --- a/bft +++ b/bft @@ -58,8 +58,8 @@ def setup_dynamic_devices(config, env=None): # if this device is a wan cmts provisioner, we set the device name # TODO: this should be generic - if dyn_dev.wan_cmts_provisioner: - setattr(config, 'provisioner', d) + if getattr(dyn_dev, 'wan_cmts_provisioner', False): + setattr(config, 'provisioner', dyn_dev) config.devices.append('provisioner') continue From 9c90d69056f76b5bcf73108b4b1d4fe22b71d8eb Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 27 Sep 2018 13:19:00 -0700 Subject: [PATCH 376/947] devices: debian: add http_proxy and ipaddr values to object We need to systematically add these to the device object so other tests can depend on them. They should not have to extra from self.kwargs or otherwise guess. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index e356d1e6..8f122122 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -56,6 +56,8 @@ def __init__(self, lan_gateway = kwargs.pop('lan_gateway', ipaddress.IPv4Address(u"192.168.1.1")) self.name = name + self.http_proxy = kwargs.pop('http_proxy', None) + if ipaddr is not None: pexpect.spawn.__init__(self, command="ssh", @@ -65,6 +67,8 @@ def __init__(self, '-o', 'UserKnownHostsFile=/dev/null', '-o', 'ServerAliveInterval=60', '-o', 'ServerAliveCountMax=5']) + + self.ipaddr = ipaddr else: if pre_cmd_host is not None: sys.stdout.write("\tRunning pre_cmd_host.... ") @@ -78,6 +82,7 @@ def __init__(self, atexit.register(self.run_cleanup_cmd) pexpect.spawn.__init__(self, command="bash", args=['-c', cmd], env=env) + self.ipaddr = None self.color = color self.output = output From b13cbe43120419a0054bdb53e8f9a544adee5088 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 27 Sep 2018 13:19:44 -0700 Subject: [PATCH 377/947] tests: screenshot_gui: fix some issues with getting values from config The device itself will tell us these so let's use those values directly and try to build up the http proxy info. Using the VLAN info is still sort of wrong, since that could change but for now it works. Going forward it will likely need to always be in the boardfarm config, which is the default anyways Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/screenshot_gui.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/screenshot_gui.py b/tests/screenshot_gui.py index 3075e35b..08c0346c 100644 --- a/tests/screenshot_gui.py +++ b/tests/screenshot_gui.py @@ -30,16 +30,20 @@ def runTest(self): display.start() try: - if 'http_proxy' in lan.config: - proxy = lan.config['http_proxy'] - else: - ip = lan.config['ipaddr'] + if lan.http_proxy is not None: + proxy = lan.http_proxy + elif lan.ipaddr is not None: + ip = lan.ipaddr lan.sendline('cat /proc/net/vlan/config') lan.expect('eth1.*\|\s([0-9]+).*\|') port = 8000 + int(lan.match.group(1)) lan.expect(prompt) proxy = "%s:%s" % (ip, port) - except: + else: + # no proxy, use message below + assert False + except Exception as e: + print e raise Exception("No reasonable http proxy found, please add one to the board config") print("Using proxy %s" % proxy) From 0a7655c710cf5509e235c2e2bad4da15c94ed682 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 1 Oct 2018 10:36:29 -0500 Subject: [PATCH 378/947] devices: owrt: add a touch function to keep devices awake Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 48a30082..0356edfe 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -528,6 +528,9 @@ def get_dns_server_upstream(self): self.expect(self.prompt) return ret + def touch(self): + '''Keeps consoles active, so they don't disconnect for long running activities''' + self.sendline() if __name__ == '__main__': # Example use From 24449cba239c65a406de097578b9428ba2c444f1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 1 Oct 2018 11:21:50 -0500 Subject: [PATCH 379/947] tests: nmap: convert to use touch() to keep device alive This tests sleeps a long time and we commonly configure the serial servers to disconnect if a board is idle too long. So let's add this here to keep the consoles alive Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/nmap.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/nmap.py b/tests/nmap.py index 4feea56c..fd419208 100644 --- a/tests/nmap.py +++ b/tests/nmap.py @@ -38,7 +38,13 @@ def runTest(self): wan_ip_addr = board.get_interface_ipaddr(board.wan_iface) wan.sendline('\nnmap -sS -A -v %s' % wan_ip_addr) wan.expect('Starting Nmap', timeout=5) - wan.expect('Nmap scan report', timeout=240) + wan.expect(pexpect.TIMEOUT, timeout=60) + board.touch() + wan.expect(pexpect.TIMEOUT, timeout=60) + board.touch() + wan.expect(pexpect.TIMEOUT, timeout=60) + board.touch() + wan.expect('Nmap scan report', timeout=60) wan.expect(prompt, timeout=60) open_ports = re.findall("(\d+)/tcp\s+open", wan.before) msg = "Found %s open TCP ports on WAN interface." % len(open_ports) From 5cefcb5f3fd24e4b8604421859ec20b08378c7dd Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 4 Oct 2018 14:29:33 -0700 Subject: [PATCH 380/947] tests: rootfs_boot: start tftp server after configure We do a lot more things in the configure step now including turn off eth1 and trying to install packages from the host network so it will leave us in a bad state, so let's start the tftp server right after that and then also make sure the interface is up Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 8 +++----- tests/rootfs_boot.py | 4 ++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 8f122122..a3cb2da5 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -313,17 +313,15 @@ def start_tftp_server(self): except: eth1_addr = None - # set WAN ip address, for now this will always be this address for the device side - if self.gw != eth1_addr: - self.sendline('ifconfig eth1 down') - self.expect(self.prompt) - # set WAN ip address, for now this will always be this address for the device side # TODO: fix gateway for non-WAN tftp_server if self.gw != eth1_addr: self.sendline('ifconfig eth1 %s' % getattr(self, 'gw', '192.168.0.1')) self.expect(self.prompt) + self.sendline('ifconfig eth1 up') + self.expect(self.prompt) + #configure tftp server self.sendline('/etc/init.d/tftpd-hpa stop') self.expect('Stopping') diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 09cebf7b..c5246123 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -46,11 +46,11 @@ def boot(self, reflash=True): if prov is not None: prov.provision_board(self.config.board) - tftp_device.start_tftp_server() - if lan: lan.configure(kind="lan_device") + tftp_device.start_tftp_server() + board.reset() rootfs = None From 63280bac939f62379625ca699fd4a1a661639608 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 8 Oct 2018 12:10:59 -0700 Subject: [PATCH 381/947] devices: elasticlogger: add custom serializer class For now, this just trys to encode to string if it fails Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/elasticlogger.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/devices/elasticlogger.py b/devices/elasticlogger.py index aa4fbc61..ea10e511 100644 --- a/devices/elasticlogger.py +++ b/devices/elasticlogger.py @@ -13,12 +13,22 @@ try: import elasticsearch + from elasticsearch.serializer import JSONSerializer except Exception as e: print(e) print("Please install needed module:\n" " sudo pip install -U elasticsearch") sys.exit(1) +class Serializer(JSONSerializer): + def default(self, obj): + try: + return JSONSerializer.default(self, obj) + except TypeError as e: + return str(obj) + except: + return "Unable to serialize" + class ElasticsearchLogger(object): ''' Write data directly to an elasticsearch cluster. @@ -29,7 +39,7 @@ def __init__(self, server, index='boardfarm', doc_type='bft_run'): self.index = index + "-" + datetime.datetime.utcnow().strftime("%Y.%m.%d") self.doc_type = doc_type # Connect to server - self.es = elasticsearch.Elasticsearch([server]) + self.es = elasticsearch.Elasticsearch([server], serializer=Serializer()) # Set default data username = os.environ.get('BUILD_USER_ID', None) if username is None: From 8d93f857b0b4f0aedd4457c27d9c26531e9b0d86 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 8 Oct 2018 18:07:56 -0700 Subject: [PATCH 382/947] bft: support multiple golden masters There are so many different tests runs possible, we want to be able to aggregate a few together so when we run tests we can always have a baseline to compare against. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- arguments.py | 2 +- bft | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/arguments.py b/arguments.py index 6fbf16bf..eb566d04 100755 --- a/arguments.py +++ b/arguments.py @@ -77,7 +77,7 @@ def parse(): parser.add_argument('-z', '--no-network', action='store_true', help='Skip basic network tests when booting') parser.add_argument('-c', '--config_file', metavar='', type=str, default=boardfarm_config_location, help='JSON config file for boardfarm') parser.add_argument('--bootargs', metavar='', type=str, default=None, help='bootargs to set or append to default args (board dependant)') - parser.add_argument('-g', '--golden', metavar='', type=str, default=None, help='Path to JSON results to compare against (golden master)') + parser.add_argument('-g', '--golden', metavar='', type=str, default=[], nargs='+', help='Path to JSON results to compare against (golden master)') parser.add_argument('-q', '--feature', metavar='', type=str, default=[], nargs='+', help='Features required for this test run') args = parser.parse_args() diff --git a/bft b/bft index cfa08137..11245584 100755 --- a/bft +++ b/bft @@ -290,15 +290,14 @@ def main(): os.environ['TEST_END_TIME'] = datetime.datetime.now().strftime("%s") # grab golden master results - try: - if config.golden is not None: - import requests - golden = requests.get(config.golden).json() - else: - golden = {} - except: - print_bold("Failed to fetch golden master results, skipping...") - golden = {} + golden = {} + if config.golden is not []: + import requests + for g in golden: + try: + golden.update(requests.get(config.golden).json()) + except: + print_bold("Failed to fetch golden master results, skipping...") # Write test result messages to a file full_results = library.process_test_results(tests_to_run, golden) From 2759bc2c27c99b7b4f7e34b14608d29c4c3f640a Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Thu, 11 Oct 2018 09:14:30 +0200 Subject: [PATCH 383/947] devices: improved warning reporting when board model not found Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/__init__.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/devices/__init__.py b/devices/__init__.py index 2a4d5b32..1598d582 100644 --- a/devices/__init__.py +++ b/devices/__init__.py @@ -93,6 +93,17 @@ def board_decider(model, **kwargs): # Default for all other models print("\nWARNING: Unknown board model '%s'." % model) - print("Please check spelling, or write an appropriate class " + print("Please check spelling, your environment setup, or write an appropriate class " "to handle that kind of board.") + + if 'BFT_OVERLAY' in os.environ: + print("\nIs this correct? BFT_OVERLAY=%s\n" % os.environ['BFT_OVERLAY']) + else: + print("No BFT_OVERLAY is set, do you need one?") + + if 'BFT_CONFIG' in os.environ: + print("\nIs this correct? BFT_CONFIG=%s\n" % os.environ['BFT_CONFIG']) + else: + print("No BFT_CONFIG is set, do you need one?") + return openwrt_router.OpenWrtRouter(model, **kwargs) From a61f07aa9bdcea1b1642b9d035e46521f53b1663 Mon Sep 17 00:00:00 2001 From: luke <luke_tseng@compalbn.com> Date: Thu, 11 Oct 2018 15:11:08 +0800 Subject: [PATCH 384/947] devices: base.py: modify regex of get_interface_ip6addr() - inet6 format is different between board.get_interface_ip6addr("wan0") and wan.get_interface_ip6addr("eth1") - 'inet6 addr: 2001:b030:701d:2100:b593:1b01:313:ae00/128 Scope:Global' for board.get_interface_ip6addr("wan0") - 'inet6 2002:db50:fa13:1:78fe:23ff:feef:f0ac prefixlen 64' for wan.get_interface_ip6addr("eth1") - modify regex to self.expect('\s((200([0-9a-f]){1,1}:)([0-9a-f]{1,4}:){1,6}([0-9a-f]{1,4}))([\/\s])', timeout=5) Signed-off-by: luke <luke_tseng@compalbn.com> --- devices/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/base.py b/devices/base.py index d5170fad..cd674130 100644 --- a/devices/base.py +++ b/devices/base.py @@ -31,7 +31,7 @@ def get_interface_ipaddr(self, interface): def get_interface_ip6addr(self, interface): self.sendline("\nifconfig %s" % interface) - self.expect('inet6 addr: (200(.+))/\d+ Scope:Global', timeout=5) + self.expect('\s((200([0-9a-f]){1,1}:)([0-9a-f]{1,4}:){1,6}([0-9a-f]{1,4}))([\/\s])', timeout=5) ipaddr = self.match.group(1) self.expect(self.prompt) return ipaddr From 7e509f7d97d922541bc6410b9c471ad04d182c39 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 10 Oct 2018 13:41:29 -0500 Subject: [PATCH 385/947] devices: base: add resolution to per line timestamp in log [90.802651] Linux OpenWrt 4.14.70 #0 SMP Wed Sep 19 08:42:13 2018 i686 GNU/Linux [90.81475] root@OpenWrt:/# echo "1 1 1 7" > /proc/sys/kernel/printk [90.918238] root@OpenWrt:/# ^C [90.97381] root@OpenWrt:/# [91.074512] root@OpenWrt:/# cat /proc/uptime [91.076012] 65.60 51.83 Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/base.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/devices/base.py b/devices/base.py index cd674130..abb02a79 100644 --- a/devices/base.py +++ b/devices/base.py @@ -80,13 +80,12 @@ def write(self, string): else: self.out.write(string) td = datetime.now()-self.start - ts = (td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6) / 10**6 # check for the split case if len(self.log) > 1 and self.log[-1] == '\r' and string[0] == '\n': - tmp = '\n [%s]' % ts + tmp = '\n [%s]' % td.total_seconds() tmp += string[1:] string = tmp - self.log += re.sub('\r\n', '\r\n[%s] ' % ts, string) + self.log += re.sub('\r\n', '\r\n[%s] ' % td.total_seconds(), string) def flush(self): self.out.flush() From 8857892b23d9c130466a80d8e0bebefc896d7ce5 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 10 Oct 2018 14:33:02 -0500 Subject: [PATCH 386/947] bft: log all devices and consoles This adds logs for all devices and consoles in the results dir: $ ls results/*.log results/console-1.log results/lan.log results/wan.log Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/bft b/bft index 11245584..cf8433a9 100755 --- a/bft +++ b/bft @@ -284,8 +284,15 @@ def main(): print_bold("For some reason, could not close a connection.") library.print_board_info(config.board) - with open(os.path.join(config.output_dir, 'console.log'), 'w') as clog: - clog.write(config.console.log) + idx = 1 + for console in config.console.consoles: + with open(os.path.join(config.output_dir, 'console-%s.log' % idx), 'w') as clog: + clog.write(console.log) + idx = idx + 1 + + for device in config.devices: + with open(os.path.join(config.output_dir, device + ".log"), 'w') as clog: + clog.write(getattr(config, device).log) os.environ['TEST_END_TIME'] = datetime.datetime.now().strftime("%s") From 69125010874c51926dc72a53d87dc0ea8e8a9a38 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Wed, 10 Oct 2018 11:02:59 +0200 Subject: [PATCH 387/947] devices: owrt: add a get_user_id function takes a user name and returns True is the user exists in /etc/passwd Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/openwrt_router.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 0356edfe..990eb227 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -532,6 +532,10 @@ def touch(self): '''Keeps consoles active, so they don't disconnect for long running activities''' self.sendline() + def get_user_id(self, user_id): + self.sendline('cat /etc/passwd | grep -w ' + user_id) + return 0 == self.expect([user_id] + self.prompt) + if __name__ == '__main__': # Example use board = OpenWrtRouter('ap148-beeliner', From 1524e86983834bdf765cd088eeed93471c1b6673 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 12 Oct 2018 07:38:37 -0500 Subject: [PATCH 388/947] bft: only save log for devices that have that attr This was generating an error for devices that don't inherit from base type of device... so ones that don't have a "console" as the device. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bft b/bft index cf8433a9..4016f2da 100755 --- a/bft +++ b/bft @@ -292,7 +292,9 @@ def main(): for device in config.devices: with open(os.path.join(config.output_dir, device + ".log"), 'w') as clog: - clog.write(getattr(config, device).log) + d = getattr(config, device) + if hasattr(d, 'log'): + clog.write(d.log) os.environ['TEST_END_TIME'] = datetime.datetime.now().strftime("%s") From 1f2236b2470ef386751ba24dd61aedf294897463 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 3 Oct 2018 14:44:41 -0700 Subject: [PATCH 389/947] tests: lib: add cmd_exists helper function Scans PATH for a command to see if it exists Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/common.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/lib/common.py b/tests/lib/common.py index 76ee73ad..3093848a 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -125,3 +125,5 @@ def __init__(self, name, grade, message): self.name = name self.result_grade = grade self.result_message = message + +cmd_exists = lambda x: any(os.access(os.path.join(path, x), os.X_OK) for path in os.environ["PATH"].split(os.pathsep)) From 679054dd6c86da8950b964fedc3397302acd16cc Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 3 Oct 2018 14:55:50 -0700 Subject: [PATCH 390/947] devices: debian: encode docsis files These are now stored as text files Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index a3cb2da5..be4b957a 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -559,7 +559,17 @@ def copy_cmts_provisioning_files(self, board_config): # Copy binary files to tftp server for cfg in cfg_set: - self.copy_file_to_server(cfg) + # TODO: use common cmd_exists + cmd_exists = lambda x: any(os.access(os.path.join(path, x), os.X_OK) for path in os.environ["PATH"].split(os.pathsep)) + assert cmd_exists('docsis') + + # TODO: much better error checking + os.system("docsis -e %s /dev/null %s" % (cfg, cfg.replace('.txt', '.bin'))) + + self.copy_file_to_server(cfg.replace('.txt', '.bin')) + os.remove(cfg.replace('.txt', '.bin')) + + def provision_board(self, board_config): ''' Setup DHCP and time server etc for CM provisioning''' From 7c32593e4ef039c3f5776ff3a5ee32dbc307410c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 27 Sep 2018 21:01:12 -0500 Subject: [PATCH 391/947] deploy-boardfarm-nodes: add optional offset to ports Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 961bf8bd..7a9cd7a4 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -21,12 +21,13 @@ local_route () { # eth0 is docker private network, eth1 is vlan on specific interface create_container_eth1_vlan () { local vlan=$1 + local offset=${2:-0} - cname=bft-node-$IFACE-$vlan + cname=bft-node-$IFACE-$vlan-$offset docker stop $cname && docker rm $cname docker run --name $cname --privileged -h $cname --restart=always \ - -p $(( 5000 + $vlan )):22 \ - -p $(( 8000 + $vlan )):8080 \ + -p $(( 5000 + $offset + $vlan )):22 \ + -p $(( 8000 + $offset + $vlan )):8080 \ -d bft:node /usr/sbin/sshd -D sudo ip link del $IFACE.$vlan || true From 74fad90757c00d384443ecbfae906949a69943a7 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 27 Sep 2018 21:51:38 -0500 Subject: [PATCH 392/947] deploy-boardfarm-nodes: add option to create multiple containers per vlan $ set -x $ . deploy-boardfarm-nodes.sh $ for i in {0..1}; do IFACE=enp4s0 create_container_eth1_bridged_vlan 100 $i; done $ set +x Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 7a9cd7a4..ed2cdc58 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -39,6 +39,44 @@ create_container_eth1_vlan () { docker exec $cname ip link set dev eth1 address $(random_private_mac $vlan) } +# eth0 is docker private network, eth1 is vlan on specific interface within a bridge +create_container_eth1_bridged_vlan () { + local vlan=$1 + local offset=${2:-0} + + # verify settings are correct + # TODO: verify the set + sudo sysctl -w net.bridge.bridge-nf-call-arptables=0 + sudo sysctl -w net.bridge.bridge-nf-call-ip6tables=0 + sudo sysctl -w net.bridge.bridge-nf-call-iptables=0 + + cname=bft-node-$IFACE-$vlan-$offset + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -p $(( 5000 + $offset + $vlan )):22 \ + -p $(( 8000 + $offset + $vlan )):8080 \ + -d bft:node /usr/sbin/sshd -D + + cspace=$(docker inspect --format '{{.State.Pid}}' $cname) + + # create bridge + sudo ip link add br-$IFACE.$vlan type bridge + sudo ip link set br-$IFACE.$vlan up + + # create uplink vlan on IFACE + sudo ip link add link $IFACE name $IFACE.$vlan type vlan id $vlan + sudo ip link set dev $IFACE.$vlan address $(random_private_mac $vlan) + sudo ip link set $IFACE.$vlan master br-$IFACE.$vlan + sudo ip link set $IFACE.$vlan up + + # add veth for new container (one per container vs. the two above are shared) + sudo ip link add v$IFACE-$vlan-$offset type veth peer name eth1 netns $cspace + sudo ip link set v$IFACE-$vlan-$offset master br-$IFACE.$vlan + sudo ip link set v$IFACE-$vlan-$offset up + + docker exec $cname ip link set eth1 up +} + # eth0/eth1 are both dhcp on the main network create_container_eth1_dhcp () { local vlan=$1 From bd612fe740a5110fbfd7742d0e73395cc5aebfd3 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 10 Oct 2018 14:47:01 -0500 Subject: [PATCH 393/947] deploy: update docker container image name to be configurable We still default to bft:node tagged image, but this can be set via env variable before calling functions or running the script Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index ed2cdc58..40042a8b 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -5,6 +5,7 @@ START_VLAN=${2:-101} END_VLAN=${3:-144} OPTS=${4:-"both"} # both, odd, even, odd-dhcp, even-dhcp BRINT=br-bft +BF_IMG=${BF_IMG:-"bft:node"} random_private_mac () { echo $1$1$1$1$1$1 | od -An -N6 -tx1 | sed -e 's/^ *//' -e 's/ */:/g' -e 's/:$//' -e 's/^\(.\)[13579bdf]/\10/' @@ -28,7 +29,7 @@ create_container_eth1_vlan () { docker run --name $cname --privileged -h $cname --restart=always \ -p $(( 5000 + $offset + $vlan )):22 \ -p $(( 8000 + $offset + $vlan )):8080 \ - -d bft:node /usr/sbin/sshd -D + -d $BF_IMG /usr/sbin/sshd -D sudo ip link del $IFACE.$vlan || true sudo ip link add link $IFACE name $IFACE.$vlan type vlan id $vlan @@ -55,7 +56,7 @@ create_container_eth1_bridged_vlan () { docker run --name $cname --privileged -h $cname --restart=always \ -p $(( 5000 + $offset + $vlan )):22 \ -p $(( 8000 + $offset + $vlan )):8080 \ - -d bft:node /usr/sbin/sshd -D + -d $BFT_IMG /usr/sbin/sshd -D cspace=$(docker inspect --format '{{.State.Pid}}' $cname) @@ -84,7 +85,7 @@ create_container_eth1_dhcp () { cname=bft-node-$IFACE-$vlan docker stop $cname && docker rm $cname docker run --name $cname --privileged -h $cname --restart=always \ - -d --network=none bft:node /usr/sbin/sshd -D + -d --network=none $BF_IMG /usr/sbin/sshd -D cspace=$(docker inspect --format '{{.State.Pid}}' $cname) @@ -106,7 +107,7 @@ create_container_eth1_static () { cname=bft-node-$IFACE-$name docker stop $cname && docker rm $cname docker run --name $cname --privileged -h $cname --restart=always \ - -d --network=none bft:node /usr/sbin/sshd -D + -d --network=none $BF_IMG /usr/sbin/sshd -D cspace=$(docker inspect --format {{.State.Pid}} $cname) From 201cc8aec3fafa68ac38d2cb424b925e8a9618f4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 15 Oct 2018 12:18:11 -0500 Subject: [PATCH 394/947] devices: set consoles explictly This list keeps growing when we try to connect to a board and fail leading to an incorrect list of devices Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 2 +- devices/qemu.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 990eb227..fddfbe7d 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -71,7 +71,7 @@ def __init__(self, **kwargs): self.config = config - self.consoles.append(self) + self.consoles = [self] if type(conn_cmd) is list: self.conn_list = conn_cmd diff --git a/devices/qemu.py b/devices/qemu.py index 5b6797a4..2bcb124f 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -50,7 +50,7 @@ def __init__(self, kernel=None, env=None, **kwargs): - self.consoles.append(self) + self.consoles = [self] if rootfs is None: raise Exception("The QEMU device type requires specifying a rootfs") From 547120dda9721a56246cdb1279fc78488823c5a0 Mon Sep 17 00:00:00 2001 From: luke <luke_tseng@compalbn.com> Date: Tue, 16 Oct 2018 15:27:45 +0800 Subject: [PATCH 395/947] tests: lib: docsis.py: add docsis class for cfg file opartion - add docsis class for cfg file to decode and encode. Name: docsis module Purpose: docsis operating. Input: Absolute path of text file Fuction: decode(): return output file name(.txt) encode(output_type='cm_cfg') return output file name(.cfg or .bin) Signed-off-by: luke <luke_tseng@compalbn.com> --- tests/lib/docsis.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 tests/lib/docsis.py diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py new file mode 100755 index 00000000..bddb25b2 --- /dev/null +++ b/tests/lib/docsis.py @@ -0,0 +1,40 @@ +# Copyright (c) 2015 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. +# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 + +import os + +class docsis: + """ + Name: docsis module + Purpose: docsis operating. + Input: Absolute path of text file + Fuction: + decode(): + return output file name(.txt) + encode(output_type='cm_cfg') + return output file name(.cfg or .bin) + """ + def __init__(self, file_path): + self.file_path=file_path + self.dir_path=os.path.split(file_path)[0] + self.file=os.path.split(file_path)[1] + + def decode(self): + if '.cfg' in self.file: + os.system("docsis -d %s > %s" %(self.file_path, self.file_path.replace('.cfg', '.txt'))) + return self.file.replace('.cfg', '.txt') + def encode(self, output_type='cm_cfg'): + """docsis need a not emtpy of key file for encode""" + if not os.path.exists("%s/key" %self.dir_path): + os.system("echo key > %s/key" %self.dir_path) + if '.txt' in self.file and output_type=='cm_cfg': + os.system("docsis -e %s %s %s" % (self.file_path, self.dir_path+'/key', self.file_path.replace('.txt', '.cfg'))) + return self.file.replace('.txt', '.cfg') + elif '.txt' in self.file and output_type=='mta_cfg': + os.system("docsis -p %s %s" % (self.file_path, self.file_path.replace('.txt', '.bin'))) + return self.file.replace('.txt', '.bin') From 98e965a319e5db15ce612d57d046e34c99162b9e Mon Sep 17 00:00:00 2001 From: MartinCBN <martin_wu@compalbn.com> Date: Tue, 16 Oct 2018 13:52:56 +0800 Subject: [PATCH 396/947] add tests:lib:installers.py:add install_pysnmp -tests:lib:installers.py:add install_pysnmp add install pysnmp setup Signed-off-by: MartinCBN <martin_wu@compalbn.com> --- tests/lib/installers.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 3444d8ad..a0bd7f09 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -285,3 +285,14 @@ def install_vsftpd(device): device.expect(device.prompt, timeout=5) device.sendline('service vsftpd restart') device.expect(device.prompt, timeout=60) + +def install_pysnmp(device): + '''Install pysnmp if not present.''' + device.sendline('\npip freeze | grep pysnmp') + try: + device.expect('pysnmp==', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('pip install pysnmp') + device.expect(device.prompt, timeout=90) From 98f7f1c2b7b51f1d7f507e11312253a1cd202c68 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 16 Oct 2018 09:17:02 -0500 Subject: [PATCH 397/947] tests: webbrowse: keep the board alive Testing these URLs coudl take some time, so let's touch the board in between Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/webbrowse.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/webbrowse.py b/tests/webbrowse.py index abc6df13..fba822ae 100644 --- a/tests/webbrowse.py +++ b/tests/webbrowse.py @@ -58,3 +58,5 @@ def runTest(self): lan.expect(prompt) lan.sendline("rm -rf /tmp/webbrowse-test") lan.expect(prompt) + + board.touch() From 86471babe82c42b5f898b31eb21bc11fd9e2ce13 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 15 Oct 2018 11:13:27 -0700 Subject: [PATCH 398/947] devices: improve error messages One type of error mostly will generate issues here, otherwise just passthrough the exception for handling later Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/__init__.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/devices/__init__.py b/devices/__init__.py index 1598d582..170f8a01 100644 --- a/devices/__init__.py +++ b/devices/__init__.py @@ -8,6 +8,7 @@ import sys import glob import inspect +import pexpect board = None lan = None @@ -76,12 +77,8 @@ def get_device(model, **kwargs): try: return dev(model, **kwargs) - except KeyboardInterrupt: - raise - except Exception as e: - raise - except: - msg = "Failed to create a %s, unable to connect (in use) or possibly misconfigured" % model + except pexpect.EOF: + msg = "Failed to connect to a %s, unable to connect (in use) or possibly misconfigured" % model raise Exception(msg) return None From 6a6bdae6de82beedf1b982f7fb3c3e662944df5e Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 17 Oct 2018 12:30:10 -0500 Subject: [PATCH 399/947] requirements: lock down urllib Fixes: 0.18s$ ./bft -i /home/travis/virtualenv/python2.7.14/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.24) or chardet (3.0.4) doesn't match a supported version! RequestsDependencyWarning) Traceback (most recent call last): File "./bft", line 26, in <module> import zephyr_reporter File "./zephyr/zephyr_reporter.py", line 11, in <module> from jira import JIRA File "/home/travis/virtualenv/python2.7.14/lib/python2.7/site-packages/jira/__init__.py", line 10, in <module> from jira.client import Comment # noqa: E402 File "/home/travis/virtualenv/python2.7.14/lib/python2.7/site-packages/jira/client.py", line 6, in <module> from requests.auth import AuthBase File "/home/travis/virtualenv/python2.7.14/lib/python2.7/site-packages/requests/__init__.py", line 112, in <module> from . import utils File "/home/travis/virtualenv/python2.7.14/lib/python2.7/site-packages/requests/utils.py", line 26, in <module> from ._internal_utils import to_native_string File "/home/travis/virtualenv/python2.7.14/lib/python2.7/site-packages/requests/_internal_utils.py", line 11, in <module> from .compat import is_py2, builtin_str, str File "/home/travis/virtualenv/python2.7.14/lib/python2.7/site-packages/requests/compat.py", line 48, in <module> from urllib3.packages.ordered_dict import OrderedDict ImportError: No module named ordered_dict Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 390fff6a..9ebad771 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ +urllib3==1.23 argparse elasticsearch>=1.0.0 unittest2 From bd507e30edef4283c5098f57bef6ed5bbc70f7ec Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 25 Sep 2018 21:00:40 -0500 Subject: [PATCH 400/947] devices: window_wsl: add stub for windows WSL device This is Linux running on WSL on a Windows machine. We will add specific things for WSL in this class, such as running cmd.exe and other misc items as needed (not in this commit). For this to work one needs to start a ssh server inside WSL linux system (ideally debian based). One needs to verify the default route goes through the DUT by changing the metric on the interfaces and routes such that this is the case. Also, make sure things like the firewall are turned off. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/windows_wsl.py | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 devices/windows_wsl.py diff --git a/devices/windows_wsl.py b/devices/windows_wsl.py new file mode 100644 index 00000000..e5bdc2fd --- /dev/null +++ b/devices/windows_wsl.py @@ -0,0 +1,5 @@ +import debian + +class WindowsWSL(debian.DebianBox): + + model = ('windows_wsl') From 29b2b5d2d93dc21c08cc9e9e19eeac3f1be51cfe Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 28 Sep 2018 14:11:42 -0500 Subject: [PATCH 401/947] tests: iperf3: add support for windows iperf client Refactored to not hard code lan as client, and we can specify a Windows WSL as a client as well. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/iperf3_test.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/tests/iperf3_test.py b/tests/iperf3_test.py index 32d95478..c3922447 100644 --- a/tests/iperf3_test.py +++ b/tests/iperf3_test.py @@ -10,26 +10,32 @@ from lib import installers from devices import board, wan, lan, wlan, prompt +try: + from devices import winwsl +except: + winwsl = None + class iPerf3Test(rootfs_boot.RootFSBootTest): '''iPerf3 generic performance tests''' opts= "" time = 60 server_port = "5201" + client = lan def runTest(self): installers.install_iperf3(wan) - installers.install_iperf3(lan) + installers.install_iperf3(self.client) wan.sendline('iperf3 -s -p %s' % self.server_port) wan.expect('-----------------------------------------------------------') wan.expect('-----------------------------------------------------------') - lan.sendline('iperf3 %s -c %s -P5 -t %s -i 0 -p %s' % (self.opts, wan.gw, self.time, self.server_port)) - lan.expect(prompt, timeout=self.time+10) + self.client.sendline('iperf3 %s -c %s -P5 -t %s -i 0 -p %s' % (self.opts, wan.gw, self.time, self.server_port)) + self.client.expect(prompt, timeout=self.time+10) - sender = re.findall('SUM.*Bytes\s*(.*/sec).*sender', lan.before)[-1] + sender = re.findall('SUM.*Bytes\s*(.*/sec).*sender', self.client.before)[-1] if 'Mbits' in sender: s_rate = float(sender.split()[0]) elif 'Kbits' in sender: @@ -39,7 +45,7 @@ def runTest(self): else: raise Exception("Unknown rate in sender results") - recv = re.findall('SUM.*Bytes\s*(.*/sec).*receiver', lan.before)[-1] + recv = re.findall('SUM.*Bytes\s*(.*/sec).*receiver', self.client.before)[-1] if 'Mbits' in recv: r_rate = float(recv.split()[0]) elif 'Kbits' in recv: @@ -56,7 +62,7 @@ def runTest(self): self.recovery() def recovery(self): - for d in [wan, lan]: + for d in [wan, self.client]: d.sendcontrol('c') d.sendcontrol('c') d.expect(prompt) @@ -70,3 +76,8 @@ class iPerf3RTest(iPerf3Test): class iPerf3Test2nd(iPerf3Test): '''iPerf3 on second server port''' server_port = "5202" + +class iPerf3TestWSL(iPerf3Test): + '''iPerf3 with windows WSL client''' + + client = winwsl From a35d98d79ba8e2a30b2eb6325ed1889cf0d66f21 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 17 Oct 2018 12:01:04 -0500 Subject: [PATCH 402/947] tests: lib: docsis: switch key to /dev/null and improve spacing and add more error checking Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/docsis.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py index bddb25b2..e1b05f1b 100755 --- a/tests/lib/docsis.py +++ b/tests/lib/docsis.py @@ -7,6 +7,7 @@ # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 import os +from common import cmd_exists class docsis: """ @@ -23,18 +24,23 @@ def __init__(self, file_path): self.file_path=file_path self.dir_path=os.path.split(file_path)[0] self.file=os.path.split(file_path)[1] + assert cmd_exists('docsis') def decode(self): if '.cfg' in self.file: os.system("docsis -d %s > %s" %(self.file_path, self.file_path.replace('.cfg', '.txt'))) + assert os.path.exists(self.file.replace('.cfg', '.txt')) + return self.file.replace('.cfg', '.txt') + def encode(self, output_type='cm_cfg'): - """docsis need a not emtpy of key file for encode""" - if not os.path.exists("%s/key" %self.dir_path): - os.system("echo key > %s/key" %self.dir_path) if '.txt' in self.file and output_type=='cm_cfg': - os.system("docsis -e %s %s %s" % (self.file_path, self.dir_path+'/key', self.file_path.replace('.txt', '.cfg'))) + os.system("docsis -e %s /dev/null %s" % (self.file_path, self.file_path.replace('.txt', '.cfg'))) + assert os.path.exists(self.file_path.replace('.txt', '.cfg')) + return self.file.replace('.txt', '.cfg') elif '.txt' in self.file and output_type=='mta_cfg': os.system("docsis -p %s %s" % (self.file_path, self.file_path.replace('.txt', '.bin'))) + assert os.path.exists(self.file_path.replace('.txt', '.bin')) + return self.file.replace('.txt', '.bin') From 5888de228d6c06b8088dd8ae594e2fa09c472081 Mon Sep 17 00:00:00 2001 From: luke <luke_tseng@compalbn.com> Date: Tue, 23 Oct 2018 12:09:14 +0800 Subject: [PATCH 403/947] tests: lib: docsis.py: modify docsis class for independent policy -change docsis encode output name ex: docsis(file_abspath).encode('cm_cfg') will return mv1-1-1/mv1-1-1-cm.cfg Signed-off-by: luke <luke_tseng@compalbn.com> --- tests/lib/docsis.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py index e1b05f1b..9930daf2 100755 --- a/tests/lib/docsis.py +++ b/tests/lib/docsis.py @@ -6,7 +6,7 @@ # The full text can be found in LICENSE in the root directory. # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 -import os +import os, config from common import cmd_exists class docsis: @@ -35,12 +35,16 @@ def decode(self): def encode(self, output_type='cm_cfg'): if '.txt' in self.file and output_type=='cm_cfg': - os.system("docsis -e %s /dev/null %s" % (self.file_path, self.file_path.replace('.txt', '.cfg'))) - assert os.path.exists(self.file_path.replace('.txt', '.cfg')) + cmcfg_name=config.board['station']+"-cm.cfg" + cmcfg_path=os.path.join(self.dir_path, cmcfg_name) + os.system("docsis -e %s /dev/null %s" % (self.file_path, cmcfg_path)) + assert os.path.exists(cmcfg_path) - return self.file.replace('.txt', '.cfg') + return os.path.join(config.board['station'], cmcfg_name) elif '.txt' in self.file and output_type=='mta_cfg': - os.system("docsis -p %s %s" % (self.file_path, self.file_path.replace('.txt', '.bin'))) - assert os.path.exists(self.file_path.replace('.txt', '.bin')) + mtacfg_name=config.board['station']+"-mta.bin" + mtacfg_path=os.path.join(self.dir_path, mtacfg_name) + os.system("docsis -p %s %s" % (self.file_path, mtacfg_path)) + assert os.path.exists(mtacfg_path) - return self.file.replace('.txt', '.bin') + return os.path.join(config.board['station'], mtacfg_name) From 89b704f4cebbac045d718ba5b4451e969c57a5dc Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Fri, 19 Oct 2018 15:02:24 +0200 Subject: [PATCH 404/947] devices: casa_cmts: timeout increase increased the value of 2 timeouts in CasaCMTS.connect that seemed too optimistic 3s -> 10s 5s -> 20s Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/casa_cmts.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index b720fb5e..923d3b0c 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -39,7 +39,7 @@ def __init__(self, def connect(self): try: - if 0 == self.expect(['login:', pexpect.TIMEOUT], timeout=3): + if 0 == self.expect(['login:', pexpect.TIMEOUT], timeout=10): self.sendline(self.username) self.expect('assword:') self.sendline(self.password) @@ -49,7 +49,7 @@ def connect(self): # over serial it could be stale so we try to recover self.sendline('q') self.sendline('exit') - self.expect([pexpect.TIMEOUT] + self.prompt, timeout=5) + self.expect([pexpect.TIMEOUT] + self.prompt, timeout=20) self.sendline('enable') if 0 == self.expect(['Password:'] + self.prompt): self.sendline(self.password) From c077664921f2cb8fce3166e2fe9a2443bda2a31b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 17 Oct 2018 23:11:03 -0500 Subject: [PATCH 405/947] tests: screenshot_gui: save display in self.display So we can run recover properly Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/screenshot_gui.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/screenshot_gui.py b/tests/screenshot_gui.py index 08c0346c..cf58339e 100644 --- a/tests/screenshot_gui.py +++ b/tests/screenshot_gui.py @@ -26,8 +26,8 @@ def runTest(self): raw_input("Press any key after connecting to display....") except: # fallback xvfb - display = Display(visible=0, size=(1366, 768)) - display.start() + self.display = Display(visible=0, size=(1366, 768)) + self.display.start() try: if lan.http_proxy is not None: From 62892c111bddb29d1b2dcafd2b4247b23320c55c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 1 Nov 2018 14:51:28 -0500 Subject: [PATCH 406/947] gitignore: update for more entries Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- .gitignore | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.gitignore b/.gitignore index fb6255af..fc1729ee 100644 --- a/.gitignore +++ b/.gitignore @@ -75,3 +75,14 @@ TAGS # Alternate config files *.json + +# Apple foo +.AppleDouble +.DS_Store + +# Patch foo +*.rej +*.orig + +# geckodriver log +geckodriver.log From 9863d07ec665567c226d92fc6fc8d6811f61ed0e Mon Sep 17 00:00:00 2001 From: Anil Shetty <ashetty@libertyglobal.com> Date: Thu, 1 Nov 2018 14:52:51 -0500 Subject: [PATCH 407/947] devices: axiros_acs: add Axios ACS server Add the following to JSON: { "type": "axiros_acs_soap", "name": "acs_server", "ipaddr": "IP_ADDR", "port": "PORT", "username": "USERNAME", "password": "PASSWORD" }, Run via the following (to test): python ./devices/axiros_acs.py $ip:$port $user $password Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/axiros_acs.py | 173 ++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 1 + 2 files changed, 174 insertions(+) create mode 100755 devices/axiros_acs.py diff --git a/devices/axiros_acs.py b/devices/axiros_acs.py new file mode 100755 index 00000000..e6c9f570 --- /dev/null +++ b/devices/axiros_acs.py @@ -0,0 +1,173 @@ +import os +import time + +from zeep import Client +from zeep.wsse.username import UsernameToken +from zeep.transports import Transport + +from requests import Session +from requests.auth import HTTPBasicAuth + +from xml.etree import ElementTree + +if "BFT_DEBUG" in os.environ: + import logging.config + + logging.config.dictConfig({ + 'version': 1, + 'formatters': { + 'verbose': { + 'format': '%(name)s: %(message)s' + } + }, + 'handlers': { + 'console': { + 'level': 'DEBUG', + 'class': 'logging.StreamHandler', + 'formatter': 'verbose', + }, + }, + 'loggers': { + 'zeep.transports': { + 'level': 'DEBUG', + 'propagate': True, + 'handlers': ['console'], + }, + } + }) + +class AxirosACS(): + + model = "axiros_acs_soap" + + def __init__(self, *args, **kwargs): + self.args = args + self.kwargs = kwargs + self.username = self.kwargs['username'] + self.password = self.kwargs['password'] + self.ipaddr = self.kwargs['ipaddr'] + self.port = self.kwargs.get('port', None) + + if self.port is not None: + target = self.ipaddr + ":" + self.port + else: + target = self.ipaddr + + self.wsdl = "http://" + target + "/live/CPEManager/DMInterfaces/soap/getWSDL" + + session = Session() + session.auth = HTTPBasicAuth(self.username, self.password) + + self.client = Client(wsdl=self.wsdl, transport=Transport(session=session), wsse=UsernameToken(self.username, self.password)) + + name = "acs_server" + + def __str__(self): + return "AxirosACS" + + def close(self): + pass + + def get(self, serial_number, param): + GetParameterValuesParametersClassArray_type = self.client.get_type('ns0:GetParameterValuesParametersClassArray') + GetParameterValuesParametersClassArray_data = GetParameterValuesParametersClassArray_type ([param]) + + CommandOptionsTypeStruct_type = self.client.get_type('ns0:CommandOptionsTypeStruct') + CommandOptionsTypeStruct_data = CommandOptionsTypeStruct_type() + + CPEIdentifierClassStruct_type = self.client.get_type('ns0:CPEIdentifierClassStruct') + CPEIdentifierClassStruct_data = CPEIdentifierClassStruct_type(cpeid=serial_number) + + # get raw soap response (parsing error with zeep) + with self.client.settings(raw_response=True): + response = self.client.service.GetParameterValues(GetParameterValuesParametersClassArray_data, CommandOptionsTypeStruct_data, CPEIdentifierClassStruct_data) + + ticketid = None + root = ElementTree.fromstring(response.content) + for value in root.iter('ticketid'): + ticketid = value.text + break + + if ticketid is None: + return None + return self.Axiros_GetTicketValue (ticketid) + + def set(self, serial_number, attr, value): + SetParameterValuesParametersClassArray_type = self.client.get_type('ns0:SetParameterValuesParametersClassArray') + SetParameterValuesParametersClassArray_data = SetParameterValuesParametersClassArray_type ([{'key': attr, 'value': value}]) + + CommandOptionsTypeStruct_type = self.client.get_type('ns0:CommandOptionsTypeStruct') + CommandOptionsTypeStruct_data = CommandOptionsTypeStruct_type() + + CPEIdentifierClassStruct_type = self.client.get_type('ns0:CPEIdentifierClassStruct') + CPEIdentifierClassStruct_data = CPEIdentifierClassStruct_type(cpeid=serial_number) + + # get raw soap response (parsing error with zeep) + with self.client.settings(raw_response=True): + response = self.client.service.SetParameterValues(SetParameterValuesParametersClassArray_data, CommandOptionsTypeStruct_data, CPEIdentifierClassStruct_data) + + ticketid = None + root = ElementTree.fromstring(response.content) + for value in root.iter('ticketid'): + ticketid = value.text + break + + if ticketid is None: + return None + + return self.Axiros_GetTicketValue (ticketid) + + def Axiros_GetListOfCPEs(self): + CPESearchOptionsClassStruct_type = self.client.get_type('ns0:CPESearchOptionsClassStruct') + CPESearchOptionsClassStruct_data = CPESearchOptionsClassStruct_type() + + CommandOptionsForCPESearchStruct_type = self.client.get_type('ns0:CommandOptionsForCPESearchStruct') + CommandOptionsForCPESearchStruct_data = CommandOptionsForCPESearchStruct_type() + + response = self.client.service.GetListOfCPEs(CPESearchOptionsClassStruct_data, CommandOptionsForCPESearchStruct_data) + if response['code'] != 200: + return None + + return response + + def Axiros_GetTicketResponse(self, ticketid): + response = self.client.service.get_generic_sb_result(ticketid) + + if response['code'] != 200: + return None + + return response['code'] + + def Axiros_GetTicketValue(self, ticketid): + for i in range(8): + time.sleep (1) + with self.client.settings(raw_response=True): + ticket_resp = self.client.service.get_generic_sb_result(ticketid) + + root = ElementTree.fromstring(ticket_resp.content) + for value in root.iter('code'): + break + if (value.text != '200'): + continue + for value in root.iter('value'): + return value.text + return None + +if __name__ == '__main__': + import sys + + if ':' in sys.argv[1]: + port, ip = set(sys.argv[1].split(':')) + else: + ip = sys.argv[1] + port = 80 + + acs = AxirosACS(ipaddr=ip, port=port, username=sys.argv[2], password=sys.argv[3]) + + acs.Axiros_GetListOfCPEs () + + ret = acs.get('DDAP6287091A', 'Device.DeviceInfo.SoftwareVersion') + print ret + + ret = acs.get ('DDAP6287091A', 'Device.WiFi.SSID.1.SSID') + print ret diff --git a/requirements.txt b/requirements.txt index 9ebad771..604689e5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -16,3 +16,4 @@ jira simplejson pyvirtualdisplay Faker +zeep From 148369939151977c465f5464eb900e52cdad113f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 2 Nov 2018 08:36:44 -0500 Subject: [PATCH 408/947] devices: axiros_acs: small fix for parsing input Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/axiros_acs.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/devices/axiros_acs.py b/devices/axiros_acs.py index e6c9f570..f2e128dc 100755 --- a/devices/axiros_acs.py +++ b/devices/axiros_acs.py @@ -48,12 +48,15 @@ def __init__(self, *args, **kwargs): self.ipaddr = self.kwargs['ipaddr'] self.port = self.kwargs.get('port', None) + print kwargs + if self.port is not None: target = self.ipaddr + ":" + self.port else: target = self.ipaddr self.wsdl = "http://" + target + "/live/CPEManager/DMInterfaces/soap/getWSDL" + print self.wsdl session = Session() session.auth = HTTPBasicAuth(self.username, self.password) @@ -157,7 +160,8 @@ def Axiros_GetTicketValue(self, ticketid): import sys if ':' in sys.argv[1]: - port, ip = set(sys.argv[1].split(':')) + ip = sys.argv[1].split(':')[0] + port = sys.argv[1].split(':')[1] else: ip = sys.argv[1] port = 80 @@ -166,8 +170,8 @@ def Axiros_GetTicketValue(self, ticketid): acs.Axiros_GetListOfCPEs () - ret = acs.get('DDAP6287091A', 'Device.DeviceInfo.SoftwareVersion') + ret = acs.get('DEAP805811D5', 'Device.DeviceInfo.SoftwareVersion') print ret - ret = acs.get ('DDAP6287091A', 'Device.WiFi.SSID.1.SSID') + ret = acs.get ('DEAP805811D5', 'Device.WiFi.SSID.1.SSID') print ret From 7ef4b49ed04b5321f7a068fbba9066c26af3a95c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 2 Nov 2018 12:36:25 -0500 Subject: [PATCH 409/947] devices: cougarpark: fix error with log Fixes this issues: Traceback (most recent call last): File "./bft", line 432, in <module> main() File "./bft", line 290, in main clog.write(console.log) AttributeError: 'spawn' object has no attribute 'log' All DUTs need to inherit from base device type, including secondary consoles. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/cougarpark.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/devices/cougarpark.py b/devices/cougarpark.py index 01bafdd5..922564ff 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -11,6 +11,8 @@ import ipaddress import connection_decider import signal +import base +import sys KEY_ESCAPE = '\x1B' KEY_UP = '\x1b[A' @@ -44,10 +46,11 @@ def __init__(self, *args, **kwargs): super(CougarPark, self).__init__(*args, **kwargs) del kwargs['conn_cmd'] - self.arm = pexpect.spawn.__new__(pexpect.spawn) + self.arm = pexpect.spawn.__new__(base.BaseDevice) arm_conn = connection_decider.connection(kwargs['connection_type'], device=self.arm, conn_cmd=self.conn_list[1], **kwargs) arm_conn.connect() self.consoles.append(self.arm) + self.arm.logfile_read = sys.stdout def kill_console_at_exit(self): self.kill(signal.SIGKILL) From e4dc04b3fd4204b2f24479f62b0aa9fc888cbc22 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Mon, 5 Nov 2018 13:33:35 +0100 Subject: [PATCH 410/947] devices: casa_cmts: added is_cm_bridged function Parameters: cm_mac (CM mac address) This function assumes the CM is online returns: True if the cmts does NOT see the CM eRouter (i.e. theCM mode is in bridge mode) False if the cmts sees the CM eRouter (i.e. theCM mode is in gateway mode) Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/casa_cmts.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 923d3b0c..eee6cc8c 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -352,6 +352,21 @@ def del_file(self, f): self.sendline('del %s' % f) self.expect(self.prompt) + # Parameters: cm_mac (CM mac address) + # This function assumes the CM is online + # returns: + # True if the cmts does NOT see the CM eRouter + # (i.e. theCM mode is in bridge mode) + # False if the cmts sees the CM eRouter + # (i.e. theCM mode is in gateway mode) + def is_cm_bridged(self, cm_mac): + self.sendline("scm "+cm_mac+" cpe") + if 0==self.expect(['eRouter']+self.prompt): + self.expect(self.prompt) + return False + else: + return True + if __name__ == '__main__': import time From b3c1ecab26a050eaa27b8c44c46a30709fcc770a Mon Sep 17 00:00:00 2001 From: "prekumar.contractor" <prekumar.contractor@libertyglobal.com> Date: Tue, 6 Nov 2018 16:01:45 +0100 Subject: [PATCH 411/947] tests/lib : added logging.py to log assert messages in console -The file has 2 functions new_short & logfile_assert_message -new_short is to log the messges in <testcase/testsuite>.txt under results folder -logfile_assert_message function when called will - log the message PASS/FAIL message in <testcase/testsuite>.txt - Throw Assertion error with Proper message for easy understanding Change-Id: Gcfb2e4cad687d7b9752177g5961v52uc7zb7856a Signed-off-by: Prem Kumar K N <prekumar.contractor@libertyglobal.com> --- tests/lib/logging.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100755 tests/lib/logging.py diff --git a/tests/lib/logging.py b/tests/lib/logging.py new file mode 100755 index 00000000..00b05c40 --- /dev/null +++ b/tests/lib/logging.py @@ -0,0 +1,25 @@ +# Copyright (c) 2015 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. + +import time + +def now_short(): + """ + Name:now_short + Purpose: Get current date and time string + Input:None + Output:String in "YYYYMMDD-hhmmss" format + """ + timeString = time.strftime("%Y%m%d-%H%M%S", time.localtime())+"\t" + return timeString + +def logfile_assert_message(s, condition, message): + if not condition: + s.log_to_file += now_short()+message+": FAIL\r\n" + assert 0, message + else: + s.log_to_file += now_short()+message+": PASS\r\n" From 0fc4499b8ed745329c1ce25e3fdc9826de5881c3 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 5 Nov 2018 08:29:06 -0600 Subject: [PATCH 412/947] devices: casa_cmts: add early auth encry ranging option This will help some CMs come online faster Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/casa_cmts.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index eee6cc8c..1302b94e 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -256,6 +256,8 @@ def add_iface_docsis_mac(self, index, ip_bundle, qam_idx, qam_sub, qam_ch, ups_i self.expect(self.prompt) self.sendline('no shutdown') self.expect(self.prompt) + self.sendline('early-authentication-encryption ranging') + self.expect(self.prompt) self.sendline('no dhcp-authorization') self.expect(self.prompt) self.sendline('no multicast-dsid-forward') From 2831882c7ddb04d411edf4942dd410e56f051c86 Mon Sep 17 00:00:00 2001 From: lynn <lynn_lin@compalbn.com> Date: Thu, 8 Nov 2018 17:29:06 +0800 Subject: [PATCH 413/947] devices: casa_cmts.py: add check_docsis_mac_ip_provisioning_mode Add check_docsis_mac_ip_provisioning_mode function to return current provisioning mode Signed-off-by: lynn <lynn_lin@compalbn.com> --- devices/casa_cmts.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 1302b94e..daddb2ad 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -369,6 +369,13 @@ def is_cm_bridged(self, cm_mac): else: return True + def check_docsis_mac_ip_provisioning_mode(self, index): + self.sendline('show interface docsis-mac %s' % index) + self.expect('ip-provisioning-mode (\w+\-\w+)') + result = self.match.group(1) + if self.match != None: + return result + if __name__ == '__main__': import time From db6fc9ebbfccee7adfbe01ac0ffa39e0294f34b6 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 8 Nov 2018 15:32:30 -0600 Subject: [PATCH 414/947] devices: axiros: remove debug prints that snuck in Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/axiros_acs.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/devices/axiros_acs.py b/devices/axiros_acs.py index f2e128dc..b68f7bea 100755 --- a/devices/axiros_acs.py +++ b/devices/axiros_acs.py @@ -48,15 +48,12 @@ def __init__(self, *args, **kwargs): self.ipaddr = self.kwargs['ipaddr'] self.port = self.kwargs.get('port', None) - print kwargs - if self.port is not None: target = self.ipaddr + ":" + self.port else: target = self.ipaddr self.wsdl = "http://" + target + "/live/CPEManager/DMInterfaces/soap/getWSDL" - print self.wsdl session = Session() session.auth = HTTPBasicAuth(self.username, self.password) From 000d0becffc318d405bc1dfcce992ab138b3d0df Mon Sep 17 00:00:00 2001 From: luke <luke_tseng@compalbn.com> Date: Wed, 7 Nov 2018 15:41:38 +0800 Subject: [PATCH 415/947] devices: base.py: add .strip() to return string - self.before.strip() instead of self.before Signed-off-by: luke <luke_tseng@compalbn.com> --- devices/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/base.py b/devices/base.py index abb02a79..0f874f34 100644 --- a/devices/base.py +++ b/devices/base.py @@ -61,7 +61,7 @@ def check_output(self, cmd, timeout=30): except Exception as e: self.sendcontrol('c') raise Exception("Command did not complete within %s seconds. Prompt was not seen." % timeout) - return self.before + return self.before.strip() def write(self, string): self._logfile_read.write(string) From 7cccec9cdb6a809df1390372b22ee1225e7055ee Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Wed, 31 Oct 2018 23:01:55 +0100 Subject: [PATCH 416/947] tests: screenshot_gui: uses chromedriver it seems that the firefox webdriver (and geckodriver) is not as stable as the chromedriver. This patch uses chromedriver The firefox lines were left in the code, but are commented out Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/lib/common.py | 16 ++++++++++++++++ tests/screenshot_gui.py | 7 +++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/tests/lib/common.py b/tests/lib/common.py index 3093848a..5c0bf40d 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -116,6 +116,22 @@ def firefox_webproxy_driver(ipport): return driver +def chrome_webproxy_driver(ipport): + ''' + Use this if you prefer Chrome. Should be the same as firefox_webproxy_driver above + ''' + + chrome_options = webdriver.ChromeOptions() + #chrome_options.add_argument('--proxy-server=%s' % ipport) + chrome_options.add_argument("--proxy-server=socks5://" + ipport); + chrome_options.add_argument("--start-maximized") + driver = webdriver.Chrome(options=chrome_options) + + driver.implicitly_wait(30) + driver.set_page_load_timeout(30) + + return driver + def test_msg(msg): cprint(msg, None, attrs=['bold']) diff --git a/tests/screenshot_gui.py b/tests/screenshot_gui.py index cf58339e..28b72e07 100644 --- a/tests/screenshot_gui.py +++ b/tests/screenshot_gui.py @@ -47,8 +47,11 @@ def runTest(self): raise Exception("No reasonable http proxy found, please add one to the board config") print("Using proxy %s" % proxy) - driver = lib.common.firefox_webproxy_driver(proxy) - driver.maximize_window() + #print("Using FirefoxDriver") + #driver = lib.common.firefox_webproxy_driver(proxy) + #driver.maximize_window() + print("Using ChromeDriver") + driver = lib.common.chrome_webproxy_driver(proxy) print ("taking ss of http://%s" % board.lan_gateway) driver.get("http://%s" % board.lan_gateway) From ef831b3b9650b8c19a5228aa07bb9280599ca861 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Thu, 1 Nov 2018 15:10:29 +0100 Subject: [PATCH 417/947] tests: lib: common.py added chrome_webproxy_driver method Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/lib/common.py | 10 +++++++++- tests/screenshot_gui.py | 7 ++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/tests/lib/common.py b/tests/lib/common.py index 5c0bf40d..415a573c 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -118,13 +118,21 @@ def firefox_webproxy_driver(ipport): def chrome_webproxy_driver(ipport): ''' - Use this if you prefer Chrome. Should be the same as firefox_webproxy_driver above + Use this if you prefer Chrome. Should be the same as firefox_webproxy_driver + above, although ChromeWebDriver seems to be more stable. ''' chrome_options = webdriver.ChromeOptions() #chrome_options.add_argument('--proxy-server=%s' % ipport) chrome_options.add_argument("--proxy-server=socks5://" + ipport); chrome_options.add_argument("--start-maximized") + + if "BFT_DEBUG" in os.environ: + print("chrome can be connected to Xvnc") + else: + print("chrome running headless") + chrome_options.add_argument("--headless") + driver = webdriver.Chrome(options=chrome_options) driver.implicitly_wait(30) diff --git a/tests/screenshot_gui.py b/tests/screenshot_gui.py index 28b72e07..cf58339e 100644 --- a/tests/screenshot_gui.py +++ b/tests/screenshot_gui.py @@ -47,11 +47,8 @@ def runTest(self): raise Exception("No reasonable http proxy found, please add one to the board config") print("Using proxy %s" % proxy) - #print("Using FirefoxDriver") - #driver = lib.common.firefox_webproxy_driver(proxy) - #driver.maximize_window() - print("Using ChromeDriver") - driver = lib.common.chrome_webproxy_driver(proxy) + driver = lib.common.firefox_webproxy_driver(proxy) + driver.maximize_window() print ("taking ss of http://%s" % board.lan_gateway) driver.get("http://%s" % board.lan_gateway) From 64ee2939eb7cba152bfef65e87ad6048a8f1c184 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Tue, 6 Nov 2018 17:04:04 +0100 Subject: [PATCH 418/947] config: adds BFT_OPTIONS proposed change which allows for options to be passed to the testing framework. At first will be used to choose the web driver (ffox or chrome) Syntax: BFT_OPTIONS="option1:value option2:value" e.g. export BFT_OPTIONS=webdriver:chrome Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- config.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/config.py b/config.py index eeaed397..1f42c04b 100644 --- a/config.py +++ b/config.py @@ -35,3 +35,31 @@ cdrouter_config = os.environ.get('BFT_CDROUTERCONFIG', None) cdrouter_wan_iface = os.environ.get('BFT_CDROUTERWANIFACE', "eth1") cdrouter_lan_iface = os.environ.get('BFT_CDROUTERLANIFACE', "eth2") + + +# creates a small dictionary of all the options +# this will probably grow as options are added +option_dict = { + "proxy":["nornal","sock5"], + "webdriver":["chrome","ffox"] + } + +# the syntax is +# BFT_OPTIONS="proxy=normal webdriver=chrome" +default_proxy_type = "normal" +default_web_driver = "ffox" + +if 'BFT_OPTIONS' in os.environ: + for option in os.environ['BFT_OPTIONS'].split(' '): + k,v = option.split(':') + if option_dict.get(k) and (v in option_dict[k]): + if k == "proxy": + default_proxy_type = v + if k == "webdriver": + default_web_driver = v + else: + print("Warning: Ignoring option: %s (misspelled?)" % option) + +if 'BFT_DEBUG' in os.environ: + print("Using default_proxy_type="+default_proxy_type) + print("Using default_web_driver="+default_web_driver) From d3d5ea409ced730767406449dbdc78060e3b2142 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Fri, 9 Nov 2018 17:11:22 +0100 Subject: [PATCH 419/947] config: adds BFT_OPTIONS related fixed typo screenshot test uses the generic webgui driver finction the webdriver can selected by BFT_OPTIONS Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- config.py | 2 +- tests/lib/common.py | 31 ++++++++++++++++++++++++++++--- tests/screenshot_gui.py | 3 +-- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/config.py b/config.py index 1f42c04b..5971f6c8 100644 --- a/config.py +++ b/config.py @@ -40,7 +40,7 @@ # creates a small dictionary of all the options # this will probably grow as options are added option_dict = { - "proxy":["nornal","sock5"], + "proxy":["normal","sock5"], "webdriver":["chrome","ffox"] } diff --git a/tests/lib/common.py b/tests/lib/common.py index 415a573c..efd81bc0 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -15,6 +15,7 @@ import urllib2 import os import signal +import config from termcolor import cprint from selenium import webdriver @@ -104,6 +105,7 @@ def firefox_webproxy_driver(ipport): profile.set_preference("network.proxy.type", 1) profile.set_preference("network.proxy.http", ip) profile.set_preference("network.proxy.http_port", int(port)) + # missing the ssl proxy, should we add it? profile.set_preference("network.proxy.ftp", ip) profile.set_preference("network.proxy.ftp_port", int(port)) profile.set_preference("network.proxy.socks", ip) @@ -119,12 +121,15 @@ def firefox_webproxy_driver(ipport): def chrome_webproxy_driver(ipport): ''' Use this if you prefer Chrome. Should be the same as firefox_webproxy_driver - above, although ChromeWebDriver seems to be more stable. + above, although ChromeWebDriver seems to be slower in loading pages. ''' chrome_options = webdriver.ChromeOptions() - #chrome_options.add_argument('--proxy-server=%s' % ipport) - chrome_options.add_argument("--proxy-server=socks5://" + ipport); + if config.default_proxy_type == 'sock5': + chrome_options.add_argument("--proxy-server=socks5://" + ipport); + else: + chrome_options.add_argument('--proxy-server=' + ipport) + chrome_options.add_argument("--start-maximized") if "BFT_DEBUG" in os.environ: @@ -140,6 +145,26 @@ def chrome_webproxy_driver(ipport): return driver +def get_webproxy_driver(ipport): + if config.default_web_driver == "ffox": + d = firefox_webproxy_driver(ipport) + d.maximize_window() + return d + elif config.default_web_driver == "chrome": + return chrome_webproxy_driver(ipport) + # the win maximise is done in the chrome options + else: + # something has gone wrong, make the error message as self explanatory as possible + msg = "No usable web_driver specified, please add one to the board config" + if config.default_web_driver is not None: + msg = msg + " (value in config: '"+config.default_web_driver+"' not recognised)" + else: + # this should never happen + msg = msg + "(no default value set, please check boardfarm/config.py)" + raise Exception(msg) + + print("Using proxy %s, webdriver: %s" % (proxy, config.default_web_driver)) + def test_msg(msg): cprint(msg, None, attrs=['bold']) diff --git a/tests/screenshot_gui.py b/tests/screenshot_gui.py index cf58339e..0efd03b3 100644 --- a/tests/screenshot_gui.py +++ b/tests/screenshot_gui.py @@ -47,8 +47,7 @@ def runTest(self): raise Exception("No reasonable http proxy found, please add one to the board config") print("Using proxy %s" % proxy) - driver = lib.common.firefox_webproxy_driver(proxy) - driver.maximize_window() + driver = lib.common.get_webproxy_driver(proxy) print ("taking ss of http://%s" % board.lan_gateway) driver.get("http://%s" % board.lan_gateway) From be17b35228a28a506a1bb3258d55ce57385e6271 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 8 Nov 2018 15:15:30 -0600 Subject: [PATCH 420/947] devices: debian: start and run a dns relay server This let's us control DNS and route all dns through our WAN node Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index be4b957a..558dfab6 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -229,7 +229,7 @@ def install_pkgs(self): self.sendline('ifconfig eth1 down') self.expect(self.prompt) - pkgs = "isc-dhcp-server xinetd tinyproxy curl apache2-utils nmap psmisc vim-common tftpd-hpa pppoe isc-dhcp-server procps iptables lighttpd psmisc" + pkgs = "isc-dhcp-server xinetd tinyproxy curl apache2-utils nmap psmisc vim-common tftpd-hpa pppoe isc-dhcp-server procps iptables lighttpd psmisc dnsmasq" def _install_pkgs(): self.sendline('apt-get update && apt-get -o DPkg::Options::="--force-confnew" -qy install %s' % pkgs) @@ -457,10 +457,10 @@ def update_cmts_isc_dhcp_config(self, board_config): option routers 192.168.201.1; option broadcast-address 192.168.201.255; option time-offset 1; - option domain-name-servers 8.8.4.4; + option domain-name-servers %s; allow unknown-clients; } -EOF''') +EOF''' % self.gw) self.expect(self.prompt) # The board will ignore this unless the docsis-mac is set to ipv6 @@ -639,7 +639,7 @@ def setup_dhcp_server(self): self.sendline('cat > /etc/dhcp/dhcpd.conf << EOF') self.sendline('ddns-update-style none;') self.sendline('option domain-name "bigfoot-test";') - self.sendline('option domain-name-servers 8.8.8.8, 8.8.4.4;') + self.sendline('option domain-name-servers %s;' % self.gw) self.sendline('default-lease-time 600;') self.sendline('max-lease-time 7200;') # use the same netmask as the lan device @@ -653,7 +653,20 @@ def setup_dhcp_server(self): self.expect(['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*']) self.expect(self.prompt) + def setup_dnsmasq(self): + self.sendline('cat > /etc/dnsmasq.conf << EOF') + self.sendline('server=8.8.4.4') + self.sendline('listen-address=127.0.0.1') + self.sendline('listen-address=%s' % self.gw) + self.sendline('EOF') + + self.sendline('/etc/init.d/dnsmasq restart') + self.expect(self.prompt) + def setup_as_wan_gateway(self): + + self.setup_dnsmasq() + self.sendline('killall iperf ab hping3') self.expect(self.prompt) self.sendline('\nsysctl net.ipv6.conf.all.disable_ipv6=0') From 677d43b09ddd56655605dd9c10d759a8560e5e1b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 12 Nov 2018 09:49:43 -0600 Subject: [PATCH 421/947] deploy-boardfarm-nodes: add static ip option with docker network intact Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 40042a8b..9227e616 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -122,6 +122,33 @@ create_container_eth1_static () { docker exec $cname ping $default_route -c3 } +# eth0 is docker private network, eth1 is static ip +create_container_eth1_static_linked () { + local name=$1 + local ip=$2 + local default_route=$3 + local offset=$4 + + cname=bft-node-$IFACE-$name + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -p $(( 5000 + $offset )):22 \ + -p $(( 8000 + $offset )):8080 \ + -d $BF_IMG /usr/sbin/sshd -D + + cspace=$(docker inspect --format {{.State.Pid}} $cname) + + # create lab network access port + sudo ip link add tempfoo link $IFACE type macvlan mode bridge + sudo ip link set dev tempfoo up + sudo ip link set netns $cspace dev tempfoo + docker exec $cname ip link set tempfoo name eth1 + docker exec $cname ip link set eth1 up + docker exec $cname ip addr add $ip dev eth1 + docker exec $cname ip route add default via $default_route dev eth1 + docker exec $cname ping $default_route -c3 +} + [ "$IFACE" = "undefined" ] && return echo "Creating nodes starting on vlan $START_VLAN to $END_VLAN on iface $IFACE" From 35c612e20c40dd3af7adf020944a962b49d73c7b Mon Sep 17 00:00:00 2001 From: MartinCBN <martin_wu@compalbn.com> Date: Wed, 14 Nov 2018 17:06:30 +0800 Subject: [PATCH 422/947] tests: lib: installers.py: modified telnet prompt -tests: lib: installers.py: modified telnet prompt modified install_telnet_server and install_telnet_client prompt add telnet server ipv6 setup Signed-off-by: MartinCBN <martin_wu@compalbn.com> --- tests/lib/installers.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index a0bd7f09..c06b9b50 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -158,7 +158,7 @@ def install_telnet_server(device): device.expect(device.prompt) device.sendline('\ndpkg -l | grep telnetd') try: - device.expect('The telnet server', timeout=5) + device.expect('telnet server', timeout=5) device.expect(device.prompt) except: device.expect(device.prompt) @@ -167,7 +167,7 @@ def install_telnet_server(device): device.sendline('echo \"service telnet\" > /etc/xinetd.d/telnet') device.sendline('echo "{" >> /etc/xinetd.d/telnet') device.sendline('echo \"disable = no\" >> /etc/xinetd.d/telnet') - device.sendline('echo \"flags = REUSE\" >> /etc/xinetd.d/telnet') + device.sendline('echo \"flags = REUSE IPv6\" >> /etc/xinetd.d/telnet') device.sendline('echo \"socket_type = stream\" >> /etc/xinetd.d/telnet') device.sendline('echo \"wait = no\" >> /etc/xinetd.d/telnet') device.sendline('echo \"user = root\" >> /etc/xinetd.d/telnet') @@ -191,7 +191,7 @@ def install_telnet_client(device): '''Install telnet client if not present.''' device.sendline('\ndpkg -l | grep telnet') try: - device.expect('The telnet client', timeout=5) + device.expect('telnet client', timeout=5) device.expect(device.prompt) except: device.expect(device.prompt) From 608317040cbcb136bd7e1e5a9106d1868bd76df0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 13 Nov 2018 14:54:35 +0100 Subject: [PATCH 423/947] deploy-boardfarm-nodes.sh: add functin to create docker node with physical device Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 9227e616..5509fabd 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -149,6 +149,46 @@ create_container_eth1_static_linked () { docker exec $cname ping $default_route -c3 } +# eth0 is docker private network, eth1 physical device +create_container_eth1_phys () { + local dev=$1 + local offset=$2 + + cname=bft-node-$dev + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -p $(( 5000 + $offset )):22 \ + -p $(( 8000 + $offset )):8080 \ + -d $BF_IMG /usr/sbin/sshd -D + + cspace=$(docker inspect --format {{.State.Pid}} $cname) + + # create lab network access port + sudo ip link set netns $cspace dev $dev + docker exec $cname ip link set $dev name wlan1 + docker exec $cname ip link set wlan1 up +} + +# eth0 is docker private network, eth1 with device +create_container_eth1_wifi () { + local dev=$1 + local offset=$2 + + cname=bft-node-$dev + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -p $(( 5000 + $offset )):22 \ + -p $(( 8000 + $offset )):8080 \ + -d $BF_IMG /usr/sbin/sshd -D + + cspace=$(docker inspect --format {{.State.Pid}} $cname) + + # create lab network access port + sudo iw phy $(cat /sys/class/net/"$dev"/phy80211/name) set netns $cspace + docker exec $cname ip link set $dev name wlan1 + docker exec $cname ip link set wlan1 up +} + [ "$IFACE" = "undefined" ] && return echo "Creating nodes starting on vlan $START_VLAN to $END_VLAN on iface $IFACE" From 37bf82fdda9761550cd842de2c0ef6269881cfa0 Mon Sep 17 00:00:00 2001 From: "prekumar.contractor" <prekumar.contractor@libertyglobal.com> Date: Tue, 13 Nov 2018 16:56:15 +0100 Subject: [PATCH 424/947] tests/lib: logging: Modified Assert message with suffix text "FAIL" for more efficient logs Change-Id: I1c4je2ead687d7bf752677f5961c529c7ab38f6b Signed-off-by: Prem Kumar K N <prekumar.contractor@libertyglobal.com> --- tests/lib/logging.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/lib/logging.py b/tests/lib/logging.py index 00b05c40..dc534495 100755 --- a/tests/lib/logging.py +++ b/tests/lib/logging.py @@ -20,6 +20,6 @@ def now_short(): def logfile_assert_message(s, condition, message): if not condition: s.log_to_file += now_short()+message+": FAIL\r\n" - assert 0, message + assert 0, message+": FAIL\r\n" else: s.log_to_file += now_short()+message+": PASS\r\n" From ca2437ac94f79e8432e6261ebe3ccc6c3f9c3e86 Mon Sep 17 00:00:00 2001 From: "prekumar.contractor" <prekumar.contractor@libertyglobal.com> Date: Wed, 14 Nov 2018 10:47:27 +0100 Subject: [PATCH 425/947] tests/lib: docsis: Modified variable cmcfg_name -redefined cmcfg_name to display the configuration name. current impletation shows only the station name. Signed-off-by: Prem Kumar K N <prekumar.contractor@libertyglobal.com> --- tests/lib/docsis.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py index 9930daf2..6e6a76d8 100755 --- a/tests/lib/docsis.py +++ b/tests/lib/docsis.py @@ -14,10 +14,10 @@ class docsis: Name: docsis module Purpose: docsis operating. Input: Absolute path of text file - Fuction: + Fuction: decode(): return output file name(.txt) - encode(output_type='cm_cfg') + encode(output_type='cm_cfg') return output file name(.cfg or .bin) """ def __init__(self, file_path): @@ -35,14 +35,14 @@ def decode(self): def encode(self, output_type='cm_cfg'): if '.txt' in self.file and output_type=='cm_cfg': - cmcfg_name=config.board['station']+"-cm.cfg" + cmcfg_name=self.file.strip('.txt')+"-cm.cfg" cmcfg_path=os.path.join(self.dir_path, cmcfg_name) os.system("docsis -e %s /dev/null %s" % (self.file_path, cmcfg_path)) assert os.path.exists(cmcfg_path) return os.path.join(config.board['station'], cmcfg_name) elif '.txt' in self.file and output_type=='mta_cfg': - mtacfg_name=config.board['station']+"-mta.bin" + mtacfg_name=self.file.strip('.txt')+"-mta.bin" mtacfg_path=os.path.join(self.dir_path, mtacfg_name) os.system("docsis -p %s %s" % (self.file_path, mtacfg_path)) assert os.path.exists(mtacfg_path) From 3b1e1900e5409dca1815d06c1d7056baf20374d2 Mon Sep 17 00:00:00 2001 From: ppalaniappan <43448223+ppalaniappan@users.noreply.github.com> Date: Tue, 13 Nov 2018 14:57:13 +0100 Subject: [PATCH 426/947] devices: casa_cmts: add new helper functions for CASA CMTS Added below function in casa_cmts.py get_cmts_ip_bundle -- Get CMTS bundle ip get_cm_mac_domain-- Get the mac domain from CMTS get_cm_bundle-- Get the bundle id from CMTS DUT_chnl_lock-- Check channel locked for 24*8 Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> --- devices/casa_cmts.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index daddb2ad..ff7a6896 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -117,6 +117,47 @@ def get_mtaip(self, cmmac, mtamac): self.expect(self.prompt) return output + def DUT_chnl_lock(self,cm_mac): + """Check the CM channel locks with 24*8 """ + self.sendline("scm %s bonding" % cm_mac) + index = self.expect(["256\(8\*24\)"]+ self.prompt) + chnl_lock = self.match.group() + if 0 == index: + self.expect(self.prompt) + return True + else: + return False + + def get_cm_bundle(self,mac_domain): + """Get the bundle id from mac-domain """ + self.sendline('show interface docsis-mac '+mac_domain+' | i "ip bundle"') + index = self.expect(['(ip bundle)[ ]{1,}([0-9]|[0-9][0-9])'] + self.prompt) + if index !=0: + assert 0, "ERROR:Failed to get the CM bundle id from CMTS" + bundle = self.match.group(2) + self.expect(self.prompt) + return bundle + + def get_cm_mac_domain(self,cm_mac): + """Get the Mac-domain of Cable modem """ + self.sendline('scm '+cm_mac+' verbose | i "MAC Domain"') + idx = self.expect(['(MAC Domain)[ ]{2,}\:([0-9]|[0-9][0-9])'] + self.prompt) + if idx != 0: + assert 0,"ERROR: Failed to get the CM Mac Domain from the CMTS" + mac_domain = self.match.group(2) + self.expect(self.prompt) + return mac_domain + + def get_cmts_ip_bundle(self,bundle): + """get the CMTS bundle IP""" + self.sendline('show interface ip-bundle %s | i "secondary"' % bundle) + index = self.expect(['ip address ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+) ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+) secondary'] + self.prompt) + if index != 0: + assert 0,"ERROR: Failed to get the CMTS bundle IP" + cmts_ip = self.match.group(1) + self.expect(self.prompt) + return cmts_ip + def reset(self): self.sendline('exit') self.expect(self.prompt) From d9ff1935aee4a997d0e4c405bb36537d195fe836 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 14 Nov 2018 06:41:55 -0600 Subject: [PATCH 427/947] tests: wifi_: remove old stale tests Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/wifi_cycle.py | 64 --------------- tests/wifi_memuse.py | 50 ------------ tests/wifi_vap_test.py | 51 ------------ tests/wlan_associate.py | 145 --------------------------------- tests/wlan_set_ssid.py | 61 -------------- tests/wlan_set_ssid_wpa2psk.py | 65 --------------- 6 files changed, 436 deletions(-) delete mode 100644 tests/wifi_cycle.py delete mode 100644 tests/wifi_memuse.py delete mode 100644 tests/wifi_vap_test.py delete mode 100644 tests/wlan_associate.py delete mode 100644 tests/wlan_set_ssid.py delete mode 100644 tests/wlan_set_ssid_wpa2psk.py diff --git a/tests/wifi_cycle.py b/tests/wifi_cycle.py deleted file mode 100644 index 125691f2..00000000 --- a/tests/wifi_cycle.py +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright (c) 2015 -# -# All rights reserved. -# -# This file is distributed under the Clear BSD license. -# The full text can be found in LICENSE in the root directory. - -import string -import time - -import rootfs_boot -from devices import board, wan, lan, wlan, prompt -from lib.wifi import * - -def wifi_cycle(board, num_times=5, wlan_iface="ath0"): - '''Enable and disable wifi some number of times.''' - if wifi_on(board): - disable_wifi(board, wlan_iface) - wifi_name = randomSSIDName() - board.sendline('uci set wireless.@wifi-iface[0].ssid=%s' % wifi_name) - board.expect(prompt) - board.sendline('uci set wireless.@wifi-iface[0].encryption=psk2') - board.expect(prompt) - board.sendline('uci set wireless.@wifi-iface[0].key=%s' % randomSSIDName()) - board.expect(prompt) - board.sendline('echo "7 7 7 7" > /proc/sys/kernel/printk') - board.expect(prompt) - for i in range(1, num_times+1): - enable_wifi(board) - wait_wifi_up(board, wlan_iface=wlan_iface) - disable_wifi(board, wlan_iface=wlan_iface) - print("\n\nEnabled and disabled WiFi %s times." % i) - board.sendline('echo "1 1 1 7" > /proc/sys/kernel/printk') - board.expect(prompt) - -class WiFiOnOffCycle(rootfs_boot.RootFSBootTest): - '''Enabled and disabled wifi once.''' - def runTest(self): - wlan_iface = wifi_interface(board) - if wlan_iface is None: - self.skipTest("No wifi interfaces detected, skipping..") - - wifi_cycle(board, num_times=1, wlan_iface=wlan_iface) - -class WiFiOnOffCycle5(rootfs_boot.RootFSBootTest): - '''Enabled and disabled wifi 5 times.''' - def runTest(self): - wlan_iface = wifi_interface(board) - if wlan_iface is None: - self.skipTest("No wifi interfaces detected, skipping..") - - wifi_cycle(board, num_times=5, wlan_iface=wlan_iface) - -class WiFiOnOffCycle20(rootfs_boot.RootFSBootTest): - '''Enabled and disabled wifi 20 times.''' - def runTest(self): - wlan_iface = wifi_interface(board) - if wlan_iface is None: - self.skipTest("No wifi interfaces detected, skipping..") - - wifi_cycle(board, num_times=20, wlan_iface=wlan_iface) - # Leave with wifi enabled - enable_wifi(board) - wait_wifi_up(board, wlan_iface=wlan_iface) diff --git a/tests/wifi_memuse.py b/tests/wifi_memuse.py deleted file mode 100644 index 71767fd2..00000000 --- a/tests/wifi_memuse.py +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright (c) 2015 -# -# All rights reserved. -# -# This file is distributed under the Clear BSD license. -# The full text can be found in LICENSE in the root directory. - -import lib -import rootfs_boot -import time -import re - -import lib.wifi -from devices import board, wan, lan, wlan, prompt - -class WiFiMemUse(rootfs_boot.RootFSBootTest): - '''Measured WiFi memory use when enabled.''' - def recover(self): - board.sendcontrol('c') - def runTest(self): - # Disable WiFi - board.sendline('\nwifi detect > /etc/config/wireless') - board.expect('wifi detect') - board.expect(prompt) - board.sendline('uci commit wireless; wifi') - board.expect(prompt) - # One of these commands should be available - board.sendline('iwconfig || iwinfo') - board.expect(prompt) - memfree_wifi_off = board.get_memfree() - # Enable WiFi - lib.wifi.enable_all_wifi_interfaces(board) - time.sleep(90) # give time to start and settle - board.sendline('iwconfig || iwinfo') - board.expect(['ESSID', 'IEEE']) - board.expect(prompt) - memfree_wifi_on = board.get_memfree() - mem_used = (int(memfree_wifi_off)-int(memfree_wifi_on)) / 1000 - self.result_message = 'Enabling all WiFi interfaces uses %s MB.' % (mem_used) - self.logged['mem_used'] = mem_used - -class TurnOnWifi(rootfs_boot.RootFSBootTest): - '''Turn on all WiFi interfaces.''' - def runTest(self): - wlan_iface = lib.wifi.wifi_interface(board) - lib.wifi.enable_wifi(board) - lib.wifi.wait_wifi_up(board, wlan_iface=wlan_iface) - board.sendline('\nifconfig') - board.expect('HWaddr') - board.expect(prompt) diff --git a/tests/wifi_vap_test.py b/tests/wifi_vap_test.py deleted file mode 100644 index d5663db8..00000000 --- a/tests/wifi_vap_test.py +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright (c) 2015 -# -# All rights reserved. -# -# This file is distributed under the Clear BSD license. -# The full text can be found in LICENSE in the root directory. - -import wlan_set_ssid -from lib.wifi import * -from devices import board, wan, lan, wlan, prompt -import time - -class WlanVAP(wlan_set_ssid.WlanSetSSID): - '''Test multiple VAPs up and down''' - def runTest(self): - enable_wifi(board, index=0) - # TODO: make sure we have a radio - enable_wifi(board, index=1) - - for i in range(1, 16): - wifi_add_vap(board, "wifi0", randomSSIDName()) - - for i in range(1, 16): - wifi_add_vap(board, "wifi1", randomSSIDName()) - - for i in range(0, 20): - board.sendline('wifi down') - board.expect('wifi down') - board.expect(prompt, timeout=480) - board.sendline('wifi up') - board.expect('wifi up') - board.expect(prompt, timeout=480) - - # expect 32 vaps to be present - for i in range(0, 5): - try: - time.sleep(10) - board.sendline('ifconfig -a | grep ath | wc -l') - board.expect('32') - board.expect(prompt) - except: - if i == 4: - assert False - else: - break - - for i in range(1, 16): - wifi_del_vap(board, -1) - - for i in range(1, 16): - wifi_del_vap(board, -1) diff --git a/tests/wlan_associate.py b/tests/wlan_associate.py deleted file mode 100644 index 9a68e23e..00000000 --- a/tests/wlan_associate.py +++ /dev/null @@ -1,145 +0,0 @@ -# Copyright (c) 2015 -# -# All rights reserved. -# -# This file is distributed under the Clear BSD license. -# The full text can be found in LICENSE in the root directory. - -import unittest2 -import rootfs_boot -import lib -import sys -import pexpect -import time -import wlan_set_ssid -import re -from devices import board, wan, lan, wlan, prompt -from lib.wifi import * - -class WlanAssociate(wlan_set_ssid.WlanSetSSID): - '''Wifi device connected and had internet access.''' - def wlan_setup(self): - wlan.sendline('\napt-get install -qy usbutils wireless-tools') - wlan.expect('Reading package') - wlan.expect(prompt) - wlan.sendline('killall wpa_supplicant') - wlan.expect(prompt) - - def recover(self): - wlan.sendcontrol('c') - wlan.sendcontrol('c') - - @lib.common.run_once - def runTest(self): - super(WlanAssociate, self).runTest() - wlan_iface = wifi_interface(board) - if wlan_iface is None: - self.skipTest("No wifi interfaces detected, skipping..") - if wlan is None: - self.skipTest("No wlan VM, skipping test..") - - #Determine if we are using a beeliner x86 host. If not, default to usb drivers. - #Would like to push this out to a library. - wlan.sendline('lspci |grep -q Atheros; echo $?') - wlan.expect('(\d+)\r\n') - check_atheros = int(wlan.match.group(1)) - - if check_atheros is not 0: - print("Creating realtek interface.") - wlan.sendline('\napt-get install -qy firmware-realtek') - wlan.expect('Reading package') - wlan.expect(prompt) - wlan.sendline('rmmod rtl8192cu 8812au') - wlan.expect(prompt) - wlan.sendline('modprobe rtl8192cu') - wlan.expect(prompt) - wlan.sendline('modprobe 8812au') - wlan.expect(prompt) - else: - #Check if modules are alerady loaded. If not, load them. - print("Found Atheros hardware, creating interface.") - wlan.sendline('lsmod |grep -q ath_hal; echo $?') - wlan.expect('(\d+)\r\n') - check_loaded = int(wlan.match.group(1)) - - if check_loaded is not 0: - #rc.wlan takes care of insmod, wlanconfig creates wlan0. Both should be in the path. - wlan.sendline('rc.wlan up') - wlan.expect(prompt) - wlan.sendline('wlanconfig wlan0 create wlandev wifi0 wlanmode sta') - wlan.expect(prompt) - - wlan.sendline('rfkill unblock all') - wlan.expect(prompt) - - wlan.sendline('ifconfig wlan0') - wlan.expect('HWaddr') - wlan.expect(prompt) - - wlan.sendline('ifconfig wlan0 down') - wlan.expect(prompt) - - wlan.sendline('ifconfig wlan0 up') - wlan.expect(prompt) - - # wait until the wifi can see the SSID before even trying to join - # not sure how long we should really give this, or who's fault it is - for i in range(0, 20): - try: - wlan.sendline('iwlist wlan0 scan | grep ESSID:') - wlan.expect(self.config.ssid) - wlan.expect(prompt) - except: - lib.common.test_msg("can't see ssid %s, scanning again (%s tries)" % (self.config.ssid, i)) - else: - break - - time.sleep(10) - - for i in range(0, 2): - try: - wlan.sendline('iwconfig wlan0 essid %s' % self.config.ssid) - wlan.expect(prompt) - - # give it some time to associate - time.sleep(20) - - # make sure we assocaited - wlan.sendline('iwconfig wlan0') - wlan.expect('Access Point: ([0-9A-F]{2}[:-]){5}([0-9A-F]{2})') - wlan.expect(prompt) - except: - lib.common.test_msg("Can't associate with ssid %s, trying again (%s tries) " % (self.config.ssid, i)) - else: - break - - # get ip on wlan - wlan.sendline('killall dhclient') - wlan.expect(prompt) - time.sleep(10) - wlan.sendline('dhclient wlan0') - wlan.expect(prompt) - - # for reference - wlan.sendline('ifconfig wlan0') - wlan.expect(prompt) - - # make sure dhcp worked, and for reference of IP - wlan_ip = wlan.get_interface_ipaddr("wlan0") - - # add route to wan - wlan.sendline('ip route add 192.168.0.0/24 via %s' % board.get_interface_ipaddr(board.lan_iface)) - wlan.expect(prompt) - wlan.sendline('ip route show') - wlan.expect(prompt) - - wlan.sendline('ping %s -c3' % board.get_interface_ipaddr(board.lan_iface)) - wlan.expect('3 packets transmitted') - wlan.expect(prompt) - wlan.sendline('curl %s --connect-timeout 5 > /dev/null 2>&1; echo $?' % board.get_interface_ipaddr(board.lan_iface)) - wlan.expect('(\d+)\r\n') - curl_success = int(wlan.match.group(1)) - - msg = "Attempt to curl router returns %s\n" % (curl_success) - lib.common.test_msg(msg) - assert (curl_success == 0) diff --git a/tests/wlan_set_ssid.py b/tests/wlan_set_ssid.py deleted file mode 100644 index a713e8c4..00000000 --- a/tests/wlan_set_ssid.py +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright (c) 2015 -# -# All rights reserved. -# -# This file is distributed under the Clear BSD license. -# The full text can be found in LICENSE in the root directory. - -import rootfs_boot -import lib -import sys -import time -import traceback -from devices import board, wan, lan, wlan, prompt -from lib.wifi import * - -class WlanSetSSID(rootfs_boot.RootFSBootTest): - '''Wifi device came up and was able to set SSID.''' - def wlan_setup(self): - wlan.sendline('\napt-get install -qy firmware-realtek usbutils wireless-tools') - wlan.expect('Reading package') - wlan.expect(prompt) - - @lib.common.run_once - def runTest(self): - wlan_iface = wifi_interface(board) - if wlan_iface is None: - self.skipTest("No wifi interfaces detected, skipping..") - - self.config.ssid = randomSSIDName() - - disable_wifi(board) - uciSetWifiSSID(board, self.config.ssid) - enable_wifi(board) - - # verfiy we have an interface here - if wlan_iface == "ath0": - board.sendline('iwconfig %s' % wlan_iface) - board.expect('%s.*IEEE 802.11.*ESSID.*%s' % (wlan_iface, self.config.ssid)) - else: - board.sendline('iwinfo %s info' % wlan_iface) - board.expect('%s.*ESSID.*%s' % (wlan_iface, self.config.ssid)) - board.expect(prompt) - - # wait for AP to set rate, which means it's done coming up - for i in range(20): - try: - essid, channel, rate, freq = wifi_get_info(board, wlan_iface) - info = "Rate = %s Mb/s, Freq = %s Ghz" % (rate, freq) - time.sleep(5) - if wlan_iface == "ath0": - assert float(rate) > 0 - elif wlan_iface == "wlan0": - assert channel > 0 - lib.common.test_msg("%s\n" % info) - self.result_message = self.__doc__ + " (%s)" % info - except Exception as e: - traceback.print_exc(file=sys.stdout) - if i < 10: - pass - else: - break diff --git a/tests/wlan_set_ssid_wpa2psk.py b/tests/wlan_set_ssid_wpa2psk.py deleted file mode 100644 index d873bd05..00000000 --- a/tests/wlan_set_ssid_wpa2psk.py +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright (c) 2015 -# -# All rights reserved. -# -# This file is distributed under the Clear BSD license. -# The full text can be found in LICENSE in the root directory. - -import rootfs_boot -import lib -import sys -import time -import traceback -from devices import board, wan, lan, wlan, prompt -from lib.wifi import * - -class WlanSetSSID_WPA2PSK(rootfs_boot.RootFSBootTest): - '''Wifi device came up and was able to set SSID.''' - def wlan_setup(self): - wlan.sendline('\napt-get install -qy firmware-realtek usbutils wireless-tools wpasupplicant') - wlan.expect('Reading package') - wlan.expect(prompt) - - @lib.common.run_once - def runTest(self): - wlan_iface = wifi_interface(board) - wlan_security = "wpa2-psk" - vap_iface = "0" - if wlan_iface is None: - self.skipTest("No wifi interfaces detected, skipping..") - - self.config.ssid = randomSSIDName() - - disable_wifi(board) - uciSetWifiSecurity(board, vap_iface, wlan_security) - uciSetChannel(board, "0", "153") - uciSetWifiSSID(board, self.config.ssid) - enable_wifi(board) - - # verfiy we have an interface here - if wlan_iface == "ath0": - board.sendline('iwconfig %s' % wlan_iface) - board.expect('%s.*IEEE 802.11.*ESSID.*%s' % (wlan_iface, self.config.ssid)) - else: - board.sendline('iwinfo %s info' % wlan_iface) - board.expect('%s.*ESSID.*%s' % (wlan_iface, self.config.ssid)) - board.expect(prompt) - - # wait for AP to set rate, which means it's done coming up - for i in range(20): - try: - essid, channel, rate, freq = wifi_get_info(board, wlan_iface) - info = "Rate = %s Mb/s, Freq = %s Ghz" % (rate, freq) - time.sleep(5) - if wlan_iface == "ath0": - assert float(rate) > 0 - elif wlan_iface == "wlan0": - assert channel > 0 - lib.common.test_msg("%s\n" % info) - self.result_message = self.__doc__ + " (%s)" % info - except Exception as e: - traceback.print_exc(file=sys.stdout) - if i < 10: - pass - else: - break From bf799d0426f6929ba1f530b9881ba10a3c4606e4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 14 Nov 2018 06:49:08 -0600 Subject: [PATCH 428/947] devices: debian: add stub for debian wifi device Kick this off with just a scan function Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian_wifi.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 devices/debian_wifi.py diff --git a/devices/debian_wifi.py b/devices/debian_wifi.py new file mode 100644 index 00000000..eb60d550 --- /dev/null +++ b/devices/debian_wifi.py @@ -0,0 +1,15 @@ + +import debian + +class DebianWifi(debian.DebianBox): + '''Extension of Debian class with wifi functions''' + + model = ('debianwifi') + + iface_wlan = "wlan1" + + def scan(self): + self.sendline('iw %s scan | grep SSID:' % self.iface_wlan) + self.expect(self.prompt) + + return self.before From 5930cb1dc05df209a18bdf99acd08ccbe4c32825 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 14 Nov 2018 06:50:05 -0600 Subject: [PATCH 429/947] tests: wifi: add basic wifi scanning test Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/wifi.py | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 tests/wifi.py diff --git a/tests/wifi.py b/tests/wifi.py new file mode 100644 index 00000000..1ff9efc4 --- /dev/null +++ b/tests/wifi.py @@ -0,0 +1,9 @@ + +import rootfs_boot +from devices import wlan + +class WifiScan(rootfs_boot.RootFSBootTest): + '''Simple test to run a wifi scan''' + + def runTest(self): + wlan.scan() From 072ae1e7bde90d972dd824966a95b6c8371d52a8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 14 Nov 2018 05:59:19 -0600 Subject: [PATCH 430/947] devices: debian: fix creating debian device This changed to be all kwargs a while back... update the main example Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 558dfab6..ae6899f8 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -866,8 +866,8 @@ def tftp_server_ip_int(self): ipaddr, port = sys.argv[1].split(':') except: raise Exception("First argument should be in form of ipaddr:port") - dev = DebianBox(ipaddr, - 'blue', + dev = DebianBox(ipaddr=ipaddr, + color='blue', username="root", password="bigfoot1", port=port) From 315ecbf7195310f5af57aa42ab4d17168ca41b09 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 14 Nov 2018 05:59:48 -0600 Subject: [PATCH 431/947] devices: debian: add stub for installing asterisk test_voip are will be here to test installing PBX and voip client functions, then move to making a call locally on one debian instance Usage: $ python ./devices/debian.py $ipaddr:$port test_voip Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index ae6899f8..8b01aaf9 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -879,6 +879,13 @@ def tftp_server_ip_int(self): dev.configure("lan_device") if sys.argv[2] == "setup_as_wan_gateway": dev.configure("wan_device") + if sys.argv[2] == "test_voip": + sys.path.insert(0, os.getcwd()) + sys.path.insert(0, os.getcwd() + '/tests') + from lib import installers + + installers.install_asterisk(dev) + print From 722c78411e3ff1ab1ac46c3fa9b148004c2ebb8a Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 13 Nov 2018 10:32:40 -0600 Subject: [PATCH 432/947] deploy-boardfarm-nodes: fix random mac function $ . deploy-boardfarm-nodes.sh $ random_private_mac 00:16:3e:30:83:f0 Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 5509fabd..a121a9dd 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -8,7 +8,18 @@ BRINT=br-bft BF_IMG=${BF_IMG:-"bft:node"} random_private_mac () { - echo $1$1$1$1$1$1 | od -An -N6 -tx1 | sed -e 's/^ *//' -e 's/ */:/g' -e 's/:$//' -e 's/^\(.\)[13579bdf]/\10/' + python - <<END +import random +# +def randomMAC(): + mac = [ 0x00, 0x16, 0x3e, + random.randint(0x00, 0x7f), + random.randint(0x00, 0xff), + random.randint(0x00, 0xff) ] + return ':'.join(map(lambda x: "%02x" % x, mac)) +# +print randomMAC() +END } local_route () { From ba76c6199b5240cd6f83b099e2bf17cef7b573c8 Mon Sep 17 00:00:00 2001 From: lynn <lynn_lin@compalbn.com> Date: Thu, 15 Nov 2018 18:51:28 +0800 Subject: [PATCH 433/947] tests/lib: docsis.py: fix mta config file encode issue_v2 Fix mta config file encode issue by mta_conf.tcl tool. MTA configure file Encode/Decode rev.1.0.0 Usage:tclsh mta_conf.tcl input_file [option] option: [General] -e Encode a MTA configuration file -d Decode a MTA configuration file -m Use MD5 as config file hash signature (default is SHA1) -hash Add config hash (non (default), na, eu) -out Specify a output filename (for encode use) ex.tclsh mta_conf.tcl mta.txt -e -hash eu Signed-off-by: lynn <lynn_lin@compalbn.com> --- tests/lib/docsis.py | 6 +- tests/lib/mta_conf.tcl | 335 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 338 insertions(+), 3 deletions(-) create mode 100644 tests/lib/mta_conf.tcl diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py index 6e6a76d8..b4c722c1 100755 --- a/tests/lib/docsis.py +++ b/tests/lib/docsis.py @@ -35,16 +35,16 @@ def decode(self): def encode(self, output_type='cm_cfg'): if '.txt' in self.file and output_type=='cm_cfg': - cmcfg_name=self.file.strip('.txt')+"-cm.cfg" + cmcfg_name=self.file.replace('.txt', '.cfg') cmcfg_path=os.path.join(self.dir_path, cmcfg_name) os.system("docsis -e %s /dev/null %s" % (self.file_path, cmcfg_path)) assert os.path.exists(cmcfg_path) return os.path.join(config.board['station'], cmcfg_name) elif '.txt' in self.file and output_type=='mta_cfg': - mtacfg_name=self.file.strip('.txt')+"-mta.bin" + mtacfg_name=self.file.replace('.txt', '.bin') mtacfg_path=os.path.join(self.dir_path, mtacfg_name) - os.system("docsis -p %s %s" % (self.file_path, mtacfg_path)) + os.system("tclsh ../boardfarm/tests/lib/mta_conf.tcl %s -e -hash eu -out %s" % (self.file_path, mtacfg_path)) assert os.path.exists(mtacfg_path) return os.path.join(config.board['station'], mtacfg_name) diff --git a/tests/lib/mta_conf.tcl b/tests/lib/mta_conf.tcl new file mode 100644 index 00000000..a18fa456 --- /dev/null +++ b/tests/lib/mta_conf.tcl @@ -0,0 +1,335 @@ +set VERSION "1.0.1" +if { $argc == 0 } { + puts "MTA configure file Encode/Decode rev.$VERSION" + puts "Usage:tclsh mta_conf.tcl input_file \[option\]" + puts "option:" + puts "\[General\]" + puts "-e Encode a MTA configuration file" + puts "-d Decode a MTA configuration file" + puts "-m Use MD5 as config file hash signature (default is SHA1)" + puts "-hash Add config hash (non (default), na, eu)" + puts "-out Specify a output filename (for encode use)" + puts "ex.tclsh mta_conf.tcl mta.txt -e -hash eu" + exit +} +set input_file [file normalize [lindex $argv 0]] +if { ![file exist $input_file] } { + puts "$input_file not available!" + exit +} +set optionlist [list "-e" "-out" "-d" "-hash" "-m"] +set options [lrange $argv 1 end] +foreach op $options { + if { [regexp {^-\w+$} $op] } { + if { [lsearch $optionlist $op] == -1 } { + puts "No such option \"$op\"" + exit + } + } +} +if { [lsearch $options "-e"] != -1 && [lsearch $options "-d"] != -1 } { + puts "Cannot Encode/Decode at the same time!" + exit +} +if { [lsearch $options "-out"] != -1 } { + set filename [file normalize [lindex $options [expr [lsearch $options "-out"]+1]]] +} else { + if { [lsearch $options "-e"] != -1 } { + set filename "[file rootname $input_file].bin" + } elseif { [lsearch $options "-d"] != -1 } { + set filename "[file rootname $input_file].txt" + } +} +set hash_type "non" +if { [lsearch $options "-hash"] != -1 } { + set hash_type [lindex $options [expr [lsearch $options "-hash"]+1]] + if { [lsearch [list "non" "na" "eu"] $hash_type] == -1 } { + puts "hash type $hash_type not available!" + exit + } +} +if { [lsearch $options "-e"] != -1 && $hash_type != "non" } { + if { [lsearch $options "-m"] != -1 } { + set sig_type "md5" + } else { + set sig_type "sha1" + } +} +proc enc_oid { oid } { + set bits [split [string trimleft $oid "."] "."] + set tmp [format "%02X" [expr 40*[lindex $bits 0]+[lindex $bits 1]]] + foreach bit [lrange $bits 2 end] { + if { $bit > 127 } { + set s $bit + set sl [list] + set b 0 + while { $s > 127 } { + set m [expr $s%128] + set s [expr $s/128] + if { $b == 0 } { + set sl [format "%02X" $m] + } else { + set sl [linsert $sl 0 [format "%02X" [expr $m | 0x80]]] + } + incr b + } + set sl [linsert $sl 0 [format "%02X" [expr $s | 0x80]]] + append tmp [join $sl ""] + } else { + append tmp [format "%02X" $bit] + } + } + return $tmp +} +proc enc_hexstring { value } { + binary scan $value c* sl + set tmp "" + foreach s $sl { + append tmp [format "%02X" $s] + } + return $tmp +} +proc enc_ui32 { value } { + if { $value > 127 } { + return [format "%04X" $value] + } else { + return [format "%02X" $value] + } +} +proc enc_int { value } { + if { [regexp {^\-} $value] } { + set tmp [string range [enc_hexstring [binary format I $value]] end-7 end] + } else { + set tmp [format "%02X" $value] + if { [string length $tmp]%2 != 0 } { + set tmp "0$tmp" + } + } + return $tmp +} +proc enc_ip { value } { + set ipl [split $value "."] + set tmp "" + foreach ip $ipl { + append tmp [format "%02X" $ip] + } + return $tmp +} +proc add_tlv11 { oid value type } { + set tmp "" + set eoid [enc_oid $oid] + set ol [format "%02X" [expr [string length $eoid]/2]] + switch -- $type { + "int" { + set evalue [enc_int $value] + set vt "02" + } + "bitstring" { + set evalue [enc_hexstring [binary format b* [string trimleft $value "0"]]] + set vt "03" + } + "string" { + set evalue [enc_hexstring $value] + set vt "04" + } + "null" { + set evalue [enc_hexstring $value] + set vt "05" + } + "OID" { + set evalue [enc_oid $value] + set vt "06" + } + "ipaddr" { + set evalue [enc_ip $value] + set vt "40" + } + "counter" { + set evalue [enc_int $value] + set vt "41" + } + "unsigned32" { + set evalue [enc_ui32 $value] + set vt "42" + } + "timeticks" { + set evalue [enc_int $value] + set vt "43" + } + "octetstring" { + set evalue $value + set vt "04" + } + } + set vl [format "%02X" [expr [string length $evalue]/2]] + set tmp "06$ol$eoid$vt$vl$evalue" + set tl [format "%02X" [expr [string length $tmp]/2]] + set tmp "30$tl$tmp" + set tl [format "%02X" [expr [string length $tmp]/2]] + return "0B$tl$tmp" +} +proc tobyte { str } { + set tmp [list] + set i 0 + set max [string length $str] + while { $i < $max } { + lappend tmp [string range $str $i [expr $i+1]] + incr i 2 + } + return $tmp +} +proc dec_oid { value } { + set oid "." + set bits [tobyte $value] + append oid [expr 0x[lindex $bits 0]/40] + append oid ".[expr 0x[lindex $bits 0]%40]" + set otmp 0 + foreach bit [lrange $bits 1 end] { + set b [expr 0x$bit] + if { $b < 128 } { + append oid ".[expr $otmp*0x80 + $b]" + set otmp 0 + } else { + set otmp [expr $otmp*0x80+($b & ~0x80)] + } + } + return $oid +} +proc dec_conf { src {dst "" } } { + set fd [open $src r] + fconfigure $fd -translation binary + set raw [read $fd [file size $src]] + close $fd + binary scan $raw "H*" raw + set raw [string toupper [string range $raw 6 end-6]] + set fd [open $dst w] + while { $raw!= "" } { + set tlvtmp [list ""] + set i 2 + set tl [format "%d" 0x[string range $raw $i 3]] + incr i 2 + set tmp [string range $raw $i [expr $i+2*$tl-1]] + incr i [expr 2*$tl] + set tmp [string range $tmp 4 end] + set ol [format "%d" 0x[string range $tmp 2 3]] + set ind 4 + set eoid [string range $tmp $ind [expr $ind+2*$ol-1]] + incr ind [expr 2*$ol] + set oid [dec_oid $eoid] + lappend tlvtmp $oid + set vt [string range $tmp $ind [expr $ind+1]] + incr ind 2 + set vl [format "%d" 0x[string range $tmp $ind [expr $ind+1]]] + incr ind 2 + set ev [string range $tmp $ind [expr $ind+$vl*2-1]] + incr ind [expr 2*$vl] + switch -- $vt { + "02" { + set type "int" + set value [format %d 0x$ev] + } + "03" { + set type "bitstring" + binary scan [binary format H* $ev] B* value + } + "05" { + set type "null" + set value "" + } + "06" { + set type "OID" + set value [dec_oid $ev] + } + "40" { + set type "ipaddr" + set ipb [tobyte $ev] + set ipl [list] + foreach ip $ipb { + lappend ipl [format "%d" 0x$ip] + } + set value [join $ipl "."] + } + "41" { + set type "counter" + set value [format %d 0x$ev] + } + "42" { + set type "unsigned32" + set value [format %d 0x$ev] + } + "43" { + set type "timeticks" + set value [format %d 0x$ev] + } + default { + set v [binary format H* $ev] + if { [regexp "\[\[:print:\]\]\{$vl\}" $v] } { + set type "string" + set value $v + } else { + set type "octetstring" + set value $ev + } + } + } + lappend tlvtmp $value $type "" + puts $fd [join $tlvtmp "\t"] + set raw [string range $raw $i end] + } + close $fd +} +if { [lsearch $options "-e"] != -1 } { + set hexstring "FE0101" + set fd [open $input_file r] + while { ![eof $fd] } { + gets $fd line + if { [string trim $line] == "" } { continue } + set clist [split $line "\t"] + if { [llength $clist] == 5 } { + set mibname [lindex $clist 0] + set oid [lindex $clist 1] + set value [lindex $clist 2] + set type [lindex $clist 3] + set comment [lindex $clist 4] + } else { + puts "\[ERROR\] Incorrect source MTA config file format!" + close $fd + exit + } + if { $oid == ".1.3.6.1.4.1.7432.1.1.2.9.0" } { continue } + if { $oid == ".1.3.6.1.4.1.4491.2.2.1.1.2.7.0" } { continue } + set htlv [add_tlv11 $oid $value $type] + append hexstring $htlv + } + close $fd + if { $hexstring == "FE0101" } { + puts "\[ERROR\] Could not find any MTA config setting in the file!" + exit + } + set before_hash $hexstring + append hexstring "FE01FF" + set BStr [binary format H* $hexstring] + if { $sig_type == "sha1" } { + package require sha1 + set hash [string toupper [::sha1::sha1 -hex $BStr]] + } else { + package require md5 + set hash [string toupper [::md5::md5 -hex $BStr]] + } + switch -- $hash_type { + "na" { + append before_hash [add_tlv11 ".1.3.6.1.4.1.4491.2.2.1.1.2.7.0" $hash "octetstring"] + } + "eu" { + append before_hash [add_tlv11 ".1.3.6.1.4.1.7432.1.1.2.9.0" $hash "octetstring"] + } + } + append before_hash "FE01FF" + set BStr [binary format H* $before_hash] + set fd [open $filename w] + fconfigure $fd -translation binary + puts -nonewline $fd $BStr + close $fd +} elseif { [lsearch $options "-d"] != -1 } { + dec_conf $input_file $filename +} From 0e39d445a2711c8626067baa929a9cdea3640a4e Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 15 Nov 2018 06:15:40 -0600 Subject: [PATCH 434/947] config: add notion of layerconf.py This let's us add layer specific configuration Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- config.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/config.py b/config.py index 5971f6c8..0ca58624 100644 --- a/config.py +++ b/config.py @@ -6,6 +6,7 @@ # The full text can be found in LICENSE in the root directory. import os +import sys # Boardfarm configuration describes test stations - see boardfarm doc. # Can be local or remote file. @@ -13,10 +14,17 @@ # Test Suite config files. Standard python config file format. testsuite_config_files = [os.path.join(os.path.dirname(os.path.realpath(__file__)), 'testsuites.cfg'), ] + +layerconfs = [] if 'BFT_OVERLAY' in os.environ: for overlay in os.environ['BFT_OVERLAY'].split(' '): if os.path.isfile(overlay + '/testsuites.cfg'): testsuite_config_files.append(overlay + '/testsuites.cfg') + if os.path.isfile(overlay + os.sep + "layerconf.py"): + sys.path.insert(0, overlay) + import layerconf as tmp + layerconfs.append((overlay, tmp)) + sys.path.pop(0) # Logstash server - a place to send JSON-format results to # when finished. Set to None or name:port, e.g. 'logstash.mysite.com:1300' From 968dd9d54f07ae19d203cf55dcbf227ba82c46b9 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 15 Nov 2018 09:29:46 -0600 Subject: [PATCH 435/947] make_human_readable: look in overlay config for gerrit server info Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- make_human_readable.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/make_human_readable.py b/make_human_readable.py index df1ceb83..39290c87 100644 --- a/make_human_readable.py +++ b/make_human_readable.py @@ -55,9 +55,19 @@ def changes_to_html(changes): ''' if not changes: return None - if not config.code_change_server: - return changes + + # TODO: compare server to GERRIT_HOST and pick the right server... + # but for now take the first one we find base_url = config.code_change_server + if not base_url: + for ovrly_name, ovrly in config.layerconfs: + if hasattr(ovrly, 'code_change_server'): + base_url = ovrly.code_change_server + break + + if not base_url: + return changes + list_changes = re.findall('\d+,\d+', changes) if not list_changes: return None From 66925dbbf283eb95ef00dc2e91805a9723f2aac3 Mon Sep 17 00:00:00 2001 From: ppalaniappan <43448223+ppalaniappan@users.noreply.github.com> Date: Fri, 16 Nov 2018 12:37:51 +0100 Subject: [PATCH 436/947] tests:lib:installers.py: add install_upnp ,install_tcpick Added below function for installing UPNP and tcpick install_upnp install_tcpick --- tests/lib/installers.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index c06b9b50..80ddc0ec 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -45,6 +45,30 @@ def install_iperf3(device): device.expect(device.prompt) device.sendline('apt-get -o DPkg::Options::="--force-confnew" -y --force-yes install iperf3') device.expect(device.prompt, timeout=60) + +def install_tcpick(device): + '''Install tcpick if not present.''' + device.sendline('\ntcpick --version') + try: + device.expect('tcpick 0.2', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install tcpick -y') + assert 0 == device.expect(['Setting up tcpick']+ device.prompt, timeout=60),"tcpick installation failed" + device.expect(device.prompt) + +def install_upnp(device): + '''Install miniupnpc if not present.''' + device.sendline('\nupnpc --version') + try: + device.expect('upnpc : miniupnpc', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install miniupnpc -y') + assert 0 == device.expect(['Setting up miniupnpc.*']+ device.prompt, timeout=60),"upnp installation failed" + device.expect(device.prompt) def install_lighttpd(device): '''Install lighttpd web server if not present.''' From 34a555e9842d69a103402ab78dfc9d6031277971 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 16 Nov 2018 06:25:54 -0600 Subject: [PATCH 437/947] tests: lib: docsis: fix hard coded path in os.system Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/docsis.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py index b4c722c1..7f4ff03f 100755 --- a/tests/lib/docsis.py +++ b/tests/lib/docsis.py @@ -44,7 +44,8 @@ def encode(self, output_type='cm_cfg'): elif '.txt' in self.file and output_type=='mta_cfg': mtacfg_name=self.file.replace('.txt', '.bin') mtacfg_path=os.path.join(self.dir_path, mtacfg_name) - os.system("tclsh ../boardfarm/tests/lib/mta_conf.tcl %s -e -hash eu -out %s" % (self.file_path, mtacfg_path)) + cmd = "tclsh %s/mta_conf.tcl" % os.path.dirname(__file__) + os.system("cmd %s -e -hash eu -out %s" % (cmd, self.file_path, mtacfg_path)) assert os.path.exists(mtacfg_path) return os.path.join(config.board['station'], mtacfg_name) From 7eb74d5cccda48aa3fc14113a2bf8881566a65ce Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 16 Nov 2018 07:59:34 -0600 Subject: [PATCH 438/947] tests: lib: docsis: fix a bug in hard coded path from previous commit Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/docsis.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py index 7f4ff03f..6d0ec96c 100755 --- a/tests/lib/docsis.py +++ b/tests/lib/docsis.py @@ -45,7 +45,7 @@ def encode(self, output_type='cm_cfg'): mtacfg_name=self.file.replace('.txt', '.bin') mtacfg_path=os.path.join(self.dir_path, mtacfg_name) cmd = "tclsh %s/mta_conf.tcl" % os.path.dirname(__file__) - os.system("cmd %s -e -hash eu -out %s" % (cmd, self.file_path, mtacfg_path)) + os.system("%s %s -e -hash eu -out %s" % (cmd, self.file_path, mtacfg_path)) assert os.path.exists(mtacfg_path) return os.path.join(config.board['station'], mtacfg_name) From b85955199d8e19e2690928257dd1742cc20f3e5a Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Mon, 19 Nov 2018 00:26:55 +0100 Subject: [PATCH 439/947] tests: lib: regexlib.py regular expressions library this should become a one stop shop for common regex Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/lib/regexlib.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 tests/lib/regexlib.py diff --git a/tests/lib/regexlib.py b/tests/lib/regexlib.py new file mode 100644 index 00000000..b6400448 --- /dev/null +++ b/tests/lib/regexlib.py @@ -0,0 +1,27 @@ +# Copyright (c) 2018 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. + + +# Restrict all 4 numbers in the IP address to 0..255. It stores each of the 4 +# numbers of the IP address into a capturing group. These groups can be used +# to further process the IP number. +ValidIpv4AddressRegex='(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' +ValidIpv4AddressRegexWordBound='\b'+ValidIpv4AddressRegex+'\b' + +# IPv6 text representation of addresses without compression from RFC 1884. This +# regular expression doesn't allow IPv6 compression ("::") or mixed +# IPv4 addresses. +# Matches: FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 | 1080:0:0:0:8:800:200C:417A | 0:0:0:0:0:0:0:1 +ValidIpv6AddressRegex='([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4}' + + +# The CMTS mac-adderss format for e.g. 0025.2e34.4377 +CmtsMacFormat='([0-9a-f]{4}\.[0-9a-fA-F]{4}\.[0-9a-f]{4})' + + +# traceroute returns no route to ip address (i.e. '<num> * * *' 30 times) +TracerouteNoRoute='((.[1-9]|[1-9][0-9])(\s\s\*\s\*\s\*)(\r\n|\r|\n)){30}' From 4e9f20a502df28cc2ecfe1d43f1d299ee7ba07b9 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 13 Nov 2018 07:19:56 -0600 Subject: [PATCH 440/947] devices: debian: fix issues with bridged mode In bridged mode the lan_gateway will (most likely) not be the gateway for the lan device. So we will update our lan_{gateway,network} attributes. Secondly, no reason to del the default route and add it back let's just keep that set. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 8b01aaf9..bdaff4e5 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -31,6 +31,7 @@ class DebianBox(base.BaseDevice): wan_cmts_provisioner = False pkgs_installed = False install_pkgs_after_dhcp = False + is_bridged = False def __init__(self, *args, @@ -764,14 +765,25 @@ def start_lan_client(self, wan_gw=None): raise Exception("Error: Device on LAN couldn't obtain address via DHCP.") self.sendline('ifconfig eth1') self.expect(self.prompt) - self.sendline('route del default') - self.expect(self.prompt) - self.sendline('route del default') - self.expect(self.prompt) - self.sendline('route del default') - self.expect(self.prompt) - self.sendline('route add default gw %s' % self.lan_gateway) - self.expect(self.prompt) + self.sendline('ip route') + # TODO: we should verify this so other way, because the they could be the same subnets + # in theory + i = self.expect(['default via %s dev eth1' % self.lan_gateway, pexpect.TIMEOUT], timeout=5) + if i == 1: + # bridged mode + self.is_bridged = True + # update gw + self.sendline("ip route list 0/0 | awk '{print $3}'") + self.expect_exact("ip route list 0/0 | awk '{print $3}'") + self.expect(self.prompt) + self.lan_gateway = ipaddress.IPv4Address(self.before.strip().decode()) + + ip_addr = self.get_interface_ipaddr('eth1') + self.sendline("ip route | grep %s | awk '{print $1}'" % ip_addr) + self.expect_exact("ip route | grep %s | awk '{print $1}'" % ip_addr) + self.expect(self.prompt) + self.lan_network = ipaddress.IPv4Network(self.before.strip().decode()) + # Setup HTTP proxy, so board webserver is accessible via this device self.sendline('curl --version') self.expect(self.prompt) @@ -802,7 +814,7 @@ def start_lan_client(self, wan_gw=None): # Copy an id to the router so people don't have to type a password to ssh or scp self.sendline('nc %s 22 -w 1 | cut -c1-3' % self.lan_gateway) self.expect_exact('nc %s 22 -w 1 | cut -c1-3' % self.lan_gateway) - if 0 == self.expect(['SSH'] + self.prompt, timeout=5): + if 0 == self.expect(['SSH'] + self.prompt, timeout=5) and not self.is_bridged: self.sendcontrol('c') self.expect(self.prompt) self.sendline('[ -e /root/.ssh/id_rsa ] || ssh-keygen -N "" -f /root/.ssh/id_rsa') @@ -820,11 +832,7 @@ def start_lan_client(self, wan_gw=None): if wan_gw is not None and 'options' in self.kwargs and \ 'lan-fixed-route-to-wan' in self.kwargs['options']: - self.sendline("ip route list 0/0 | awk '{print $3}'") - self.expect_exact("ip route list 0/0 | awk '{print $3}'") - self.expect(self.prompt) - default_route=self.before.strip() - self.sendline('ip route add %s via %s' % (wan_gw, default_route)) + self.sendline('ip route add %s via %s' % (wan_gw, self.lan_gateway)) self.expect(self.prompt) def add_new_user(self, id, pwd): From a6521f2ce51d1e9bbee3eef9ca250e3272d84670 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 16 Nov 2018 07:42:44 -0600 Subject: [PATCH 441/947] devices: debian: make dhclient work in container - Don't mv new resolv conf file copy in case resolv.conf is bind mounted - Delete default route via eth0 right before so it can be updated to new DHCP advertisement Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index bdaff4e5..9820a469 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -753,6 +753,10 @@ def start_lan_client(self, wan_gw=None): self.expect(self.prompt) self.sendline('rm /var/lib/dhcp/dhclient.leases') self.expect(self.prompt) + self.sendline("sed -e 's/mv -f $new_resolv_conf $resolv_conf/cat $new_resolv_conf > $resolv_conf/g' -i sbin/dhclient-script") + self.expect(self.prompt) + self.sendline('ip route del default dev eth0') + self.expect(self.prompt) for attempt in range(3): try: self.sendline('dhclient -v eth1') From 5096657bca167f04a7b64668fefd76cb4c0557da Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 16 Nov 2018 10:13:47 -0600 Subject: [PATCH 442/947] deploy-boardfarm-nodes.sh: fix typo Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 2 +- tests/rootfs_boot.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index a121a9dd..5472dc4f 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -67,7 +67,7 @@ create_container_eth1_bridged_vlan () { docker run --name $cname --privileged -h $cname --restart=always \ -p $(( 5000 + $offset + $vlan )):22 \ -p $(( 8000 + $offset + $vlan )):8080 \ - -d $BFT_IMG /usr/sbin/sshd -D + -d $BF_IMG /usr/sbin/sshd -D cspace=$(docker inspect --format '{{.State.Pid}}' $cname) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index c5246123..bda735bf 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -163,6 +163,11 @@ def boot(self, reflash=True): self.logged['boot_time'] = end_seconds_up + print "#####" + print board.routing + print lan + print self.config.setup_device_networking + print "#####" if board.routing and lan and self.config.setup_device_networking: if wan is not None: lan.start_lan_client(wan_gw=wan.gw) From 2b3f38924c47a8a22539366196d6af4be1e8f1e3 Mon Sep 17 00:00:00 2001 From: "prekumar.contractor" <prekumar.contractor@libertyglobal.com> Date: Fri, 16 Nov 2018 15:16:07 +0100 Subject: [PATCH 443/947] devices: casa_cmts: updated with improvements -function get_cmip: updated function to modify cmmac as seen in CMTS -get_cmipv6 function is added to get cm ipv6 address from cmts Signed-off-by: Prem Kumar K N <prekumar.contractor@libertyglobal.com> --- devices/casa_cmts.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index ff7a6896..5b875995 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -96,8 +96,21 @@ def check_PartialService(self, cmmac): return output def get_cmip(self, cmmac): + tmp = cmmac.replace(":", "").lower() + cmmac_cmts = tmp[:4]+"."+ tmp[4:8]+"."+tmp[8:] self.sendline('show cable modem %s' % cmmac) - self.expect(cmmac + '\s+([\d\.]+)') + self.expect(cmmac_cmts + '\s+([\d\.]+)') + result = self.match.group(1) + if self.match != None: + output = result + else: + output = "None" + self.expect(self.prompt) + return output + + def get_cmipv6(self, cmmac): + self.sendline('show cable modem %s' % cmmac) + self.expect('\s((200([0-9a-f]){1,1}:)([0-9a-f]{1,4}:){1,6}([0-9a-f]{1,4}))([\/\s])') result = self.match.group(1) if self.match != None: output = result From 042d0f3d780a0692392be860add2930151573082 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 19 Nov 2018 10:08:21 -0600 Subject: [PATCH 444/947] devices: debian: use absolute path to dhclient-script Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index 9820a469..90a70f88 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -753,7 +753,7 @@ def start_lan_client(self, wan_gw=None): self.expect(self.prompt) self.sendline('rm /var/lib/dhcp/dhclient.leases') self.expect(self.prompt) - self.sendline("sed -e 's/mv -f $new_resolv_conf $resolv_conf/cat $new_resolv_conf > $resolv_conf/g' -i sbin/dhclient-script") + self.sendline("sed -e 's/mv -f $new_resolv_conf $resolv_conf/cat $new_resolv_conf > $resolv_conf/g' -i /sbin/dhclient-script") self.expect(self.prompt) self.sendline('ip route del default dev eth0') self.expect(self.prompt) From a8199fbec515e80463bc79b85cfbfa6acfbe5f7d Mon Sep 17 00:00:00 2001 From: lynn <lynn_lin@compalbn.com> Date: Tue, 20 Nov 2018 14:40:55 +0800 Subject: [PATCH 445/947] tests: lib: mta_conf.tcl: fix 9_MTA_EU_CBN_SIP20_Basic.BIN decode issue Fix "expected integer but got "0x"" issue Signed-off-by: lynn <lynn_lin@compalbn.com> --- tests/lib/mta_conf.tcl | 82 ++++++++++++++++++++++++++++++++---------- 1 file changed, 63 insertions(+), 19 deletions(-) diff --git a/tests/lib/mta_conf.tcl b/tests/lib/mta_conf.tcl index a18fa456..ff5d931b 100644 --- a/tests/lib/mta_conf.tcl +++ b/tests/lib/mta_conf.tcl @@ -1,4 +1,4 @@ -set VERSION "1.0.1" +set VERSION "1.0.2" if { $argc == 0 } { puts "MTA configure file Encode/Decode rev.$VERSION" puts "Usage:tclsh mta_conf.tcl input_file \[option\]" @@ -48,6 +48,7 @@ if { [lsearch $options "-hash"] != -1 } { exit } } +set sig_type "sha1" if { [lsearch $options "-e"] != -1 && $hash_type != "non" } { if { [lsearch $options "-m"] != -1 } { set sig_type "md5" @@ -162,11 +163,30 @@ proc add_tlv11 { oid value type } { } } set vl [format "%02X" [expr [string length $evalue]/2]] + if { [string length $vl]%2 != 0 } { + set vl "0$vl" + } + if { [string length $vl] != 2 } { + set vl "82$vl" + } set tmp "06$ol$eoid$vt$vl$evalue" set tl [format "%02X" [expr [string length $tmp]/2]] + if { [string length $tl]%2 != 0 } { + set tl "0$tl" + } + if { [string length $tl] != 2 } { + set tl "82$tl" + } set tmp "30$tl$tmp" set tl [format "%02X" [expr [string length $tmp]/2]] - return "0B$tl$tmp" + if { [string length $tl]%2 != 0 } { + set tl "0$tl" + } + if { [string length $tl] != 2 } { + return "40$tl$tmp" + } else { + return "0B$tl$tmp" + } } proc tobyte { str } { set tmp [list] @@ -205,12 +225,28 @@ proc dec_conf { src {dst "" } } { set fd [open $dst w] while { $raw!= "" } { set tlvtmp [list ""] + set tag [string range $raw 0 1] set i 2 - set tl [format "%d" 0x[string range $raw $i 3]] - incr i 2 + switch -- $tag { + "0B" { + set tlb 1 + } + "40" { + set tlb 2 + } + } + set tl [format "%d" 0x[string range $raw $i [expr $i+2*$tlb-1]]] + incr i [expr 2*$tlb] set tmp [string range $raw $i [expr $i+2*$tl-1]] incr i [expr 2*$tl] - set tmp [string range $tmp 4 end] + switch -- $tlb { + 1 { + set tmp [string range $tmp 4 end] + } + 2 { + set tmp [string range $tmp 8 end] + } + } set ol [format "%d" 0x[string range $tmp 2 3]] set ind 4 set eoid [string range $tmp $ind [expr $ind+2*$ol-1]] @@ -219,8 +255,13 @@ proc dec_conf { src {dst "" } } { lappend tlvtmp $oid set vt [string range $tmp $ind [expr $ind+1]] incr ind 2 - set vl [format "%d" 0x[string range $tmp $ind [expr $ind+1]]] + set vlx [string range $tmp $ind [expr $ind+1]] incr ind 2 + if { $vlx == "82" } { + set vlx [string range $tmp $ind [expr $ind+3]] + incr ind 4 + } + set vl [format "%d" 0x$vlx] set ev [string range $tmp $ind [expr $ind+$vl*2-1]] incr ind [expr 2*$vl] switch -- $vt { @@ -263,7 +304,8 @@ proc dec_conf { src {dst "" } } { } default { set v [binary format H* $ev] - if { [regexp "\[\[:print:\]\]\{$vl\}" $v] } { + regexp "\[\[:print:\]\]+" $v match + if { [string length $match] == $vl } { set type "string" set value $v } else { @@ -309,19 +351,21 @@ if { [lsearch $options "-e"] != -1 } { set before_hash $hexstring append hexstring "FE01FF" set BStr [binary format H* $hexstring] - if { $sig_type == "sha1" } { - package require sha1 - set hash [string toupper [::sha1::sha1 -hex $BStr]] - } else { - package require md5 - set hash [string toupper [::md5::md5 -hex $BStr]] - } - switch -- $hash_type { - "na" { - append before_hash [add_tlv11 ".1.3.6.1.4.1.4491.2.2.1.1.2.7.0" $hash "octetstring"] + if { $hash_type != "non" } { + if { $sig_type == "sha1" } { + package require sha1 + set hash [string toupper [::sha1::sha1 -hex $BStr]] + } else { + package require md5 + set hash [string toupper [::md5::md5 -hex $BStr]] } - "eu" { - append before_hash [add_tlv11 ".1.3.6.1.4.1.7432.1.1.2.9.0" $hash "octetstring"] + switch -- $hash_type { + "na" { + append before_hash [add_tlv11 ".1.3.6.1.4.1.4491.2.2.1.1.2.7.0" $hash "octetstring"] + } + "eu" { + append before_hash [add_tlv11 ".1.3.6.1.4.1.7432.1.1.2.9.0" $hash "octetstring"] + } } } append before_hash "FE01FF" From 3490a5cba7500e2946e187181e91bcacd278bcc6 Mon Sep 17 00:00:00 2001 From: Prasada Reddy <preddy.contractor@libertyglobal.com> Date: Tue, 20 Nov 2018 17:28:40 +0100 Subject: [PATCH 446/947] tests: lib: randomMAC.py added added a simple function for the creation of a random MAC address, with the multicast bit NOT set (first octet, lsb). Updated deploy_boardfarm shell script to invoke this python module. Signed-off-by: Prasada Reddy <preddy.contractor@libertyglobal.com> --- deploy-boardfarm-nodes.sh | 14 ++------------ tests/lib/randomMAC.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 12 deletions(-) create mode 100755 tests/lib/randomMAC.py diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 5472dc4f..aaf01728 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -6,20 +6,10 @@ END_VLAN=${3:-144} OPTS=${4:-"both"} # both, odd, even, odd-dhcp, even-dhcp BRINT=br-bft BF_IMG=${BF_IMG:-"bft:node"} +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" random_private_mac () { - python - <<END -import random -# -def randomMAC(): - mac = [ 0x00, 0x16, 0x3e, - random.randint(0x00, 0x7f), - random.randint(0x00, 0xff), - random.randint(0x00, 0xff) ] - return ':'.join(map(lambda x: "%02x" % x, mac)) -# -print randomMAC() -END + python $DIR/tests/lib/randomMAC.py } local_route () { diff --git a/tests/lib/randomMAC.py b/tests/lib/randomMAC.py new file mode 100755 index 00000000..86217ded --- /dev/null +++ b/tests/lib/randomMAC.py @@ -0,0 +1,18 @@ +#!/usr/bin/python + +import random + +def randomMAC(): + mac = [ (random.randint(0x00,0xff) & 0xfe), # the lsb is 0, i.e. no multicat bit + random.randint(0x00, 0xff), + random.randint(0x00, 0xff), + random.randint(0x00, 0xff), + random.randint(0x00, 0xff), + random.randint(0x00, 0xff) ] + mac_to_be_decided = ':'.join(map(lambda x : hex(x)[2:].lstrip("0x").zfill(2),mac)) + + return (mac_to_be_decided) + +if __name__ == '__main__': + print randomMAC() + From c6ddab76489898988bfec794e1b3b0fa0ba6249d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 19 Nov 2018 11:52:05 -0600 Subject: [PATCH 447/947] devices: debian: add iface_dut to replace eth1 hardcoded This will be the device that is connected to the dut, we always used eth1 but this can really be any device and need to get away from the hard coded value Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 82 ++++++++++++++++++++++++----------------------- 1 file changed, 42 insertions(+), 40 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 90a70f88..76df0166 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -33,6 +33,8 @@ class DebianBox(base.BaseDevice): install_pkgs_after_dhcp = False is_bridged = False + iface_dut = "eth1" + def __init__(self, *args, **kwargs): @@ -227,7 +229,7 @@ def install_pkgs(self): return if not self.wan_no_eth0 and not self.wan_dhcp and not self.install_pkgs_after_dhcp: - self.sendline('ifconfig eth1 down') + self.sendline('ifconfig %s down' % self.iface_dut) self.expect(self.prompt) pkgs = "isc-dhcp-server xinetd tinyproxy curl apache2-utils nmap psmisc vim-common tftpd-hpa pppoe isc-dhcp-server procps iptables lighttpd psmisc dnsmasq" @@ -293,7 +295,7 @@ def turn_on_pppoe(self): self.sendline('ms-dns 8.8.4.4') self.sendline('EOF') self.expect(self.prompt) - self.sendline('pppoe-server -k -I eth1 -L 192.168.2.1 -R 192.168.2.10 -N 4') + self.sendline('pppoe-server -k -I %s -L 192.168.2.1 -R 192.168.2.10 -N 4' % self.iface_dut) self.expect(self.prompt) def turn_off_pppoe(self): @@ -310,17 +312,17 @@ def start_tftp_server(self): self.start_sshd_server() try: - eth1_addr = self.get_interface_ipaddr('eth1') + eth1_addr = self.get_interface_ipaddr(self.iface_dut) except: eth1_addr = None # set WAN ip address, for now this will always be this address for the device side # TODO: fix gateway for non-WAN tftp_server if self.gw != eth1_addr: - self.sendline('ifconfig eth1 %s' % getattr(self, 'gw', '192.168.0.1')) + self.sendline('ifconfig %s %s' % (self.iface_dut, getattr(self, 'gw', '192.168.0.1'))) self.expect(self.prompt) - self.sendline('ifconfig eth1 up') + self.sendline('ifconfig %s up' % self.iface_dut) self.expect(self.prompt) #configure tftp server @@ -436,11 +438,11 @@ def update_cmts_isc_dhcp_config(self, board_config): option docsis-mta.kerberos-realm 05:42:41:53:49:43:01:31:00 ; subnet 192.168.3.0 netmask 255.255.255.0 { - interface eth1; + interface %s; } subnet 192.168.200.0 netmask 255.255.255.0 { - interface eth1; + interface %s; range 192.168.200.10 192.168.200.250; option routers 192.168.200.1; option broadcast-address 192.168.200.255; @@ -453,7 +455,7 @@ def update_cmts_isc_dhcp_config(self, board_config): } subnet 192.168.201.0 netmask 255.255.255.0 { - interface eth1; + interface %s; range 192.168.201.10 192.168.201.250; option routers 192.168.201.1; option broadcast-address 192.168.201.255; @@ -461,7 +463,7 @@ def update_cmts_isc_dhcp_config(self, board_config): option domain-name-servers %s; allow unknown-clients; } -EOF''' % self.gw) +EOF''' % (self.iface_dut, self.iface_dut, self.iface_dut, self.gw)) self.expect(self.prompt) # The board will ignore this unless the docsis-mac is set to ipv6 @@ -488,7 +490,7 @@ def update_cmts_isc_dhcp_config(self, board_config): subnet6 2001:ed8:77b5:3::/64 { range6 2001:ed8:77b5:3::10 2001:ed8:77b5:3::100; - interface eth1; + interface %s; option docsis.tftp-servers 2001:ed8:77b5:3::101; option docsis.time-servers 2001:ed8:77b5:3::101; option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; @@ -497,7 +499,7 @@ def update_cmts_isc_dhcp_config(self, board_config): } subnet6 2001:ed8:77b5:2000::/64 { range6 2001:ed8:77b5:2000::10 2001:ed8:77b5:2000::100; - interface eth1; + interface %s; option docsis.tftp-servers 2001:ed8:77b5:3::101; option docsis.time-servers 2001:ed8:77b5:3::101; option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; @@ -506,12 +508,12 @@ def update_cmts_isc_dhcp_config(self, board_config): } subnet6 2001:ed8:77b5:2001::/64 { range6 2001:ed8:77b5:2001::10 2001:ed8:77b5:2001::100; - interface eth1; + interface %s; option dhcp6.ia_pd 1234 20000 40000 26 25 30000 60000 64 2001:ed8:77b5:4::; option dhcp6.solmax-rt 240; option dhcp6.inf-max-rt 360; } -EOF''') +EOF''' % (self.iface_dut, self.iface_dut, self.iface_dut)) self.expect(self.prompt) self.sendline('rm /etc/dhcp/dhcpd.conf.''' + board_config['station']) @@ -576,27 +578,27 @@ def provision_board(self, board_config): ''' Setup DHCP and time server etc for CM provisioning''' self.sendline('/etc/init.d/isc-dhcp-server stop') self.expect(self.prompt) - self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') + self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) self.expect(self.prompt) - self.sendline('sed s/INTERFACESv4=.*/INTERFACESv4=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') + self.sendline('sed s/INTERFACESv4=.*/INTERFACESv4=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) self.expect(self.prompt) - self.sendline('sed s/INTERFACESv6=.*/INTERFACESv6=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') + self.sendline('sed s/INTERFACESv6=.*/INTERFACESv6=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) self.expect(self.prompt) # we are bypass this for now (see http://patchwork.ozlabs.org/patch/117949/) - self.sendline('sysctl -w net.ipv6.conf.eth1.accept_dad=0') + self.sendline('sysctl -w net.ipv6.conf.%s.accept_dad=0' % self.iface_dut) self.expect(self.prompt) - self.sendline('ifconfig eth1 %s' % self.gw) + self.sendline('ifconfig %s %s' % (self.iface_dut, self.gw)) self.expect(self.prompt) - self.sendline('ifconfig eth1 inet6 add 2001:ed8:77b5:3::101/64') + self.sendline('ifconfig %s inet6 add 2001:ed8:77b5:3::101/64' % self.iface_dut) self.expect(self.prompt) # TODO: specify these via config self.sendline('ip route add 192.168.201.0/24 via 192.168.3.222') self.expect(self.prompt) self.sendline('ip route add 192.168.200.0/24 via 192.168.3.222') self.expect(self.prompt) - self.sendline('ip -6 route add 2001:ed8:77b5:2000::/64 via 2001:ed8:77b5:3::222 dev eth1 metric 1024') + self.sendline('ip -6 route add 2001:ed8:77b5:2000::/64 via 2001:ed8:77b5:3::222 dev %s metric 1024' % self.iface_dut) self.expect(self.prompt) - self.sendline('ip -6 route add 2001:ed8:77b5:2001::/64 via 2001:ed8:77b5:3::222 dev eth1 metric 1024') + self.sendline('ip -6 route add 2001:ed8:77b5:2001::/64 via 2001:ed8:77b5:3::222 dev %s metric 1024' % self.iface_dut) self.expect(self.prompt) self.update_cmts_isc_dhcp_config(board_config) self.sendline('/etc/init.d/isc-dhcp-server start') @@ -631,11 +633,11 @@ def setup_dhcp_server(self): # configure DHCP server self.sendline('/etc/init.d/isc-dhcp-server stop') self.expect(self.prompt) - self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') + self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) self.expect(self.prompt) - self.sendline('sed s/INTERFACESv4=.*/INTERFACESv4=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') + self.sendline('sed s/INTERFACESv4=.*/INTERFACESv4=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) self.expect(self.prompt) - self.sendline('sed s/INTERFACESv6=.*/INTERFACESv6=\\"eth1\\"/g -i /etc/default/isc-dhcp-server') + self.sendline('sed s/INTERFACESv6=.*/INTERFACESv6=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) self.expect(self.prompt) self.sendline('cat > /etc/dhcp/dhcpd.conf << EOF') self.sendline('ddns-update-style none;') @@ -684,13 +686,13 @@ def setup_as_wan_gateway(self): if self.wan_dhcp: self.sendline('/etc/init.d/isc-dhcp-server stop') self.expect(self.prompt) - self.sendline('dhclient -r eth1; dhclient eth1') + self.sendline('dhclient -r %s; dhclient %s' % (self.iface_dut, self.iface_dut)) self.expect(self.prompt) - self.gw = self.get_interface_ipaddr("eth1") + self.gw = self.get_interface_ipaddr(self.iface_dut) else: - self.sendline('ifconfig eth1 %s' % self.gw) + self.sendline('ifconfig %s %s' % (self.iface_dut, self.gw)) self.expect(self.prompt) - self.sendline('ifconfig eth1 up') + self.sendline('ifconfig %s up' % self.iface_dut) self.expect(self.prompt) if not self.wan_cmts_provisioner: self.setup_dhcp_server() @@ -699,7 +701,7 @@ def setup_as_wan_gateway(self): self.sendline('sysctl net.ipv4.ip_forward=1') self.expect(self.prompt) if self.wan_no_eth0 or self.wan_dhcp: - wan_uplink_iface = "eth1" + wan_uplink_iface = self.iface_dut else: wan_uplink_iface = "eth0" @@ -712,7 +714,7 @@ def setup_as_wan_gateway(self): self.sendline('echo 0 > /proc/sys/net/ipv4/tcp_sack') self.expect(self.prompt) - self.sendline('ifconfig eth1') + self.sendline('ifconfig %s' % self.iface_dut) self.expect(self.prompt) self.turn_off_pppoe() @@ -734,22 +736,22 @@ def setup_as_lan_device(self): self.expect(self.prompt) self.sendline('iptables -t nat -A PREROUTING -p tcp --dport 222 -j DNAT --to-destination %s:22' % self.lan_gateway) self.expect(self.prompt) - self.sendline('iptables -t nat -A POSTROUTING -o eth1 -p tcp --dport 22 -j MASQUERADE') + self.sendline('iptables -t nat -A POSTROUTING -o %s -p tcp --dport 22 -j MASQUERADE' % self.iface_dut) self.expect(self.prompt) self.sendline('echo 0 > /proc/sys/net/ipv4/tcp_timestamps') self.expect(self.prompt) self.sendline('echo 0 > /proc/sys/net/ipv4/tcp_sack') self.expect(self.prompt) - self.sendline('pkill --signal 9 -f dhclient.*eth1') + self.sendline('pkill --signal 9 -f dhclient.*%s' % self.iface_dut) self.expect(self.prompt) def start_lan_client(self, wan_gw=None): - self.sendline('\nifconfig eth1 up') - self.expect('ifconfig eth1 up') + self.sendline('\nifconfig %s up' % self.iface_dut) + self.expect('ifconfig %s up' % self.iface_dut) self.expect(self.prompt) - self.sendline("dhclient -r eth1") + self.sendline("dhclient -r %s" % self.iface_dut) self.expect(self.prompt) - self.sendline('\nifconfig eth1 0.0.0.0') + self.sendline('\nifconfig %s 0.0.0.0' % self.iface_dut) self.expect(self.prompt) self.sendline('rm /var/lib/dhcp/dhclient.leases') self.expect(self.prompt) @@ -759,7 +761,7 @@ def start_lan_client(self, wan_gw=None): self.expect(self.prompt) for attempt in range(3): try: - self.sendline('dhclient -v eth1') + self.sendline('dhclient -v %s' % self.iface_dut) self.expect('DHCPOFFER', timeout=30) self.expect(self.prompt) break @@ -767,12 +769,12 @@ def start_lan_client(self, wan_gw=None): self.sendcontrol('c') else: raise Exception("Error: Device on LAN couldn't obtain address via DHCP.") - self.sendline('ifconfig eth1') + self.sendline('ifconfig %s' % self.iface_dut) self.expect(self.prompt) self.sendline('ip route') # TODO: we should verify this so other way, because the they could be the same subnets # in theory - i = self.expect(['default via %s dev eth1' % self.lan_gateway, pexpect.TIMEOUT], timeout=5) + i = self.expect(['default via %s dev %s' % (self.lan_gateway, self.iface_dut), pexpect.TIMEOUT], timeout=5) if i == 1: # bridged mode self.is_bridged = True @@ -782,7 +784,7 @@ def start_lan_client(self, wan_gw=None): self.expect(self.prompt) self.lan_gateway = ipaddress.IPv4Address(self.before.strip().decode()) - ip_addr = self.get_interface_ipaddr('eth1') + ip_addr = self.get_interface_ipaddr(self.iface_dut) self.sendline("ip route | grep %s | awk '{print $1}'" % ip_addr) self.expect_exact("ip route | grep %s | awk '{print $1}'" % ip_addr) self.expect(self.prompt) From 34bb56013455470a8bff4a7a9444cb08712c6bcc Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 21 Nov 2018 15:15:21 -0600 Subject: [PATCH 448/947] devices: add path for test lib import We common need to use the same functions tests use inside the devices so let's make it easier to import. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/__init__.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/devices/__init__.py b/devices/__init__.py index 170f8a01..55503d8c 100644 --- a/devices/__init__.py +++ b/devices/__init__.py @@ -10,6 +10,9 @@ import inspect import pexpect +# insert tests lib so devices and tests can share the same libraries +sys.path.insert(0, os.path.dirname(__file__) + '/../tests') + board = None lan = None wan = None @@ -25,6 +28,8 @@ sys.path.insert(0, overlay + '/devices') device_files += glob.glob(overlay + '/devices/*.py') + sys.path.insert(0, overlay + '/tests') + sys.path.insert(0, os.getcwd() + '/devices') device_mappings = { } From a4bf196b2af085916c96fc846fdbeed0889ae1b0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 21 Nov 2018 15:16:27 -0600 Subject: [PATCH 449/947] devices: use random mac helper from tests lib This is useful to help debug if there are issues copying files around Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/common.py | 13 +++++++++++-- devices/openwrt_router.py | 7 ------- devices/qcom_arm_base.py | 3 ++- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/devices/common.py b/devices/common.py index ab1c898a..c7892910 100644 --- a/devices/common.py +++ b/devices/common.py @@ -55,8 +55,13 @@ def copy_file_to_server(cmd, password): print_bold("Unable to copy file to server, exiting") raise Exception("Unable to copy file to server") +from lib.common import cmd_exists def download_from_web(url, server, username, password, port): - cmd = "curl -n -L -k '%s' 2>/dev/null | ssh -p %s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -x %s@%s \"mkdir -p /tftpboot/tmp; tmpfile=\`mktemp /tftpboot/tmp/XXXXX\`; cat - > \$tmpfile; chmod a+rw \$tmpfile; echo \$tmpfile\"" % (url, port, username, server) + pipe = "" + if cmd_exists('pv'): + pipe = " pv | " + + cmd = "curl -n -L -k '%s' 2>/dev/null | %s ssh -p %s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -x %s@%s \"mkdir -p /tftpboot/tmp; tmpfile=\`mktemp /tftpboot/tmp/XXXXX\`; cat - > \$tmpfile; chmod a+rw \$tmpfile; echo \$tmpfile\"" % (url, pipe, port, username, server) return copy_file_to_server(cmd, password) def scp_to_tftp_server(fname, server, username, password, port): @@ -65,7 +70,11 @@ def scp_to_tftp_server(fname, server, username, password, port): print_bold("File passed as parameter does not exist! Failing!\n") sys.exit(10) - cmd = "cat %s | ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p %s -x %s@%s \"mkdir -p /tftpboot/tmp; tmpfile=\`mktemp /tftpboot/tmp/XXXXX\`; cat - > \$tmpfile; chmod a+rw \$tmpfile; echo \$tmpfile\"" % (fname, port, username, server) + pipe = "" + if cmd_exists('pv'): + pipe = " pv | " + + cmd = "cat %s | %s ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p %s -x %s@%s \"mkdir -p /tftpboot/tmp; tmpfile=\`mktemp /tftpboot/tmp/XXXXX\`; cat - > \$tmpfile; chmod a+rw \$tmpfile; echo \$tmpfile\"" % (fname, pipe, port, username, server) return copy_file_to_server(cmd, password) def print_bold(msg): diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index fddfbe7d..58b27d98 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -238,13 +238,6 @@ def install_package(self, fname): self.sendline("rm -f /%s" % target_file) self.expect(self.prompt) - def randomMAC(self): - mac = [0x00, 0x16, 0x3e, - random.randint(0x00, 0x7f), - random.randint(0x00, 0xff), - random.randint(0x00, 0xff)] - return ':'.join(map(lambda x: "%02x" % x, mac)) - def check_memory_addresses(self): '''Check/set memory addresses and size for proper flashing.''' pass diff --git a/devices/qcom_arm_base.py b/devices/qcom_arm_base.py index 5153c5a9..9e25aaef 100644 --- a/devices/qcom_arm_base.py +++ b/devices/qcom_arm_base.py @@ -8,6 +8,7 @@ import common import openwrt_router +from lib.randomMAC import randomMAC class QcomArmBase(openwrt_router.OpenWrtRouter): @@ -44,7 +45,7 @@ def check_memory_addresses(self): self.sendline('env default -f') self.expect('Resetting to default environment') self.expect(self.uprompt) - self.sendline('setenv ethaddr %s' % self.randomMAC()) + self.sendline('setenv ethaddr %s' % randomMAC()) self.expect(self.uprompt) def flash_meta(self, META_BUILD, wan, lan): From 7b4c5429af64fc0093836502b45a55a5e781a107 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Mon, 26 Nov 2018 20:49:15 +0100 Subject: [PATCH 450/947] devices: casa_cmts: added get_cm_mac_cmts_format(mac) helper function to convert a mac from XX:XX:XX:XX:XX:XX to xxxx.xxxx.xxxx (casa cmts output format) Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/casa_cmts.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 5b875995..e66c350c 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -423,6 +423,17 @@ def is_cm_bridged(self, cm_mac): else: return True + # Function: get_cm_mac_cmts_format(mac) + # Parameters: mac (mac address XX:XX:XX:XX:XX:XX) + # returns: the cm_mac in cmts format xxxx.xxxx.xxxx (lowercase) + def get_cm_mac_cmts_format(self, mac): + if mac == None: + return None + # the mac cmts syntax format example is 3843.7d80.0ac0 + tmp = mac.replace(':', '') + mac_cmts_format = tmp[:4]+"."+tmp[4:8]+"."+tmp[8:] + return mac_cmts_format.lower() + def check_docsis_mac_ip_provisioning_mode(self, index): self.sendline('show interface docsis-mac %s' % index) self.expect('ip-provisioning-mode (\w+\-\w+)') From 3146e757cde1d73ece8b8e700724987a16b759c2 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Thu, 22 Nov 2018 13:01:15 +0100 Subject: [PATCH 451/947] config: updated BFT_OPTIONS added: "disp":["xvfb", "xephyr", "xvnc"], "disp_port":["5904"], "disp_size":["1366x768"] with defaults: default_display_backend = "xvnc" default_display_backend_port = "5904" default_display_backend_size = "1366x768" screenshot_gui updated accordingly Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- config.py | 32 +++++++++++++++++++++++++++++--- tests/screenshot_gui.py | 6 ++++-- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/config.py b/config.py index 0ca58624..b0cc7c0d 100644 --- a/config.py +++ b/config.py @@ -49,13 +49,19 @@ # this will probably grow as options are added option_dict = { "proxy":["normal","sock5"], - "webdriver":["chrome","ffox"] + "webdriver":["chrome","ffox"], + "disp":["xvfb", "xephyr", "xvnc"], + "disp_port":["5904"], + "disp_size":["1366x768"] } # the syntax is # BFT_OPTIONS="proxy=normal webdriver=chrome" default_proxy_type = "normal" default_web_driver = "ffox" +default_display_backend = "xvnc" +default_display_backend_port = "5904" +default_display_backend_size = "1366x768" if 'BFT_OPTIONS' in os.environ: for option in os.environ['BFT_OPTIONS'].split(' '): @@ -65,9 +71,29 @@ default_proxy_type = v if k == "webdriver": default_web_driver = v + if k == "disp": + default_display_backend = v + elif k == "disp_port": + # quick validation + i = int(v) # if not a valid num python will throw and exception + if not 1024 <= i <= 65535: + print("Warning: display backend port: %i not in range (1024-65535)" % i) + exit(1) + default_display_backend_port = v + elif k == "disp_size": + default_display_backend_size = v else: print("Warning: Ignoring option: %s (misspelled?)" % option) +def get_display_backend_size(): + xc,yc = default_display_backend_size.split('x') + x = int(xc) + y = int(yc) + return x,y + if 'BFT_DEBUG' in os.environ: - print("Using default_proxy_type="+default_proxy_type) - print("Using default_web_driver="+default_web_driver) + print("Using proxy:"+default_proxy_type) + print("Using webdriver:"+default_web_driver) + print("Using disp:"+default_display_backend) + print("Using disp_port:"+default_display_backend_port) + print("Using disp_size:"+default_display_backend_size) diff --git a/tests/screenshot_gui.py b/tests/screenshot_gui.py index 0efd03b3..44c8cdc8 100644 --- a/tests/screenshot_gui.py +++ b/tests/screenshot_gui.py @@ -8,6 +8,7 @@ import rootfs_boot import lib from devices import board, wan, lan, prompt +import config from pyvirtualdisplay import Display import pexpect @@ -17,12 +18,13 @@ class ScreenshotGUI(rootfs_boot.RootFSBootTest): '''Starts Firefox via a proxy to the LAN and takes a screenshot''' def runTest(self): try: + x,y=config.get_display_backend_size() # try to start vnc server - self.display = Display(backend='xvnc', rfbport='5904', visible=0, size=(1366, 768)) + self.display = Display(backend=config.default_display_backend, rfbport=config.default_display_backend_port, visible=0, size=(x, y)) self.display.start() if "BFT_DEBUG" in os.environ: - print("Connect to VNC display running on localhost:5904") + print("Connect to VNC display running on localhost:"+config.default_display_backend_port) raw_input("Press any key after connecting to display....") except: # fallback xvfb From 7cc27d4ff1d1971517c378b10fe24e09f23b5de0 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Wed, 28 Nov 2018 17:01:24 +0100 Subject: [PATCH 452/947] devices: openwrt_router: fixed a bug if the user is found, swallow the prompt then returns Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/openwrt_router.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 58b27d98..6c4a4ff7 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -527,7 +527,9 @@ def touch(self): def get_user_id(self, user_id): self.sendline('cat /etc/passwd | grep -w ' + user_id) - return 0 == self.expect([user_id] + self.prompt) + idx = self.expect([user_id] + self.prompt) + if idx == 0: self.expect(self.prompt) + return 0 == idx if __name__ == '__main__': # Example use From 286177a4ab458f904233763109aa474ec3cb0010 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 28 Nov 2018 10:17:58 -0600 Subject: [PATCH 453/947] Update openwrt_router.py --- devices/openwrt_router.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 6c4a4ff7..78462862 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -528,7 +528,8 @@ def touch(self): def get_user_id(self, user_id): self.sendline('cat /etc/passwd | grep -w ' + user_id) idx = self.expect([user_id] + self.prompt) - if idx == 0: self.expect(self.prompt) + if idx == 0: + self.expect(self.prompt) return 0 == idx if __name__ == '__main__': From a2ffa7dff2feb133fe81bbf6680f618c982dfa8b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 30 Nov 2018 13:47:34 -0600 Subject: [PATCH 454/947] devices: casa_cmts: use full form of show cable modem Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/casa_cmts.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index e66c350c..6c213fb7 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -132,7 +132,7 @@ def get_mtaip(self, cmmac, mtamac): def DUT_chnl_lock(self,cm_mac): """Check the CM channel locks with 24*8 """ - self.sendline("scm %s bonding" % cm_mac) + self.sendline("show cable modem %s bonding" % cm_mac) index = self.expect(["256\(8\*24\)"]+ self.prompt) chnl_lock = self.match.group() if 0 == index: @@ -153,7 +153,7 @@ def get_cm_bundle(self,mac_domain): def get_cm_mac_domain(self,cm_mac): """Get the Mac-domain of Cable modem """ - self.sendline('scm '+cm_mac+' verbose | i "MAC Domain"') + self.sendline('show cable modem '+cm_mac+' verbose | i "MAC Domain"') idx = self.expect(['(MAC Domain)[ ]{2,}\:([0-9]|[0-9][0-9])'] + self.prompt) if idx != 0: assert 0,"ERROR: Failed to get the CM Mac Domain from the CMTS" @@ -416,7 +416,7 @@ def del_file(self, f): # False if the cmts sees the CM eRouter # (i.e. theCM mode is in gateway mode) def is_cm_bridged(self, cm_mac): - self.sendline("scm "+cm_mac+" cpe") + self.sendline("show cable modem "+cm_mac+" cpe") if 0==self.expect(['eRouter']+self.prompt): self.expect(self.prompt) return False From fa3871acb8e3f76c959afba34a03b033dcdff5ff Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 30 Nov 2018 08:44:25 -0600 Subject: [PATCH 455/947] testsuites: add support for layerconf list testsuites Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- testsuites.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/testsuites.py b/testsuites.py index 68d41610..6d04792b 100644 --- a/testsuites.py +++ b/testsuites.py @@ -10,7 +10,13 @@ import config import devices.configreader tmp = devices.configreader.TestsuiteConfigReader() -tmp.read(config.testsuite_config_files) + +config_files = config.testsuite_config_files +for ovrly_name, ovrly in config.layerconfs: + config_files += ovrly.testsuite_config_files + +tmp.read(config_files) + list_tests = tmp.section # Create long or complicated test suites at run time. From b9041a58fda329829ac7aedf44b413f80f14499f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 3 Dec 2018 15:38:14 -0600 Subject: [PATCH 456/947] testsuits: fix bug: layers are not required to have this setting Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- testsuites.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/testsuites.py b/testsuites.py index 6d04792b..937d4cbf 100644 --- a/testsuites.py +++ b/testsuites.py @@ -13,7 +13,8 @@ config_files = config.testsuite_config_files for ovrly_name, ovrly in config.layerconfs: - config_files += ovrly.testsuite_config_files + if hasattr(ovrly, 'testsuite_config_files'): + config_files += ovrly.testsuite_config_files tmp.read(config_files) From 6b8412a0d19321fe680fb20f5492f2b1c0e985d0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 29 Nov 2018 22:05:28 -0600 Subject: [PATCH 457/947] tests: lib: docsis: general improvements - Make default tmpdir overridable so in the future this won't be relative to the file path passed in - encode returns the path to the encoded file not some random string - Try to use docsis tool to encode MTA files, and fall back if that fails Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/docsis.py | 52 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 11 deletions(-) diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py index 6d0ec96c..b075cecf 100755 --- a/tests/lib/docsis.py +++ b/tests/lib/docsis.py @@ -20,10 +20,27 @@ class docsis: encode(output_type='cm_cfg') return output file name(.cfg or .bin) """ - def __init__(self, file_path): + def __init__(self, file_path, tmpdir=None): + # TODO: fix at some point, this tmpdir is already relative to the CM config you + # are grabbing? Not ideal as that dir might not be writeable, or a tftp or http URL + # at some point - need to use a real local tmpdir or maybe even results so we can + # save the resulting artifacts in other tools + if tmpdir is None: + tmpdir = os.path.join('tmp', config.board['station']) + self.file_path=file_path - self.dir_path=os.path.split(file_path)[0] + self.dir_path=os.path.join(os.path.split(file_path)[0], tmpdir) self.file=os.path.split(file_path)[1] + + # make target tmpdir if it does not exist + try: + os.makedirs(self.dir_path) + except OSError, err: + import errno + # Reraise the error unless it's about an already existing directory + if err.errno != errno.EEXIST or not os.path.isdir(self.dir_path): + raise + assert cmd_exists('docsis') def decode(self): @@ -33,19 +50,32 @@ def decode(self): return self.file.replace('.cfg', '.txt') - def encode(self, output_type='cm_cfg'): - if '.txt' in self.file and output_type=='cm_cfg': - cmcfg_name=self.file.replace('.txt', '.cfg') - cmcfg_path=os.path.join(self.dir_path, cmcfg_name) - os.system("docsis -e %s /dev/null %s" % (self.file_path, cmcfg_path)) - assert os.path.exists(cmcfg_path) + # TODO: decode MTA? - return os.path.join(config.board['station'], cmcfg_name) - elif '.txt' in self.file and output_type=='mta_cfg': + def encode(self, output_type='cm_cfg'): + def encode_mta(): mtacfg_name=self.file.replace('.txt', '.bin') mtacfg_path=os.path.join(self.dir_path, mtacfg_name) cmd = "tclsh %s/mta_conf.tcl" % os.path.dirname(__file__) os.system("%s %s -e -hash eu -out %s" % (cmd, self.file_path, mtacfg_path)) assert os.path.exists(mtacfg_path) - return os.path.join(config.board['station'], mtacfg_name) + return mtacfg_path + + def encode_cm(): + cmcfg_name=self.file.replace('.txt', '.cfg') + cmcfg_path=os.path.join(self.dir_path, cmcfg_name) + print("docsis -e %s /dev/null %s" % (self.file_path, cmcfg_path)) + os.system("docsis -e %s /dev/null %s" % (self.file_path, cmcfg_path)) + assert os.path.exists(cmcfg_path) + + return cmcfg_path + + if output_type == 'mta_cfg': + return encode_mta() + + # default is CM cfg, if that fails we try to use special mta tool + try: + return encode_cm() + except: + return encode_mta() From 54c87fae44bcb0da6f1559a4b86382ac7d79fdf0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 29 Nov 2018 22:06:51 -0600 Subject: [PATCH 458/947] devices: debian: provisoner: use docsis class to encode files Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 76df0166..430cd2be 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -17,6 +17,8 @@ from termcolor import colored, cprint +from lib.docsis import docsis + class DebianBox(base.BaseDevice): ''' A linux machine running an ssh server. @@ -562,17 +564,10 @@ def copy_cmts_provisioning_files(self, board_config): # Copy binary files to tftp server for cfg in cfg_set: - # TODO: use common cmd_exists - cmd_exists = lambda x: any(os.access(os.path.join(path, x), os.X_OK) for path in os.environ["PATH"].split(os.pathsep)) - assert cmd_exists('docsis') - - # TODO: much better error checking - os.system("docsis -e %s /dev/null %s" % (cfg, cfg.replace('.txt', '.bin'))) - - self.copy_file_to_server(cfg.replace('.txt', '.bin')) - os.remove(cfg.replace('.txt', '.bin')) - - + # TODO: copy to tmpdir at some point + d = docsis(cfg) + ret = d.encode() + self.copy_file_to_server(ret) def provision_board(self, board_config): ''' Setup DHCP and time server etc for CM provisioning''' From a70df88d7053799f1048b7d6580b0a82132cf16a Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 3 Dec 2018 20:49:30 -0600 Subject: [PATCH 459/947] html: fixup some html results Show location, show device types connected but leave off other details Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- html/template_results.html | 5 ++--- make_human_readable.py | 14 +++++++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/html/template_results.html b/html/template_results.html index 50548976..dac3b09d 100644 --- a/html/template_results.html +++ b/html/template_results.html @@ -70,9 +70,8 @@ <h2 style="margin: 0px;">${summary_title}</h2> <ul> <li>Name: ${station}</li> <li>Router console: ${conn_cmd}</li> - <li>Lan Device: ssh root@${lan_device}</li> - <li>Wan Device: ssh root@${wan_device}</li> - <li>WebGUI: use HTTP Proxy "${lan_device}", Port "8080"</li> + <li>Location: ${location}</li> +${misc} </ul> Changes: ${changes} <div style="width:640px;border-top: thin solid;font-size: 10pt"> diff --git a/make_human_readable.py b/make_human_readable.py index 39290c87..d4321770 100644 --- a/make_human_readable.py +++ b/make_human_readable.py @@ -82,6 +82,15 @@ def changes_to_html(changes): continue return ", ".join(result) +def build_station_info(board_info): + ret = "" + + for device in board_info[u'devices']: + print device + ret += " <li>%s %s</li>\n" % (device[u'name'], device[u'type']) + + return ret + def xmlresults_to_html(test_results, output_name=owrt_tests_dir+"/results/results.html", title=None, @@ -91,11 +100,10 @@ def xmlresults_to_html(test_results, 'summary_title' : title, 'changes': changes_to_html(os.environ.get('change_list')), "board_type": "unknown", - "lan_device": "unknown", - "wan_device": "unknown", - "conn_cmd" : "unknown"} + "location": "unknown"} try: parameters.update(board_info) + parameters['misc'] = build_station_info(board_info) except Exception as e: print(e) From b8c414b877f5e8a50ff90612ddf0f6c122ca9eb7 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 4 Dec 2018 08:15:40 -0600 Subject: [PATCH 460/947] devices: qemu: if the kernel comes up reset worked too Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/qemu.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/qemu.py b/devices/qemu.py index 2bcb124f..a0ffda05 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -163,7 +163,7 @@ def reset(self): self.sendcontrol('a') self.send('c') self.sendline('system_reset') - self.expect_exact('system_reset') + self.expect_exact(['system_reset', 'Linux version']) if '-kernel' not in self.cmd: self.expect(['SYSLINUX', 'GNU GRUB']) self.sendcontrol('a') From 67b46599c0ab5c599d69c29ad9a030faef82250b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 3 Dec 2018 15:41:01 -0600 Subject: [PATCH 461/947] tests: lib: installers: add install helper for iw Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/installers.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 80ddc0ec..6ccfe94c 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -320,3 +320,14 @@ def install_pysnmp(device): device.expect(device.prompt) device.sendline('pip install pysnmp') device.expect(device.prompt, timeout=90) + +def install_iw(device): + '''Install iw if not present.''' + device.sendline('iw --version') + try: + device.expect('iw version', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install iw -y') + device.expect(device.prompt, timeout=90) From bfac08e6834533f045400ec076bd87d57cae37ce Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 3 Dec 2018 15:46:23 -0600 Subject: [PATCH 462/947] devices: debian_wifi: verify iw is installed Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian_wifi.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/devices/debian_wifi.py b/devices/debian_wifi.py index eb60d550..78875e92 100644 --- a/devices/debian_wifi.py +++ b/devices/debian_wifi.py @@ -1,6 +1,7 @@ import debian + class DebianWifi(debian.DebianBox): '''Extension of Debian class with wifi functions''' @@ -9,6 +10,9 @@ class DebianWifi(debian.DebianBox): iface_wlan = "wlan1" def scan(self): + from tests.lib.installers import install_iw + install_iw(self) + self.sendline('iw %s scan | grep SSID:' % self.iface_wlan) self.expect(self.prompt) From 43349331823ca482b1b4fc2af7aa36a52bbcf15d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 4 Dec 2018 14:45:12 -0600 Subject: [PATCH 463/947] html: remove extra print that was added Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- make_human_readable.py | 1 - 1 file changed, 1 deletion(-) diff --git a/make_human_readable.py b/make_human_readable.py index d4321770..52364f76 100644 --- a/make_human_readable.py +++ b/make_human_readable.py @@ -86,7 +86,6 @@ def build_station_info(board_info): ret = "" for device in board_info[u'devices']: - print device ret += " <li>%s %s</li>\n" % (device[u'name'], device[u'type']) return ret From b0d5a1fe6ea3e33949d3ecee4d4c16078582702b Mon Sep 17 00:00:00 2001 From: lynn <lynn_lin@compalbn.com> Date: Tue, 27 Nov 2018 18:30:37 +0800 Subject: [PATCH 464/947] tests: lib: docsis.py: check tcl or tcllib installed_v2 1. Add assert to check tcl or tcllib installed or not. 2. Use TKinter function to run tcl script directly. 3. For Python 2.7: You don't need to download Tkinter - it's an integral part of all Python distributions 4. Remove old tcl script (tests/lib/mta_conf.tcl) Signed-off-by: lynn <lynn_lin@compalbn.com> --- tests/lib/docsis.py | 9 +- tests/lib/mta_conf.tcl | 379 ------------------------------------ tests/lib/mta_conf_Proc.tcl | 333 +++++++++++++++++++++++++++++++ 3 files changed, 340 insertions(+), 381 deletions(-) delete mode 100644 tests/lib/mta_conf.tcl create mode 100644 tests/lib/mta_conf_Proc.tcl diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py index b075cecf..b1e17874 100755 --- a/tests/lib/docsis.py +++ b/tests/lib/docsis.py @@ -8,6 +8,7 @@ import os, config from common import cmd_exists +import Tkinter class docsis: """ @@ -42,6 +43,9 @@ def __init__(self, file_path, tmpdir=None): raise assert cmd_exists('docsis') + assert cmd_exists('tclsh') + tclsh = Tkinter.Tcl() + assert tclsh.eval("package require sha1"), "please run apt-get install tcllib first" def decode(self): if '.cfg' in self.file: @@ -56,8 +60,9 @@ def encode(self, output_type='cm_cfg'): def encode_mta(): mtacfg_name=self.file.replace('.txt', '.bin') mtacfg_path=os.path.join(self.dir_path, mtacfg_name) - cmd = "tclsh %s/mta_conf.tcl" % os.path.dirname(__file__) - os.system("%s %s -e -hash eu -out %s" % (cmd, self.file_path, mtacfg_path)) + tclsh = Tkinter.Tcl() + tclsh.eval("source %s/mta_conf_Proc.tcl" % os.path.dirname(__file__)) + tclsh.eval("run [list %s -e -hash eu -out %s]" % (self.file_path, mtacfg_path)) assert os.path.exists(mtacfg_path) return mtacfg_path diff --git a/tests/lib/mta_conf.tcl b/tests/lib/mta_conf.tcl deleted file mode 100644 index ff5d931b..00000000 --- a/tests/lib/mta_conf.tcl +++ /dev/null @@ -1,379 +0,0 @@ -set VERSION "1.0.2" -if { $argc == 0 } { - puts "MTA configure file Encode/Decode rev.$VERSION" - puts "Usage:tclsh mta_conf.tcl input_file \[option\]" - puts "option:" - puts "\[General\]" - puts "-e Encode a MTA configuration file" - puts "-d Decode a MTA configuration file" - puts "-m Use MD5 as config file hash signature (default is SHA1)" - puts "-hash Add config hash (non (default), na, eu)" - puts "-out Specify a output filename (for encode use)" - puts "ex.tclsh mta_conf.tcl mta.txt -e -hash eu" - exit -} -set input_file [file normalize [lindex $argv 0]] -if { ![file exist $input_file] } { - puts "$input_file not available!" - exit -} -set optionlist [list "-e" "-out" "-d" "-hash" "-m"] -set options [lrange $argv 1 end] -foreach op $options { - if { [regexp {^-\w+$} $op] } { - if { [lsearch $optionlist $op] == -1 } { - puts "No such option \"$op\"" - exit - } - } -} -if { [lsearch $options "-e"] != -1 && [lsearch $options "-d"] != -1 } { - puts "Cannot Encode/Decode at the same time!" - exit -} -if { [lsearch $options "-out"] != -1 } { - set filename [file normalize [lindex $options [expr [lsearch $options "-out"]+1]]] -} else { - if { [lsearch $options "-e"] != -1 } { - set filename "[file rootname $input_file].bin" - } elseif { [lsearch $options "-d"] != -1 } { - set filename "[file rootname $input_file].txt" - } -} -set hash_type "non" -if { [lsearch $options "-hash"] != -1 } { - set hash_type [lindex $options [expr [lsearch $options "-hash"]+1]] - if { [lsearch [list "non" "na" "eu"] $hash_type] == -1 } { - puts "hash type $hash_type not available!" - exit - } -} -set sig_type "sha1" -if { [lsearch $options "-e"] != -1 && $hash_type != "non" } { - if { [lsearch $options "-m"] != -1 } { - set sig_type "md5" - } else { - set sig_type "sha1" - } -} -proc enc_oid { oid } { - set bits [split [string trimleft $oid "."] "."] - set tmp [format "%02X" [expr 40*[lindex $bits 0]+[lindex $bits 1]]] - foreach bit [lrange $bits 2 end] { - if { $bit > 127 } { - set s $bit - set sl [list] - set b 0 - while { $s > 127 } { - set m [expr $s%128] - set s [expr $s/128] - if { $b == 0 } { - set sl [format "%02X" $m] - } else { - set sl [linsert $sl 0 [format "%02X" [expr $m | 0x80]]] - } - incr b - } - set sl [linsert $sl 0 [format "%02X" [expr $s | 0x80]]] - append tmp [join $sl ""] - } else { - append tmp [format "%02X" $bit] - } - } - return $tmp -} -proc enc_hexstring { value } { - binary scan $value c* sl - set tmp "" - foreach s $sl { - append tmp [format "%02X" $s] - } - return $tmp -} -proc enc_ui32 { value } { - if { $value > 127 } { - return [format "%04X" $value] - } else { - return [format "%02X" $value] - } -} -proc enc_int { value } { - if { [regexp {^\-} $value] } { - set tmp [string range [enc_hexstring [binary format I $value]] end-7 end] - } else { - set tmp [format "%02X" $value] - if { [string length $tmp]%2 != 0 } { - set tmp "0$tmp" - } - } - return $tmp -} -proc enc_ip { value } { - set ipl [split $value "."] - set tmp "" - foreach ip $ipl { - append tmp [format "%02X" $ip] - } - return $tmp -} -proc add_tlv11 { oid value type } { - set tmp "" - set eoid [enc_oid $oid] - set ol [format "%02X" [expr [string length $eoid]/2]] - switch -- $type { - "int" { - set evalue [enc_int $value] - set vt "02" - } - "bitstring" { - set evalue [enc_hexstring [binary format b* [string trimleft $value "0"]]] - set vt "03" - } - "string" { - set evalue [enc_hexstring $value] - set vt "04" - } - "null" { - set evalue [enc_hexstring $value] - set vt "05" - } - "OID" { - set evalue [enc_oid $value] - set vt "06" - } - "ipaddr" { - set evalue [enc_ip $value] - set vt "40" - } - "counter" { - set evalue [enc_int $value] - set vt "41" - } - "unsigned32" { - set evalue [enc_ui32 $value] - set vt "42" - } - "timeticks" { - set evalue [enc_int $value] - set vt "43" - } - "octetstring" { - set evalue $value - set vt "04" - } - } - set vl [format "%02X" [expr [string length $evalue]/2]] - if { [string length $vl]%2 != 0 } { - set vl "0$vl" - } - if { [string length $vl] != 2 } { - set vl "82$vl" - } - set tmp "06$ol$eoid$vt$vl$evalue" - set tl [format "%02X" [expr [string length $tmp]/2]] - if { [string length $tl]%2 != 0 } { - set tl "0$tl" - } - if { [string length $tl] != 2 } { - set tl "82$tl" - } - set tmp "30$tl$tmp" - set tl [format "%02X" [expr [string length $tmp]/2]] - if { [string length $tl]%2 != 0 } { - set tl "0$tl" - } - if { [string length $tl] != 2 } { - return "40$tl$tmp" - } else { - return "0B$tl$tmp" - } -} -proc tobyte { str } { - set tmp [list] - set i 0 - set max [string length $str] - while { $i < $max } { - lappend tmp [string range $str $i [expr $i+1]] - incr i 2 - } - return $tmp -} -proc dec_oid { value } { - set oid "." - set bits [tobyte $value] - append oid [expr 0x[lindex $bits 0]/40] - append oid ".[expr 0x[lindex $bits 0]%40]" - set otmp 0 - foreach bit [lrange $bits 1 end] { - set b [expr 0x$bit] - if { $b < 128 } { - append oid ".[expr $otmp*0x80 + $b]" - set otmp 0 - } else { - set otmp [expr $otmp*0x80+($b & ~0x80)] - } - } - return $oid -} -proc dec_conf { src {dst "" } } { - set fd [open $src r] - fconfigure $fd -translation binary - set raw [read $fd [file size $src]] - close $fd - binary scan $raw "H*" raw - set raw [string toupper [string range $raw 6 end-6]] - set fd [open $dst w] - while { $raw!= "" } { - set tlvtmp [list ""] - set tag [string range $raw 0 1] - set i 2 - switch -- $tag { - "0B" { - set tlb 1 - } - "40" { - set tlb 2 - } - } - set tl [format "%d" 0x[string range $raw $i [expr $i+2*$tlb-1]]] - incr i [expr 2*$tlb] - set tmp [string range $raw $i [expr $i+2*$tl-1]] - incr i [expr 2*$tl] - switch -- $tlb { - 1 { - set tmp [string range $tmp 4 end] - } - 2 { - set tmp [string range $tmp 8 end] - } - } - set ol [format "%d" 0x[string range $tmp 2 3]] - set ind 4 - set eoid [string range $tmp $ind [expr $ind+2*$ol-1]] - incr ind [expr 2*$ol] - set oid [dec_oid $eoid] - lappend tlvtmp $oid - set vt [string range $tmp $ind [expr $ind+1]] - incr ind 2 - set vlx [string range $tmp $ind [expr $ind+1]] - incr ind 2 - if { $vlx == "82" } { - set vlx [string range $tmp $ind [expr $ind+3]] - incr ind 4 - } - set vl [format "%d" 0x$vlx] - set ev [string range $tmp $ind [expr $ind+$vl*2-1]] - incr ind [expr 2*$vl] - switch -- $vt { - "02" { - set type "int" - set value [format %d 0x$ev] - } - "03" { - set type "bitstring" - binary scan [binary format H* $ev] B* value - } - "05" { - set type "null" - set value "" - } - "06" { - set type "OID" - set value [dec_oid $ev] - } - "40" { - set type "ipaddr" - set ipb [tobyte $ev] - set ipl [list] - foreach ip $ipb { - lappend ipl [format "%d" 0x$ip] - } - set value [join $ipl "."] - } - "41" { - set type "counter" - set value [format %d 0x$ev] - } - "42" { - set type "unsigned32" - set value [format %d 0x$ev] - } - "43" { - set type "timeticks" - set value [format %d 0x$ev] - } - default { - set v [binary format H* $ev] - regexp "\[\[:print:\]\]+" $v match - if { [string length $match] == $vl } { - set type "string" - set value $v - } else { - set type "octetstring" - set value $ev - } - } - } - lappend tlvtmp $value $type "" - puts $fd [join $tlvtmp "\t"] - set raw [string range $raw $i end] - } - close $fd -} -if { [lsearch $options "-e"] != -1 } { - set hexstring "FE0101" - set fd [open $input_file r] - while { ![eof $fd] } { - gets $fd line - if { [string trim $line] == "" } { continue } - set clist [split $line "\t"] - if { [llength $clist] == 5 } { - set mibname [lindex $clist 0] - set oid [lindex $clist 1] - set value [lindex $clist 2] - set type [lindex $clist 3] - set comment [lindex $clist 4] - } else { - puts "\[ERROR\] Incorrect source MTA config file format!" - close $fd - exit - } - if { $oid == ".1.3.6.1.4.1.7432.1.1.2.9.0" } { continue } - if { $oid == ".1.3.6.1.4.1.4491.2.2.1.1.2.7.0" } { continue } - set htlv [add_tlv11 $oid $value $type] - append hexstring $htlv - } - close $fd - if { $hexstring == "FE0101" } { - puts "\[ERROR\] Could not find any MTA config setting in the file!" - exit - } - set before_hash $hexstring - append hexstring "FE01FF" - set BStr [binary format H* $hexstring] - if { $hash_type != "non" } { - if { $sig_type == "sha1" } { - package require sha1 - set hash [string toupper [::sha1::sha1 -hex $BStr]] - } else { - package require md5 - set hash [string toupper [::md5::md5 -hex $BStr]] - } - switch -- $hash_type { - "na" { - append before_hash [add_tlv11 ".1.3.6.1.4.1.4491.2.2.1.1.2.7.0" $hash "octetstring"] - } - "eu" { - append before_hash [add_tlv11 ".1.3.6.1.4.1.7432.1.1.2.9.0" $hash "octetstring"] - } - } - } - append before_hash "FE01FF" - set BStr [binary format H* $before_hash] - set fd [open $filename w] - fconfigure $fd -translation binary - puts -nonewline $fd $BStr - close $fd -} elseif { [lsearch $options "-d"] != -1 } { - dec_conf $input_file $filename -} diff --git a/tests/lib/mta_conf_Proc.tcl b/tests/lib/mta_conf_Proc.tcl new file mode 100644 index 00000000..1b58e08e --- /dev/null +++ b/tests/lib/mta_conf_Proc.tcl @@ -0,0 +1,333 @@ +set VERSION "1.0.4" +package require asn +proc run { parameters } { + global VERSION + set optionnum [llength $parameters] + if { $optionnum == 0 } { + puts "MTA configure file Encode/Decode rev.$VERSION" + puts "Usage:run \[list input_file \[option\]\]" + puts "option:" + puts "\[General\]" + puts "-e Encode a MTA configuration file" + puts "-d Decode a MTA configuration file" + puts "-m Use MD5 as config file hash signature (default is SHA1)" + puts "-hash Add config hash (non (default), na, eu)" + puts "-out Specify a output filename (for encode use)" + puts "run \[list mta.txt -e -hash eu\]" + return + } + set input_file [file normalize [lindex $parameters 0]] + if { ![file exist $input_file] } { + puts "$input_file not available!" + return + } + set optionlist [list "-e" "-out" "-d" "-hash" "-m"] + set options [lrange $parameters 1 end] + foreach op $options { + if { [regexp {^-\w+$} $op] } { + if { [lsearch $optionlist $op] == -1 } { + puts "No such option \"$op\"" + return + } + } + } + if { [lsearch $options "-e"] != -1 && [lsearch $options "-d"] != -1 } { + puts "Cannot Encode/Decode at the same time!" + return + } + if { [lsearch $options "-out"] != -1 } { + set filename [file normalize [lindex $options [expr [lsearch $options "-out"]+1]]] + } else { + if { [lsearch $options "-e"] != -1 } { + set filename "[file rootname $input_file].bin" + } elseif { [lsearch $options "-d"] != -1 } { + set filename "[file rootname $input_file].txt" + } + } + set hash_type "non" + if { [lsearch $options "-hash"] != -1 } { + set hash_type [lindex $options [expr [lsearch $options "-hash"]+1]] + if { [lsearch [list "non" "na" "eu"] $hash_type] == -1 } { + puts "hash type $hash_type not available!" + return + } + } + set sig_type "sha1" + if { [lsearch $options "-e"] != -1 && $hash_type != "non" } { + if { [lsearch $options "-m"] != -1 } { + set sig_type "md5" + } else { + set sig_type "sha1" + } + } + if { [lsearch $options "-e"] != -1 } { + set hexstring "FE0101" + set fd [open $input_file r] + while { ![eof $fd] } { + gets $fd line + if { [string trim $line] == "" } { continue } + set clist [split $line "\t"] + if { [llength $clist] == 5 } { + set mibname [lindex $clist 0] + set oid [lindex $clist 1] + set value [lindex $clist 2] + set type [lindex $clist 3] + set comment [lindex $clist 4] + } else { + puts "\[ERROR\] Incorrect source MTA config file format!" + close $fd + exit + } + if { $oid == ".1.3.6.1.4.1.7432.1.1.2.9.0" } { continue } + if { $oid == ".1.3.6.1.4.1.4491.2.2.1.1.2.7.0" } { continue } + set htlv [add_tlv11 $oid $value $type] + append hexstring $htlv + } + close $fd + if { $hexstring == "FE0101" } { + puts "\[ERROR\] Could not find any MTA config setting in the file!" + exit + } + set before_hash $hexstring + append hexstring "FE01FF" + set BStr [binary format H* $hexstring] + if { $hash_type != "non" } { + if { $sig_type == "sha1" } { + package require sha1 + set hash [string toupper [::sha1::sha1 -hex $BStr]] + } else { + package require md5 + set hash [string toupper [::md5::md5 -hex $BStr]] + } + switch -- $hash_type { + "na" { + append before_hash [add_tlv11 ".1.3.6.1.4.1.4491.2.2.1.1.2.7.0" $hash "octetstring"] + } + "eu" { + append before_hash [add_tlv11 ".1.3.6.1.4.1.7432.1.1.2.9.0" $hash "octetstring"] + } + } + } + append before_hash "FE01FF" + set BStr [binary format H* $before_hash] + set fd [open $filename w] + fconfigure $fd -translation binary + puts -nonewline $fd $BStr + close $fd + } elseif { [lsearch $options "-d"] != -1 } { + dec_conf $input_file $filename + } +} +proc enc_hexstring { value } { + binary scan $value c* sl + set tmp "" + foreach s $sl { + append tmp [format "%02X" $s] + } + return $tmp +} +proc enc_ui32 { value } { + if { $value > 127 } { + return [format "%04X" $value] + } else { + return [format "%02X" $value] + } +} +proc enc_int { value } { + if { [regexp {^\-} $value] } { + set tmp [string range [enc_hexstring [binary format I $value]] end-7 end] + } else { + set tmp [format "%02X" $value] + if { [string length $tmp]%2 != 0 } { + set tmp "0$tmp" + } + } + return $tmp +} +proc enc_ip { value } { + set ipl [split $value "."] + set tmp "" + foreach ip $ipl { + append tmp [format "%02X" $ip] + } + return $tmp +} +proc add_tlv11 { oid value type } { + set tmp "" + set eoid [::asn::asnObjectIdentifier [split [string trim $oid .] .]] + switch -- $type { + "int" { + if { [regexp {^\-} $value] } { + set evalue [enc_int $value] + set vl [format "%02X" [expr [string length $evalue]/2]] + set evalue [binary format H* "02$vl$evalue"] + } else { + set evalue [::asn::asnInteger $value] + } + } + "bitstring" { + set evalue [::asn::asnBitString "$value[string repeat 0 [expr 8-[string length $value]]]"] + } + "string" { + set evalue [::asn::asnOctetString $value] + } + "null" { + set evalue [::asn::asnNull] + } + "OID" { + set evalue [::asn::asnObjectIdentifier [split [string trim $value .] .]] + } + "ipaddr" { + set evalue [enc_ip $value] + set vl [format "%02X" [expr [string length $evalue]/2]] + set evalue [binary format H* "40$vl$evalue"] + } + "counter" { + set evalue [enc_int $value] + set vl [format "%02X" [expr [string length $evalue]/2]] + set evalue [binary format H* "41$vl$evalue"] + } + "unsigned32" { + set evalue [enc_ui32 $value] + set vl [format "%02X" [expr [string length $evalue]/2]] + set evalue [binary format H* "42$vl$evalue"] + } + "timeticks" { + set evalue [enc_int $value] + set vl [format "%02X" [expr [string length $evalue]/2]] + set evalue [binary format H* "43$vl$evalue"] + } + "octetstring" { + set evalue [::asn::asnOctetString [binary format H* $value]] + } + } + binary scan [::asn::asnSequence $eoid $evalue] H* tmp + set tmp [string toupper $tmp] + set tl [format "%02X" [expr [string length $tmp]/2]] + if { [string length $tl]%2 != 0 } { + set tl "0$tl" + } + if { [string length $tl] != 2 } { + return "40$tl$tmp" + } else { + return "0B$tl$tmp" + } +} +proc tobyte { str } { + set tmp [list] + set i 0 + set max [string length $str] + while { $i < $max } { + lappend tmp [string range $str $i [expr $i+1]] + incr i 2 + } + return $tmp +} +proc dec_oid { value } { + ::asn::asnGetObjectIdentifier value oid + return ".[join $oid "."]" +} +proc dec_conf { src {dst "" } } { + set fd [open $src r] + fconfigure $fd -translation binary + set raw [read $fd [file size $src]] + close $fd + binary scan $raw "H*" raw + set raw [string toupper [string range $raw 6 end-6]] + set fd [open $dst w] + while { $raw!= "" } { + set tlvtmp [list ""] + set tag [string range $raw 0 1] + set i 2 + switch -- $tag { + "0B" { + set tlb 1 + } + "40" { + set tlb 2 + } + } + set tl [format "%d" 0x[string range $raw $i [expr $i+2*$tlb-1]]] + incr i [expr 2*$tlb] + set tmp [string range $raw $i [expr $i+2*$tl-1]] + incr i [expr 2*$tl] + switch -- $tlb { + 1 { + set tmp [string range $tmp 4 end] + } + 2 { + set tmp [string range $tmp 8 end] + } + } + set ol [format "%d" 0x[string range $tmp 2 3]] + set ind [expr 4+2*$ol] + set boid [binary format H* [string range $tmp 0 [expr $ind-1]]] + set oid [dec_oid $boid] + lappend tlvtmp $oid + set bvstr [binary format H* [string range $tmp $ind end]] + set vt [string range $tmp $ind [expr $ind+1]] + incr ind 2 + set vlx [string range $tmp $ind [expr $ind+1]] + incr ind 2 + if { $vlx == "82" } { + set vlx [string range $tmp $ind [expr $ind+3]] + incr ind 4 + } + set vl [format "%d" 0x$vlx] + set ev [string range $tmp $ind [expr $ind+$vl*2-1]] + switch -- $vt { + "02" { + set type "int" + ::asn::asnGetInteger bvstr value + } + "03" { + set type "bitstring" + ::asn::asnGetBitString bvstr value + } + "05" { + set type "null" + set value "" + } + "06" { + set type "OID" + set value [dec_oid $bvstr] + } + "40" { + set type "ipaddr" + set ipb [tobyte $ev] + set ipl [list] + foreach ip $ipb { + lappend ipl [format "%d" 0x$ip] + } + set value [join $ipl "."] + } + "41" { + set type "counter" + set value [format %d 0x$ev] + } + "42" { + set type "unsigned32" + set value [format %d 0x$ev] + } + "43" { + set type "timeticks" + set value [format %d 0x$ev] + } + default { + ::asn::asnGetOctetString bvstr value + regexp "\[\[:print:\]\]+" $value match + if { [string length $match] == $vl || $vl == 0 } { + set type "string" + } else { + set type "octetstring" + binary scan $value H* value + set value [string toupper $value] + } + } + } + lappend tlvtmp $value $type "" + puts $fd [join $tlvtmp "\t"] + set raw [string range $raw $i end] + } + close $fd +} From 077e20caf76901e6be9267312f263c0028f2219f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 4 Dec 2018 18:10:33 -0600 Subject: [PATCH 465/947] devices: base: make o_helper class to parent class timestamp This keeps all the logging timestamp in order across all devices instead of each device using their own timestamp Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/base.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/devices/base.py b/devices/base.py index 0f874f34..c1e95dab 100644 --- a/devices/base.py +++ b/devices/base.py @@ -69,17 +69,17 @@ def write(self, string): def set_logfile_read(self, value): class o_helper(): - def __init__(self, out, color): + def __init__(self, parent, out, color): self.color = color self.out = out self.log = "" - self.start = datetime.now() + self.parent = parent def write(self, string): if self.color is not None: self.out.write(colored(string, self.color)) else: self.out.write(string) - td = datetime.now()-self.start + td = datetime.now()-self.parent.start # check for the split case if len(self.log) > 1 and self.log[-1] == '\r' and string[0] == '\n': tmp = '\n [%s]' % td.total_seconds() @@ -90,7 +90,7 @@ def flush(self): self.out.flush() if value is not None: - self._logfile_read = o_helper(value, getattr(self, "color", None)) + self._logfile_read = o_helper(self, value, getattr(self, "color", None)) def get_log(self): return self._logfile_read.log From 11ca532db0c351991c4437cce5a3d01bce8e96fd Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 4 Dec 2018 18:11:43 -0600 Subject: [PATCH 466/947] devices: base: handle timestamp for first write This line had no timestamp so far, but it's more important since we order all these calls now Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/base.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/devices/base.py b/devices/base.py index c1e95dab..bf6808bb 100644 --- a/devices/base.py +++ b/devices/base.py @@ -74,7 +74,11 @@ def __init__(self, parent, out, color): self.out = out self.log = "" self.parent = parent + self.first_write = True def write(self, string): + if self.first_write: + self.first_write = False + string = "\r\n" + string if self.color is not None: self.out.write(colored(string, self.color)) else: From 1560ff9ef85ff5d2cc6ff0982786b2b6acdd8aa2 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 4 Dec 2018 18:13:09 -0600 Subject: [PATCH 467/947] devices: use common timestamp for all logging Before each device timestamp would have a unique starting point, this syncronizes them all Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 20 ++++++++++++++------ devices/cougarpark.py | 1 + devices/openwrt_router.py | 1 + 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/bft b/bft index 4016f2da..22e5b28b 100755 --- a/bft +++ b/bft @@ -7,7 +7,6 @@ # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. -import datetime import inspect import os import random @@ -21,6 +20,7 @@ import argparse import re import csv import traceback +from datetime import datetime sys.path.insert(0, './zephyr/') import zephyr_reporter @@ -32,7 +32,7 @@ site.addsitedir(os.path.dirname(os.path.realpath(__file__))) from devices import debian, logstash, elasticlogger, get_device -def setup_dynamic_devices(config, env=None): +def setup_dynamic_devices(config, env=None, start=None): '''Sets up dynamic devices from devices node in JSON config file''' config.devices = [] @@ -41,6 +41,7 @@ def setup_dynamic_devices(config, env=None): device['env'] = env device['lan_network'] = config.console.lan_network device['lan_gateway'] = config.console.lan_gateway + device['start'] = start dyn_dev = get_device(device['type'], **device) if dyn_dev is not None: @@ -49,6 +50,9 @@ def setup_dynamic_devices(config, env=None): setattr(config, device['name'], dyn_dev) config.devices.append(device['name']) + # TODO: should this be here for should each device type set it? + dyn_dev.start = start + # TODO: set the following: # reboot=config.reboot_vms, # env=env, @@ -132,6 +136,8 @@ def main(): "lan_iface": "lan%s" % uniqid[:12], "uniq_id": uniqid} + start = datetime.now() + # Connect to board config.console = devices.board_decider(config.board['board_type'], conn_cmd=config.board['conn_cmd'], @@ -149,11 +155,13 @@ def main(): rootfs=config.ROOTFS, kernel=config.KERNEL, config=config.board, - env=env) + env=env, + start=start) print_bold("dut device console = %s" % colored("black", 'grey')) + config.console.start = start if 'devices' in config.board: - setup_dynamic_devices(config, env=env) + setup_dynamic_devices(config, env=env, start=start) def get_tftp_config(dev): saved = config.console.logfile_read @@ -215,7 +223,7 @@ def main(): library.print_board_info(config.board) # Run tests - os.environ['TEST_START_TIME'] = datetime.datetime.now().strftime("%s") + os.environ['TEST_START_TIME'] = datetime.now().strftime("%s") tests_to_run = [] # Add tests from specified suite print_bold('==========\nTest suite "%s" has been specified, will attempt to run tests:' % config.TEST_SUITE) @@ -296,7 +304,7 @@ def main(): if hasattr(d, 'log'): clog.write(d.log) - os.environ['TEST_END_TIME'] = datetime.datetime.now().strftime("%s") + os.environ['TEST_END_TIME'] = datetime.now().strftime("%s") # grab golden master results golden = {} diff --git a/devices/cougarpark.py b/devices/cougarpark.py index 922564ff..762efdb4 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -51,6 +51,7 @@ def __init__(self, *args, **kwargs): arm_conn.connect() self.consoles.append(self.arm) self.arm.logfile_read = sys.stdout + self.arm.start = self.start def kill_console_at_exit(self): self.kill(signal.SIGKILL) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 78462862..f7f9114b 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -72,6 +72,7 @@ def __init__(self, self.config = config self.consoles = [self] + self.start = kwargs['start'] if type(conn_cmd) is list: self.conn_list = conn_cmd From 04686e5c31d4866324f597fc5944bfd741295adc Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 4 Dec 2018 18:13:51 -0600 Subject: [PATCH 468/947] bft: create a combined log called all.log This will create a combined log for all devices in a file called all.log for looking at the interaction with all device in a single log Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/bft b/bft index 22e5b28b..f27e8cfa 100755 --- a/bft +++ b/bft @@ -292,17 +292,37 @@ def main(): print_bold("For some reason, could not close a connection.") library.print_board_info(config.board) + combined_list = [] + def add_to_combined_list(log): + for line in log.split('\r\n'): + try: + ts, text = line.split(' ', 1) + combined_list.append({"time": float(ts[1:-1]), "text": text}) + except: + print("Failed to parse log line = %s" % line) + pass + idx = 1 for console in config.console.consoles: with open(os.path.join(config.output_dir, 'console-%s.log' % idx), 'w') as clog: clog.write(console.log) + add_to_combined_list(console.log) idx = idx + 1 + combined_list = [] for device in config.devices: with open(os.path.join(config.output_dir, device + ".log"), 'w') as clog: d = getattr(config, device) if hasattr(d, 'log'): clog.write(d.log) + add_to_combined_list(d.log) + + import operator + combined_list.sort(key=operator.itemgetter('time')) + + with open(os.path.join(config.output_dir, "all.log"), 'w') as clog: + for e in combined_list: + clog.write('[%s] %s\n' % (e['time'], e['text'])) os.environ['TEST_END_TIME'] = datetime.now().strftime("%s") From 9c7fad2ba376043c8386cb2e64f9f8f3216177ee Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 4 Dec 2018 18:24:58 -0600 Subject: [PATCH 469/947] travis: dump full log during travisci run Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 25fe8f72..661b5809 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,5 +16,7 @@ script: - ./bft -i - yes | ./bft -b qemux86-openwrt -r https://www.dropbox.com/s/ak58icpzta1f0if/openwrt-x86-generic-combined-ext4.vmdk?dl=0 -y -x travisci - grep tests_fail...0, results/test_results.json + - cat results/all.log after_failure: - yes | BFT_DEBUG=y ./bft -b qemux86-openwrt -r https://www.dropbox.com/s/ak58icpzta1f0if/openwrt-x86-generic-combined-ext4.vmdk?dl=0 -y -x travisci + - cat results/all.log From d1233c9661f70579ca168476a7cc8b8867a2a145 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 4 Dec 2018 18:35:56 -0600 Subject: [PATCH 470/947] bft: add device name in full log The messages are not as useful if you don't know which device they came from Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 10 +++++----- devices/base.py | 2 ++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/bft b/bft index f27e8cfa..aeeea183 100755 --- a/bft +++ b/bft @@ -293,11 +293,11 @@ def main(): library.print_board_info(config.board) combined_list = [] - def add_to_combined_list(log): + def add_to_combined_list(log, name): for line in log.split('\r\n'): try: ts, text = line.split(' ', 1) - combined_list.append({"time": float(ts[1:-1]), "text": text}) + combined_list.append({"time": float(ts[1:-1]), "text": text, "name": name}) except: print("Failed to parse log line = %s" % line) pass @@ -306,7 +306,7 @@ def main(): for console in config.console.consoles: with open(os.path.join(config.output_dir, 'console-%s.log' % idx), 'w') as clog: clog.write(console.log) - add_to_combined_list(console.log) + add_to_combined_list(console.log, "console-%s" % idx) idx = idx + 1 combined_list = [] @@ -315,14 +315,14 @@ def main(): d = getattr(config, device) if hasattr(d, 'log'): clog.write(d.log) - add_to_combined_list(d.log) + add_to_combined_list(d.log, device) import operator combined_list.sort(key=operator.itemgetter('time')) with open(os.path.join(config.output_dir, "all.log"), 'w') as clog: for e in combined_list: - clog.write('[%s] %s\n' % (e['time'], e['text'])) + clog.write('%s: [%s] %s\n' % (e['name'], e['time'], e['text'])) os.environ['TEST_END_TIME'] = datetime.now().strftime("%s") diff --git a/devices/base.py b/devices/base.py index bf6808bb..58474774 100644 --- a/devices/base.py +++ b/devices/base.py @@ -14,6 +14,8 @@ import common import error_detect +#from tests.lib.regexlib import ValidIpv4AddressRegex, ValidIpv6AddressRegex + # To Do: maybe make this config variable BFT_DEBUG = "BFT_DEBUG" in os.environ From 35d1b9276f2cbc9b0afcd0f2a05e1c3ffd44a361 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 5 Dec 2018 20:52:07 -0600 Subject: [PATCH 471/947] bft: fix some issues with the combined log - don't drop console logs, they might be the most important (we reset the combined_logs var) - don't add spaces in log lines (so we can be sure the first part of the string is the timestamp enclosure - use the '[' and ']' and don't count on '] ' as the closing timestamp for parsing the logs Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 12 +++++++++--- devices/base.py | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/bft b/bft index aeeea183..d5c29a9a 100755 --- a/bft +++ b/bft @@ -296,7 +296,11 @@ def main(): def add_to_combined_list(log, name): for line in log.split('\r\n'): try: - ts, text = line.split(' ', 1) + if line is '': + continue + if line.startswith(' ['): + line = line[1:] + ts, text = line.split(']', 1) combined_list.append({"time": float(ts[1:-1]), "text": text, "name": name}) except: print("Failed to parse log line = %s" % line) @@ -309,7 +313,6 @@ def main(): add_to_combined_list(console.log, "console-%s" % idx) idx = idx + 1 - combined_list = [] for device in config.devices: with open(os.path.join(config.output_dir, device + ".log"), 'w') as clog: d = getattr(config, device) @@ -322,7 +325,10 @@ def main(): with open(os.path.join(config.output_dir, "all.log"), 'w') as clog: for e in combined_list: - clog.write('%s: [%s] %s\n' % (e['name'], e['time'], e['text'])) + try: + clog.write('%s: [%s] %s\n' % (e['name'], e['time'], e['text'])) + except: + print "failed to parse line: %s" % repr(e) os.environ['TEST_END_TIME'] = datetime.now().strftime("%s") diff --git a/devices/base.py b/devices/base.py index 58474774..b4d758a0 100644 --- a/devices/base.py +++ b/devices/base.py @@ -91,7 +91,7 @@ def write(self, string): tmp = '\n [%s]' % td.total_seconds() tmp += string[1:] string = tmp - self.log += re.sub('\r\n', '\r\n[%s] ' % td.total_seconds(), string) + self.log += re.sub('\r\n', '\r\n[%s]' % td.total_seconds(), string) def flush(self): self.out.flush() From 0b7fe4432db55aac4d18789ef76dd4ee565776e9 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 6 Dec 2018 15:21:26 -0600 Subject: [PATCH 472/947] bft: pass start to run all devices and tests as well Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/bft b/bft index d5c29a9a..84f380a9 100755 --- a/bft +++ b/bft @@ -84,6 +84,8 @@ def main(): os.environ["TERM"] = "dumb" + start = datetime.now() + # Connect to any board in list connected_to_board = False random.shuffle(config.BOARD_NAMES) @@ -136,7 +138,6 @@ def main(): "lan_iface": "lan%s" % uniqid[:12], "uniq_id": uniqid} - start = datetime.now() # Connect to board config.console = devices.board_decider(config.board['board_type'], @@ -236,6 +237,7 @@ def main(): print_bold("\tTest %s skipped, not found..." % name) continue test = getattr(tests, name) + test.start = start else: test = name print_bold(" %s %s from %s" % (i+1, test.__name__, inspect.getfile(test))) @@ -249,7 +251,9 @@ def main(): try: for t in [getattr(tests, name) for name in config.EXTRA_TESTS]: print_bold(" %s" % t) - tests_to_run.append(t(config)) + test = t(config) + test.start = start + tests_to_run.append(test) except: print_bold("Unable to find specified extra tests, aborting...") sys.exit(1) From 3a58da51eb5a4aadee50e15013b43cd9c9e50495 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 6 Dec 2018 15:22:13 -0600 Subject: [PATCH 473/947] devices: base: log directly to parent class via o_helper We don't need to this weird indirection anymore, parent reference is saved in object class Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/base.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/devices/base.py b/devices/base.py index b4d758a0..e14c9784 100644 --- a/devices/base.py +++ b/devices/base.py @@ -67,14 +67,12 @@ def check_output(self, cmd, timeout=30): def write(self, string): self._logfile_read.write(string) - self.log += string def set_logfile_read(self, value): class o_helper(): def __init__(self, parent, out, color): self.color = color self.out = out - self.log = "" self.parent = parent self.first_write = True def write(self, string): @@ -87,22 +85,18 @@ def write(self, string): self.out.write(string) td = datetime.now()-self.parent.start # check for the split case - if len(self.log) > 1 and self.log[-1] == '\r' and string[0] == '\n': + if len(self.parent.log) > 1 and self.parent.log[-1] == '\r' and string[0] == '\n': tmp = '\n [%s]' % td.total_seconds() tmp += string[1:] string = tmp - self.log += re.sub('\r\n', '\r\n[%s]' % td.total_seconds(), string) + self.parent.log += re.sub('\r\n', '\r\n[%s]' % td.total_seconds(), string) def flush(self): self.out.flush() if value is not None: self._logfile_read = o_helper(self, value, getattr(self, "color", None)) - def get_log(self): - return self._logfile_read.log - logfile_read = property(get_logfile_read, set_logfile_read) - log = property(get_log) # perf related def parse_sar_iface_pkts(self, wan, lan): From d86c51f666db4fe348fac1c79a3bdad46a7762cb Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 6 Dec 2018 15:23:09 -0600 Subject: [PATCH 474/947] bft: cleanup logging and improve error messages Remove extra line, use repr to see weird chars on debug fails, and strip extra newlines out if they are present Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bft b/bft index 84f380a9..ff97dc4c 100755 --- a/bft +++ b/bft @@ -302,12 +302,14 @@ def main(): try: if line is '': continue + if line.startswith('\n'): + line = line[1:] if line.startswith(' ['): line = line[1:] ts, text = line.split(']', 1) - combined_list.append({"time": float(ts[1:-1]), "text": text, "name": name}) + combined_list.append({"time": float(ts[1:-1]), "text": str(text), "name": name}) except: - print("Failed to parse log line = %s" % line) + print("Failed to parse log line = %s" % repr(line)) pass idx = 1 From cd1e3167b3f75634ac3bb9d5098196d04fa2cca8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 6 Dec 2018 15:23:57 -0600 Subject: [PATCH 475/947] bft: add logger meta to log all function calls for tests and devices This makes new lgos for all function calls for all device and test classes. It also saves it to the respective device log that's already present plus there is a new file for each test log as well. Then all the new bits are also added to all.log as well Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 6 ++++++ devices/base.py | 6 +++++- tests/lib/logging.py | 27 +++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/bft b/bft index ff97dc4c..453a8af2 100755 --- a/bft +++ b/bft @@ -326,6 +326,12 @@ def main(): clog.write(d.log) add_to_combined_list(d.log, device) + for test in tests_to_run: + with open(os.path.join(config.output_dir, '%s.log' % test.__class__.__name__), 'w') as clog: + if hasattr(test, 'log') and test.log != "": + clog.write(test.log) + add_to_combined_list(test.log, test.__class__.__name__) + import operator combined_list.sort(key=operator.itemgetter('time')) diff --git a/devices/base.py b/devices/base.py index e14c9784..183088bb 100644 --- a/devices/base.py +++ b/devices/base.py @@ -14,12 +14,16 @@ import common import error_detect -#from tests.lib.regexlib import ValidIpv4AddressRegex, ValidIpv6AddressRegex +#from lib.regexlib import ValidIpv4AddressRegex, ValidIpv6AddressRegex + +from lib.logging import LoggerMeta # To Do: maybe make this config variable BFT_DEBUG = "BFT_DEBUG" in os.environ class BaseDevice(pexpect.spawn): + __metaclass__ = LoggerMeta + log = "" prompt = ['root\\@.*:.*#', ] delaybetweenchar = None diff --git a/tests/lib/logging.py b/tests/lib/logging.py index dc534495..16a3a0b7 100755 --- a/tests/lib/logging.py +++ b/tests/lib/logging.py @@ -6,6 +6,8 @@ # The full text can be found in LICENSE in the root directory. import time +import types +from datetime import datetime def now_short(): """ @@ -23,3 +25,28 @@ def logfile_assert_message(s, condition, message): assert 0, message+": FAIL\r\n" else: s.log_to_file += now_short()+message+": PASS\r\n" + +class LoggerMeta(type): + def __new__(cls, name, bases, attrs): + for attr_name, attr_value in attrs.iteritems(): + if isinstance(attr_value, types.FunctionType): + attrs[attr_name] = cls.deco(attr_value) + + return super(LoggerMeta, cls).__new__(cls, name, bases, attrs) + + @classmethod + def deco(cls, func): + def wrapper(*args, **kwargs): + func_args_str = "%s %s" % (args, kwargs) + to_log = '%s.%s ( %s )' % (func.__module__, func.__name__, func_args_str) + + if hasattr(args[0], 'start'): + args[0].log += '[%s] calling %s\r\n' % ((datetime.now()-args[0].start).total_seconds(), to_log) + + ret = func(*args, **kwargs) + + if hasattr(args[0], 'start'): + args[0].log += "[%s] returned %s = %s\r\n" % ((datetime.now()-args[0].start).total_seconds(), to_log, ret) + + return ret + return wrapper From 2db8ac466036e67e107ece74f47f0e8c8080fa00 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 7 Dec 2018 15:01:47 -0600 Subject: [PATCH 476/947] devices: base: we removed space after \n so remove it here too Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/base.py b/devices/base.py index 183088bb..42d4e1c4 100644 --- a/devices/base.py +++ b/devices/base.py @@ -90,7 +90,7 @@ def write(self, string): td = datetime.now()-self.parent.start # check for the split case if len(self.parent.log) > 1 and self.parent.log[-1] == '\r' and string[0] == '\n': - tmp = '\n [%s]' % td.total_seconds() + tmp = '\n[%s]' % td.total_seconds() tmp += string[1:] string = tmp self.parent.log += re.sub('\r\n', '\r\n[%s]' % td.total_seconds(), string) From e61c41e2ddb6aefa1e5ee7b19050608677548cca Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 10 Dec 2018 09:33:31 -0600 Subject: [PATCH 477/947] bft: log function calls and text separately Function calls can be in the middle of lines from devices so let's log them separately. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 2 ++ devices/base.py | 1 + tests/lib/logging.py | 4 ++-- tests/linux_boot.py | 2 ++ 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/bft b/bft index 453a8af2..1f8008d6 100755 --- a/bft +++ b/bft @@ -317,6 +317,7 @@ def main(): with open(os.path.join(config.output_dir, 'console-%s.log' % idx), 'w') as clog: clog.write(console.log) add_to_combined_list(console.log, "console-%s" % idx) + add_to_combined_list(console.log_calls, "console-%s" % idx) idx = idx + 1 for device in config.devices: @@ -331,6 +332,7 @@ def main(): if hasattr(test, 'log') and test.log != "": clog.write(test.log) add_to_combined_list(test.log, test.__class__.__name__) + add_to_combined_list(test.log_calls, test.__class__.__name__) import operator combined_list.sort(key=operator.itemgetter('time')) diff --git a/devices/base.py b/devices/base.py index 42d4e1c4..9e4ea4d0 100644 --- a/devices/base.py +++ b/devices/base.py @@ -24,6 +24,7 @@ class BaseDevice(pexpect.spawn): __metaclass__ = LoggerMeta log = "" + log_calls = "" prompt = ['root\\@.*:.*#', ] delaybetweenchar = None diff --git a/tests/lib/logging.py b/tests/lib/logging.py index 16a3a0b7..b676beb7 100755 --- a/tests/lib/logging.py +++ b/tests/lib/logging.py @@ -41,12 +41,12 @@ def wrapper(*args, **kwargs): to_log = '%s.%s ( %s )' % (func.__module__, func.__name__, func_args_str) if hasattr(args[0], 'start'): - args[0].log += '[%s] calling %s\r\n' % ((datetime.now()-args[0].start).total_seconds(), to_log) + args[0].log_calls += '[%s]calling %s\r\n' % ((datetime.now()-args[0].start).total_seconds(), to_log) ret = func(*args, **kwargs) if hasattr(args[0], 'start'): - args[0].log += "[%s] returned %s = %s\r\n" % ((datetime.now()-args[0].start).total_seconds(), to_log, ret) + args[0].log_calls += "[%s]returned %s = %s\r\n" % ((datetime.now()-args[0].start).total_seconds(), to_log, ret) return ret return wrapper diff --git a/tests/linux_boot.py b/tests/linux_boot.py index 7f56b6f4..cf17b5b8 100644 --- a/tests/linux_boot.py +++ b/tests/linux_boot.py @@ -15,6 +15,8 @@ from devices import board, wan, lan, wlan, prompt class LinuxBootTest(unittest2.TestCase): + log = "" + log_calls = "" def __init__(self, config): super(LinuxBootTest, self).__init__("testWrapper") From 8320c6fd7e988d9c0c11031feb9edc96ae2f3603 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 10 Dec 2018 13:32:43 -0600 Subject: [PATCH 478/947] tests: lib: fix \r\n in args and return values This will cause issues parsing later so we need to handle these here Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/logging.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/lib/logging.py b/tests/lib/logging.py index b676beb7..027e03eb 100755 --- a/tests/lib/logging.py +++ b/tests/lib/logging.py @@ -37,7 +37,7 @@ def __new__(cls, name, bases, attrs): @classmethod def deco(cls, func): def wrapper(*args, **kwargs): - func_args_str = "%s %s" % (args, kwargs) + func_args_str = "%s %s" % (repr(args), repr(kwargs)) to_log = '%s.%s ( %s )' % (func.__module__, func.__name__, func_args_str) if hasattr(args[0], 'start'): @@ -46,7 +46,7 @@ def wrapper(*args, **kwargs): ret = func(*args, **kwargs) if hasattr(args[0], 'start'): - args[0].log_calls += "[%s]returned %s = %s\r\n" % ((datetime.now()-args[0].start).total_seconds(), to_log, ret) + args[0].log_calls += "[%s]returned %s = %s\r\n" % ((datetime.now()-args[0].start).total_seconds(), to_log, repr(ret)) return ret return wrapper From 39260410328d29c8101d6bb288d2efddfe940958 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 10 Dec 2018 13:52:11 -0600 Subject: [PATCH 479/947] tests: linux: enable logging of function calls from test classes This uses the same helper the device classes use but need to set one variable because these unittest classes are accessing it in calls to __repr__ Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/linux_boot.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/linux_boot.py b/tests/linux_boot.py index cf17b5b8..08f4b236 100644 --- a/tests/linux_boot.py +++ b/tests/linux_boot.py @@ -13,8 +13,11 @@ import time from devices import board, wan, lan, wlan, prompt +from lib.logging import LoggerMeta class LinuxBootTest(unittest2.TestCase): + _testMethodName = "UNDEFINED" + __metaclass__ = LoggerMeta log = "" log_calls = "" From fba473c6304f36063900dd9cd0c19da7c1f403ad Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 10 Dec 2018 17:04:08 -0600 Subject: [PATCH 480/947] bft: fix calls for logging function calls This would probably never get hit, but let's fix it like this anyways Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 1 + 1 file changed, 1 insertion(+) diff --git a/bft b/bft index 1f8008d6..347f2da1 100755 --- a/bft +++ b/bft @@ -332,6 +332,7 @@ def main(): if hasattr(test, 'log') and test.log != "": clog.write(test.log) add_to_combined_list(test.log, test.__class__.__name__) + if hasattr(test, 'log_calls'): add_to_combined_list(test.log_calls, test.__class__.__name__) import operator From 7a9c762e8ec8ea0b5131d98673c77fc44a88136d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 10 Dec 2018 18:37:32 -0600 Subject: [PATCH 481/947] library: improve output of board config This is still a long way from being ideal but a temp. stop-gap to make the output more readable Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- library.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/library.py b/library.py index f2f02ede..14202daa 100644 --- a/library.py +++ b/library.py @@ -8,13 +8,17 @@ import os from termcolor import cprint +from pprint import pformat def print_bold(msg): cprint(msg, None, attrs=['bold']) def print_board_info(x): for key in sorted(x): - print_bold(" %s: %s" % (key, x[key])) + if isinstance(x[key], list): + print_bold(" %s: \n%s" % (key, pformat(x[key], indent=5).replace("u'", "'"))) + else: + print_bold(" %s: %s" % (key, pformat(x[key]).replace("u'", "'"))) def process_test_results(raw_test_results, golden={}): full_results = {'test_results': [], From ade3eac7b57a512fdb1479299adb93dbbb26c2f8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 11 Dec 2018 14:25:40 -0600 Subject: [PATCH 482/947] bft: log function calls for all devices Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 1 + 1 file changed, 1 insertion(+) diff --git a/bft b/bft index 347f2da1..8279f8f0 100755 --- a/bft +++ b/bft @@ -326,6 +326,7 @@ def main(): if hasattr(d, 'log'): clog.write(d.log) add_to_combined_list(d.log, device) + add_to_combined_list(d.log_calls, device) for test in tests_to_run: with open(os.path.join(config.output_dir, '%s.log' % test.__class__.__name__), 'w') as clog: From f56b0421308aceee44d67faf252e7b9a6cc88460 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 11 Dec 2018 16:54:47 -0600 Subject: [PATCH 483/947] tests: linux: especial getter/setter for log_to_file to add to log Simple wrapper that allows us to catch get/sets on log_to_file so we can add a timestamp and log to other places Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 2 +- tests/linux_boot.py | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/bft b/bft index 8279f8f0..30f18673 100755 --- a/bft +++ b/bft @@ -470,7 +470,7 @@ def main(): print("Unable to log results to mysql database.") for t in tests_to_run: - if hasattr(t, 'log_to_file'): + if t.log_to_file is not None: filename = type(t).__name__ + '-' + time.strftime("%Y%m%d-%H%M%S") + ".txt" testtime = t.stop_time - t.start_time with open(os.path.join(config.output_dir, filename), 'w') as log: diff --git a/tests/linux_boot.py b/tests/linux_boot.py index 08f4b236..b04b6ebe 100644 --- a/tests/linux_boot.py +++ b/tests/linux_boot.py @@ -128,3 +128,24 @@ def recover(self): sys.exit(1) print("ERROR: No default recovery!") raise "No default recovery!" + + + _log_to_file = None + + def x_log_to_file(self, value): + pass + + def get_log_to_file(self): + return self._log_to_file + + def set_log_to_file(self, value): + # we have to call this because the property method calls are + # not calling the decorator.. work around for now + if self._log_to_file is not None: + self.x_log_to_file(value.replace(self._log_to_file, '')) + else: + self.x_log_to_file(value) + + self._log_to_file = value + + log_to_file = property(get_log_to_file, set_log_to_file) From 886ecdae68a1382e14885123661132d88ccf9879 Mon Sep 17 00:00:00 2001 From: Mohini Kamat <mkamat@libertyglobal.com> Date: Thu, 13 Dec 2018 12:29:45 -0600 Subject: [PATCH 484/947] tests: netperf: update netperf for recent changes in debian - try harder to install - run netserver directly Signed-off-by: Mohini Kamat <mkamat@libertyglobal.com> Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/netperf_test.py | 78 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 64 insertions(+), 14 deletions(-) diff --git a/tests/netperf_test.py b/tests/netperf_test.py index 1ef042ca..78cf5ddc 100644 --- a/tests/netperf_test.py +++ b/tests/netperf_test.py @@ -18,30 +18,36 @@ def install_netperf(device): # Check version device.sendline('\nnetperf -V') try: - device.expect('Netperf version 2.4', timeout=10) + device.expect('Netperf version 2', timeout=10) device.expect(device.prompt) except: # Install Netperf - device.sendline('apt-get update') - device.expect(device.prompt, timeout=60) - device.sendline('apt-get -o DPkg::Options::="--force-confnew" -y --force-yes install netperf') - device.expect(device.prompt, timeout=60) - device.sendline('/etc/init.d/netperf restart') - device.expect('Restarting') - device.expect(device.prompt) + device.sendline('apt-get update') + device.expect(device.prompt, timeout=120) + device.sendline('apt-get install netperf') + device.expect(device.prompt, timeout=120) class NetperfTest(rootfs_boot.RootFSBootTest): - '''Setup Netperf and Ran Throughput.''' + '''Setup Netperf and Run Throughput.''' + @lib.common.run_once def lan_setup(self): super(NetperfTest, self).lan_setup() install_netperf(lan) + @lib.common.run_once def wan_setup(self): super(NetperfTest, self).wan_setup() install_netperf(wan) + lib.common.test_msg("Starting netserver on wan...") + wan.sendline("kill -9 `pidof netserver`") + wan.sendline('/usr/bin/netserver') + wan.expect("Starting netserver with host") + def recover(self): lan.sendcontrol('c') + lib.common.test_msg("Recover..kill netserver on wan") + kill_netserver(wan); # if you are spawning a lot of connections, sometimes it # takes too long to wait for the connection to be established @@ -66,53 +72,97 @@ def run_netperf(self, device, ip, opts="", timeout=60): self.run_netperf_cmd(device, ip, opts=opts) return self.run_netperf_parse(device) + def kill_netserver(self, device): + device.sendline("kill -9 `pidof netserver`") + device.expect(prompt) + def runTest(self): super(NetperfTest, self).runTest() - board.sendline('mpstat -P ALL 30 1') - speed = self.run_netperf(lan, "192.168.0.1 -c -C -l 30") - board.expect('Average.*idle\r\nAverage:\s+all(\s+[0-9]+.[0-9]+){10}\r\n') + board.arm.sendline('mpstat -P ALL 30 1') + board.arm.expect('Linux') + + speed = self.run_netperf(lan, "%s -c -C -l 30" % wan.gw) + + board.sendcontrol('c') + board.expect('Average.*idle\r\nAverage:\s+all(\s+[0-9]+.[0-9]+){9}\r\n',timeout=60) idle_cpu = float(board.match.group(1)) avg_cpu = 100 - float(idle_cpu) lib.common.test_msg("Average cpu usage was %s" % avg_cpu) + self.kill_netserver(wan) self.result_message = "Setup Netperf and Ran Throughput (Speed = %s 10^6bits/sec, CPU = %s)" % (speed, avg_cpu) +########################### + def run_netperf_tcp(device, run_time, pkt_size, direction="up"): + if direction == "up": - cmd = "netperf -H 192.168.0.1 -c -C -l %s -- -m %s -M %s -D" % (run_time, pkt_size, pkt_size) + cmd = "netperf -H %s -c -C -l %s -- -m %s -M %s -D" % (wan.gw, run_time, pkt_size, pkt_size) else: - cmd = "netperf -H 192.168.0.1 -c -C -l %s -t TCP_MAERTS -- -m %s -M %s -D" % (run_time, pkt_size, pkt_size) + cmd = "netperf -H %s -c -C -l %s -t TCP_MAERTS -- -m %s -M %s -D" % (wan.gw, run_time, pkt_size, pkt_size) device.sendline(cmd) device.expect('TEST.*\r\n') device.expect(device.prompt, timeout=run_time+4) class Netperf_UpTCP256(rootfs_boot.RootFSBootTest): '''Netperf upload throughput (TCP, packets size 256 Bytes).''' + def runTest(self): + lib.common.test_msg("Starting netserver on wan...") + wan.sendline('/usr/bin/netserver') + wan.expect("Starting netserver with host") run_netperf_tcp(device=lan, run_time=15, pkt_size=256) + wan.sendline("kill -9 `pidof netserver`") + wan.expect(prompt) class Netperf_UpTCP512(rootfs_boot.RootFSBootTest): '''Netperf upload throughput (TCP, packets size 512 Bytes).''' def runTest(self): + lib.common.test_msg("Starting netserver on wan...") + wan.sendline('/usr/bin/netserver') + wan.expect("Starting netserver with host") run_netperf_tcp(device=lan, run_time=15, pkt_size=512) + wan.sendline("kill -9 `pidof netserver`") + wan.expect(prompt) class Netperf_UpTCP1024(rootfs_boot.RootFSBootTest): '''Netperf upload throughput (TCP, packets size 1024 Bytes).''' def runTest(self): + lib.common.test_msg("Starting netserver on wan...") + wan.sendline('/usr/bin/netserver') + wan.expect("Starting netserver with host") run_netperf_tcp(device=lan, run_time=15, pkt_size=1024) + wan.sendline("kill -9 `pidof netserver`") + wan.expect(prompt) class Netperf_DownTCP256(rootfs_boot.RootFSBootTest): '''Netperf download throughput (TCP, packets size 256 Bytes).''' def runTest(self): + lib.common.test_msg("Starting netserver on wan...") + wan.sendline('/usr/bin/netserver') + wan.expect("Starting netserver with host") run_netperf_tcp(device=lan, run_time=15, pkt_size=256, direction="down") + wan.sendline("kill -9 `pidof netserver`") + wan.expect(prompt) class Netperf_DownTCP512(rootfs_boot.RootFSBootTest): '''Netperf download throughput (TCP, packets size 512 Bytes).''' def runTest(self): + lib.common.test_msg("Starting netserver on wan...") + wan.sendline('/usr/bin/netserver') + wan.expect("Starting netserver with host") run_netperf_tcp(device=lan, run_time=15, pkt_size=512, direction="down") + wan.sendline("kill -9 `pidof netserver`") + wan.expect(prompt) class Netperf_DownTCP1024(rootfs_boot.RootFSBootTest): '''Netperf download throughput (TCP, packets size 1024 Bytes).''' def runTest(self): + lib.common.test_msg("Starting netserver on wan...") + wan.sendline('/usr/bin/netserver') + wan.expect("Starting netserver with host") run_netperf_tcp(device=lan, run_time=15, pkt_size=1024, direction="down") + wan.sendline("kill -9 `pidof netserver`") + wan.expect(prompt) + From d83dc09ee0f4db044e4b7a7e727cd7d0704e0a3c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 13 Dec 2018 18:11:14 -0600 Subject: [PATCH 485/947] bft: exit with message if unable to find testsuite Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bft b/bft index 30f18673..793797ad 100755 --- a/bft +++ b/bft @@ -231,6 +231,9 @@ def main(): import tests tests.init(config) import testsuites + if config.TEST_SUITE not in testsuites.list_tests: + print_bold("Unable to find testsuite %s, aborting..." % config.TEST_SUITE) + sys.exit(1) for i, name in enumerate(testsuites.list_tests[config.TEST_SUITE]): if isinstance(name, str): if not hasattr(tests, name): From 5972be27e526cfd0d7f9b2aea293c0a492a838f6 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 19 Dec 2018 16:35:11 -0600 Subject: [PATCH 486/947] devices: debian: allow ipv4 and ipv6 by default for tinyproxy - Also sync the prompts and output with the extra expect_exact Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index 430cd2be..06cd6957 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -787,6 +787,7 @@ def start_lan_client(self, wan_gw=None): # Setup HTTP proxy, so board webserver is accessible via this device self.sendline('curl --version') + self.expect_exact('curl --version') self.expect(self.prompt) self.sendline('ab -V') self.expect(self.prompt) @@ -796,6 +797,10 @@ def start_lan_client(self, wan_gw=None): self.expect(self.prompt) self.sendline("sed 's/#Allow/Allow/g' -i /etc/tinyproxy.conf /etc/tinyproxy/tinyproxy.conf") self.expect(self.prompt) + self.sendline("sed '/Listen/d' -i /etc/tinyproxy.conf /etc/tinyproxy/tinyproxy.conf") + self.expect(self.prompt) + self.sendline('echo "Listen ::" >> /etc/tinyproxy.conf') + self.expect(self.prompt) self.sendline('/etc/init.d/tinyproxy restart') self.expect('Restarting') self.expect(self.prompt) From 975b90d3deb5d13f194c41b30188eac631b626b7 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 19 Dec 2018 16:36:13 -0600 Subject: [PATCH 487/947] tests: screenshot_gui: refactor ScreenshotGUI into a subclass This way other tests that need to do the same thing can reuse this... also the new class is a helpful way to simple debug issues Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/screenshot_gui.py | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/tests/screenshot_gui.py b/tests/screenshot_gui.py index 44c8cdc8..fb1fc960 100644 --- a/tests/screenshot_gui.py +++ b/tests/screenshot_gui.py @@ -14,9 +14,9 @@ import pexpect import os -class ScreenshotGUI(rootfs_boot.RootFSBootTest): - '''Starts Firefox via a proxy to the LAN and takes a screenshot''' - def runTest(self): +class RunBrowserViaProxy(rootfs_boot.RootFSBootTest): + '''Bootstrap firefox running via localproxy''' + def start_browser(self): try: x,y=config.get_display_backend_size() # try to start vnc server @@ -50,6 +50,26 @@ def runTest(self): print("Using proxy %s" % proxy) driver = lib.common.get_webproxy_driver(proxy) + + return driver + + def runTest(self): + driver = self.start_browser() + + print("Browser is running, connect and debug") + print("Press Control-] to exit interactive mode") + board.interact() + + self.recover() + + def recover(self): + self.display.stop() + +class ScreenshotGUI(RunBrowserViaProxy): + '''Starts Firefox via a proxy to the LAN and takes a screenshot''' + def runTest(self): + driver = self.start_browser() + print ("taking ss of http://%s" % board.lan_gateway) driver.get("http://%s" % board.lan_gateway) @@ -68,6 +88,3 @@ def runTest(self): driver.close() self.recover() - - def recover(self): - self.display.stop() From 15fa3413097d6009cdf4df4e3bce42746a692e9e Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 19 Dec 2018 17:01:06 -0600 Subject: [PATCH 488/947] tests: screenshot_gui: try harder to kill display Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/screenshot_gui.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/screenshot_gui.py b/tests/screenshot_gui.py index fb1fc960..31414aab 100644 --- a/tests/screenshot_gui.py +++ b/tests/screenshot_gui.py @@ -63,7 +63,18 @@ def runTest(self): self.recover() def recover(self): - self.display.stop() + try: + self.display.stop() + except: + pass + try: + self.display.sendstop() + except: + pass + try: + self.display.popen.kill() + except: + pass class ScreenshotGUI(RunBrowserViaProxy): '''Starts Firefox via a proxy to the LAN and takes a screenshot''' From b560af41ea1bf5d475c60f5fda7edb190a50ad4b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 9 Jan 2019 12:46:20 -0600 Subject: [PATCH 489/947] devices: debian: update both possible tinyproxy conf files Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 06cd6957..b80a0635 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -793,14 +793,16 @@ def start_lan_client(self, wan_gw=None): self.expect(self.prompt) self.sendline('nmap --version') self.expect(self.prompt) - self.sendline("sed -i 's/^Port 8888/Port 8080/' /etc/tinyproxy.conf /etc/tinyproxy/tinyproxy.conf") - self.expect(self.prompt) - self.sendline("sed 's/#Allow/Allow/g' -i /etc/tinyproxy.conf /etc/tinyproxy/tinyproxy.conf") - self.expect(self.prompt) - self.sendline("sed '/Listen/d' -i /etc/tinyproxy.conf /etc/tinyproxy/tinyproxy.conf") - self.expect(self.prompt) - self.sendline('echo "Listen ::" >> /etc/tinyproxy.conf') - self.expect(self.prompt) + # TODO: determine which config file is the correct one... but for now just modify both + for f in ['/etc/tinyproxy.conf', '/etc/tinyproxy/tinyproxy.conf']: + self.sendline("sed -i 's/^Port 8888/Port 8080/' %s" % f) + self.expect(self.prompt) + self.sendline("sed 's/#Allow/Allow/g' -i %s" % f) + self.expect(self.prompt) + self.sendline("sed '/Listen/d' -i %s" % f) + self.expect(self.prompt) + self.sendline('echo "Listen ::" >> %s' % f) + self.expect(self.prompt) self.sendline('/etc/init.d/tinyproxy restart') self.expect('Restarting') self.expect(self.prompt) From 75f27a0ec61900ec044f35cc305d9f97d577847e Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 18 Dec 2018 13:31:43 -0600 Subject: [PATCH 490/947] devices: debian: don't delete tftp files if server is shared Sometimes we share these devices among multiple other devices esp. when running as a provisioner so let's not delete all the files TODO: find out how to cleanup... Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index b80a0635..fe29ed39 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -34,6 +34,7 @@ class DebianBox(base.BaseDevice): pkgs_installed = False install_pkgs_after_dhcp = False is_bridged = False + shared_tftp_server = False iface_dut = "eth1" @@ -127,6 +128,7 @@ def __init__(self, self.wan_dhcp = True if opt.startswith('wan-cmts-provisioner'): self.wan_cmts_provisioner = True + self.shared_tftp_server = True if opt.startswith('wan-no-eth0'): self.wan_no_eth0 = True @@ -331,10 +333,11 @@ def start_tftp_server(self): self.sendline('/etc/init.d/tftpd-hpa stop') self.expect('Stopping') self.expect(self.prompt) - self.sendline('rm -rf /tftpboot') - self.expect(self.prompt) - self.sendline('rm -rf /srv/tftp') - self.expect(self.prompt) + if not self.shared_tftp_server: + self.sendline('rm -rf /tftpboot') + self.expect(self.prompt) + self.sendline('rm -rf /srv/tftp') + self.expect(self.prompt) self.sendline('mkdir -p /srv/tftp') self.expect(self.prompt) self.sendline('ln -sf /srv/tftp/ /tftpboot') From 09a3751de4ad614d827210372e6dd38056a23791 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Mon, 17 Dec 2018 18:03:41 +0100 Subject: [PATCH 491/947] tests: lib: logging: added log_message function (part of the imporved logging) Helper function that prints a message to both console and TestName.txt This function allow for a header message to be printed as follows: on the console: ***Testcase Setup*** and in the .txt: ============== Testcase Setup ============== and a non neader message as follows: on the console: ============================================ Step_1_Execution: check GW is online on CMTS ============================================ and in the .txt: 20181217-171234 Step_1_Execution: check GW is online on CMTS Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/lib/logging.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) mode change 100755 => 100644 tests/lib/logging.py diff --git a/tests/lib/logging.py b/tests/lib/logging.py old mode 100755 new mode 100644 index 027e03eb..f6a7a09c --- a/tests/lib/logging.py +++ b/tests/lib/logging.py @@ -8,6 +8,7 @@ import time import types from datetime import datetime +from devices.common import print_bold def now_short(): """ @@ -50,3 +51,14 @@ def wrapper(*args, **kwargs): return ret return wrapper + +def log_message(s, msg, header = False): + + line_sep = ('=' * (len(msg))) + full_msg = "\n\t\t"+line_sep+"\n\t\t"+msg+"\n\t\t"+line_sep+"\n" + if header: + print_bold("\n\n\t\t\t***"+msg+"***\n\n") + s.log_to_file += now_short()+full_msg+"\r\n" + else: + print_bold(full_msg) + s.log_to_file += now_short()+msg+"\r\n" From 699278edfd64abd712de3171e7dbdbc263da443b Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Thu, 10 Jan 2019 17:05:59 +0100 Subject: [PATCH 492/947] bft: added header and modified footer for result/tc_name.txt logs the test case files now have a header with the TC name and docstring and the footer lines have a separator Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- bft | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/bft b/bft index 793797ad..9264b145 100755 --- a/bft +++ b/bft @@ -477,9 +477,14 @@ def main(): filename = type(t).__name__ + '-' + time.strftime("%Y%m%d-%H%M%S") + ".txt" testtime = t.stop_time - t.start_time with open(os.path.join(config.output_dir, filename), 'w') as log: + log.write('\t=======================================================') + log.write('\n\tTest case ID: %s' % (type(t).__name__)) + log.write('\n\tTest case Description: %s' % (type(t).__doc__)) + log.write('\n\t=======================================================\n') log.write(t.log_to_file) - log.write('\n%s test result: %s' % (type(t).__name__, t.result_grade)) - log.write('\nTotal test time: %s seconds\n' % testtime) - + log.write('\n\t=======================================================') + log.write('\n\t%s test result: %s' % (type(t).__name__, t.result_grade)) + log.write('\n\tTotal test time: %s seconds' % testtime) + log.write('\n\t=======================================================') if __name__ == '__main__': main() From d1f21354bc5e9782b1dac0a0c661e50d8ea8ae21 Mon Sep 17 00:00:00 2001 From: luke <luke_tseng@compalbn.com> Date: Wed, 2 Jan 2019 17:37:59 +0800 Subject: [PATCH 493/947] tests: screenshot_gui.py: pr_add_enable_cpe_service_via_board - screenshot_gui.py: enable GUI function via board. - ex. board.enable_mgmt_gui(board, wan) - openwrt_router.py: add a default empty function for all other boards runing. Signed-off-by: luke <luke_tseng@compalbn.com> --- devices/openwrt_router.py | 3 +++ tests/screenshot_gui.py | 2 ++ 2 files changed, 5 insertions(+) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index f7f9114b..0918ca9f 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -533,6 +533,9 @@ def get_user_id(self, user_id): self.expect(self.prompt) return 0 == idx + def enable_mgmt_gui(self): + pass + if __name__ == '__main__': # Example use board = OpenWrtRouter('ap148-beeliner', diff --git a/tests/screenshot_gui.py b/tests/screenshot_gui.py index 31414aab..4ec626ce 100644 --- a/tests/screenshot_gui.py +++ b/tests/screenshot_gui.py @@ -48,6 +48,8 @@ def start_browser(self): print e raise Exception("No reasonable http proxy found, please add one to the board config") + board.enable_mgmt_gui(board, wan) + print("Using proxy %s" % proxy) driver = lib.common.get_webproxy_driver(proxy) From 755999605918b5233875da117e7373959c5eb495 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Sun, 13 Jan 2019 14:31:23 +0100 Subject: [PATCH 494/947] tests: linux_boot: now displays the test start/end time Requested by the test architect, time is shown as follows: ====== Begin NTL7465LG__P3__541 Start Time: Sat 12 Jan 2019 22:05:31 ==== ====== End NTL7465LG__P3__541 End Time: Sat 12 Jan 2019 22:15:31 == Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/lib/logging.py | 4 ++-- tests/linux_boot.py | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/tests/lib/logging.py b/tests/lib/logging.py index f6a7a09c..6f754a74 100644 --- a/tests/lib/logging.py +++ b/tests/lib/logging.py @@ -10,14 +10,14 @@ from datetime import datetime from devices.common import print_bold -def now_short(): +def now_short(_format = "%Y%m%d-%H%M%S"): """ Name:now_short Purpose: Get current date and time string Input:None Output:String in "YYYYMMDD-hhmmss" format """ - timeString = time.strftime("%Y%m%d-%H%M%S", time.localtime())+"\t" + timeString = time.strftime(_format, time.localtime())+"\t" return timeString def logfile_assert_message(s, condition, message): diff --git a/tests/linux_boot.py b/tests/linux_boot.py index b04b6ebe..702ddc43 100644 --- a/tests/linux_boot.py +++ b/tests/linux_boot.py @@ -13,13 +13,14 @@ import time from devices import board, wan, lan, wlan, prompt -from lib.logging import LoggerMeta +from lib.logging import LoggerMeta, now_short class LinuxBootTest(unittest2.TestCase): _testMethodName = "UNDEFINED" __metaclass__ = LoggerMeta log = "" log_calls = "" + _format = "%a %d %b %Y %H:%M:%S" def __init__(self, config): super(LinuxBootTest, self).__init__("testWrapper") @@ -33,9 +34,9 @@ def id(self): return self.__class__.__name__ def setUp(self): - lib.common.test_msg("\n==================== Begin %s ====================" % self.__class__.__name__) + lib.common.test_msg("\n==================== Begin %s Time: %s ====================" % (self.__class__.__name__, now_short(self._format))) def tearDown(self): - lib.common.test_msg("\n==================== End %s ======================" % self.__class__.__name__) + lib.common.test_msg("\n==================== End %s Time: %s ======================" % (self.__class__.__name__, now_short(self._format))) def wan_setup(self): None @@ -113,7 +114,7 @@ def testWrapper(self): self.result_grade = "Exp FAIL" else: self.result_grade = "FAIL" - print("\n\n=========== Test failed! Running recovery ===========") + print("\n\n=========== Test failed! Running recovery Time: %s ===========" % now_short(self._format)) if e.__class__.__name__ == "TIMEOUT": print(e.get_trace()) else: From 527ce67b6c6c224c7213e4ca6500afbfcd829fee Mon Sep 17 00:00:00 2001 From: gerben <gerben_chen@compalbn.com> Date: Wed, 19 Dec 2018 20:56:51 +0800 Subject: [PATCH 495/947] html: template_results.html ; make_human_readable.py For NTL require, need report completion time inside result.html. Photos attached with this modify. Signed-off-by: gerben <gerben_chen@compalbn.com> --- html/template_results.html | 1 + make_human_readable.py | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/html/template_results.html b/html/template_results.html index dac3b09d..a676f367 100644 --- a/html/template_results.html +++ b/html/template_results.html @@ -68,6 +68,7 @@ <h2 style="margin: 0px;">${summary_title}</h2> <br> Board access:<br> <ul> + <li>Report completion time: ${report_time}</li> <li>Name: ${station}</li> <li>Router console: ${conn_cmd}</li> <li>Location: ${location}</li> diff --git a/make_human_readable.py b/make_human_readable.py index 52364f76..88b85be5 100644 --- a/make_human_readable.py +++ b/make_human_readable.py @@ -11,7 +11,7 @@ import os import re import sys - +import time from string import Template try: from collections import Counter @@ -99,7 +99,8 @@ def xmlresults_to_html(test_results, 'summary_title' : title, 'changes': changes_to_html(os.environ.get('change_list')), "board_type": "unknown", - "location": "unknown"} + "location": "unknown", + "report_time" : "unknown"} try: parameters.update(board_info) parameters['misc'] = build_station_info(board_info) @@ -152,6 +153,16 @@ def xmlresults_to_html(test_results, parameters['total_test_time'] = "%s minutes" % (test_seconds/60) except: pass + + # Report completion time + try: + end_timestamp = int(os.environ.get('TEST_END_TIME')) + struct_time = time.localtime(end_timestamp) + format_time = time.strftime("%Y-%m-%d %H:%M:%S", struct_time) + parameters['report_time'] = "%s" % (format_time) + except: + pass + # Substitute parameters into template html to create new html file template_filename = pick_template_filename() f = open(template_filename, "r").read() From 674f942ae8e9a76970a70b48c750e06fbed9d729 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 10 Jan 2019 12:18:52 -0600 Subject: [PATCH 496/947] devices: debian: add option to not run dhcp on wan device This is useful when a separate device will run dhcp / provisioning services Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index fe29ed39..636bc966 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -35,6 +35,7 @@ class DebianBox(base.BaseDevice): install_pkgs_after_dhcp = False is_bridged = False shared_tftp_server = False + wan_dhcp_server = True iface_dut = "eth1" @@ -129,8 +130,14 @@ def __init__(self, if opt.startswith('wan-cmts-provisioner'): self.wan_cmts_provisioner = True self.shared_tftp_server = True + # This does run one.. but it's handled via the provisioning code path + self.wan_dhcp_server = False if opt.startswith('wan-no-eth0'): self.wan_no_eth0 = True + if opt.startswith('wan-no-dhcp-sever'): + self.wan_dhcp_server = False + if opt.startswith('cmts-provisioner'): + pass try: i = self.expect(["yes/no", "assword:", "Last login"] + self.prompt, timeout=30) @@ -692,7 +699,7 @@ def setup_as_wan_gateway(self): self.expect(self.prompt) self.sendline('ifconfig %s up' % self.iface_dut) self.expect(self.prompt) - if not self.wan_cmts_provisioner: + if not self.wan_dhcp_server: self.setup_dhcp_server() # configure routing From 7ee3b201cc207507f87d0358219bfa6f6228b956 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 14 Jan 2019 17:48:01 -0600 Subject: [PATCH 497/947] devices: base: show correct stack entry There is a bug where some code paths show sendline as the function calling sendline so this is a workaround Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/base.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/devices/base.py b/devices/base.py index 9e4ea4d0..ec0adc94 100644 --- a/devices/base.py +++ b/devices/base.py @@ -166,8 +166,12 @@ def parse_perf(self, events): # Optional send and expect functions to try and be fancy at catching errors def send(self, s): if BFT_DEBUG: + if 'pexpect/__init__.py: sendline():' in error_detect.caller_file_line(3): + idx = 4 + else: + idx = 3 common.print_bold("%s = sending: %s" % - (error_detect.caller_file_line(3), repr(s))) + (error_detect.caller_file_line(idx), repr(s))) if self.delaybetweenchar is not None: ret = 0 From 2c5e60b7c51bbd1c827a0fb20bb4532347ea9b92 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 14 Jan 2019 17:50:14 -0600 Subject: [PATCH 498/947] devices: debian: add default networks for provisioner These will be used instead of all the hard coded values... more work on that to come later Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index 636bc966..5f60ced1 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -14,6 +14,7 @@ import os import binascii import glob +import ipaddress from termcolor import colored, cprint @@ -39,6 +40,17 @@ class DebianBox(base.BaseDevice): iface_dut = "eth1" + # provisioner settings + # TODO: import from provisioner boardfarm config + # TODO: move provisioner to it's own distinct class + cm_network = ipaddress.IPv4Network(u"192.168.200.0/24") + cm_gateway = ipaddress.IPv4Address(u"192.168.200.1") + mta_network = ipaddress.IPv4Network(u"192.168.201.0/24") + mta_gateway = ipaddress.IPv4Address(u"192.168.201.1") + prov_network = ipaddress.IPv4Network(u"192.168.3.0/24") + prov_gateway = ipaddress.IPv4Address(u"192.168.3.222") + prov_ip = ipaddress.IPv4Address(u"192.168.3.1") + def __init__(self, *args, **kwargs): From b7ef5014da6b5318f54433212b1ddc156d0cc3bf Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 14 Jan 2019 20:28:53 -0600 Subject: [PATCH 499/947] devices: cougarpark: convert to use LAN for tftp to load firmware tftpd-server option will become the default tftp server for after the board is booted. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/cougarpark.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/devices/cougarpark.py b/devices/cougarpark.py index 762efdb4..8c388a43 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -101,7 +101,13 @@ def switch_to_mode(self, index): self.wait_for_boot() def setup_uboot_network(self, tftp_server): - self.tftp_server_int = tftp_server + from devices import lan + + # we override to use LAN because that's the only way it works for this device + lan.start_tftp_server() + tftp_server_ip = lan.gw + self.tftp_server_int = lan.gw + # line sep for UEFI self.linesep = '\x0D' @@ -122,9 +128,10 @@ def setup_uboot_network(self, tftp_server): def flash_linux(self, KERNEL): print("\n===== Updating kernel and rootfs =====\n") - filename = self.prepare_file(KERNEL) + from devices import lan + filename = self.prepare_file(KERNEL, tserver=lan.ipaddr, tport=lan.port) - self.sendline('tftp -p %s -d %s %s' % (self.uboot_ddr_addr, self.tftp_server_int, filename)) + self.sendline('tftp -p %s -d %s %s' % (self.uboot_ddr_addr, lan.tftp_server_ip_int(), filename)) self.expect_exact('TFTP general status Success') if 0 == self.expect_exact(['TFTP TFTP Read File status Time out'] + self.uprompt, timeout=60): raise Exception("TFTP timed out") From 33132a75b26c7886c09e278d401e634b563a7a50 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 14 Jan 2019 20:32:14 -0600 Subject: [PATCH 500/947] devices: debian: try to set a default prov config if none provided The goal here is to be able to set the tftpd server at a min for a CM to point at the WAN device. It's still unlikely the CM will come up though Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 58 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 41 insertions(+), 17 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 5f60ced1..12454e46 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -543,27 +543,51 @@ def update_cmts_isc_dhcp_config(self, board_config): self.sendline('rm /etc/dhcp/dhcpd.conf.''' + board_config['station']) self.expect(self.prompt) - if 'extra_provisioning' in board_config: - cfg_file = "/etc/dhcp/dhcpd.conf." + board_config['station'] + if 'extra_provisioning' not in board_config: + # same defaults so we at least set tftp server to WAN + board_config['extra_provisioning'] = {} + if 'mta_mac' in board_config: + board_config['extra_provisioning']["mta"] = \ + { "hardware ethernet": board_config['mta_mac'], + "options": { "domain-name": "\"sipcenter.com\"", + "domain-name-servers": "%s" % self.prov_ip, + "routers": "%s" % self.mta_gateway, + "log-servers": "%s" % self.prov_ip, + "host-name": "\"" + board_config['station'] + "\"" + } + } + else: + board_config['extra_provisioning']["mta"] = {} + if 'mta_mac' in board_config: + board_config['extra_provisioning']["cm"] = \ + { "hardware ethernet": board_config['cm_mac'], + "options": { "domain-name-servers": "%s" % self.prov_ip, + "time-offset": "-25200" + } + } + else: + board_config['extra_provisioning']["cm"] = {} - # zero out old config - self.sendline('cp /dev/null %s' % cfg_file) - self.expect(self.prompt) + cfg_file = "/etc/dhcp/dhcpd.conf." + board_config['station'] - # there is probably a better way to construct this file... - for dev, cfg_sec in board_config['extra_provisioning'].iteritems(): - self.sendline("echo 'host %s-%s {' >> %s" % (dev, board_config['station'], cfg_file)) - for key, value in cfg_sec.iteritems(): - if key == "options": - for k2, v2 in value.iteritems(): - self.sendline("echo ' option %s %s;' >> %s" % (k2, v2, cfg_file)) - self.expect(self.prompt) - else: - self.sendline("echo ' %s %s;' >> %s" % (key, value, cfg_file)) + # zero out old config + self.sendline('cp /dev/null %s' % cfg_file) + self.expect(self.prompt) + + # there is probably a better way to construct this file... + for dev, cfg_sec in board_config['extra_provisioning'].iteritems(): + self.sendline("echo 'host %s-%s {' >> %s" % (dev, board_config['station'], cfg_file)) + for key, value in cfg_sec.iteritems(): + if key == "options": + for k2, v2 in value.iteritems(): + self.sendline("echo ' option %s %s;' >> %s" % (k2, v2, cfg_file)) self.expect(self.prompt) - self.sendline("echo '}' >> %s" % cfg_file) + else: + self.sendline("echo ' %s %s;' >> %s" % (key, value, cfg_file)) + self.expect(self.prompt) + self.sendline("echo '}' >> %s" % cfg_file) - # TODO: extra per board dhcp6 provisioning + # TODO: extra per board dhcp6 provisioning # combine all configs into one self.sendline("cat /etc/dhcp/dhcpd.conf.* >> /etc/dhcp/dhcpd.conf") From b735cfe2cac723c0abffc474ef1ab7f0e3512b0d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 14 Jan 2019 20:32:58 -0600 Subject: [PATCH 501/947] bft: remove notion of legacy tftpd server This is not defined in boardfarm config, devices that need a tftp server for flashing are supposed to start them on the correct device Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/bft b/bft index 9264b145..1554a749 100755 --- a/bft +++ b/bft @@ -102,36 +102,9 @@ def main(): print_bold("Connecting to board named = %s, type = %s ..." % (name, config.board['board_type'])) try: - # If we find a dynamic device with the tftpd-server option let's use that for the server - # otherwise we use the device with the 'wan' name... finally if we don't find an ip address let's - # manually figure it out later + # None is legacy for tftp_server from before dynamic devices, leave it for now... tftp_server = None tftp_port = "22" - try: - if 'devices' in config.board: - tftp_dev = [ x for x in config.board['devices'] if 'tftpd-server' in x.get('options', "") ] - if len(tftp_dev) == 1: - if 'ipaddr' in tftp_dev[0]: - tftp_server = tftp_dev[0]['ipaddr'] - else: - tftp_server = tftp_dev[0]['name'] - tftp_port = tftp_dev[0].get('port', '22') - elif len(tftp_dev) > 1: - print("WARN: more than one TFTP server is configured, please pick one") - elif tftp_server is None: - if len(tftp_dev) == 1: - tftp_dev = [ x for x in config.board['devices'] if x['name'] == 'wan' ] - if 'ipaddr' in tftp_dev[0]: - tftp_server = tftp_dev[0]['ipaddr'] - else: - tftp_server = tftp_dev[0]['name'] - tftp_port = tftp_dev[0].get('port', '22') - else: - print("WARN: more than one TFTP server is configured, please pick one") - except: - # if not by ipaddr let's connect to the lan device later and update - pass - uniqid = hashlib.md5("%0.100f" % time.time()).hexdigest()[:15] env = {"wan_iface": "wan%s" % uniqid[:12], From e33d0d320b437d5b0243071907625b80398901ab Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 14 Jan 2019 20:34:16 -0600 Subject: [PATCH 502/947] devices: debian: use ipaddress for wan-static-ip option This is so we can use it for calculations later, but it still converts just fine to a string Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index 12454e46..fc9f4c0c 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -130,7 +130,7 @@ def __init__(self, options = [x.strip() for x in kwargs['options'].split(',')] for opt in options: if opt.startswith('wan-static-ip:'): - self.gw = opt.replace('wan-static-ip:', '') + self.gw = ipaddress.IPv4Address(opt.replace('wan-static-ip:', '')) self.static_ip = True if opt.startswith('wan-static-route:'): self.static_route = opt.replace('wan-static-route:', '').replace('-', ' via ') From 5b36f98bcc455afaf4d63f387760d7c32f0521d9 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 14 Jan 2019 20:35:10 -0600 Subject: [PATCH 503/947] devices: debian: set ip addr for provisioner on eth1 This let's us remove the static ip option in the boardfarm config. We will need to convert this to parse config options from the bf config in each provisioner at some point Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index fc9f4c0c..f4ec8262 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -149,7 +149,7 @@ def __init__(self, if opt.startswith('wan-no-dhcp-sever'): self.wan_dhcp_server = False if opt.startswith('cmts-provisioner'): - pass + self.gw = self.prov_ip try: i = self.expect(["yes/no", "assword:", "Last login"] + self.prompt, timeout=30) From e434064bd46135c6f218159cf5bbcaf7ac4f3477 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 14 Jan 2019 20:40:00 -0600 Subject: [PATCH 504/947] devices: debian: add some TODOs Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index f4ec8262..7ff865ed 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -441,6 +441,7 @@ def configure(self, kind, config=[]): self.expect(self.prompt) def update_cmts_isc_dhcp_config(self, board_config): + # TODO: lots of hard coded values... all need to go away self.sendline('''cat > /etc/dhcp/dhcpd.conf << EOF log-facility local7; option log-servers 192.168.3.1; @@ -493,6 +494,7 @@ def update_cmts_isc_dhcp_config(self, board_config): # The board will ignore this unless the docsis-mac is set to ipv6 # That needs to be done manually as well as copying any CM cfg files # to the provisioner (e.g. still not fully automated) + # TODO: fix hard coded tftp ipv6 addr self.sendline('''cat > /etc/dhcp/dhcpd6.conf << EOF preferred-lifetime 7500; option dhcp-renewal-time 3600; @@ -637,6 +639,8 @@ def provision_board(self, board_config): self.expect(self.prompt) self.sendline('ip route add 192.168.200.0/24 via 192.168.3.222') self.expect(self.prompt) + # TODO: iface_dut needs an ipv6 addr + # sysctl net.ipv6.conf.%s.disable_ipv6=0 % iface_dut self.sendline('ip -6 route add 2001:ed8:77b5:2000::/64 via 2001:ed8:77b5:3::222 dev %s metric 1024' % self.iface_dut) self.expect(self.prompt) self.sendline('ip -6 route add 2001:ed8:77b5:2001::/64 via 2001:ed8:77b5:3::222 dev %s metric 1024' % self.iface_dut) From 131ea0d13542b2b94390f0882258403df2a665de Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 14 Jan 2019 20:41:03 -0600 Subject: [PATCH 505/947] devices: debian: don't assuming things about standalone provisioner - install pkgs required - add NAT rules so devices can use this as a gateway - don't start tftp sever is we are just provisioning Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 7ff865ed..2c1ced11 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -618,6 +618,12 @@ def copy_cmts_provisioning_files(self, board_config): self.copy_file_to_server(ret) def provision_board(self, board_config): + self.install_pkgs() + + # if we are not a full blown wan+provisoner then offer to route traffic + if not self.wan_cmts_provisioner: + self.setup_as_wan_gateway() + ''' Setup DHCP and time server etc for CM provisioning''' self.sendline('/etc/init.d/isc-dhcp-server stop') self.expect(self.prompt) @@ -652,9 +658,9 @@ def provision_board(self, board_config): self.expect('Starting ISC DHCPv6 server.*dhcpd.') self.expect(self.prompt) - # this might be redundant, but since might not have a tftpd server running - # here we have to start one for the CM configs - self.start_tftp_server() + # only start tftp server if we are a full blown wan+provisioner + if self.wan_cmts_provisioner: + self.start_tftp_server() self.copy_cmts_provisioning_files(board_config) From ce83e92a6bfa02e70a7b82f0d295d1effeb36951 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 14 Jan 2019 20:43:36 -0600 Subject: [PATCH 506/947] tests: rootfsboot: config wan w/ seperate provisioner We need to route traffic to CM (and CMTS) either via the provisioner node or possibly directly TODO: add some point we should enforce these attributes for all provisioners, but for now let's give them the option Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/rootfs_boot.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index bda735bf..82a3929d 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -46,6 +46,16 @@ def boot(self, reflash=True): if prov is not None: prov.provision_board(self.config.board) + if hasattr(prov, 'prov_gateway'): + gw = prov.prov_gateway if wan.gw in prov.prov_network else prov.prov_ip + + for nw in [prov.cm_network, prov.mta_network]: + wan.sendline('ip route add %s via %s' % (nw, gw)) + wan.expect(prompt) + + wan.sendline('ip route') + wan.expect(prompt) + if lan: lan.configure(kind="lan_device") From 96ef421a6378947d9fc4af8060d3629ba027698c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 14 Jan 2019 20:47:01 -0600 Subject: [PATCH 507/947] devices: debian; tests: rootfsboot: finalize tftp changes This will pass the tftp device to the provisioner to use instead of itself. Also it will update the ISC dhcp server config to point at separate tftpd servers per CM Some cleanups around legacy wan devices that were assumed to start and run a tftpd server Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 10 +++++++++- tests/rootfs_boot.py | 17 +++++++++++------ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 2c1ced11..95932315 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -37,6 +37,7 @@ class DebianBox(base.BaseDevice): is_bridged = False shared_tftp_server = False wan_dhcp_server = True + tftp_device = None iface_dut = "eth1" @@ -114,6 +115,7 @@ def __init__(self, self.env=env self.lan_network = lan_network self.lan_gateway = lan_gateway + self.tftp_device = self # we need to pick a non-conflicting private network here # also we want it to be consistant and not random for a particular @@ -441,6 +443,8 @@ def configure(self, kind, config=[]): self.expect(self.prompt) def update_cmts_isc_dhcp_config(self, board_config): + tftp_server = self.tftp_device.tftp_server_ip_int() + # TODO: lots of hard coded values... all need to go away self.sendline('''cat > /etc/dhcp/dhcpd.conf << EOF log-facility local7; @@ -576,6 +580,10 @@ def update_cmts_isc_dhcp_config(self, board_config): self.sendline('cp /dev/null %s' % cfg_file) self.expect(self.prompt) + # insert tftp server + board_config['extra_provisioning']['cm']['next-server'] = tftp_server + #board_config['extra_provisioning']['cm']['options']['tftp-server-name'] = '"' + tftp_server + '"' + # there is probably a better way to construct this file... for dev, cfg_sec in board_config['extra_provisioning'].iteritems(): self.sendline("echo 'host %s-%s {' >> %s" % (dev, board_config['station'], cfg_file)) @@ -615,7 +623,7 @@ def copy_cmts_provisioning_files(self, board_config): # TODO: copy to tmpdir at some point d = docsis(cfg) ret = d.encode() - self.copy_file_to_server(ret) + self.tftp_device.copy_file_to_server(ret) def provision_board(self, board_config): self.install_pkgs() diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 82a3929d..c942902f 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -33,17 +33,16 @@ def boot(self, reflash=True): # This still needs some clean up, the fall back is to assuming the # WAN provides the tftpd server, but it's not always the case - if self.config.board.get('wan_device', None) is not None: - wan.start_tftp_server() - tftp_device = wan - wan.configure(kind="wan_device", config=self.config.board) - elif wan: + if wan: wan.configure(kind="wan_device", config=self.config.board) if tftp_device is None: tftp_device = wan + tftp_device.start_tftp_server() + prov = getattr(self.config, 'provisioner', None) if prov is not None: + prov.tftp_device = tftp_device prov.provision_board(self.config.board) if hasattr(prov, 'prov_gateway'): @@ -59,7 +58,13 @@ def boot(self, reflash=True): if lan: lan.configure(kind="lan_device") - tftp_device.start_tftp_server() + # tftp_device is always None, so we can set it from config + board.tftp_server = tftp_device.ipaddr + # then these are just hard coded defaults + board.tftp_port = 22 + # but are user/password used for tftp, they are likely legacy and just need to go away + board.tftp_username = "root" + board.tftp_password = "bigfoot1" board.reset() rootfs = None From 89222de676a68d5dc10ff5fdcd9768d589835628 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 14 Jan 2019 21:15:16 -0600 Subject: [PATCH 508/947] tests: rootfsboot: minor fixup to start dhcp on wan if not started elsewhere Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/rootfs_boot.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index c942902f..e808baf8 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -21,10 +21,13 @@ def boot(self, reflash=True): for tftp_server in tftp_servers: tftp_device = getattr(self.config, tftp_server) + dhcp_started = False + # start dhcp servers for device in self.config.board['devices']: if 'options' in device and 'dhcp-server' in device['options']: getattr(self.config, device['name']).setup_dhcp_server() + dhcp_started = True if not wan and len(tftp_servers) == 0: msg = 'No WAN Device or tftp_server defined, skipping flash.' @@ -38,6 +41,9 @@ def boot(self, reflash=True): if tftp_device is None: tftp_device = wan + if wan and not dhcp_started: + wan.setup_dhcp_server() + tftp_device.start_tftp_server() prov = getattr(self.config, 'provisioner', None) From ff57bb147b3348b284728e470ab0066275370cae Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 15 Jan 2019 13:35:52 -0600 Subject: [PATCH 509/947] tests: rootfs_boot: remove old debug messages Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/rootfs_boot.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index e808baf8..f76e2319 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -184,11 +184,6 @@ def boot(self, reflash=True): self.logged['boot_time'] = end_seconds_up - print "#####" - print board.routing - print lan - print self.config.setup_device_networking - print "#####" if board.routing and lan and self.config.setup_device_networking: if wan is not None: lan.start_lan_client(wan_gw=wan.gw) From 11ae2b4a6e831d514d0bc6259e457050faf3f770 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 15 Jan 2019 16:11:11 -0600 Subject: [PATCH 510/947] devices: debian: handle concurrent usage of starting configuring dhcp server Use mv instead of >> to final file, use flock for starting/restarting dhcp server, and a few other minor fixes Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 95932315..ce809ac4 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -446,7 +446,7 @@ def update_cmts_isc_dhcp_config(self, board_config): tftp_server = self.tftp_device.tftp_server_ip_int() # TODO: lots of hard coded values... all need to go away - self.sendline('''cat > /etc/dhcp/dhcpd.conf << EOF + self.sendline('''cat > /etc/dhcp/dhcpd.conf-''' + board_config['station'] + '''.master << EOF log-facility local7; option log-servers 192.168.3.1; option time-servers 192.168.3.1; @@ -499,7 +499,7 @@ def update_cmts_isc_dhcp_config(self, board_config): # That needs to be done manually as well as copying any CM cfg files # to the provisioner (e.g. still not fully automated) # TODO: fix hard coded tftp ipv6 addr - self.sendline('''cat > /etc/dhcp/dhcpd6.conf << EOF + self.sendline('''cat > /etc/dhcp/dhcpd6.conf-''' + board_config['station'] + '''.master << EOF preferred-lifetime 7500; option dhcp-renewal-time 3600; option dhcp-rebinding-time 5400; @@ -574,7 +574,7 @@ def update_cmts_isc_dhcp_config(self, board_config): else: board_config['extra_provisioning']["cm"] = {} - cfg_file = "/etc/dhcp/dhcpd.conf." + board_config['station'] + cfg_file = "/etc/dhcp/dhcpd.conf-" + board_config['station'] # zero out old config self.sendline('cp /dev/null %s' % cfg_file) @@ -599,8 +599,13 @@ def update_cmts_isc_dhcp_config(self, board_config): # TODO: extra per board dhcp6 provisioning + self.sendline('mv ' + cfg_file + ' /etc/dhcp/dhcpd.conf.' + board_config['station']) + self.expect(self.prompt) + # combine all configs into one - self.sendline("cat /etc/dhcp/dhcpd.conf.* >> /etc/dhcp/dhcpd.conf") + self.sendline("cat /etc/dhcp/dhcpd.conf.* >> /etc/dhcp/dhcpd.conf-" + board_config['station'] + ".master") + self.expect(self.prompt) + self.sendline("mv /etc/dhcp/dhcpd.conf-" + board_config['station'] + ".master /etc/dhcp/dhcpd.conf") self.expect(self.prompt) def copy_cmts_provisioning_files(self, board_config): @@ -633,8 +638,6 @@ def provision_board(self, board_config): self.setup_as_wan_gateway() ''' Setup DHCP and time server etc for CM provisioning''' - self.sendline('/etc/init.d/isc-dhcp-server stop') - self.expect(self.prompt) self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) self.expect(self.prompt) self.sendline('sed s/INTERFACESv4=.*/INTERFACESv4=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) @@ -660,11 +663,15 @@ def provision_board(self, board_config): self.sendline('ip -6 route add 2001:ed8:77b5:2001::/64 via 2001:ed8:77b5:3::222 dev %s metric 1024' % self.iface_dut) self.expect(self.prompt) self.update_cmts_isc_dhcp_config(board_config) - self.sendline('/etc/init.d/isc-dhcp-server start') + self.sendline('cat /etc/dhcp/dhcpd.conf') + self.expect(self.prompt) + self.sendline('(flock -x 9; /etc/init.d/isc-dhcp-server restart; flock -u 9) 9>/etc/init.d/isc-dhcp-server.lock') # We expect both, so we need debian 9 or greater for this device self.expect('Starting ISC DHCPv4 server.*dhcpd.') self.expect('Starting ISC DHCPv6 server.*dhcpd.') self.expect(self.prompt) + self.sendline('rm /etc/init.d/isc-dhcp-server.lock') + self.expect(self.prompt) # only start tftp server if we are a full blown wan+provisioner if self.wan_cmts_provisioner: @@ -684,9 +691,11 @@ def reprovision_board(self, board_config): '''New DHCP, cfg files etc for board after it's been provisioned once''' self.copy_cmts_provisioning_files(board_config) self.update_cmts_isc_dhcp_config(board_config) - self.sendline('/etc/init.d/isc-dhcp-server restart') + self.sendline('(flock -x 9; /etc/init.d/isc-dhcp-server restart; flock -u 9) 9>/etc/init.d/isc-dhcp-server.lock') self.expect(['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*']) self.expect(self.prompt) + self.sendline('rm /etc/init.d/isc-dhcp-server.lock') + self.expect(self.prompt) def setup_dhcp_server(self): # configure DHCP server From 0474231ee1e4a6e9273f47b9a12c0bf5998b01f7 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 17 Jan 2019 14:30:35 -0600 Subject: [PATCH 511/947] bft: fix bug if tests don't run Traceback (most recent call last): File "./bft", line 463, in <module> main() File "./bft", line 451, in main testtime = t.stop_time - t.start_time AttributeError: 'FirmwareUpgradeTemplate' object has no attribute 'stop_time' Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bft b/bft index 1554a749..fd991909 100755 --- a/bft +++ b/bft @@ -446,7 +446,7 @@ def main(): print("Unable to log results to mysql database.") for t in tests_to_run: - if t.log_to_file is not None: + if t.log_to_file is not None and hasattr(t, 'stop_time'): filename = type(t).__name__ + '-' + time.strftime("%Y%m%d-%H%M%S") + ".txt" testtime = t.stop_time - t.start_time with open(os.path.join(config.output_dir, filename), 'w') as log: From fbd08e413a00bd09bc3863f9ff8d9dbdeb9ac906 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 18 Jan 2019 13:56:16 -0600 Subject: [PATCH 512/947] devices: debian: don't too aggresively match extra text This can fail when the first match pulls the second match from the log Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index ce809ac4..714a04b1 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -667,8 +667,8 @@ def provision_board(self, board_config): self.expect(self.prompt) self.sendline('(flock -x 9; /etc/init.d/isc-dhcp-server restart; flock -u 9) 9>/etc/init.d/isc-dhcp-server.lock') # We expect both, so we need debian 9 or greater for this device - self.expect('Starting ISC DHCPv4 server.*dhcpd.') - self.expect('Starting ISC DHCPv6 server.*dhcpd.') + self.expect('Starting ISC DHCPv4 server: dhcpd.\r\n') + self.expect('Starting ISC DHCPv6 server: dhcpd6.\r\n') self.expect(self.prompt) self.sendline('rm /etc/init.d/isc-dhcp-server.lock') self.expect(self.prompt) From 6148978dff8be206f82066b2e3aa86506dbadbd5 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 22 Jan 2019 15:48:41 -0600 Subject: [PATCH 513/947] tests: bittorrent: use private nets as bad nets Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/bittorrent.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tests/bittorrent.py b/tests/bittorrent.py index 6e731597..f9831450 100644 --- a/tests/bittorrent.py +++ b/tests/bittorrent.py @@ -25,15 +25,12 @@ class BitTorrentBasic(rootfs_boot.RootFSBootTest): all_ips = [] all_conns = [] - bad_nets = list(ipaddress.ip_network(u"192.168.0.0/24")) + \ - list(ipaddress.ip_network(u"192.168.1.0/24")) + \ - list(ipaddress.ip_network(u"10.200.150.0/24")) def startSingleUDP(self, mintime=1, maxtime=60): while True: random_ip = fake_generator.ipv4() random_port = randint(1024, 65535) - if ipaddress.ip_address(random_ip.decode()) not in self.bad_nets: + if not ipaddress.ip_address(random_ip.decode()).is_private: if (ipaddress.ip_address(random_ip.decode()), random_port) not in self.all_ips: break else: From 8ffddcbfac303aece897caf60f96e9fd1c0a1518 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 22 Jan 2019 15:16:17 -0600 Subject: [PATCH 514/947] devices: owrt: add notion of pp object One some devices this may be a different console, so let's provide for that possibility Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 3 +++ tests/bittorrent.py | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 0918ca9f..f8852fd5 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -536,6 +536,9 @@ def get_user_id(self, user_id): def enable_mgmt_gui(self): pass + def get_pp_dev(self): + return self + if __name__ == '__main__': # Example use board = OpenWrtRouter('ap148-beeliner', diff --git a/tests/bittorrent.py b/tests/bittorrent.py index f9831450..addfde19 100644 --- a/tests/bittorrent.py +++ b/tests/bittorrent.py @@ -148,8 +148,8 @@ def runTest(self): lan.sendline('fg') lan.expect(prompt, timeout=time+10) - board.sendline('cat /proc/net/nf_conntrack | grep dst=%s.*dport=%s' % (ip, port)) - board.expect(prompt) + board.get_pp_dev().sendline('cat /proc/net/nf_conntrack | grep dst=%s.*dport=%s' % (ip, port)) + board.get_pp_dev().expect(prompt) self.recover() @@ -172,8 +172,8 @@ def runTest(self): lan.sendline('fg') lan.expect(prompt, timeout=5) - board.sendline('cat /proc/net/nf_conntrack | grep dst=%s.*dport=%s' % (ip, port)) - board.expect(prompt) + board.get_pp_dev().sendline('cat /proc/net/nf_conntrack | grep dst=%s.*dport=%s' % (ip, port)) + board.get_pp_dev().expect(prompt) self.recover() From 17ed0da66f8847f4d4bc3c7e6fa5713ea94b870c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 22 Jan 2019 16:14:44 -0600 Subject: [PATCH 515/947] devices: owrt: add helper to get nf conntrack count from pp Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 9 +++++++++ tests/bittorrent.py | 9 ++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index f8852fd5..5a70d8f8 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -539,6 +539,15 @@ def enable_mgmt_gui(self): def get_pp_dev(self): return self + def get_nf_conntrack_conn_count(self): + pp = self.get_pp_dev() + + pp.sendline('cat /proc/sys/net/netfilter/nf_conntrack_count') + pp.expect_exact('cat /proc/sys/net/netfilter/nf_conntrack_count') + pp.expect(pp.prompt) + + return pp.before + if __name__ == '__main__': # Example use board = OpenWrtRouter('ap148-beeliner', diff --git a/tests/bittorrent.py b/tests/bittorrent.py index addfde19..67ddbe3d 100644 --- a/tests/bittorrent.py +++ b/tests/bittorrent.py @@ -67,9 +67,8 @@ def runTest(self): # TODO: query interfaces but this is OK for now for i in range(1000): - # keep long running test alive - board.sendline() - board.expect(prompt) + board.get_nf_conntrack_conn_count() + board.touch() print ("Starting connection %s" % i) sz, rate, ip, port = self.startSingleUDP(maxtime=single_max) print ("started UDP to %s:%s sz = %s, rate = %sk" % (ip, port, sz, rate)) @@ -163,6 +162,8 @@ def runTest(self): maxtime=5 + board.get_nf_conntrack_conn_count() + for i in range(10000): sz, rate, ip, port = self.startSingleUDP(maxtime=maxtime) print ("started UDP to %s:%s sz = %s, rate = %sk" % (ip, port, sz, rate)) @@ -175,6 +176,8 @@ def runTest(self): board.get_pp_dev().sendline('cat /proc/net/nf_conntrack | grep dst=%s.*dport=%s' % (ip, port)) board.get_pp_dev().expect(prompt) + board.get_nf_conntrack_conn_count() + self.recover() class BitTorrentClient(rootfs_boot.RootFSBootTest): From 70b89e9765d9409b5942966c3c4364a54a3286a5 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 22 Jan 2019 16:15:16 -0600 Subject: [PATCH 516/947] tests: bittorrent: properly install tools for test Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/bittorrent.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/bittorrent.py b/tests/bittorrent.py index 67ddbe3d..5b63f865 100644 --- a/tests/bittorrent.py +++ b/tests/bittorrent.py @@ -58,9 +58,9 @@ def startSingleUDP(self, mintime=1, maxtime=60): return args def runTest(self): - #for d in [wan, lan]: - #d.sendline('apt-get update && apt-get -o Dpkg::Options::="--force-confnew" -y install socat pv') - #d.expect(prompt) + for d in [wan, lan]: + d.sendline('apt-get update && apt-get -o Dpkg::Options::="--force-confnew" -y install socat pv') + d.expect(prompt) max_time = 0 single_max = 45 From a98a1f0aa7b1eb87a70efa0a8d74eb68a0967a00 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 22 Jan 2019 16:16:52 -0600 Subject: [PATCH 517/947] tests: linux_boot: touch boards between tests for keepalive This will keep serial connections open that are set to timeout. This could effect tests that assuming things about previous tests but mostly should be harmless. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/linux_boot.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/linux_boot.py b/tests/linux_boot.py index 702ddc43..0812efbc 100644 --- a/tests/linux_boot.py +++ b/tests/linux_boot.py @@ -80,6 +80,7 @@ def testWrapper(self): while retry >= 0: try: self.runTest() + board.touch() retry = -1 except Exception as e: retry = retry - 1 From 3174189f7a059504701b5968e097b5b36087c4ae Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 22 Jan 2019 16:18:23 -0600 Subject: [PATCH 518/947] tests: concurrent_iperf: add tests to determine max connections This test keeps trying for the max number of connections and will report that back Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/concurrent_iperf.py | 66 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 tests/concurrent_iperf.py diff --git a/tests/concurrent_iperf.py b/tests/concurrent_iperf.py new file mode 100644 index 00000000..9f15a9e8 --- /dev/null +++ b/tests/concurrent_iperf.py @@ -0,0 +1,66 @@ +import rootfs_boot +import pexpect + +from common import print_bold +from datetime import datetime + +from devices import board, prompt, wan, lan + +class ConcurrentIperf(rootfs_boot.RootFSBootTest): + '''Determine's max number of iperf connections''' + def runTest(self): + wan_ip = wan.get_interface_ipaddr(wan.iface_dut) + wan.sendline('iperf -s -l 1M -w 1M') + wan.expect('Server listening on ') + + time = 10 + cmd = "iperf -R -c %s -P %s -t 10 -N -w 1M -l 1M | grep SUM" + # prime the pipes... + lan.sendline(cmd % (wan_ip, 4)) + lan.expect(prompt) + + for con_conn in range(32, 513, 16): + try: + tstart = datetime.now() + lan.sendline(cmd % (wan_ip, con_conn)) + failed_cons = 0 + while (datetime.now() - tstart).seconds < (time * 2): + timeout=(time*2)-(datetime.now() - tstart).seconds + if 0 == lan.expect(['write failed: Connection reset by peer'] + prompt, timeout=timeout): + failed_cons += 1 + else: + break + print_bold("For iperf with %s connections, %s failed...." % (con_conn, failed_cons)) + lan.expect('.*') + wan.expect('.*') + + board.touch() + except: + self.result_message = "iPerf Concurrent Connections failed entirely at %s" % con_conn + break + + print self.result_message + + self.recover() + + def recover(self): + for d in [wan, lan]: + d.sendcontrol('z') + if 0 == d.expect([pexpect.TIMEOUT] + prompt): + d.sendcontrol('c') + d.sendcontrol('c') + d.sendcontrol('c') + d.sendcontrol('c') + d.sendcontrol('c') + d.sendline('') + d.sendline('echo FOOBAR') + d.expect_exact('echo FOOBAR') + d.expect_exact('FOOBAR') + d.expect(prompt) + else: + d.sendline("kill %1") + d.expect(prompt) + + d.sendline('pkill -9 -f iperf') + d.expect_exact('pkill -9 -f iperf') + d.expect(prompt) From f53eec9eeefd767f94f7bcb0e71627db82f127a0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 25 Jan 2019 13:35:09 -0600 Subject: [PATCH 519/947] devices: set name after pexpect.__init__ This appears to set name as well Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index 714a04b1..0b5be758 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -75,7 +75,6 @@ def __init__(self, lan_network = kwargs.pop('lan_network', ipaddress.IPv4Network(u"192.168.1.0/24")) lan_gateway = kwargs.pop('lan_gateway', ipaddress.IPv4Address(u"192.168.1.1")) - self.name = name self.http_proxy = kwargs.pop('http_proxy', None) if ipaddr is not None: @@ -104,6 +103,7 @@ def __init__(self, pexpect.spawn.__init__(self, command="bash", args=['-c', cmd], env=env) self.ipaddr = None + self.name = name self.color = color self.output = output self.username = username From 8f1a428e94bf80ab6647460f05254baa11bfe7a8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 25 Jan 2019 13:35:55 -0600 Subject: [PATCH 520/947] devices: debian: don't turn off eth1 when standalone prov We will be setting special routes to WAN iface so we don't want to take the interface down and have the routes go away Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index 0b5be758..88e7df69 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -38,6 +38,7 @@ class DebianBox(base.BaseDevice): shared_tftp_server = False wan_dhcp_server = True tftp_device = None + standalone_provisioner = False iface_dut = "eth1" @@ -152,6 +153,7 @@ def __init__(self, self.wan_dhcp_server = False if opt.startswith('cmts-provisioner'): self.gw = self.prov_ip + self.standalone_provisioner = True try: i = self.expect(["yes/no", "assword:", "Last login"] + self.prompt, timeout=30) @@ -253,7 +255,7 @@ def install_pkgs(self): if self.pkgs_installed == True: return - if not self.wan_no_eth0 and not self.wan_dhcp and not self.install_pkgs_after_dhcp: + if not self.wan_no_eth0 and not self.wan_dhcp and not self.install_pkgs_after_dhcp and not self.standalone_provisioner: self.sendline('ifconfig %s down' % self.iface_dut) self.expect(self.prompt) From 81ec95fdbd39b17b60f12c031573593bb166a5eb Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 25 Jan 2019 16:49:38 -0600 Subject: [PATCH 521/947] devices: common: add scp from to download files from device Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/common.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/devices/common.py b/devices/common.py index c7892910..5a01cc45 100644 --- a/devices/common.py +++ b/devices/common.py @@ -26,7 +26,7 @@ def get_file_magic(fname, num_bytes=4): f.close() return binascii.hexlify(data) -def copy_file_to_server(cmd, password): +def copy_file_to_server(cmd, password, target="/tftpboot/"): '''Requires a command like ssh/scp to transfer a file, and a password. Run the command and enter the password if asked for one.''' for attempt in range(5): @@ -35,14 +35,14 @@ def copy_file_to_server(cmd, password): p = pexpect.spawn(command='/bin/bash', args=['-c', cmd], timeout=240) p.logfile_read = sys.stdout - i = p.expect(["yes/no", "password:", "/tftpboot/.*"]) + i = p.expect(["yes/no", "password:", "%s.*" % target]) if i == 0: p.sendline("yes") - i = p.expect(["not used", "password:", "/tftpboot/.*"], timeout=45) + i = p.expect(["not used", "password:", "%s.*" % target], timeout=45) if i == 1: p.sendline("%s" % password) - p.expect("/tftpboot/.*", timeout=120) + p.expect("%s.*" % target, timeout=120) fname = p.match.group(0).strip() print_bold("\nfile: %s" % fname) @@ -77,5 +77,9 @@ def scp_to_tftp_server(fname, server, username, password, port): cmd = "cat %s | %s ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p %s -x %s@%s \"mkdir -p /tftpboot/tmp; tmpfile=\`mktemp /tftpboot/tmp/XXXXX\`; cat - > \$tmpfile; chmod a+rw \$tmpfile; echo \$tmpfile\"" % (fname, pipe, port, username, server) return copy_file_to_server(cmd, password) +def scp_from(fname, server, username, password, port, dest): + cmd = "scp -P %s -r %s@%s:%s %s; echo DONE" % (port, username, server, fname, dest) + copy_file_to_server(cmd, password, target='DONE') + def print_bold(msg): termcolor.cprint(msg, None, attrs=['bold']) From de8f44e528d1835e77dda290bd63cf81da4354ed Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 25 Jan 2019 16:50:08 -0600 Subject: [PATCH 522/947] tests: lib: installers: add jmeter installer Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/installers.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 6ccfe94c..06c5c528 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -331,3 +331,21 @@ def install_iw(device): device.expect(device.prompt) device.sendline('apt-get install iw -y') device.expect(device.prompt, timeout=90) + +def install_jmeter(device): + '''Install jmeter if not present.''' + device.sendline('export PATH=$PATH:/opt/apache-jmeter-5.0/bin/') + device.expect(device.prompt) + device.sendline('jmeter --version') + try: + device.expect_exact('Copyright (c) 1999-2018 The Apache Software Foundation', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install openjdk-8-jre-headless -y') + device.expect(device.prompt, timeout=90) + device.sendline('wget https://www-eu.apache.org/dist//jmeter/binaries/apache-jmeter-5.0.tgz') + device.expect(device.prompt, timeout=90) + device.sendline('tar -C /opt -zxf apache-jmeter-5.0.tgz') + device.expect(device.prompt, timeout=120) + device.sendline('rm apache-jmeter-5.0.tgz') From e8afe77bfcd69e26dcf7d434305008fbbbd866e4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 25 Jan 2019 16:50:30 -0600 Subject: [PATCH 523/947] tests: jmeter: add simple jmeter test to download jmx, run, and copy html results to results dir Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/jmeter.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 tests/jmeter.py diff --git a/tests/jmeter.py b/tests/jmeter.py new file mode 100644 index 00000000..139e0ec1 --- /dev/null +++ b/tests/jmeter.py @@ -0,0 +1,39 @@ +import os + +import rootfs_boot +from lib.installers import install_jmeter + +from devices import lan, prompt +from devices.common import scp_from + +class JMeter(rootfs_boot.RootFSBootTest): + + jmx = "https://jmeter.apache.org/demos/ForEachTest2.jmx" + + def runTest(self): + install_jmeter(lan) + + if 'http' in self.jmx: + lan.sendline('curl %s > test.jmx') + lan.expect(prompt) + else: + raise Exception("Don't know how to handle downloading %s") + + lan.sendline('rm -rf output *.log') + lan.expect(prompt) + lan.sendline('mkdir -p output') + lan.expect(prompt) + lan.sendline('jmeter -n -t AssertionTestPlan.jmx -l foo.log -e -o output') + lan.expect(prompt) + + print "Copying files from lan to dir = %s" % self.config.output_dir + lan.sendline('readlink -f output/') + lan.expect('readlink -f output/') + lan.expect(prompt) + fname=lan.before.strip() + scp_from(fname, lan.ipaddr, lan.username, lan.password, lan.port, os.path.join(self.config.output_dir, 'jmeter')) + + #lan.sendline('rm -rf output') + #lan.expect(prompt) + lan.sendline('rm test.jmx') + lan.expect(prompt) From bb0f1b0d1711c721becedfec023ee807697964db Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Sun, 27 Jan 2019 10:35:09 -0600 Subject: [PATCH 524/947] tests: jmeter: fix url issues for example jmx file Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/jmeter.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/jmeter.py b/tests/jmeter.py index 139e0ec1..ebae629c 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -14,7 +14,7 @@ def runTest(self): install_jmeter(lan) if 'http' in self.jmx: - lan.sendline('curl %s > test.jmx') + lan.sendline('curl %s > test.jmx' % self.jmx) lan.expect(prompt) else: raise Exception("Don't know how to handle downloading %s") @@ -23,7 +23,8 @@ def runTest(self): lan.expect(prompt) lan.sendline('mkdir -p output') lan.expect(prompt) - lan.sendline('jmeter -n -t AssertionTestPlan.jmx -l foo.log -e -o output') + lan.sendline('jmeter -n -t test.jmx -l foo.log -e -o output') + lan.expect_exact('jmeter -n -t test.jmx -l foo.log -e -o output') lan.expect(prompt) print "Copying files from lan to dir = %s" % self.config.output_dir From 3a77c71159fc789305d51c270ea15a08cb368e99 Mon Sep 17 00:00:00 2001 From: "prekumar.contractor" <prekumar.contractor@libertyglobal.com> Date: Mon, 28 Jan 2019 16:18:00 +0100 Subject: [PATCH 525/947] test/lib/installers: added new function to install IRC (Internet relay chat)server Signed-off-by: Prem Kumar K N <prekumar.contractor@libertyglobal.com> --- tests/lib/installers.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 06c5c528..69760df9 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -45,7 +45,7 @@ def install_iperf3(device): device.expect(device.prompt) device.sendline('apt-get -o DPkg::Options::="--force-confnew" -y --force-yes install iperf3') device.expect(device.prompt, timeout=60) - + def install_tcpick(device): '''Install tcpick if not present.''' device.sendline('\ntcpick --version') @@ -349,3 +349,15 @@ def install_jmeter(device): device.sendline('tar -C /opt -zxf apache-jmeter-5.0.tgz') device.expect(device.prompt, timeout=120) device.sendline('rm apache-jmeter-5.0.tgz') + +def install_IRCserver(device): + '''Install irc server if not present.''' + device.sendline('inspircd --version') + try: + device.expect('InspIRCd-', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install inspircd -y') + device.expect(['Setting up inspircd'], timeout=90) + device.expect(device.prompt) From 7850361b49d0106679bd27da84fb40171c5d8fc8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 08:47:38 -0600 Subject: [PATCH 526/947] devices: owrt: set default tmp dir for all boards Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 5a70d8f8..04960ea9 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -52,6 +52,8 @@ class OpenWrtRouter(base.BaseDevice): lan_network = ipaddress.IPv4Network(u"192.168.1.0/24") lan_gateway = ipaddress.IPv4Address(u"192.168.1.1") + tmpdir = "/tmp" + def __init__(self, model, conn_cmd, From 5f5e34ca49dbfb1f496f5fe1a6e1620b5a5f9c57 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 08:51:03 -0600 Subject: [PATCH 527/947] deviecs: owrt: try harder to get nfconntrack count Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 04960ea9..2092e0f5 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -544,11 +544,18 @@ def get_pp_dev(self): def get_nf_conntrack_conn_count(self): pp = self.get_pp_dev() - pp.sendline('cat /proc/sys/net/netfilter/nf_conntrack_count') - pp.expect_exact('cat /proc/sys/net/netfilter/nf_conntrack_count') - pp.expect(pp.prompt) + for not_used in range(5): + try: + pp.sendline('cat /proc/sys/net/netfilter/nf_conntrack_count') + pp.expect_exact('cat /proc/sys/net/netfilter/nf_conntrack_count', timeout=2) + pp.expect(pp.prompt) + ret = pp.before.strip() - return pp.before + return ret + except: + continue + else: + raise Exception("Unable to extract nf_conntrack_count!") if __name__ == '__main__': # Example use From 0db3ea1dbe7b9d004433756e62e6af2921f6257b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 08:52:53 -0600 Subject: [PATCH 528/947] devices: owrt: add basic framework for stats tracking This is just mpstat cpu usage.. but more are coming (memory, network, perf, etc) Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 41 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 2092e0f5..a8ee2fd2 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -557,6 +557,47 @@ def get_nf_conntrack_conn_count(self): else: raise Exception("Unable to extract nf_conntrack_count!") + def collect_stats(self, stats=[]): + pp = self.get_pp_dev() + self.stats = [] + + for stat in stats: + if 'mpstat' in stat: + pp.sendline("kill `ps | grep mpstat | grep -v grep | awk '{print $1}'`") + pp.expect(pp.prompt) + pp.sendline('mpstat -P ALL 5 > %s/mpstat &' % self.tmpdir) + + self.stats.append(stat) + + def parse_stats(self, stats=[], dict_to_log={}): + pp = self.get_pp_dev() + + idx = 0 + for not_used in range(len(self.stats)): + pp.sendline('fg') + pp.expect(self.stats) + if 'mpstat' in pp.match.group(): + pp.sendcontrol('c') + pp.expect(pp.prompt) + pp.sendline('cat %s/mpstat' % self.tmpdir) + pp.expect_exact('cat %s/mpstat' % self.tmpdir) + + idle_vals = [] + while 0 == pp.expect(['all(\s+\d+\.\d{2}){9}\r\n'] + pp.prompt): + idle_vals.append(float(pp.match.group().strip().split(' ')[-1])) + + avg_cpu_usage = 100 - sum(idle_vals) / len(idle_vals) + dict_to_log['mpstat'] = avg_cpu_usage + + pp.sendline('rm %s/mpstat' % self.tmpdir) + pp.expect(pp.prompt) + + idx += 1 + + # TODO: verify we got 'em all + if idx != len(self.stats): + print "WARN: did not match all stats collected!" + if __name__ == '__main__': # Example use board = OpenWrtRouter('ap148-beeliner', From 7d239d27aae87aa108300f3b0d93dd1b2a54caf6 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 08:54:03 -0600 Subject: [PATCH 529/947] tests: bittorrent: use sep var for tracking conns Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/bittorrent.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/bittorrent.py b/tests/bittorrent.py index 5b63f865..cc563471 100644 --- a/tests/bittorrent.py +++ b/tests/bittorrent.py @@ -26,6 +26,8 @@ class BitTorrentBasic(rootfs_boot.RootFSBootTest): all_ips = [] all_conns = [] + conns = 100 + def startSingleUDP(self, mintime=1, maxtime=60): while True: random_ip = fake_generator.ipv4() @@ -66,7 +68,7 @@ def runTest(self): single_max = 45 # TODO: query interfaces but this is OK for now - for i in range(1000): + for i in range(self.conns): board.get_nf_conntrack_conn_count() board.touch() print ("Starting connection %s" % i) From 77770d76c4375870e3ed73295114447e88201d75 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 08:54:28 -0600 Subject: [PATCH 530/947] tests: bittorrent: fix issue where there are no ips to cleanup Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/bittorrent.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/bittorrent.py b/tests/bittorrent.py index cc563471..67ceabe6 100644 --- a/tests/bittorrent.py +++ b/tests/bittorrent.py @@ -106,9 +106,11 @@ def check_and_clean_ips(self): lan.expect(prompt) seen_ips = re.findall('UDP4-SENDTO:([^:]*):', lan.before) - for done_ip in set(zip(*self.all_ips)[0]) - set(seen_ips): - self.cleanup_ip(done_ip) - self.all_ips = [e for e in self.all_ips if e[0] != done_ip ] + if len(self.all_ips) > 0: + ips_to_cleanup = set(zip(*self.all_ips)[0]) - set(seen_ips) + for done_ip in ips_to_cleanup: + self.cleanup_ip(done_ip) + self.all_ips = [e for e in self.all_ips if e[0] != done_ip ] def recover(self): wan.sendcontrol('c') From d2d8ed7cd935fcfa8a5eb6d3585043f73120984d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 08:55:14 -0600 Subject: [PATCH 531/947] tests: bittorrent: add basic stats tracking to bt test Also output conntrack progression during the test, and touch the board to keep it's connections Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/bittorrent.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tests/bittorrent.py b/tests/bittorrent.py index 67ceabe6..b81dd0ae 100644 --- a/tests/bittorrent.py +++ b/tests/bittorrent.py @@ -67,6 +67,8 @@ def runTest(self): max_time = 0 single_max = 45 + board.collect_stats(stats=['mpstat']) + # TODO: query interfaces but this is OK for now for i in range(self.conns): board.get_nf_conntrack_conn_count() @@ -84,10 +86,12 @@ def runTest(self): while time.time() - start < max_time + 5: lan.sendline('wait') lan.expect_exact('wait') - if 0 != lan.expect([pexpect.TIMEOUT] + prompt, timeout=max_time + 5): - lan.sendcontrol('c') - lan.expect(prompt) - self.check_and_clean_ips() + lan.expect([pexpect.TIMEOUT] + prompt, timeout=5) + lan.sendcontrol('c') + lan.expect(prompt) + self.check_and_clean_ips() + board.get_nf_conntrack_conn_count() + board.touch() self.recover() @@ -135,6 +139,11 @@ def recover(self): for ip, port in self.all_ips: self.cleanup_ip(ip) + # this needs to be here because we need to make sure mpstat is cleaned up + board.parse_stats(stats=['mpstat'], dict_to_log=self.logged) + print ("mpstat cpu usage = %s" % self.logged['mpstat']) + self.result_message = "BitTorrent test with %s connections, cpu usage = %s" % (self.conns, self.logged['mpstat']) + class BitTorrentSingle(BitTorrentBasic): '''Single UDP/Bittorrent flow''' From ed3867587c79c09ac6e8104591c6082a1669e99b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 09:30:41 -0600 Subject: [PATCH 532/947] tests: iperf3: record cpu usage during test Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/iperf3_test.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/iperf3_test.py b/tests/iperf3_test.py index c3922447..6375751a 100644 --- a/tests/iperf3_test.py +++ b/tests/iperf3_test.py @@ -32,6 +32,8 @@ def runTest(self): wan.expect('-----------------------------------------------------------') + board.collect_stats(stats=['mpstat']) + self.client.sendline('iperf3 %s -c %s -P5 -t %s -i 0 -p %s' % (self.opts, wan.gw, self.time, self.server_port)) self.client.expect(prompt, timeout=self.time+10) @@ -55,7 +57,6 @@ def runTest(self): else: raise Exception("Unknown rate in recv results") - self.result_message = "Sender rate = %s MBits/sec, Receiver rate = %s Mbits/sec\n" % (s_rate, r_rate) self.logged['s_rate'] = s_rate self.logged['r_rate'] = r_rate @@ -67,6 +68,11 @@ def recovery(self): d.sendcontrol('c') d.expect(prompt) + board.parse_stats(stats=['mpstat'], dict_to_log=self.logged) + + args = (self.logged['s_rate'], self.logged['r_rate'], self.logged['mpstat']) + self.result_message = "Sender rate = %s MBits/sec, Receiver rate = %s Mbits/sec, cpu = %.2f\n" % args + class iPerf3RTest(iPerf3Test): '''iPerf3 reverse generic performance tests''' From 0053110dfd9a0338f0ae545c49251d7c0e3defb4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 09:48:16 -0600 Subject: [PATCH 533/947] tests: concurrentiperf: record cpu usage during test Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/concurrent_iperf.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/concurrent_iperf.py b/tests/concurrent_iperf.py index 9f15a9e8..b0b66875 100644 --- a/tests/concurrent_iperf.py +++ b/tests/concurrent_iperf.py @@ -13,6 +13,8 @@ def runTest(self): wan.sendline('iperf -s -l 1M -w 1M') wan.expect('Server listening on ') + board.collect_stats(stats=['mpstat']) + time = 10 cmd = "iperf -R -c %s -P %s -t 10 -N -w 1M -l 1M | grep SUM" # prime the pipes... @@ -64,3 +66,7 @@ def recover(self): d.sendline('pkill -9 -f iperf') d.expect_exact('pkill -9 -f iperf') d.expect(prompt) + + board.parse_stats(stats=['mpstat'], dict_to_log=self.logged) + + self.result_message += ", cpu usage = %.2f" % self.logged['mpstat'] From edb652365bf51b0cf553424530927e9f486b50f4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 09:52:06 -0600 Subject: [PATCH 534/947] tests: concurrent_iperf: print conntrack count while running Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/concurrent_iperf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/concurrent_iperf.py b/tests/concurrent_iperf.py index b0b66875..d389ec58 100644 --- a/tests/concurrent_iperf.py +++ b/tests/concurrent_iperf.py @@ -27,6 +27,7 @@ def runTest(self): lan.sendline(cmd % (wan_ip, con_conn)) failed_cons = 0 while (datetime.now() - tstart).seconds < (time * 2): + board.get_nf_conntrack_conn_count() timeout=(time*2)-(datetime.now() - tstart).seconds if 0 == lan.expect(['write failed: Connection reset by peer'] + prompt, timeout=timeout): failed_cons += 1 From 6543f1c729508c91c444582fc12cafbc02e7a5d0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 10:59:00 -0600 Subject: [PATCH 535/947] tests: hping3: add simple udp based firewall test Also tracks number of connections in firewall as well as cpu usage Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/hping3.py | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 tests/hping3.py diff --git a/tests/hping3.py b/tests/hping3.py new file mode 100644 index 00000000..fb328844 --- /dev/null +++ b/tests/hping3.py @@ -0,0 +1,49 @@ +import rootfs_boot +import pexpect + +from lib.installers import install_hping3 + +from devices import board, prompt, wan, lan + +class hping3_basic_udp(rootfs_boot.RootFSBootTest): + '''Floods hping3, creating lots of firewall entries in router''' + + conn_rate = "u2000" + + def runTest(self): + install_hping3(lan) + wan_ip = wan.get_interface_ipaddr(wan.iface_dut) + wan.sendline('nc -lvu %s 565' % wan_ip) + wan.expect_exact('nc -lvu %s 565' % wan_ip) + + board.collect_stats(stats=['mpstat']) + + # dest ip and port are fixed, random src port, fixed src ip, 100 us between + lan.sendline('hping3 -2 -c 20000 -d 120 -S -w 64 -p 445 -i %s %s' % (self.conn_rate, wan_ip)) + lan.expect('HPING', timeout=5) + + self.max_conns = 0 + for not_used in range(10): + self.max_conns = max(self.max_conns, board.get_nf_conntrack_conn_count()) + lan.expect(pexpect.TIMEOUT, timeout=3) + board.expect(pexpect.TIMEOUT, timeout=3) + + self.recover() + + def recover(self): + lan.sendcontrol('c') + lan.expect(prompt) + lan.sendline('pkill -9 -f hping3') + lan.expect_exact('pkill -9 -f hping3') + lan.expect(prompt) + + wan.sendcontrol('c') + wan.expect(prompt) + wan.sendline('pkill -9 -f nc ') + wan.expect_exact('pkill -9 -f nc') + wan.expect(prompt) + + board.parse_stats(stats=['mpstat'], dict_to_log=self.logged) + + args = (self.conn_rate, self.max_conns, self.logged['mpstat']) + self.result_message = "hping3 udp firewall test, conn_rate = %s, max_conns = %s, cpu usage = %.2f" % args From c36abd4f7ba3cd62a5f038ee097163eaacecfeac Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 11:29:27 -0600 Subject: [PATCH 536/947] analysis: update line regex for no extra space Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- analysis/analysis.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/analysis/analysis.py b/analysis/analysis.py index ffb0b258..285dbd42 100644 --- a/analysis/analysis.py +++ b/analysis/analysis.py @@ -9,11 +9,11 @@ import re # no repr -newline = r"\r\n\[[^\]]+\] " -newline_match = r"\r\n\[([^\]]+)\] " +newline = r"\r\n\[[^\]]+\]" +newline_match = r"\r\n\[([^\]]+)\]" # with repr -newline_re = r"\\r\\n\[[^\]]+\] " -newline_re_match = r"\\r\\n\[([^\]]+)\] " +newline_re = r"\\r\\n\[[^\]]+\]" +newline_re_match = r"\\r\\n\[([^\]]+)\]" def prepare_log(log): '''Strips some stuff from outside logs so we can parse''' From ac6041de03d38dfc21fb76d9e2580cf0550f8009 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 11:28:43 -0600 Subject: [PATCH 537/947] devices: owrt: ensure number of conncections is int Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index a8ee2fd2..68ce4930 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -549,7 +549,7 @@ def get_nf_conntrack_conn_count(self): pp.sendline('cat /proc/sys/net/netfilter/nf_conntrack_count') pp.expect_exact('cat /proc/sys/net/netfilter/nf_conntrack_count', timeout=2) pp.expect(pp.prompt) - ret = pp.before.strip() + ret = int(pp.before.strip()) return ret except: From b40906ff4b5ad307da1f69c382f0054c03af7d7b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 11:30:09 -0600 Subject: [PATCH 538/947] analysis: print useful messages on parsing, and add reqs.txt Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- arguments.py | 8 +++++++- requirements.txt | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/arguments.py b/arguments.py index eb566d04..7436030f 100755 --- a/arguments.py +++ b/arguments.py @@ -221,9 +221,15 @@ def add_basic_auth(login_str, request): for cstr in dir(analysis): c = getattr(analysis, cstr) if inspect.isclass(c) and issubclass(c, analysis.Analysis): + sys.stdout.write("Running analysis class = %s... " % c) console_log = open(args.analysis, 'r').read() from analysis.analysis import prepare_log - c().analyze(prepare_log(console_log), config.output_dir) + try: + c().analyze(prepare_log(console_log), config.output_dir) + print("DONE!") + except: + print("FAILED!") + continue exit(0) if args.board_type: diff --git a/requirements.txt b/requirements.txt index 604689e5..7bce39d4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,3 +17,4 @@ simplejson pyvirtualdisplay Faker zeep +matplotlib From 888ca53e8c7edf6893b4bb2af2af1e0702e00c4f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 11:45:31 -0600 Subject: [PATCH 539/947] analysis: cleanup graph of analysis data Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- analysis/analysis.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/analysis/analysis.py b/analysis/analysis.py index 285dbd42..27a34f0b 100644 --- a/analysis/analysis.py +++ b/analysis/analysis.py @@ -35,23 +35,27 @@ class Analysis(): def analyze(self, console_log, output_dir): pass - def make_graph(self, data, ylabel, fname, ts=None, xlabel="seconds since boot (probably)", output_dir=None): + def make_graph(self, data, ylabel, fname, ts=None, xlabel="seconds", output_dir=None): '''Helper function to make a PNG graph''' if not output_dir: return - import matplotlib as mpl - mpl.use('Agg') + # strings -> float for graphing + ts = [float(i) for i in ts] + try: + data = [float(i) for i in data] + except: + data = [int(i) for i in data] + import matplotlib.pyplot as plt - plt.gca().yaxis.set_major_formatter(mpl.ticker.FormatStrFormatter('%d')) - plt.gca().xaxis.set_major_formatter(mpl.ticker.FormatStrFormatter('%d')) if ts is None: plt.plot(data) else: - plt.plot(ts, data) + plt.plot(ts, data, marker='o') plt.ylabel(ylabel) plt.xlabel(xlabel) + plt.gcf().set_size_inches(12, 8) plt.savefig(os.path.join(output_dir, "%s.png" % fname)) plt.clf() From 2502d45bd4c14a364690ced5bfdb581e632975c3 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 12:12:52 -0600 Subject: [PATCH 540/947] devices: owrt: fix for failing to start stats parsing Also, we don't need to pass in the stats list to parse_stats() function either. And log failed tests incase values are referenced later Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 11 ++++++++++- tests/bittorrent.py | 2 +- tests/concurrent_iperf.py | 2 +- tests/hping3.py | 2 +- tests/iperf3_test.py | 2 +- 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 68ce4930..38ff5c0d 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -560,16 +560,23 @@ def get_nf_conntrack_conn_count(self): def collect_stats(self, stats=[]): pp = self.get_pp_dev() self.stats = [] + self.failed_stats = {} for stat in stats: if 'mpstat' in stat: pp.sendline("kill `ps | grep mpstat | grep -v grep | awk '{print $1}'`") pp.expect(pp.prompt) pp.sendline('mpstat -P ALL 5 > %s/mpstat &' % self.tmpdir) + if 0 == pp.expect(['mpstat: not found'] + pp.prompt): + self.failed_stats['mpstat'] = float('nan') + continue + elif 0 == pp.expect(['mpstat: not found', pexpect.TIMEOUT], timeout=4): + self.failed_stats['mpstat'] = float('nan') + continue self.stats.append(stat) - def parse_stats(self, stats=[], dict_to_log={}): + def parse_stats(self, dict_to_log={}): pp = self.get_pp_dev() idx = 0 @@ -598,6 +605,8 @@ def parse_stats(self, stats=[], dict_to_log={}): if idx != len(self.stats): print "WARN: did not match all stats collected!" + dict_to_log.update(self.failed_stats) + if __name__ == '__main__': # Example use board = OpenWrtRouter('ap148-beeliner', diff --git a/tests/bittorrent.py b/tests/bittorrent.py index b81dd0ae..01f181c2 100644 --- a/tests/bittorrent.py +++ b/tests/bittorrent.py @@ -140,7 +140,7 @@ def recover(self): self.cleanup_ip(ip) # this needs to be here because we need to make sure mpstat is cleaned up - board.parse_stats(stats=['mpstat'], dict_to_log=self.logged) + board.parse_stats(dict_to_log=self.logged) print ("mpstat cpu usage = %s" % self.logged['mpstat']) self.result_message = "BitTorrent test with %s connections, cpu usage = %s" % (self.conns, self.logged['mpstat']) diff --git a/tests/concurrent_iperf.py b/tests/concurrent_iperf.py index d389ec58..021da02b 100644 --- a/tests/concurrent_iperf.py +++ b/tests/concurrent_iperf.py @@ -68,6 +68,6 @@ def recover(self): d.expect_exact('pkill -9 -f iperf') d.expect(prompt) - board.parse_stats(stats=['mpstat'], dict_to_log=self.logged) + board.parse_stats(dict_to_log=self.logged) self.result_message += ", cpu usage = %.2f" % self.logged['mpstat'] diff --git a/tests/hping3.py b/tests/hping3.py index fb328844..9506bcd7 100644 --- a/tests/hping3.py +++ b/tests/hping3.py @@ -43,7 +43,7 @@ def recover(self): wan.expect_exact('pkill -9 -f nc') wan.expect(prompt) - board.parse_stats(stats=['mpstat'], dict_to_log=self.logged) + board.parse_stats(dict_to_log=self.logged) args = (self.conn_rate, self.max_conns, self.logged['mpstat']) self.result_message = "hping3 udp firewall test, conn_rate = %s, max_conns = %s, cpu usage = %.2f" % args diff --git a/tests/iperf3_test.py b/tests/iperf3_test.py index 6375751a..fdf40d0d 100644 --- a/tests/iperf3_test.py +++ b/tests/iperf3_test.py @@ -68,7 +68,7 @@ def recovery(self): d.sendcontrol('c') d.expect(prompt) - board.parse_stats(stats=['mpstat'], dict_to_log=self.logged) + board.parse_stats(dict_to_log=self.logged) args = (self.logged['s_rate'], self.logged['r_rate'], self.logged['mpstat']) self.result_message = "Sender rate = %s MBits/sec, Receiver rate = %s Mbits/sec, cpu = %.2f\n" % args From 4330f556cc9825cfa3c77cc227948baa96d32f54 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 13:18:54 -0600 Subject: [PATCH 541/947] analysis: vmstat: stop gracefully if no data Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- analysis/vmstat.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/analysis/vmstat.py b/analysis/vmstat.py index d641bebe..fdb37fd1 100644 --- a/analysis/vmstat.py +++ b/analysis/vmstat.py @@ -19,6 +19,9 @@ def analyze(self, console_log, output_dir): data[k].append(int(v)) timestamps[k].append(float(t)) + if len(data) == 0: + return + sz = len(data.itervalues().next()) for k in data: if len(data[k]) > 1: From baf0e8c870e2c01c8e7efd889419bd34ee61116a Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 13:19:08 -0600 Subject: [PATCH 542/947] analysis: show stack trace if we fail to parse logs Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- arguments.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arguments.py b/arguments.py index 7436030f..c9b25427 100755 --- a/arguments.py +++ b/arguments.py @@ -14,6 +14,7 @@ import sys import json import unittest2 +import traceback try: from urllib.request import urlopen import urllib @@ -227,8 +228,9 @@ def add_basic_auth(login_str, request): try: c().analyze(prepare_log(console_log), config.output_dir) print("DONE!") - except: + except Exception as e: print("FAILED!") + traceback.print_exc(file=sys.stdout) continue exit(0) From 70728dba82abbf31dac741a0e924a2cf3e032a0b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 14:45:29 -0600 Subject: [PATCH 543/947] devices: base: hack to work around wrong stack index 3 or 5, not sure what code paths cause the difference but this is working and producing better debug info for the time being Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/base.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/devices/base.py b/devices/base.py index ec0adc94..dfb7e6f2 100644 --- a/devices/base.py +++ b/devices/base.py @@ -186,12 +186,17 @@ def expect_helper(self, pattern, wrapper, *args, **kwargs): if not BFT_DEBUG: return wrapper(pattern, *args, **kwargs) + if 'base.py: expect():' in error_detect.caller_file_line(3) or \ + 'base.py: expect_exact():' in error_detect.caller_file_line(3): + idx = 5 + else: + idx = 3 common.print_bold("%s = expecting: %s" % - (error_detect.caller_file_line(3), repr(pattern))) + (error_detect.caller_file_line(idx), repr(pattern))) try: ret = wrapper(pattern, *args, **kwargs) - frame = error_detect.caller_file_line(3) + frame = error_detect.caller_file_line(idx) if hasattr(self.match, "group"): common.print_bold("%s = matched: %s" % From 66168b2c32c8aeadbdd7363a9c642c803afe6872 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 14:48:26 -0600 Subject: [PATCH 544/947] devicse: owrt: use generic function to get proc vmstats Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 23 +++++++++++++++++++++++ tests/hping3.py | 1 + tests/vmstat.py | 9 ++------- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 38ff5c0d..8b72cb4e 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -17,6 +17,7 @@ import base from datetime import datetime import ipaddress +import re import power import common @@ -557,6 +558,28 @@ def get_nf_conntrack_conn_count(self): else: raise Exception("Unable to extract nf_conntrack_count!") + def get_proc_vmstat(self, pp=None): + # could be useful for both cores + if pp is None: + pp = self.get_pp_dev() + + for not_used in range(5): + try: + pp.sendline('cat /proc/vmstat') + pp.expect_exact('cat /proc/vmstat') + pp.expect(pp.prompt) + results = re.findall('(\w+) (\d+)', pp.before) + ret = {} + for key, value in results: + ret[key] = int(value) + + return ret + except Exception as e: + print(e) + continue + else: + raise Exception("Unable to parse /proc/vmstat!") + def collect_stats(self, stats=[]): pp = self.get_pp_dev() self.stats = [] diff --git a/tests/hping3.py b/tests/hping3.py index 9506bcd7..c81a92b7 100644 --- a/tests/hping3.py +++ b/tests/hping3.py @@ -25,6 +25,7 @@ def runTest(self): self.max_conns = 0 for not_used in range(10): self.max_conns = max(self.max_conns, board.get_nf_conntrack_conn_count()) + board.get_proc_vmstat() lan.expect(pexpect.TIMEOUT, timeout=3) board.expect(pexpect.TIMEOUT, timeout=3) diff --git a/tests/vmstat.py b/tests/vmstat.py index 1afe1357..8dba8557 100644 --- a/tests/vmstat.py +++ b/tests/vmstat.py @@ -12,13 +12,8 @@ class ProcVmstat(rootfs_boot.RootFSBootTest): '''Check /proc/vmstat stats.''' def runTest(self): - # Log every field value found - board.sendline('\ncat /proc/vmstat') - board.expect('cat /proc/vmstat') - board.expect(prompt) - results = re.findall('(\w+) (\d+)', board.before) - for key, value in results: - self.logged[key] = int(value) + self.logged.update(board.get_proc_vmstat()) + # Display extra info board.sendline('cat /proc/slabinfo /proc/buddyinfo /proc/meminfo') board.expect('cat /proc/') From 5ce9e6322865efefc50bbf080a378bb0a99496b1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 14:49:29 -0600 Subject: [PATCH 545/947] bft: create combined console log (in addition to split logs) Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/bft b/bft index fd991909..d4904774 100755 --- a/bft +++ b/bft @@ -273,7 +273,7 @@ def main(): library.print_board_info(config.board) combined_list = [] - def add_to_combined_list(log, name): + def add_to_combined_list(log, name, combined_list=combined_list): for line in log.split('\r\n'): try: if line is '': @@ -289,13 +289,30 @@ def main(): pass idx = 1 + console_combined = [] for console in config.console.consoles: with open(os.path.join(config.output_dir, 'console-%s.log' % idx), 'w') as clog: clog.write(console.log) add_to_combined_list(console.log, "console-%s" % idx) add_to_combined_list(console.log_calls, "console-%s" % idx) + add_to_combined_list(console.log, "", console_combined) idx = idx + 1 + def write_combined_log(combined_list, fname): + with open(os.path.join(config.output_dir, fname), 'w') as clog: + for e in combined_list: + try: + if e['name'] == "": + clog.write('[%s]%s\r\n' % (e['time'], e['text'])) + else: + clog.write('%s: [%s] %s\n' % (e['name'], e['time'], e['text'])) + except: + print "failed to parse line: %s" % repr(e) + + import operator + console_combined.sort(key=operator.itemgetter('time')) + write_combined_log(console_combined, "console-combined.log") + for device in config.devices: with open(os.path.join(config.output_dir, device + ".log"), 'w') as clog: d = getattr(config, device) @@ -312,15 +329,8 @@ def main(): if hasattr(test, 'log_calls'): add_to_combined_list(test.log_calls, test.__class__.__name__) - import operator combined_list.sort(key=operator.itemgetter('time')) - - with open(os.path.join(config.output_dir, "all.log"), 'w') as clog: - for e in combined_list: - try: - clog.write('%s: [%s] %s\n' % (e['name'], e['time'], e['text'])) - except: - print "failed to parse line: %s" % repr(e) + write_combined_log(combined_list, "all.log") os.environ['TEST_END_TIME'] = datetime.now().strftime("%s") From e667faa58de279caddf61b01a4fcff0d7da632f0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 14:51:13 -0600 Subject: [PATCH 546/947] bft: analyze the combined log by default Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bft b/bft index d4904774..177e2af9 100755 --- a/bft +++ b/bft @@ -358,7 +358,8 @@ def main(): for cstr in dir(analysis): c = getattr(analysis, cstr) if inspect.isclass(c) and issubclass(c, analysis.Analysis): - c().analyze(config.console.log, config.output_dir) + with open(os.path.join(config.output_dir, "console-combined.log"), 'w') as clog: + c().analyze(clog, config.output_dir) except Exception as e: if not issubclass(type(e), (StopIteration)): print("Failed to run anaylsis:") From c1d03d763b805f4214a38f30aa536652a1720465 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 15:07:37 -0600 Subject: [PATCH 547/947] devices: base: make macaddr function more specific In case we get some spurious text, at least we get a mac address Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/base.py | 5 ++++- tests/lib/regexlib.py | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/devices/base.py b/devices/base.py index dfb7e6f2..87d15f4a 100644 --- a/devices/base.py +++ b/devices/base.py @@ -15,6 +15,7 @@ import error_detect #from lib.regexlib import ValidIpv4AddressRegex, ValidIpv6AddressRegex +from lib.regexlib import LinuxMacFormat from lib.logging import LoggerMeta @@ -46,8 +47,10 @@ def get_interface_ip6addr(self, interface): def get_interface_macaddr(self, interface): self.sendline('cat /sys/class/net/%s/address' % interface) self.expect_exact('cat /sys/class/net/%s/address' % interface) + self.expect(LinuxMacFormat) + macaddr = self.match.group() self.expect(self.prompt) - return self.before.strip() + return macaddr def get_logfile_read(self): if hasattr(self, "_logfile_read"): diff --git a/tests/lib/regexlib.py b/tests/lib/regexlib.py index b6400448..32508574 100644 --- a/tests/lib/regexlib.py +++ b/tests/lib/regexlib.py @@ -22,6 +22,8 @@ # The CMTS mac-adderss format for e.g. 0025.2e34.4377 CmtsMacFormat='([0-9a-f]{4}\.[0-9a-fA-F]{4}\.[0-9a-f]{4})' +LinuxMacFormat='([0-9a-f]{2}(?::[0-9a-f]{2}){5})' + # traceroute returns no route to ip address (i.e. '<num> * * *' 30 times) TracerouteNoRoute='((.[1-9]|[1-9][0-9])(\s\s\*\s\*\s\*)(\r\n|\r|\n)){30}' From 1de8b0e13462cbdf378fea4bd0fa4f2dee41fb7d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 18:45:23 -0600 Subject: [PATCH 548/947] tests: concurrentiperf: show number of failed connections as well Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/concurrent_iperf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/concurrent_iperf.py b/tests/concurrent_iperf.py index 021da02b..ca563919 100644 --- a/tests/concurrent_iperf.py +++ b/tests/concurrent_iperf.py @@ -39,7 +39,7 @@ def runTest(self): board.touch() except: - self.result_message = "iPerf Concurrent Connections failed entirely at %s" % con_conn + self.result_message = "iPerf Concurrent Connections failed entirely at %s (failed conns = %s)" % (con_conn, failed_cons) break print self.result_message From 5296f23c6ee630d327d338e113bf176f8b6062e0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 28 Jan 2019 22:56:48 -0600 Subject: [PATCH 549/947] tests: rootfs_boot: route prov traffic through wan node We inspect traffic, set ip addresses to terminate traffic so let's route traffic there in this type of setup Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/rootfs_boot.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index f76e2319..64c66efa 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -131,6 +131,32 @@ def boot(self, reflash=True): board.wait_for_network() board.wait_for_mounts() + if prov is not None: + table = self.config.board['station'] + idx = wan.port # TODO: how to do this right...? + ips = [board.get_interface_ipaddr(board.wan_iface)] + if hasattr(board, 'erouter_iface'): + ips += [board.get_interface_ipaddr(board.erouter_iface)] + if hasattr(board, 'mta_iface'): + ips += [board.get_interface_ipaddr(board.mta_iface)] + + # TODO: don't hard code 300 or mv1-1 + prov.sendline('sed /^%s/d -i /etc/iproute2/rt_tables' % idx) + prov.expect(prompt) + prov.sendline('echo "%s %s" >> /etc/iproute2/rt_tables' % (idx, table)) + prov.expect(prompt) + + for ip in ips: + prov.sendline('ip rule del from %s' % ip) + prov.expect(prompt) + prov.sendline('ip rule add from %s lookup %s' % (ip, table)) + prov.expect(prompt) + + wan_ip = wan.get_interface_ipaddr(wan.iface_dut) + prov.sendline('ip route add default via %s dev eth1 table %s' % (wan_ip, table)) + prov.expect(prompt) + + if self.config.setup_device_networking: # Router mac addresses are likely to change, so flush arp if lan: From 33bb212be8eda26e680469a9c1d266f59aaabb46 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 29 Jan 2019 08:08:13 -0600 Subject: [PATCH 550/947] tests: jmeter: use incl. jmx file, record stats Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/jmeter.py | 31 +++- tests/jmeter/httpreq.jmx | 377 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 403 insertions(+), 5 deletions(-) create mode 100644 tests/jmeter/httpreq.jmx diff --git a/tests/jmeter.py b/tests/jmeter.py index ebae629c..f5e365f3 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -1,31 +1,43 @@ import os +import pexpect import rootfs_boot from lib.installers import install_jmeter -from devices import lan, prompt +from devices import board, lan, prompt from devices.common import scp_from class JMeter(rootfs_boot.RootFSBootTest): + '''Runs JMeter jmx file from LAN device''' - jmx = "https://jmeter.apache.org/demos/ForEachTest2.jmx" + #jmx = "https://jmeter.apache.org/demos/ForEachTest2.jmx" + jmx = os.path.join(os.path.dirname(__file__), 'jmeter/httpreq.jmx') def runTest(self): install_jmeter(lan) - if 'http' in self.jmx: + if self.jmx.startswith('http'): lan.sendline('curl %s > test.jmx' % self.jmx) lan.expect(prompt) else: - raise Exception("Don't know how to handle downloading %s") + print("Copying %s to lan device") + lan.copy_file_to_server(self.jmx, dst='/root/test.jmx') lan.sendline('rm -rf output *.log') lan.expect(prompt) lan.sendline('mkdir -p output') lan.expect(prompt) + + board.collect_stats(stats=['mpstat']) + lan.sendline('jmeter -n -t test.jmx -l foo.log -e -o output') lan.expect_exact('jmeter -n -t test.jmx -l foo.log -e -o output') - lan.expect(prompt) + for not_used in range(100): + if 0 != lan.expect([pexpect.TIMEOUT] + prompt, timeout=5): + break; + board.get_nf_conntrack_conn_count() + board.get_proc_vmstat() + board.touch() print "Copying files from lan to dir = %s" % self.config.output_dir lan.sendline('readlink -f output/') @@ -38,3 +50,12 @@ def runTest(self): #lan.expect(prompt) lan.sendline('rm test.jmx') lan.expect(prompt) + + self.recover() + + def recover(self): + lan.sendcontrol('c') + lan.expect(prompt) + + board.parse_stats(dict_to_log=self.logged) + self.result_message = 'JMeter: DONE, cpu usage = %s' % self.logged['mpstat'] diff --git a/tests/jmeter/httpreq.jmx b/tests/jmeter/httpreq.jmx new file mode 100644 index 00000000..a9ab18e3 --- /dev/null +++ b/tests/jmeter/httpreq.jmx @@ -0,0 +1,377 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.0 r1840935"> + <hashTree> + <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true"> + <stringProp name="TestPlan.comments"></stringProp> + <boolProp name="TestPlan.functional_mode">false</boolProp> + <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp> + <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> + <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="TestPlan.user_define_classpath"></stringProp> + </TestPlan> + <hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">10</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">5</stringProp> + <stringProp name="ThreadGroup.ramp_time">0</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">jmeter.apache.org</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">usermanual/test_plan.html</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">yahoo.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">youtube.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">watch?v=FITnB6b7tpg</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">cnn.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">msn.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">bloomberg.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">nytimes.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">bbc.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">amazon.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">walmart.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + </hashTree> + <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="GraphVisualizer" testclass="ResultCollector" testname="Graph Results" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="false"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="graphiteMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">graphiteMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.graphite.TextGraphiteMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="graphiteHost" elementType="Argument"> + <stringProp name="Argument.name">graphiteHost</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="graphitePort" elementType="Argument"> + <stringProp name="Argument.name">graphitePort</stringProp> + <stringProp name="Argument.value">2003</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="rootMetricsPrefix" elementType="Argument"> + <stringProp name="Argument.name">rootMetricsPrefix</stringProp> + <stringProp name="Argument.value">jmeter.</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">true</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersList" elementType="Argument"> + <stringProp name="Argument.name">samplersList</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.graphite.GraphiteBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + </hashTree> + </hashTree> +</jmeterTestPlan> From e229157193566ba53234e6cf78f13052fc70237d Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Tue, 29 Jan 2019 15:48:36 +0100 Subject: [PATCH 551/947] devices: openwrt_router: The previouos regex mathed against ip addresses as well. Tested on https://regex101.com/ and travici unittest Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/openwrt_router.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 8b72cb4e..e7c49bc9 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -135,7 +135,7 @@ def get_seconds_uptime(self): self.sendcontrol('c') self.expect(self.prompt) self.sendline('\ncat /proc/uptime') - self.expect('((\d+)\.(\d+)(\s)?)((\d+)\.(\d+))?((\d+)\.(\d+))?\r\n') + self.expect('((\d+)\.(\d{2}))(\s)(\d+)\.(\d{2})') seconds_up = float(self.match.group(1)) self.expect(self.prompt) return seconds_up From 1025ca07a29bacf821c4752ae3d6e2342f9e8d4b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 29 Jan 2019 09:00:02 -0600 Subject: [PATCH 552/947] tests: concurrent_iperf: this actually fails at prev step So make that clear in the results message... also don't get the connection count it's confusing in the current logic Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/concurrent_iperf.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/concurrent_iperf.py b/tests/concurrent_iperf.py index ca563919..949242dc 100644 --- a/tests/concurrent_iperf.py +++ b/tests/concurrent_iperf.py @@ -21,13 +21,14 @@ def runTest(self): lan.sendline(cmd % (wan_ip, 4)) lan.expect(prompt) + prev_con = 0 + prev_failed = 0 for con_conn in range(32, 513, 16): try: tstart = datetime.now() lan.sendline(cmd % (wan_ip, con_conn)) failed_cons = 0 while (datetime.now() - tstart).seconds < (time * 2): - board.get_nf_conntrack_conn_count() timeout=(time*2)-(datetime.now() - tstart).seconds if 0 == lan.expect(['write failed: Connection reset by peer'] + prompt, timeout=timeout): failed_cons += 1 @@ -38,8 +39,13 @@ def runTest(self): wan.expect('.*') board.touch() + prev_conn = con_conn + prev_failed = failed_cons + + if con_conn == 512: + self.result_message = "iPerf Concurrent passed 512 connections (failed conns = %s)" % failed_cons except: - self.result_message = "iPerf Concurrent Connections failed entirely at %s (failed conns = %s)" % (con_conn, failed_cons) + self.result_message = "iPerf Concurrent Connections failed entirely at %s (failed conns = %s)" % (prev_conn, prev_failed) break print self.result_message From f7d4118087c22abc9d957ec17c09406873ade525 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 29 Jan 2019 09:24:02 -0600 Subject: [PATCH 553/947] tests: jmeter: give more time to complete, error if not done Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/jmeter.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/jmeter.py b/tests/jmeter.py index f5e365f3..9697565f 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -32,13 +32,16 @@ def runTest(self): lan.sendline('jmeter -n -t test.jmx -l foo.log -e -o output') lan.expect_exact('jmeter -n -t test.jmx -l foo.log -e -o output') - for not_used in range(100): + for i in range(300): if 0 != lan.expect([pexpect.TIMEOUT] + prompt, timeout=5): break; board.get_nf_conntrack_conn_count() board.get_proc_vmstat() board.touch() + if i == 299: + raise Exception("jmeter did not have enough time to complete") + print "Copying files from lan to dir = %s" % self.config.output_dir lan.sendline('readlink -f output/') lan.expect('readlink -f output/') From 1777375908d2079f38c22696f9b2c493cc4ff9d0 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Tue, 29 Jan 2019 16:21:55 +0100 Subject: [PATCH 554/947] devices: debian: get_interface_ipaddr added match for tun0 interface in get_interface_ipaddr() added match for inet 10.8.0.1 netmask 255.255.255.0 destination 10.8.0.1 Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/debian.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index 88e7df69..c7b4cd9c 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -15,6 +15,7 @@ import binascii import glob import ipaddress +from lib.regexlib import ValidIpv4AddressRegex from termcolor import colored, cprint @@ -245,7 +246,8 @@ def reset(self): def get_interface_ipaddr(self, interface): self.sendline("\nifconfig %s" % interface) regex = ['addr:(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).*(Bcast|P-t-P):', - 'inet (\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).*(broadcast|P-t-P)'] + 'inet (\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).*(broadcast|P-t-P)', + 'inet ('+ValidIpv4AddressRegex+').*netmask ('+ValidIpv4AddressRegex+').*destination '+ValidIpv4AddressRegex] self.expect(regex, timeout=5) ipaddr = self.match.group(1) self.expect(self.prompt) From fdec2d32982922ee1a190a919c7a658b2b6df842 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 29 Jan 2019 10:10:41 -0600 Subject: [PATCH 555/947] bft: force any matplitlib to not use X rendering Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bft b/bft index 177e2af9..21ab0763 100755 --- a/bft +++ b/bft @@ -32,6 +32,9 @@ site.addsitedir(os.path.dirname(os.path.realpath(__file__))) from devices import debian, logstash, elasticlogger, get_device +import matplotlib +matplotlib.use('Agg') + def setup_dynamic_devices(config, env=None, start=None): '''Sets up dynamic devices from devices node in JSON config file''' From 60d01cd5ba7d4331a489e4a35a20272f852d524b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 29 Jan 2019 10:22:31 -0600 Subject: [PATCH 556/947] tests: jmeter: let board setting after stopping jmeter Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/jmeter.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/jmeter.py b/tests/jmeter.py index 9697565f..52a17b12 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -60,5 +60,8 @@ def recover(self): lan.sendcontrol('c') lan.expect(prompt) + # let board settle down + board.expect(pexpect.TIMEOUT, timeout=30) + board.parse_stats(dict_to_log=self.logged) self.result_message = 'JMeter: DONE, cpu usage = %s' % self.logged['mpstat'] From 74b6e01cdc551ea9d2e978f1fdb2d861ee9265e2 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 29 Jan 2019 10:26:07 -0600 Subject: [PATCH 557/947] tests: rootfs_boot: rtry a little harder to get all ips Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/rootfs_boot.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 64c66efa..101a219b 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -134,11 +134,17 @@ def boot(self, reflash=True): if prov is not None: table = self.config.board['station'] idx = wan.port # TODO: how to do this right...? - ips = [board.get_interface_ipaddr(board.wan_iface)] - if hasattr(board, 'erouter_iface'): - ips += [board.get_interface_ipaddr(board.erouter_iface)] - if hasattr(board, 'mta_iface'): - ips += [board.get_interface_ipaddr(board.mta_iface)] + + for not_used in range(5): + try: + ips = [board.get_interface_ipaddr(board.wan_iface)] + if hasattr(board, 'erouter_iface'): + ips += [board.get_interface_ipaddr(board.erouter_iface)] + if hasattr(board, 'mta_iface'): + ips += [board.get_interface_ipaddr(board.mta_iface)] + break + except: + continue # TODO: don't hard code 300 or mv1-1 prov.sendline('sed /^%s/d -i /etc/iproute2/rt_tables' % idx) From 83ec3d535bbed1a34f22fb5eeb842c87ed15a4b8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 30 Jan 2019 10:30:44 -0600 Subject: [PATCH 558/947] tests: rootfs_boot: only route traffic if we are a debian based prov Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/rootfs_boot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 101a219b..b4562b00 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -131,7 +131,7 @@ def boot(self, reflash=True): board.wait_for_network() board.wait_for_mounts() - if prov is not None: + if prov is not None and 'debian' in prov.model: table = self.config.board['station'] idx = wan.port # TODO: how to do this right...? From 7cf09e0bfda3fb965eb5c71ef30f4c17e893a0e4 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Fri, 1 Feb 2019 09:36:27 +0100 Subject: [PATCH 559/947] devices: __init__: added check for kermit installation There may be a chance in the future for kermit to be used instead of telnet (as the latter seem to take 100% cpu for no apparent reason!) Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/__init__.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/devices/__init__.py b/devices/__init__.py index 55503d8c..646339be 100644 --- a/devices/__init__.py +++ b/devices/__init__.py @@ -9,6 +9,7 @@ import glob import inspect import pexpect +import termcolor # insert tests lib so devices and tests can share the same libraries sys.path.insert(0, os.path.dirname(__file__) + '/../tests') @@ -42,6 +43,20 @@ device_mappings[device_file].append(ref) exec("from %s import %s" % (x, obj)) +def check_for_cmd_on_host(cmd, msg=None): + '''Prints an error message with a suggestion on how to install the command''' + from lib.common import cmd_exists + if not cmd_exists(cmd): + termcolor.cprint("\nThe command '"+cmd+"' is NOT installed on your system. Please install it.", None, attrs=['bold']) + if msg is not None: print(cmd+": "+msg) + import sys + if sys.platform == "linux2": + import platform + if "Ubuntu" in platform.dist() or "debian" in platform.dist(): + print("To install run:\n\tsudo apt install <package with "+cmd+">") + exit(1) + print("To install refer to your system SW app installation instructions") + def initialize_devices(configuration): # Init random global variables. To Do: clean these. global power_ip, power_outlet @@ -89,6 +104,12 @@ def get_device(model, **kwargs): return None def board_decider(model, **kwargs): + if any('conn_cmd' in s for s in kwargs): + if any(u'kermit' in s for s in kwargs['conn_cmd']): + check_for_cmd_on_host('kermit',"telnet equivalent command. It has lower CPU usage than telnet,\n\ +and works exactly the same way (e.g. kermit -J <ipaddr> [<port>])\n\ +You are seeing this message as your configuration is now using kermit instead of telnet.") + dynamic_dev = get_device(model, **kwargs) if dynamic_dev is not None: return dynamic_dev From 9451eceec511e76425fd2dd4c232cfd562b0839a Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Thu, 6 Dec 2018 16:24:36 +0530 Subject: [PATCH 560/947] devices: debian_wifi: Added the function for wifi wpa_connect - to generate wpa_supplicant with SSID and passphrase and initiate it wlan_connectivity - to verify wlan connectivity disconnect_supplicant - Disconnect the wpa_supplicant initiated tests: wifi: Added a return value in the wifi scan function devices: debian - Added function to verify interface link status link_up - to verify interface status Signed-off-by: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> --- devices/debian.py | 13 ++++++++++++- devices/debian_wifi.py | 36 ++++++++++++++++++++++++++++++++++++ tests/wifi.py | 3 ++- 3 files changed, 50 insertions(+), 2 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index c7b4cd9c..495133eb 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -10,12 +10,12 @@ import pexpect import base import atexit -import ipaddress import os import binascii import glob import ipaddress from lib.regexlib import ValidIpv4AddressRegex +import re from termcolor import colored, cprint @@ -953,6 +953,17 @@ def tftp_server_ip_int(self): '''Returns the DUT facing side tftp server ip''' return self.gw + def link_up(self, interface): + '''Checking the interface status''' + self.sendline("ip link show %s" % interface) + self.expect(self.prompt) + link_state = self.before + match = re.search('NO-CARRIER,BROADCAST,MULTICAST,UP',link_state) + if match: + return match.group(0) + else: + return None + if __name__ == '__main__': # Example use try: diff --git a/devices/debian_wifi.py b/devices/debian_wifi.py index 78875e92..73698791 100644 --- a/devices/debian_wifi.py +++ b/devices/debian_wifi.py @@ -1,4 +1,5 @@ +import re import debian @@ -17,3 +18,38 @@ def scan(self): self.expect(self.prompt) return self.before + + def wpa_connect(self, ssid_name, password): + '''Generate WPA supplicant file and execute it''' + self.sendline("rm /etc/"+ssid_name+".conf") + self.expect(self.prompt) + self.sendline("wpa_passphrase "+ssid_name+ " >> /etc/"+ssid_name+".conf") + self.expect("") + self.sendline(password) + self.expect(self.prompt,timeout=20) + self.sendline("cat /etc/"+ssid_name+".conf") + self.expect(self.prompt) + self.sendline("wpa_supplicant -B -Dnl80211 -i"+self.iface_wlan+ " -c/etc/"+ssid_name+".conf") + self.expect(self.prompt) + wpa_start = None + wpa_start = self.before + match = re.search('Successfully initialized wpa_supplicant',wpa_start) + if match: + return match.group(0) + else: + return None + + def wlan_connectivity(self): + '''Connection state verify''' + self.sendline("iw %s link" % self.iface_wlan) + self.expect(self.prompt) + conn_state = self.before + match = re.search('Connected',conn_state) + if match: + return match.group(0) + else: + return None + + def disconnect_wpa(self): + self.sendline("killall wpa_supplicant") + self.expect(self.prompt) diff --git a/tests/wifi.py b/tests/wifi.py index 1ff9efc4..cdfa18f1 100644 --- a/tests/wifi.py +++ b/tests/wifi.py @@ -6,4 +6,5 @@ class WifiScan(rootfs_boot.RootFSBootTest): '''Simple test to run a wifi scan''' def runTest(self): - wlan.scan() + scan_output = wlan.scan() + return scan_output From b72c9deee48d07d0fafab5b0fa61e40862b5901f Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Sat, 2 Feb 2019 10:34:41 +0100 Subject: [PATCH 561/947] tests: lib: common: helper function to calculate the sha256 of a file Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/lib/common.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/lib/common.py b/tests/lib/common.py index efd81bc0..491d130a 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -168,6 +168,15 @@ def get_webproxy_driver(ipport): def test_msg(msg): cprint(msg, None, attrs=['bold']) +def sha256_checksum(filename, block_size=65536): + '''Calculates the SHA256 on a file''' + import hashlib + sha256 = hashlib.sha256() + with open(filename, 'rb') as f: + for block in iter(lambda: f.read(block_size), b''): + sha256.update(block) + return sha256.hexdigest() + class TestResult: logged = {} def __init__(self, name, grade, message): From 2ca433cf70ddfecec0345b324781cd6e767567bf Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 4 Feb 2019 08:49:16 -0600 Subject: [PATCH 562/947] tests: conn_stress: update ab test Collects stats, starts web server, uses non-hard coded IPs, more graceful recovery Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/connection_stress.py | 43 +++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/tests/connection_stress.py b/tests/connection_stress.py index 08329eed..4ec4d6f2 100644 --- a/tests/connection_stress.py +++ b/tests/connection_stress.py @@ -9,37 +9,42 @@ import time from devices import board, wan, lan, wlan, prompt +from lib.installers import install_lighttpd + class Connection_Stress(rootfs_boot.RootFSBootTest): '''Measured CPU use while creating thousands of connections.''' + + concurrency = 25 + num_conn = 5000 + reqs_per_sec = 0 + def runTest(self): - num_conn = 5000 + install_lighttpd(wan) + wan.sendline('/etc/init.d/lighttpd start') + wan.expect(prompt) # Wan device: Create small file in web dir fname = 'small.txt' cmd = '\nhead -c 10000 /dev/urandom > /var/www/%s' % fname wan.sendline(cmd) wan.expect(prompt) # Lan Device: download small file a lot - concurrency = 25 - url = 'http://192.168.0.1/%s' % fname + url = 'http://%s/%s' % (wan.gw, fname) # Start CPU monitor - board.sendline('\nmpstat -P ALL 10000 1') + board.collect_stats(stats=['mpstat']) # Lan Device: download small file a lot - lan.sendline('\nab -dn %s -c %s %s' % (num_conn, concurrency, url)) + lan.sendline('\nab -dn %s -c %s %s' % (self.num_conn, self.concurrency, url)) lan.expect('Benchmarking', timeout=5) - lan.expect('Requests per second:\s+(\d+)') - reqs_per_sec = int(lan.match.group(1)) + if 0 != lan.expect(['Requests per second:\s+(\d+)', 'apr_socket_recv: Connection reset by peer'], timeout=120): + raise Exception("ab failed to run") + self.reqs_per_sec = int(lan.match.group(1)) lan.expect(prompt) - # Stop CPU monitor - board.sendcontrol('c') - board.expect('Average:\s+all(\s+[0-9]+.[0-9]+){10}\r\n') - idle_cpu = float(board.match.group(1)) - avg_cpu = 100 - float(idle_cpu) - board.expect(prompt) - msg = "ApacheBench measured %s connections/second, CPU use = %s%%." % (reqs_per_sec, avg_cpu) - self.result_message = msg - time.sleep(5) # Give router a few seconds to recover + + self.recover() + def recover(self): - board.sendcontrol('c') - board.expect(prompt) lan.sendcontrol('c') - time.sleep(2) # Give router a few seconds to recover + time.sleep(5) # Give router a few seconds to recover + board.parse_stats(dict_to_log=self.logged) + avg_cpu = self.logged['mpstat'] + msg = "ApacheBench measured %s connections/second, CPU use = %s%%." % (self.reqs_per_sec, avg_cpu) + self.result_message = msg From 27a452f0523d0d03deb5f80205fbfe87fe5a1af2 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 4 Feb 2019 09:21:50 -0600 Subject: [PATCH 563/947] devices: owrt: touch board if processing taking long time I've seen this take longer than a few minutes before so let's touch if req'd to keep serial connections alive. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index e7c49bc9..9ae5f0a5 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -613,8 +613,11 @@ def parse_stats(self, dict_to_log={}): pp.expect_exact('cat %s/mpstat' % self.tmpdir) idle_vals = [] + start = datetime.now() while 0 == pp.expect(['all(\s+\d+\.\d{2}){9}\r\n'] + pp.prompt): idle_vals.append(float(pp.match.group().strip().split(' ')[-1])) + if (datetime.now() - start).seconds > 60: + self.touch() avg_cpu_usage = 100 - sum(idle_vals) / len(idle_vals) dict_to_log['mpstat'] = avg_cpu_usage From 63b27721ab868439bc385bca0de57489cff7af42 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Tue, 5 Feb 2019 00:44:17 +0100 Subject: [PATCH 564/947] tests: lib: common: added helper funtions for ip bound http and https servers start_ipbound_httpsservice(device, ip="0.0.0.0", port="443", cert="/root/server.pem") start_ip6bound_httpservice(device, ip="::", port="9001") start_ipbound_httpservice(device, ip="0.0.0.0", port="9000") Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/lib/common.py | 93 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/tests/lib/common.py b/tests/lib/common.py index 491d130a..9c342933 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -185,3 +185,96 @@ def __init__(self, name, grade, message): self.result_message = message cmd_exists = lambda x: any(os.access(os.path.join(path, x), os.X_OK) for path in os.environ["PATH"].split(os.pathsep)) + +from library import print_bold +def start_ipbound_httpservice(device, ip="0.0.0.0", port="9000"): + ''' + Starts a simple web service on a specified port, + bound to a specified interface. (e.g. tun0) + Send ctrl-c to stop + ''' + device.sendline("python -c 'import BaseHTTPServer as bhs, SimpleHTTPServer as shs; bhs.HTTPServer((\"%s\", %s), shs.SimpleHTTPRequestHandler).serve_forever()'"%(ip, port)) + if 0 ==device.expect(['Traceback', pexpect.TIMEOUT], timeout=10): + if "BFT_DEBUG" in os.environ: + print_bold("Faield to start service on "+ip+":"+port) + return False + else: + if "BFT_DEBUG" in os.environ: + print_bold("Service started on "+ip+":"+port) + return True + +def start_ip6bound_httpservice(device, ip="::", port="9001"): + ''' + Starts a simple web service on a specified port, + bound to a specified interface. (e.g. tun0) + Send ctrl-c to stop (twice? needs better signal handling) + ''' + device.sendline('''cat > /root/SimpleHTTPServer6.py<<EOF +import socket +import BaseHTTPServer as bhs +import SimpleHTTPServer as shs + +class HTTPServerV6(bhs.HTTPServer): + address_family = socket.AF_INET6 +HTTPServerV6((\"%s\", %s),shs.SimpleHTTPRequestHandler).serve_forever() +EOF'''%(ip, port)) + + device.expect(device.prompt) + device.sendline ("python -m /root/SimpleHTTPServer6") + if 0 == device.expect(['Traceback', pexpect.TIMEOUT], timeout=10): + if "BFT_DEBUG" in os.environ: + print_bold('Faield to start service on ['+ip+']:'+port) + return False + else: + if "BFT_DEBUG" in os.environ: + print_bold("Service started on ["+ip+"]:"+port) + return True + +def start_ipbound_httpsservice(device, ip="0.0.0.0", port="443", cert="/root/server.pem"): + ''' + Starts a simple HTTPS web service on a specified port, + bound to a specified interface. (e.g. tun0) + Send ctrl-c to stop (twice? needs better signal handling) + ''' + import re + # the https server needs a certificate, lets create a bogus one + device.sendline("openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes") + for i in range(10): + if device.expect([re.escape("]:"), re.escape("Email Address []:")]) > 0: + device.sendline() + break + device.sendline() + device.expect(device.prompt) + device.sendline("python -c 'import os; print os.path.exists(\"%s\")'"%cert) + if 1 == device.expect(["True", "False"]): + # no point in carrying on + print_bold("Failed to create certificate for HTTPs service") + return False + device.expect(device.prompt) + # create and run the "secure" server + device.sendline('''cat > /root/SimpleHTTPsServer.py<< EOF +# taken from http://www.piware.de/2011/01/creating-an-https-server-in-python/ +# generate server.xml with the following command: +# openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes +# run as follows: +# python simple-https-server.py +# then in your browser, visit: +# https://<ip>:<port> + +import BaseHTTPServer, SimpleHTTPServer +import ssl + +httpd = BaseHTTPServer.HTTPServer((\"%s\", %s), SimpleHTTPServer.SimpleHTTPRequestHandler) +httpd.socket = ssl.wrap_socket (httpd.socket, certfile=\"%s\", server_side=True) +httpd.serve_forever() +EOF'''%(ip, port, cert)) + + device.expect(device.prompt) + device.sendline ("python -m /root/SimpleHTTPsServer") + if 0 == device.expect(['Traceback', pexpect.TIMEOUT], timeout=10): + print_bold("Failed to start service on ["+ip+"]:"+port) + return False + else: + if "BFT_DEBUG" in os.environ: + print_bold("Service started on ["+ip+"]:"+port) + return True From dc92e010243f1f8131015e868bfa32dad9ede518 Mon Sep 17 00:00:00 2001 From: "prekumar.contractor" <prekumar.contractor@libertyglobal.com> Date: Thu, 7 Feb 2019 13:40:06 +0100 Subject: [PATCH 565/947] tests: lib: installers: added "install_dovecot" and updated "install_IRCserver" -"install_dovecot"-install Dovecot core server which runs POP3 and IMAP -modified "install_IRCserver" to update linux before installation. This is due to the installation fails as linux is not updated tests: lib: common: added function to setup IPv6 Https server -The function will do the configurations to run IPv6 Https server Signed-off-by: prekumar.contractor <prekumar.contractor@libertyglobal.com> --- tests/lib/common.py | 45 +++++++++++++++++++++++++++++++++++++++++ tests/lib/installers.py | 16 +++++++++++++++ 2 files changed, 61 insertions(+) diff --git a/tests/lib/common.py b/tests/lib/common.py index 9c342933..86483df1 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -278,3 +278,48 @@ def start_ipbound_httpsservice(device, ip="0.0.0.0", port="443", cert="/root/ser if "BFT_DEBUG" in os.environ: print_bold("Service started on ["+ip+"]:"+port) return True + +def start_ip6bound_httpsservice(device, ip="::", port="4443", cert="/root/server.pem"): + ''' + Starts a simple HTTPS web service on a specified port, + bound to a specified interface. (e.g. tun0) + Send ctrl-c to stop (twice? needs better signal handling) + ''' + import re + # the https server needs a certificate, lets create a bogus one + device.sendline("openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes") + for i in range(10): + if device.expect([re.escape("]:"), re.escape("Email Address []:")]) > 0: + device.sendline() + break + device.sendline() + device.expect(device.prompt) + device.sendline("python -c 'import os; print os.path.exists(\"%s\")'"%cert) + if 1 == device.expect(["True", "False"]): + # no point in carrying on + print_bold("Failed to create certificate for HTTPs service") + return False + device.expect(device.prompt) + # create and run the "secure" server + device.sendline('''cat > /root/SimpleHTTPsServer.py<< EOF +import socket +import BaseHTTPServer as bhs +import SimpleHTTPServer as shs +import ssl + +class HTTPServerV6(bhs.HTTPServer): + address_family = socket.AF_INET6 +https=HTTPServerV6((\"%s\", %s),shs.SimpleHTTPRequestHandler) +https.socket = ssl.wrap_socket (https.socket, certfile=\"%s\", server_side=True) +https.serve_forever() +EOF'''%(ip, port, cert)) + + device.expect(device.prompt) + device.sendline ("python -m /root/SimpleHTTPsServer") + if 0 == device.expect(['Traceback', pexpect.TIMEOUT], timeout=10): + print_bold("Failed to start service on ["+ip+"]:"+port) + return False + else: + if "BFT_DEBUG" in os.environ: + print_bold("Service started on ["+ip+"]:"+port) + return True diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 69760df9..05cd889b 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -358,6 +358,22 @@ def install_IRCserver(device): device.expect(device.prompt) except: device.expect(device.prompt) + device.sendline('apt-get install update-inetd -y') # Update inetd before installation + device.expect(device.prompt, timeout=90) device.sendline('apt-get install inspircd -y') device.expect(['Setting up inspircd'], timeout=90) device.expect(device.prompt) + +def install_dovecot(device): + '''Install dovecot server if not present.''' + device.sendline('dovecot --version') + try: + device.expect(' \(', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install update-inetd -y') # Update inetd before installation + device.expect(device.prompt, timeout=90) + device.sendline('apt-get install dovecot-imapd dovecot-pop3d -y') + device.expect(['Processing triggers for dovecot-core'], timeout=90) + device.expect(device.prompt) From 37f13b700e5199ca950d0e7b9a79ceddf9ebd43b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 5 Feb 2019 16:15:42 -0600 Subject: [PATCH 566/947] tests: linux_boot: print message if board connection dies Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/linux_boot.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/linux_boot.py b/tests/linux_boot.py index 0812efbc..30f89734 100644 --- a/tests/linux_boot.py +++ b/tests/linux_boot.py @@ -61,6 +61,7 @@ def testWrapper(self): if not board.isalive(): self.result_grade = "SKIP" + print("\n\n=========== Test skipped! Board is not alive... =============") self.skipTest("Board is not alive") raise From 25bfd2eedd7eda7a74be98b35064b802584a68e3 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 5 Feb 2019 16:16:29 -0600 Subject: [PATCH 567/947] tests: bittorrent: add random seed Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/bittorrent.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/bittorrent.py b/tests/bittorrent.py index 01f181c2..aa6e4990 100644 --- a/tests/bittorrent.py +++ b/tests/bittorrent.py @@ -17,6 +17,7 @@ import pexpect import re import time +import random fake_generator = Factory.create() @@ -60,6 +61,8 @@ def startSingleUDP(self, mintime=1, maxtime=60): return args def runTest(self): + random.seed(99) + for d in [wan, lan]: d.sendline('apt-get update && apt-get -o Dpkg::Options::="--force-confnew" -y install socat pv') d.expect(prompt) From 1e1667dee5ad66aee633c5db8e202c06ee44c5dd Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 5 Feb 2019 17:52:22 -0600 Subject: [PATCH 568/947] tests: bittorrent: make socat args class dependent Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/bittorrent.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/tests/bittorrent.py b/tests/bittorrent.py index aa6e4990..b22f1fa8 100644 --- a/tests/bittorrent.py +++ b/tests/bittorrent.py @@ -29,6 +29,10 @@ class BitTorrentBasic(rootfs_boot.RootFSBootTest): conns = 100 + socat_recv = "UDP4-RECVFROM" + socat_send = "UDP4-SENDTO" + payload = "d1:ad2:id20:" + def startSingleUDP(self, mintime=1, maxtime=60): while True: random_ip = fake_generator.ipv4() @@ -49,16 +53,16 @@ def startSingleUDP(self, mintime=1, maxtime=60): random_rate = randint(1,1024) random_size = randint(int(1*random_rate*mintime), int(1024*random_rate*maxtime)) - wan.sendline("nohup socat UDP4-RECVFROM:%s,bind=%s system:'(echo -n d1:ad2:id20:; head /dev/zero) | pv -L %sk' &" % (random_port, random_ip, random_rate)) + args = (self.socat_recv, random_port, random_ip, self.payload, random_rate) + wan.sendline("nohup socat %s:%s,bind=%s system:'(echo -n %s; head /dev/zero) | pv -L %sk' &" % args) wan.expect(prompt) - args = (random_size, random_rate, random_ip, random_port) - lan.sendline("nohup socat system:'(echo -n d1:ad2:id20:; head -c %s /dev/zero) | pv -L %sk' UDP4-SENDTO:%s:%s &" % args) + args = (self.payload, random_size, random_rate, self.socat_send, random_ip, random_port) + lan.sendline("nohup socat system:'(echo -n %s; head -c %s /dev/zero) | pv -L %sk' %s:%s:%s &" % args) lan.expect(prompt) - self.all_conns.append(args) - # size, rate, ip, port - return args + self.all_conns.append((random_size, random_rate, random_ip, random_port)) + return (random_size, random_rate, random_ip, random_port) def runTest(self): random.seed(99) @@ -104,14 +108,14 @@ def cleanup_ip(self, ip): wan.expect(prompt) wan.sendline('pkill -9 -f socat.*bind=%s' % ip) wan.expect(prompt) - lan.sendline('pkill -9 -f socat.*UDP4-SENDTO:%s' % ip) + lan.sendline('pkill -9 -f socat.*%s:%s' % (self.socat_send, ip)) lan.expect(prompt) def check_and_clean_ips(self): lan.sendline("echo SYNC; ps aux | grep socat | sed -e 's/.*UDP/UDP/g' | tr '\n' ' '") lan.expect_exact("SYNC\r\n") lan.expect(prompt) - seen_ips = re.findall('UDP4-SENDTO:([^:]*):', lan.before) + seen_ips = re.findall('%s:([^:]*):' % self.socat_send, lan.before) if len(self.all_ips) > 0: ips_to_cleanup = set(zip(*self.all_ips)[0]) - set(seen_ips) From 48191243d48d12874689eba899002a306ee23b40 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 5 Feb 2019 20:36:54 -0600 Subject: [PATCH 569/947] tests: socat: refactor bittorrent in socat generic test Now we can reuse this for all sorts of payloads Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/bittorrent.py | 144 ++---------------------------------------- tests/socat.py | 151 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 157 insertions(+), 138 deletions(-) create mode 100644 tests/socat.py diff --git a/tests/bittorrent.py b/tests/bittorrent.py index b22f1fa8..570899ca 100644 --- a/tests/bittorrent.py +++ b/tests/bittorrent.py @@ -6,151 +6,18 @@ # The full text can be found in LICENSE in the root directory. import re +import socat import rootfs_boot from devices import board, wan, lan, prompt -from random import randint -import socket -import struct -import ipaddress -from faker import Factory import pexpect -import re -import time -import random - -fake_generator = Factory.create() - -class BitTorrentBasic(rootfs_boot.RootFSBootTest): - '''Super basic simulate of bittorrent traffic''' - - all_ips = [] - all_conns = [] - - conns = 100 +class BitTorrentBasic(socat.SoCat): + '''Super simple simulation of BitTorrent traffic''' socat_recv = "UDP4-RECVFROM" socat_send = "UDP4-SENDTO" payload = "d1:ad2:id20:" - def startSingleUDP(self, mintime=1, maxtime=60): - while True: - random_ip = fake_generator.ipv4() - random_port = randint(1024, 65535) - if not ipaddress.ip_address(random_ip.decode()).is_private: - if (ipaddress.ip_address(random_ip.decode()), random_port) not in self.all_ips: - break - else: - print ("Skipping ip addr: %s" % random_ip) - print("Connecting to %s:%s" % (random_ip, random_port)) - - self.all_ips.append((random_ip, random_port)) - - # start listners - wan.sendline('ip addr add %s/32 dev eth1' % random_ip) - wan.expect(prompt) - - random_rate = randint(1,1024) - random_size = randint(int(1*random_rate*mintime), int(1024*random_rate*maxtime)) - - args = (self.socat_recv, random_port, random_ip, self.payload, random_rate) - wan.sendline("nohup socat %s:%s,bind=%s system:'(echo -n %s; head /dev/zero) | pv -L %sk' &" % args) - wan.expect(prompt) - - args = (self.payload, random_size, random_rate, self.socat_send, random_ip, random_port) - lan.sendline("nohup socat system:'(echo -n %s; head -c %s /dev/zero) | pv -L %sk' %s:%s:%s &" % args) - lan.expect(prompt) - - self.all_conns.append((random_size, random_rate, random_ip, random_port)) - return (random_size, random_rate, random_ip, random_port) - - def runTest(self): - random.seed(99) - - for d in [wan, lan]: - d.sendline('apt-get update && apt-get -o Dpkg::Options::="--force-confnew" -y install socat pv') - d.expect(prompt) - - max_time = 0 - single_max = 45 - - board.collect_stats(stats=['mpstat']) - - # TODO: query interfaces but this is OK for now - for i in range(self.conns): - board.get_nf_conntrack_conn_count() - board.touch() - print ("Starting connection %s" % i) - sz, rate, ip, port = self.startSingleUDP(maxtime=single_max) - print ("started UDP to %s:%s sz = %s, rate = %sk" % (ip, port, sz, rate)) - - max_time = max(max_time, sz / ( rate * 1024)) - self.check_and_clean_ips() - - print ("waiting max time of %ss" % max_time) - - start = time.time() - while time.time() - start < max_time + 5: - lan.sendline('wait') - lan.expect_exact('wait') - lan.expect([pexpect.TIMEOUT] + prompt, timeout=5) - lan.sendcontrol('c') - lan.expect(prompt) - self.check_and_clean_ips() - board.get_nf_conntrack_conn_count() - board.touch() - - self.recover() - - def cleanup_ip(self, ip): - wan.sendline('ip addr del %s/32 dev eth1' % ip) - wan.expect_exact('ip addr del %s/32 dev eth1' % ip) - wan.expect(prompt) - wan.sendline('pkill -9 -f socat.*bind=%s' % ip) - wan.expect(prompt) - lan.sendline('pkill -9 -f socat.*%s:%s' % (self.socat_send, ip)) - lan.expect(prompt) - - def check_and_clean_ips(self): - lan.sendline("echo SYNC; ps aux | grep socat | sed -e 's/.*UDP/UDP/g' | tr '\n' ' '") - lan.expect_exact("SYNC\r\n") - lan.expect(prompt) - seen_ips = re.findall('%s:([^:]*):' % self.socat_send, lan.before) - - if len(self.all_ips) > 0: - ips_to_cleanup = set(zip(*self.all_ips)[0]) - set(seen_ips) - for done_ip in ips_to_cleanup: - self.cleanup_ip(done_ip) - self.all_ips = [e for e in self.all_ips if e[0] != done_ip ] - - def recover(self): - wan.sendcontrol('c') - wan.expect(prompt) - wan.sendline('killall -9 socat pv') - wan.expect_exact('killall -9 socat pv') - wan.expect(prompt) - - for d in [wan, lan]: - d.sendcontrol('c') - d.expect(prompt) - d.sendline('pgrep -f d1:ad2:id20') - d.expect_exact('pgrep -f d1:ad2:id20') - d.expect(prompt) - d.sendline('pkill -9 -f d1:ad2:id20') - d.expect_exact('pkill -9 -f d1:ad2:id20') - d.expect(prompt) - d.sendline('killall -9 socat') - d.expect_exact('killall -9 socat') - d.expect(prompt) - - for ip, port in self.all_ips: - self.cleanup_ip(ip) - - # this needs to be here because we need to make sure mpstat is cleaned up - board.parse_stats(dict_to_log=self.logged) - print ("mpstat cpu usage = %s" % self.logged['mpstat']) - self.result_message = "BitTorrent test with %s connections, cpu usage = %s" % (self.conns, self.logged['mpstat']) - class BitTorrentSingle(BitTorrentBasic): '''Single UDP/Bittorrent flow''' @@ -159,7 +26,7 @@ def runTest(self): #d.sendline('apt-get update && apt-get -o Dpkg::Options::="--force-confnew" -y install socat pv') #d.expect(prompt) - sz, rate, ip, port = self.startSingleUDP() + sz, rate, ip, port = self.startSingleFlow() print ("started UDP to %s:%s sz = %s, rate = %sk" % (ip, port, sz, rate)) time = sz / ( rate * 1024) print("time should be ~%s" % time) @@ -167,6 +34,7 @@ def runTest(self): lan.sendline('fg') lan.expect(prompt, timeout=time+10) + # TODO: make this a function that's more robust board.get_pp_dev().sendline('cat /proc/net/nf_conntrack | grep dst=%s.*dport=%s' % (ip, port)) board.get_pp_dev().expect(prompt) @@ -185,7 +53,7 @@ def runTest(self): board.get_nf_conntrack_conn_count() for i in range(10000): - sz, rate, ip, port = self.startSingleUDP(maxtime=maxtime) + sz, rate, ip, port = self.startSingleFlow(maxtime=maxtime) print ("started UDP to %s:%s sz = %s, rate = %sk" % (ip, port, sz, rate)) time = sz / ( rate * 1024) print("time should be ~%s" % time) diff --git a/tests/socat.py b/tests/socat.py new file mode 100644 index 00000000..bb3898e5 --- /dev/null +++ b/tests/socat.py @@ -0,0 +1,151 @@ +import re +import rootfs_boot +from devices import board, wan, lan, prompt + +from random import randint +import ipaddress +from faker import Factory +import pexpect +import re +import time +import random + +fake_generator = Factory.create() + +class SoCat(rootfs_boot.RootFSBootTest): + '''Super simple simulatation of HTTP traffic''' + + all_ips = [] + all_conns = [] + + conns = 100 + + socat_recv = "TCP-LISTEN" + socat_send = "TCP" + payload = '"GET / HTTP/1.0\\r\\n\\r\\n"' + + def startSingleFlow(self, mintime=1, maxtime=60): + while True: + random_ip = fake_generator.ipv4() + random_port = randint(1024, 65535) + if not ipaddress.ip_address(random_ip.decode()).is_private: + if (ipaddress.ip_address(random_ip.decode()), random_port) not in self.all_ips: + break + else: + print ("Skipping ip addr: %s" % random_ip) + print("Connecting to %s:%s" % (random_ip, random_port)) + + self.all_ips.append((random_ip, random_port)) + + # start listners + wan.sendline('ip addr add %s/32 dev eth1' % random_ip) + wan.expect(prompt) + + random_rate = randint(1,1024) + random_size = randint(int(1*random_rate*mintime), int(1024*random_rate*maxtime)) + + args = (self.socat_recv, random_port, random_ip, self.payload, random_rate) + wan.sendline("nohup socat %s:%s,bind=%s system:'(echo -n %s; head /dev/zero) | pv -L %sk' &" % args) + print("nohup socat %s:%s,bind=%s system:'(echo -n %s; head /dev/zero) | pv -L %sk' &" % args) + wan.expect(prompt) + + args = (self.payload, random_size, random_rate, self.socat_send, random_ip, random_port) + lan.sendline("nohup socat system:'(echo -n %s; head -c %s /dev/zero) | pv -L %sk' %s:%s:%s &" % args) + print("nohup socat system:'(echo -n %s; head -c %s /dev/zero) | pv -L %sk' %s:%s:%s &" % args) + lan.expect(prompt) + + self.all_conns.append((random_size, random_rate, random_ip, random_port)) + return (random_size, random_rate, random_ip, random_port) + + def runTest(self): + random.seed(99) + + for d in [wan, lan]: + d.sendline('apt-get update && apt-get -o Dpkg::Options::="--force-confnew" -y install socat pv') + d.expect(prompt) + + max_time = 0 + single_max = 45 + + board.collect_stats(stats=['mpstat']) + + # TODO: query interfaces but this is OK for now + for i in range(self.conns): + board.get_nf_conntrack_conn_count() + board.touch() + print ("Starting connection %s" % i) + sz, rate, ip, port = self.startSingleFlow(maxtime=single_max) + print ("started flow to %s:%s sz = %s, rate = %sk" % (ip, port, sz, rate)) + + max_time = max(max_time, sz / ( rate * 1024)) + self.check_and_clean_ips() + + print ("waiting max time of %ss" % max_time) + + start = time.time() + while time.time() - start < max_time + 5: + lan.sendline('wait') + lan.expect_exact('wait') + lan.expect([pexpect.TIMEOUT] + prompt, timeout=5) + lan.sendcontrol('c') + lan.expect(prompt) + self.check_and_clean_ips() + board.get_nf_conntrack_conn_count() + board.touch() + + self.recover() + + def cleanup_ip(self, ip): + wan.sendline('ip addr del %s/32 dev eth1' % ip) + wan.expect_exact('ip addr del %s/32 dev eth1' % ip) + wan.expect(prompt) + wan.sendline('pkill -9 -f socat.*bind=%s' % ip) + wan.expect(prompt) + lan.sendline('pkill -9 -f socat.*%s:%s' % (self.socat_send, ip)) + lan.expect(prompt) + + def check_and_clean_ips(self): + if 'TCP' in self.socat_send: + c = 'TCP' + else: + c = 'UDP' + lan.sendline("echo SYNC; ps aux | grep socat | sed -e 's/.*%s/%s/g' | tr '\n' ' '" % (c, c)) + lan.expect_exact("SYNC\r\n") + lan.expect(prompt) + seen_ips = re.findall('%s:([^:]*):' % self.socat_send, lan.before) + + if len(self.all_ips) > 0: + ips_to_cleanup = set(zip(*self.all_ips)[0]) - set(seen_ips) + for done_ip in ips_to_cleanup: + self.cleanup_ip(done_ip) + self.all_ips = [e for e in self.all_ips if e[0] != done_ip ] + + def recover(self): + wan.sendcontrol('c') + wan.expect(prompt) + wan.sendline('killall -9 socat pv') + wan.expect_exact('killall -9 socat pv') + wan.expect(prompt) + + for d in [wan, lan]: + d.sendcontrol('c') + d.expect(prompt) + d.sendline('pgrep -f d1:ad2:id20') + d.expect_exact('pgrep -f d1:ad2:id20') + d.expect(prompt) + d.sendline('pkill -9 -f d1:ad2:id20') + d.expect_exact('pkill -9 -f d1:ad2:id20') + d.expect(prompt) + d.sendline('killall -9 socat') + d.expect_exact('killall -9 socat') + d.expect(prompt) + + for ip, port in self.all_ips: + self.cleanup_ip(ip) + + # this needs to be here because we need to make sure mpstat is cleaned up + board.parse_stats(dict_to_log=self.logged) + print ("mpstat cpu usage = %s" % self.logged['mpstat']) + self.result_message = "BitTorrent test with %s connections, cpu usage = %s" % (self.conns, self.logged['mpstat']) + + From 1b3d9d2193d430535b7f9df0d3d28f3a31e18c9b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 5 Feb 2019 20:38:14 -0600 Subject: [PATCH 570/947] tests: iptables: add test to dump iptables rules Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/iptables.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 tests/iptables.py diff --git a/tests/iptables.py b/tests/iptables.py new file mode 100644 index 00000000..cbdb37f5 --- /dev/null +++ b/tests/iptables.py @@ -0,0 +1,13 @@ +import rootfs_boot + +from devices import board + +class IPTablesDump(rootfs_boot.RootFSBootTest): + '''Dumps all IPTables rules with stats''' + def runTest(self): + pp = board.get_pp_dev() + for tbl in ['filter', 'nat', 'mangle', 'raw', 'security']: + pp.sendline('iptables -n -t %s -L -v; echo DONE' % tbl) + pp.expect_exact('echo DONE') + pp.expect_exact('DONE') + pp.expect(pp.prompt) From a75d2163283158299218f3347b7c403e466d0024 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 6 Feb 2019 09:11:21 -0600 Subject: [PATCH 571/947] tests: iptables: add rule to flush mangle table Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/iptables.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/iptables.py b/tests/iptables.py index cbdb37f5..a64db67f 100644 --- a/tests/iptables.py +++ b/tests/iptables.py @@ -11,3 +11,10 @@ def runTest(self): pp.expect_exact('echo DONE') pp.expect_exact('DONE') pp.expect(pp.prompt) + +class IPTablesFlushMangle(rootfs_boot.RootFSBootTest): + '''Flushes mangle table''' + def runTest(self): + pp = board.get_pp_dev() + pp.sendline('iptables -t mangle -F; iptables -t mangle -X') + pp.expect(pp.prompt) From eaac75b88b1eb07ce8d6aec76f503a3fe2fa6fa8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 6 Feb 2019 13:39:57 -0600 Subject: [PATCH 572/947] tests: add lite conn stress ab test Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/connection_stress.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/connection_stress.py b/tests/connection_stress.py index 4ec4d6f2..2fa79cb1 100644 --- a/tests/connection_stress.py +++ b/tests/connection_stress.py @@ -16,6 +16,8 @@ class Connection_Stress(rootfs_boot.RootFSBootTest): concurrency = 25 num_conn = 5000 + + # for results reqs_per_sec = 0 def runTest(self): @@ -48,3 +50,9 @@ def recover(self): avg_cpu = self.logged['mpstat'] msg = "ApacheBench measured %s connections/second, CPU use = %s%%." % (self.reqs_per_sec, avg_cpu) self.result_message = msg + +class Connection_Stress_Lite(Connection_Stress): + '''Measured CPU use while creating thousands of connections.''' + + concurrency = 5 + num_conn = 500 From 079f8aa88ee329c253f0e651149c533c32c86765 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 6 Feb 2019 13:40:11 -0600 Subject: [PATCH 573/947] tests: iptables: add test to flush ip tables counters Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/iptables.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/iptables.py b/tests/iptables.py index a64db67f..bfb92476 100644 --- a/tests/iptables.py +++ b/tests/iptables.py @@ -18,3 +18,11 @@ def runTest(self): pp = board.get_pp_dev() pp.sendline('iptables -t mangle -F; iptables -t mangle -X') pp.expect(pp.prompt) + + +class IPTablesResetCounters(rootfs_boot.RootFSBootTest): + '''Reset iptables counters''' + def runTest(self): + pp = board.get_pp_dev() + pp.sendline('iptables -Z') + pp.expect(pp.prompt) From 48bf724c798b42d8b2e7c38d62f8843639884cdf Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 6 Feb 2019 17:58:43 -0600 Subject: [PATCH 574/947] tests: iptables: save iptables log to file Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/iptables.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/iptables.py b/tests/iptables.py index bfb92476..f752bdd6 100644 --- a/tests/iptables.py +++ b/tests/iptables.py @@ -1,16 +1,20 @@ import rootfs_boot +import os + from devices import board class IPTablesDump(rootfs_boot.RootFSBootTest): '''Dumps all IPTables rules with stats''' def runTest(self): pp = board.get_pp_dev() - for tbl in ['filter', 'nat', 'mangle', 'raw', 'security']: - pp.sendline('iptables -n -t %s -L -v; echo DONE' % tbl) - pp.expect_exact('echo DONE') - pp.expect_exact('DONE') - pp.expect(pp.prompt) + with open(os.path.join(self.config.output_dir, 'iptables.log'), 'w') as ipt_log: + for tbl in ['filter', 'nat', 'mangle', 'raw', 'security']: + pp.sendline('iptables -n -t %s -L -v; echo DONE' % tbl) + pp.expect_exact('echo DONE') + pp.expect_exact('DONE') + ipt_log.write(pp.before) + pp.expect(pp.prompt) class IPTablesFlushMangle(rootfs_boot.RootFSBootTest): '''Flushes mangle table''' From b92bb19c389184a23e72b4f9a464bceab9498ee4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 7 Feb 2019 11:02:15 -0600 Subject: [PATCH 575/947] bft: switch to print() Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bft b/bft index 21ab0763..410681ed 100755 --- a/bft +++ b/bft @@ -310,7 +310,7 @@ def main(): else: clog.write('%s: [%s] %s\n' % (e['name'], e['time'], e['text'])) except: - print "failed to parse line: %s" % repr(e) + print("failed to parse line: %s" % repr(e)) import operator console_combined.sort(key=operator.itemgetter('time')) From eab6eca856ab4b6fb4834bcadfc90d894c8da209 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 8 Feb 2019 13:08:14 -0600 Subject: [PATCH 576/947] tests: console_delay: add test to enable/disable console delay Sometimes tests can trigger serial buffer overruns so if you know this might occur and don't want your test to fail because of it you can run this test Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/console_delay.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 tests/console_delay.py diff --git a/tests/console_delay.py b/tests/console_delay.py new file mode 100644 index 00000000..9372aa14 --- /dev/null +++ b/tests/console_delay.py @@ -0,0 +1,12 @@ +import rootfs_boot + +from devices import board + +class DelayBetweenChar(rootfs_boot.RootFSBootTest): + def runTest(self): + board.delaybetweenchar = 0.1 + +class NoDelayBetweenChar(rootfs_boot.RootFSBootTest): + def runTest(self): + board.delaybetweenchar = None + From 905f49a6245b49a9d39dc9e082fcf99400d133be Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 8 Feb 2019 13:43:10 -0600 Subject: [PATCH 577/947] tests: console_delay: add extreme delay option Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/console_delay.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/console_delay.py b/tests/console_delay.py index 9372aa14..29d9b89a 100644 --- a/tests/console_delay.py +++ b/tests/console_delay.py @@ -6,6 +6,10 @@ class DelayBetweenChar(rootfs_boot.RootFSBootTest): def runTest(self): board.delaybetweenchar = 0.1 +class DelayBetweenCharExtreme(rootfs_boot.RootFSBootTest): + def runTest(self): + board.delaybetweenchar = 1 + class NoDelayBetweenChar(rootfs_boot.RootFSBootTest): def runTest(self): board.delaybetweenchar = None From 277bca2cae6bad5350d59580772a311670f1adee Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 7 Feb 2019 11:04:53 -0600 Subject: [PATCH 578/947] bft: remove unused imports Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/bft b/bft index 410681ed..5690b544 100755 --- a/bft +++ b/bft @@ -11,14 +11,10 @@ import inspect import os import random import sys -import unittest2 import json import hashlib import time import json -import argparse -import re -import csv import traceback from datetime import datetime @@ -30,7 +26,7 @@ import zephyr_reporter import site site.addsitedir(os.path.dirname(os.path.realpath(__file__))) -from devices import debian, logstash, elasticlogger, get_device +from devices import logstash, elasticlogger, get_device import matplotlib matplotlib.use('Agg') From ac01cbe02f1203b094872218fad7c5281ac46ce0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 8 Feb 2019 15:12:49 -0600 Subject: [PATCH 579/947] tests: conn_stress: add intense test and fix timeout Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/connection_stress.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tests/connection_stress.py b/tests/connection_stress.py index 2fa79cb1..cc0e6726 100644 --- a/tests/connection_stress.py +++ b/tests/connection_stress.py @@ -30,13 +30,15 @@ def runTest(self): wan.sendline(cmd) wan.expect(prompt) # Lan Device: download small file a lot + # TODO: this is actually a 404 for lighthttpd config issues? url = 'http://%s/%s' % (wan.gw, fname) # Start CPU monitor board.collect_stats(stats=['mpstat']) # Lan Device: download small file a lot lan.sendline('\nab -dn %s -c %s %s' % (self.num_conn, self.concurrency, url)) lan.expect('Benchmarking', timeout=5) - if 0 != lan.expect(['Requests per second:\s+(\d+)', 'apr_socket_recv: Connection reset by peer'], timeout=120): + timeout=0.05*self.num_conn + if 0 != lan.expect(['Requests per second:\s+(\d+)', 'apr_socket_recv: Connection reset by peer'], timeout=timeout): raise Exception("ab failed to run") self.reqs_per_sec = int(lan.match.group(1)) lan.expect(prompt) @@ -56,3 +58,9 @@ class Connection_Stress_Lite(Connection_Stress): concurrency = 5 num_conn = 500 + +class Connection_Stress_Intense(Connection_Stress): + '''Measured CPU use while creating thousands of connections.''' + + concurrency = 25 + num_conn = 20000 From ae3251b54ddfd3eba002fce535286901114b94c6 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Thu, 7 Feb 2019 22:30:43 +0100 Subject: [PATCH 580/947] devices: debian: added Listen 0.0.0.0 to tinyproxy.conf It looks like tinyproxy is not accepting connections if Listen 0.0.0.0 is not in the config file. But how has it work till now? Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/debian.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index 495133eb..c7ac83da 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -878,6 +878,8 @@ def start_lan_client(self, wan_gw=None): self.expect(self.prompt) self.sendline("sed '/Listen/d' -i %s" % f) self.expect(self.prompt) + self.sendline('echo "Listen 0.0.0.0" >> %s' % f) + self.expect(self.prompt) self.sendline('echo "Listen ::" >> %s' % f) self.expect(self.prompt) self.sendline('/etc/init.d/tinyproxy restart') From d6682762f4e33c76774bac178606e93b00f0a6a4 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Fri, 8 Feb 2019 16:48:59 +0100 Subject: [PATCH 581/947] tests: lib: installers: added vpn install functions Installs for OpenVPN and PPTP Committed the configuration scrip openvpn-install.sh but not yet integrated. Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/lib/installers.py | 148 ++++ tests/lib/scripts/openvpn-install.sh | 1207 ++++++++++++++++++++++++++ 2 files changed, 1355 insertions(+) create mode 100644 tests/lib/scripts/openvpn-install.sh diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 05cd889b..4915d4c6 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -377,3 +377,151 @@ def install_dovecot(device): device.sendline('apt-get install dovecot-imapd dovecot-pop3d -y') device.expect(['Processing triggers for dovecot-core'], timeout=90) device.expect(device.prompt) + +def install_ovpn_server(device, remove=False, _user='lan', _ip="ipv4"): + '''Un/Install the OpenVPN server via a handy script''' + device.sendline('cd') + device.expect_exact('cd') + device.expect(device.prompt) + device.sendline('ls -l /etc/init.d/openvpn') + index = device.expect(['(\\s{1,}\\d{4}()\\s{1,}\\/etc\\/init\\.d\\/openvpn)'] + device.prompt, timeout=90) + + # do we want to remove it? + if remove: + if index == 0: + device.expect(device.prompt) + # be brutal, the server may not be responding to a stop + device.sendline('killall -9 openvpn') + device.expect(device.prompt, timeout=60) + device.sendline('./openvpn-install.sh') + device.expect('Select an option.*: ') + device.sendline('3') + device.expect_exact('Do you really want to remove OpenVPN? [y/n]: n') + device.sendcontrol('h') + device.sendline('y') + device.expect(device.prompt, timeout=90) + return + + # do the install + if index != 0: + dev_ip = device.get_interface_ipaddr(device.iface_dut) + device.sendline('apt-get update') + device.expect(device.prompt) + device.sendline('curl -O https://raw.githubusercontent.com/Angristan/openvpn-install/master/openvpn-install.sh') + device.expect(device.prompt, timeout=90) + device.sendline('chmod +x openvpn-install.sh') + device.expect(device.prompt) + device.sendline('./openvpn-install.sh') + device.expect('IP address:.*', timeout=120) + for i in range(20): + device.sendcontrol('h') + device.sendline(str(dev_ip)) + device.expect('Public IPv4 address or hostname:.*') + device.sendline(dev_ip) + device.expect('Do you want to enable IPv6 support.*:.*') + if _ip == "ipv4": + device.sendline() + elif _ip == "ipv6": + device.sendcontrol('h') + device.sendline('y') + device.expect('Port choice.*:.*') + device.sendline() + device.expect('Protocol.*:.*') + device.sendline() + device.expect('DNS.*:.*') + device.sendline() + device.expect('Enable compression.*:.*') + device.sendline() + device.expect('Customize encryption settings.*: n') + device.sendline() + device.expect('Press any key to continue...') + device.sendline() + device.expect('.*Client name: ', timeout=120) + device.sendline(_user) + device.expect('Select an option.*: 1') + device.sendline() + device.expect(device.prompt, timeout=90) + device.sendline('/etc/init.d/openvpn stop') + device.expect(device.prompt) + if _ip == "ipv4": + addr = dev_ip + elif _ip == "ipv6": + addr = device.get_interface_ip6addr(device.iface_dut) + device.sendline('echo "local '+addr+'" > /etc/openvpn/server.conf.tmp') + device.expect(device.prompt) + device.sendline('cat /etc/openvpn/server.conf >> /etc/openvpn/server.conf.tmp') + device.expect(device.prompt) + device.sendline('mv /etc/openvpn/server.conf.tmp /etc/openvpn/server.conf') + device.expect(device.prompt) + + device.sendline('/etc/init.d/openvpn status') + index = device.expect(["VPN 'server' is running" ] + [ "VPN 'server' is not running ... failed"] +device.prompt, timeout=90) + if index != 0: + device.sendline('/etc/init.d/openvpn restart') + device.expect(["Starting virtual private network daemon: server" ]) + # the following are for diagnositcs + device.sendline('/etc/init.d/openvpn status') + device.expect(device.prompt) + device.sendline('ip a') + + device.expect(device.prompt) + +def install_ovpn_client(device, remove=False): + ''' + Un/Install the OpenVPN client + To run the client as a daemon use: + openvpn --daemon vpn --log ovpn.log --config ./<user>.ovpn + ''' + if remove: + device.sendline('killall -9 openvpn') + device.expect(device.prompt) + device.sendline('apt remove openvpn -y') + device.expect(device.prompt, timeout=120) + return + + device.sendline('apt-get install openvpn -y') + device.expect(device.prompt, timeout=90) + +def install_pptpd_server(device, remove=False): + ''' + Un/Install the pptpd + ''' + import pexpect + device.expect([pexpect.TIMEOUT]+device.prompt, timeout=5) + device.sendline('ls -l /usr/sbin/pptpd') + index = device.expect(['(\\s{1,}\\d{4}()\\s{1,}\\/etc\\/init\\.d\\/openvpn)'] + device.prompt, timeout=90) + if remove: + if index == 0: + device.sendline("/etc/init.d/pptpd stop") + device.expect(device.prompt, timeout=60) + device.sendline("apt-get remove pptpd -y") + device.expect(device.prompt, timeout=60) + return + + if index != 0: + device.sendline("apt-get install pptpd -y") + device.expect(device.prompt, timeout=90) + + device.sendline("/etc/init.d/pptpd restart") + device.expect(device.prompt, timeout=60) + +def install_pptp_client(device, remove=False): + ''' + Un/Install the pptp-linux package + ''' + device.sendline('pptp --version') + index = device.expect(['pptp version'] + device.prompt, timeout=90) + + if remove: + if index == 0: + device.expect(device.prompt) + device.sendline("poff pptpserver") + device.expect(device.prompt) + device.sendline('apt-get remove pptp-linux -y') + device.expect(device.prompt, timeout=60) + return + + if index != 0: + device.sendline('apt-get install pptp-linux -y') + + device.expect(device.prompt, timeout=60) diff --git a/tests/lib/scripts/openvpn-install.sh b/tests/lib/scripts/openvpn-install.sh new file mode 100644 index 00000000..d02ffe4a --- /dev/null +++ b/tests/lib/scripts/openvpn-install.sh @@ -0,0 +1,1207 @@ +#!/bin/bash + +# Secure OpenVPN server installer for Debian, Ubuntu, CentOS, Fedora and Arch Linux +# https://github.com/angristan/openvpn-install + +function isRoot () { + if [ "$EUID" -ne 0 ]; then + return 1 + fi +} + +function tunAvailable () { + if [ ! -e /dev/net/tun ]; then + return 1 + fi +} + +function checkOS () { + if [[ -e /etc/debian_version ]]; then + OS="debian" + source /etc/os-release + + if [[ "$ID" == "debian" ]]; then + if [[ ! $VERSION_ID =~ (8|9) ]]; then + echo "⚠️ Your version of Debian is not supported." + echo "" + echo "However, if you're using Debian >= 9 or unstable/testing then you can continue." + echo "Keep in mind they are not supported, though." + echo "" + until [[ $CONTINUE =~ (y|n) ]]; do + read -rp "Continue? [y/n]: " -e CONTINUE + done + if [[ "$CONTINUE" = "n" ]]; then + exit 1 + fi + fi + elif [[ "$ID" == "ubuntu" ]];then + OS="ubuntu" + if [[ ! $VERSION_ID =~ (16.04|18.04) ]]; then + echo "⚠️ Your version of Ubuntu is not supported." + echo "" + echo "However, if you're using Ubuntu > 17 or beta, then you can continue." + echo "Keep in mind they are not supported, though." + echo "" + until [[ $CONTINUE =~ (y|n) ]]; do + read -rp "Continue? [y/n]: " -e CONTINUE + done + if [[ "$CONTINUE" = "n" ]]; then + exit 1 + fi + fi + fi + elif [[ -e /etc/fedora-release ]]; then + OS=fedora + elif [[ -e /etc/centos-release ]]; then + if ! grep -qs "^CentOS Linux release 7" /etc/centos-release; then + echo "Your version of CentOS is not supported." + echo "The script only support CentOS 7." + echo "" + unset CONTINUE + until [[ $CONTINUE =~ (y|n) ]]; do + read -rp "Continue anyway? [y/n]: " -e CONTINUE + done + if [[ "$CONTINUE" = "n" ]]; then + echo "Ok, bye!" + exit 1 + fi + fi + OS=centos + elif [[ -e /etc/arch-release ]]; then + OS=arch + else + echo "Looks like you aren't running this installer on a Debian, Ubuntu, Fedora, CentOS or Arch Linux system" + exit 1 + fi +} + +function initialCheck () { + if ! isRoot; then + echo "Sorry, you need to run this as root" + exit 1 + fi + if ! tunAvailable; then + echo "TUN is not available" + exit 1 + fi + checkOS +} + +function installUnbound () { + if [[ ! -e /etc/unbound/unbound.conf ]]; then + + if [[ "$OS" =~ (debian|ubuntu) ]]; then + apt-get install -y unbound + + # Configuration + echo 'interface: 10.8.0.1 +access-control: 10.8.0.1/24 allow +hide-identity: yes +hide-version: yes +use-caps-for-id: yes +prefetch: yes' >> /etc/unbound/unbound.conf + + elif [[ "$OS" = "centos" ]]; then + yum install -y unbound + + # Configuration + sed -i 's|# interface: 0.0.0.0$|interface: 10.8.0.1|' /etc/unbound/unbound.conf + sed -i 's|# access-control: 127.0.0.0/8 allow|access-control: 10.8.0.1/24 allow|' /etc/unbound/unbound.conf + sed -i 's|# hide-identity: no|hide-identity: yes|' /etc/unbound/unbound.conf + sed -i 's|# hide-version: no|hide-version: yes|' /etc/unbound/unbound.conf + sed -i 's|use-caps-for-id: no|use-caps-for-id: yes|' /etc/unbound/unbound.conf + + elif [[ "$OS" = "fedora" ]]; then + dnf install -y unbound + + # Configuration + sed -i 's|# interface: 0.0.0.0$|interface: 10.8.0.1|' /etc/unbound/unbound.conf + sed -i 's|# access-control: 127.0.0.0/8 allow|access-control: 10.8.0.1/24 allow|' /etc/unbound/unbound.conf + sed -i 's|# hide-identity: no|hide-identity: yes|' /etc/unbound/unbound.conf + sed -i 's|# hide-version: no|hide-version: yes|' /etc/unbound/unbound.conf + sed -i 's|# use-caps-for-id: no|use-caps-for-id: yes|' /etc/unbound/unbound.conf + + elif [[ "$OS" = "arch" ]]; then + pacman -Syu --noconfirm unbound + + # Get root servers list + curl -o /etc/unbound/root.hints https://www.internic.net/domain/named.cache + + mv /etc/unbound/unbound.conf /etc/unbound/unbound.conf.old + + echo 'server: + use-syslog: yes + do-daemonize: no + username: "unbound" + directory: "/etc/unbound" + trust-anchor-file: trusted-key.key + root-hints: root.hints + interface: 10.8.0.1 + access-control: 10.8.0.1/24 allow + port: 53 + num-threads: 2 + use-caps-for-id: yes + harden-glue: yes + hide-identity: yes + hide-version: yes + qname-minimisation: yes + prefetch: yes' > /etc/unbound/unbound.conf + fi + + if [[ ! "$OS" =~ (fedora|centos) ]];then + # DNS Rebinding fix + echo "private-address: 10.0.0.0/8 +private-address: 172.16.0.0/12 +private-address: 192.168.0.0/16 +private-address: 169.254.0.0/16 +private-address: fd00::/8 +private-address: fe80::/10 +private-address: 127.0.0.0/8 +private-address: ::ffff:0:0/96" >> /etc/unbound/unbound.conf + fi + else # Unbound is already installed + echo 'include: /etc/unbound/openvpn.conf' >> /etc/unbound/unbound.conf + + # Add Unbound 'server' for the OpenVPN subnet + echo 'server: +interface: 10.8.0.1 +access-control: 10.8.0.1/24 allow +hide-identity: yes +hide-version: yes +use-caps-for-id: yes +prefetch: yes +private-address: 10.0.0.0/8 +private-address: 172.16.0.0/12 +private-address: 192.168.0.0/16 +private-address: 169.254.0.0/16 +private-address: fd00::/8 +private-address: fe80::/10 +private-address: 127.0.0.0/8 +private-address: ::ffff:0:0/96' > /etc/unbound/openvpn.conf + fi + + systemctl enable unbound + systemctl restart unbound +} + +function installQuestions () { + echo "Welcome to the OpenVPN installer!" + echo "The git repository is available at: https://github.com/angristan/openvpn-install" + echo "" + + echo "I need to ask you a few questions before starting the setup." + echo "You can leave the default options and just press enter if you are ok with them." + echo "" + echo "I need to know the IPv4 address of the network interface you want OpenVPN listening to." + echo "Unless your server is behind NAT, it should be your public IPv4 address." + + # Detect public IPv4 address and pre-fill for the user + IP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1) + read -rp "IP address: " -e -i "$IP" IP + # If $IP is a private IP address, the server must be behind NAT + if echo "$IP" | grep -qE '^(10\.|172\.1[6789]\.|172\.2[0-9]\.|172\.3[01]\.|192\.168)'; then + echo "" + echo "It seems this server is behind NAT. What is its public IPv4 address or hostname?" + echo "We need it for the clients to connect to the server." + until [[ "$PUBLICIP" != "" ]]; do + read -rp "Public IPv4 address or hostname: " -e PUBLICIP + done + fi + + echo "" + echo "Checking for IPv6 connectivity..." + echo "" + # "ping6" and "ping -6" availability varies depending on the distribution + if type ping6 > /dev/null 2>&1; then + PING6="ping6 -c3 ipv6.google.com > /dev/null 2>&1" + else + PING6="ping -6 -c3 ipv6.google.com > /dev/null 2>&1" + fi + if eval "$PING6"; then + echo "Your host appears to have IPv6 connectivity." + SUGGESTION="y" + else + echo "Your host does not appear to have IPv6 connectivity." + SUGGESTION="n" + fi + echo "" + # Ask the user if they want to enable IPv6 regardless its availability. + until [[ $IPV6_SUPPORT =~ (y|n) ]]; do + read -rp "Do you want to enable IPv6 support (NAT)? [y/n]: " -e -i $SUGGESTION IPV6_SUPPORT + done + echo "" + echo "What port do you want OpenVPN to listen to?" + echo " 1) Default: 1194" + echo " 2) Custom" + echo " 3) Random [49152-65535]" + until [[ "$PORT_CHOICE" =~ ^[1-3]$ ]]; do + read -rp "Port choice [1-3]: " -e -i 1 PORT_CHOICE + done + case $PORT_CHOICE in + 1) + PORT="1194" + ;; + 2) + until [[ "$PORT" =~ ^[0-9]+$ ]] && [ "$PORT" -ge 1 ] && [ "$PORT" -le 65535 ]; do + read -rp "Custom port [1-65535]: " -e -i 1194 PORT + done + ;; + 3) + # Generate random number within private ports range + PORT=$(shuf -i49152-65535 -n1) + echo "Random Port: $PORT" + ;; + esac + echo "" + echo "What protocol do you want OpenVPN to use?" + echo "UDP is faster. Unless it is not available, you shouldn't use TCP." + echo " 1) UDP" + echo " 2) TCP" + until [[ "$PROTOCOL_CHOICE" =~ ^[1-2]$ ]]; do + read -rp "Protocol [1-2]: " -e -i 1 PROTOCOL_CHOICE + done + case $PROTOCOL_CHOICE in + 1) + PROTOCOL="udp" + ;; + 2) + PROTOCOL="tcp" + ;; + esac + echo "" + echo "What DNS resolvers do you want to use with the VPN?" + echo " 1) Current system resolvers (from /etc/resolv.conf)" + echo " 2) Self-hosted DNS Resolver (Unbound)" + echo " 3) Cloudflare (Anycast: worldwide)" + echo " 4) Quad9 (Anycast: worldwide)" + echo " 5) Quad9 uncensored (Anycast: worldwide)" + echo " 6) FDN (France)" + echo " 7) DNS.WATCH (Germany)" + echo " 8) OpenDNS (Anycast: worldwide)" + echo " 9) Google (Anycast: worldwide)" + echo " 10) Yandex Basic (Russia)" + echo " 11) AdGuard DNS (Russia)" + until [[ "$DNS" =~ ^[0-9]+$ ]] && [ "$DNS" -ge 1 ] && [ "$DNS" -le 11 ]; do + read -rp "DNS [1-10]: " -e -i 3 DNS + if [[ $DNS == 2 ]] && [[ -e /etc/unbound/unbound.conf ]]; then + echo "" + echo "Unbound is already installed." + echo "You can allow the script to configure it in order to use it from your OpenVPN clients" + echo "We will simply add a second server to /etc/unbound/unbound.conf for the OpenVPN subnet." + echo "No changes are made to the current configuration." + echo "" + + until [[ $CONTINUE =~ (y|n) ]]; do + read -rp "Apply configuration changes to Unbound? [y/n]: " -e CONTINUE + done + if [[ $CONTINUE = "n" ]];then + # Break the loop and cleanup + unset DNS + unset CONTINUE + fi + fi + done + echo "" + echo "Do you want to use compression? It is not recommended since the VORACLE attack make use of it." + until [[ $COMPRESSION_ENABLED =~ (y|n) ]]; do + read -rp"Enable compression? [y/n]: " -e -i n COMPRESSION_ENABLED + done + if [[ $COMPRESSION_ENABLED == "y" ]];then + echo "Choose which compression algorithm you want to use:" + echo " 1) LZ4 (more efficient)" + echo " 2) LZ0" + until [[ $COMPRESSION_CHOICE =~ ^[1-2]$ ]]; do + read -rp"Compression algorithm [1-2]: " -e -i 1 COMPRESSION_CHOICE + done + case $COMPRESSION_CHOICE in + 1) + COMPRESSION_ALG="lz4" + ;; + 2) + COMPRESSION_ALG="lzo" + ;; + esac + fi + echo "" + echo "Do you want to customize encryption settings?" + echo "Unless you know what you're doing, you should stick with the default parameters provided by the script." + echo "Note that whatever you choose, all the choices presented in the script are safe. (Unlike OpenVPN's defaults)" + echo "See https://github.com/angristan/openvpn-install#security-and-encryption to learn more." + echo "" + until [[ $CUSTOMIZE_ENC =~ (y|n) ]]; do + read -rp "Customize encryption settings? [y/n]: " -e -i n CUSTOMIZE_ENC + done + if [[ $CUSTOMIZE_ENC == "n" ]];then + # Use default, sane and fast parameters + CIPHER="AES-128-GCM" + CERT_TYPE="1" # ECDSA + CERT_CURVE="prime256v1" + CC_CIPHER="TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256" + DH_TYPE="1" # ECDH + DH_CURVE="prime256v1" + HMAC_ALG="SHA256" + TLS_SIG="1" # tls-crypt + else + echo "" + echo "Choose which cipher you want to use for the data channel:" + echo " 1) AES-128-GCM (recommended)" + echo " 2) AES-192-GCM" + echo " 3) AES-256-GCM" + echo " 4) AES-128-CBC" + echo " 5) AES-192-CBC" + echo " 6) AES-256-CBC" + until [[ "$CIPHER_CHOICE" =~ ^[1-6]$ ]]; do + read -rp "Cipher [1-6]: " -e -i 1 CIPHER_CHOICE + done + case $CIPHER_CHOICE in + 1) + CIPHER="AES-128-GCM" + ;; + 2) + CIPHER="AES-192-GCM" + ;; + 3) + CIPHER="AES-256-GCM" + ;; + 4) + CIPHER="AES-128-CBC" + ;; + 5) + CIPHER="AES-192-CBC" + ;; + 6) + CIPHER="AES-256-CBC" + ;; + esac + echo "" + echo "Choose what kind of certificate you want to use:" + echo " 1) ECDSA (recommended)" + echo " 2) RSA" + until [[ $CERT_TYPE =~ ^[1-2]$ ]]; do + read -rp"Certificate key type [1-2]: " -e -i 1 CERT_TYPE + done + case $CERT_TYPE in + 1) + echo "" + echo "Choose which curve you want to use for the certificate's key:" + echo " 1) prime256v1 (recommended)" + echo " 2) secp384r1" + echo " 3) secp521r1" + until [[ $CERT_CURVE_CHOICE =~ ^[1-3]$ ]]; do + read -rp"Curve [1-3]: " -e -i 1 CERT_CURVE_CHOICE + done + case $CERT_CURVE_CHOICE in + 1) + CERT_CURVE="prime256v1" + ;; + 2) + CERT_CURVE="secp384r1" + ;; + 3) + CERT_CURVE="secp521r1" + ;; + esac + ;; + 2) + echo "" + echo "Choose which size you want to use for the certificate's RSA key:" + echo " 1) 2048 bits (recommended)" + echo " 2) 3072 bits" + echo " 3) 4096 bits" + until [[ "$RSA_KEY_SIZE_CHOICE" =~ ^[1-3]$ ]]; do + read -rp "RSA key size [1-3]: " -e -i 1 RSA_KEY_SIZE_CHOICE + done + case $RSA_KEY_SIZE_CHOICE in + 1) + RSA_KEY_SIZE="2048" + ;; + 2) + RSA_KEY_SIZE="3072" + ;; + 3) + RSA_KEY_SIZE="4096" + ;; + esac + ;; + esac + echo "" + echo "Choose which cipher you want to use for the control channel:" + case $CERT_TYPE in + 1) + echo " 1) ECDHE-ECDSA-AES-128-GCM-SHA256 (recommended)" + echo " 2) ECDHE-ECDSA-AES-256-GCM-SHA384" + until [[ $CC_CIPHER_CHOICE =~ ^[1-2]$ ]]; do + read -rp"Control channel cipher [1-2]: " -e -i 1 CC_CIPHER_CHOICE + done + case $CC_CIPHER_CHOICE in + 1) + CC_CIPHER="TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256" + ;; + 2) + CC_CIPHER="TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384" + ;; + esac + ;; + 2) + echo " 1) ECDHE-RSA-AES-128-GCM-SHA256 (recommended)" + echo " 2) ECDHE-RSA-AES-256-GCM-SHA384" + until [[ $CC_CIPHER_CHOICE =~ ^[1-2]$ ]]; do + read -rp"Control channel cipher [1-2]: " -e -i 1 CC_CIPHER_CHOICE + done + case $CC_CIPHER_CHOICE in + 1) + CC_CIPHER="TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256" + ;; + 2) + CC_CIPHER="TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384" + ;; + esac + ;; + esac + echo "" + echo "Choose what kind of Diffie-Hellman key you want to use:" + echo " 1) ECDH (recommended)" + echo " 2) DH" + until [[ $DH_TYPE =~ [1-2] ]]; do + read -rp"DH key type [1-2]: " -e -i 1 DH_TYPE + done + case $DH_TYPE in + 1) + echo "" + echo "Choose which curve you want to use for the ECDH key:" + echo " 1) prime256v1 (recommended)" + echo " 2) secp384r1" + echo " 3) secp521r1" + while [[ $DH_CURVE_CHOICE != "1" && $DH_CURVE_CHOICE != "2" && $DH_CURVE_CHOICE != "3" ]]; do + read -rp"Curve [1-3]: " -e -i 1 DH_CURVE_CHOICE + done + case $DH_CURVE_CHOICE in + 1) + DH_CURVE="prime256v1" + ;; + 2) + DH_CURVE="secp384r1" + ;; + 3) + DH_CURVE="secp521r1" + ;; + esac + ;; + 2) + echo "" + echo "Choose what size of Diffie-Hellman key you want to use:" + echo " 1) 2048 bits (recommended)" + echo " 2) 3072 bits" + echo " 3) 4096 bits" + until [[ "$DH_KEY_SIZE_CHOICE" =~ ^[1-3]$ ]]; do + read -rp "DH key size [1-3]: " -e -i 1 DH_KEY_SIZE_CHOICE + done + case $DH_KEY_SIZE_CHOICE in + 1) + DH_KEY_SIZE="2048" + ;; + 2) + DH_KEY_SIZE="3072" + ;; + 3) + DH_KEY_SIZE="4096" + ;; + esac + ;; + esac + echo "" + # The "auth" options behaves differently with AEAD ciphers + if [[ "$CIPHER" =~ CBC$ ]]; then + echo "The digest algorithm authenticates data channel packets and tls-auth packets from the control channel." + elif [[ "$CIPHER" =~ GCM$ ]]; then + echo "The digest algorithm authenticates tls-auth packets from the control channel." + fi + echo "Which digest algorithm do you want to use for HMAC?" + echo " 1) SHA-256 (recommended)" + echo " 2) SHA-384" + echo " 3) SHA-512" + until [[ $HMAC_ALG_CHOICE =~ ^[1-3]$ ]]; do + read -rp "Digest algorithm [1-3]: " -e -i 1 HMAC_ALG_CHOICE + done + case $HMAC_ALG_CHOICE in + 1) + HMAC_ALG="SHA256" + ;; + 2) + HMAC_ALG="SHA384" + ;; + 3) + HMAC_ALG="SHA512" + ;; + esac + echo "" + echo "You can add an additional layer of security to the control channel with tls-auth and tls-crypt" + echo "tls-auth authenticates the packets, while tls-crypt authenticate and encrypt them." + echo " 1) tls-crypt (recommended)" + echo " 2) tls-auth" + until [[ $TLS_SIG =~ [1-2] ]]; do + read -rp "Control channel additional security mechanism [1-2]: " -e -i 1 TLS_SIG + done + fi + echo "" + echo "Okay, that was all I needed. We are ready to setup your OpenVPN server now." + echo "You will be able to generate a client at the end of the installation." + read -n1 -r -p "Press any key to continue..." +} + +function installOpenVPN () { + # Run setup questions first + installQuestions + + # Get the "public" interface from the default route + NIC=$(ip -4 route ls | grep default | grep -Po '(?<=dev )(\S+)' | head -1) + + if [[ "$OS" =~ (debian|ubuntu) ]]; then + apt-get update + apt-get -y install ca-certificates gnupg + # We add the OpenVPN repo to get the latest version. + if [[ "$VERSION_ID" = "8" ]]; then + echo "deb http://build.openvpn.net/debian/openvpn/stable jessie main" > /etc/apt/sources.list.d/openvpn.list + wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg | apt-key add - + apt-get update + fi + if [[ "$VERSION_ID" = "16.04" ]]; then + echo "deb http://build.openvpn.net/debian/openvpn/stable trusty main" > /etc/apt/sources.list.d/openvpn.list + wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg | apt-key add - + apt-get update + fi + # Ubuntu > 16.04 and Debian > 8 have OpenVPN >= 2.4 without the need of a third party repository. + apt-get install -y openvpn iptables openssl wget ca-certificates curl + elif [[ "$OS" = 'centos' ]]; then + yum install -y epel-release + yum install -y openvpn iptables openssl wget ca-certificates curl + elif [[ "$OS" = 'fedora' ]]; then + dnf install -y openvpn iptables openssl wget ca-certificates curl + elif [[ "$OS" = 'arch' ]]; then + echo "" + echo "WARNING: As you're using ArchLinux, I need to update the packages on your system to install those I need." + echo "Not doing that could cause problems between dependencies, or missing files in repositories (Arch Linux does not support partial upgrades)." + echo "" + echo "Continuing will update your installed packages and install needed ones." + echo "" + unset CONTINUE + until [[ $CONTINUE =~ (y|n) ]]; do + read -rp "Continue? [y/n]: " -e -i y CONTINUE + done + if [[ "$CONTINUE" = "n" ]]; then + echo "Exiting because user did not permit updating the system." + exit 4 + fi + + # Install required dependencies and upgrade the system + pacman --needed --noconfirm -Syu openvpn iptables openssl wget ca-certificates curl + fi + + # Find out if the machine uses nogroup or nobody for the permissionless group + if grep -qs "^nogroup:" /etc/group; then + NOGROUP=nogroup + else + NOGROUP=nobody + fi + + # An old version of easy-rsa was available by default in some openvpn packages + if [[ -d /etc/openvpn/easy-rsa/ ]]; then + rm -rf /etc/openvpn/easy-rsa/ + fi + + # Install the latest version of easy-rsa from source + local version="3.0.5" + wget -O ~/EasyRSA-nix-${version}.tgz https://github.com/OpenVPN/easy-rsa/releases/download/v${version}/EasyRSA-nix-${version}.tgz + tar xzf ~/EasyRSA-nix-${version}.tgz -C ~/ + mv ~/EasyRSA-${version}/ /etc/openvpn/ + mv /etc/openvpn/EasyRSA-${version}/ /etc/openvpn/easy-rsa/ + chown -R root:root /etc/openvpn/easy-rsa/ + rm -f ~/EasyRSA-nix-${version}.tgz + + cd /etc/openvpn/easy-rsa/ + case $CERT_TYPE in + 1) + echo "set_var EASYRSA_ALGO ec" > vars + echo "set_var EASYRSA_CURVE $CERT_CURVE" >> vars + ;; + 2) + echo "set_var EASYRSA_KEY_SIZE $RSA_KEY_SIZE" > vars + ;; + esac + + # Generate a random, alphanumeric identifier of 16 characters for CN and one for server name + SERVER_CN="cn_$(head /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 16 | head -n 1)" + SERVER_NAME="server_$(head /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 16 | head -n 1)" + echo "set_var EASYRSA_REQ_CN $SERVER_CN" >> vars + # Create the PKI, set up the CA, the DH params and the server certificate + ./easyrsa init-pki + ./easyrsa --batch build-ca nopass + + if [[ $DH_TYPE == "2" ]]; then + # ECDH keys are generated on-the-fly so we don't need to generate them beforehand + openssl dhparam -out dh.pem $DH_KEY_SIZE + fi + + ./easyrsa build-server-full "$SERVER_NAME" nopass + EASYRSA_CRL_DAYS=3650 ./easyrsa gen-crl + + case $TLS_SIG in + 1) + # Generate tls-crypt key + openvpn --genkey --secret /etc/openvpn/tls-crypt.key + ;; + 2) + # Generate tls-auth key + openvpn --genkey --secret /etc/openvpn/tls-auth.key + ;; + esac + + # Move all the generated files + cp pki/ca.crt pki/private/ca.key "pki/issued/$SERVER_NAME.crt" "pki/private/$SERVER_NAME.key" /etc/openvpn/easy-rsa/pki/crl.pem /etc/openvpn + if [[ $DH_TYPE == "2" ]]; then + cp dh.pem /etc/openvpn + fi + + # Make cert revocation list readable for non-root + chmod 644 /etc/openvpn/crl.pem + + # Generate server.conf + echo "port $PORT" > /etc/openvpn/server.conf + if [[ "$IPV6_SUPPORT" = 'n' ]]; then + echo "proto $PROTOCOL" >> /etc/openvpn/server.conf + elif [[ "$IPV6_SUPPORT" = 'y' ]]; then + echo "proto ${PROTOCOL}6" >> /etc/openvpn/server.conf + fi + + echo "dev tun +user nobody +group $NOGROUP +persist-key +persist-tun +keepalive 10 120 +topology subnet +server 10.8.0.0 255.255.255.0 +ifconfig-pool-persist ipp.txt" >> /etc/openvpn/server.conf + + # DNS resolvers + case $DNS in + 1) + # Locate the proper resolv.conf + # Needed for systems running systemd-resolved + if grep -q "127.0.0.53" "/etc/resolv.conf"; then + RESOLVCONF='/run/systemd/resolve/resolv.conf' + else + RESOLVCONF='/etc/resolv.conf' + fi + # Obtain the resolvers from resolv.conf and use them for OpenVPN + grep -v '#' $RESOLVCONF | grep 'nameserver' | grep -E -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | while read -r line; do + echo "push \"dhcp-option DNS $line\"" >> /etc/openvpn/server.conf + done + ;; + 2) + echo 'push "dhcp-option DNS 10.8.0.1"' >> /etc/openvpn/server.conf + ;; + 3) # Cloudflare + echo 'push "dhcp-option DNS 1.0.0.1"' >> /etc/openvpn/server.conf + echo 'push "dhcp-option DNS 1.1.1.1"' >> /etc/openvpn/server.conf + ;; + 4) # Quad9 + echo 'push "dhcp-option DNS 9.9.9.9"' >> /etc/openvpn/server.conf + echo 'push "dhcp-option DNS 149.112.112.112"' >> /etc/openvpn/server.conf + ;; + 5) # Quad9 uncensored + echo 'push "dhcp-option DNS 9.9.9.10"' >> /etc/openvpn/server.conf + echo 'push "dhcp-option DNS 149.112.112.10"' >> /etc/openvpn/server.conf + ;; + 6) # FDN + echo 'push "dhcp-option DNS 80.67.169.40"' >> /etc/openvpn/server.conf + echo 'push "dhcp-option DNS 80.67.169.12"' >> /etc/openvpn/server.conf + ;; + 7) # DNS.WATCH + echo 'push "dhcp-option DNS 84.200.69.80"' >> /etc/openvpn/server.conf + echo 'push "dhcp-option DNS 84.200.70.40"' >> /etc/openvpn/server.conf + ;; + 8) # OpenDNS + echo 'push "dhcp-option DNS 208.67.222.222"' >> /etc/openvpn/server.conf + echo 'push "dhcp-option DNS 208.67.220.220"' >> /etc/openvpn/server.conf + ;; + 9) # Google + echo 'push "dhcp-option DNS 8.8.8.8"' >> /etc/openvpn/server.conf + echo 'push "dhcp-option DNS 8.8.4.4"' >> /etc/openvpn/server.conf + ;; + 10) # Yandex Basic + echo 'push "dhcp-option DNS 77.88.8.8"' >> /etc/openvpn/server.conf + echo 'push "dhcp-option DNS 77.88.8.1"' >> /etc/openvpn/server.conf + ;; + 11) # AdGuard DNS + echo 'push "dhcp-option DNS 176.103.130.130"' >> /etc/openvpn/server.conf + echo 'push "dhcp-option DNS 176.103.130.131"' >> /etc/openvpn/server.conf + ;; + esac + echo 'push "redirect-gateway def1 bypass-dhcp"' >> /etc/openvpn/server.conf + + # IPv6 network settings if needed + if [[ "$IPV6_SUPPORT" = 'y' ]]; then + echo 'server-ipv6 fd42:42:42:42::/112 +tun-ipv6 +push tun-ipv6 +push "route-ipv6 2000::/3" +push "redirect-gateway ipv6"' >> /etc/openvpn/server.conf + fi + + if [[ $COMPRESSION_ENABLED == "y" ]]; then + echo "compress $COMPRESSION_ALG" >> /etc/openvpn/server.conf + fi + + if [[ $DH_TYPE == "1" ]]; then + echo "dh none" >> /etc/openvpn/server.conf + echo "ecdh-curve $DH_CURVE" >> /etc/openvpn/server.conf + elif [[ $DH_TYPE == "2" ]]; then + echo "dh dh.pem" >> /etc/openvpn/server.conf + fi + + case $TLS_SIG in + 1) + echo "tls-crypt tls-crypt.key 0" >> /etc/openvpn/server.conf + ;; + 2) + echo "tls-auth tls-auth.key 0" >> /etc/openvpn/server.conf + ;; + esac + + echo "crl-verify crl.pem +ca ca.crt +cert $SERVER_NAME.crt +key $SERVER_NAME.key +auth $HMAC_ALG +cipher $CIPHER +ncp-ciphers $CIPHER +tls-server +tls-version-min 1.2 +tls-cipher $CC_CIPHER +status /var/log/openvpn/status.log +verb 3" >> /etc/openvpn/server.conf + + # Create log dir + mkdir -p /var/log/openvpn + + # Enable routing + echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.d/20-openvpn.conf + if [[ "$IPV6_SUPPORT" = 'y' ]]; then + echo 'net.ipv6.conf.all.forwarding=1' >> /etc/sysctl.d/20-openvpn.conf + fi + # Avoid an unneeded reboot + sysctl --system + + # If SELinux is enabled and a custom port was selected, we need this + if hash sestatus 2>/dev/null; then + if sestatus | grep "Current mode" | grep -qs "enforcing"; then + if [[ "$PORT" != '1194' ]]; then + semanage port -a -t openvpn_port_t -p "$PROTOCOL" "$PORT" + fi + fi + fi + + # Finally, restart and enable OpenVPN + if [[ "$OS" = 'arch' || "$OS" = 'fedora' ]]; then + # Don't modify package-provided service + cp /usr/lib/systemd/system/openvpn-server@.service /etc/systemd/system/openvpn-server@.service + + # Workaround to fix OpenVPN service on OpenVZ + sed -i 's|LimitNPROC|#LimitNPROC|' /etc/systemd/system/openvpn-server@.service + # Another workaround to keep using /etc/openvpn/ + sed -i 's|/etc/openvpn/server|/etc/openvpn|' /etc/systemd/system/openvpn-server@.service + # On fedora, the service hardcodes the ciphers. We want to manage the cipher ourselves, so we remove it from the service + if [[ "$OS" == "fedora" ]];then + sed -i 's|--cipher AES-256-GCM --ncp-ciphers AES-256-GCM:AES-128-GCM:AES-256-CBC:AES-128-CBC:BF-CBC||' /etc/systemd/system/openvpn-server@.service + fi + + systemctl daemon-reload + systemctl restart openvpn-server@server + systemctl enable openvpn-server@server + elif [[ "$OS" == "ubuntu" ]] && [[ "$VERSION_ID" == "16.04" ]]; then + # On Ubuntu 16.04, we use the package from the OpenVPN repo + # This package uses a sysvinit service + systemctl enable openvpn + systemctl start openvpn + else + # Don't modify package-provided service + cp /lib/systemd/system/openvpn\@.service /etc/systemd/system/openvpn\@.service + + # Workaround to fix OpenVPN service on OpenVZ + sed -i 's|LimitNPROC|#LimitNPROC|' /etc/systemd/system/openvpn\@.service + # Another workaround to keep using /etc/openvpn/ + sed -i 's|/etc/openvpn/server|/etc/openvpn|' /etc/systemd/system/openvpn\@.service + + systemctl daemon-reload + systemctl restart openvpn@server + systemctl enable openvpn@server + fi + + if [[ $DNS == 2 ]];then + installUnbound + fi + + # Add iptables rules in two scripts + mkdir /etc/iptables + + # Script to add rules + echo "#!/bin/sh +iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o $NIC -j MASQUERADE +iptables -A INPUT -i tun0 -j ACCEPT +iptables -A FORWARD -i $NIC -o tun0 -j ACCEPT +iptables -A FORWARD -i tun0 -o $NIC -j ACCEPT +iptables -A INPUT -i $NIC -p $PROTOCOL --dport $PORT -j ACCEPT" > /etc/iptables/add-openvpn-rules.sh + + if [[ "$IPV6_SUPPORT" = 'y' ]]; then + echo "ip6tables -t nat -A POSTROUTING -s fd42:42:42:42::/112 -o $NIC -j MASQUERADE +ip6tables -A INPUT -i tun0 -j ACCEPT +ip6tables -A FORWARD -i $NIC -o tun0 -j ACCEPT +ip6tables -A FORWARD -i tun0 -o $NIC -j ACCEPT" >> /etc/iptables/add-openvpn-rules.sh + fi + + # Script to remove rules + echo "#!/bin/sh +iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o $NIC -j MASQUERADE +iptables -D INPUT -i tun0 -j ACCEPT +iptables -D FORWARD -i $NIC -o tun0 -j ACCEPT +iptables -D FORWARD -i tun0 -o $NIC -j ACCEPT +iptables -D INPUT -i $NIC -p $PROTOCOL --dport $PORT -j ACCEPT" > /etc/iptables/rm-openvpn-rules.sh + + if [[ "$IPV6_SUPPORT" = 'y' ]]; then + echo "ip6tables -t nat -D POSTROUTING -s fd42:42:42:42::/112 -o $NIC -j MASQUERADE +ip6tables -D INPUT -i tun0 -j ACCEPT +ip6tables -D FORWARD -i $NIC -o tun0 -j ACCEPT +ip6tables -D FORWARD -i tun0 -o $NIC -j ACCEPT" >> /etc/iptables/rm-openvpn-rules.sh + fi + + chmod +x /etc/iptables/add-openvpn-rules.sh + chmod +x /etc/iptables/rm-openvpn-rules.sh + + # Handle the rules via a systemd script + echo "[Unit] +Description=iptables rules for OpenVPN +Before=network-online.target +Wants=network-online.target + +[Service] +Type=oneshot +ExecStart=/etc/iptables/add-openvpn-rules.sh +ExecStop=/etc/iptables/rm-openvpn-rules.sh +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target" > /etc/systemd/system/iptables-openvpn.service + + # Enable service and apply rules + systemctl daemon-reload + systemctl enable iptables-openvpn + systemctl start iptables-openvpn + + # If the server is behind a NAT, use the correct IP address for the clients to connect to + if [[ "$PUBLICIP" != "" ]]; then + IP=$PUBLICIP + fi + + # client-template.txt is created so we have a template to add further users later + echo "client" > /etc/openvpn/client-template.txt + if [[ "$PROTOCOL" = 'udp' ]]; then + echo "proto udp" >> /etc/openvpn/client-template.txt + elif [[ "$PROTOCOL" = 'tcp' ]]; then + echo "proto tcp-client" >> /etc/openvpn/client-template.txt + fi + echo "remote $IP $PORT +dev tun +resolv-retry infinite +nobind +persist-key +persist-tun +remote-cert-tls server +verify-x509-name $SERVER_NAME name +auth $HMAC_ALG +auth-nocache +cipher $CIPHER +tls-client +tls-version-min 1.2 +tls-cipher $CC_CIPHER +setenv opt block-outside-dns # Prevent Windows 10 DNS leak +verb 3" >> /etc/openvpn/client-template.txt + +if [[ $COMPRESSION_ENABLED == "y" ]]; then + echo "compress $COMPRESSION_ALG" >> /etc/openvpn/client-template.txt +fi + + # Generate the custom client.ovpn + newClient + echo "If you want to add more clients, you simply need to run this script another time!" +} + +function newClient () { + echo "" + echo "Tell me a name for the client." + echo "Use one word only, no special characters." + + until [[ "$CLIENT" =~ ^[a-zA-Z0-9_]+$ ]]; do + read -rp "Client name: " -e CLIENT + done + + echo "" + echo "Do you want to protect the configuration file with a password?" + echo "(e.g. encrypt the private key with a password)" + echo " 1) Add a passwordless client" + echo " 2) Use a password for the client" + + until [[ "$PASS" =~ ^[1-2]$ ]]; do + read -rp "Select an option [1-2]: " -e -i 1 PASS + done + + cd /etc/openvpn/easy-rsa/ || return + case $PASS in + 1) + ./easyrsa build-client-full "$CLIENT" nopass + ;; + 2) + echo "⚠️ You will be asked for the client password below ⚠️" + ./easyrsa build-client-full "$CLIENT" + ;; + esac + + # Home directory of the user, where the client configuration (.ovpn) will be written + if [ -e "/home/$CLIENT" ]; then # if $1 is a user name + homeDir="/home/$CLIENT" + elif [ "${SUDO_USER}" ]; then # if not, use SUDO_USER + homeDir="/home/${SUDO_USER}" + else # if not SUDO_USER, use /root + homeDir="/root" + fi + + # Determine if we use tls-auth or tls-crypt + if grep -qs "^tls-crypt" /etc/openvpn/server.conf; then + TLS_SIG="1" + elif grep -qs "^tls-auth" /etc/openvpn/server.conf; then + TLS_SIG="2" + fi + + # Generates the custom client.ovpn + cp /etc/openvpn/client-template.txt "$homeDir/$CLIENT.ovpn" + { + echo "<ca>" + cat "/etc/openvpn/easy-rsa/pki/ca.crt" + echo "</ca>" + + echo "<cert>" + awk '/BEGIN/,/END/' "/etc/openvpn/easy-rsa/pki/issued/$CLIENT.crt" + echo "</cert>" + + echo "<key>" + cat "/etc/openvpn/easy-rsa/pki/private/$CLIENT.key" + echo "</key>" + + case $TLS_SIG in + 1) + echo "<tls-crypt>" + cat /etc/openvpn/tls-crypt.key + echo "</tls-crypt>" + ;; + 2) + echo "key-direction 1" + echo "<tls-auth>" + cat /etc/openvpn/tls-auth.key + echo "</tls-auth>" + ;; + esac + } >> "$homeDir/$CLIENT.ovpn" + + echo "" + echo "Client $CLIENT added, the configuration file is available at $homeDir/$CLIENT.ovpn." + echo "Download the .ovpn file and import it in your OpenVPN client." +} + +function revokeClient () { + NUMBEROFCLIENTS=$(tail -n +2 /etc/openvpn/easy-rsa/pki/index.txt | grep -c "^V") + if [[ "$NUMBEROFCLIENTS" = '0' ]]; then + echo "" + echo "You have no existing clients!" + exit 1 + fi + + echo "" + echo "Select the existing client certificate you want to revoke" + tail -n +2 /etc/openvpn/easy-rsa/pki/index.txt | grep "^V" | cut -d '=' -f 2 | nl -s ') ' + if [[ "$NUMBEROFCLIENTS" = '1' ]]; then + read -rp "Select one client [1]: " CLIENTNUMBER + else + read -rp "Select one client [1-$NUMBEROFCLIENTS]: " CLIENTNUMBER + fi + + CLIENT=$(tail -n +2 /etc/openvpn/easy-rsa/pki/index.txt | grep "^V" | cut -d '=' -f 2 | sed -n "$CLIENTNUMBER"p) + cd /etc/openvpn/easy-rsa/ + ./easyrsa --batch revoke "$CLIENT" + EASYRSA_CRL_DAYS=3650 ./easyrsa gen-crl + # Cleanup + rm -f "pki/reqs/$CLIENT.req" + rm -f "pki/private/$CLIENT.key" + rm -f "pki/issued/$CLIENT.crt" + rm -f /etc/openvpn/crl.pem + cp /etc/openvpn/easy-rsa/pki/crl.pem /etc/openvpn/crl.pem + chmod 644 /etc/openvpn/crl.pem + find /home/ -maxdepth 2 -name "$CLIENT.ovpn" -delete + rm -f "/root/$CLIENT.ovpn" + sed -i "s|^$CLIENT,.*||" /etc/openvpn/ipp.txt + + echo "" + echo "Certificate for client $CLIENT revoked." +} + +function removeUnbound () { + # Remove OpenVPN-related config + sed -i 's|include: \/etc\/unbound\/openvpn.conf||' /etc/unbound/unbound.conf + rm /etc/unbound/openvpn.conf + systemctl restart unbound + + until [[ $REMOVE_UNBOUND =~ (y|n) ]]; do + echo "" + echo "If you were already using Unbound before installing OpenVPN, I removed the configuration related to OpenVPN." + read -rp "Do you want to completely remove Unbound? [y/n]: " -e REMOVE_UNBOUND + done + + if [[ "$REMOVE_UNBOUND" = 'y' ]]; then + # Stop Unbound + systemctl stop unbound + + if [[ "$OS" =~ (debian|ubuntu) ]]; then + apt-get autoremove --purge -y unbound + elif [[ "$OS" = 'arch' ]]; then + pacman --noconfirm -R unbound + elif [[ "$OS" = 'centos' ]]; then + yum remove -y unbound + elif [[ "$OS" = 'fedora' ]]; then + dnf remove -y unbound + fi + + rm -rf /etc/unbound/ + + echo "" + echo "Unbound removed!" + else + echo "" + echo "Unbound wasn't removed." + fi +} + +function removeOpenVPN () { + echo "" + read -rp "Do you really want to remove OpenVPN? [y/n]: " -e -i n REMOVE + if [[ "$REMOVE" = 'y' ]]; then + # Get OpenVPN port from the configuration + PORT=$(grep '^port ' /etc/openvpn/server.conf | cut -d " " -f 2) + + # Stop OpenVPN + if [[ "$OS" =~ (fedora|arch) ]]; then + systemctl disable openvpn-server@server + systemctl stop openvpn-server@server + # Remove customised service + rm /etc/systemd/system/openvpn-server@.service + elif [[ "$OS" == "ubuntu" ]] && [[ "$VERSION_ID" == "16.04" ]]; then + systemctl disable openvpn + systemctl stop openvpn + else + systemctl disable openvpn@server + systemctl stop openvpn@server + # Remove customised service + rm /etc/systemd/system/openvpn\@.service + fi + + # Remove the iptables rules related to the script + systemctl stop iptables-openvpn + # Cleanup + systemctl disable iptables-openvpn + rm /etc/systemd/system/iptables-openvpn.service + systemctl daemon-reload + rm /etc/iptables/add-openvpn-rules.sh + rm /etc/iptables/rm-openvpn-rules.sh + + # SELinux + if hash sestatus 2>/dev/null; then + if sestatus | grep "Current mode" | grep -qs "enforcing"; then + if [[ "$PORT" != '1194' ]]; then + semanage port -d -t openvpn_port_t -p udp "$PORT" + fi + fi + fi + + if [[ "$OS" =~ (debian|ubuntu) ]]; then + apt-get autoremove --purge -y openvpn + if [[ -e /etc/apt/sources.list.d/openvpn.list ]];then + rm /etc/apt/sources.list.d/openvpn.list + apt-get update + fi + elif [[ "$OS" = 'arch' ]]; then + pacman --noconfirm -R openvpn + elif [[ "$OS" = 'centos' ]]; then + yum remove -y openvpn + elif [[ "$OS" = 'fedora' ]]; then + dnf remove -y openvpn + fi + + # Cleanup + find /home/ -maxdepth 2 -name "*.ovpn" -delete + find /root/ -maxdepth 1 -name "*.ovpn" -delete + rm -rf /etc/openvpn + rm -rf /usr/share/doc/openvpn* + rm -f /etc/sysctl.d/20-openvpn.conf + rm -rf /var/log/openvpn + + # Unbound + if [[ -e /etc/unbound/openvpn.conf ]]; then + removeUnbound + fi + echo "" + echo "OpenVPN removed!" + else + echo "" + echo "Removal aborted!" + fi +} + +function manageMenu () { + clear + echo "Welcome to OpenVPN-install!" + echo "The git repository is available at: https://github.com/angristan/openvpn-install" + echo "" + echo "It looks like OpenVPN is already installed." + echo "" + echo "What do you want to do?" + echo " 1) Add a new user" + echo " 2) Revoke existing user" + echo " 3) Remove OpenVPN" + echo " 4) Exit" + until [[ "$MENU_OPTION" =~ ^[1-4]$ ]]; do + read -rp "Select an option [1-4]: " MENU_OPTION + done + + case $MENU_OPTION in + 1) + newClient + ;; + 2) + revokeClient + ;; + 3) + removeOpenVPN + ;; + 4) + exit 0 + ;; + esac +} + +# Check for root, TUN, OS... +initialCheck + +# Check if OpenVPN is already installed +if [[ -e /etc/openvpn/server.conf ]]; then + manageMenu +else + installOpenVPN +fi From a77cdd0db611b1bcdea6618e52ef2de36bda314d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 11 Feb 2019 09:00:24 -0600 Subject: [PATCH 582/947] devices: {base, openwrt}: move get_seconds_uptime to base class This really belongs to a Linux base class, but this will be OK for now unitl the device class heirachy is cleaned up some. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/base.py | 10 ++++++++++ devices/openwrt_router.py | 9 --------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/devices/base.py b/devices/base.py index 87d15f4a..8fdfa793 100644 --- a/devices/base.py +++ b/devices/base.py @@ -52,6 +52,16 @@ def get_interface_macaddr(self, interface): self.expect(self.prompt) return macaddr + def get_seconds_uptime(self): + '''Return seconds since last reboot. Stored in /proc/uptime''' + self.sendcontrol('c') + self.expect(self.prompt) + self.sendline('\ncat /proc/uptime') + self.expect('((\d+)\.(\d{2}))(\s)(\d+)\.(\d{2})') + seconds_up = float(self.match.group(1)) + self.expect(self.prompt) + return seconds_up + def get_logfile_read(self): if hasattr(self, "_logfile_read"): return self._logfile_read diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 9ae5f0a5..6e516154 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -130,15 +130,6 @@ def reset(self, break_into_uboot=False): print(e) print("\nWe appeared to have failed to break into U-Boot...") - def get_seconds_uptime(self): - '''Return seconds since last reboot. Stored in /proc/uptime''' - self.sendcontrol('c') - self.expect(self.prompt) - self.sendline('\ncat /proc/uptime') - self.expect('((\d+)\.(\d{2}))(\s)(\d+)\.(\d{2})') - seconds_up = float(self.match.group(1)) - self.expect(self.prompt) - return seconds_up def get_memfree(self): '''Return the kB of free memory.''' From c0f9c20bf56fc6bc653fa9e11672943d5737d175 Mon Sep 17 00:00:00 2001 From: "prekumar.contractor" <prekumar.contractor@libertyglobal.com> Date: Mon, 11 Feb 2019 14:23:47 +0100 Subject: [PATCH 583/947] tests: lib: installers: added function to install postfix -postfix server is used to install SMTP servers locally tests: lib: common: added function to configure postfix SMTP server -As of now function configures postfix to allow access for clients on TLS and SSL port numbers -The function can be extended to configure mail server and for mail communication Signed-off-by: Prem Kumar K N <prekumar.contractor@libertyglobal.com> --- tests/lib/common.py | 66 +++++++++++++++++++++++++++++++++++++++++ tests/lib/installers.py | 20 +++++++++++++ 2 files changed, 86 insertions(+) diff --git a/tests/lib/common.py b/tests/lib/common.py index 86483df1..e84121ab 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -323,3 +323,69 @@ class HTTPServerV6(bhs.HTTPServer): if "BFT_DEBUG" in os.environ: print_bold("Service started on ["+ip+"]:"+port) return True + +def configure_postfix(device): + ''' + configures TSL and SSL ports to access postfix server + The function can be extended with configuration changes to test emails. + ''' + device.sendline ('''cat > /etc/postfix/master.cf << EOF +smtp inet n - y - - smtpd +465 inet n - n - - smtpd +587 inet n - n - - smtpd +smtp inet n - y - 1 postscreen +smtpd pass - - y - - smtpd + +#628 inet n - y - - qmqpd +pickup unix n - y 60 1 pickup +cleanup unix n - y - 0 cleanup +qmgr unix n - n 300 1 qmgr +#qmgr unix n - n 300 1 oqmgr +tlsmgr unix - - y 1000? 1 tlsmgr +rewrite unix - - y - - trivial-rewrite +bounce unix - - y - 0 bounce +defer unix - - y - 0 bounce +trace unix - - y - 0 bounce +verify unix - - y - 1 verify +flush unix n - y 1000? 0 flush +proxymap unix - - n - - proxymap +proxywrite unix - - n - 1 proxymap +smtp unix - - y - - smtp +relay unix - - y - - smtp + -o syslog_name=postfix/$service_name +# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5 +showq unix n - y - - showq +error unix - - y - - error +retry unix - - y - - error +discard unix - - y - - discard +local unix - n n - - local +virtual unix - n n - - virtual +lmtp unix - - y - - lmtp +anvil unix - - y - 1 anvil +scache unix - - y - 1 scache +# + +maildrop unix - n n - - pipe + flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient} + +# +uucp unix - n n - - pipe + flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient) +# +# Other external delivery methods. +# +ifmail unix - n n - - pipe + flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient) +bsmtp unix - n n - - pipe + flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient +scalemail-backend unix - n n - 2 pipe + flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension} +mailman unix - n n - - pipe + flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py + ${nexthop} ${user} +EOF''') + device.expect(device.prompt, timeout = 10) + device.sendline("service postfix start") + device.expect(device.prompt) + device.sendline("service postfix reload") + assert 0 != device.expect(['failed']+ device.prompt, timeout = 20) , "Unable to reolad server with new configurations" diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 4915d4c6..d91a475b 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -525,3 +525,23 @@ def install_pptp_client(device, remove=False): device.sendline('apt-get install pptp-linux -y') device.expect(device.prompt, timeout=60) + +def install_postfix(device): + '''Install postfix server if not present.''' + device.sendline('postconf -d | grep mail_version') + try: + device.expect('mail_version =', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get update') # Update inetd before installation + device.expect(device.prompt, timeout=90) + device.sendline("apt-get install postfix -y") + assert 0 == device.expect(['General type of mail configuration:']+ device.prompt, timeout = 90), "Mail configuration type is note received. Installaion failed" + device.sendline("2") + assert 0 == device.expect(['System mail name:']+ device.prompt, timeout = 90), "System mail name option is note received. Installaion failed" + device.sendline("testingsmtp.com") + assert 0 != device.expect(['Errors were encountered']+ device.prompt, timeout = 90), "Errors Encountered. Installaion failed" + + device.sendline("service postfix start") + assert 0 != device.expect(['failed']+ device.prompt, timeout = 90), "Unable to start Postfix service.Installaion failed" From df528d7dac1a99cc179f518d15e981f15670f77c Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Mon, 11 Feb 2019 16:55:17 +0100 Subject: [PATCH 584/947] tests: lib: installers: the openvpn-install.sh is no longer curled Now use the committed openvpn-install.sh instead of curling it every time. The curl line was left for reference (commented out). Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/lib/installers.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index d91a475b..279724ff 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -383,6 +383,19 @@ def install_ovpn_server(device, remove=False, _user='lan', _ip="ipv4"): device.sendline('cd') device.expect_exact('cd') device.expect(device.prompt) + + # This is where the original setup script comes from. For conveninence we shall + # copy the version commited in test/lib/scripts to the server (we cannot always + # guarantee tha the containers will have web access) + #device.sendline('curl -O https://raw.githubusercontent.com/Angristan/openvpn-install/master/openvpn-install.sh') + import os + ovpn_install_script = 'openvpn-install.sh' + fname = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'scripts/'+ovpn_install_script) + dest = '/root/'+ovpn_install_script + device.copy_file_to_server(fname, dest) + device.sendline('chmod +x openvpn-install.sh') + device.expect(device.prompt) + device.sendline('ls -l /etc/init.d/openvpn') index = device.expect(['(\\s{1,}\\d{4}()\\s{1,}\\/etc\\/init\\.d\\/openvpn)'] + device.prompt, timeout=90) @@ -407,10 +420,6 @@ def install_ovpn_server(device, remove=False, _user='lan', _ip="ipv4"): dev_ip = device.get_interface_ipaddr(device.iface_dut) device.sendline('apt-get update') device.expect(device.prompt) - device.sendline('curl -O https://raw.githubusercontent.com/Angristan/openvpn-install/master/openvpn-install.sh') - device.expect(device.prompt, timeout=90) - device.sendline('chmod +x openvpn-install.sh') - device.expect(device.prompt) device.sendline('./openvpn-install.sh') device.expect('IP address:.*', timeout=120) for i in range(20): From 551438eb2f1384a9feb0dabd2f1e49a88a3efa91 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 11 Feb 2019 12:59:27 -0600 Subject: [PATCH 585/947] tests: console_delay: apply delay to all consoles Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/console_delay.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/console_delay.py b/tests/console_delay.py index 29d9b89a..00dbe6c5 100644 --- a/tests/console_delay.py +++ b/tests/console_delay.py @@ -6,11 +6,18 @@ class DelayBetweenChar(rootfs_boot.RootFSBootTest): def runTest(self): board.delaybetweenchar = 0.1 + for console in board.consoles: + console.delaybetweenchar = 0.1 + class DelayBetweenCharExtreme(rootfs_boot.RootFSBootTest): def runTest(self): board.delaybetweenchar = 1 + for console in board.consoles: + console.delaybetweenchar = 1 class NoDelayBetweenChar(rootfs_boot.RootFSBootTest): def runTest(self): board.delaybetweenchar = None + for console in board.consoles: + console.delaybetweenchar = None From 9b1d7672200a6fa71bc1741a3d6bef66c62b2e67 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 11 Feb 2019 16:51:29 -0600 Subject: [PATCH 586/947] tests: hping3: add board.touch() in main loop Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/hping3.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/hping3.py b/tests/hping3.py index c81a92b7..527f9c90 100644 --- a/tests/hping3.py +++ b/tests/hping3.py @@ -28,6 +28,7 @@ def runTest(self): board.get_proc_vmstat() lan.expect(pexpect.TIMEOUT, timeout=3) board.expect(pexpect.TIMEOUT, timeout=3) + board.touch() self.recover() From f20ea9ddb4718e15bdc085ab3a26fe8b36c64950 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 12 Feb 2019 10:54:11 -0600 Subject: [PATCH 587/947] tests: jmeter: add more tests, always save logs, give lots of time - We add more combinations for JMeter passes - Always try to save logs, even if we timeout - Give twice the amount of time to finish Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/jmeter.py | 42 +- tests/jmeter/httpreq_10x_10u_5t.jmx | 562 ++++++++++++++++++ tests/jmeter/httpreq_1x_9u_5t.jmx | 562 ++++++++++++++++++ .../{httpreq.jmx => httpreq_20x_9u_1t.jmx} | 154 ++++- 4 files changed, 1306 insertions(+), 14 deletions(-) create mode 100644 tests/jmeter/httpreq_10x_10u_5t.jmx create mode 100644 tests/jmeter/httpreq_1x_9u_5t.jmx rename tests/jmeter/{httpreq.jmx => httpreq_20x_9u_1t.jmx} (78%) diff --git a/tests/jmeter.py b/tests/jmeter.py index 52a17b12..571d8539 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -10,8 +10,8 @@ class JMeter(rootfs_boot.RootFSBootTest): '''Runs JMeter jmx file from LAN device''' - #jmx = "https://jmeter.apache.org/demos/ForEachTest2.jmx" - jmx = os.path.join(os.path.dirname(__file__), 'jmeter/httpreq.jmx') + jmx = "https://jmeter.apache.org/demos/ForEachTest2.jmx" + name = "ForEachTest2" def runTest(self): install_jmeter(lan) @@ -32,22 +32,16 @@ def runTest(self): lan.sendline('jmeter -n -t test.jmx -l foo.log -e -o output') lan.expect_exact('jmeter -n -t test.jmx -l foo.log -e -o output') - for i in range(300): + for i in range(600): if 0 != lan.expect([pexpect.TIMEOUT] + prompt, timeout=5): break; board.get_nf_conntrack_conn_count() board.get_proc_vmstat() board.touch() - if i == 299: + if i == 599: raise Exception("jmeter did not have enough time to complete") - print "Copying files from lan to dir = %s" % self.config.output_dir - lan.sendline('readlink -f output/') - lan.expect('readlink -f output/') - lan.expect(prompt) - fname=lan.before.strip() - scp_from(fname, lan.ipaddr, lan.username, lan.password, lan.port, os.path.join(self.config.output_dir, 'jmeter')) #lan.sendline('rm -rf output') #lan.expect(prompt) @@ -60,8 +54,34 @@ def recover(self): lan.sendcontrol('c') lan.expect(prompt) + print "Copying files from lan to dir = %s" % self.config.output_dir + lan.sendline('readlink -f output/') + lan.expect('readlink -f output/') + lan.expect(prompt) + fname=lan.before.strip() + scp_from(fname, lan.ipaddr, lan.username, lan.password, lan.port, os.path.join(self.config.output_dir, 'jmeter_%s' % self.name)) + # let board settle down board.expect(pexpect.TIMEOUT, timeout=30) board.parse_stats(dict_to_log=self.logged) - self.result_message = 'JMeter: DONE, cpu usage = %s' % self.logged['mpstat'] + self.result_message = 'JMeter: DONE, name = %s cpu usage = %s' % (self.name, self.logged['mpstat']) + + +class JMeter_10x_10u_5t(JMeter): + '''Runs JMeter jmx 10x_10u_5t''' + + jmx = os.path.join(os.path.dirname(__file__), 'jmeter/httpreq_10x_10u_5t.jmx') + name = "httpreq_10x_10u_5t" + +class JMeter_1x_9u_5t(JMeter): + '''Runs JMeter jmx 1x_9u_5t''' + + jmx = os.path.join(os.path.dirname(__file__), 'jmeter/httpreq_1x_9u_5t.jmx') + name = "httpreq_1x_9u_5t" + +class JMeter_20x_9u_1t(JMeter): + '''Runs JMeter jmx 20x_9u_1t''' + + jmx = os.path.join(os.path.dirname(__file__), 'jmeter/httpreq_20x_9u_1t.jmx') + name = "httpreq_20x_9u_1t" diff --git a/tests/jmeter/httpreq_10x_10u_5t.jmx b/tests/jmeter/httpreq_10x_10u_5t.jmx new file mode 100644 index 00000000..e15ae9f7 --- /dev/null +++ b/tests/jmeter/httpreq_10x_10u_5t.jmx @@ -0,0 +1,562 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.0 r1840935"> + <hashTree> + <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true"> + <stringProp name="TestPlan.comments"></stringProp> + <boolProp name="TestPlan.functional_mode">false</boolProp> + <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp> + <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> + <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="TestPlan.user_define_classpath"></stringProp> + </TestPlan> + <hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">10</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">5</stringProp> + <stringProp name="ThreadGroup.ramp_time">0</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">jmeter.apache.org</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">usermanual/test_plan.html</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">yahoo.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">youtube.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">watch?v=FITnB6b7tpg</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">cnn.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">msn.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">bloomberg.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">nytimes.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">bbc.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">amazon.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">walmart.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + </hashTree> + <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="GraphVisualizer" testclass="ResultCollector" testname="Graph Results" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="false"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="graphiteMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">graphiteMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.graphite.TextGraphiteMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="graphiteHost" elementType="Argument"> + <stringProp name="Argument.name">graphiteHost</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="graphitePort" elementType="Argument"> + <stringProp name="Argument.name">graphitePort</stringProp> + <stringProp name="Argument.value">2003</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="rootMetricsPrefix" elementType="Argument"> + <stringProp name="Argument.name">rootMetricsPrefix</stringProp> + <stringProp name="Argument.value">jmeter.</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">true</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersList" elementType="Argument"> + <stringProp name="Argument.name">samplersList</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.graphite.GraphiteBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + <ResultCollector guiclass="RespTimeGraphVisualizer" testclass="ResultCollector" testname="Response Time Graph" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="StatGraphVisualizer" testclass="ResultCollector" testname="Aggregate Graph" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + </hashTree> + </hashTree> +</jmeterTestPlan> diff --git a/tests/jmeter/httpreq_1x_9u_5t.jmx b/tests/jmeter/httpreq_1x_9u_5t.jmx new file mode 100644 index 00000000..7c1d6a0f --- /dev/null +++ b/tests/jmeter/httpreq_1x_9u_5t.jmx @@ -0,0 +1,562 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.0 r1840935"> + <hashTree> + <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true"> + <stringProp name="TestPlan.comments"></stringProp> + <boolProp name="TestPlan.functional_mode">false</boolProp> + <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp> + <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> + <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="TestPlan.user_define_classpath"></stringProp> + </TestPlan> + <hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">1</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">5</stringProp> + <stringProp name="ThreadGroup.ramp_time">0</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">jmeter.apache.org</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">usermanual/test_plan.html</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">yahoo.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">youtube.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">watch?v=FITnB6b7tpg</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">cnn.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="false"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">msn.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">bloomberg.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">nytimes.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">bbc.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">amazon.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">walmart.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + </hashTree> + <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="GraphVisualizer" testclass="ResultCollector" testname="Graph Results" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="false"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="graphiteMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">graphiteMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.graphite.TextGraphiteMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="graphiteHost" elementType="Argument"> + <stringProp name="Argument.name">graphiteHost</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="graphitePort" elementType="Argument"> + <stringProp name="Argument.name">graphitePort</stringProp> + <stringProp name="Argument.value">2003</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="rootMetricsPrefix" elementType="Argument"> + <stringProp name="Argument.name">rootMetricsPrefix</stringProp> + <stringProp name="Argument.value">jmeter.</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">true</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersList" elementType="Argument"> + <stringProp name="Argument.name">samplersList</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.graphite.GraphiteBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + <ResultCollector guiclass="RespTimeGraphVisualizer" testclass="ResultCollector" testname="Response Time Graph" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="StatGraphVisualizer" testclass="ResultCollector" testname="Aggregate Graph" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + </hashTree> + </hashTree> +</jmeterTestPlan> diff --git a/tests/jmeter/httpreq.jmx b/tests/jmeter/httpreq_20x_9u_1t.jmx similarity index 78% rename from tests/jmeter/httpreq.jmx rename to tests/jmeter/httpreq_20x_9u_1t.jmx index a9ab18e3..9ac1ebde 100644 --- a/tests/jmeter/httpreq.jmx +++ b/tests/jmeter/httpreq_20x_9u_1t.jmx @@ -16,9 +16,9 @@ <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> <boolProp name="LoopController.continue_forever">false</boolProp> - <stringProp name="LoopController.loops">10</stringProp> + <stringProp name="LoopController.loops">20</stringProp> </elementProp> - <stringProp name="ThreadGroup.num_threads">5</stringProp> + <stringProp name="ThreadGroup.num_threads">1</stringProp> <stringProp name="ThreadGroup.ramp_time">0</stringProp> <boolProp name="ThreadGroup.scheduler">false</boolProp> <stringProp name="ThreadGroup.duration"></stringProp> @@ -116,7 +116,7 @@ <stringProp name="HTTPSampler.response_timeout"></stringProp> </HTTPSamplerProxy> <hashTree/> - <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="false"> <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> <collectionProp name="Arguments.arguments"/> </elementProp> @@ -372,6 +372,154 @@ <stringProp name="classname">org.apache.jmeter.visualizers.backend.graphite.GraphiteBackendListenerClient</stringProp> </BackendListener> <hashTree/> + <ResultCollector guiclass="RespTimeGraphVisualizer" testclass="ResultCollector" testname="Response Time Graph" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> </hashTree> </hashTree> </jmeterTestPlan> From e258a058023f93ab017e7ae49d195d2a66585a53 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 12 Feb 2019 17:27:47 -0600 Subject: [PATCH 588/947] tests: jmeter: use different var for name This is overwriting the test name in the results Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/jmeter.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/jmeter.py b/tests/jmeter.py index 571d8539..e77c9a0d 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -11,7 +11,7 @@ class JMeter(rootfs_boot.RootFSBootTest): '''Runs JMeter jmx file from LAN device''' jmx = "https://jmeter.apache.org/demos/ForEachTest2.jmx" - name = "ForEachTest2" + shortname = "ForEachTest2" def runTest(self): install_jmeter(lan) @@ -59,13 +59,13 @@ def recover(self): lan.expect('readlink -f output/') lan.expect(prompt) fname=lan.before.strip() - scp_from(fname, lan.ipaddr, lan.username, lan.password, lan.port, os.path.join(self.config.output_dir, 'jmeter_%s' % self.name)) + scp_from(fname, lan.ipaddr, lan.username, lan.password, lan.port, os.path.join(self.config.output_dir, 'jmeter_%s' % self.shortname)) # let board settle down board.expect(pexpect.TIMEOUT, timeout=30) board.parse_stats(dict_to_log=self.logged) - self.result_message = 'JMeter: DONE, name = %s cpu usage = %s' % (self.name, self.logged['mpstat']) + self.result_message = 'JMeter: DONE, name = %s cpu usage = %s' % (self.shortname, self.logged['mpstat']) class JMeter_10x_10u_5t(JMeter): From e566fd17110e05514a0c5e88585ad4b93a4a56e3 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 13 Feb 2019 08:28:59 -0600 Subject: [PATCH 589/947] tests: jmeter: add more tests with delay Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/jmeter.py | 24 + .../jmeter/httpreq_20x_9u_1t_1000msdelay.jmx | 455 ++++++++++++++++++ .../jmeter/httpreq_20x_9u_1t_1500msdelay.jmx | 455 ++++++++++++++++++ tests/jmeter/httpreq_20x_9u_1t_300msdelay.jmx | 455 ++++++++++++++++++ tests/jmeter/httpreq_20x_9u_1t_500msdelay.jmx | 455 ++++++++++++++++++ 5 files changed, 1844 insertions(+) create mode 100755 tests/jmeter/httpreq_20x_9u_1t_1000msdelay.jmx create mode 100755 tests/jmeter/httpreq_20x_9u_1t_1500msdelay.jmx create mode 100755 tests/jmeter/httpreq_20x_9u_1t_300msdelay.jmx create mode 100755 tests/jmeter/httpreq_20x_9u_1t_500msdelay.jmx diff --git a/tests/jmeter.py b/tests/jmeter.py index e77c9a0d..80bf42b6 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -85,3 +85,27 @@ class JMeter_20x_9u_1t(JMeter): jmx = os.path.join(os.path.dirname(__file__), 'jmeter/httpreq_20x_9u_1t.jmx') name = "httpreq_20x_9u_1t" + +class JMeter_20x_9u_1t_300msdelay(JMeter): + '''Runs JMeter jmx 20x_9u_1t_300msdelay''' + + jmx = os.path.join(os.path.dirname(__file__), 'jmeter/httpreq_20x_9u_1t_300msdelay.jmx') + name = "httpreq_20x_9u_1t_300msdelay" + +class JMeter_20x_9u_1t_500msdelay(JMeter): + '''Runs JMeter jmx 20x_9u_1t_500msdelay''' + + jmx = os.path.join(os.path.dirname(__file__), 'jmeter/httpreq_20x_9u_1t_500msdelay.jmx') + name = "httpreq_20x_9u_1t_500msdelay" + +class JMeter_20x_9u_1t_1000msdelay(JMeter): + '''Runs JMeter jmx 20x_9u_1t_1000msdelay''' + + jmx = os.path.join(os.path.dirname(__file__), 'jmeter/httpreq_20x_9u_1t_1000msdelay.jmx') + name = "httpreq_20x_9u_1t_1000msdelay" + +class JMeter_20x_9u_1t_1500msdelay(JMeter): + '''Runs JMeter jmx 20x_9u_1t_1500msdelay''' + + jmx = os.path.join(os.path.dirname(__file__), 'jmeter/httpreq_20x_9u_1t_1500msdelay.jmx') + name = "httpreq_20x_9u_1t_1500msdelay" diff --git a/tests/jmeter/httpreq_20x_9u_1t_1000msdelay.jmx b/tests/jmeter/httpreq_20x_9u_1t_1000msdelay.jmx new file mode 100755 index 00000000..3e1173f1 --- /dev/null +++ b/tests/jmeter/httpreq_20x_9u_1t_1000msdelay.jmx @@ -0,0 +1,455 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.0 r1840935"> + <hashTree> + <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true"> + <stringProp name="TestPlan.comments"></stringProp> + <boolProp name="TestPlan.functional_mode">false</boolProp> + <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp> + <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> + <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="TestPlan.user_define_classpath"></stringProp> + </TestPlan> + <hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">20</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">1</stringProp> + <stringProp name="ThreadGroup.ramp_time">0</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">jmeter.apache.org</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">usermanual/test_plan.html</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">yahoo.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">youtube.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">watch?v=FITnB6b7tpg</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">cnn.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="false"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">msn.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">bloomberg.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">nytimes.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">bbc.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">amazon.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">walmart.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true"> + <stringProp name="ConstantTimer.delay">1000</stringProp> + </ConstantTimer> + <hashTree/> + </hashTree> + <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="false"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="graphiteMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">graphiteMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.graphite.TextGraphiteMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="graphiteHost" elementType="Argument"> + <stringProp name="Argument.name">graphiteHost</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="graphitePort" elementType="Argument"> + <stringProp name="Argument.name">graphitePort</stringProp> + <stringProp name="Argument.value">2003</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="rootMetricsPrefix" elementType="Argument"> + <stringProp name="Argument.name">rootMetricsPrefix</stringProp> + <stringProp name="Argument.value">jmeter.</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">true</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersList" elementType="Argument"> + <stringProp name="Argument.name">samplersList</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.graphite.GraphiteBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + </hashTree> + </hashTree> +</jmeterTestPlan> diff --git a/tests/jmeter/httpreq_20x_9u_1t_1500msdelay.jmx b/tests/jmeter/httpreq_20x_9u_1t_1500msdelay.jmx new file mode 100755 index 00000000..d76e4987 --- /dev/null +++ b/tests/jmeter/httpreq_20x_9u_1t_1500msdelay.jmx @@ -0,0 +1,455 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.0 r1840935"> + <hashTree> + <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true"> + <stringProp name="TestPlan.comments"></stringProp> + <boolProp name="TestPlan.functional_mode">false</boolProp> + <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp> + <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> + <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="TestPlan.user_define_classpath"></stringProp> + </TestPlan> + <hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">20</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">1</stringProp> + <stringProp name="ThreadGroup.ramp_time">0</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">jmeter.apache.org</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">usermanual/test_plan.html</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">yahoo.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">youtube.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">watch?v=FITnB6b7tpg</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">cnn.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="false"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">msn.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">bloomberg.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">nytimes.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">bbc.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">amazon.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">walmart.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true"> + <stringProp name="ConstantTimer.delay">1500</stringProp> + </ConstantTimer> + <hashTree/> + </hashTree> + <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="false"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="graphiteMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">graphiteMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.graphite.TextGraphiteMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="graphiteHost" elementType="Argument"> + <stringProp name="Argument.name">graphiteHost</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="graphitePort" elementType="Argument"> + <stringProp name="Argument.name">graphitePort</stringProp> + <stringProp name="Argument.value">2003</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="rootMetricsPrefix" elementType="Argument"> + <stringProp name="Argument.name">rootMetricsPrefix</stringProp> + <stringProp name="Argument.value">jmeter.</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">true</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersList" elementType="Argument"> + <stringProp name="Argument.name">samplersList</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.graphite.GraphiteBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + </hashTree> + </hashTree> +</jmeterTestPlan> diff --git a/tests/jmeter/httpreq_20x_9u_1t_300msdelay.jmx b/tests/jmeter/httpreq_20x_9u_1t_300msdelay.jmx new file mode 100755 index 00000000..bb9da75f --- /dev/null +++ b/tests/jmeter/httpreq_20x_9u_1t_300msdelay.jmx @@ -0,0 +1,455 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.0 r1840935"> + <hashTree> + <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true"> + <stringProp name="TestPlan.comments"></stringProp> + <boolProp name="TestPlan.functional_mode">false</boolProp> + <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp> + <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> + <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="TestPlan.user_define_classpath"></stringProp> + </TestPlan> + <hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">20</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">1</stringProp> + <stringProp name="ThreadGroup.ramp_time">0</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">jmeter.apache.org</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">usermanual/test_plan.html</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">yahoo.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">youtube.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">watch?v=FITnB6b7tpg</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">cnn.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="false"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">msn.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">bloomberg.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">nytimes.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">bbc.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">amazon.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">walmart.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true"> + <stringProp name="ConstantTimer.delay">300</stringProp> + </ConstantTimer> + <hashTree/> + </hashTree> + <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="false"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="graphiteMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">graphiteMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.graphite.TextGraphiteMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="graphiteHost" elementType="Argument"> + <stringProp name="Argument.name">graphiteHost</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="graphitePort" elementType="Argument"> + <stringProp name="Argument.name">graphitePort</stringProp> + <stringProp name="Argument.value">2003</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="rootMetricsPrefix" elementType="Argument"> + <stringProp name="Argument.name">rootMetricsPrefix</stringProp> + <stringProp name="Argument.value">jmeter.</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">true</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersList" elementType="Argument"> + <stringProp name="Argument.name">samplersList</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.graphite.GraphiteBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + </hashTree> + </hashTree> +</jmeterTestPlan> diff --git a/tests/jmeter/httpreq_20x_9u_1t_500msdelay.jmx b/tests/jmeter/httpreq_20x_9u_1t_500msdelay.jmx new file mode 100755 index 00000000..a3afe97d --- /dev/null +++ b/tests/jmeter/httpreq_20x_9u_1t_500msdelay.jmx @@ -0,0 +1,455 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.0 r1840935"> + <hashTree> + <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true"> + <stringProp name="TestPlan.comments"></stringProp> + <boolProp name="TestPlan.functional_mode">false</boolProp> + <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp> + <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> + <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="TestPlan.user_define_classpath"></stringProp> + </TestPlan> + <hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">20</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">1</stringProp> + <stringProp name="ThreadGroup.ramp_time">0</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">jmeter.apache.org</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">usermanual/test_plan.html</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">yahoo.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">youtube.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">watch?v=FITnB6b7tpg</stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">cnn.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="false"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">msn.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">bloomberg.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">nytimes.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">bbc.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">amazon.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="HTTPSampler.domain">walmart.com</stringProp> + <stringProp name="HTTPSampler.port"></stringProp> + <stringProp name="HTTPSampler.protocol"></stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path"></stringProp> + <stringProp name="HTTPSampler.method">GET</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp> + <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp> + <boolProp name="HTTPSampler.image_parser">true</boolProp> + <boolProp name="HTTPSampler.concurrentDwn">true</boolProp> + <stringProp name="HTTPSampler.concurrentPool">60</stringProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true"> + <stringProp name="ConstantTimer.delay">500</stringProp> + </ConstantTimer> + <hashTree/> + </hashTree> + <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="false"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="graphiteMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">graphiteMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.graphite.TextGraphiteMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="graphiteHost" elementType="Argument"> + <stringProp name="Argument.name">graphiteHost</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="graphitePort" elementType="Argument"> + <stringProp name="Argument.name">graphitePort</stringProp> + <stringProp name="Argument.value">2003</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="rootMetricsPrefix" elementType="Argument"> + <stringProp name="Argument.name">rootMetricsPrefix</stringProp> + <stringProp name="Argument.value">jmeter.</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">true</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersList" elementType="Argument"> + <stringProp name="Argument.name">samplersList</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.graphite.GraphiteBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + </hashTree> + </hashTree> +</jmeterTestPlan> From cb8cbe75db5f0323bb56cf9563d7e9b4e940a880 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 13 Feb 2019 11:03:56 -0600 Subject: [PATCH 590/947] tests: jmeter: end test early if nothing is foing on Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/jmeter.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/jmeter.py b/tests/jmeter.py index 80bf42b6..4789d558 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -35,10 +35,13 @@ def runTest(self): for i in range(600): if 0 != lan.expect([pexpect.TIMEOUT] + prompt, timeout=5): break; - board.get_nf_conntrack_conn_count() + conns = board.get_nf_conntrack_conn_count() board.get_proc_vmstat() board.touch() + if i > 100 and conns < 20: + raise Exception("jmeter is dead/stuck/broke, aborting the run") + if i == 599: raise Exception("jmeter did not have enough time to complete") From 5bf89f570d2e1609977837a06564d69451716ba9 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 14 Feb 2019 08:48:26 -0600 Subject: [PATCH 591/947] tests: jmeter: fix name issue for jmx Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/jmeter.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/jmeter.py b/tests/jmeter.py index 4789d558..5f74648e 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -75,40 +75,40 @@ class JMeter_10x_10u_5t(JMeter): '''Runs JMeter jmx 10x_10u_5t''' jmx = os.path.join(os.path.dirname(__file__), 'jmeter/httpreq_10x_10u_5t.jmx') - name = "httpreq_10x_10u_5t" + shortname = "httpreq_10x_10u_5t" class JMeter_1x_9u_5t(JMeter): '''Runs JMeter jmx 1x_9u_5t''' jmx = os.path.join(os.path.dirname(__file__), 'jmeter/httpreq_1x_9u_5t.jmx') - name = "httpreq_1x_9u_5t" + shortname = "httpreq_1x_9u_5t" class JMeter_20x_9u_1t(JMeter): '''Runs JMeter jmx 20x_9u_1t''' jmx = os.path.join(os.path.dirname(__file__), 'jmeter/httpreq_20x_9u_1t.jmx') - name = "httpreq_20x_9u_1t" + shortname = "httpreq_20x_9u_1t" class JMeter_20x_9u_1t_300msdelay(JMeter): '''Runs JMeter jmx 20x_9u_1t_300msdelay''' jmx = os.path.join(os.path.dirname(__file__), 'jmeter/httpreq_20x_9u_1t_300msdelay.jmx') - name = "httpreq_20x_9u_1t_300msdelay" + shortname = "httpreq_20x_9u_1t_300msdelay" class JMeter_20x_9u_1t_500msdelay(JMeter): '''Runs JMeter jmx 20x_9u_1t_500msdelay''' jmx = os.path.join(os.path.dirname(__file__), 'jmeter/httpreq_20x_9u_1t_500msdelay.jmx') - name = "httpreq_20x_9u_1t_500msdelay" + shortname = "httpreq_20x_9u_1t_500msdelay" class JMeter_20x_9u_1t_1000msdelay(JMeter): '''Runs JMeter jmx 20x_9u_1t_1000msdelay''' jmx = os.path.join(os.path.dirname(__file__), 'jmeter/httpreq_20x_9u_1t_1000msdelay.jmx') - name = "httpreq_20x_9u_1t_1000msdelay" + shortname = "httpreq_20x_9u_1t_1000msdelay" class JMeter_20x_9u_1t_1500msdelay(JMeter): '''Runs JMeter jmx 20x_9u_1t_1500msdelay''' jmx = os.path.join(os.path.dirname(__file__), 'jmeter/httpreq_20x_9u_1t_1500msdelay.jmx') - name = "httpreq_20x_9u_1t_1500msdelay" + shortname = "httpreq_20x_9u_1t_1500msdelay" From 452245d978e92ec638b109866432e502e47e6e4d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 14 Feb 2019 09:16:15 -0600 Subject: [PATCH 592/947] tests: hping3: add long version Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/hping3.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tests/hping3.py b/tests/hping3.py index 527f9c90..d8a25dc4 100644 --- a/tests/hping3.py +++ b/tests/hping3.py @@ -9,6 +9,7 @@ class hping3_basic_udp(rootfs_boot.RootFSBootTest): '''Floods hping3, creating lots of firewall entries in router''' conn_rate = "u2000" + conns = 20000 def runTest(self): install_hping3(lan) @@ -19,7 +20,7 @@ def runTest(self): board.collect_stats(stats=['mpstat']) # dest ip and port are fixed, random src port, fixed src ip, 100 us between - lan.sendline('hping3 -2 -c 20000 -d 120 -S -w 64 -p 445 -i %s %s' % (self.conn_rate, wan_ip)) + lan.sendline('hping3 -2 -c %s -d 120 -S -w 64 -p 445 -i %s %s' % (self.conns, self.conn_rate, wan_ip)) lan.expect('HPING', timeout=5) self.max_conns = 0 @@ -49,3 +50,10 @@ def recover(self): args = (self.conn_rate, self.max_conns, self.logged['mpstat']) self.result_message = "hping3 udp firewall test, conn_rate = %s, max_conns = %s, cpu usage = %.2f" % args + + +class hping3_basic_udp_long(hping3_basic_udp): + '''Floods hping3, creating lots of firewall entries in router''' + + conn_rate = "u2000" + conns = "60000" From f1c77040e25ea57dfb9434406811bd6fead43242 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 14 Feb 2019 15:04:20 -0600 Subject: [PATCH 593/947] tests: jmeter: fix missing arg Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/base.py | 3 +++ tests/jmeter.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/devices/base.py b/devices/base.py index 8fdfa793..29ff5c2b 100644 --- a/devices/base.py +++ b/devices/base.py @@ -239,3 +239,6 @@ def sendcontrol(self, char): return super(BaseDevice, self).sendcontrol(char) + def expect_exact_split(self, pattern, nsplit=1, *args, **kwargs): + pass + diff --git a/tests/jmeter.py b/tests/jmeter.py index 5f74648e..0c1a8930 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -20,7 +20,7 @@ def runTest(self): lan.sendline('curl %s > test.jmx' % self.jmx) lan.expect(prompt) else: - print("Copying %s to lan device") + print("Copying %s to lan device" % self.jmx) lan.copy_file_to_server(self.jmx, dst='/root/test.jmx') lan.sendline('rm -rf output *.log') From 79c9cde897d6993ae772f1752b30673a9304f2db Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 15 Feb 2019 07:33:44 -0600 Subject: [PATCH 594/947] tests: jmeter: touch board before copy If they files are large, they might take a long time to copy Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/jmeter.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/jmeter.py b/tests/jmeter.py index 0c1a8930..4f3d0e84 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -62,6 +62,7 @@ def recover(self): lan.expect('readlink -f output/') lan.expect(prompt) fname=lan.before.strip() + board.touch() scp_from(fname, lan.ipaddr, lan.username, lan.password, lan.port, os.path.join(self.config.output_dir, 'jmeter_%s' % self.shortname)) # let board settle down From 686ff6b75ba072629226c6205085853910a047e7 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 15 Feb 2019 07:36:25 -0600 Subject: [PATCH 595/947] tests: hping3: wait longer for HPING No need to limit this to 5 seconds, if there is a network blimp a long running test could fail Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/hping3.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/hping3.py b/tests/hping3.py index d8a25dc4..aeedf8bd 100644 --- a/tests/hping3.py +++ b/tests/hping3.py @@ -21,7 +21,7 @@ def runTest(self): # dest ip and port are fixed, random src port, fixed src ip, 100 us between lan.sendline('hping3 -2 -c %s -d 120 -S -w 64 -p 445 -i %s %s' % (self.conns, self.conn_rate, wan_ip)) - lan.expect('HPING', timeout=5) + lan.expect('HPING') self.max_conns = 0 for not_used in range(10): From 35ca51cf7e38eec69bf385c13f7554743fca9b9f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 15 Feb 2019 07:37:51 -0600 Subject: [PATCH 596/947] tests: connection_stress: wait longer than 5 seconds If we have network issues, maybe this will fail, so let's wait longer for more useful debugging Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/connection_stress.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/connection_stress.py b/tests/connection_stress.py index cc0e6726..6dce57b1 100644 --- a/tests/connection_stress.py +++ b/tests/connection_stress.py @@ -36,7 +36,7 @@ def runTest(self): board.collect_stats(stats=['mpstat']) # Lan Device: download small file a lot lan.sendline('\nab -dn %s -c %s %s' % (self.num_conn, self.concurrency, url)) - lan.expect('Benchmarking', timeout=5) + lan.expect('Benchmarking') timeout=0.05*self.num_conn if 0 != lan.expect(['Requests per second:\s+(\d+)', 'apr_socket_recv: Connection reset by peer'], timeout=timeout): raise Exception("ab failed to run") From 1cc5d06cb840ddd03aa8dd7f70f0704927d19dbb Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 15 Feb 2019 07:40:06 -0600 Subject: [PATCH 597/947] tests: lib: installers: make jmeter check more generic Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/installers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 279724ff..d607e6bd 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -338,7 +338,7 @@ def install_jmeter(device): device.expect(device.prompt) device.sendline('jmeter --version') try: - device.expect_exact('Copyright (c) 1999-2018 The Apache Software Foundation', timeout=5) + device.expect_exact('The Apache Software Foundation', timeout=5) device.expect(device.prompt) except: device.expect(device.prompt) From 0902aa1415fd1f1a419324e53c05baa1a5d10ef3 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 15 Feb 2019 09:49:16 -0600 Subject: [PATCH 598/947] devices: owrt: try harder not to leave console broken Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 6e516154..27f11256 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -578,8 +578,19 @@ def collect_stats(self, stats=[]): for stat in stats: if 'mpstat' in stat: - pp.sendline("kill `ps | grep mpstat | grep -v grep | awk '{print $1}'`") - pp.expect(pp.prompt) + for i in range(5): + try: + pp.sendcontrol('c') + pp.sendline("kill `ps | grep mpstat | grep -v grep | awk '{print $1}'`") + pp.expect_exact("kill `ps | grep mpstat | grep -v grep | awk '{print $1}'`") + pp.expect(pp.prompt) + break + except: + if i == 4: + print_bold("FAILED TO KILL MPSTAT!") + pp.sendcontrol('c') + pass + pp.sendline('mpstat -P ALL 5 > %s/mpstat &' % self.tmpdir) if 0 == pp.expect(['mpstat: not found'] + pp.prompt): self.failed_stats['mpstat'] = float('nan') From 9d4cb8c79cd803be975ed0120803125ab5dcc02f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 15 Feb 2019 16:58:26 -0600 Subject: [PATCH 599/947] tests: jmeter: disable copying files to results for now This can take too long, so let's skip it for now Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/jmeter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/jmeter.py b/tests/jmeter.py index 4f3d0e84..6758de1e 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -63,7 +63,7 @@ def recover(self): lan.expect(prompt) fname=lan.before.strip() board.touch() - scp_from(fname, lan.ipaddr, lan.username, lan.password, lan.port, os.path.join(self.config.output_dir, 'jmeter_%s' % self.shortname)) + #scp_from(fname, lan.ipaddr, lan.username, lan.password, lan.port, os.path.join(self.config.output_dir, 'jmeter_%s' % self.shortname)) # let board settle down board.expect(pexpect.TIMEOUT, timeout=30) From c11353bed6ed59ac04e28248277a31338dc6ed7b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Sat, 16 Feb 2019 08:44:19 -0600 Subject: [PATCH 600/947] devices: owrt: tweak timing and touch for nf conntrack count Just to make extra sure we don't get stuck here and timeout a serial connection over telnet or something like that Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 27f11256..14a12ab3 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -540,9 +540,10 @@ def get_nf_conntrack_conn_count(self): try: pp.sendline('cat /proc/sys/net/netfilter/nf_conntrack_count') pp.expect_exact('cat /proc/sys/net/netfilter/nf_conntrack_count', timeout=2) - pp.expect(pp.prompt) + pp.expect(pp.prompt, timeout=15) ret = int(pp.before.strip()) + self.touch() return ret except: continue From 3966bf3939b557a04590c08939ba3ee1cd3a1ac1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Sat, 16 Feb 2019 10:49:17 -0600 Subject: [PATCH 601/947] devices: owrt: add missing import Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 1 + 1 file changed, 1 insertion(+) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 14a12ab3..48624302 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -22,6 +22,7 @@ import power import common import connection_decider +from common import print_bold class OpenWrtRouter(base.BaseDevice): ''' From e64687f4091065e2a4be495cf0f866ef2d030755 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Sun, 17 Feb 2019 13:12:07 -0600 Subject: [PATCH 602/947] devices: owrt: make parsing mpstat a little bit more robust Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/openwrt_router.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 48624302..194aad1b 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -614,20 +614,23 @@ def parse_stats(self, dict_to_log={}): pp.sendcontrol('c') pp.expect(pp.prompt) pp.sendline('cat %s/mpstat' % self.tmpdir) - pp.expect_exact('cat %s/mpstat' % self.tmpdir) + pp.expect(['cat %s/mpstat' % self.tmpdir, pexpect.TIMEOUT]) idle_vals = [] start = datetime.now() - while 0 == pp.expect(['all(\s+\d+\.\d{2}){9}\r\n'] + pp.prompt): + while 0 == pp.expect(['all(\s+\d+\.\d{2}){9}\r\n', pexpect.TIMEOUT] + pp.prompt): idle_vals.append(float(pp.match.group().strip().split(' ')[-1])) if (datetime.now() - start).seconds > 60: self.touch() - avg_cpu_usage = 100 - sum(idle_vals) / len(idle_vals) - dict_to_log['mpstat'] = avg_cpu_usage + if len(idle_vals) != 0: + avg_cpu_usage = 100 - sum(idle_vals) / len(idle_vals) + dict_to_log['mpstat'] = avg_cpu_usage + else: + dict_to_log['mpstat'] = 0 pp.sendline('rm %s/mpstat' % self.tmpdir) - pp.expect(pp.prompt) + pp.expect([pexpect.TIMEOUT] + pp.prompt) idx += 1 From 4bcad8900b140027d51fc60a95b4476df7074c8a Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 18 Feb 2019 06:40:20 -0600 Subject: [PATCH 603/947] tests: lib: installers: give more time for jmeter to print version This is java after all... it can take a while to finally print the version Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/installers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index d607e6bd..3707915c 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -338,7 +338,7 @@ def install_jmeter(device): device.expect(device.prompt) device.sendline('jmeter --version') try: - device.expect_exact('The Apache Software Foundation', timeout=5) + device.expect_exact('The Apache Software Foundation') device.expect(device.prompt) except: device.expect(device.prompt) From 3a17453d5039fb218163def61882b1cfe464ab43 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 18 Feb 2019 08:53:09 -0600 Subject: [PATCH 604/947] deploy-boardfarm-nodes: add ipvlan (vs macvlan) option for containers Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index aaf01728..a6899d19 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -123,6 +123,31 @@ create_container_eth1_static () { docker exec $cname ping $default_route -c3 } + +# eth1 is on main network and static +create_container_eth1_static_ipvlan () { + local name=$1 + local ip=$2 + local default_route=$3 + + cname=bft-node-$IFACE-$name + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -d --network=none $BF_IMG /usr/sbin/sshd -D + + cspace=$(docker inspect --format {{.State.Pid}} $cname) + + # create lab network access port + sudo ip link add tempfoo link $IFACE type ipvlan mode l2 + sudo ip link set dev tempfoo up + sudo ip link set netns $cspace dev tempfoo + docker exec $cname ip link set tempfoo name eth1 + docker exec $cname ip link set eth1 up + docker exec $cname ip addr add $ip dev eth1 + docker exec $cname ip route add default via $default_route dev eth1 + docker exec $cname ping $default_route -c3 +} + # eth0 is docker private network, eth1 is static ip create_container_eth1_static_linked () { local name=$1 From ee38e2ec0e8da4cbdb4c0acf0c80e9e74423e263 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 19 Feb 2019 15:02:19 -0600 Subject: [PATCH 605/947] tests: jmeter: keep console alive at all costs Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/jmeter.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/jmeter.py b/tests/jmeter.py index 6758de1e..16e9085a 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -54,21 +54,27 @@ def runTest(self): self.recover() def recover(self): + board.touch() lan.sendcontrol('c') lan.expect(prompt) + board.touch() print "Copying files from lan to dir = %s" % self.config.output_dir lan.sendline('readlink -f output/') lan.expect('readlink -f output/') + board.touch() lan.expect(prompt) + board.touch() fname=lan.before.strip() board.touch() #scp_from(fname, lan.ipaddr, lan.username, lan.password, lan.port, os.path.join(self.config.output_dir, 'jmeter_%s' % self.shortname)) # let board settle down board.expect(pexpect.TIMEOUT, timeout=30) + board.touch() board.parse_stats(dict_to_log=self.logged) + board.touch() self.result_message = 'JMeter: DONE, name = %s cpu usage = %s' % (self.shortname, self.logged['mpstat']) From babcb3aa8e6c26a1feb8820d35f920397e8d28c4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 19 Feb 2019 06:07:10 -0600 Subject: [PATCH 606/947] bft: pick correct iface for tftp server if no eth0 Also, don't print extra console output when the scripts are starting up Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/bft b/bft index 5690b544..874064e5 100755 --- a/bft +++ b/bft @@ -139,7 +139,13 @@ def main(): def get_tftp_config(dev): saved = config.console.logfile_read config.console.logfile_read = None - config.console.tftp_server = dev.get_interface_ipaddr("eth0") + saved = dev.logfile_read + dev.logfile_read = None + if 'wan-no-eth0' in dev.kwargs.get('options', ""): + config.console.tftp_server = dev.get_interface_ipaddr("eth1") + else: + config.console.tftp_server = dev.get_interface_ipaddr("eth0") + dev.logfile_read = saved config.console.tftp_username = "root" config.console.tftp_password = "bigfoot1" config.console.tftp_port = "22" From afcfc03216c1020bbd89f0aedca1a5820fb3be85 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 20 Feb 2019 04:08:14 -0600 Subject: [PATCH 607/947] devices: debian: update provisioner to use values from bft config - extra config from boardfarm config - disable ipv6 for the time being, until it's sorted out - don't override eth1 addr if we don't use eth0 Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 200 +++++++++++++++++++++++++--------------------- 1 file changed, 111 insertions(+), 89 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index c7ac83da..1abd6184 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -43,17 +43,6 @@ class DebianBox(base.BaseDevice): iface_dut = "eth1" - # provisioner settings - # TODO: import from provisioner boardfarm config - # TODO: move provisioner to it's own distinct class - cm_network = ipaddress.IPv4Network(u"192.168.200.0/24") - cm_gateway = ipaddress.IPv4Address(u"192.168.200.1") - mta_network = ipaddress.IPv4Network(u"192.168.201.0/24") - mta_gateway = ipaddress.IPv4Address(u"192.168.201.1") - prov_network = ipaddress.IPv4Network(u"192.168.3.0/24") - prov_gateway = ipaddress.IPv4Address(u"192.168.3.222") - prov_ip = ipaddress.IPv4Address(u"192.168.3.1") - def __init__(self, *args, **kwargs): @@ -79,6 +68,14 @@ def __init__(self, self.http_proxy = kwargs.pop('http_proxy', None) + self.cm_network = ipaddress.IPv4Network(kwargs.pop('cm_network', u"192.168.200.0/24")) + self.cm_gateway = ipaddress.IPv4Address(kwargs.pop('cm_gateway', u"192.168.200.1")) + self.mta_network = ipaddress.IPv4Network(kwargs.pop('mta_network', u"192.168.201.0/24")) + self.mta_gateway = ipaddress.IPv4Address(kwargs.pop('mta_gateway', u"192.168.201.1")) + self.prov_network = ipaddress.IPv4Network(kwargs.pop('prov_network', u"192.168.3.0/24")) + self.prov_gateway = ipaddress.IPv4Address(kwargs.pop('prov_gateway', u"192.168.3.222")) + self.prov_ip = ipaddress.IPv4Address(kwargs.pop('prov_ip', u"192.168.3.1")) + if ipaddr is not None: pexpect.spawn.__init__(self, command="ssh", @@ -450,105 +447,128 @@ def update_cmts_isc_dhcp_config(self, board_config): tftp_server = self.tftp_device.tftp_server_ip_int() # TODO: lots of hard coded values... all need to go away - self.sendline('''cat > /etc/dhcp/dhcpd.conf-''' + board_config['station'] + '''.master << EOF + to_send = '''cat > /etc/dhcp/dhcpd.conf-''' + board_config['station'] + '''.master << EOF log-facility local7; -option log-servers 192.168.3.1; -option time-servers 192.168.3.1; -next-server 192.168.3.1; +option log-servers ###LOG_SERVER###; +option time-servers ###TIME_SERVER###; +next-server ###NEXT_SERVER###; default-lease-time 604800; max-lease-time 604800; allow leasequery; option space docsis-mta; option docsis-mta.dhcp-server-1 code 1 = ip-address; -option docsis-mta.dhcp-server-1 192.168.3.1; +option docsis-mta.dhcp-server-1 ###MTA_DHCP_SERVER1###; option docsis-mta.dhcp-server-2 code 2 = ip-address; -option docsis-mta.dhcp-server-2 192.168.3.1; +option docsis-mta.dhcp-server-2 ###MTA_DHCP_SERVER2###; option docsis-mta.provision-server code 3 = { integer 8, string }; option docsis-mta.provision-server 0 08:54:43:4F:4D:4C:41:42:53:03:43:4F:4D:00 ; option docsis-mta-encap code 122 = encapsulate docsis-mta; option docsis-mta.kerberos-realm code 6 = string; option docsis-mta.kerberos-realm 05:42:41:53:49:43:01:31:00 ; -subnet 192.168.3.0 netmask 255.255.255.0 { +subnet ###PROV_IP### netmask ###PROV_NETMASK### { interface %s; } -subnet 192.168.200.0 netmask 255.255.255.0 +subnet ###CM_IP### netmask ###CM_NETMASK### { interface %s; - range 192.168.200.10 192.168.200.250; - option routers 192.168.200.1; - option broadcast-address 192.168.200.255; + range ###CM_START_RANGE### ###CM_END_RANGE###; + option routers ###CM_GATEWAY###; + option broadcast-address ###CM_BROADCAST###; option dhcp-parameter-request-list 43; option domain-name "local"; option time-offset 1; - option tftp-server-name "192.168.3.1"; + option tftp-server-name "###DEFAULT_TFTP_SERVER###"; filename "UNLIMITCASA.cfg"; allow unknown-clients; } -subnet 192.168.201.0 netmask 255.255.255.0 +subnet ###MTA_IP### netmask ###MTA_NETMASK### { interface %s; - range 192.168.201.10 192.168.201.250; - option routers 192.168.201.1; - option broadcast-address 192.168.201.255; + range ###MTA_START_RANGE### ###MTA_END_RANGE###; + option routers ###MTA_GATEWAY###; + option broadcast-address ###MTA_BROADCAST###; option time-offset 1; option domain-name-servers %s; allow unknown-clients; } -EOF''' % (self.iface_dut, self.iface_dut, self.iface_dut, self.gw)) +EOF''' % (self.iface_dut, self.iface_dut, self.iface_dut, self.gw) + + to_send = to_send.replace('###LOG_SERVER###', str(self.prov_ip)) + to_send = to_send.replace('###TIME_SERVER###', str(self.prov_ip)) + to_send = to_send.replace('###NEXT_SERVER###', str(self.prov_ip)) + to_send = to_send.replace('###MTA_DHCP_SERVER1###', str(self.prov_ip)) + to_send = to_send.replace('###MTA_DHCP_SERVER2###', str(self.prov_ip)) + to_send = to_send.replace('###PROV_IP###', str(self.prov_network[0])) + to_send = to_send.replace('###PROV_NETMASK###', str(self.prov_network.netmask)) + to_send = to_send.replace('###CM_IP###', str(self.cm_network[0])) + to_send = to_send.replace('###CM_NETMASK###', str(self.cm_network.netmask)) + to_send = to_send.replace('###CM_START_RANGE###', str(self.cm_network[10])) + to_send = to_send.replace('###CM_END_RANGE###', str(self.cm_network[60])) + to_send = to_send.replace('###CM_GATEWAY###', str(self.cm_gateway)) + to_send = to_send.replace('###CM_BROADCAST###', str(self.cm_network[-1])) + to_send = to_send.replace('###DEFAULT_TFTP_SERVER###', str(self.prov_ip)) + to_send = to_send.replace('###MTA_IP###', str(self.mta_network[0])) + to_send = to_send.replace('###MTA_NETMASK###', str(self.mta_network.netmask)) + to_send = to_send.replace('###MTA_START_RANGE###', str(self.mta_network[10])) + to_send = to_send.replace('###MTA_END_RANGE###', str(self.mta_network[60])) + to_send = to_send.replace('###MTA_GATEWAY###', str(self.mta_gateway)) + to_send = to_send.replace('###MTA_BROADCAST###', str(self.mta_network[-1])) + + self.sendline(to_send) self.expect(self.prompt) # The board will ignore this unless the docsis-mac is set to ipv6 # That needs to be done manually as well as copying any CM cfg files # to the provisioner (e.g. still not fully automated) # TODO: fix hard coded tftp ipv6 addr - self.sendline('''cat > /etc/dhcp/dhcpd6.conf-''' + board_config['station'] + '''.master << EOF -preferred-lifetime 7500; -option dhcp-renewal-time 3600; -option dhcp-rebinding-time 5400; -allow leasequery; -option dhcp6.name-servers 2001:4860:4860::8888; -option dhcp6.domain-search "test.example.com","example.com"; -option dhcp6.info-refresh-time 21600; -option dhcp6.ia_pd code 25 = { integer 32, integer 32, integer 32, integer 16, integer 16, integer 32, integer 32, integer 8, ip6-address}; -option dhcp6.gateway code 32003 = ip6-address; -option space docsis code width 2 length width 2 hash size 100; -option docsis.tftp-servers code 32 = array of ip6-address; -option docsis.configuration-file code 33 = text; -option docsis.syslog-servers code 34 = array of ip6-address; -#option docsis.device-id code 36 = string; -option docsis.time-servers code 37 = array of ip6-address; -option docsis.time-offset code 38 = signed integer 32; -option vsio.docsis code 4491 = encapsulate docsis; - -subnet6 2001:ed8:77b5:3::/64 { - range6 2001:ed8:77b5:3::10 2001:ed8:77b5:3::100; - interface %s; - option docsis.tftp-servers 2001:ed8:77b5:3::101; - option docsis.time-servers 2001:ed8:77b5:3::101; - option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; - option docsis.syslog-servers 2001:ed8:77b5:3::101 ; - option docsis.time-offset 5000; -} -subnet6 2001:ed8:77b5:2000::/64 { - range6 2001:ed8:77b5:2000::10 2001:ed8:77b5:2000::100; - interface %s; - option docsis.tftp-servers 2001:ed8:77b5:3::101; - option docsis.time-servers 2001:ed8:77b5:3::101; - option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; - option docsis.syslog-servers 2001:ed8:77b5:3::101; - option docsis.time-offset 5000; -} -subnet6 2001:ed8:77b5:2001::/64 { - range6 2001:ed8:77b5:2001::10 2001:ed8:77b5:2001::100; - interface %s; - option dhcp6.ia_pd 1234 20000 40000 26 25 30000 60000 64 2001:ed8:77b5:4::; - option dhcp6.solmax-rt 240; - option dhcp6.inf-max-rt 360; -} -EOF''' % (self.iface_dut, self.iface_dut, self.iface_dut)) - self.expect(self.prompt) +# self.sendline('''cat > /etc/dhcp/dhcpd6.conf-''' + board_config['station'] + '''.master << EOF +#preferred-lifetime 7500; +#option dhcp-renewal-time 3600; +#option dhcp-rebinding-time 5400; +#allow leasequery; +#option dhcp6.name-servers 2001:4860:4860::8888; +#option dhcp6.domain-search "test.example.com","example.com"; +#option dhcp6.info-refresh-time 21600; +#option dhcp6.ia_pd code 25 = { integer 32, integer 32, integer 32, integer 16, integer 16, integer 32, integer 32, integer 8, ip6-address}; +#option dhcp6.gateway code 32003 = ip6-address; +#option space docsis code width 2 length width 2 hash size 100; +#option docsis.tftp-servers code 32 = array of ip6-address; +#option docsis.configuration-file code 33 = text; +#option docsis.syslog-servers code 34 = array of ip6-address; +##option docsis.device-id code 36 = string; +#option docsis.time-servers code 37 = array of ip6-address; +#option docsis.time-offset code 38 = signed integer 32; +#option vsio.docsis code 4491 = encapsulate docsis; +# +#subnet6 2001:ed8:77b5:3::/64 { +# range6 2001:ed8:77b5:3::10 2001:ed8:77b5:3::100; +# interface %s; +# option docsis.tftp-servers 2001:ed8:77b5:3::101; +# option docsis.time-servers 2001:ed8:77b5:3::101; +# option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; +# option docsis.syslog-servers 2001:ed8:77b5:3::101 ; +# option docsis.time-offset 5000; +#} +#subnet6 2001:ed8:77b5:2000::/64 { +# range6 2001:ed8:77b5:2000::10 2001:ed8:77b5:2000::100; +# interface %s; +# option docsis.tftp-servers 2001:ed8:77b5:3::101; +# option docsis.time-servers 2001:ed8:77b5:3::101; +# option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; +# option docsis.syslog-servers 2001:ed8:77b5:3::101; +# option docsis.time-offset 5000; +#} +#subnet6 2001:ed8:77b5:2001::/64 { +# range6 2001:ed8:77b5:2001::10 2001:ed8:77b5:2001::100; +# interface %s; +# option dhcp6.ia_pd 1234 20000 40000 26 25 30000 60000 64 2001:ed8:77b5:4::; +# option dhcp6.solmax-rt 240; +# option dhcp6.inf-max-rt 360; +#} +#EOF''' % (self.iface_dut, self.iface_dut, self.iface_dut)) +# self.expect(self.prompt) self.sendline('rm /etc/dhcp/dhcpd.conf.''' + board_config['station']) self.expect(self.prompt) @@ -646,33 +666,35 @@ def provision_board(self, board_config): self.expect(self.prompt) self.sendline('sed s/INTERFACESv4=.*/INTERFACESv4=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) self.expect(self.prompt) - self.sendline('sed s/INTERFACESv6=.*/INTERFACESv6=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) + #self.sendline('sed s/INTERFACESv6=.*/INTERFACESv6=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) + self.sendline('sed "/INTERFACESv6/d" -i /etc/default/isc-dhcp-server') self.expect(self.prompt) # we are bypass this for now (see http://patchwork.ozlabs.org/patch/117949/) self.sendline('sysctl -w net.ipv6.conf.%s.accept_dad=0' % self.iface_dut) self.expect(self.prompt) - self.sendline('ifconfig %s %s' % (self.iface_dut, self.gw)) - self.expect(self.prompt) - self.sendline('ifconfig %s inet6 add 2001:ed8:77b5:3::101/64' % self.iface_dut) - self.expect(self.prompt) + if not self.wan_no_eth0: + self.sendline('ifconfig %s %s' % (self.iface_dut, self.gw)) + self.expect(self.prompt) + #self.sendline('ifconfig %s inet6 add 2001:ed8:77b5:3::101/64' % self.iface_dut) + #self.expect(self.prompt) # TODO: specify these via config - self.sendline('ip route add 192.168.201.0/24 via 192.168.3.222') - self.expect(self.prompt) - self.sendline('ip route add 192.168.200.0/24 via 192.168.3.222') - self.expect(self.prompt) + #self.sendline('ip route add 192.168.201.0/24 via 192.168.3.222' % (self.mta_network, self.prov_gateway)) + #self.expect(self.prompt) + #self.sendline('ip route add 192.168.200.0/24 via 192.168.3.222' % (self.cm_network, self.prov_gateway)) + #self.expect(self.prompt) # TODO: iface_dut needs an ipv6 addr # sysctl net.ipv6.conf.%s.disable_ipv6=0 % iface_dut - self.sendline('ip -6 route add 2001:ed8:77b5:2000::/64 via 2001:ed8:77b5:3::222 dev %s metric 1024' % self.iface_dut) - self.expect(self.prompt) - self.sendline('ip -6 route add 2001:ed8:77b5:2001::/64 via 2001:ed8:77b5:3::222 dev %s metric 1024' % self.iface_dut) - self.expect(self.prompt) + #self.sendline('ip -6 route add 2001:ed8:77b5:2000::/64 via 2001:ed8:77b5:3::222 dev %s metric 1024' % self.iface_dut) + #self.expect(self.prompt) + #self.sendline('ip -6 route add 2001:ed8:77b5:2001::/64 via 2001:ed8:77b5:3::222 dev %s metric 1024' % self.iface_dut) + #self.expect(self.prompt) self.update_cmts_isc_dhcp_config(board_config) self.sendline('cat /etc/dhcp/dhcpd.conf') self.expect(self.prompt) self.sendline('(flock -x 9; /etc/init.d/isc-dhcp-server restart; flock -u 9) 9>/etc/init.d/isc-dhcp-server.lock') # We expect both, so we need debian 9 or greater for this device self.expect('Starting ISC DHCPv4 server: dhcpd.\r\n') - self.expect('Starting ISC DHCPv6 server: dhcpd6.\r\n') + #self.expect('Starting ISC DHCPv6 server: dhcpd6.\r\n') self.expect(self.prompt) self.sendline('rm /etc/init.d/isc-dhcp-server.lock') self.expect(self.prompt) @@ -761,7 +783,7 @@ def setup_as_wan_gateway(self): self.sendline('dhclient -r %s; dhclient %s' % (self.iface_dut, self.iface_dut)) self.expect(self.prompt) self.gw = self.get_interface_ipaddr(self.iface_dut) - else: + elif not self.wan_no_eth0: self.sendline('ifconfig %s %s' % (self.iface_dut, self.gw)) self.expect(self.prompt) self.sendline('ifconfig %s up' % self.iface_dut) From 8c148f67409cf03bbf1b6b7c62e2cbd320126bb1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 20 Feb 2019 04:23:00 -0600 Subject: [PATCH 608/947] devices: casa_cmts: add admin password and autodetect hostname Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/casa_cmts.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 6c213fb7..af0fdd3d 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -27,6 +27,7 @@ def __init__(self, connection_type = kwargs.get('connection_type', 'local_serial') self.username = kwargs.get('username', 'root') self.password = kwargs.get('password', 'casa') + self.password_admin = kwargs.get('password_admin', 'casa') if conn_cmd is None: # TODO: try to parse from ipaddr, etc @@ -39,7 +40,10 @@ def __init__(self, def connect(self): try: - if 0 == self.expect(['login:', pexpect.TIMEOUT], timeout=10): + if 0 == self.expect(['\n(.*) login:', pexpect.TIMEOUT], timeout=10): + self.prompt.append(self.match.group(1) + '>') + self.prompt.append(self.match.group(1) + '#') + self.prompt.append(self.match.group(1) + '\(.*\)#') self.sendline(self.username) self.expect('assword:') self.sendline(self.password) @@ -52,7 +56,7 @@ def connect(self): self.expect([pexpect.TIMEOUT] + self.prompt, timeout=20) self.sendline('enable') if 0 == self.expect(['Password:'] + self.prompt): - self.sendline(self.password) + self.sendline(self.password_admin) self.expect(self.prompt) self.sendline('config') self.expect(self.prompt) From f0d9e3a2755e6e7b466806ead07baeee8d9b8df4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 20 Feb 2019 04:36:26 -0600 Subject: [PATCH 609/947] devices: base: allow setting logfile_read back to None Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/base.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/base.py b/devices/base.py index 29ff5c2b..cb424795 100644 --- a/devices/base.py +++ b/devices/base.py @@ -113,6 +113,8 @@ def flush(self): if value is not None: self._logfile_read = o_helper(self, value, getattr(self, "color", None)) + else: + self._logfile_read = None logfile_read = property(get_logfile_read, set_logfile_read) From aa511b6148ae0469ddb1c5d09f7da3a5e7296452 Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Fri, 15 Feb 2019 01:03:31 +0530 Subject: [PATCH 610/947] tests: lib: common - Functions for json file open, snmp set and get file_open() - function to open a file and read the values snmp_mib_set() - SNMP set function to set values snmp_mib_get() - SNMP get function to get values Signed-off-by: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> --- tests/lib/common.py | 56 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/tests/lib/common.py b/tests/lib/common.py index e84121ab..b85a5891 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -17,6 +17,7 @@ import signal import config from termcolor import cprint +import re from selenium import webdriver from selenium.webdriver.common.proxy import * @@ -389,3 +390,58 @@ def configure_postfix(device): device.expect(device.prompt) device.sendline("service postfix reload") assert 0 != device.expect(['failed']+ device.prompt, timeout = 20) , "Unable to reolad server with new configurations" + + +def file_open_json(file): + try: + with open(file) as f: + return json.load(f) + except: + raise Exception("Could not open the json file") + +def snmp_mib_set(device, board, iface_ip, mib_name, index, set_type, set_value, timeout=10, retry=3): + """ + Name: snmp_mib_set + Purpose: set value of mibs via snmp + Input: wan, board, prompt, wan_ip, mib_name, index, set_type ,set_value + Output: set value + mib_name has to be passed with name of the mib, index is query index + set_type is "i" or "s" or "a" or "x" + set_value is the value to be set for the mib + Usage: snmp_mib_set(wan, board, board.wan_iface, "wifiMgmtBssSecurityMode", "32", "i", "1") + """ + match = re.search("\d+.(.*)",board.mib[mib_name]) + mib_oid = match.group(1)+'.'+index + time_out = (timeout*retry)+30 + device.sendline("snmpset -v 2c -c private -t " +str(timeout)+ " -r "+str(retry)+" "+iface_ip+" "+board.mib[mib_name]+"."+str(index)+" "+set_type+" "+str(set_value)) + if set_type == "i" or set_type == "a" or set_type == "u": + idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\w+\:\s+(%s)\r\n' % set_value] + device.prompt, timeout=time_out) + elif set_type == "s": + idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\w+\:\s+("%s")\r\n' % set_value] + device.prompt, timeout=time_out) + elif set_type == "x": + set_value_hex = set_value[2:].upper() + set_value_output = ' '.join([set_value_hex[i:i+2] for i in range(0, len(set_value_hex), 2)]) + idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\w+\:\s+(%s)\r\n' % set_value_output] + device.prompt, timeout=40) + assert idx==1,"Setting the mib %s" % mib_name + snmp_out = device.match.group(1) + device.expect(device.prompt) + return snmp_out + +def snmp_mib_get(device, board, iface_ip, mib_name, index, timeout=10, retry=3): + """ + Name: snmp_mib_get + Purpose: get the value of mibs via snmp + Input: wan, board, prompt, wan_ip, mib_name, index + Output: get value + mib_name has to be passed with name of the mib, index is query index + Usage: snmp_mib_set(wan, board, board.wan_iface, "wifiMgmtBssSecurityMode", "32") + """ + match = re.search("\d+.(.*)",board.mib[mib_name]) + mib_oid = match.group(1)+'.'+index + time_out = (timeout*retry)+30 + device.sendline("snmpget -v 2c -c private -t " +str(timeout)+ " -r "+str(retry)+" "+iface_ip+" "+board.mib[mib_name]+"."+str(index)) + idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\w+\:\s+(.*)\r\n'] + device.prompt, timeout=time_out) + assert idx==1,"Getting the mib %s"% mib_name + snmp_out = device.match.group(1) + device.expect(device.prompt) + return snmp_out From 57ba7c170c50b4d35f3f30c21be5913cf7374a6d Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Wed, 13 Feb 2019 00:18:03 +0530 Subject: [PATCH 611/947] devices: add various wifi related functions and helper changes debian: set_link_state() - To set the link status devices: debian_wifi: - Function to connect wifi wlan_ssid_connect() - connect to wifi in security disabled mode wlan_ssid_disconnect() - disconnect wifi in security disabled mode start_lan_client() - Function to call the DHCP process linux_wifi_client() - generic function which scan ssid and verifies wifi connectivity lib: wifi: Generic snmp set and get functions for wifi wifi_stub() - Generic class for wifi functions --- devices/debian.py | 5 +++++ devices/debian_wifi.py | 37 +++++++++++++++++++++++++++++++++++-- tests/lib/wifi.py | 22 +++++++++++++++++++++- 3 files changed, 61 insertions(+), 3 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 1abd6184..4c270e82 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -988,6 +988,11 @@ def link_up(self, interface): else: return None + def set_link_state(self, interface, state): + '''Setting the interface status''' + self.sendline("ip link set %s %s" % (interface,state)) + self.expect(self.prompt) + if __name__ == '__main__': # Example use try: diff --git a/devices/debian_wifi.py b/devices/debian_wifi.py index 73698791..39f47da6 100644 --- a/devices/debian_wifi.py +++ b/devices/debian_wifi.py @@ -1,7 +1,6 @@ - import re import debian - +import pexpect class DebianWifi(debian.DebianBox): '''Extension of Debian class with wifi functions''' @@ -53,3 +52,37 @@ def wlan_connectivity(self): def disconnect_wpa(self): self.sendline("killall wpa_supplicant") self.expect(self.prompt) + + def wlan_ssid_connect(self, ssid_name): + self.sendline("iwconfig %s essid %s" % (self.iface_wlan,ssid_name)) + self.expect(self.prompt) + + def wlan_ssid_disconnect(self): + self.sendline("iw dev %s disconnect" % self.iface_wlan) + self.expect(self.prompt) + + def start_lan_client(self, wan_gw=None): + self.iface_dut = self.iface_wlan + super(DebianWifi, self).start_lan_client() + + def linux_wifi_client(self, board, ssid_name, password=None): + '''Scan for SSID and verify connectivity''' + output = self.scan() + match = re.search("%s" % ssid_name,output) + assert match!=None,'SSID value check in WLAN container' + + link = self.link_up(self.iface_wlan) + if link==None: + wlan.set_link_state(self.iface_wlan) + + if password: + conn_wpa = self.wpa_connect(ssid_name,password) + assert conn_wpa!=None,'WPA supplicant initiation' + else: + self.wlan_ssid_connect(ssid_name) + + board.expect(pexpect.TIMEOUT, timeout=20) + conn_wlan = self.wlan_connectivity() + assert conn_wlan!=None,'Connection establishment in WIFI' + + self.start_lan_client() diff --git a/tests/lib/wifi.py b/tests/lib/wifi.py index 2dc04b2b..e0be28e5 100644 --- a/tests/lib/wifi.py +++ b/tests/lib/wifi.py @@ -30,7 +30,7 @@ def wifi_interface(console): return wlan_iface def randomSSIDName(): - return 'wifi-' + ''.join(random.sample(string.lowercase+string.digits,10)) + return 'WIFI-' + ''.join(random.sample(string.lowercase+string.digits,10)) def uciSetWifiSSID(console, ssid): console.sendline('uci set wireless.@wifi-iface[0].ssid=%s; uci commit wireless; wifi' % ssid) @@ -177,3 +177,23 @@ def uciSetWifiSecurity(board, vap_iface, security): board.expect(prompt) board.sendline('uci set wireless.@wifi-iface[%s].key=1234567890abcdexyz' % vap_iface) board.expect(prompt) + +class wifi_stub(): + def enable_wifi_verify(self, *args, **kwargs): + raise Exception("Not implemented!") + def set_ssid_verify(self, *args, **kwargs): + raise Exception("Not implemented!") + def set_broadcast_verify(self, *args, **kwargs): + raise Exception("Not implemented!") + def set_security_verify(self, *args, **kwargs): + raise Exception("Not implemented!") + def set_password_verify(self, *args, **kwargs): + raise Exception("Not implemented!") + def enable_channel_util_verify(self, *args, **kwargs): + raise Exception("Not implemented!") + def set_operating_mode_verify(self, *args, **kwargs): + raise Exception("Not implemented!") + def set_bandwidth_verify(self, *args, **kwargs): + raise Exception("Not implemented!") + def set_channel_no_verify(self, *args, **kwargs): + raise Exception("Not implemented!") From 2b29080ff7846b9029fadc4a105b8e6955ebfe4c Mon Sep 17 00:00:00 2001 From: Kalpana Vetrivel <kvetrivel.contractor@libertyglobal.com> Date: Thu, 14 Feb 2019 22:16:14 +0530 Subject: [PATCH 612/947] tests: lib: gui_helper module added Added gui functions to set and get the values for text box , radio button and drop down Signed-off-by: Kalpana Vetrivel <kvetrivel.contractor@libertyglobal.com> --- tests/lib/gui_helper.py | 82 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 tests/lib/gui_helper.py diff --git a/tests/lib/gui_helper.py b/tests/lib/gui_helper.py new file mode 100644 index 00000000..3dbb636e --- /dev/null +++ b/tests/lib/gui_helper.py @@ -0,0 +1,82 @@ +# Copyright (c) 2018 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. +# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 + +from selenium.webdriver.support.select import Select +from time import sleep + +def enter_input(web_gui, input_path, input_value): + try: + #enter input value in text box for web page + input_tab = web_gui.find_element_by_id(input_path) + input_tab.clear() + input_tab.send_keys(input_value) + return True + except NoSuchElementException: + return False + +def click_button_id(web_gui, clickbutton): + try: + #to click any button using id + click_tab = web_gui.find_element_by_id(clickbutton) + click_tab.click() + time.sleep(5) + return True + except NoSuchElementException: + return False + +def click_button_xpath(web_gui, clickbutton): + try: + #to click any button using xpath + click_tab = web_gui.find_element_by_xpath(clickbutton) + click_tab.click() + time.sleep(5) + return True + except NoSuchElementException: + return False + +def select_option(web_gui, select_button, select_value): + try: + #To select the option required + select = Select(web_gui.find_element_by_id(select_button)) + select.select_by_visible_text(select_value) + time.sleep(5) + return select + except NoSuchElementException: + return None + +def get_drop_down_value(web_gui, get_value): + try: + #To get the value which already exists + select = Select(web_gui.find_element_by_id(get_value)) + selected_option = select.first_selected_option + selected_value = selected_option.text + return selected_value + except NoSuchElementException: + return None + +def get_radio_button_value(web_gui, get_value): + try: + #To get radio button value + radio_button = web_gui.find_elements_by_id(get_value) + for radiobutton in radio_button: + radio = radiobutton.get_attribute('src') + if "radio-box-checked" in radio: + return True + else: + return False + except NoSuchElementException: + return None + +def get_text_value(web_gui, get_value): + try: + #To get the text box value + text_button = web_gui.find_element_by_id(get_value) + text_value = text_button.text + return text_value + except NoSuchElementException: + return None From faaa3feb19529040edb934436b3ae65da24e76c7 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 20 Feb 2019 09:51:38 -0600 Subject: [PATCH 613/947] boardfarm config: move proxy info to correct device Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- boardfarm_config_example.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/boardfarm_config_example.json b/boardfarm_config_example.json index e464cb34..40950467 100644 --- a/boardfarm_config_example.json +++ b/boardfarm_config_example.json @@ -71,7 +71,8 @@ "post_cmd": "ip link set ${wan_iface} name eth1", "cleanup_cmd": "docker stop wan-${uniq_id}; docker rm wan-${uniq_id}", "color": "cyan", - "options": "tftpd-server" + "options": "tftpd-server", + "http_proxy": "localhost:9909" }, { "type": "debian", @@ -81,8 +82,7 @@ "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan-${uniq_id}) dev ${lan_iface}", "post_cmd": "ip link set ${lan_iface} name eth1", "cleanup_cmd": "docker stop lan-${uniq_id}; docker rm lan-${uniq_id}", - "color": "blue", - "http_proxy": "localhost:9910" + "color": "blue" } ], "connection_type": "local_serial", From 8bbc26b6d983efcd99aa982efab32ce8f8849039 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 20 Feb 2019 12:06:42 -0600 Subject: [PATCH 614/947] devices: casa_cmts: workaround for missing newline at start Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/casa_cmts.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index af0fdd3d..0c244514 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -40,10 +40,11 @@ def __init__(self, def connect(self): try: - if 0 == self.expect(['\n(.*) login:', pexpect.TIMEOUT], timeout=10): - self.prompt.append(self.match.group(1) + '>') - self.prompt.append(self.match.group(1) + '#') - self.prompt.append(self.match.group(1) + '\(.*\)#') + if 0 == self.expect(['(.*) login:', pexpect.TIMEOUT], timeout=10): + hostname = self.match.group(1).replace('\n', '').replace('\r', '') + self.prompt.append(hostname + '>') + self.prompt.append(hostname + '#') + self.prompt.append(hostname + '\(.*\)#') self.sendline(self.username) self.expect('assword:') self.sendline(self.password) From 7769c14e3f0446b08cb130ef674e8e7913ffd933 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Feb 2019 03:17:14 -0600 Subject: [PATCH 615/947] tests: jmeter: increase java heap size Also comment out all the lines regarding copying results Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/jmeter.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/jmeter.py b/tests/jmeter.py index 16e9085a..943c3ce5 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -30,7 +30,7 @@ def runTest(self): board.collect_stats(stats=['mpstat']) - lan.sendline('jmeter -n -t test.jmx -l foo.log -e -o output') + lan.sendline('JVM_ARGS="-Xms4096m -Xmx8192m" jmeter -n -t test.jmx -l foo.log -e -o output') lan.expect_exact('jmeter -n -t test.jmx -l foo.log -e -o output') for i in range(600): if 0 != lan.expect([pexpect.TIMEOUT] + prompt, timeout=5): @@ -59,14 +59,14 @@ def recover(self): lan.expect(prompt) board.touch() - print "Copying files from lan to dir = %s" % self.config.output_dir - lan.sendline('readlink -f output/') - lan.expect('readlink -f output/') - board.touch() - lan.expect(prompt) - board.touch() - fname=lan.before.strip() - board.touch() + #print "Copying files from lan to dir = %s" % self.config.output_dir + #lan.sendline('readlink -f output/') + #lan.expect('readlink -f output/') + #board.touch() + #lan.expect(prompt) + #board.touch() + #fname=lan.before.strip() + #board.touch() #scp_from(fname, lan.ipaddr, lan.username, lan.password, lan.port, os.path.join(self.config.output_dir, 'jmeter_%s' % self.shortname)) # let board settle down From b21bfc30ecb9d5e945b9e1bcdbd5e593d502e7bf Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Feb 2019 16:08:09 +0100 Subject: [PATCH 616/947] deploy-boardfarm-nodes: don't error on device already created Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index a6899d19..6fbef2df 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -62,10 +62,11 @@ create_container_eth1_bridged_vlan () { cspace=$(docker inspect --format '{{.State.Pid}}' $cname) # create bridge - sudo ip link add br-$IFACE.$vlan type bridge + sudo ip link add br-$IFACE.$vlan type bridge || true sudo ip link set br-$IFACE.$vlan up # create uplink vlan on IFACE + sudo ip link delete $IFACE.$vlan sudo ip link add link $IFACE name $IFACE.$vlan type vlan id $vlan sudo ip link set dev $IFACE.$vlan address $(random_private_mac $vlan) sudo ip link set $IFACE.$vlan master br-$IFACE.$vlan From 766c833e2943a01191ff7333de90aa43c4813504 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Feb 2019 17:05:37 +0100 Subject: [PATCH 617/947] deploy-boardfarm-nodes: fix random mac when remote, and vlan device up/down/created Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 6fbef2df..9291afe5 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -9,7 +9,23 @@ BF_IMG=${BF_IMG:-"bft:node"} DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" random_private_mac () { - python $DIR/tests/lib/randomMAC.py + python - <<END +import random + +def randomMAC(): + mac = [ (random.randint(0x00,0xff) & 0xfe), # the lsb is 0, i.e. no multicat bit + random.randint(0x00, 0xff), + random.randint(0x00, 0xff), + random.randint(0x00, 0xff), + random.randint(0x00, 0xff), + random.randint(0x00, 0xff) ] + mac_to_be_decided = ':'.join(map(lambda x : hex(x)[2:].lstrip("0x").zfill(2),mac)) + + return (mac_to_be_decided) + +if __name__ == '__main__': + print randomMAC() +END } local_route () { @@ -66,10 +82,11 @@ create_container_eth1_bridged_vlan () { sudo ip link set br-$IFACE.$vlan up # create uplink vlan on IFACE - sudo ip link delete $IFACE.$vlan + sudo ip link delete $IFACE.$vlan || true sudo ip link add link $IFACE name $IFACE.$vlan type vlan id $vlan sudo ip link set dev $IFACE.$vlan address $(random_private_mac $vlan) sudo ip link set $IFACE.$vlan master br-$IFACE.$vlan + sudo ip link set $IFACE up sudo ip link set $IFACE.$vlan up # add veth for new container (one per container vs. the two above are shared) From f068888ca443cf34fd519c0faa70637f8721ce4a Mon Sep 17 00:00:00 2001 From: Kalpana Vetrivel <kvetrivel.contractor@libertyglobal.com> Date: Wed, 27 Feb 2019 21:27:07 +0530 Subject: [PATCH 618/947] gui_helper.py - Added importing modules wifi.py - Modified function name for stub class Signed-off-by: Kalpana Vetrivel <kvetrivel.contractor@libertyglobal.com> --- tests/lib/gui_helper.py | 3 ++- tests/lib/wifi.py | 18 +++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/tests/lib/gui_helper.py b/tests/lib/gui_helper.py index 3dbb636e..aaba7ca9 100644 --- a/tests/lib/gui_helper.py +++ b/tests/lib/gui_helper.py @@ -7,7 +7,8 @@ # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 from selenium.webdriver.support.select import Select -from time import sleep +from selenium.common.exceptions import NoSuchElementException +import time def enter_input(web_gui, input_path, input_value): try: diff --git a/tests/lib/wifi.py b/tests/lib/wifi.py index e0be28e5..ed7593f4 100644 --- a/tests/lib/wifi.py +++ b/tests/lib/wifi.py @@ -179,21 +179,21 @@ def uciSetWifiSecurity(board, vap_iface, security): board.expect(prompt) class wifi_stub(): - def enable_wifi_verify(self, *args, **kwargs): + def enable_wifi(self, *args, **kwargs): raise Exception("Not implemented!") - def set_ssid_verify(self, *args, **kwargs): + def set_ssid(self, *args, **kwargs): raise Exception("Not implemented!") - def set_broadcast_verify(self, *args, **kwargs): + def set_broadcast(self, *args, **kwargs): raise Exception("Not implemented!") - def set_security_verify(self, *args, **kwargs): + def set_security(self, *args, **kwargs): raise Exception("Not implemented!") - def set_password_verify(self, *args, **kwargs): + def set_password(self, *args, **kwargs): raise Exception("Not implemented!") - def enable_channel_util_verify(self, *args, **kwargs): + def enable_channel_utilization(self, *args, **kwargs): raise Exception("Not implemented!") - def set_operating_mode_verify(self, *args, **kwargs): + def set_operating_mode(self, *args, **kwargs): raise Exception("Not implemented!") - def set_bandwidth_verify(self, *args, **kwargs): + def set_bandwidth(self, *args, **kwargs): raise Exception("Not implemented!") - def set_channel_no_verify(self, *args, **kwargs): + def set_channel_number(self, *args, **kwargs): raise Exception("Not implemented!") From eaf13ce9641e525403c9cddf152384190b2251b8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 27 Feb 2019 17:21:04 -0600 Subject: [PATCH 619/947] tests: lib: docsis: add stub for cm_cfg and making changes Takes acs_mib from the acs_server to use in the CM cfg: { "type": "axiros_acs_soap", "name": "acs_server", "ipaddr": "172.19.17.139", "acs_mib": "http://192.168.3.12:9675", "port": "9676", "username": "admin", "password": "ohdeetheipheela!" } Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 20 +++++++---- tests/lib/docsis.py | 85 +++++++++++++++++++++++++++++++++++++++++--- tests/rootfs_boot.py | 1 + 3 files changed, 96 insertions(+), 10 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 4c270e82..b6ffdf8e 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -19,7 +19,7 @@ from termcolor import colored, cprint -from lib.docsis import docsis +from lib.docsis import docsis, cm_cfg class DebianBox(base.BaseDevice): ''' @@ -625,7 +625,6 @@ def update_cmts_isc_dhcp_config(self, board_config): self.sendline('mv ' + cfg_file + ' /etc/dhcp/dhcpd.conf.' + board_config['station']) self.expect(self.prompt) - # combine all configs into one self.sendline("cat /etc/dhcp/dhcpd.conf.* >> /etc/dhcp/dhcpd.conf-" + board_config['station'] + ".master") self.expect(self.prompt) @@ -639,9 +638,12 @@ def copy_cmts_provisioning_files(self, board_config): cfg_list = [] if 'tftp_cfg_files' in board_config: - for path in paths: - for cfg in board_config['tftp_cfg_files']: - cfg_list += glob.glob(path + '/devices/cm-cfg/%s' % cfg) + for cfg in board_config['tftp_cfg_files']: + if isinstance(cfg, cm_cfg) or isinstance(cfg, mta_cfg): + cfg_list.append(cfg) + else: + for path in paths: + cfg_list += glob.glob(path + '/devices/cm-cfg/%s' % cfg) else: for path in paths: cfg_list += glob.glob(path + '/devices/cm-cfg/UNLIMITCASA.cfg') @@ -649,7 +651,6 @@ def copy_cmts_provisioning_files(self, board_config): # Copy binary files to tftp server for cfg in cfg_set: - # TODO: copy to tmpdir at some point d = docsis(cfg) ret = d.encode() self.tftp_device.copy_file_to_server(ret) @@ -703,6 +704,13 @@ def provision_board(self, board_config): if self.wan_cmts_provisioner: self.start_tftp_server() + # errr, this should not need to call into board object + try: + from devices import board + board.update_cfg_for_site() + except: + pass + self.copy_cmts_provisioning_files(board_config) self.sendline("sed 's/disable\\t\\t= yes/disable\\t\\t= no/g' -i /etc/xinetd.d/time") diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py index b1e17874..e27ac9ff 100755 --- a/tests/lib/docsis.py +++ b/tests/lib/docsis.py @@ -9,6 +9,7 @@ import os, config from common import cmd_exists import Tkinter +import re class docsis: """ @@ -21,7 +22,7 @@ class docsis: encode(output_type='cm_cfg') return output file name(.cfg or .bin) """ - def __init__(self, file_path, tmpdir=None): + def __init__(self, file_or_obj, tmpdir=None): # TODO: fix at some point, this tmpdir is already relative to the CM config you # are grabbing? Not ideal as that dir might not be writeable, or a tftp or http URL # at some point - need to use a real local tmpdir or maybe even results so we can @@ -29,9 +30,17 @@ def __init__(self, file_path, tmpdir=None): if tmpdir is None: tmpdir = os.path.join('tmp', config.board['station']) - self.file_path=file_path - self.dir_path=os.path.join(os.path.split(file_path)[0], tmpdir) - self.file=os.path.split(file_path)[1] + # TODO: this is all a bit wild here, need to clean up everything.. + if isinstance(file_or_obj, cm_cfg): + self.cm_cfg = file_or_obj + # TODO: this seems like the wrong place to store these but OK + self.dir_path=os.path.join(os.path.split(__file__)[0], tmpdir) + self.file = self.cm_cfg.original_fname + self.file_path = os.path.join(self.dir_path, self.file) + else: + self.file_path=file_or_obj + self.dir_path=os.path.join(os.path.split(file_or_obj)[0], tmpdir) + self.file=os.path.split(file_or_obj)[1] # make target tmpdir if it does not exist try: @@ -42,6 +51,9 @@ def __init__(self, file_path, tmpdir=None): if err.errno != errno.EEXIST or not os.path.isdir(self.dir_path): raise + if isinstance(file_or_obj, cm_cfg): + self.cm_cfg.save(self.file_path) + assert cmd_exists('docsis') assert cmd_exists('tclsh') tclsh = Tkinter.Tcl() @@ -84,3 +96,68 @@ def encode_cm(): return encode_cm() except: return encode_mta() + +class cm_cfg(object): + ''' + Class for generating CM cfg from nothing, or even importing from a file + They later need to be encoded via a compiler + ''' + + # TODO: all these names will need to be made up once we don't have + # an input file anymore + original_fname = None + original_file = None + encoded_suffix = '.cfg' + encoded_fname = None + + # string representation of cm cfg + # temporary for starting point + txt = "" + + # plenty of tests reference a file name, and assume it's in a certain + # place so let's allow for that for now + legacy_search_path = None + + def __init__(self, start=None): + '''Creates a default basic CM cfg file for modification''' + + # TODO: we require loading a file for the moment + if start == None: + raise Exception("We don't know how to start from scratch yet") + else: + # TODO: filename should not matter + self.original_file = start + self.original_fname = os.path.split(start)[1] + self.encoded_fname = self.original_fname.replace('.txt', self.encoded_suffix) + self.load(start) + + def load(self, cm_txt): + '''Load CM cfg from txt file, for modification''' + + if self.legacy_search_path is not None: + cm_txt = os.path.join(self.legacy_search_path, cm_txt) + + with open(cm_txt, 'r') as txt: + self.txt = txt.read() + + def __str__(self): + '''String repr of CM txt''' + return self.txt + + def save(self, full_path): + with open(full_path, 'w') as txt: + txt.write(self.txt) + + def generic_re_sub(self, regex, sub): + '''Crude function to replace strings in configs, should be replaced with subclasses''' + saved_txt = self.txt + + self.txt = re.sub(regex, sub, self.txt) + + if saved_txt == self.txt: + print("WARN: no regex sub was made for %s, to be replaced with %s" % (regex, sub)) + +class mta_cfg(cm_cfg): + '''MTA specific class for cfgs''' + + encoded_suffix = '.bin' diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index b4562b00..3a82e5a6 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -19,6 +19,7 @@ def boot(self, reflash=True): tftp_device = None # start all tftp servers for now for tftp_server in tftp_servers: + # This is a mess, just taking the last tftpd-server? tftp_device = getattr(self.config, tftp_server) dhcp_started = False From d025f1eda95e9139c6276bfae9e9215d3d903bc7 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 4 Mar 2019 13:55:59 -0600 Subject: [PATCH 620/947] devices: debian: fix bad call to super(type(self)... Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index b6ffdf8e..8bebd075 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -216,7 +216,7 @@ def run_cleanup_cmd(self): def sudo_sendline(self, s): if self.username != "root": s = "sudo " + s - return super(type(self), self).sendline(s) + return super(DebianBox, self).sendline(s) def reset(self): self.sendline('reboot') From 68d1efabd392eed437212d85e7766f796d9ac71c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 5 Mar 2019 14:26:35 -0600 Subject: [PATCH 621/947] devices: debian: allow child classes to set these So set to None by default and update if it's still None, otherwise use whatever the child classes decided Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 8bebd075..bf719c52 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -42,6 +42,7 @@ class DebianBox(base.BaseDevice): standalone_provisioner = False iface_dut = "eth1" + gw = None def __init__(self, *args, @@ -119,12 +120,13 @@ def __init__(self, # we need to pick a non-conflicting private network here # also we want it to be consistant and not random for a particular # board - if (lan_gateway - lan_network.num_addresses).is_private: - self.gw = lan_gateway - lan_network.num_addresses - else: - self.gw = lan_gateway + lan_network.num_addresses + if self.gw is None: + if (lan_gateway - lan_network.num_addresses).is_private: + self.gw = lan_gateway - lan_network.num_addresses + else: + self.gw = lan_gateway + lan_network.num_addresses - self.nw = ipaddress.IPv4Network(str(self.gw).decode('utf-8') + '/' + str(lan_network.netmask), strict=False) + self.nw = ipaddress.IPv4Network(str(self.gw).decode('utf-8') + '/' + str(lan_network.netmask), strict=False) # override above values if set in wan options if 'options' in kwargs: From 8d1517a325071775096923a9e7a4e2ace294c37e Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 4 Mar 2019 15:16:13 -0600 Subject: [PATCH 622/947] devices: debian: refactor ISC provisioner into separate class Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 310 +-------------------------------------- devices/debian_isc.py | 330 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 331 insertions(+), 309 deletions(-) create mode 100644 devices/debian_isc.py diff --git a/devices/debian.py b/devices/debian.py index bf719c52..b0b3e3a7 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -19,8 +19,6 @@ from termcolor import colored, cprint -from lib.docsis import docsis, cm_cfg - class DebianBox(base.BaseDevice): ''' A linux machine running an ssh server. @@ -32,14 +30,12 @@ class DebianBox(base.BaseDevice): static_ip = False wan_dhcp = False wan_no_eth0 = False - wan_cmts_provisioner = False pkgs_installed = False install_pkgs_after_dhcp = False is_bridged = False shared_tftp_server = False wan_dhcp_server = True tftp_device = None - standalone_provisioner = False iface_dut = "eth1" gw = None @@ -69,14 +65,6 @@ def __init__(self, self.http_proxy = kwargs.pop('http_proxy', None) - self.cm_network = ipaddress.IPv4Network(kwargs.pop('cm_network', u"192.168.200.0/24")) - self.cm_gateway = ipaddress.IPv4Address(kwargs.pop('cm_gateway', u"192.168.200.1")) - self.mta_network = ipaddress.IPv4Network(kwargs.pop('mta_network', u"192.168.201.0/24")) - self.mta_gateway = ipaddress.IPv4Address(kwargs.pop('mta_gateway', u"192.168.201.1")) - self.prov_network = ipaddress.IPv4Network(kwargs.pop('prov_network', u"192.168.3.0/24")) - self.prov_gateway = ipaddress.IPv4Address(kwargs.pop('prov_gateway', u"192.168.3.222")) - self.prov_ip = ipaddress.IPv4Address(kwargs.pop('prov_ip', u"192.168.3.1")) - if ipaddr is not None: pexpect.spawn.__init__(self, command="ssh", @@ -142,18 +130,10 @@ def __init__(self, self.static_route = opt.replace('static-route:', '').replace('-', ' via ') if opt.startswith('wan-dhcp-client'): self.wan_dhcp = True - if opt.startswith('wan-cmts-provisioner'): - self.wan_cmts_provisioner = True - self.shared_tftp_server = True - # This does run one.. but it's handled via the provisioning code path - self.wan_dhcp_server = False if opt.startswith('wan-no-eth0'): self.wan_no_eth0 = True if opt.startswith('wan-no-dhcp-sever'): self.wan_dhcp_server = False - if opt.startswith('cmts-provisioner'): - self.gw = self.prov_ip - self.standalone_provisioner = True try: i = self.expect(["yes/no", "assword:", "Last login"] + self.prompt, timeout=30) @@ -256,7 +236,7 @@ def install_pkgs(self): if self.pkgs_installed == True: return - if not self.wan_no_eth0 and not self.wan_dhcp and not self.install_pkgs_after_dhcp and not self.standalone_provisioner: + if not self.wan_no_eth0 and not self.wan_dhcp and not self.install_pkgs_after_dhcp and not getattr(self, 'standalone_provisioner', False): self.sendline('ifconfig %s down' % self.iface_dut) self.expect(self.prompt) @@ -445,294 +425,6 @@ def configure(self, kind, config=[]): self.sendline('ip route add %s' % self.static_route) self.expect(self.prompt) - def update_cmts_isc_dhcp_config(self, board_config): - tftp_server = self.tftp_device.tftp_server_ip_int() - - # TODO: lots of hard coded values... all need to go away - to_send = '''cat > /etc/dhcp/dhcpd.conf-''' + board_config['station'] + '''.master << EOF -log-facility local7; -option log-servers ###LOG_SERVER###; -option time-servers ###TIME_SERVER###; -next-server ###NEXT_SERVER###; -default-lease-time 604800; -max-lease-time 604800; -allow leasequery; - -option space docsis-mta; -option docsis-mta.dhcp-server-1 code 1 = ip-address; -option docsis-mta.dhcp-server-1 ###MTA_DHCP_SERVER1###; -option docsis-mta.dhcp-server-2 code 2 = ip-address; -option docsis-mta.dhcp-server-2 ###MTA_DHCP_SERVER2###; -option docsis-mta.provision-server code 3 = { integer 8, string }; -option docsis-mta.provision-server 0 08:54:43:4F:4D:4C:41:42:53:03:43:4F:4D:00 ; -option docsis-mta-encap code 122 = encapsulate docsis-mta; -option docsis-mta.kerberos-realm code 6 = string; -option docsis-mta.kerberos-realm 05:42:41:53:49:43:01:31:00 ; - -subnet ###PROV_IP### netmask ###PROV_NETMASK### { - interface %s; -} -subnet ###CM_IP### netmask ###CM_NETMASK### -{ - interface %s; - range ###CM_START_RANGE### ###CM_END_RANGE###; - option routers ###CM_GATEWAY###; - option broadcast-address ###CM_BROADCAST###; - option dhcp-parameter-request-list 43; - option domain-name "local"; - option time-offset 1; - option tftp-server-name "###DEFAULT_TFTP_SERVER###"; - filename "UNLIMITCASA.cfg"; - allow unknown-clients; -} -subnet ###MTA_IP### netmask ###MTA_NETMASK### -{ - interface %s; - range ###MTA_START_RANGE### ###MTA_END_RANGE###; - option routers ###MTA_GATEWAY###; - option broadcast-address ###MTA_BROADCAST###; - option time-offset 1; - option domain-name-servers %s; - allow unknown-clients; -} -EOF''' % (self.iface_dut, self.iface_dut, self.iface_dut, self.gw) - - to_send = to_send.replace('###LOG_SERVER###', str(self.prov_ip)) - to_send = to_send.replace('###TIME_SERVER###', str(self.prov_ip)) - to_send = to_send.replace('###NEXT_SERVER###', str(self.prov_ip)) - to_send = to_send.replace('###MTA_DHCP_SERVER1###', str(self.prov_ip)) - to_send = to_send.replace('###MTA_DHCP_SERVER2###', str(self.prov_ip)) - to_send = to_send.replace('###PROV_IP###', str(self.prov_network[0])) - to_send = to_send.replace('###PROV_NETMASK###', str(self.prov_network.netmask)) - to_send = to_send.replace('###CM_IP###', str(self.cm_network[0])) - to_send = to_send.replace('###CM_NETMASK###', str(self.cm_network.netmask)) - to_send = to_send.replace('###CM_START_RANGE###', str(self.cm_network[10])) - to_send = to_send.replace('###CM_END_RANGE###', str(self.cm_network[60])) - to_send = to_send.replace('###CM_GATEWAY###', str(self.cm_gateway)) - to_send = to_send.replace('###CM_BROADCAST###', str(self.cm_network[-1])) - to_send = to_send.replace('###DEFAULT_TFTP_SERVER###', str(self.prov_ip)) - to_send = to_send.replace('###MTA_IP###', str(self.mta_network[0])) - to_send = to_send.replace('###MTA_NETMASK###', str(self.mta_network.netmask)) - to_send = to_send.replace('###MTA_START_RANGE###', str(self.mta_network[10])) - to_send = to_send.replace('###MTA_END_RANGE###', str(self.mta_network[60])) - to_send = to_send.replace('###MTA_GATEWAY###', str(self.mta_gateway)) - to_send = to_send.replace('###MTA_BROADCAST###', str(self.mta_network[-1])) - - self.sendline(to_send) - self.expect(self.prompt) - - # The board will ignore this unless the docsis-mac is set to ipv6 - # That needs to be done manually as well as copying any CM cfg files - # to the provisioner (e.g. still not fully automated) - # TODO: fix hard coded tftp ipv6 addr -# self.sendline('''cat > /etc/dhcp/dhcpd6.conf-''' + board_config['station'] + '''.master << EOF -#preferred-lifetime 7500; -#option dhcp-renewal-time 3600; -#option dhcp-rebinding-time 5400; -#allow leasequery; -#option dhcp6.name-servers 2001:4860:4860::8888; -#option dhcp6.domain-search "test.example.com","example.com"; -#option dhcp6.info-refresh-time 21600; -#option dhcp6.ia_pd code 25 = { integer 32, integer 32, integer 32, integer 16, integer 16, integer 32, integer 32, integer 8, ip6-address}; -#option dhcp6.gateway code 32003 = ip6-address; -#option space docsis code width 2 length width 2 hash size 100; -#option docsis.tftp-servers code 32 = array of ip6-address; -#option docsis.configuration-file code 33 = text; -#option docsis.syslog-servers code 34 = array of ip6-address; -##option docsis.device-id code 36 = string; -#option docsis.time-servers code 37 = array of ip6-address; -#option docsis.time-offset code 38 = signed integer 32; -#option vsio.docsis code 4491 = encapsulate docsis; -# -#subnet6 2001:ed8:77b5:3::/64 { -# range6 2001:ed8:77b5:3::10 2001:ed8:77b5:3::100; -# interface %s; -# option docsis.tftp-servers 2001:ed8:77b5:3::101; -# option docsis.time-servers 2001:ed8:77b5:3::101; -# option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; -# option docsis.syslog-servers 2001:ed8:77b5:3::101 ; -# option docsis.time-offset 5000; -#} -#subnet6 2001:ed8:77b5:2000::/64 { -# range6 2001:ed8:77b5:2000::10 2001:ed8:77b5:2000::100; -# interface %s; -# option docsis.tftp-servers 2001:ed8:77b5:3::101; -# option docsis.time-servers 2001:ed8:77b5:3::101; -# option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; -# option docsis.syslog-servers 2001:ed8:77b5:3::101; -# option docsis.time-offset 5000; -#} -#subnet6 2001:ed8:77b5:2001::/64 { -# range6 2001:ed8:77b5:2001::10 2001:ed8:77b5:2001::100; -# interface %s; -# option dhcp6.ia_pd 1234 20000 40000 26 25 30000 60000 64 2001:ed8:77b5:4::; -# option dhcp6.solmax-rt 240; -# option dhcp6.inf-max-rt 360; -#} -#EOF''' % (self.iface_dut, self.iface_dut, self.iface_dut)) -# self.expect(self.prompt) - - self.sendline('rm /etc/dhcp/dhcpd.conf.''' + board_config['station']) - self.expect(self.prompt) - - if 'extra_provisioning' not in board_config: - # same defaults so we at least set tftp server to WAN - board_config['extra_provisioning'] = {} - if 'mta_mac' in board_config: - board_config['extra_provisioning']["mta"] = \ - { "hardware ethernet": board_config['mta_mac'], - "options": { "domain-name": "\"sipcenter.com\"", - "domain-name-servers": "%s" % self.prov_ip, - "routers": "%s" % self.mta_gateway, - "log-servers": "%s" % self.prov_ip, - "host-name": "\"" + board_config['station'] + "\"" - } - } - else: - board_config['extra_provisioning']["mta"] = {} - if 'mta_mac' in board_config: - board_config['extra_provisioning']["cm"] = \ - { "hardware ethernet": board_config['cm_mac'], - "options": { "domain-name-servers": "%s" % self.prov_ip, - "time-offset": "-25200" - } - } - else: - board_config['extra_provisioning']["cm"] = {} - - cfg_file = "/etc/dhcp/dhcpd.conf-" + board_config['station'] - - # zero out old config - self.sendline('cp /dev/null %s' % cfg_file) - self.expect(self.prompt) - - # insert tftp server - board_config['extra_provisioning']['cm']['next-server'] = tftp_server - #board_config['extra_provisioning']['cm']['options']['tftp-server-name'] = '"' + tftp_server + '"' - - # there is probably a better way to construct this file... - for dev, cfg_sec in board_config['extra_provisioning'].iteritems(): - self.sendline("echo 'host %s-%s {' >> %s" % (dev, board_config['station'], cfg_file)) - for key, value in cfg_sec.iteritems(): - if key == "options": - for k2, v2 in value.iteritems(): - self.sendline("echo ' option %s %s;' >> %s" % (k2, v2, cfg_file)) - self.expect(self.prompt) - else: - self.sendline("echo ' %s %s;' >> %s" % (key, value, cfg_file)) - self.expect(self.prompt) - self.sendline("echo '}' >> %s" % cfg_file) - - # TODO: extra per board dhcp6 provisioning - - self.sendline('mv ' + cfg_file + ' /etc/dhcp/dhcpd.conf.' + board_config['station']) - self.expect(self.prompt) - # combine all configs into one - self.sendline("cat /etc/dhcp/dhcpd.conf.* >> /etc/dhcp/dhcpd.conf-" + board_config['station'] + ".master") - self.expect(self.prompt) - self.sendline("mv /etc/dhcp/dhcpd.conf-" + board_config['station'] + ".master /etc/dhcp/dhcpd.conf") - self.expect(self.prompt) - - def copy_cmts_provisioning_files(self, board_config): - # Look in all overlays as well, and PATH as a workaround for standalone - paths = os.environ['PATH'].split(os.pathsep) - paths += os.environ['BFT_OVERLAY'].split(' ') - cfg_list = [] - - if 'tftp_cfg_files' in board_config: - for cfg in board_config['tftp_cfg_files']: - if isinstance(cfg, cm_cfg) or isinstance(cfg, mta_cfg): - cfg_list.append(cfg) - else: - for path in paths: - cfg_list += glob.glob(path + '/devices/cm-cfg/%s' % cfg) - else: - for path in paths: - cfg_list += glob.glob(path + '/devices/cm-cfg/UNLIMITCASA.cfg') - cfg_set = set(cfg_list) - - # Copy binary files to tftp server - for cfg in cfg_set: - d = docsis(cfg) - ret = d.encode() - self.tftp_device.copy_file_to_server(ret) - - def provision_board(self, board_config): - self.install_pkgs() - - # if we are not a full blown wan+provisoner then offer to route traffic - if not self.wan_cmts_provisioner: - self.setup_as_wan_gateway() - - ''' Setup DHCP and time server etc for CM provisioning''' - self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) - self.expect(self.prompt) - self.sendline('sed s/INTERFACESv4=.*/INTERFACESv4=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) - self.expect(self.prompt) - #self.sendline('sed s/INTERFACESv6=.*/INTERFACESv6=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) - self.sendline('sed "/INTERFACESv6/d" -i /etc/default/isc-dhcp-server') - self.expect(self.prompt) - # we are bypass this for now (see http://patchwork.ozlabs.org/patch/117949/) - self.sendline('sysctl -w net.ipv6.conf.%s.accept_dad=0' % self.iface_dut) - self.expect(self.prompt) - if not self.wan_no_eth0: - self.sendline('ifconfig %s %s' % (self.iface_dut, self.gw)) - self.expect(self.prompt) - #self.sendline('ifconfig %s inet6 add 2001:ed8:77b5:3::101/64' % self.iface_dut) - #self.expect(self.prompt) - # TODO: specify these via config - #self.sendline('ip route add 192.168.201.0/24 via 192.168.3.222' % (self.mta_network, self.prov_gateway)) - #self.expect(self.prompt) - #self.sendline('ip route add 192.168.200.0/24 via 192.168.3.222' % (self.cm_network, self.prov_gateway)) - #self.expect(self.prompt) - # TODO: iface_dut needs an ipv6 addr - # sysctl net.ipv6.conf.%s.disable_ipv6=0 % iface_dut - #self.sendline('ip -6 route add 2001:ed8:77b5:2000::/64 via 2001:ed8:77b5:3::222 dev %s metric 1024' % self.iface_dut) - #self.expect(self.prompt) - #self.sendline('ip -6 route add 2001:ed8:77b5:2001::/64 via 2001:ed8:77b5:3::222 dev %s metric 1024' % self.iface_dut) - #self.expect(self.prompt) - self.update_cmts_isc_dhcp_config(board_config) - self.sendline('cat /etc/dhcp/dhcpd.conf') - self.expect(self.prompt) - self.sendline('(flock -x 9; /etc/init.d/isc-dhcp-server restart; flock -u 9) 9>/etc/init.d/isc-dhcp-server.lock') - # We expect both, so we need debian 9 or greater for this device - self.expect('Starting ISC DHCPv4 server: dhcpd.\r\n') - #self.expect('Starting ISC DHCPv6 server: dhcpd6.\r\n') - self.expect(self.prompt) - self.sendline('rm /etc/init.d/isc-dhcp-server.lock') - self.expect(self.prompt) - - # only start tftp server if we are a full blown wan+provisioner - if self.wan_cmts_provisioner: - self.start_tftp_server() - - # errr, this should not need to call into board object - try: - from devices import board - board.update_cfg_for_site() - except: - pass - - self.copy_cmts_provisioning_files(board_config) - - self.sendline("sed 's/disable\\t\\t= yes/disable\\t\\t= no/g' -i /etc/xinetd.d/time") - self.expect(self.prompt) - self.sendline("grep -q flags.*=.*IPv6 /etc/xinetd.d/time || sed '/wait.*=/a\\\\tflags\\t\\t= IPv6' -i /etc/xinetd.d/time") - self.expect(self.prompt) - self.sendline('/etc/init.d/xinetd restart') - self.expect('Starting internet superserver: xinetd.') - self.expect(self.prompt) - - def reprovision_board(self, board_config): - '''New DHCP, cfg files etc for board after it's been provisioned once''' - self.copy_cmts_provisioning_files(board_config) - self.update_cmts_isc_dhcp_config(board_config) - self.sendline('(flock -x 9; /etc/init.d/isc-dhcp-server restart; flock -u 9) 9>/etc/init.d/isc-dhcp-server.lock') - self.expect(['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*']) - self.expect(self.prompt) - self.sendline('rm /etc/init.d/isc-dhcp-server.lock') - self.expect(self.prompt) - def setup_dhcp_server(self): # configure DHCP server self.sendline('/etc/init.d/isc-dhcp-server stop') diff --git a/devices/debian_isc.py b/devices/debian_isc.py new file mode 100644 index 00000000..6ec162fc --- /dev/null +++ b/devices/debian_isc.py @@ -0,0 +1,330 @@ +import ipaddress +import os + +from lib.docsis import docsis, cm_cfg + +from devices import DebianBox + +class DebianISCProvisioner(DebianBox): + ''' + Linux based provisioner using ISC DHCP server + ''' + + model = ('debian-isc-provisioner') + + wan_cmts_provisioner = False + standalone_provisioner = True + + def __init__(self, *args, **kwargs): + + self.cm_network = ipaddress.IPv4Network(kwargs.pop('cm_network', u"192.168.200.0/24")) + self.cm_gateway = ipaddress.IPv4Address(kwargs.pop('cm_gateway', u"192.168.200.1")) + self.mta_network = ipaddress.IPv4Network(kwargs.pop('mta_network', u"192.168.201.0/24")) + self.mta_gateway = ipaddress.IPv4Address(kwargs.pop('mta_gateway', u"192.168.201.1")) + self.prov_network = ipaddress.IPv4Network(kwargs.pop('prov_network', u"192.168.3.0/24")) + self.prov_gateway = ipaddress.IPv4Address(kwargs.pop('prov_gateway', u"192.168.3.222")) + self.prov_ip = ipaddress.IPv4Address(kwargs.pop('prov_ip', u"192.168.3.1")) + + self.gw = self.prov_ip + + if 'options' in kwargs: + options = [x.strip() for x in kwargs['options'].split(',')] + for opt in options: + # Not a well supported config, will go away at some point + if opt.startswith('wan-cmts-provisioner'): + self.wan_cmts_provisioner = True + self.shared_tftp_server = True + # This does run one.. but it's handled via the provisioning code path + self.wan_dhcp_server = False + self.standalone_provisioner = False + + return super(DebianISCProvisioner, self).__init__(*args, **kwargs) + + def update_cmts_isc_dhcp_config(self, board_config): + tftp_server = self.tftp_device.tftp_server_ip_int() + + # TODO: lots of hard coded values... all need to go away + to_send = '''cat > /etc/dhcp/dhcpd.conf-''' + board_config['station'] + '''.master << EOF +log-facility local7; +option log-servers ###LOG_SERVER###; +option time-servers ###TIME_SERVER###; +next-server ###NEXT_SERVER###; +default-lease-time 604800; +max-lease-time 604800; +allow leasequery; + +option space docsis-mta; +option docsis-mta.dhcp-server-1 code 1 = ip-address; +option docsis-mta.dhcp-server-1 ###MTA_DHCP_SERVER1###; +option docsis-mta.dhcp-server-2 code 2 = ip-address; +option docsis-mta.dhcp-server-2 ###MTA_DHCP_SERVER2###; +option docsis-mta.provision-server code 3 = { integer 8, string }; +option docsis-mta.provision-server 0 08:54:43:4F:4D:4C:41:42:53:03:43:4F:4D:00 ; +option docsis-mta-encap code 122 = encapsulate docsis-mta; +option docsis-mta.kerberos-realm code 6 = string; +option docsis-mta.kerberos-realm 05:42:41:53:49:43:01:31:00 ; + +subnet ###PROV_IP### netmask ###PROV_NETMASK### { + interface %s; +} +subnet ###CM_IP### netmask ###CM_NETMASK### +{ + interface %s; + range ###CM_START_RANGE### ###CM_END_RANGE###; + option routers ###CM_GATEWAY###; + option broadcast-address ###CM_BROADCAST###; + option dhcp-parameter-request-list 43; + option domain-name "local"; + option time-offset 1; + option tftp-server-name "###DEFAULT_TFTP_SERVER###"; + filename "UNLIMITCASA.cfg"; + allow unknown-clients; +} +subnet ###MTA_IP### netmask ###MTA_NETMASK### +{ + interface %s; + range ###MTA_START_RANGE### ###MTA_END_RANGE###; + option routers ###MTA_GATEWAY###; + option broadcast-address ###MTA_BROADCAST###; + option time-offset 1; + option domain-name-servers %s; + allow unknown-clients; +} +EOF''' % (self.iface_dut, self.iface_dut, self.iface_dut, self.gw) + + to_send = to_send.replace('###LOG_SERVER###', str(self.prov_ip)) + to_send = to_send.replace('###TIME_SERVER###', str(self.prov_ip)) + to_send = to_send.replace('###NEXT_SERVER###', str(self.prov_ip)) + to_send = to_send.replace('###MTA_DHCP_SERVER1###', str(self.prov_ip)) + to_send = to_send.replace('###MTA_DHCP_SERVER2###', str(self.prov_ip)) + to_send = to_send.replace('###PROV_IP###', str(self.prov_network[0])) + to_send = to_send.replace('###PROV_NETMASK###', str(self.prov_network.netmask)) + to_send = to_send.replace('###CM_IP###', str(self.cm_network[0])) + to_send = to_send.replace('###CM_NETMASK###', str(self.cm_network.netmask)) + to_send = to_send.replace('###CM_START_RANGE###', str(self.cm_network[10])) + to_send = to_send.replace('###CM_END_RANGE###', str(self.cm_network[60])) + to_send = to_send.replace('###CM_GATEWAY###', str(self.cm_gateway)) + to_send = to_send.replace('###CM_BROADCAST###', str(self.cm_network[-1])) + to_send = to_send.replace('###DEFAULT_TFTP_SERVER###', str(self.prov_ip)) + to_send = to_send.replace('###MTA_IP###', str(self.mta_network[0])) + to_send = to_send.replace('###MTA_NETMASK###', str(self.mta_network.netmask)) + to_send = to_send.replace('###MTA_START_RANGE###', str(self.mta_network[10])) + to_send = to_send.replace('###MTA_END_RANGE###', str(self.mta_network[60])) + to_send = to_send.replace('###MTA_GATEWAY###', str(self.mta_gateway)) + to_send = to_send.replace('###MTA_BROADCAST###', str(self.mta_network[-1])) + + self.sendline(to_send) + self.expect(self.prompt) + + # The board will ignore this unless the docsis-mac is set to ipv6 + # That needs to be done manually as well as copying any CM cfg files + # to the provisioner (e.g. still not fully automated) + # TODO: fix hard coded tftp ipv6 addr +# self.sendline('''cat > /etc/dhcp/dhcpd6.conf-''' + board_config['station'] + '''.master << EOF +#preferred-lifetime 7500; +#option dhcp-renewal-time 3600; +#option dhcp-rebinding-time 5400; +#allow leasequery; +#option dhcp6.name-servers 2001:4860:4860::8888; +#option dhcp6.domain-search "test.example.com","example.com"; +#option dhcp6.info-refresh-time 21600; +#option dhcp6.ia_pd code 25 = { integer 32, integer 32, integer 32, integer 16, integer 16, integer 32, integer 32, integer 8, ip6-address}; +#option dhcp6.gateway code 32003 = ip6-address; +#option space docsis code width 2 length width 2 hash size 100; +#option docsis.tftp-servers code 32 = array of ip6-address; +#option docsis.configuration-file code 33 = text; +#option docsis.syslog-servers code 34 = array of ip6-address; +##option docsis.device-id code 36 = string; +#option docsis.time-servers code 37 = array of ip6-address; +#option docsis.time-offset code 38 = signed integer 32; +#option vsio.docsis code 4491 = encapsulate docsis; +# +#subnet6 2001:ed8:77b5:3::/64 { +# range6 2001:ed8:77b5:3::10 2001:ed8:77b5:3::100; +# interface %s; +# option docsis.tftp-servers 2001:ed8:77b5:3::101; +# option docsis.time-servers 2001:ed8:77b5:3::101; +# option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; +# option docsis.syslog-servers 2001:ed8:77b5:3::101 ; +# option docsis.time-offset 5000; +#} +#subnet6 2001:ed8:77b5:2000::/64 { +# range6 2001:ed8:77b5:2000::10 2001:ed8:77b5:2000::100; +# interface %s; +# option docsis.tftp-servers 2001:ed8:77b5:3::101; +# option docsis.time-servers 2001:ed8:77b5:3::101; +# option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; +# option docsis.syslog-servers 2001:ed8:77b5:3::101; +# option docsis.time-offset 5000; +#} +#subnet6 2001:ed8:77b5:2001::/64 { +# range6 2001:ed8:77b5:2001::10 2001:ed8:77b5:2001::100; +# interface %s; +# option dhcp6.ia_pd 1234 20000 40000 26 25 30000 60000 64 2001:ed8:77b5:4::; +# option dhcp6.solmax-rt 240; +# option dhcp6.inf-max-rt 360; +#} +#EOF''' % (self.iface_dut, self.iface_dut, self.iface_dut)) +# self.expect(self.prompt) + + self.sendline('rm /etc/dhcp/dhcpd.conf.''' + board_config['station']) + self.expect(self.prompt) + + if 'extra_provisioning' not in board_config: + # same defaults so we at least set tftp server to WAN + board_config['extra_provisioning'] = {} + if 'mta_mac' in board_config: + board_config['extra_provisioning']["mta"] = \ + { "hardware ethernet": board_config['mta_mac'], + "options": { "domain-name": "\"sipcenter.com\"", + "domain-name-servers": "%s" % self.prov_ip, + "routers": "%s" % self.mta_gateway, + "log-servers": "%s" % self.prov_ip, + "host-name": "\"" + board_config['station'] + "\"" + } + } + else: + board_config['extra_provisioning']["mta"] = {} + if 'mta_mac' in board_config: + board_config['extra_provisioning']["cm"] = \ + { "hardware ethernet": board_config['cm_mac'], + "options": { "domain-name-servers": "%s" % self.prov_ip, + "time-offset": "-25200" + } + } + else: + board_config['extra_provisioning']["cm"] = {} + + cfg_file = "/etc/dhcp/dhcpd.conf-" + board_config['station'] + + # zero out old config + self.sendline('cp /dev/null %s' % cfg_file) + self.expect(self.prompt) + + # insert tftp server + board_config['extra_provisioning']['cm']['next-server'] = tftp_server + #board_config['extra_provisioning']['cm']['options']['tftp-server-name'] = '"' + tftp_server + '"' + + # there is probably a better way to construct this file... + for dev, cfg_sec in board_config['extra_provisioning'].iteritems(): + self.sendline("echo 'host %s-%s {' >> %s" % (dev, board_config['station'], cfg_file)) + for key, value in cfg_sec.iteritems(): + if key == "options": + for k2, v2 in value.iteritems(): + self.sendline("echo ' option %s %s;' >> %s" % (k2, v2, cfg_file)) + self.expect(self.prompt) + else: + self.sendline("echo ' %s %s;' >> %s" % (key, value, cfg_file)) + self.expect(self.prompt) + self.sendline("echo '}' >> %s" % cfg_file) + + # TODO: extra per board dhcp6 provisioning + + self.sendline('mv ' + cfg_file + ' /etc/dhcp/dhcpd.conf.' + board_config['station']) + self.expect(self.prompt) + # combine all configs into one + self.sendline("cat /etc/dhcp/dhcpd.conf.* >> /etc/dhcp/dhcpd.conf-" + board_config['station'] + ".master") + self.expect(self.prompt) + self.sendline("mv /etc/dhcp/dhcpd.conf-" + board_config['station'] + ".master /etc/dhcp/dhcpd.conf") + self.expect(self.prompt) + + def copy_cmts_provisioning_files(self, board_config): + # Look in all overlays as well, and PATH as a workaround for standalone + paths = os.environ['PATH'].split(os.pathsep) + paths += os.environ['BFT_OVERLAY'].split(' ') + cfg_list = [] + + if 'tftp_cfg_files' in board_config: + for cfg in board_config['tftp_cfg_files']: + if isinstance(cfg, cm_cfg) or isinstance(cfg, mta_cfg): + cfg_list.append(cfg) + else: + for path in paths: + cfg_list += glob.glob(path + '/devices/cm-cfg/%s' % cfg) + else: + for path in paths: + cfg_list += glob.glob(path + '/devices/cm-cfg/UNLIMITCASA.cfg') + cfg_set = set(cfg_list) + + # Copy binary files to tftp server + for cfg in cfg_set: + d = docsis(cfg) + ret = d.encode() + self.tftp_device.copy_file_to_server(ret) + + def provision_board(self, board_config): + self.install_pkgs() + + # if we are not a full blown wan+provisoner then offer to route traffic + if not self.wan_cmts_provisioner: + self.setup_as_wan_gateway() + + ''' Setup DHCP and time server etc for CM provisioning''' + self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) + self.expect(self.prompt) + self.sendline('sed s/INTERFACESv4=.*/INTERFACESv4=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) + self.expect(self.prompt) + #self.sendline('sed s/INTERFACESv6=.*/INTERFACESv6=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) + self.sendline('sed "/INTERFACESv6/d" -i /etc/default/isc-dhcp-server') + self.expect(self.prompt) + # we are bypass this for now (see http://patchwork.ozlabs.org/patch/117949/) + self.sendline('sysctl -w net.ipv6.conf.%s.accept_dad=0' % self.iface_dut) + self.expect(self.prompt) + if not self.wan_no_eth0: + self.sendline('ifconfig %s %s' % (self.iface_dut, self.gw)) + self.expect(self.prompt) + #self.sendline('ifconfig %s inet6 add 2001:ed8:77b5:3::101/64' % self.iface_dut) + #self.expect(self.prompt) + # TODO: specify these via config + #self.sendline('ip route add 192.168.201.0/24 via 192.168.3.222' % (self.mta_network, self.prov_gateway)) + #self.expect(self.prompt) + #self.sendline('ip route add 192.168.200.0/24 via 192.168.3.222' % (self.cm_network, self.prov_gateway)) + #self.expect(self.prompt) + # TODO: iface_dut needs an ipv6 addr + # sysctl net.ipv6.conf.%s.disable_ipv6=0 % iface_dut + #self.sendline('ip -6 route add 2001:ed8:77b5:2000::/64 via 2001:ed8:77b5:3::222 dev %s metric 1024' % self.iface_dut) + #self.expect(self.prompt) + #self.sendline('ip -6 route add 2001:ed8:77b5:2001::/64 via 2001:ed8:77b5:3::222 dev %s metric 1024' % self.iface_dut) + #self.expect(self.prompt) + self.update_cmts_isc_dhcp_config(board_config) + self.sendline('cat /etc/dhcp/dhcpd.conf') + self.expect(self.prompt) + self.sendline('(flock -x 9; /etc/init.d/isc-dhcp-server restart; flock -u 9) 9>/etc/init.d/isc-dhcp-server.lock') + # We expect both, so we need debian 9 or greater for this device + self.expect('Starting ISC DHCPv4 server: dhcpd.\r\n') + #self.expect('Starting ISC DHCPv6 server: dhcpd6.\r\n') + self.expect(self.prompt) + self.sendline('rm /etc/init.d/isc-dhcp-server.lock') + self.expect(self.prompt) + + # only start tftp server if we are a full blown wan+provisioner + if self.wan_cmts_provisioner: + self.start_tftp_server() + + # errr, this should not need to call into board object + try: + from devices import board + board.update_cfg_for_site() + except: + pass + + self.copy_cmts_provisioning_files(board_config) + + self.sendline("sed 's/disable\\t\\t= yes/disable\\t\\t= no/g' -i /etc/xinetd.d/time") + self.expect(self.prompt) + self.sendline("grep -q flags.*=.*IPv6 /etc/xinetd.d/time || sed '/wait.*=/a\\\\tflags\\t\\t= IPv6' -i /etc/xinetd.d/time") + self.expect(self.prompt) + self.sendline('/etc/init.d/xinetd restart') + self.expect('Starting internet superserver: xinetd.') + self.expect(self.prompt) + + def reprovision_board(self, board_config): + '''New DHCP, cfg files etc for board after it's been provisioned once''' + self.copy_cmts_provisioning_files(board_config) + self.update_cmts_isc_dhcp_config(board_config) + self.sendline('(flock -x 9; /etc/init.d/isc-dhcp-server restart; flock -u 9) 9>/etc/init.d/isc-dhcp-server.lock') + self.expect(['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*']) + self.expect(self.prompt) + self.sendline('rm /etc/init.d/isc-dhcp-server.lock') + self.expect(self.prompt) + From 09c049f4a177cfa2abd00c2b93eec624489ae0dc Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 4 Mar 2019 20:28:51 -0600 Subject: [PATCH 623/947] devices: debian_isc: force wan, mta, erouter to correct network We had allow-unknown set for all subnets so that was not how it was supposed to work- this puts the right iface's in the right subnet at least for now Also delay looking for iface's IPs, and fail if they are not set... they should not be unset with the default provisioning Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/casa_cmts.py | 1 + devices/debian_isc.py | 99 +++++++++++++++++++++++++++++-------------- tests/rootfs_boot.py | 62 +++++++++++++-------------- 3 files changed, 97 insertions(+), 65 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 0c244514..3689b877 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -469,6 +469,7 @@ def check_docsis_mac_ip_provisioning_mode(self, index): cmts.set_iface_ipaddr('eth 0', '172.19.17.136 255.255.255.192') cmts.set_iface_ipaddr('gige 0', '192.168.3.222 255.255.255.0') + # TODO: add third network for open cmts.add_ip_bundle(1, "192.168.200.1", "192.168.201.1", "192.168.3.1") cmts.add_route("0.0.0.0", "0", "192.168.3.1") diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 6ec162fc..dcab8074 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -21,12 +21,12 @@ def __init__(self, *args, **kwargs): self.cm_gateway = ipaddress.IPv4Address(kwargs.pop('cm_gateway', u"192.168.200.1")) self.mta_network = ipaddress.IPv4Network(kwargs.pop('mta_network', u"192.168.201.0/24")) self.mta_gateway = ipaddress.IPv4Address(kwargs.pop('mta_gateway', u"192.168.201.1")) + self.open_network = ipaddress.IPv4Network(kwargs.pop('open_network', u"192.168.202.0/24")) + self.open_gateway = ipaddress.IPv4Address(kwargs.pop('open_gateway', u"192.168.202.1")) self.prov_network = ipaddress.IPv4Network(kwargs.pop('prov_network', u"192.168.3.0/24")) self.prov_gateway = ipaddress.IPv4Address(kwargs.pop('prov_gateway', u"192.168.3.222")) self.prov_ip = ipaddress.IPv4Address(kwargs.pop('prov_ip', u"192.168.3.1")) - self.gw = self.prov_ip - if 'options' in kwargs: options = [x.strip() for x in kwargs['options'].split(',')] for opt in options: @@ -38,6 +38,8 @@ def __init__(self, *args, **kwargs): self.wan_dhcp_server = False self.standalone_provisioner = False + self.gw = self.prov_ip + self.nw = self.prov_network return super(DebianISCProvisioner, self).__init__(*args, **kwargs) def update_cmts_isc_dhcp_config(self, board_config): @@ -53,6 +55,13 @@ def update_cmts_isc_dhcp_config(self, board_config): max-lease-time 604800; allow leasequery; +class "CM" { + match if substring (option vendor-class-identifier, 0, 6) = "docsis"; +} +class "MTA" { + match if substring (option vendor-class-identifier, 0, 4) = "pktc"; +} + option space docsis-mta; option docsis-mta.dhcp-server-1 code 1 = ip-address; option docsis-mta.dhcp-server-1 ###MTA_DHCP_SERVER1###; @@ -65,38 +74,59 @@ def update_cmts_isc_dhcp_config(self, board_config): option docsis-mta.kerberos-realm 05:42:41:53:49:43:01:31:00 ; subnet ###PROV_IP### netmask ###PROV_NETMASK### { - interface %s; + interface ###IFACE###; + ignore booting; } -subnet ###CM_IP### netmask ###CM_NETMASK### -{ - interface %s; - range ###CM_START_RANGE### ###CM_END_RANGE###; - option routers ###CM_GATEWAY###; - option broadcast-address ###CM_BROADCAST###; - option dhcp-parameter-request-list 43; - option domain-name "local"; - option time-offset 1; - option tftp-server-name "###DEFAULT_TFTP_SERVER###"; - filename "UNLIMITCASA.cfg"; - allow unknown-clients; -} -subnet ###MTA_IP### netmask ###MTA_NETMASK### -{ - interface %s; - range ###MTA_START_RANGE### ###MTA_END_RANGE###; - option routers ###MTA_GATEWAY###; - option broadcast-address ###MTA_BROADCAST###; - option time-offset 1; - option domain-name-servers %s; - allow unknown-clients; + +shared-network boardfarm { + interface ###IFACE###; + subnet ###CM_IP### netmask ###CM_NETMASK### + { + option routers ###CM_GATEWAY###; + option broadcast-address ###CM_BROADCAST###; + option dhcp-parameter-request-list 43; + option domain-name "local"; + option time-offset 1; + option tftp-server-name "###DEFAULT_TFTP_SERVER###"; + filename "UNLIMITCASA.cfg"; + } + subnet ###MTA_IP### netmask ###MTA_NETMASK### + { + option routers ###MTA_GATEWAY###; + option broadcast-address ###MTA_BROADCAST###; + option time-offset 1; + option domain-name-servers ###PROV###; + } + subnet ###OPEN_IP### netmask ###OPEN_NETMASK### + { + option routers ###OPEN_GATEWAY###; + option broadcast-address ###OPEN_BROADCAST###; + option domain-name "local"; + option time-offset 1; + option domain-name-servers ###PROV###; + } + pool { + allow unknown-clients; + range ###OPEN_START_RANGE### ###OPEN_END_RANGE###; + } + pool { + range ###MTA_START_RANGE### ###MTA_END_RANGE###; + allow members of "MTA"; + } + pool { + range ###CM_START_RANGE### ###CM_END_RANGE###; + allow members of "CM"; + } } -EOF''' % (self.iface_dut, self.iface_dut, self.iface_dut, self.gw) +EOF''' to_send = to_send.replace('###LOG_SERVER###', str(self.prov_ip)) to_send = to_send.replace('###TIME_SERVER###', str(self.prov_ip)) to_send = to_send.replace('###NEXT_SERVER###', str(self.prov_ip)) + to_send = to_send.replace('###IFACE###', str(self.iface_dut)) to_send = to_send.replace('###MTA_DHCP_SERVER1###', str(self.prov_ip)) to_send = to_send.replace('###MTA_DHCP_SERVER2###', str(self.prov_ip)) + to_send = to_send.replace('###PROV###', str(self.prov_ip)) to_send = to_send.replace('###PROV_IP###', str(self.prov_network[0])) to_send = to_send.replace('###PROV_NETMASK###', str(self.prov_network.netmask)) to_send = to_send.replace('###CM_IP###', str(self.cm_network[0])) @@ -112,6 +142,12 @@ def update_cmts_isc_dhcp_config(self, board_config): to_send = to_send.replace('###MTA_END_RANGE###', str(self.mta_network[60])) to_send = to_send.replace('###MTA_GATEWAY###', str(self.mta_gateway)) to_send = to_send.replace('###MTA_BROADCAST###', str(self.mta_network[-1])) + to_send = to_send.replace('###OPEN_IP###', str(self.open_network[0])) + to_send = to_send.replace('###OPEN_NETMASK###', str(self.open_network.netmask)) + to_send = to_send.replace('###OPEN_START_RANGE###', str(self.open_network[10])) + to_send = to_send.replace('###OPEN_END_RANGE###', str(self.open_network[60])) + to_send = to_send.replace('###OPEN_GATEWAY###', str(self.open_gateway)) + to_send = to_send.replace('###OPEN_BROADCAST###', str(self.open_network[-1])) self.sendline(to_send) self.expect(self.prompt) @@ -201,9 +237,9 @@ def update_cmts_isc_dhcp_config(self, board_config): self.sendline('cp /dev/null %s' % cfg_file) self.expect(self.prompt) - # insert tftp server + # insert tftp server, TODO: how to clean up? board_config['extra_provisioning']['cm']['next-server'] = tftp_server - #board_config['extra_provisioning']['cm']['options']['tftp-server-name'] = '"' + tftp_server + '"' + board_config['extra_provisioning']['mta']['next-server'] = tftp_server # there is probably a better way to construct this file... for dev, cfg_sec in board_config['extra_provisioning'].iteritems(): @@ -276,10 +312,9 @@ def provision_board(self, board_config): #self.sendline('ifconfig %s inet6 add 2001:ed8:77b5:3::101/64' % self.iface_dut) #self.expect(self.prompt) # TODO: specify these via config - #self.sendline('ip route add 192.168.201.0/24 via 192.168.3.222' % (self.mta_network, self.prov_gateway)) - #self.expect(self.prompt) - #self.sendline('ip route add 192.168.200.0/24 via 192.168.3.222' % (self.cm_network, self.prov_gateway)) - #self.expect(self.prompt) + for nw in [self.cm_network, self.mta_network, self.open_network]: + self.sendline('ip route add %s via %s' % (nw, self.prov_gateway)) + self.expect(self.prompt) # TODO: iface_dut needs an ipv6 addr # sysctl net.ipv6.conf.%s.disable_ipv6=0 % iface_dut #self.sendline('ip -6 route add 2001:ed8:77b5:2000::/64 via 2001:ed8:77b5:3::222 dev %s metric 1024' % self.iface_dut) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 3a82e5a6..dac7ac77 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -55,7 +55,7 @@ def boot(self, reflash=True): if hasattr(prov, 'prov_gateway'): gw = prov.prov_gateway if wan.gw in prov.prov_network else prov.prov_ip - for nw in [prov.cm_network, prov.mta_network]: + for nw in [prov.cm_network, prov.mta_network, prov.open_network]: wan.sendline('ip route add %s via %s' % (nw, gw)) wan.expect(prompt) @@ -132,38 +132,6 @@ def boot(self, reflash=True): board.wait_for_network() board.wait_for_mounts() - if prov is not None and 'debian' in prov.model: - table = self.config.board['station'] - idx = wan.port # TODO: how to do this right...? - - for not_used in range(5): - try: - ips = [board.get_interface_ipaddr(board.wan_iface)] - if hasattr(board, 'erouter_iface'): - ips += [board.get_interface_ipaddr(board.erouter_iface)] - if hasattr(board, 'mta_iface'): - ips += [board.get_interface_ipaddr(board.mta_iface)] - break - except: - continue - - # TODO: don't hard code 300 or mv1-1 - prov.sendline('sed /^%s/d -i /etc/iproute2/rt_tables' % idx) - prov.expect(prompt) - prov.sendline('echo "%s %s" >> /etc/iproute2/rt_tables' % (idx, table)) - prov.expect(prompt) - - for ip in ips: - prov.sendline('ip rule del from %s' % ip) - prov.expect(prompt) - prov.sendline('ip rule add from %s lookup %s' % (ip, table)) - prov.expect(prompt) - - wan_ip = wan.get_interface_ipaddr(wan.iface_dut) - prov.sendline('ip route add default via %s dev eth1 table %s' % (wan_ip, table)) - prov.expect(prompt) - - if self.config.setup_device_networking: # Router mac addresses are likely to change, so flush arp if lan: @@ -209,6 +177,34 @@ def boot(self, reflash=True): if len(pkg) > 0: board.install_package(pkg) + if prov is not None and 'debian' in prov.model: + table = self.config.board['station'] + idx = wan.port # TODO: how to do this right...? + + ips = [] + for not_used in range(5): + ips = [board.get_interface_ipaddr(board.wan_iface)] + if hasattr(board, 'erouter_iface'): + ips += [board.get_interface_ipaddr(board.erouter_iface)] + if hasattr(board, 'mta_iface'): + ips += [board.get_interface_ipaddr(board.mta_iface)] + + # TODO: don't hard code 300 or mv1-1 + prov.sendline('sed /^%s/d -i /etc/iproute2/rt_tables' % idx) + prov.expect(prompt) + prov.sendline('echo "%s %s" >> /etc/iproute2/rt_tables' % (idx, table)) + prov.expect(prompt) + + for ip in ips: + prov.sendline('ip rule del from %s' % ip) + prov.expect(prompt) + prov.sendline('ip rule add from %s lookup %s' % (ip, table)) + prov.expect(prompt) + + wan_ip = wan.get_interface_ipaddr(wan.iface_dut) + prov.sendline('ip route add default via %s dev eth1 table %s' % (wan_ip, table)) + prov.expect(prompt) + # Try to verify router has stayed up (and, say, not suddenly rebooted) end_seconds_up = board.get_seconds_uptime() print("\nThe router has been up %s seconds." % end_seconds_up) From fe7fa6dcd1444f5f7e9642420c3d8d8d5c3ef2d8 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Sun, 3 Mar 2019 00:12:51 +0100 Subject: [PATCH 624/947] tests: lib: installers: bug fix the regex did not catch a file name the expect prompt moved to anthoer line Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/lib/installers.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 3707915c..b1227648 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -397,12 +397,12 @@ def install_ovpn_server(device, remove=False, _user='lan', _ip="ipv4"): device.expect(device.prompt) device.sendline('ls -l /etc/init.d/openvpn') - index = device.expect(['(\\s{1,}\\d{4}()\\s{1,}\\/etc\\/init\\.d\\/openvpn)'] + device.prompt, timeout=90) + index = device.expect(['(\\sroot\\sroot\\s{1,}\\d{4}(.*)\\s{1,}\\/etc\\/init\\.d\\/openvpn)'] + ['No such file or directory']) + device.expect(device.prompt) # do we want to remove it? if remove: if index == 0: - device.expect(device.prompt) # be brutal, the server may not be responding to a stop device.sendline('killall -9 openvpn') device.expect(device.prompt, timeout=60) From fae9ee189c4b31eda706497383de2656bc477550 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 11 Mar 2019 10:51:26 -0500 Subject: [PATCH 625/947] bft: add better error messages for failing to parse tests specified in -e Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 8 ++++++-- tests/__init__.py | 6 ++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/bft b/bft index 874064e5..69ff8964 100755 --- a/bft +++ b/bft @@ -230,12 +230,16 @@ def main(): print_bold("Extra tests specified on command line:") try: - for t in [getattr(tests, name) for name in config.EXTRA_TESTS]: + for name in config.EXTRA_TESTS: + t = getattr(tests, name, None) + if t is None: + raise Exception("Unable to load test from tests class!!!! Parsing of test selected via -e failed") print_bold(" %s" % t) test = t(config) test.start = start tests_to_run.append(test) - except: + except Exception as e: + print_bold(e) print_bold("Unable to find specified extra tests, aborting...") sys.exit(1) diff --git a/tests/__init__.py b/tests/__init__.py index 8af9a3e2..bd3c0c44 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -33,8 +33,10 @@ test_mappings[test_file].append(ref) exec("from %s import %s" % (x, obj)) except Exception as e: - print(e) - print("Warning: could not import from file %s." % x) + if 'BFT_DEBUG' in os.environ: + import traceback + traceback.print_exc() + print("Warning: could not import from file %s. Run with BFT_DEBUG=y for more details" % x) def init(config): for test_file, tests in test_mappings.iteritems(): From efad82abba19f339aeb0990ae2669c263537f1cd Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 11 Mar 2019 17:26:18 -0500 Subject: [PATCH 626/947] tests: rootfs_boot: use full name for prov This named change, it worked because it was a single entry set, but if we ever add more there would be a bug Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/rootfs_boot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index dac7ac77..4e5d1a33 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -177,7 +177,7 @@ def boot(self, reflash=True): if len(pkg) > 0: board.install_package(pkg) - if prov is not None and 'debian' in prov.model: + if prov is not None and 'debian-isc-provisioner' in prov.model: table = self.config.board['station'] idx = wan.port # TODO: how to do this right...? From 719bee0d0a220db4a6a4d99dfb2dee58cf99125d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 11 Mar 2019 18:33:52 -0500 Subject: [PATCH 627/947] debian_isc: remove generic next-server These should be cm and mta only, so let's remove the generic one Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian_isc.py | 1 - 1 file changed, 1 deletion(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index dcab8074..32056650 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -50,7 +50,6 @@ def update_cmts_isc_dhcp_config(self, board_config): log-facility local7; option log-servers ###LOG_SERVER###; option time-servers ###TIME_SERVER###; -next-server ###NEXT_SERVER###; default-lease-time 604800; max-lease-time 604800; allow leasequery; From 0c999d1c96b585936ec7622e8efd9f4e04418b64 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 11 Mar 2019 18:47:01 -0500 Subject: [PATCH 628/947] debian_isc: add mta isc options Options to be used in the future, rename docsis-mta-encap to docsis-mta-pkt Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian_isc.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 32056650..b379040b 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -68,9 +68,15 @@ class "MTA" { option docsis-mta.dhcp-server-2 ###MTA_DHCP_SERVER2###; option docsis-mta.provision-server code 3 = { integer 8, string }; option docsis-mta.provision-server 0 08:54:43:4F:4D:4C:41:42:53:03:43:4F:4D:00 ; -option docsis-mta-encap code 122 = encapsulate docsis-mta; option docsis-mta.kerberos-realm code 6 = string; option docsis-mta.kerberos-realm 05:42:41:53:49:43:01:31:00 ; +option docsis-mta.as-req-as-rep-1 code 4 = { integer 32, integer 32, integer 32 }; +option docsis-mta.as-req-as-rep-2 code 5 = { integer 32, integer 32, integer 32 }; +option docsis-mta.krb-realm-name code 6 = string; +option docsis-mta.tgs-util code 7 = integer 8; +option docsis-mta.timer code 8 = integer 8; +option docsis-mta.ticket-ctrl-mask code 9 = integer 16; +option docsis-mta-pkt code 122 = encapsulate docsis-mta; subnet ###PROV_IP### netmask ###PROV_NETMASK### { interface ###IFACE###; From 37b38e09eeb619cc7a9924a366553d7b157304d7 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 11 Mar 2019 21:17:11 -0500 Subject: [PATCH 629/947] devices: debian_isc: add match rules for open subnet No unknown clients TODO: but how will this work in bridged mode? Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian_isc.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index b379040b..6b587948 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -60,6 +60,9 @@ class "CM" { class "MTA" { match if substring (option vendor-class-identifier, 0, 4) = "pktc"; } +class "HOST" { + match if ((substring(option vendor-class-identifier,0,6) != "docsis") and (substring(option vendor-class-identifier,0,4) != "pktc")); +} option space docsis-mta; option docsis-mta.dhcp-server-1 code 1 = ip-address; @@ -110,10 +113,6 @@ class "MTA" { option time-offset 1; option domain-name-servers ###PROV###; } - pool { - allow unknown-clients; - range ###OPEN_START_RANGE### ###OPEN_END_RANGE###; - } pool { range ###MTA_START_RANGE### ###MTA_END_RANGE###; allow members of "MTA"; @@ -122,6 +121,10 @@ class "MTA" { range ###CM_START_RANGE### ###CM_END_RANGE###; allow members of "CM"; } + pool { + range ###OPEN_START_RANGE### ###OPEN_END_RANGE###; + allow members of "HOST"; + } } EOF''' From 68d4b89050caa585cbd4253c488d3d08c6ddd0ca Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 11 Mar 2019 17:22:24 -0500 Subject: [PATCH 630/947] tests: rootfs_boot: check to make sure wan/mta/erouter are in right address range If DHCP is misconfigured or something else is wrong, these could get the wrong address... make sure they range is at least valid for the provisioner settings Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/rootfs_boot.py | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 4e5d1a33..60841218 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -8,6 +8,7 @@ import time import linux_boot import lib +import ipaddress from devices import board, wan, lan, prompt class RootFSBootTest(linux_boot.LinuxBootTest): @@ -181,13 +182,40 @@ def boot(self, reflash=True): table = self.config.board['station'] idx = wan.port # TODO: how to do this right...? + + start_time = time.time() + time_for_provisioning = 60 + ips = [] - for not_used in range(5): - ips = [board.get_interface_ipaddr(board.wan_iface)] - if hasattr(board, 'erouter_iface'): - ips += [board.get_interface_ipaddr(board.erouter_iface)] - if hasattr(board, 'mta_iface'): - ips += [board.get_interface_ipaddr(board.mta_iface)] + while (time.time() - start_time < time_for_provisioning): + try: + try: + ip = board.get_interface_ipaddr(board.wan_iface) + except: + assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.cm_network, \ + "Board failed to obtain WAN IP address" + + ips += [ip] + + if hasattr(board, 'erouter_iface'): + try: + ip = board.get_interface_ipaddr(board.erouter_iface) + except: + assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.open_network, \ + "Board failed to obtain erouter IP address" + ips += [ip] + if hasattr(board, 'mta_iface'): + try: + ip = board.get_interface_ipaddr(board.mta_iface) + except: + assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.mta_network, \ + "Board failed to obtain MTA IP address" + ips += [ip] + break + except: + if time.time() - start_time < time_for_provisioning: + raise + pass # TODO: don't hard code 300 or mv1-1 prov.sendline('sed /^%s/d -i /etc/iproute2/rt_tables' % idx) From c0810c2e2ee22feff5e599e8046234687a4e13e3 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 11 Mar 2019 21:48:10 -0500 Subject: [PATCH 631/947] devices: debian_isc: move mta specific options to mta pool Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian_isc.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 6b587948..6da81554 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -66,13 +66,9 @@ class "HOST" { option space docsis-mta; option docsis-mta.dhcp-server-1 code 1 = ip-address; -option docsis-mta.dhcp-server-1 ###MTA_DHCP_SERVER1###; option docsis-mta.dhcp-server-2 code 2 = ip-address; -option docsis-mta.dhcp-server-2 ###MTA_DHCP_SERVER2###; option docsis-mta.provision-server code 3 = { integer 8, string }; -option docsis-mta.provision-server 0 08:54:43:4F:4D:4C:41:42:53:03:43:4F:4D:00 ; option docsis-mta.kerberos-realm code 6 = string; -option docsis-mta.kerberos-realm 05:42:41:53:49:43:01:31:00 ; option docsis-mta.as-req-as-rep-1 code 4 = { integer 32, integer 32, integer 32 }; option docsis-mta.as-req-as-rep-2 code 5 = { integer 32, integer 32, integer 32 }; option docsis-mta.krb-realm-name code 6 = string; @@ -96,6 +92,8 @@ class "HOST" { option domain-name "local"; option time-offset 1; option tftp-server-name "###DEFAULT_TFTP_SERVER###"; + option docsis-mta.dhcp-server-1 ###MTA_DHCP_SERVER1###; + option docsis-mta.dhcp-server-2 ###MTA_DHCP_SERVER2###; filename "UNLIMITCASA.cfg"; } subnet ###MTA_IP### netmask ###MTA_NETMASK### @@ -104,6 +102,8 @@ class "HOST" { option broadcast-address ###MTA_BROADCAST###; option time-offset 1; option domain-name-servers ###PROV###; + option docsis-mta.kerberos-realm 05:42:41:53:49:43:01:31:00 ; + option docsis-mta.provision-server 0 08:54:43:4F:4D:4C:41:42:53:03:43:4F:4D:00 ; } subnet ###OPEN_IP### netmask ###OPEN_NETMASK### { From ff745976a29167606a872f1129bbf4d79eb4aa67 Mon Sep 17 00:00:00 2001 From: "prekumar.contractor" <prekumar.contractor@libertyglobal.com> Date: Thu, 14 Mar 2019 17:17:19 +0100 Subject: [PATCH 632/947] devices: base: added functions to enable and disable IPV6 in linux clients - separate functions enable_ipv6 and disable_ipv6 are added Signed-off-by: prekumar.contractor<prekumar.contractor@libertyglobal.com> --- devices/base.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/devices/base.py b/devices/base.py index cb424795..109813a5 100644 --- a/devices/base.py +++ b/devices/base.py @@ -244,3 +244,10 @@ def sendcontrol(self, char): def expect_exact_split(self, pattern, nsplit=1, *args, **kwargs): pass + def enable_ipv6(self, interface): + self.sendline("sysctl net.ipv6.conf."+interface+".disable_ipv6=0") + self.expect(self.prompt, timeout=30) + + def disable_ipv6(self, interface): + self.sendline("sysctl net.ipv6.conf."+interface+".disable_ipv6=1") + self.expect(self.prompt, timeout=30) From 133ad3eee5909fb6db5ff2374aed4f25c3764b25 Mon Sep 17 00:00:00 2001 From: "prekumar.contractor" <prekumar.contractor@libertyglobal.com> Date: Thu, 14 Mar 2019 16:52:47 +0100 Subject: [PATCH 633/947] tests: lib: installers: modified install_postfix function - latest installation of postfix in linux do not expect parameters - Modified the function to work both with/without parameters Signed-off-by: prekumar.contractor<prekumar.contractor@libertyglobal.com> --- tests/lib/installers.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index b1227648..7b803e20 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -546,11 +546,20 @@ def install_postfix(device): device.sendline('apt-get update') # Update inetd before installation device.expect(device.prompt, timeout=90) device.sendline("apt-get install postfix -y") - assert 0 == device.expect(['General type of mail configuration:']+ device.prompt, timeout = 90), "Mail configuration type is note received. Installaion failed" - device.sendline("2") - assert 0 == device.expect(['System mail name:']+ device.prompt, timeout = 90), "System mail name option is note received. Installaion failed" - device.sendline("testingsmtp.com") - assert 0 != device.expect(['Errors were encountered']+ device.prompt, timeout = 90), "Errors Encountered. Installaion failed" + install_settings = device.expect(['General type of mail configuration:'] + ['Errors were encountered'] + device.prompt, timeout = 120) + print install_settings + if install_settings ==0: + device.sendline("2") + assert 0 == device.expect(['System mail name:']+ device.prompt, timeout = 90), "System mail name option is note received. Installaion failed" + device.sendline("testingsmtp.com") + assert 0 != device.expect(['Errors were encountered']+ device.prompt, timeout = 90), "Errors Encountered. Installaion failed" + + elif install_settings ==1: + assert 0 != 1, "Errors Encountered. Installaion failed" + + elif install_settings ==2: + device.sendline('postconf -d | grep mail_version') + device.expect('mail_version =', timeout=5) device.sendline("service postfix start") - assert 0 != device.expect(['failed']+ device.prompt, timeout = 90), "Unable to start Postfix service.Installaion failed" + assert 0 != device.expect(['failed']+ device.prompt, timeout = 90), "Unable to start Postfix service.Service is not properly installed" From 270a87dbfcf1bd6e07d73d27e86ad743dde53d1a Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Mon, 11 Mar 2019 08:51:00 +0100 Subject: [PATCH 634/947] tests: lib: regexlib: added regex that matches compressed IPv6 addresses Hopefully this will match all valid IPv6 addresses. This regex matches: FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 1080:0:0:0:8:800:200C:417A 0:0:0:0:0:0:0:1 fd42:42:42:42::1 1762:0:0:0:0:B03:1:AF18 1762:0:0:0:0:B03:127.32.67.1 1762::B03:1:AF18 762::B03:127.32.67.15 2001:0000:1234:0000:0000:C1C0:ABCD:0876 fe80:0:0:0:204:61ff:fe9d:f156 fe80::204:61ff:fe9d:f156 fe80:0000:0000:0000:0204:61ff:254.157.241.86 fe80:0:0:0:0204:61ff:254.157.241.86 fe80::204:61ff:254.157.241.86 ::1 fe80:: 2001:: Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/lib/regexlib.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/lib/regexlib.py b/tests/lib/regexlib.py index 32508574..2d6efb60 100644 --- a/tests/lib/regexlib.py +++ b/tests/lib/regexlib.py @@ -18,6 +18,27 @@ # Matches: FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 | 1080:0:0:0:8:800:200C:417A | 0:0:0:0:0:0:0:1 ValidIpv6AddressRegex='([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4}' +# IPv6 text representation of addresses with compression: +# Matches: +# FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 +# 1080:0:0:0:8:800:200C:417A +# 0:0:0:0:0:0:0:1 +# fd42:42:42:42::1 +# 1762:0:0:0:0:B03:1:AF18 +# 1762:0:0:0:0:B03:127.32.67.1 +# 1762::B03:1:AF18 +# 762::B03:127.32.67.15 +# 2001:0000:1234:0000:0000:C1C0:ABCD:0876 +# fe80:0:0:0:204:61ff:fe9d:f156 +# fe80::204:61ff:fe9d:f156 +# fe80:0000:0000:0000:0204:61ff:254.157.241.86 +# fe80:0:0:0:0204:61ff:254.157.241.86 +# fe80::204:61ff:254.157.241.86 +# ::1 +# fe80:: +# 2001:: +AllValidIpv6AddressesRegex='(?:(?:(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):){6})(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):(?:(?:[0-9a-fA-F]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:::(?:(?:(?:[0-9a-fA-F]{1,4})):){5})(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):(?:(?:[0-9a-fA-F]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})))?::(?:(?:(?:[0-9a-fA-F]{1,4})):){4})(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):(?:(?:[0-9a-fA-F]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):){0,1}(?:(?:[0-9a-fA-F]{1,4})))?::(?:(?:(?:[0-9a-fA-F]{1,4})):){3})(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):(?:(?:[0-9a-fA-F]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):){0,2}(?:(?:[0-9a-fA-F]{1,4})))?::(?:(?:(?:[0-9a-fA-F]{1,4})):){2})(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):(?:(?:[0-9a-fA-F]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):){0,3}(?:(?:[0-9a-fA-F]{1,4})))?::(?:(?:[0-9a-fA-F]{1,4})):)(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):(?:(?:[0-9a-fA-F]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):){0,4}(?:(?:[0-9a-fA-F]{1,4})))?::)(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):(?:(?:[0-9a-fA-F]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):){0,5}(?:(?:[0-9a-fA-F]{1,4})))?::)(?:(?:[0-9a-fA-F]{1,4})))|(?:(?:(?:(?:(?:(?:[0-9a-fA-F]{1,4})):){0,6}(?:(?:[0-9a-fA-F]{1,4})))?::))))' + # The CMTS mac-adderss format for e.g. 0025.2e34.4377 CmtsMacFormat='([0-9a-f]{4}\.[0-9a-fA-F]{4}\.[0-9a-f]{4})' From b363038ccbfb65fa40608bf86ca15e8820a4f3fd Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 14 Mar 2019 18:01:19 -0500 Subject: [PATCH 635/947] tests: rootfs_boot: fix logic for checking IP address We can't run the assert if we don't have an IP, we should just loop again Change-Id: I889f90887f853faf45aad764a56d1c0deb95a856 Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/448082 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/rootfs_boot.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 60841218..4ed36502 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -188,12 +188,15 @@ def boot(self, reflash=True): ips = [] while (time.time() - start_time < time_for_provisioning): + ips = [] try: try: ip = board.get_interface_ipaddr(board.wan_iface) except: - assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.cm_network, \ - "Board failed to obtain WAN IP address" + continue + + assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.cm_network, \ + "Board failed to obtain WAN IP address" ips += [ip] @@ -201,17 +204,22 @@ def boot(self, reflash=True): try: ip = board.get_interface_ipaddr(board.erouter_iface) except: - assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.open_network, \ - "Board failed to obtain erouter IP address" + continue + + assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.open_network, \ + "Board failed to obtain erouter IP address" ips += [ip] if hasattr(board, 'mta_iface'): try: ip = board.get_interface_ipaddr(board.mta_iface) except: - assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.mta_network, \ - "Board failed to obtain MTA IP address" + continue + + assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.mta_network, \ + "Board failed to obtain MTA IP address" ips += [ip] - break + + break except: if time.time() - start_time < time_for_provisioning: raise From b546aaaa4529fa0e567998291823b547e190f08e Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalanaiappan.contractor@libertyglobal.com> Date: Fri, 15 Mar 2019 21:54:12 +0530 Subject: [PATCH 636/947] tests: lib: common: hex2ipv6()-convert hex-string from SNMP output to IPV6 hex2ipv6() - convert hex-string from SNMP output to IPV6 format Signed-off-by: Panimalar Palaniappan <ppalanaiappan.contractor@libertyglobal.com> --- tests/lib/common.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/lib/common.py b/tests/lib/common.py index b85a5891..a9cd6a3d 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -17,7 +17,7 @@ import signal import config from termcolor import cprint -import re +import re, ipaddress from selenium import webdriver from selenium.webdriver.common.proxy import * @@ -445,3 +445,12 @@ def snmp_mib_get(device, board, iface_ip, mib_name, index, timeout=10, retry=3): snmp_out = device.match.group(1) device.expect(device.prompt) return snmp_out + +def hex2ipv6(hexstr): + """ + Can parse strings in this form: + FE 80 00 00 00 00 00 00 3A 43 7D FF FE DC A6 C3 + """ + hexstr = hexstr.replace(' ', '').lower() + blocks = (''.join(block) for block in zip(*[iter(hexstr)]*4)) + return ipaddress.IPv6Address(':'.join(str(block) for block in blocks).decode('utf-8')) From 2bea9252fc76fae104430b237249945622482fbf Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Date: Fri, 15 Mar 2019 23:03:17 +0530 Subject: [PATCH 637/947] tests: lib: common: changed \w to \S in snmp_mib_{set,get} for ipv6 parsing Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> --- tests/lib/common.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/lib/common.py b/tests/lib/common.py index a9cd6a3d..aa8abed9 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -415,13 +415,13 @@ def snmp_mib_set(device, board, iface_ip, mib_name, index, set_type, set_value, time_out = (timeout*retry)+30 device.sendline("snmpset -v 2c -c private -t " +str(timeout)+ " -r "+str(retry)+" "+iface_ip+" "+board.mib[mib_name]+"."+str(index)+" "+set_type+" "+str(set_value)) if set_type == "i" or set_type == "a" or set_type == "u": - idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\w+\:\s+(%s)\r\n' % set_value] + device.prompt, timeout=time_out) + idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\S+\:\s+(%s)\r\n' % set_value] + device.prompt, timeout=time_out) elif set_type == "s": - idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\w+\:\s+("%s")\r\n' % set_value] + device.prompt, timeout=time_out) + idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\S+\:\s+("%s")\r\n' % set_value] + device.prompt, timeout=time_out) elif set_type == "x": set_value_hex = set_value[2:].upper() set_value_output = ' '.join([set_value_hex[i:i+2] for i in range(0, len(set_value_hex), 2)]) - idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\w+\:\s+(%s)\r\n' % set_value_output] + device.prompt, timeout=40) + idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\S+\:\s+(%s)\r\n' % set_value_output] + device.prompt, timeout=40) assert idx==1,"Setting the mib %s" % mib_name snmp_out = device.match.group(1) device.expect(device.prompt) @@ -440,7 +440,7 @@ def snmp_mib_get(device, board, iface_ip, mib_name, index, timeout=10, retry=3): mib_oid = match.group(1)+'.'+index time_out = (timeout*retry)+30 device.sendline("snmpget -v 2c -c private -t " +str(timeout)+ " -r "+str(retry)+" "+iface_ip+" "+board.mib[mib_name]+"."+str(index)) - idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\w+\:\s+(.*)\r\n'] + device.prompt, timeout=time_out) + idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\S+\:\s+(.*)\r\n'] + device.prompt, timeout=time_out) assert idx==1,"Getting the mib %s"% mib_name snmp_out = device.match.group(1) device.expect(device.prompt) From 3ba20dbf1e3d6f0ab24e8150dc3a4e37b367b1b1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 15 Mar 2019 12:53:52 -0500 Subject: [PATCH 638/947] Revert "tests: rootfs_boot: fix logic for checking IP address" This reverts commit b363038ccbfb65fa40608bf86ca15e8820a4f3fd. Change-Id: Ib888af435edb370dc3be220729ae52c95600b43f Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/448186 --- tests/rootfs_boot.py | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 4ed36502..60841218 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -188,15 +188,12 @@ def boot(self, reflash=True): ips = [] while (time.time() - start_time < time_for_provisioning): - ips = [] try: try: ip = board.get_interface_ipaddr(board.wan_iface) except: - continue - - assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.cm_network, \ - "Board failed to obtain WAN IP address" + assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.cm_network, \ + "Board failed to obtain WAN IP address" ips += [ip] @@ -204,22 +201,17 @@ def boot(self, reflash=True): try: ip = board.get_interface_ipaddr(board.erouter_iface) except: - continue - - assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.open_network, \ - "Board failed to obtain erouter IP address" + assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.open_network, \ + "Board failed to obtain erouter IP address" ips += [ip] if hasattr(board, 'mta_iface'): try: ip = board.get_interface_ipaddr(board.mta_iface) except: - continue - - assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.mta_network, \ - "Board failed to obtain MTA IP address" + assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.mta_network, \ + "Board failed to obtain MTA IP address" ips += [ip] - - break + break except: if time.time() - start_time < time_for_provisioning: raise From 0c7216c3da89b73212416d0268767d27939ea5e8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 15 Mar 2019 13:01:39 -0500 Subject: [PATCH 639/947] tests: rootfs_boot: fix logic for checking IP address (attempt 2) Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I62cc8c38935e8ab6635a2ff204fa94fca081d614 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/448187 --- tests/rootfs_boot.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 60841218..fa60a46b 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -188,35 +188,46 @@ def boot(self, reflash=True): ips = [] while (time.time() - start_time < time_for_provisioning): + # reset IPs incase we got part way through and failed + ips = [] try: try: ip = board.get_interface_ipaddr(board.wan_iface) - except: assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.cm_network, \ "Board failed to obtain WAN IP address" + except: + continue ips += [ip] if hasattr(board, 'erouter_iface'): try: ip = board.get_interface_ipaddr(board.erouter_iface) - except: assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.open_network, \ "Board failed to obtain erouter IP address" + except: + continue ips += [ip] if hasattr(board, 'mta_iface'): try: ip = board.get_interface_ipaddr(board.mta_iface) - except: assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.mta_network, \ "Board failed to obtain MTA IP address" + except: + continue ips += [ip] - break + + # if we get this far, we have all IPs and can exit while loop + break except: if time.time() - start_time < time_for_provisioning: raise pass + check = [hasattr(board, 'erouter_iface'), hasattr(board, 'mta_iface')] + if len(ips) != 1 + sum(1 if True else 0 for x in check): + raise Exception("Failed to obtain ip address for all configured interfaces!") + # TODO: don't hard code 300 or mv1-1 prov.sendline('sed /^%s/d -i /etc/iproute2/rt_tables' % idx) prov.expect(prompt) From 76178ee75c3e05e168c2b76c36c438e7cc6f4578 Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Date: Fri, 8 Mar 2019 22:01:11 +0530 Subject: [PATCH 640/947] tests: lib: regexlib: regexp to grep Hex string of MAC in SNMP Added regexp to grep Hex string format of Mac address in SNMP output Change-Id: Icfb8d4bfdaa902d8157c3565537f4bceb4cd1399 Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/10 Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> Tested-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/regexlib.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/lib/regexlib.py b/tests/lib/regexlib.py index 2d6efb60..c3b5173c 100644 --- a/tests/lib/regexlib.py +++ b/tests/lib/regexlib.py @@ -48,3 +48,7 @@ # traceroute returns no route to ip address (i.e. '<num> * * *' 30 times) TracerouteNoRoute='((.[1-9]|[1-9][0-9])(\s\s\*\s\*\s\*)(\r\n|\r|\n)){30}' + +#Grep hex string format of Mac address in SNMP output +#Matches eg:F4 6D 04 61 74 E0 +SNMPMacAddressRegex = '([0-9A-Z][0-9A-Z]\s){6}' From e540ce4af41e2385df15f72552988c5b8f0b9996 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 18 Mar 2019 19:27:28 -0500 Subject: [PATCH 641/947] tests: rootfs_boot: provide a tiny bit more provisioning time Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ibd4fdedc570ded2970482401722f2cf617ac7777 --- tests/rootfs_boot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index fa60a46b..3e81d3b1 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -184,7 +184,7 @@ def boot(self, reflash=True): start_time = time.time() - time_for_provisioning = 60 + time_for_provisioning = 120 ips = [] while (time.time() - start_time < time_for_provisioning): From e64c1c9daf6f84676c4cfba7f9921d5d603390e3 Mon Sep 17 00:00:00 2001 From: "prekumar.contractor" <prekumar.contractor@libertyglobal.com> Date: Tue, 19 Mar 2019 12:08:29 +0100 Subject: [PATCH 642/947] devices: base: enahnaced "enable_ipv6" function - Added code to enable sysctl knob to accept router advertisement - accept_ra value is set to 2 which override ipv6 forwarding rule and accepts ra Signed-off-by: prekumar.contractor<prekumar.contractor@libertyglobal.com> --- devices/base.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/base.py b/devices/base.py index 109813a5..4736824e 100644 --- a/devices/base.py +++ b/devices/base.py @@ -245,6 +245,8 @@ def expect_exact_split(self, pattern, nsplit=1, *args, **kwargs): pass def enable_ipv6(self, interface): + self.sendline("sysctl net.ipv6.conf."+interface+".accept_ra=2") + self.expect(self.prompt, timeout=30) self.sendline("sysctl net.ipv6.conf."+interface+".disable_ipv6=0") self.expect(self.prompt, timeout=30) From 31118a6df7970e5c3d44e8875be01e76474dccf8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 20 Mar 2019 11:56:06 -0500 Subject: [PATCH 643/947] tests: lib: installer: install wget to fetch jmeter Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I829c9fa22b09ceb7919a8368c583acadab28ce34 --- tests/lib/installers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 7b803e20..4330abc4 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -342,7 +342,7 @@ def install_jmeter(device): device.expect(device.prompt) except: device.expect(device.prompt) - device.sendline('apt-get install openjdk-8-jre-headless -y') + device.sendline('apt-get install wget openjdk-8-jre-headless -y') device.expect(device.prompt, timeout=90) device.sendline('wget https://www-eu.apache.org/dist//jmeter/binaries/apache-jmeter-5.0.tgz') device.expect(device.prompt, timeout=90) From 45b95d20dcf06e865afca380f005faca5942d399 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Mar 2019 13:30:19 -0500 Subject: [PATCH 644/947] boardfarm_config_example.json: remove port mapping This was used for something, but it prevents us from running multiple qemu instances at once so let's get rid of it Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I05557c80e9f0f31ae4d55a1b12b4fbfef1ea71ea --- boardfarm_config_example.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boardfarm_config_example.json b/boardfarm_config_example.json index 40950467..ed32ba77 100644 --- a/boardfarm_config_example.json +++ b/boardfarm_config_example.json @@ -78,7 +78,7 @@ "type": "debian", "name": "wan", "pre_cmd_host": "docker build -t bft:node bft-node", - "cmd": "docker run --name lan-${uniq_id} --privileged -p 9910:9910 -it bft:node /bin/bash", + "cmd": "docker run --name lan-${uniq_id} --privileged -it bft:node /bin/bash", "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan-${uniq_id}) dev ${lan_iface}", "post_cmd": "ip link set ${lan_iface} name eth1", "cleanup_cmd": "docker stop lan-${uniq_id}; docker rm lan-${uniq_id}", From 15e2ffe6798d9e371fefe5208caa56c56d581d93 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Mar 2019 10:22:23 -0500 Subject: [PATCH 645/947] tests: linux_boot: check all consoles for loss of connectivity Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I429a7289ea683e99217e7355763037dac24dc14c Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/448647 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/linux_boot.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/linux_boot.py b/tests/linux_boot.py index 30f89734..b106a672 100644 --- a/tests/linux_boot.py +++ b/tests/linux_boot.py @@ -59,11 +59,12 @@ def wlan_cleanup(self): def testWrapper(self): self.start_time = time.time() - if not board.isalive(): - self.result_grade = "SKIP" - print("\n\n=========== Test skipped! Board is not alive... =============") - self.skipTest("Board is not alive") - raise + for c in board.consoles: + if not c.isalive(): + self.result_grade = "SKIP" + print("\n\n=========== Test skipped! Board is not alive... =============") + self.skipTest("Board is not alive") + raise try: if wan and hasattr(self, 'wan_setup'): From 4abdab9001b8e929b727277265973febcbe4a4ec Mon Sep 17 00:00:00 2001 From: Nero_Chen <nero_chen@compalbn.com> Date: Wed, 20 Mar 2019 10:25:15 +0800 Subject: [PATCH 646/947] devices: windows_telnet: add get_default_gateway add get_default_gateway function for get wifi interface gateway IP. Signed-off-by: Nero_Chen <nero_chen@compalbn.com> --- devices/windows_telnet.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/devices/windows_telnet.py b/devices/windows_telnet.py index 78408cf6..9b24b995 100755 --- a/devices/windows_telnet.py +++ b/devices/windows_telnet.py @@ -68,3 +68,15 @@ def set_dhcp(self , wifi_interface): def set_static_ip(self , wifi_interface, fix_ip, fix_mark, fix_gateway): self.sendline('netsh interface ip set address '+wifi_interface+" static "+fix_ip+" "+fix_mark+" "+fix_gateway+" 1") self.expect(self.prompt) + + def get_default_gateway(self, wifi_interface): + self.sendline('netsh interface ip show config '+wifi_interface) + + self.expect("(.+)>",timeout=30) + Wifi_log = self.match.group(1) + + match = re.search('Default Gateway:\s+([\d.]+)' , str(Wifi_log)) + if match: + return match.group(1) + else: + return None \ No newline at end of file From 36b8fac7872ea11d9b2495451f360c83b1327cfd Mon Sep 17 00:00:00 2001 From: lynn <lynn_lin@compalbn.com> Date: Tue, 12 Mar 2019 20:38:06 +0800 Subject: [PATCH 647/947] bft: fix update the results in Zephyr issue Move test_cases_list.append([]) to tc for loop to fix list index out of range, Unable to Update results in Zephyr issue. Signed-off-by: lynn <lynn_lin@compalbn.com> --- bft | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bft b/bft index 69ff8964..486d8c53 100755 --- a/bft +++ b/bft @@ -433,10 +433,9 @@ def main(): result_data = json.load(open('./results/test_results.json')) length = len(result_data["test_results"]) test_cases_list = [] - test_cases_list.append([]) - test_cases_list.append([]) for tc in range(0, length): + test_cases_list.append([]) test_case = result_data["test_results"][tc]["name"] test_cases_list[tc].append(test_case) test_result = result_data["test_results"][tc]["grade"] From 8d47b51ceb82480888b9bb88a97ead5aee7ac4f8 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Thu, 21 Mar 2019 23:52:47 +0100 Subject: [PATCH 648/947] devices: base: added set_printk, updated interact.py and rootfs_boot.py Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/base.py | 7 +++++++ tests/interact.py | 3 ++- tests/rootfs_boot.py | 3 +-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/devices/base.py b/devices/base.py index 4736824e..2f5e77df 100644 --- a/devices/base.py +++ b/devices/base.py @@ -253,3 +253,10 @@ def enable_ipv6(self, interface): def disable_ipv6(self, interface): self.sendline("sysctl net.ipv6.conf."+interface+".disable_ipv6=1") self.expect(self.prompt, timeout=30) + + def set_printk(self, CUR=1, DEF=1, MIN=1, BTDEF=7): + self.sendline('echo "%d %d %d %d" > /proc/sys/kernel/printk'% (CUR, DEF, MIN, BTDEF)) + self.expect(self.prompt) + if not BFT_DEBUG: + common.print_bold("printk set to %d %d %d %d" % (CUR, DEF, MIN, BTDEF)) + diff --git a/tests/interact.py b/tests/interact.py index 74127e37..4e70c981 100644 --- a/tests/interact.py +++ b/tests/interact.py @@ -151,7 +151,8 @@ def runTest(self): #try: board.sendline() - board.sendline('echo \"1 1 1 7\" > /proc/sys/kernel/printk') + # default are 1 1 1 7 + board.set_printk() board.expect(prompt) try: t = eval(test) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 3e81d3b1..4a17780f 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -170,8 +170,7 @@ def boot(self, reflash=True): board.expect(prompt) # we can't have random messsages messages - board.sendline("echo \"1 1 1 7\" > /proc/sys/kernel/printk") - board.expect(prompt) + board.set_printk() if hasattr(self.config, 'INSTALL_PKGS') and self.config.INSTALL_PKGS != "": for pkg in self.config.INSTALL_PKGS.split(' '): From b115ca0591d49d44b9166ce9445861bb17119ef7 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Mar 2019 13:50:19 -0500 Subject: [PATCH 649/947] devices: windows_telnet: fix no newline at end of file Previous commit '4abdab9 devices: windows_telnet: add get_default_gateway' caused this Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ibe9c491f556cdd0de2f37c0c35e8a1bdf4cf40c7 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/448665 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/windows_telnet.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/windows_telnet.py b/devices/windows_telnet.py index 9b24b995..0976c26b 100755 --- a/devices/windows_telnet.py +++ b/devices/windows_telnet.py @@ -79,4 +79,4 @@ def get_default_gateway(self, wifi_interface): if match: return match.group(1) else: - return None \ No newline at end of file + return None From d1feb95f9d118aecf23c5a00d6ab24b94e95ffac Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Mar 2019 14:58:21 -0500 Subject: [PATCH 650/947] arguments: change fatal exit code to 10 10 means it's fatal and would never work so stop trying, this can be used by automation scripts to not "retry" again Change-Id: Ib3508c9f55bd5a9f57bc7c3b6da06f11eae14851 Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/448671 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- arguments.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arguments.py b/arguments.py index c9b25427..a9caecdb 100755 --- a/arguments.py +++ b/arguments.py @@ -265,7 +265,7 @@ def add_basic_auth(login_str, request): config.BOARD_NAMES.append(b) if not config.BOARD_NAMES: print("ERROR! No boards meet selection requirements and have available_for_autotests = True.") - sys.exit(1) + sys.exit(10) else: if not args.board_names: print("ERROR") From 823bdd91d94dc90f5f76477e8eff2b933296da51 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Mar 2019 15:29:44 -0500 Subject: [PATCH 651/947] tests: concurrent_iperf: import print_bold properly With an overlay this worked, without it did not... this is more explicit and correct so for now let's change it too this Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I33339f35bd4e3dbcabbc49a98c6db72f706cf715 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/448673 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/concurrent_iperf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/concurrent_iperf.py b/tests/concurrent_iperf.py index 949242dc..0f57d90d 100644 --- a/tests/concurrent_iperf.py +++ b/tests/concurrent_iperf.py @@ -1,7 +1,7 @@ import rootfs_boot import pexpect -from common import print_bold +from devices.common import print_bold from datetime import datetime from devices import board, prompt, wan, lan From 57ac59a29d7a459c92e9c8fdc6dce4875a47718b Mon Sep 17 00:00:00 2001 From: gerben <gerben_chen@compalbn.com> Date: Fri, 15 Feb 2019 16:52:15 +0800 Subject: [PATCH 652/947] lib: network_helper.py: For mib get IP and MAC value format For TR069 Testcases: add mac_to_snmp_format add ipv4_to_snmp_format add ipv6_to_snmp_format using ipaddress and netaddr Signed-off-by: gerben <gerben_chen@compalbn.com> Change-Id: I0178cc139fc7fb958972014843d5f467dbb1d9b3 --- requirements.txt | 1 + tests/lib/network_helper.py | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 tests/lib/network_helper.py diff --git a/requirements.txt b/requirements.txt index 7bce39d4..af180aee 100644 --- a/requirements.txt +++ b/requirements.txt @@ -18,3 +18,4 @@ pyvirtualdisplay Faker zeep matplotlib +netaddr diff --git a/tests/lib/network_helper.py b/tests/lib/network_helper.py new file mode 100644 index 00000000..4cb6a93d --- /dev/null +++ b/tests/lib/network_helper.py @@ -0,0 +1,34 @@ +# Copyright (c) 2019 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. +# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 + +from netaddr import * +import re +import ipaddress + +def mac_to_snmp_format(mac_addr): + mac_tmp = re.sub("[\s\.\-]", "", mac_addr) + mac = EUI(mac_tmp, dialect=mac_unix) + mac_final = str(mac).upper() + + return mac_final + +def ipv4_to_snmp_format(ipv4_str): + ipv4_tmp = re.sub("[\s\.\-]", "", ipv4_str) + ipv4_decimal = int(ipv4_tmp, 16) + ipv4_format = ipaddress.IPv4Address(ipv4_decimal) + ipv4_address = ipaddress.ip_address(ipv4_format) + + return ipv4_address + +def ipv6_to_snmp_format(ipv6_str): + ipv6_tmp = re.sub("[\s\.\-]", "", ipv6_str) + pattern = re.compile('.{4}') + ipv6_tmp_ip = ':'.join(pattern.findall(ipv6_tmp)) + ipv6_address = ipaddress.ip_address(ipv6_tmp_ip) + + return ipv6_address From 77c5e00987c7e0d9e55edea4eb2214c534e51d68 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Sun, 24 Mar 2019 23:30:35 +0100 Subject: [PATCH 653/947] device: debian: retrieves a the mta and cmfile form the tftp to the localhost Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/debian.py | 15 +++++----- devices/debian_isc.py | 68 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 75 insertions(+), 8 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index b0b3e3a7..f46c4405 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -36,6 +36,7 @@ class DebianBox(base.BaseDevice): shared_tftp_server = False wan_dhcp_server = True tftp_device = None + tftp_dir = '/tftpboot' iface_dut = "eth1" gw = None @@ -338,21 +339,21 @@ def start_tftp_server(self): self.expect('Stopping') self.expect(self.prompt) if not self.shared_tftp_server: - self.sendline('rm -rf /tftpboot') + self.sendline('rm -rf '+self.tftp_dir) self.expect(self.prompt) self.sendline('rm -rf /srv/tftp') self.expect(self.prompt) self.sendline('mkdir -p /srv/tftp') self.expect(self.prompt) - self.sendline('ln -sf /srv/tftp/ /tftpboot') + self.sendline('ln -sf /srv/tftp/ '+self.tftp_dir) self.expect(self.prompt) - self.sendline('mkdir -p /tftpboot/tmp') + self.sendline('mkdir -p '+self.tftp_dir+'/tmp') self.expect(self.prompt) - self.sendline('chmod a+w /tftpboot/tmp') + self.sendline('chmod a+w '+self.tftp_dir+'/tmp') self.expect(self.prompt) - self.sendline('mkdir -p /tftpboot/crashdump') + self.sendline('mkdir -p '+self.tftp_dir+'/crashdump') self.expect(self.prompt) - self.sendline('chmod a+w /tftpboot/crashdump') + self.sendline('chmod a+w '+self.tftp_dir+'/crashdump') self.expect(self.prompt) self.sendline('sed /TFTP_OPTIONS/d -i /etc/default/tftpd-hpa') self.expect(self.prompt) @@ -396,7 +397,7 @@ def gzip_str(string_): with open(src, mode='rb') as file: bin_file = binascii.hexlify(gzip_str(file.read())) if dst is None: - dst = '/tftpboot/' + os.path.basename(src) + dst = self.tftp_dir + '/' + os.path.basename(src) print ("Copying %s to %s" % (src, dst)) saved_logfile_read = self.logfile_read self.logfile_read = None diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 6da81554..9565769a 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -1,6 +1,7 @@ import ipaddress import os - +import pexpect +from lib.regexlib import ValidIpv4AddressRegex from lib.docsis import docsis, cm_cfg from devices import DebianBox @@ -371,3 +372,68 @@ def reprovision_board(self, board_config): self.sendline('rm /etc/init.d/isc-dhcp-server.lock') self.expect(self.prompt) + def get_attr_from_dhcp(self, attr, exp_pattern, dev, station, match_group=4): + '''Try getting an attribute from the dhcpd.conf.<station> file''' + val = None + try: + self.sendline('cat /etc/dhcp/dhcpd.conf.%s' % station) + idx = self.expect(['(%s-%s\s\{([^}]+)(%s\s(%s))\;)' % (dev, station, attr, exp_pattern) ] + ['No such file or directory'] + [pexpect.TIMEOUT], timeout=10) + if idx == 0: + # the value should be in group 4 + val = self.match.group(match_group) + except: + pass + return val + + def get_cfgs(self, board_config): + '''Tries to get the cfg out of the dhcpd.conf for the station in question''' + try: + mta_cfg = self.get_attr_from_dhcp('filename', '".*?"', 'mta', board_config['station']) + mta_cfg_srv = self.get_attr_from_dhcp('next-server', ValidIpv4AddressRegex, 'mta', board_config['station']) + + cm_cfg = self.get_attr_from_dhcp('filename', '".*?"', 'cm', board_config['station']) + cm_cfg_srv = self.get_attr_from_dhcp('next-server', ValidIpv4AddressRegex, 'cm', board_config['station']) + if mta_cfg is None or mta_cfg_srv is None or cm_cfg is None or cm_cfg_srv is None: + raise + return [[mta_cfg.replace('"', ''), mta_cfg_srv], [cm_cfg.replace('"',''), cm_cfg_srv]] + except: + pass + + return None + + def get_conf_file_from_tftp(self, _tmpdir, board_config): + '''Retrieve the files in the cfg_list from the tftp sever, puts them in localhost:/tmp/''' + + cfg_list = self.get_cfgs(board_config) + if cfg_list is None: + return False + + for elem in cfg_list: + conf_file = self.tftp_dir+'/'+elem[0] + server = elem[1] + + # this is where the current (to be downloaded from the tftp) + # config is going to be placed + dest_fname = _tmpdir+'/'+os.path.basename(conf_file)+"."+board_config['station']+".current" + try: + os.remove(dest_fname) + except: + pass + + try: + print 'Downloading '+server+':'+conf_file+' to '+dest_fname + from devices.common import scp_from + scp_from(conf_file, server, self.tftp_device.username, self.tftp_device.password, self.tftp_device.port, dest_fname) + + if not os.path.isfile(dest_fname): + # Something has gone wrong as the tftp client has not thrown an + # exception, but the file is not where it should be!! + print("Tftp completed but %s not found in destination dir: "% dest_fname) + return False + print "Downloaded: "+conf_file + except: + print("Failed to download %s from %s"% (conf_file, self.ipaddr)) + return False + + return True + From b3b8fb71b65c8412405811dce51c77e4f37b6d8d Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Mon, 25 Mar 2019 22:56:59 +0100 Subject: [PATCH 654/947] tests: lib: installers: bugfix for VPN over ipv6 Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/lib/installers.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 4330abc4..7a1890c0 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -417,6 +417,8 @@ def install_ovpn_server(device, remove=False, _user='lan', _ip="ipv4"): # do the install if index != 0: + device.sendline('rm -f /etc/openvpn/server.conf') + device.expect(device.prompt) dev_ip = device.get_interface_ipaddr(device.iface_dut) device.sendline('apt-get update') device.expect(device.prompt) @@ -453,15 +455,13 @@ def install_ovpn_server(device, remove=False, _user='lan', _ip="ipv4"): device.sendline('/etc/init.d/openvpn stop') device.expect(device.prompt) if _ip == "ipv4": - addr = dev_ip - elif _ip == "ipv6": - addr = device.get_interface_ip6addr(device.iface_dut) - device.sendline('echo "local '+addr+'" > /etc/openvpn/server.conf.tmp') - device.expect(device.prompt) - device.sendline('cat /etc/openvpn/server.conf >> /etc/openvpn/server.conf.tmp') - device.expect(device.prompt) - device.sendline('mv /etc/openvpn/server.conf.tmp /etc/openvpn/server.conf') - device.expect(device.prompt) + # only add it in ipv4 + device.sendline('echo "local '+dev_ip+'" > /etc/openvpn/server.conf.tmp') + device.expect(device.prompt) + device.sendline('cat /etc/openvpn/server.conf >> /etc/openvpn/server.conf.tmp') + device.expect(device.prompt) + device.sendline('mv /etc/openvpn/server.conf.tmp /etc/openvpn/server.conf') + device.expect(device.prompt) device.sendline('/etc/init.d/openvpn status') index = device.expect(["VPN 'server' is running" ] + [ "VPN 'server' is not running ... failed"] +device.prompt, timeout=90) @@ -488,6 +488,8 @@ def install_ovpn_client(device, remove=False): device.expect(device.prompt, timeout=120) return + device.sendline('apt-get update') + device.expect(device.prompt) device.sendline('apt-get install openvpn -y') device.expect(device.prompt, timeout=90) From a74eaf32ebd85904452eca3aa4d4e182d295a7ad Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Mar 2019 18:44:47 -0500 Subject: [PATCH 655/947] tests: __init__: print exception if we fail to run parse with debug on From: Failed to run <class 'cdrouter_test.CDRouter_ipv4_all'> parse function! to: Traceback (most recent call last): File "/home/mattsm/git/boardfarm/tests/__init__.py", line 50, in init globals()[new_test] = getattr(test_file, new_test) AttributeError: 'module' object has no attribute 'CDrouterbasictcl' Failed to run <class 'cdrouter_test.CDRouter_ipv4_all'> parse function! Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Id8aa485faacd61d3c660f50e28c1da37da2d3c68 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/448693 --- tests/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/__init__.py b/tests/__init__.py index bd3c0c44..4bb2c755 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -48,6 +48,9 @@ def init(config): new_tests = test.parse(config) or [] for new_test in new_tests: globals()[new_test] = getattr(test_file, new_test) - except: + except Exception as e: + if 'BFT_DEBUG' in os.environ: + import traceback + traceback.print_exc() print("Failed to run %s parse function!" % test) pass From 52b7b1d06043a4d3f47f1f58d10fefbabff56627 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 25 Mar 2019 16:15:24 -0500 Subject: [PATCH 656/947] bft: properly disable console prints, and restore to correct color Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: If0546ca39ec7afeba7a11fb3b30cddc758b18d22 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449090 --- bft | 3 --- devices/base.py | 12 ++++++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/bft b/bft index 486d8c53..8e8a89b8 100755 --- a/bft +++ b/bft @@ -137,8 +137,6 @@ def main(): setup_dynamic_devices(config, env=env, start=start) def get_tftp_config(dev): - saved = config.console.logfile_read - config.console.logfile_read = None saved = dev.logfile_read dev.logfile_read = None if 'wan-no-eth0' in dev.kwargs.get('options', ""): @@ -150,7 +148,6 @@ def main(): config.console.tftp_password = "bigfoot1" config.console.tftp_port = "22" config.console.tftp_dev = dev - config.console.logfile_read = saved # check devices after they start for tftpd-server option if # if we still have not configured a tftp server diff --git a/devices/base.py b/devices/base.py index 2f5e77df..97af8aff 100644 --- a/devices/base.py +++ b/devices/base.py @@ -87,7 +87,11 @@ def write(self, string): self._logfile_read.write(string) def set_logfile_read(self, value): - class o_helper(): + if value == None: + self._logfile_read = None + return + + class o_helper(object): def __init__(self, parent, out, color): self.color = color self.out = out @@ -111,10 +115,10 @@ def write(self, string): def flush(self): self.out.flush() - if value is not None: + if isinstance(value, o_helper): + self._logfile_read = value + elif value is not None: self._logfile_read = o_helper(self, value, getattr(self, "color", None)) - else: - self._logfile_read = None logfile_read = property(get_logfile_read, set_logfile_read) From dcbc2d1383c34258e86ab9dd972b44add6b41266 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 25 Mar 2019 14:32:25 -0500 Subject: [PATCH 657/947] devices: base: unset logfile_read for interact At some point, this started calling logfile_read in addition to std out so we would get two echos to the screen for each char. So let's unset our own helper while we do this. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ib33e2fe62b5d80f1feb7f55d10878263c231b276 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449079 Reviewed-by: <mgualco.contractor@libertyglobal.com> --- devices/base.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/devices/base.py b/devices/base.py index 97af8aff..7313b40d 100644 --- a/devices/base.py +++ b/devices/base.py @@ -122,6 +122,17 @@ def flush(self): logfile_read = property(get_logfile_read, set_logfile_read) + def interact(self, escape_character=chr(29), + input_filter=None, output_filter=None): + + o = self._logfile_read + self.logfile_read = None + ret = super(BaseDevice, self).interact(escape_character, + input_filter, output_filter) + self.logfile_read = o + + return ret + # perf related def parse_sar_iface_pkts(self, wan, lan): self.expect('Average.*idle\r\nAverage:\s+all(\s+[0-9]+.[0-9]+){6}\r\n') From 1d2aba15d6005236420860f69dbddb1bfce28e40 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 26 Mar 2019 13:21:59 -0500 Subject: [PATCH 658/947] bft: don't create empty files if not test specific log exists Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: If918066b5a82c6634da86309b2cba7c531fc60fd Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449255 --- bft | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/bft b/bft index 8e8a89b8..2650842a 100755 --- a/bft +++ b/bft @@ -328,12 +328,12 @@ def main(): add_to_combined_list(d.log_calls, device) for test in tests_to_run: - with open(os.path.join(config.output_dir, '%s.log' % test.__class__.__name__), 'w') as clog: - if hasattr(test, 'log') and test.log != "": + if hasattr(test, 'log') and test.log != "": + with open(os.path.join(config.output_dir, '%s.log' % test.__class__.__name__), 'w') as clog: clog.write(test.log) - add_to_combined_list(test.log, test.__class__.__name__) - if hasattr(test, 'log_calls'): - add_to_combined_list(test.log_calls, test.__class__.__name__) + add_to_combined_list(test.log, test.__class__.__name__) + if hasattr(test, 'log_calls'): + add_to_combined_list(test.log_calls, test.__class__.__name__) combined_list.sort(key=operator.itemgetter('time')) write_combined_log(combined_list, "all.log") From d40112aacb68547b4230b4f0f853c7c54df4a180 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 26 Mar 2019 14:08:33 -0500 Subject: [PATCH 659/947] bft: tests: log console for each test individually Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ib3ca80b0fb8ba9bc8e193c82e1e9d2558368b1df Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449256 --- bft | 1 - devices/base.py | 5 ++++- tests/linux_boot.py | 8 ++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/bft b/bft index 2650842a..247de23b 100755 --- a/bft +++ b/bft @@ -331,7 +331,6 @@ def main(): if hasattr(test, 'log') and test.log != "": with open(os.path.join(config.output_dir, '%s.log' % test.__class__.__name__), 'w') as clog: clog.write(test.log) - add_to_combined_list(test.log, test.__class__.__name__) if hasattr(test, 'log_calls'): add_to_combined_list(test.log_calls, test.__class__.__name__) diff --git a/devices/base.py b/devices/base.py index 7313b40d..22bb56e7 100644 --- a/devices/base.py +++ b/devices/base.py @@ -111,7 +111,10 @@ def write(self, string): tmp = '\n[%s]' % td.total_seconds() tmp += string[1:] string = tmp - self.parent.log += re.sub('\r\n', '\r\n[%s]' % td.total_seconds(), string) + to_log = re.sub('\r\n', '\r\n[%s]' % td.total_seconds(), string) + self.parent.log += to_log + if hasattr(self.parent, 'test_to_log'): + self.parent.test_to_log.log += "%s: " % re.sub('\r\n\[', '\r\n%s: [' % self.parent.test_prefix, to_log) def flush(self): self.out.flush() diff --git a/tests/linux_boot.py b/tests/linux_boot.py index b106a672..7a539523 100644 --- a/tests/linux_boot.py +++ b/tests/linux_boot.py @@ -59,7 +59,15 @@ def wlan_cleanup(self): def testWrapper(self): self.start_time = time.time() + for d in self.config.devices: + dev = getattr(self.config, d) + dev.test_to_log = self + dev.test_prefix = d.encode("utf8") + for c in board.consoles: + c.test_to_log = self + c.test_prefix = 'console-%s' % str(board.consoles.index(c) + 1) + if not c.isalive(): self.result_grade = "SKIP" print("\n\n=========== Test skipped! Board is not alive... =============") From 25e998e6524b69d35efc4b5cdbeb515124f0eec4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 26 Mar 2019 17:03:53 -0500 Subject: [PATCH 660/947] tests: lib: logging: move o_helper here This needs to be imported the same way for isinstance() to work on this object so let's move it to a library py Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ib2b475f5450dfdd7dc799d4e77c2307ddc45218d Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449268 --- devices/base.py | 30 +----------------------------- tests/lib/common.py | 4 ++-- tests/lib/logging.py | 29 +++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 31 deletions(-) diff --git a/devices/base.py b/devices/base.py index 22bb56e7..468773d8 100644 --- a/devices/base.py +++ b/devices/base.py @@ -6,7 +6,6 @@ # The full text can be found in LICENSE in the root directory. import pexpect -from termcolor import colored from datetime import datetime import re import os @@ -17,7 +16,7 @@ #from lib.regexlib import ValidIpv4AddressRegex, ValidIpv6AddressRegex from lib.regexlib import LinuxMacFormat -from lib.logging import LoggerMeta +from lib.logging import LoggerMeta, o_helper # To Do: maybe make this config variable BFT_DEBUG = "BFT_DEBUG" in os.environ @@ -91,33 +90,6 @@ def set_logfile_read(self, value): self._logfile_read = None return - class o_helper(object): - def __init__(self, parent, out, color): - self.color = color - self.out = out - self.parent = parent - self.first_write = True - def write(self, string): - if self.first_write: - self.first_write = False - string = "\r\n" + string - if self.color is not None: - self.out.write(colored(string, self.color)) - else: - self.out.write(string) - td = datetime.now()-self.parent.start - # check for the split case - if len(self.parent.log) > 1 and self.parent.log[-1] == '\r' and string[0] == '\n': - tmp = '\n[%s]' % td.total_seconds() - tmp += string[1:] - string = tmp - to_log = re.sub('\r\n', '\r\n[%s]' % td.total_seconds(), string) - self.parent.log += to_log - if hasattr(self.parent, 'test_to_log'): - self.parent.test_to_log.log += "%s: " % re.sub('\r\n\[', '\r\n%s: [' % self.parent.test_prefix, to_log) - def flush(self): - self.out.flush() - if isinstance(value, o_helper): self._logfile_read = value elif value is not None: diff --git a/tests/lib/common.py b/tests/lib/common.py index aa8abed9..74261666 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -60,7 +60,7 @@ def spawn_ssh_pexpect(ip, user='root', pw='bigfoot1', prompt=None, port="22", vi p.expect(p.prompt) from termcolor import colored - class o_helper(): + class o_helper_foo(): def __init__(self, color): self.color = color def write(self, string): @@ -69,7 +69,7 @@ def flush(self): o.flush() if color is not None: - p.logfile_read = o_helper(color) + p.logfile_read = o_helper_foo(color) else: p.logfile_read = o diff --git a/tests/lib/logging.py b/tests/lib/logging.py index 6f754a74..f9c40cf0 100644 --- a/tests/lib/logging.py +++ b/tests/lib/logging.py @@ -9,6 +9,8 @@ import types from datetime import datetime from devices.common import print_bold +from termcolor import colored +import re def now_short(_format = "%Y%m%d-%H%M%S"): """ @@ -62,3 +64,30 @@ def log_message(s, msg, header = False): else: print_bold(full_msg) s.log_to_file += now_short()+msg+"\r\n" + +class o_helper(object): + def __init__(self, parent, out, color): + self.color = color + self.out = out + self.parent = parent + self.first_write = True + def write(self, string): + if self.first_write: + self.first_write = False + string = "\r\n" + string + if self.color is not None: + self.out.write(colored(string, self.color)) + else: + self.out.write(string) + td = datetime.now()-self.parent.start + # check for the split case + if len(self.parent.log) > 1 and self.parent.log[-1] == '\r' and string[0] == '\n': + tmp = '\n[%s]' % td.total_seconds() + tmp += string[1:] + string = tmp + to_log = re.sub('\r\n', '\r\n[%s]' % td.total_seconds(), string) + self.parent.log += to_log + if hasattr(self.parent, 'test_to_log'): + self.parent.test_to_log.log += "%s: " % re.sub('\r\n\[', '\r\n%s: [' % self.parent.test_prefix, to_log) + def flush(self): + self.out.flush() From eacdac4c47d783a11110a067546579af17b80ff8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 26 Mar 2019 17:10:12 -0500 Subject: [PATCH 661/947] tests: lib: logging: fix error in logging Change-Id: I4e4fa14b57b078caa7e561814ce552cae4b9644f Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449269 --- tests/lib/logging.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/lib/logging.py b/tests/lib/logging.py index f9c40cf0..e5498eff 100644 --- a/tests/lib/logging.py +++ b/tests/lib/logging.py @@ -88,6 +88,6 @@ def write(self, string): to_log = re.sub('\r\n', '\r\n[%s]' % td.total_seconds(), string) self.parent.log += to_log if hasattr(self.parent, 'test_to_log'): - self.parent.test_to_log.log += "%s: " % re.sub('\r\n\[', '\r\n%s: [' % self.parent.test_prefix, to_log) + self.parent.test_to_log.log += re.sub('\r\n\[', '\r\n%s: [' % self.parent.test_prefix, to_log) def flush(self): self.out.flush() From 611ab019bb18fef7a791d864d1c5c408b63e8f55 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 25 Mar 2019 13:15:46 -0500 Subject: [PATCH 662/947] devices: casa_cmts: be more picky about matching casa hostname Also, try to consume some obviously bad items Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: If309ab6b6ba4b918060e1d6715bc8f77c9147a09 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449073 --- devices/casa_cmts.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 3689b877..9886f266 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -40,8 +40,9 @@ def __init__(self, def connect(self): try: - if 0 == self.expect(['(.*) login:', pexpect.TIMEOUT], timeout=10): - hostname = self.match.group(1).replace('\n', '').replace('\r', '') + self.expect([re.escape("Escape character is '^]'.'"), pexpect.TIMEOUT], timeout=10) + if 2 != self.expect(['\r\n(.*) login:', '(.*) login:', pexpect.TIMEOUT], timeout=10): + hostname = self.match.group(1).replace('\n', '').replace('\r', '').strip() self.prompt.append(hostname + '>') self.prompt.append(hostname + '#') self.prompt.append(hostname + '\(.*\)#') From f1f2200600f181ae48ac7e0f50e23eb72e5820b7 Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalanaiappan.contractor@libertyglobal.com> Date: Tue, 26 Mar 2019 21:04:23 +0530 Subject: [PATCH 663/947] devices: casa_cmts: added function to get erouter ipv4 and ipv6 get_ertr_ipv4() -to get the erouter ipv4 from cmts get_ertr_ipv6() -to get the erouter ipv6 from cmts Signed-off-by: Panimalar Palaniappan <ppalanaiappan.contractor@libertyglobal.com> --- devices/casa_cmts.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 9886f266..574eae7d 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -11,6 +11,7 @@ import base import re import connection_decider +from lib.regexlib import ValidIpv6AddressRegex, ValidIpv4AddressRegex class CasaCMTS(base.BaseDevice): ''' @@ -447,6 +448,26 @@ def check_docsis_mac_ip_provisioning_mode(self, index): if self.match != None: return result + def get_ertr_ipv4(self, mac): + self.sendline("show cable modem %s cpe" % mac) + self.expect(self.prompt) + ertr_ipv4 = re.search('(%s) .*(eRouter)'% ValidIpv4AddressRegex ,self.before) + if ertr_ipv4: + ipv4 =ertr_ipv4.group(0) + return ipv4 + else: + return None + + def get_ertr_ipv6(self, mac): + self.sendline("show cable modem %s cpe" % mac) + self.expect(self.prompt) + ertr_ipv6 = re.search(ValidIpv6AddressRegex ,self.before) + if ertr_ipv6: + ipv6 = ertr_ipv6.group() + return ipv6 + else: + return None + if __name__ == '__main__': import time From 7f2b82a5afc4abb89ff96d1ec660e505149a4345 Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Tue, 26 Mar 2019 18:59:23 +0530 Subject: [PATCH 664/947] tests: lib: wifi: Added get functions in wifi_stub --- tests/lib/wifi.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/lib/wifi.py b/tests/lib/wifi.py index ed7593f4..f39e8c6e 100644 --- a/tests/lib/wifi.py +++ b/tests/lib/wifi.py @@ -197,3 +197,25 @@ def set_bandwidth(self, *args, **kwargs): raise Exception("Not implemented!") def set_channel_number(self, *args, **kwargs): raise Exception("Not implemented!") + def get_wifi_enabled(self, *args, **kwargs): + raise Exception("Not implemented!") + def get_ssid(self, *args, **kwargs): + raise Exception("Not implemented!") + def get_security(self, *args, **kwargs): + raise Exception("Not implemented!") + def get_password(self, *args, **kwargs): + raise Exception("Not implemented!") + def get_channel_utilization(self, *args, **kwargs): + raise Exception("Not implemented!") + def get_operating_mode(self, *args, **kwargs): + raise Exception("Not implemented!") + def get_bandwidth(self, *args, **kwargs): + raise Exception("Not implemented!") + def get_broadcast(self, *args, **kwargs): + raise Exception("Not implemented!") + def get_channel_number(self, *args, **kwargs): + raise Exception("Not implemented!") + def prepare(): + pass + def cleanup(): + pass From 22bac1ca82616dfd376851042946a840642e12e2 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 21 Mar 2019 17:29:48 -0500 Subject: [PATCH 665/947] devices: debian_isc: add configurable options for setting DHCP timeouts Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I56bd85101036f2bec8e446b09cf3cd6854e5089c Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/448687 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Reviewed-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> --- devices/debian_isc.py | 49 +++++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 9565769a..9dbc5ef2 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -16,6 +16,10 @@ class DebianISCProvisioner(DebianBox): wan_cmts_provisioner = False standalone_provisioner = True + # default CM specific settings + default_lease_time = 604800 + max_lease_time = 604800; + def __init__(self, *args, **kwargs): self.cm_network = ipaddress.IPv4Network(kwargs.pop('cm_network', u"192.168.200.0/24")) @@ -218,27 +222,32 @@ class "HOST" { if 'extra_provisioning' not in board_config: # same defaults so we at least set tftp server to WAN board_config['extra_provisioning'] = {} - if 'mta_mac' in board_config: - board_config['extra_provisioning']["mta"] = \ - { "hardware ethernet": board_config['mta_mac'], - "options": { "domain-name": "\"sipcenter.com\"", - "domain-name-servers": "%s" % self.prov_ip, - "routers": "%s" % self.mta_gateway, - "log-servers": "%s" % self.prov_ip, - "host-name": "\"" + board_config['station'] + "\"" + + if 'mta_mac' in board_config and not 'mta' in board_config['extra_provisioning']: + board_config['extra_provisioning']["mta"] = \ + { "hardware ethernet": board_config['mta_mac'], + "options": { "domain-name": "\"sipcenter.com\"", + "domain-name-servers": "%s" % self.prov_ip, + "routers": "%s" % self.mta_gateway, + "log-servers": "%s" % self.prov_ip, + "host-name": "\"" + board_config['station'] + "\"" + } + } + + if 'cm_mac' in board_config and not 'cm' in board_config['extra_provisioning']: + board_config['extra_provisioning']["cm"] = \ + { "hardware ethernet": board_config['cm_mac'], + "options": { "domain-name-servers": "%s" % self.prov_ip, + "time-offset": "-25200" } - } - else: - board_config['extra_provisioning']["mta"] = {} - if 'mta_mac' in board_config: - board_config['extra_provisioning']["cm"] = \ - { "hardware ethernet": board_config['cm_mac'], - "options": { "domain-name-servers": "%s" % self.prov_ip, - "time-offset": "-25200" - } - } - else: - board_config['extra_provisioning']["cm"] = {} + } + + if 'erouter_mac' in board_config and not 'erouter' in board_config['extra_provisioning']: + board_config['extra_provisioning']["erouter"] = \ + { "hardware ethernet": board_config['erouter_mac'], + "default-lease-time" : self.default_lease_time, + "max-lease-time": self.max_lease_time + } cfg_file = "/etc/dhcp/dhcpd.conf-" + board_config['station'] From 5faf3c54ac3c27a0f19882464bceb3a3475baeb2 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Thu, 28 Mar 2019 13:22:40 +0100 Subject: [PATCH 666/947] devices: debian: install xxd in device (copy_file_to_server related) When copying a file to a server the device did not have xxd installed and the copy failed without an error message. This makes sure xxd is installed. Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/debian.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index f46c4405..ab6c1a94 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -241,7 +241,7 @@ def install_pkgs(self): self.sendline('ifconfig %s down' % self.iface_dut) self.expect(self.prompt) - pkgs = "isc-dhcp-server xinetd tinyproxy curl apache2-utils nmap psmisc vim-common tftpd-hpa pppoe isc-dhcp-server procps iptables lighttpd psmisc dnsmasq" + pkgs = "isc-dhcp-server xinetd tinyproxy curl apache2-utils nmap psmisc vim-common tftpd-hpa pppoe isc-dhcp-server procps iptables lighttpd psmisc dnsmasq xxd" def _install_pkgs(): self.sendline('apt-get update && apt-get -o DPkg::Options::="--force-confnew" -qy install %s' % pkgs) From e0468b73e2773dd804a12887153c099cd5add4c8 Mon Sep 17 00:00:00 2001 From: "prekumar.contractor" <prekumar.contractor@libertyglobal.com> Date: Thu, 28 Mar 2019 23:59:45 +0100 Subject: [PATCH 667/947] tests: lib: docsis: added method to check Config mode in CM - added _cm_configmode function to get the config mode based on 1. TLV code 2. InitializationMode - 0-Disable/Bridge, 1-IPv4, 2-IPv6 (DSlite), 3-IPv4 and IPv6(Dual) Signed-off-by: prekumar.contractor <prekumar.contractor@libertyglobal.com> --- tests/lib/docsis.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py index e27ac9ff..3890d9f7 100755 --- a/tests/lib/docsis.py +++ b/tests/lib/docsis.py @@ -157,6 +157,18 @@ def generic_re_sub(self, regex, sub): if saved_txt == self.txt: print("WARN: no regex sub was made for %s, to be replaced with %s" % (regex, sub)) + def _cm_configmode(self): + '''function to check config mode in CM''' + '''0-Disable/Bridge, 1-IPv4, 2-IPv6 (DSlite), 3-IPv4 and IPv6(Dual)''' + modeset = ['0x010100', '0x010101', '0x010102', '0x010103'] + for mode in range(0, len(modeset)): + tlv_check = "GenericTLV TlvCode 202 TlvLength 3 TlvValue "+modeset[mode] + initmode_check = "InitializationMode "+str(mode) + if (tlv_check in self.txt) or (initmode_check in self.txt): + return mode + + cm_configmode = property(_cm_configmode) + class mta_cfg(cm_cfg): '''MTA specific class for cfgs''' From b70d93dd452d180b5c91e36aac89b8ebd94b69b1 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Thu, 28 Mar 2019 22:01:22 +0100 Subject: [PATCH 668/947] tests: lib: regexlib: added telnet regex Matches: Trying x.x.x.x... Connected to x.x.x.x. Escape character is '^]'. Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/lib/regexlib.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/lib/regexlib.py b/tests/lib/regexlib.py index c3b5173c..0df553e5 100644 --- a/tests/lib/regexlib.py +++ b/tests/lib/regexlib.py @@ -52,3 +52,14 @@ #Grep hex string format of Mac address in SNMP output #Matches eg:F4 6D 04 61 74 E0 SNMPMacAddressRegex = '([0-9A-Z][0-9A-Z]\s){6}' + +''' +This will match the follwing: + +Trying x.x.x.x... +Connected to x.x.x.x. +Escape character is '^]'. + +''' +telnet_ipv4_conn="Trying "+ValidIpv4AddressRegex+"\.\.\.\r\nConnected to "+ValidIpv4AddressRegex+"\.\r\nEscape character is '\^]'\.((\r\n){,2})" + From 01e6256729fec17e9a383683aa2a2b65db627c55 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Thu, 28 Mar 2019 22:03:40 +0100 Subject: [PATCH 669/947] devices: local_serial_connection: uses telnet regex (and no '.*' matching) This avoids using the .* wildcard that may or may not swallow part of the string received. Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/local_serial_connection.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/devices/local_serial_connection.py b/devices/local_serial_connection.py index 1d3a4639..117dae0a 100644 --- a/devices/local_serial_connection.py +++ b/devices/local_serial_connection.py @@ -1,4 +1,5 @@ import pexpect +from lib.regexlib import telnet_ipv4_conn class LocalSerialConnection(): ''' @@ -15,7 +16,7 @@ def connect(self): command='/bin/bash', args=['-c', self.conn_cmd]) try: - result = self.device.expect([".*Connected.*", "----------------------------------------------------"]) + result = self.device.expect([telnet_ipv4_conn, "----------------------------------------------------"]) except pexpect.EOF as e: raise Exception("Board is in use (connection refused).") From 39266668426a6ff0d22c20a1e789c6aa63005ecf Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 1 Apr 2019 16:44:23 -0500 Subject: [PATCH 670/947] tests: iperf3: add ipv6 tests Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ib81e6ebc64427d74be17a2145a47c34381006db9 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449823 --- tests/iperf3_test.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/tests/iperf3_test.py b/tests/iperf3_test.py index fdf40d0d..e1a9ae41 100644 --- a/tests/iperf3_test.py +++ b/tests/iperf3_test.py @@ -22,6 +22,7 @@ class iPerf3Test(rootfs_boot.RootFSBootTest): time = 60 server_port = "5201" client = lan + target_ip = None def runTest(self): installers.install_iperf3(wan) @@ -31,10 +32,12 @@ def runTest(self): wan.expect('-----------------------------------------------------------') wan.expect('-----------------------------------------------------------') + if self.target_ip == None: + self.target_ip = wan.gw board.collect_stats(stats=['mpstat']) - self.client.sendline('iperf3 %s -c %s -P5 -t %s -i 0 -p %s' % (self.opts, wan.gw, self.time, self.server_port)) + self.client.sendline('iperf3 %s -c %s -P5 -t %s -i 0 -p %s' % (self.opts, self.target_ip, self.time, self.server_port)) self.client.expect(prompt, timeout=self.time+10) sender = re.findall('SUM.*Bytes\s*(.*/sec).*sender', self.client.before)[-1] @@ -78,6 +81,17 @@ class iPerf3RTest(iPerf3Test): opts = "-R" +class iPerf3_v6Test(iPerf3Test): + '''iPerf3 ipv6 generic performance tests''' + + opts = "-6" + target_ip = wan.gwv6 + +class iPerf3R_v6Test(iPerf3Test): + '''iPerf3 ipv6 reverse generic performance tests''' + + opts = "-6 -R" + target_ip = wan.gwv6 class iPerf3Test2nd(iPerf3Test): '''iPerf3 on second server port''' From 5378036b8c87bd0a77e7666e01cbcf3990763fbc Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 28 Mar 2019 17:32:20 -0500 Subject: [PATCH 671/947] devices: qemu: clear pexpect so it can run again Fixes this issue: The pid member must be None. Traceback (most recent call last): File "./bft", line 132, in main start=start) File "/home/mattsm/git/boardfarm/devices/__init__.py", line 113, in board_decider dynamic_dev = get_device(model, **kwargs) File "/home/mattsm/git/boardfarm/devices/__init__.py", line 99, in get_device return dev(model, **kwargs) File "/home/mattsm/git/boardfarm/devices/../tests/lib/logging.py", line 48, in wrapper ret = func(*args, **kwargs) File "/home/mattsm/git/boardfarm/devices/qemu.py", line 104, in __init__ args=["-c", cmd], env=env) File "/usr/local/lib/python2.7/dist-packages/pexpect/pty_spawn.py", line 197, in __init__ self._spawn(command, args, preexec_fn, dimensions) File "/usr/local/lib/python2.7/dist-packages/pexpect/pty_spawn.py", line 276, in _spawn assert self.pid is None, 'The pid member must be None.' Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Iebcbeacaede46428d2d8b38a9b00fac05622a094 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449476 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/qemu.py | 1 + 1 file changed, 1 insertion(+) diff --git a/devices/qemu.py b/devices/qemu.py index a0ffda05..fc1e1e43 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -95,6 +95,7 @@ def temp_download(url): args=["-c", cmd], env=env) self.expect(pexpect.TIMEOUT, timeout=1) except pexpect.EOF as e: + self.pid = None if 'failed to initialize KVM: Device or resource busy' in self.before or \ 'failed to initialize KVM: Cannot allocate memory' in self.before: cmd = cmd.replace('--enable-kvm ', '') From 53a2505de967e5e3de792fb280b76b45f1b4b03f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 29 Mar 2019 12:00:56 -0700 Subject: [PATCH 672/947] bft-node: Dockerfile: add note about apparmor causing issues Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ib47aad3d00374b6892e4ca0da785c99e294cc4d2 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449589 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- bft-node/Dockerfile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bft-node/Dockerfile b/bft-node/Dockerfile index 2a695da5..d26eed73 100755 --- a/bft-node/Dockerfile +++ b/bft-node/Dockerfile @@ -30,6 +30,10 @@ RUN apt-get update && \ vim-common \ xinetd +# NOTE: apparmor will interfere with dhclient, disable on HOST by running: +# sudo service apparmor stop +# sudo service apparmor teardown + RUN mkdir /var/run/sshd RUN sed -i 's/.*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config From e2428305940a050c0ae495df563ccd53c26ee822 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 22 Mar 2019 17:01:04 -0500 Subject: [PATCH 673/947] devices: casa_cmts: add helper to get center channel for particular mac domain This still returns out hard coded vaue until we finish fixing the function This will extract the center channel for a mac domain, useful if you need to drive a CM to a particular mac domain Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I5db0b27a7f3cb1e0e18b68380820d1feaf1c9a5b Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449238 --- devices/casa_cmts.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 574eae7d..4c554c46 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -29,6 +29,7 @@ def __init__(self, self.username = kwargs.get('username', 'root') self.password = kwargs.get('password', 'casa') self.password_admin = kwargs.get('password_admin', 'casa') + self.mac_domain = kwargs.get('mac_domain', None) if conn_cmd is None: # TODO: try to parse from ipaddr, etc @@ -468,6 +469,30 @@ def get_ertr_ipv6(self, mac): else: return None + def get_center_freq(self, mac_domain=None): + return "512000000" + + # TODO: fix below + if mac_domain is None: + mac_domain = self.mac_domain + + assert mac_domain is not None, "get_center_freq() requires mac_domain to be set" + + self.sendline('show interface docsis-mac %s | inc downstream\s1\s' % mac_domain) + self.expect_exact('show interface docsis-mac %s | inc downstream\s1\s' % mac_domain) + self.expect(self.prompt) + assert 'downstream 1 interface qam' in self.before + + major, minor, sub = self.before.strip().split(' ')[-1].split('/') + + self.sendline('show interface qam %s/%s | inc channel\s%s\sfreq' % (major, minor, sub)) + self.expect_exact('show interface qam %s/%s | inc channel\s%s\sfreq' % (major, minor, sub)) + + self.expect(self.prompt) + assert 'channel %s frequency' % sub in self.before + + return str(int(self.before.split(' ')[-1])) + if __name__ == '__main__': import time From 4b2652ad060e0df5211f0cc9964d3d74f50a669b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 29 Mar 2019 10:47:53 -0700 Subject: [PATCH 674/947] deploy-boardfarm-nodes.sh: add option for macvtap This is much simplier than vlan devices in bridges, seems to "just work" esp. for IPv6 NDP. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ib36c32c094affad1c22be14f4c2ba3f48a7f1f70 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449577 --- deploy-boardfarm-nodes.sh | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 9291afe5..6c572cbc 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -97,6 +97,38 @@ create_container_eth1_bridged_vlan () { docker exec $cname ip link set eth1 up } +# eth0 is docker private network, eth1 is vlan on specific interface within a bridge +create_container_eth1_macvtap_vlan () { + local vlan=$1 + local offset=${2:-0} + + # verify settings are correct + # TODO: verify the set + sudo sysctl -w net.bridge.bridge-nf-call-arptables=0 + sudo sysctl -w net.bridge.bridge-nf-call-ip6tables=0 + sudo sysctl -w net.bridge.bridge-nf-call-iptables=0 + + cname=bft-node-$IFACE-$vlan-$offset + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -p $(( 5000 + $offset + $vlan )):22 \ + -p $(( 8000 + $offset + $vlan )):8080 \ + -d $BF_IMG /usr/sbin/sshd -D + + cspace=$(docker inspect --format '{{.State.Pid}}' $cname) + + # create uplink vlan on IFACE + sudo ip link add link $IFACE name $IFACE.$vlan type vlan id $vlan + sudo ip link set dev $IFACE.$vlan address $(random_private_mac $vlan) + sudo ip link set $IFACE.$vlan up + + # add veth for new container (one per container vs. the two above are shared) + sudo ip link add link $IFACE.$vlan name eth1 type macvtap + sudo ip link set netns $cspace dev eth1 + + docker exec $cname ip link set eth1 up +} + # eth0/eth1 are both dhcp on the main network create_container_eth1_dhcp () { local vlan=$1 From 0321839e0b909ea678fae27c4112e80697d36bcb Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 28 Mar 2019 15:07:52 -0500 Subject: [PATCH 675/947] devices: casa_cmts: fix expect of telnet foo The original regex was wrong, then expect_exact can't expect pexpect.TIMEOUT so let's wrap it in a try/except Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I7c692cc80866035322cde09c7596c6b3600dcd2c Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449492 --- devices/casa_cmts.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 4c554c46..d4f9475e 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -42,7 +42,10 @@ def __init__(self, def connect(self): try: - self.expect([re.escape("Escape character is '^]'.'"), pexpect.TIMEOUT], timeout=10) + try: + self.expect_exact("Escape character is '^]'.", timeout=30) + except: + pass if 2 != self.expect(['\r\n(.*) login:', '(.*) login:', pexpect.TIMEOUT], timeout=10): hostname = self.match.group(1).replace('\n', '').replace('\r', '').strip() self.prompt.append(hostname + '>') From bad19eee0b62fcde65a611f6dffdce3b35ac0625 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 29 Mar 2019 15:22:39 -0500 Subject: [PATCH 676/947] devices: debian: fix inverted logic for dhcp server start Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I16c3d7df2db755d3587936bdc3bf09e3a98c583b Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449820 --- devices/debian.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index ab6c1a94..afabcbfc 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -491,7 +491,7 @@ def setup_as_wan_gateway(self): self.expect(self.prompt) self.sendline('ifconfig %s up' % self.iface_dut) self.expect(self.prompt) - if not self.wan_dhcp_server: + if self.wan_dhcp_server: self.setup_dhcp_server() # configure routing From 1798aedc8fb2a6bc5e1464c952616fe77a69f257 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 28 Mar 2019 14:46:09 -0500 Subject: [PATCH 677/947] tests: lib: logging: tests/ should not import from devices/ It should be one way only, devices import from tests. We can move print_bold to be in tests/lib/ Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ifcd78b33b67b837bf7aaca0ad3a39945afd6a377 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449490 --- tests/lib/logging.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/lib/logging.py b/tests/lib/logging.py index e5498eff..da88f236 100644 --- a/tests/lib/logging.py +++ b/tests/lib/logging.py @@ -8,7 +8,6 @@ import time import types from datetime import datetime -from devices.common import print_bold from termcolor import colored import re @@ -59,10 +58,10 @@ def log_message(s, msg, header = False): line_sep = ('=' * (len(msg))) full_msg = "\n\t\t"+line_sep+"\n\t\t"+msg+"\n\t\t"+line_sep+"\n" if header: - print_bold("\n\n\t\t\t***"+msg+"***\n\n") + print("\n\n\t\t\t***"+msg+"***\n\n") s.log_to_file += now_short()+full_msg+"\r\n" else: - print_bold(full_msg) + print(full_msg) s.log_to_file += now_short()+msg+"\r\n" class o_helper(object): From ea5e2dbdb25b16329f1be37275230716158e37cd Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 28 Mar 2019 14:57:33 -0500 Subject: [PATCH 678/947] devices: casa_cmts: connect is called in __init__ now Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I9dcd50b597aca9d0c00bf2cc0f4641d2d895df64 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449491 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/casa_cmts.py | 1 - 1 file changed, 1 deletion(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index d4f9475e..eaa9ccb0 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -501,7 +501,6 @@ def get_center_freq(self, mac_domain=None): connection_type = "local_cmd" cmts = CasaCMTS(conn_cmd=sys.argv[1], connection_type=connection_type) - cmts.connect() # TODO: example for now, need to parse args if False: From afb8a3bf53938cdd53849164b55c9c928efcd1f6 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 28 Mar 2019 15:08:10 -0500 Subject: [PATCH 679/947] tests: lib: logging: run without start set This fails if device was created without bft Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I3241a72b2461fa2ae875207a31839c7c3ec7d29d Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449493 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/lib/logging.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/lib/logging.py b/tests/lib/logging.py index da88f236..f5a1f5a3 100644 --- a/tests/lib/logging.py +++ b/tests/lib/logging.py @@ -78,6 +78,8 @@ def write(self, string): self.out.write(colored(string, self.color)) else: self.out.write(string) + if not hasattr(self.parent, 'start'): + return td = datetime.now()-self.parent.start # check for the split case if len(self.parent.log) > 1 and self.parent.log[-1] == '\r' and string[0] == '\n': From 669169b013a0694cf22f7fc3bb55d8025d591fd1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 28 Mar 2019 18:15:46 -0500 Subject: [PATCH 680/947] devices: casa_cmts: increase time to reboot slightly Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I59358a2457598abfa5b7f4eadf18471e6e014e54 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449495 --- devices/casa_cmts.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index eaa9ccb0..d0bfc04c 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -190,7 +190,7 @@ def reset(self): self.sendline('YES') self.expect(self.prompt) self.sendline('system reboot') - if 0 == self.expect(['Proceed with reload\? please type YES to confirm :', 'starting up console shell ...'], timeout=150): + if 0 == self.expect(['Proceed with reload\? please type YES to confirm :', 'starting up console shell ...'], timeout=180): self.sendline('YES') self.expect('starting up console shell ...', timeout=150) self.sendline() From 0f243543cb487073d2a3462f6847b484cfc3fdbe Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 28 Mar 2019 18:16:22 -0500 Subject: [PATCH 681/947] devices: casa_cmts: add more than one secondary ip for add_ip_bundle Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I57806eda730291f7c3f76a14881da1147ee4691a Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449496 --- devices/casa_cmts.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index d0bfc04c..582492ec 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -238,13 +238,14 @@ def set_iface_ipaddr(self, iface, ipaddr): self.sendline('exit') self.expect(self.prompt) - def add_ip_bundle(self, index, ip1, ip2, helper_ip): + def add_ip_bundle(self, index, helper_ip, ip, secondary_ips=[]): self.sendline('interface ip-bundle %s' % index) self.expect(self.prompt) - self.sendline('ip address %s 255.255.255.0' % ip1) - self.expect(self.prompt) - self.sendline('ip address %s 255.255.255.0 secondary' % ip2) + self.sendline('ip address %s 255.255.255.0' % ip) self.expect(self.prompt) + for ip2 in secondary_ips: + self.sendline('ip address %s 255.255.255.0 secondary' % ip2) + self.expect(self.prompt) self.sendline('cable helper-address %s cable-modem' % helper_ip) self.expect(self.prompt) self.sendline('cable helper-address %s mta' % helper_ip) @@ -519,7 +520,7 @@ def get_center_freq(self, mac_domain=None): cmts.set_iface_ipaddr('eth 0', '172.19.17.136 255.255.255.192') cmts.set_iface_ipaddr('gige 0', '192.168.3.222 255.255.255.0') # TODO: add third network for open - cmts.add_ip_bundle(1, "192.168.200.1", "192.168.201.1", "192.168.3.1") + cmts.add_ip_bundle(1, "192.168.3.1", "192.168.200.1", secondary_ips=["192.168.201.1", "192.168.202.1"]) cmts.add_route("0.0.0.0", "0", "192.168.3.1") From cf7beaa3c23c098d444ba78fa923e64df8f27ce1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 28 Mar 2019 15:09:33 -0500 Subject: [PATCH 682/947] devices: casa_cmts: add function to add ipv6 route This can be run standalone: PYTHONPATH=$PWD:$PWD/tests:$PWD/devices python ./devices/casa_cmts.py 'telnet 172.19.17.136' setup_ipv6 Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Iadd6760f4adcba3fd8adea57b463c37914cf67e7 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449494 --- devices/casa_cmts.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 582492ec..a442e71e 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -259,6 +259,10 @@ def add_route(self, net, mask, gw): self.sendline('route net %s %s gw %s' % (net, mask, gw)) self.expect(self.prompt) + def add_route6(self, net, gw): + self.sendline('route6 net %s gw %s' % (net, gw)) + self.expect(self.prompt) + def get_qam_module(self): self.sendline('show system') self.expect(self.prompt) @@ -503,6 +507,11 @@ def get_center_freq(self, mac_domain=None): connection_type = "local_cmd" cmts = CasaCMTS(conn_cmd=sys.argv[1], connection_type=connection_type) + if len(sys.argv) > 2 and sys.argv[2] == "setup_ipv6": + print "Setting up IPv6 address, bundles, routes, etc" + cmts.add_route6('::/0', '2001:dead:beef:1::1') + sys.exit(0) + # TODO: example for now, need to parse args if False: cmts.mirror_traffic() From 67f7307ad7ac1c83055968cf1657359925535f40 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 28 Mar 2019 20:58:44 -0500 Subject: [PATCH 683/947] devices: casa_cmts: add function to add ipv6 bundles Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I68aadfb91460d9b868aaeb9173466a655f92ecb9 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449557 --- devices/casa_cmts.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index a442e71e..c9fc6be5 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -255,6 +255,19 @@ def add_ip_bundle(self, index, helper_ip, ip, secondary_ips=[]): self.sendline('exit') self.expect(self.prompt) + def add_ipv6_bundle_addrs(self, index, helper_ip, ip, secondary_ips=[]): + self.sendline('interface ip-bundle %s' % index) + self.expect(self.prompt) + self.sendline('ipv6 address %s' % ip) + self.expect(self.prompt) + for ip2 in secondary_ips: + self.sendline('ipv6 address %s secondary' % ip2) + self.expect(self.prompt) + self.sendline('cable helper-ipv6-address %s' % helper_ip) + self.expect(self.prompt) + self.sendline('exit') + self.expect(self.prompt) + def add_route(self, net, mask, gw): self.sendline('route net %s %s gw %s' % (net, mask, gw)) self.expect(self.prompt) @@ -510,6 +523,8 @@ def get_center_freq(self, mac_domain=None): if len(sys.argv) > 2 and sys.argv[2] == "setup_ipv6": print "Setting up IPv6 address, bundles, routes, etc" cmts.add_route6('::/0', '2001:dead:beef:1::1') + cmts.add_ipv6_bundle_addrs(1, "2001:dead:beef:1::1", "2001:dead:beef:2::cafe/64", + secondary_ips=["2001:dead:beef:3::cafe/64", "2001:dead:beef:4::cafe/64"]) sys.exit(0) # TODO: example for now, need to parse args From 0678086bc6ecfa220b3db9a7369066ff703e2cde Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 28 Mar 2019 21:13:58 -0500 Subject: [PATCH 684/947] devices: casa_cmts: add function to add ipv6 addr to iface Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I499c5c4854661a9478f86143a7085d1119c17b03 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449558 --- devices/casa_cmts.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index c9fc6be5..14494008 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -238,6 +238,16 @@ def set_iface_ipaddr(self, iface, ipaddr): self.sendline('exit') self.expect(self.prompt) + def set_iface_ipv6addr(self, iface, ipaddr): + self.sendline('interface %s' % iface) + self.expect(self.prompt) + self.sendline('ipv6 address %s' % ipaddr) + self.expect(self.prompt) + self.sendline('no shutdown') + self.expect(self.prompt) + self.sendline('exit') + self.expect(self.prompt) + def add_ip_bundle(self, index, helper_ip, ip, secondary_ips=[]): self.sendline('interface ip-bundle %s' % index) self.expect(self.prompt) @@ -522,6 +532,7 @@ def get_center_freq(self, mac_domain=None): if len(sys.argv) > 2 and sys.argv[2] == "setup_ipv6": print "Setting up IPv6 address, bundles, routes, etc" + cmts.set_iface_ipv6addr('gige 0', '2001:dead:beef:1::cafe/64') cmts.add_route6('::/0', '2001:dead:beef:1::1') cmts.add_ipv6_bundle_addrs(1, "2001:dead:beef:1::1", "2001:dead:beef:2::cafe/64", secondary_ips=["2001:dead:beef:3::cafe/64", "2001:dead:beef:4::cafe/64"]) From 5afd1b6e440e4be8e5991b6406da0a8a3e7534c4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 29 Mar 2019 12:53:07 -0500 Subject: [PATCH 685/947] devices: debian: add basics for setting ipv6 addr on iface_dut Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ib6eabfa6b698d43d44b03edc4f301cf54bbade3f Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449580 --- devices/debian.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index afabcbfc..6342705b 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -41,6 +41,10 @@ class DebianBox(base.BaseDevice): iface_dut = "eth1" gw = None + # TODO: does this need to be calculated? + gwv6 = ipaddress.IPv6Address(u"2001:dead:beef:1::2") + ipv6_prefix = 64 + def __init__(self, *args, **kwargs): @@ -124,6 +128,8 @@ def __init__(self, if opt.startswith('wan-static-ip:'): self.gw = ipaddress.IPv4Address(opt.replace('wan-static-ip:', '')) self.static_ip = True + if opt.startswith('wan-static-ipv6:'): + self.gwv6 = ipaddress.IPv6Address(opt.replace('wan-static-ipv6:', '')) if opt.startswith('wan-static-route:'): self.static_route = opt.replace('wan-static-route:', '').replace('-', ' via ') # TODO: remove wan-static-route at some point above @@ -330,7 +336,6 @@ def start_tftp_server(self): if self.gw != eth1_addr: self.sendline('ifconfig %s %s' % (self.iface_dut, getattr(self, 'gw', '192.168.0.1'))) self.expect(self.prompt) - self.sendline('ifconfig %s up' % self.iface_dut) self.expect(self.prompt) @@ -413,6 +418,8 @@ def gzip_str(string_): self.logfile_read = saved_logfile_read def configure(self, kind, config=[]): + # TODO: wan needs to enable on more so we can route out? + self.enable_ipv6(self.iface_dut) self.install_pkgs() self.start_sshd_server() if kind == "wan_device": @@ -469,9 +476,6 @@ def setup_as_wan_gateway(self): self.sendline('killall iperf ab hping3') self.expect(self.prompt) - self.sendline('\nsysctl net.ipv6.conf.all.disable_ipv6=0') - self.expect('sysctl ') - self.expect(self.prompt) # potential cleanup so this wan device works self.sendline('iptables -t nat -X') @@ -494,9 +498,19 @@ def setup_as_wan_gateway(self): if self.wan_dhcp_server: self.setup_dhcp_server() + if self.gwv6 is not None: + # we are bypass this for now (see http://patchwork.ozlabs.org/patch/117949/) + self.sendline('sysctl -w net.ipv6.conf.%s.accept_dad=0' % self.iface_dut) + self.expect(self.prompt) + self.sendline('ip -6 addr add %s/%s dev %s' % (self.gwv6, self.ipv6_prefix, self.iface_dut)) + self.expect(self.prompt) + # configure routing self.sendline('sysctl net.ipv4.ip_forward=1') self.expect(self.prompt) + self.sendline('sysctl net.ipv6.conf.all.forwarding=0') + self.expect(self.prompt) + if self.wan_no_eth0 or self.wan_dhcp: wan_uplink_iface = self.iface_dut else: @@ -523,8 +537,6 @@ def setup_as_lan_device(self): self.sendline('\niptables -t nat -X') self.expect('iptables -t') self.expect(self.prompt) - self.sendline('sysctl net.ipv6.conf.all.disable_ipv6=0') - self.expect(self.prompt) self.sendline('sysctl net.ipv4.ip_forward=1') self.expect(self.prompt) self.sendline('iptables -t nat -F; iptables -t nat -X') From 81fbe677a7c13c414a39f61e943b31cea4b23ef9 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 29 Mar 2019 12:54:41 -0500 Subject: [PATCH 686/947] devices: debian_isc: set ipv6 address for iface_dut Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ie2f39c9fd9d1e683b4b3c6437aa6713402dd18f6 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449581 --- devices/debian_isc.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 9dbc5ef2..504e890a 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -32,6 +32,8 @@ def __init__(self, *args, **kwargs): self.prov_gateway = ipaddress.IPv4Address(kwargs.pop('prov_gateway', u"192.168.3.222")) self.prov_ip = ipaddress.IPv4Address(kwargs.pop('prov_ip', u"192.168.3.1")) + self.prov_ipv6 = ipaddress.IPv6Address(kwargs.pop('prov_ipv6', u"2001:dead:beef:1::1")) + if 'options' in kwargs: options = [x.strip() for x in kwargs['options'].split(',')] for opt in options: @@ -44,6 +46,7 @@ def __init__(self, *args, **kwargs): self.standalone_provisioner = False self.gw = self.prov_ip + self.gwv6 = self.prov_ipv6 self.nw = self.prov_network return super(DebianISCProvisioner, self).__init__(*args, **kwargs) @@ -325,10 +328,16 @@ def provision_board(self, board_config): self.sendline('sysctl -w net.ipv6.conf.%s.accept_dad=0' % self.iface_dut) self.expect(self.prompt) if not self.wan_no_eth0: + self.sendline('ifconfig %s down; ifconfig %s up' % (self.iface_dut, self.iface_dut)) + self.expect(self.prompt) self.sendline('ifconfig %s %s' % (self.iface_dut, self.gw)) self.expect(self.prompt) - #self.sendline('ifconfig %s inet6 add 2001:ed8:77b5:3::101/64' % self.iface_dut) - #self.expect(self.prompt) + + self.enable_ipv6(self.iface_dut) + if self.gwv6 is not None: + self.sendline('ip -6 addr add %s/%s dev %s' % (self.gwv6, self.ipv6_prefix, self.iface_dut)) + self.expect(self.prompt) + # TODO: specify these via config for nw in [self.cm_network, self.mta_network, self.open_network]: self.sendline('ip route add %s via %s' % (nw, self.prov_gateway)) From 596e037c8097e06195f9a347f5690bca118c63fc Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 29 Mar 2019 13:34:44 -0500 Subject: [PATCH 687/947] devices: debian_isc: add routes back to CMTS from provisioner These are the cm, mta, and erouter subnets Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I0dcd0876d28206c93e209b190bf05e6c5e4bea60 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449587 --- devices/debian_isc.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 504e890a..f2712218 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -33,6 +33,10 @@ def __init__(self, *args, **kwargs): self.prov_ip = ipaddress.IPv4Address(kwargs.pop('prov_ip', u"192.168.3.1")) self.prov_ipv6 = ipaddress.IPv6Address(kwargs.pop('prov_ipv6', u"2001:dead:beef:1::1")) + self.cm_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('cm_gateway', u"2001:dead:beef:2::cafe")) + self.mta_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('mta_gateway', u"2001:dead:beef:3::cafe")) + self.open_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('open_gateway', u"2001:dead:beef:4::cafe")) + self.prov_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('prov_gateway', u"2001:dead:beef:1::cafe")) if 'options' in kwargs: options = [x.strip() for x in kwargs['options'].split(',')] @@ -338,16 +342,14 @@ def provision_board(self, board_config): self.sendline('ip -6 addr add %s/%s dev %s' % (self.gwv6, self.ipv6_prefix, self.iface_dut)) self.expect(self.prompt) - # TODO: specify these via config for nw in [self.cm_network, self.mta_network, self.open_network]: self.sendline('ip route add %s via %s' % (nw, self.prov_gateway)) self.expect(self.prompt) - # TODO: iface_dut needs an ipv6 addr - # sysctl net.ipv6.conf.%s.disable_ipv6=0 % iface_dut - #self.sendline('ip -6 route add 2001:ed8:77b5:2000::/64 via 2001:ed8:77b5:3::222 dev %s metric 1024' % self.iface_dut) - #self.expect(self.prompt) - #self.sendline('ip -6 route add 2001:ed8:77b5:2001::/64 via 2001:ed8:77b5:3::222 dev %s metric 1024' % self.iface_dut) - #self.expect(self.prompt) + + for nw in [self.cm_gateway_v6, self.mta_gateway_v6, self.open_gateway_v6]: + self.sendline('ip -6 route add %s/%s via %s dev %s' % (nw, self.ipv6_prefix, self.prov_gateway_v6, self.iface_dut)) + self.expect(self.prompt) + self.update_cmts_isc_dhcp_config(board_config) self.sendline('cat /etc/dhcp/dhcpd.conf') self.expect(self.prompt) From 6d20510d90ca13f25e0ecc88e4efe9c1e3f01d1b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 29 Mar 2019 14:10:52 -0500 Subject: [PATCH 688/947] devices: debian_isc: refactor dhcp4 and dhcp6 config functions NOTE: no change and still not starting DHCPv6 Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I07a21bce39fc2d583f2c0e066844abb6bc542d94 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449821 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/debian_isc.py | 208 +++++++++++++++++++++++++----------------- 1 file changed, 123 insertions(+), 85 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index f2712218..7f07ab40 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -54,10 +54,95 @@ def __init__(self, *args, **kwargs): self.nw = self.prov_network return super(DebianISCProvisioner, self).__init__(*args, **kwargs) - def update_cmts_isc_dhcp_config(self, board_config): + def setup_dhcp6_config(self, board_config): + to_send = '''cat > /etc/dhcp/dhcpd6.conf-''' + board_config['station'] + '''.master << EOF +preferred-lifetime 7500; +option dhcp-renewal-time 3600; +option dhcp-rebinding-time 5400; +allow leasequery; +option dhcp6.name-servers 2001:4860:4860::8888; +option dhcp6.domain-search "test.example.com","example.com"; +option dhcp6.info-refresh-time 21600; +option dhcp6.ia_pd code 25 = { integer 32, integer 32, integer 32, integer 16, integer 16, integer 32, integer 32, integer 8, ip6-address}; +option dhcp6.gateway code 32003 = ip6-address; +option space docsis code width 2 length width 2 hash size 100; +option docsis.tftp-servers code 32 = array of ip6-address; +option docsis.configuration-file code 33 = text; +option docsis.syslog-servers code 34 = array of ip6-address; +#option docsis.device-id code 36 = string; +option docsis.time-servers code 37 = array of ip6-address; +option docsis.time-offset code 38 = signed integer 32; +option vsio.docsis code 4491 = encapsulate docsis; + +subnet6 2001:dead:beef:2::cafe::/64 { + range6 2001:dead:beef:2::10 2001:dead:beef:2::100; + interface %s; + option docsis.tftp-servers 2001:ed8:77b5:3::101; + option docsis.time-servers 2001:ed8:77b5:3::101; + option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; + option docsis.syslog-servers 2001:ed8:77b5:3::101 ; + option docsis.time-offset 5000; +} +subnet6 2001:dead:beef:3::cafe::/64 { + range6 2001:dead:beef:3::10 2001:dead:beef:3::100; + interface %s; + option docsis.tftp-servers 2001:ed8:77b5:3::101; + option docsis.time-servers 2001:ed8:77b5:3::101; + option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; + option docsis.syslog-servers 2001:ed8:77b5:3::101; + option docsis.time-offset 5000; +} +subnet6 2001:dead:beef:4::cafe::/64 { + range6 2001:dead:beef:4::10 2001:dead:beef:4::cafe::100; + interface %s; + option dhcp6.ia_pd 1234 20000 40000 26 25 30000 60000 64 2001:ed8:77b5:4::; + option dhcp6.solmax-rt 240; + option dhcp6.inf-max-rt 360; +} +EOF''' % (self.iface_dut, self.iface_dut, self.iface_dut) + + self.sendline(to_send) + self.expect(self.prompt) + + self.sendline('rm /etc/dhcp/dhcpd6.conf.''' + board_config['station']) + self.expect(self.prompt) + + cfg_file = "/etc/dhcp/dhcpd6.conf-" + board_config['station'] + + # zero out old config + self.sendline('cp /dev/null %s' % cfg_file) + self.expect(self.prompt) + + # TODO: make ipv6 specific + # insert tftp server, TODO: how to clean up? + #board_config['extra_provisioning']['cm']['next-server'] = tftp_server + #board_config['extra_provisioning']['mta']['next-server'] = tftp_server + + # there is probably a better way to construct this file... + #for dev, cfg_sec in board_config['extra_provisioning'].iteritems(): + # self.sendline("echo 'host %s-%s {' >> %s" % (dev, board_config['station'], cfg_file)) + # for key, value in cfg_sec.iteritems(): + # if key == "options": + # for k2, v2 in value.iteritems(): + # self.sendline("echo ' option %s %s;' >> %s" % (k2, v2, cfg_file)) + # self.expect(self.prompt) + # else: + # self.sendline("echo ' %s %s;' >> %s" % (key, value, cfg_file)) + # self.expect(self.prompt) + # self.sendline("echo '}' >> %s" % cfg_file) + + self.sendline('mv ' + cfg_file + ' /etc/dhcp/dhcpd6.conf.' + board_config['station']) + self.expect(self.prompt) + # combine all configs into one + self.sendline("cat /etc/dhcp/dhcpd6.conf.* >> /etc/dhcp/dhcpd6.conf-" + board_config['station'] + ".master") + self.expect(self.prompt) + self.sendline("mv /etc/dhcp/dhcpd6.conf-" + board_config['station'] + ".master /etc/dhcp/dhcpd6.conf") + self.expect(self.prompt) + + + def setup_dhcp_config(self, board_config): tftp_server = self.tftp_device.tftp_server_ip_int() - # TODO: lots of hard coded values... all need to go away to_send = '''cat > /etc/dhcp/dhcpd.conf-''' + board_config['station'] + '''.master << EOF log-facility local7; option log-servers ###LOG_SERVER###; @@ -172,90 +257,9 @@ class "HOST" { self.sendline(to_send) self.expect(self.prompt) - # The board will ignore this unless the docsis-mac is set to ipv6 - # That needs to be done manually as well as copying any CM cfg files - # to the provisioner (e.g. still not fully automated) - # TODO: fix hard coded tftp ipv6 addr -# self.sendline('''cat > /etc/dhcp/dhcpd6.conf-''' + board_config['station'] + '''.master << EOF -#preferred-lifetime 7500; -#option dhcp-renewal-time 3600; -#option dhcp-rebinding-time 5400; -#allow leasequery; -#option dhcp6.name-servers 2001:4860:4860::8888; -#option dhcp6.domain-search "test.example.com","example.com"; -#option dhcp6.info-refresh-time 21600; -#option dhcp6.ia_pd code 25 = { integer 32, integer 32, integer 32, integer 16, integer 16, integer 32, integer 32, integer 8, ip6-address}; -#option dhcp6.gateway code 32003 = ip6-address; -#option space docsis code width 2 length width 2 hash size 100; -#option docsis.tftp-servers code 32 = array of ip6-address; -#option docsis.configuration-file code 33 = text; -#option docsis.syslog-servers code 34 = array of ip6-address; -##option docsis.device-id code 36 = string; -#option docsis.time-servers code 37 = array of ip6-address; -#option docsis.time-offset code 38 = signed integer 32; -#option vsio.docsis code 4491 = encapsulate docsis; -# -#subnet6 2001:ed8:77b5:3::/64 { -# range6 2001:ed8:77b5:3::10 2001:ed8:77b5:3::100; -# interface %s; -# option docsis.tftp-servers 2001:ed8:77b5:3::101; -# option docsis.time-servers 2001:ed8:77b5:3::101; -# option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; -# option docsis.syslog-servers 2001:ed8:77b5:3::101 ; -# option docsis.time-offset 5000; -#} -#subnet6 2001:ed8:77b5:2000::/64 { -# range6 2001:ed8:77b5:2000::10 2001:ed8:77b5:2000::100; -# interface %s; -# option docsis.tftp-servers 2001:ed8:77b5:3::101; -# option docsis.time-servers 2001:ed8:77b5:3::101; -# option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; -# option docsis.syslog-servers 2001:ed8:77b5:3::101; -# option docsis.time-offset 5000; -#} -#subnet6 2001:ed8:77b5:2001::/64 { -# range6 2001:ed8:77b5:2001::10 2001:ed8:77b5:2001::100; -# interface %s; -# option dhcp6.ia_pd 1234 20000 40000 26 25 30000 60000 64 2001:ed8:77b5:4::; -# option dhcp6.solmax-rt 240; -# option dhcp6.inf-max-rt 360; -#} -#EOF''' % (self.iface_dut, self.iface_dut, self.iface_dut)) -# self.expect(self.prompt) - self.sendline('rm /etc/dhcp/dhcpd.conf.''' + board_config['station']) self.expect(self.prompt) - if 'extra_provisioning' not in board_config: - # same defaults so we at least set tftp server to WAN - board_config['extra_provisioning'] = {} - - if 'mta_mac' in board_config and not 'mta' in board_config['extra_provisioning']: - board_config['extra_provisioning']["mta"] = \ - { "hardware ethernet": board_config['mta_mac'], - "options": { "domain-name": "\"sipcenter.com\"", - "domain-name-servers": "%s" % self.prov_ip, - "routers": "%s" % self.mta_gateway, - "log-servers": "%s" % self.prov_ip, - "host-name": "\"" + board_config['station'] + "\"" - } - } - - if 'cm_mac' in board_config and not 'cm' in board_config['extra_provisioning']: - board_config['extra_provisioning']["cm"] = \ - { "hardware ethernet": board_config['cm_mac'], - "options": { "domain-name-servers": "%s" % self.prov_ip, - "time-offset": "-25200" - } - } - - if 'erouter_mac' in board_config and not 'erouter' in board_config['extra_provisioning']: - board_config['extra_provisioning']["erouter"] = \ - { "hardware ethernet": board_config['erouter_mac'], - "default-lease-time" : self.default_lease_time, - "max-lease-time": self.max_lease_time - } - cfg_file = "/etc/dhcp/dhcpd.conf-" + board_config['station'] # zero out old config @@ -279,8 +283,6 @@ class "HOST" { self.expect(self.prompt) self.sendline("echo '}' >> %s" % cfg_file) - # TODO: extra per board dhcp6 provisioning - self.sendline('mv ' + cfg_file + ' /etc/dhcp/dhcpd.conf.' + board_config['station']) self.expect(self.prompt) # combine all configs into one @@ -289,6 +291,42 @@ class "HOST" { self.sendline("mv /etc/dhcp/dhcpd.conf-" + board_config['station'] + ".master /etc/dhcp/dhcpd.conf") self.expect(self.prompt) + def update_cmts_isc_dhcp_config(self, board_config): + if 'extra_provisioning' not in board_config: + # same defaults so we at least set tftp server to WAN + board_config['extra_provisioning'] = {} + + # DHCPv4 defaults for when board does not supply defaults + # TODO: add DHCPv6 defaults + if 'mta_mac' in board_config and not 'mta' in board_config['extra_provisioning']: + board_config['extra_provisioning']["mta"] = \ + { "hardware ethernet": board_config['mta_mac'], + "options": { "domain-name": "\"sipcenter.com\"", + "domain-name-servers": "%s" % self.prov_ip, + "routers": "%s" % self.mta_gateway, + "log-servers": "%s" % self.prov_ip, + "host-name": "\"" + board_config['station'] + "\"" + } + } + + if 'cm_mac' in board_config and not 'cm' in board_config['extra_provisioning']: + board_config['extra_provisioning']["cm"] = \ + { "hardware ethernet": board_config['cm_mac'], + "options": { "domain-name-servers": "%s" % self.prov_ip, + "time-offset": "-25200" + } + } + + if 'erouter_mac' in board_config and not 'erouter' in board_config['extra_provisioning']: + board_config['extra_provisioning']["erouter"] = \ + { "hardware ethernet": board_config['erouter_mac'], + "default-lease-time" : self.default_lease_time, + "max-lease-time": self.max_lease_time + } + + self.setup_dhcp_config(board_config) + self.setup_dhcp6_config(board_config) + def copy_cmts_provisioning_files(self, board_config): # Look in all overlays as well, and PATH as a workaround for standalone paths = os.environ['PATH'].split(os.pathsep) From b28dc839745b943f503f1b7b699b71ea72b8f1db Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 1 Apr 2019 16:45:04 -0500 Subject: [PATCH 689/947] devices: debian: try harder not to start a normal dhcp server For CMTS provisioner style DHCP server we don't want to run this setup_dhcp_server, it should not have been running but it snuck in via configuring the provisioner as a way gateway to route traffic so let's block this at the function call site instead of adding logic all over the place. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Id2318379f61f3acd9f11177d570e3d80415072e6 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449824 --- devices/debian.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index 6342705b..2cdf90e1 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -434,6 +434,9 @@ def configure(self, kind, config=[]): self.expect(self.prompt) def setup_dhcp_server(self): + if not self.wan_dhcp_server: + return + # configure DHCP server self.sendline('/etc/init.d/isc-dhcp-server stop') self.expect(self.prompt) From 9d849084a1ad548ab59d98f85150f702aa39a512 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 1 Apr 2019 12:12:35 -0500 Subject: [PATCH 690/947] devices: casa_cmts: make default docsis-mac be dualstack Should be configurable in the future but this is probably OK for now Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I6c18747177448c0c043892e402cd88c77cf65b72 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449822 --- devices/casa_cmts.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 14494008..c86a9952 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -361,6 +361,8 @@ def add_iface_docsis_mac(self, index, ip_bundle, qam_idx, qam_sub, qam_ch, ups_i self.expect(self.prompt) self.sendline('ip bundle %s' % ip_bundle) self.expect(self.prompt) + self.sendline('ip-provisioning-mode dual-stack') + self.expect(self.prompt) count = 1; for ch in qam_ch: self.sendline('downstream %s interface qam %s/%s/%s' % (count, qam_idx, qam_sub, ch)) From 2954ac109e6bd936b2a9de1336469af98d0959fd Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 1 Apr 2019 16:49:48 -0500 Subject: [PATCH 691/947] devices: debian_isc: make no dhcp server the default If we are a standalone provisioner we don't ever use the classic setup_dhcp_server() function for now, maybe at somepoint but let's not call the conflicting ISC config setups here Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I26dc8a74f63df1af5f1be3437d1e21d7c2db1365 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449827 --- devices/debian_isc.py | 2 +- tests/rootfs_boot.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 7f07ab40..fc15643f 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -15,6 +15,7 @@ class DebianISCProvisioner(DebianBox): wan_cmts_provisioner = False standalone_provisioner = True + wan_dhcp_server = False # default CM specific settings default_lease_time = 604800 @@ -46,7 +47,6 @@ def __init__(self, *args, **kwargs): self.wan_cmts_provisioner = True self.shared_tftp_server = True # This does run one.. but it's handled via the provisioning code path - self.wan_dhcp_server = False self.standalone_provisioner = False self.gw = self.prov_ip diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 4a17780f..cffa71ef 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -27,6 +27,8 @@ def boot(self, reflash=True): # start dhcp servers for device in self.config.board['devices']: + if 'options' in device and 'no-dhcp-sever' in device['options']: + continue if 'options' in device and 'dhcp-server' in device['options']: getattr(self.config, device['name']).setup_dhcp_server() dhcp_started = True From 61f50c0d950ab7119df9bea62b2b2325ff137566 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 1 Apr 2019 16:47:11 -0500 Subject: [PATCH 692/947] devices: debian: prepare lan container for ipv4 Hopefully these are temporary things, we disable ipv6 for eth0 so we don't have routing issues (stick with ipv4) and also disable DAD for now as well since we see problems with this on our container based setup Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ie4951f6ed1955c02582afa3f644a6461082430f2 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449825 --- devices/debian.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index 2cdf90e1..f7f64e28 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -558,6 +558,12 @@ def setup_as_lan_device(self): self.expect(self.prompt) def start_lan_client(self, wan_gw=None): + # TODO: this should not be required (fix at some point...) + self.sendline('sysctl -w net.ipv6.conf.%s.accept_dad=0' % self.iface_dut) + self.sendline('ip link set down %s && ip link set up %s' % (self.iface_dut, self.iface_dut)) + self.expect(self.prompt) + self.disable_ipv6('eth0') + self.sendline('\nifconfig %s up' % self.iface_dut) self.expect('ifconfig %s up' % self.iface_dut) self.expect(self.prompt) From 75e9b905b367c4851f135e0c0222e9adfbfa0367 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 1 Apr 2019 16:54:26 -0500 Subject: [PATCH 693/947] tests: rootfs_boot: add wan/prov routes and don't clear ipv6 We don't need to flush the ipv6 default routes and neighbors so just remove that. Also we need to add routes from wan to prov and cmts so do that here Again another spot we are disabling ipv6 on eth0, which needs to be cleaned up fixed at some point Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ib133b53a2d11c3e658cc4b027f2f7496ca1c453a Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449829 --- tests/rootfs_boot.py | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index cffa71ef..31a6d42a 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -62,8 +62,17 @@ def boot(self, reflash=True): wan.sendline('ip route add %s via %s' % (nw, gw)) wan.expect(prompt) + # TODO: don't do this and sort out two interfaces with ipv6 + wan.disable_ipv6('eth0') + + if hasattr(prov, 'prov_gateway_v6'): + wan.sendline('ip -6 route add default via %s' % str(prov.prov_gateway_v6)) + wan.expect(prompt) + wan.sendline('ip route') wan.expect(prompt) + wan.sendline('ip -6 route') + wan.expect(prompt) if lan: lan.configure(kind="lan_device") @@ -135,21 +144,6 @@ def boot(self, reflash=True): board.wait_for_network() board.wait_for_mounts() - if self.config.setup_device_networking: - # Router mac addresses are likely to change, so flush arp - if lan: - lan.ip_neigh_flush() - if wan: - wan.ip_neigh_flush() - - # Clear default routes perhaps left over from prior use - if lan: - lan.sendline('\nip -6 route del default') - lan.expect(prompt) - if wan: - wan.sendline('\nip -6 route del default') - wan.expect(prompt) - # Give other daemons time to boot and settle if self.config.setup_device_networking: for i in range(5): From 304308ce78de28ec4a3b93033cf66bc4536c739e Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 1 Apr 2019 16:48:20 -0500 Subject: [PATCH 694/947] devices: debian: very casually try to get ipv6 address Some point we need to check and see if we should be getting one or not and fail if we don't get one as pexpected... This peaking into the CM cfg and making sure the devices are configured right... Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ibd25825b994140ab02eb3fb3641a3a17734f30e7 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449826 --- devices/debian.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index f7f64e28..2cb4eabf 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -575,6 +575,7 @@ def start_lan_client(self, wan_gw=None): self.expect(self.prompt) self.sendline("sed -e 's/mv -f $new_resolv_conf $resolv_conf/cat $new_resolv_conf > $resolv_conf/g' -i /sbin/dhclient-script") self.expect(self.prompt) + # TODO: don't hard code eth0 self.sendline('ip route del default dev eth0') self.expect(self.prompt) for attempt in range(3): @@ -587,7 +588,14 @@ def start_lan_client(self, wan_gw=None): self.sendcontrol('c') else: raise Exception("Error: Device on LAN couldn't obtain address via DHCP.") - self.sendline('ifconfig %s' % self.iface_dut) + + # very casual try for ipv6 addr, if we don't get one don't fail for now + self.enable_ipv6(self.iface_dut) + self.sendline('dhclient -6 -i %s -v' % self.iface_dut) + if 0 == self.expect([pexpect.TIMEOUT] + self.prompt, timeout=15): + self.sendcontrol('c') + + self.sendline('ip addr show dev %s' % self.iface_dut) self.expect(self.prompt) self.sendline('ip route') # TODO: we should verify this so other way, because the they could be the same subnets From 6d577181b7e8034ed6fc2836fd31d951a1717a0c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 1 Apr 2019 16:55:51 -0500 Subject: [PATCH 695/947] tests: lib: docsis: return a more useful string for CM mode This will make parsing logic in tests easier to understand Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Icf08e7c380a1cb66e521bfbd8374ac3b76fcc769 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449830 --- tests/lib/docsis.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py index 3890d9f7..c2de8fd1 100755 --- a/tests/lib/docsis.py +++ b/tests/lib/docsis.py @@ -161,11 +161,12 @@ def _cm_configmode(self): '''function to check config mode in CM''' '''0-Disable/Bridge, 1-IPv4, 2-IPv6 (DSlite), 3-IPv4 and IPv6(Dual)''' modeset = ['0x010100', '0x010101', '0x010102', '0x010103'] + modestr = ['bridge', 'ipv4', 'dslite', 'dual-stack'] for mode in range(0, len(modeset)): tlv_check = "GenericTLV TlvCode 202 TlvLength 3 TlvValue "+modeset[mode] initmode_check = "InitializationMode "+str(mode) if (tlv_check in self.txt) or (initmode_check in self.txt): - return mode + return modestr[mode] cm_configmode = property(_cm_configmode) From ed8c8840ee9cfaf117791349510a8fb036b782a8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 29 Mar 2019 09:56:23 -0500 Subject: [PATCH 696/947] tests: linux_boot: check if Exception has trace and print alt msg Some exceptions don't have this defined, so we should catch it and print a message but never actually fail and exit here. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I6b3af3b18f84e755b4e1ccd599bbdceb68dd9341 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449559 --- tests/linux_boot.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/linux_boot.py b/tests/linux_boot.py index 7a539523..49cca40e 100644 --- a/tests/linux_boot.py +++ b/tests/linux_boot.py @@ -95,7 +95,10 @@ def testWrapper(self): except Exception as e: retry = retry - 1 if(retry > 0): - print(e.get_trace()) + if hasattr(e, 'get_trace'): + print(e.get_trace()) + else: + print("Exception has no trace, type = %s" % type(e)) print("\n\n----------- Test failed! Retrying in 5 seconds... -------------") time.sleep(5) else: From e78a6d2b09c8d7d16965de47440dc0f35585639d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 1 Apr 2019 16:51:43 -0500 Subject: [PATCH 697/947] devices: debian_isc: re-enable ipv6 dhcp server and various fixups Start dhcpd -6, set default values for IPv6 addresses and networks, misc. fixes and notes for IPv6. This is still rough around the edges but it's working... Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I25750f6fe1a45e4b842a4a59149c1719b6a2e324 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449828 --- devices/debian.py | 4 ++ devices/debian_isc.py | 151 +++++++++++++++++++++++++++--------------- 2 files changed, 101 insertions(+), 54 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 2cb4eabf..71dc2522 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -709,6 +709,10 @@ def tftp_server_ip_int(self): '''Returns the DUT facing side tftp server ip''' return self.gw + def tftp_server_ipv6_int(self): + '''Returns the DUT facing side tftp server ipv6''' + return self.gwv6 + def link_up(self, interface): '''Checking the interface status''' self.sendline("ip link show %s" % interface) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index fc15643f..8580bc89 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -34,10 +34,14 @@ def __init__(self, *args, **kwargs): self.prov_ip = ipaddress.IPv4Address(kwargs.pop('prov_ip', u"192.168.3.1")) self.prov_ipv6 = ipaddress.IPv6Address(kwargs.pop('prov_ipv6', u"2001:dead:beef:1::1")) - self.cm_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('cm_gateway', u"2001:dead:beef:2::cafe")) - self.mta_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('mta_gateway', u"2001:dead:beef:3::cafe")) - self.open_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('open_gateway', u"2001:dead:beef:4::cafe")) - self.prov_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('prov_gateway', u"2001:dead:beef:1::cafe")) + self.cm_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('cm_gateway_v6', u"2001:dead:beef:2::cafe")) + self.cm_network_v6 = ipaddress.IPv6Network(kwargs.pop('cm_network_v6', u"2001:dead:beef:2::/64")) + self.mta_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('mta_gateway_v6', u"2001:dead:beef:3::cafe")) + self.mta_network_v6 = ipaddress.IPv6Network(kwargs.pop('mta_network_v6', u"2001:dead:beef:3::/64")) + self.open_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('open_gateway_v6', u"2001:dead:beef:4::cafe")) + self.open_network_v6 = ipaddress.IPv6Network(kwargs.pop('open_network_v6', u"2001:dead:beef:4::/64")) + self.prov_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('prov_gateway_v6', u"2001:dead:beef:1::cafe")) + self.erouter_net = ipaddress.IPv6Network(kwargs.pop('erouter_net', u"2001:dead:beef:f000::/55")) if 'options' in kwargs: options = [x.strip() for x in kwargs['options'].split(',')] @@ -55,12 +59,16 @@ def __init__(self, *args, **kwargs): return super(DebianISCProvisioner, self).__init__(*args, **kwargs) def setup_dhcp6_config(self, board_config): + tftp_server = self.tftp_device.tftp_server_ipv6_int() + to_send = '''cat > /etc/dhcp/dhcpd6.conf-''' + board_config['station'] + '''.master << EOF -preferred-lifetime 7500; +preferred-lifetime 7200; option dhcp-renewal-time 3600; option dhcp-rebinding-time 5400; allow leasequery; -option dhcp6.name-servers 2001:4860:4860::8888; +prefix-length-mode prefer; + +option dhcp6.name-servers 2001:dead:beef:1::1; option dhcp6.domain-search "test.example.com","example.com"; option dhcp6.info-refresh-time 21600; option dhcp6.ia_pd code 25 = { integer 32, integer 32, integer 32, integer 16, integer 16, integer 32, integer 32, integer 8, ip6-address}; @@ -69,37 +77,52 @@ def setup_dhcp6_config(self, board_config): option docsis.tftp-servers code 32 = array of ip6-address; option docsis.configuration-file code 33 = text; option docsis.syslog-servers code 34 = array of ip6-address; -#option docsis.device-id code 36 = string; option docsis.time-servers code 37 = array of ip6-address; option docsis.time-offset code 38 = signed integer 32; option vsio.docsis code 4491 = encapsulate docsis; -subnet6 2001:dead:beef:2::cafe::/64 { - range6 2001:dead:beef:2::10 2001:dead:beef:2::100; - interface %s; - option docsis.tftp-servers 2001:ed8:77b5:3::101; - option docsis.time-servers 2001:ed8:77b5:3::101; - option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; - option docsis.syslog-servers 2001:ed8:77b5:3::101 ; - option docsis.time-offset 5000; -} -subnet6 2001:dead:beef:3::cafe::/64 { - range6 2001:dead:beef:3::10 2001:dead:beef:3::100; - interface %s; - option docsis.tftp-servers 2001:ed8:77b5:3::101; - option docsis.time-servers 2001:ed8:77b5:3::101; - option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; - option docsis.syslog-servers 2001:ed8:77b5:3::101; - option docsis.time-offset 5000; +subnet6 2001:dead:beef:1::/64 { + interface ###IFACE###; + ignore booting; } -subnet6 2001:dead:beef:4::cafe::/64 { - range6 2001:dead:beef:4::10 2001:dead:beef:4::cafe::100; - interface %s; - option dhcp6.ia_pd 1234 20000 40000 26 25 30000 60000 64 2001:ed8:77b5:4::; - option dhcp6.solmax-rt 240; - option dhcp6.inf-max-rt 360; + +shared-network boardfarm { + interface ###IFACE###; + subnet6 2001:dead:beef:2::/64 { + pool6 { + range6 2001:dead:beef:2::10 2001:dead:beef:2::100; + } + option docsis.tftp-servers ###PROV_IPV6###; + option docsis.time-servers ###PROV_IPV6###; + option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; + option docsis.syslog-servers ###PROV_IPV6### ; + option docsis.time-offset 5000; + } + subnet6 2001:dead:beef:3::/64 { + pool6 { + range6 2001:dead:beef:3::10 2001:dead:beef:3::100; + } + option docsis.tftp-servers ###PROV_IPV6###; + option docsis.time-servers ###PROV_IPV6###; + option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; + } + subnet6 2001:dead:beef:4::/64 { + pool6 { + range6 2001:dead:beef:4::10 2001:dead:beef:4::100; + } + prefix6 ###EROUTER_NET_START### ###EROUTER_NET_END### /###EROUTER_PREFIX###; + option dhcp6.solmax-rt 240; + option dhcp6.inf-max-rt 360; + } } -EOF''' % (self.iface_dut, self.iface_dut, self.iface_dut) +EOF''' + + to_send = to_send.replace('###IFACE###', self.iface_dut) + to_send = to_send.replace('###PROV_IPV6###', str(self.prov_ipv6)) + to_send = to_send.replace('###EROUTER_NET_START###', str(self.erouter_net[0])) + to_send = to_send.replace('###EROUTER_NET_END###', str(self.erouter_net[-ipaddress.IPv6Network(u'::0/%s' % self.ipv6_prefix).num_addresses])) + to_send = to_send.replace('###EROUTER_PREFIX###', str(self.ipv6_prefix)) + # TODO: add ranges for subnet's, syslog server per CM self.sendline(to_send) self.expect(self.prompt) @@ -113,23 +136,26 @@ def setup_dhcp6_config(self, board_config): self.sendline('cp /dev/null %s' % cfg_file) self.expect(self.prompt) - # TODO: make ipv6 specific # insert tftp server, TODO: how to clean up? - #board_config['extra_provisioning']['cm']['next-server'] = tftp_server - #board_config['extra_provisioning']['mta']['next-server'] = tftp_server + if 'options' not in board_config['extra_provisioning_v6']['cm']: + board_config['extra_provisioning_v6']['cm']['options'] = {} + if 'options' not in board_config['extra_provisioning_v6']['mta']: + board_config['extra_provisioning_v6']['mta']['options'] = {} + board_config['extra_provisioning_v6']['cm']['options']['docsis.tftp-servers'] = tftp_server + board_config['extra_provisioning_v6']['mta']['options']['docsis.tftp-servers'] = tftp_server # there is probably a better way to construct this file... - #for dev, cfg_sec in board_config['extra_provisioning'].iteritems(): - # self.sendline("echo 'host %s-%s {' >> %s" % (dev, board_config['station'], cfg_file)) - # for key, value in cfg_sec.iteritems(): - # if key == "options": - # for k2, v2 in value.iteritems(): - # self.sendline("echo ' option %s %s;' >> %s" % (k2, v2, cfg_file)) - # self.expect(self.prompt) - # else: - # self.sendline("echo ' %s %s;' >> %s" % (key, value, cfg_file)) - # self.expect(self.prompt) - # self.sendline("echo '}' >> %s" % cfg_file) + for dev, cfg_sec in board_config['extra_provisioning_v6'].iteritems(): + self.sendline("echo 'host %s-%s {' >> %s" % (dev, board_config['station'], cfg_file)) + for key, value in cfg_sec.iteritems(): + if key == "options": + for k2, v2 in value.iteritems(): + self.sendline("echo ' option %s %s;' >> %s" % (k2, v2, cfg_file)) + self.expect(self.prompt) + else: + self.sendline("echo ' %s %s;' >> %s" % (key, value, cfg_file)) + self.expect(self.prompt) + self.sendline("echo '}' >> %s" % cfg_file) self.sendline('mv ' + cfg_file + ' /etc/dhcp/dhcpd6.conf.' + board_config['station']) self.expect(self.prompt) @@ -295,9 +321,10 @@ def update_cmts_isc_dhcp_config(self, board_config): if 'extra_provisioning' not in board_config: # same defaults so we at least set tftp server to WAN board_config['extra_provisioning'] = {} + if 'extra_provisioning_v6' not in board_config: + board_config['extra_provisioning_v6'] = {} # DHCPv4 defaults for when board does not supply defaults - # TODO: add DHCPv6 defaults if 'mta_mac' in board_config and not 'mta' in board_config['extra_provisioning']: board_config['extra_provisioning']["mta"] = \ { "hardware ethernet": board_config['mta_mac'], @@ -308,7 +335,6 @@ def update_cmts_isc_dhcp_config(self, board_config): "host-name": "\"" + board_config['station'] + "\"" } } - if 'cm_mac' in board_config and not 'cm' in board_config['extra_provisioning']: board_config['extra_provisioning']["cm"] = \ { "hardware ethernet": board_config['cm_mac'], @@ -316,7 +342,6 @@ def update_cmts_isc_dhcp_config(self, board_config): "time-offset": "-25200" } } - if 'erouter_mac' in board_config and not 'erouter' in board_config['extra_provisioning']: board_config['extra_provisioning']["erouter"] = \ { "hardware ethernet": board_config['erouter_mac'], @@ -324,6 +349,18 @@ def update_cmts_isc_dhcp_config(self, board_config): "max-lease-time": self.max_lease_time } + # DHCPv6 defaults for when board does not supply defaults + if 'mta_mac' in board_config and not 'mta' in board_config['extra_provisioning_v6']: + board_config['extra_provisioning_v6']["mta"] = \ + { "hardware ethernet": board_config['mta_mac'] } + if 'cm_mac' in board_config and not 'cm' in board_config['extra_provisioning_v6']: + board_config['extra_provisioning_v6']["cm"] = \ + { "hardware ethernet": board_config['cm_mac'], + "options": { "docsis.configuration-file": '"%s"' % board_config['cm_cfg'].encoded_fname } } + if 'erouter_mac' in board_config and not 'erouter' in board_config['extra_provisioning_v6']: + board_config['extra_provisioning_v6']["erouter"] = \ + { "hardware ethernet": board_config['erouter_mac'] } + self.setup_dhcp_config(board_config) self.setup_dhcp6_config(board_config) @@ -359,12 +396,9 @@ def provision_board(self, board_config): self.setup_as_wan_gateway() ''' Setup DHCP and time server etc for CM provisioning''' - self.sendline('sed s/INTERFACES=.*/INTERFACES=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) - self.expect(self.prompt) - self.sendline('sed s/INTERFACESv4=.*/INTERFACESv4=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) + self.sendline('echo INTERFACESv4="%s" > /etc/default/isc-dhcp-server' % self.iface_dut) self.expect(self.prompt) - #self.sendline('sed s/INTERFACESv6=.*/INTERFACESv6=\\"%s\\"/g -i /etc/default/isc-dhcp-server' % self.iface_dut) - self.sendline('sed "/INTERFACESv6/d" -i /etc/default/isc-dhcp-server') + self.sendline('echo INTERFACESv6="%s" >> /etc/default/isc-dhcp-server' % self.iface_dut) self.expect(self.prompt) # we are bypass this for now (see http://patchwork.ozlabs.org/patch/117949/) self.sendline('sysctl -w net.ipv6.conf.%s.accept_dad=0' % self.iface_dut) @@ -375,6 +409,9 @@ def provision_board(self, board_config): self.sendline('ifconfig %s %s' % (self.iface_dut, self.gw)) self.expect(self.prompt) + # TODO: we need to route via eth0 at some point + # TODO: don't hard code eth0... + self.disable_ipv6('eth0') self.enable_ipv6(self.iface_dut) if self.gwv6 is not None: self.sendline('ip -6 addr add %s/%s dev %s' % (self.gwv6, self.ipv6_prefix, self.iface_dut)) @@ -388,13 +425,18 @@ def provision_board(self, board_config): self.sendline('ip -6 route add %s/%s via %s dev %s' % (nw, self.ipv6_prefix, self.prov_gateway_v6, self.iface_dut)) self.expect(self.prompt) + self.sendline('ip -6 route add %s via %s' % (str(self.erouter_net), self.prov_gateway_v6)) + self.expect(self.prompt) + self.update_cmts_isc_dhcp_config(board_config) self.sendline('cat /etc/dhcp/dhcpd.conf') self.expect(self.prompt) + self.sendline('cat /etc/dhcp/dhcpd6.conf') + self.expect(self.prompt) self.sendline('(flock -x 9; /etc/init.d/isc-dhcp-server restart; flock -u 9) 9>/etc/init.d/isc-dhcp-server.lock') # We expect both, so we need debian 9 or greater for this device self.expect('Starting ISC DHCPv4 server: dhcpd.\r\n') - #self.expect('Starting ISC DHCPv6 server: dhcpd6.\r\n') + self.expect('Starting ISC DHCPv6 server: dhcpd(6)?.\r\n') self.expect(self.prompt) self.sendline('rm /etc/init.d/isc-dhcp-server.lock') self.expect(self.prompt) @@ -426,6 +468,7 @@ def reprovision_board(self, board_config): self.update_cmts_isc_dhcp_config(board_config) self.sendline('(flock -x 9; /etc/init.d/isc-dhcp-server restart; flock -u 9) 9>/etc/init.d/isc-dhcp-server.lock') self.expect(['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*']) + self.expect('Starting ISC DHCPv6 server: dhcpd(6)?.\r\n') self.expect(self.prompt) self.sendline('rm /etc/init.d/isc-dhcp-server.lock') self.expect(self.prompt) From 660e8dca3a43c864fa2ac13600f4d062267e183a Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 3 Apr 2019 11:53:55 -0500 Subject: [PATCH 698/947] devices: debian_isc: refactor starting dhcp server with lock into function Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I945002c53265ea849ba29a6e3290af3cccb5f4e9 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/450048 --- devices/debian_isc.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 8580bc89..7985bc4f 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -433,13 +433,8 @@ def provision_board(self, board_config): self.expect(self.prompt) self.sendline('cat /etc/dhcp/dhcpd6.conf') self.expect(self.prompt) - self.sendline('(flock -x 9; /etc/init.d/isc-dhcp-server restart; flock -u 9) 9>/etc/init.d/isc-dhcp-server.lock') - # We expect both, so we need debian 9 or greater for this device - self.expect('Starting ISC DHCPv4 server: dhcpd.\r\n') - self.expect('Starting ISC DHCPv6 server: dhcpd(6)?.\r\n') - self.expect(self.prompt) - self.sendline('rm /etc/init.d/isc-dhcp-server.lock') - self.expect(self.prompt) + + self._restart_dhcp_with_lock() # only start tftp server if we are a full blown wan+provisioner if self.wan_cmts_provisioner: @@ -466,6 +461,10 @@ def reprovision_board(self, board_config): '''New DHCP, cfg files etc for board after it's been provisioned once''' self.copy_cmts_provisioning_files(board_config) self.update_cmts_isc_dhcp_config(board_config) + + self._restart_dhcp_with_lock() + + def _restart_dhcp_with_lock(self): self.sendline('(flock -x 9; /etc/init.d/isc-dhcp-server restart; flock -u 9) 9>/etc/init.d/isc-dhcp-server.lock') self.expect(['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*']) self.expect('Starting ISC DHCPv6 server: dhcpd(6)?.\r\n') From 39f078e1379c11054a91b9d9bf340c0c7b2ff918 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 3 Apr 2019 12:44:04 -0500 Subject: [PATCH 699/947] devices: base: convert get_interface_ip6addr to use ipaddress and defined regex Instead of doing it's own thing, let's use our defined regex and ipaddress to help us out Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I852b2c4022203c8ff9b88aeedc45a2511fe427fc Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/450049 --- devices/base.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/devices/base.py b/devices/base.py index 468773d8..aceea5ca 100644 --- a/devices/base.py +++ b/devices/base.py @@ -12,10 +12,9 @@ import time import common import error_detect +import ipaddress -#from lib.regexlib import ValidIpv4AddressRegex, ValidIpv6AddressRegex -from lib.regexlib import LinuxMacFormat - +from lib.regexlib import LinuxMacFormat, AllValidIpv6AddressesRegex from lib.logging import LoggerMeta, o_helper # To Do: maybe make this config variable @@ -38,10 +37,15 @@ def get_interface_ipaddr(self, interface): def get_interface_ip6addr(self, interface): self.sendline("\nifconfig %s" % interface) - self.expect('\s((200([0-9a-f]){1,1}:)([0-9a-f]{1,4}:){1,6}([0-9a-f]{1,4}))([\/\s])', timeout=5) - ipaddr = self.match.group(1) + self.expect_exact("ifconfig %s" % interface) self.expect(self.prompt) - return ipaddr + + for match in re.findall(AllValidIpv6AddressesRegex, self.before): + ip6addr = ipaddress.IPv6Address(match) + if not ip6addr.is_link_local: + return match + + raise Exception("Did not find non-link-local ipv6 address") def get_interface_macaddr(self, interface): self.sendline('cat /sys/class/net/%s/address' % interface) From 2aa628438eb352188f5b570608845898a2501e43 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 3 Apr 2019 12:45:17 -0500 Subject: [PATCH 700/947] devices: debian_isc: conditionally start ipv6 If an env does not have ipv6 setup, we don't want to fail so let's try some sanity checking and don't expect it to start properly if things are not defined Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I9b3b4b1909de65e2f3009f9f0bafcfb4999cda55 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/450050 --- devices/debian_isc.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 7985bc4f..397a508a 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -34,6 +34,8 @@ def __init__(self, *args, **kwargs): self.prov_ip = ipaddress.IPv4Address(kwargs.pop('prov_ip', u"192.168.3.1")) self.prov_ipv6 = ipaddress.IPv6Address(kwargs.pop('prov_ipv6', u"2001:dead:beef:1::1")) + self.prov_nw_ipv6 = ipaddress.IPv6Interface(str(self.prov_ipv6) + unicode('/%s' % self.ipv6_prefix)) + self.cm_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('cm_gateway_v6', u"2001:dead:beef:2::cafe")) self.cm_network_v6 = ipaddress.IPv6Network(kwargs.pop('cm_network_v6', u"2001:dead:beef:2::/64")) self.mta_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('mta_gateway_v6', u"2001:dead:beef:3::cafe")) @@ -432,6 +434,7 @@ def provision_board(self, board_config): self.sendline('cat /etc/dhcp/dhcpd.conf') self.expect(self.prompt) self.sendline('cat /etc/dhcp/dhcpd6.conf') + self.expect_exact('cat /etc/dhcp/dhcpd6.conf') self.expect(self.prompt) self._restart_dhcp_with_lock() @@ -465,9 +468,21 @@ def reprovision_board(self, board_config): self._restart_dhcp_with_lock() def _restart_dhcp_with_lock(self): + do_ipv6 = True + + try: + chk_ip = self.get_interface_ip6addr(self.iface_dut) + if chk_ip not in self.prov_nw_ipv6: + do_ipv6 = False + except: + do_ipv6 = False + self.sendline('(flock -x 9; /etc/init.d/isc-dhcp-server restart; flock -u 9) 9>/etc/init.d/isc-dhcp-server.lock') self.expect(['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*']) - self.expect('Starting ISC DHCPv6 server: dhcpd(6)?.\r\n') + if do_ipv6: + self.expect('Starting ISC DHCPv6 server: dhcpd(6)?.\r\n') + else: + print("NOTE: not starting IPv6 because this provisioner is not setup properly") self.expect(self.prompt) self.sendline('rm /etc/init.d/isc-dhcp-server.lock') self.expect(self.prompt) From 885c63d5e458d013164397446ce5cd46e4634559 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 3 Apr 2019 14:03:14 -0500 Subject: [PATCH 701/947] devices: base: small fix for get_interface_ip6addr Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I4e4bb8207e63eff40b43e1ea4dcf168cb58b0ab9 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/450061 --- devices/base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/devices/base.py b/devices/base.py index aceea5ca..d2221b82 100644 --- a/devices/base.py +++ b/devices/base.py @@ -41,8 +41,9 @@ def get_interface_ip6addr(self, interface): self.expect(self.prompt) for match in re.findall(AllValidIpv6AddressesRegex, self.before): - ip6addr = ipaddress.IPv6Address(match) + ip6addr = ipaddress.IPv6Address(unicode(match)) if not ip6addr.is_link_local: + # TODO: at some point just return ip6addr return match raise Exception("Did not find non-link-local ipv6 address") From d58208f65734716933ec5c91859ec442821e3c90 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 3 Apr 2019 14:39:48 -0500 Subject: [PATCH 702/947] devices: debian_isc: convert prov_nw_ipv6 into true network Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ief922097d0f733fb39ff725c96e4ac9989c637dc Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/450066 --- devices/debian_isc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 397a508a..bd1a6168 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -34,7 +34,7 @@ def __init__(self, *args, **kwargs): self.prov_ip = ipaddress.IPv4Address(kwargs.pop('prov_ip', u"192.168.3.1")) self.prov_ipv6 = ipaddress.IPv6Address(kwargs.pop('prov_ipv6', u"2001:dead:beef:1::1")) - self.prov_nw_ipv6 = ipaddress.IPv6Interface(str(self.prov_ipv6) + unicode('/%s' % self.ipv6_prefix)) + self.prov_nw_ipv6 = ipaddress.IPv6Interface(str(self.prov_ipv6) + unicode('/%s' % self.ipv6_prefix)).network self.cm_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('cm_gateway_v6', u"2001:dead:beef:2::cafe")) self.cm_network_v6 = ipaddress.IPv6Network(kwargs.pop('cm_network_v6', u"2001:dead:beef:2::/64")) From 000f38d650f08b91c0c40983fb271e4267b6fa9a Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 2 Apr 2019 15:32:12 -0500 Subject: [PATCH 703/947] devices: debian: add support for getting ipv6 addr from DHCP Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I2f7cf55598ebe69147fc70d38857d68b980563d1 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449937 --- devices/debian.py | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 71dc2522..2b497619 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -29,6 +29,7 @@ class DebianBox(base.BaseDevice): static_route = None static_ip = False wan_dhcp = False + wan_dhcpv6 = False wan_no_eth0 = False pkgs_installed = False install_pkgs_after_dhcp = False @@ -141,6 +142,8 @@ def __init__(self, self.wan_no_eth0 = True if opt.startswith('wan-no-dhcp-sever'): self.wan_dhcp_server = False + if opt.startswith('wan-dhcp-client-v6'): + self.wan_dhcpv6 = True try: i = self.expect(["yes/no", "assword:", "Last login"] + self.prompt, timeout=30) @@ -501,12 +504,24 @@ def setup_as_wan_gateway(self): if self.wan_dhcp_server: self.setup_dhcp_server() - if self.gwv6 is not None: - # we are bypass this for now (see http://patchwork.ozlabs.org/patch/117949/) - self.sendline('sysctl -w net.ipv6.conf.%s.accept_dad=0' % self.iface_dut) - self.expect(self.prompt) - self.sendline('ip -6 addr add %s/%s dev %s' % (self.gwv6, self.ipv6_prefix, self.iface_dut)) - self.expect(self.prompt) + if self.wan_dhcpv6 == True: + # we are bypass this for now (see http://patchwork.ozlabs.org/patch/117949/) + self.sendline('sysctl -w net.ipv6.conf.%s.accept_dad=0' % self.iface_dut) + self.expect(self.prompt) + self.sendline('dhclient -6 -i -v %s -r' % self.iface_dut) + self.expect(self.prompt) + self.sendline('dhclient -6 -i -v %s' % self.iface_dut) + self.expect(self.prompt) + self.sendline('ip -6 addr') + self.expect(self.prompt) + self.gwv6 = self.get_interface_ip6addr(self.iface_dut) + elif self.gwv6 is not None: + # we are bypass this for now (see http://patchwork.ozlabs.org/patch/117949/) + self.sendline('sysctl -w net.ipv6.conf.%s.accept_dad=0' % self.iface_dut) + self.expect(self.prompt) + self.sendline('ip -6 addr add %s/%s dev %s' % (self.gwv6, self.ipv6_prefix, self.iface_dut)) + self.expect(self.prompt) + # configure routing self.sendline('sysctl net.ipv4.ip_forward=1') From b1931996497e5cf361405275d2e94162b16a6786 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 3 Apr 2019 16:16:23 -0500 Subject: [PATCH 704/947] tests: lib: network_helper: add functions for validating ip addresses Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I6ec2a4166515d681f93e1be08e24d67ca8159ad2 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/450082 --- tests/lib/network_helper.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/lib/network_helper.py b/tests/lib/network_helper.py index 4cb6a93d..955f4e73 100644 --- a/tests/lib/network_helper.py +++ b/tests/lib/network_helper.py @@ -32,3 +32,17 @@ def ipv6_to_snmp_format(ipv6_str): ipv6_address = ipaddress.ip_address(ipv6_tmp_ip) return ipv6_address + +def valid_ipv4(ip_str): + try: + ipaddress.IPv4Address(unicode(ip_str)) + return True + except: + return False + +def valid_ipv6(ip_str): + try: + ipaddress.IPv6Address(unicode(ip_str)) + return True + except: + return False From c76021c2aa5fa15aa1d8ca44f0b9f56347d64ad1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 1 Apr 2019 17:33:13 -0500 Subject: [PATCH 705/947] tests: rootfs_boot: check interfaces for right ipp adddress types Still lots of work to do, checking CM cfg, some missing possibilties like bridged and ipv6 only Finally, removed routing through WAN container as it was too flaky and not working for IPv6. We can revisit this later but it's quite possible the default config for a lab would not allow this anyways Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Id25126e32edae234a41aabcdc14a5688c7965f12 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/449831 --- tests/rootfs_boot.py | 93 ++++++++++++++++++++------------------------ 1 file changed, 43 insertions(+), 50 deletions(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 31a6d42a..c7c3b401 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -9,6 +9,9 @@ import linux_boot import lib import ipaddress + +from lib.network_helper import valid_ipv4, valid_ipv6 + from devices import board, wan, lan, prompt class RootFSBootTest(linux_boot.LinuxBootTest): @@ -173,71 +176,61 @@ def boot(self, reflash=True): if len(pkg) > 0: board.install_package(pkg) + # TODO: we should do some of this for other types of provisioners if prov is not None and 'debian-isc-provisioner' in prov.model: - table = self.config.board['station'] - idx = wan.port # TODO: how to do this right...? - - start_time = time.time() time_for_provisioning = 120 - ips = [] + wan_ipv4 = False + wan_ipv6 = False + erouter_ipv4 = False + erouter_ipv6 = False + mta_ipv4 = False + mta_ipv6 = False # Never possible on any boards? + + cm_configmode = board.cm_cfg.cm_configmode + + if cm_configmode == 'bridge': + # TODO + pass + if cm_configmode == 'ipv4': + wan_ipv4 = erouter_ipv4 = True + mta_ipv4 = True # TODO: is this true? + if cm_configmode == 'dslite': + # TODO + pass + if cm_configmode == 'dual-stack': + wan_ipv4 = erouter_ipv4 = True + wan_ipv6 = erouter_ipv6 = True + # TODO: mta does not come up in this mode now, to b e fixed + # TODO: no ipv6 only TLV?!? + while (time.time() - start_time < time_for_provisioning): - # reset IPs incase we got part way through and failed - ips = [] try: - try: - ip = board.get_interface_ipaddr(board.wan_iface) - assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.cm_network, \ - "Board failed to obtain WAN IP address" - except: - continue - - ips += [ip] + if wan_ipv4: + valid_ipv4(board.get_interface_ipaddr(board.wan_iface)) + if wan_ipv6: + valid_ipv6(board.get_interface_ip6addr(board.wan_iface)) if hasattr(board, 'erouter_iface'): - try: - ip = board.get_interface_ipaddr(board.erouter_iface) - assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.open_network, \ - "Board failed to obtain erouter IP address" - except: - continue - ips += [ip] + if erouter_ipv4: + valid_ipv4(board.get_interface_ipaddr(board.erouter_iface)) + if erouter_ipv6: + valid_ipv6(board.get_interface_ip6addr(board.erouter_iface)) + if hasattr(board, 'mta_iface'): - try: - ip = board.get_interface_ipaddr(board.mta_iface) - assert ipaddress.IPv4Address(ip.decode('utf-8')) in prov.mta_network, \ - "Board failed to obtain MTA IP address" - except: - continue - ips += [ip] + if mta_ipv4: + valid_ipv4(board.get_interface_ipaddr(board.mta_iface)) + if mta_ipv6: + valid_ipv6(board.get_interface_ip6addr(board.mta_iface)) # if we get this far, we have all IPs and can exit while loop break + except KeyboardInterrupt: + raise except: if time.time() - start_time < time_for_provisioning: raise - pass - - check = [hasattr(board, 'erouter_iface'), hasattr(board, 'mta_iface')] - if len(ips) != 1 + sum(1 if True else 0 for x in check): - raise Exception("Failed to obtain ip address for all configured interfaces!") - - # TODO: don't hard code 300 or mv1-1 - prov.sendline('sed /^%s/d -i /etc/iproute2/rt_tables' % idx) - prov.expect(prompt) - prov.sendline('echo "%s %s" >> /etc/iproute2/rt_tables' % (idx, table)) - prov.expect(prompt) - - for ip in ips: - prov.sendline('ip rule del from %s' % ip) - prov.expect(prompt) - prov.sendline('ip rule add from %s lookup %s' % (ip, table)) - prov.expect(prompt) - - wan_ip = wan.get_interface_ipaddr(wan.iface_dut) - prov.sendline('ip route add default via %s dev eth1 table %s' % (wan_ip, table)) - prov.expect(prompt) # Try to verify router has stayed up (and, say, not suddenly rebooted) end_seconds_up = board.get_seconds_uptime() From 2ece655b9c3f012c299f398e52f1fae9d65531e0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 3 Apr 2019 16:38:59 -0500 Subject: [PATCH 706/947] tests: rootfs_boot: add TODO for iface checking logic Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ia598e6e2af161482580001c05afc949dd1ba7334 --- tests/rootfs_boot.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index c7c3b401..289cfc3f 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -177,6 +177,8 @@ def boot(self, reflash=True): board.install_package(pkg) # TODO: we should do some of this for other types of provisioners + # TODO: this should probably move into a DEVICE specific helper function + # so all the correct logic can be encoded there if prov is not None and 'debian-isc-provisioner' in prov.model: start_time = time.time() time_for_provisioning = 120 From 274a864ac8ae18a8e67edcbc1ffad0a3c87cb685 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 3 Apr 2019 17:22:16 -0500 Subject: [PATCH 707/947] tests: lib: installers: update tarball url for jmeter Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I429fee6e2daafdcba232c2a2ad9dfea6671463ba Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/450088 --- tests/lib/installers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 7a1890c0..a896f1d2 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -344,7 +344,7 @@ def install_jmeter(device): device.expect(device.prompt) device.sendline('apt-get install wget openjdk-8-jre-headless -y') device.expect(device.prompt, timeout=90) - device.sendline('wget https://www-eu.apache.org/dist//jmeter/binaries/apache-jmeter-5.0.tgz') + device.sendline('wget https://www-us.apache.org/dist//jmeter/binaries/apache-jmeter-5.1.1.tgz') device.expect(device.prompt, timeout=90) device.sendline('tar -C /opt -zxf apache-jmeter-5.0.tgz') device.expect(device.prompt, timeout=120) From 874f011a0a529d766698ae4be289c1e5927d131e Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 3 Apr 2019 17:22:16 -0500 Subject: [PATCH 708/947] tests: lib: installers: update tarball url for jmeter Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I429fee6e2daafdcba232c2a2ad9dfea6671463ba --- tests/lib/installers.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index a896f1d2..2dad0071 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -346,9 +346,9 @@ def install_jmeter(device): device.expect(device.prompt, timeout=90) device.sendline('wget https://www-us.apache.org/dist//jmeter/binaries/apache-jmeter-5.1.1.tgz') device.expect(device.prompt, timeout=90) - device.sendline('tar -C /opt -zxf apache-jmeter-5.0.tgz') + device.sendline('tar -C /opt -zxf apache-jmeter-5.1.1.tgz') device.expect(device.prompt, timeout=120) - device.sendline('rm apache-jmeter-5.0.tgz') + device.sendline('rm apache-jmeter-*') def install_IRCserver(device): '''Install irc server if not present.''' From bb3e3bd39d8c022cf64299d251e7e4228c9f38e6 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 3 Apr 2019 17:47:27 -0500 Subject: [PATCH 709/947] tests: rootfs_boot: disable mta ip checking all together for now Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ibc5a8a4e4eeb93992913553ed415ef9fc3385ba7 --- tests/rootfs_boot.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 289cfc3f..e5e664e3 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -197,7 +197,8 @@ def boot(self, reflash=True): pass if cm_configmode == 'ipv4': wan_ipv4 = erouter_ipv4 = True - mta_ipv4 = True # TODO: is this true? + # TODO: this fails if we have dhcp6 running, why? + #mta_ipv4 = True # TODO: is this true? if cm_configmode == 'dslite': # TODO pass From 2ca68917b23370d09dc637087582b5b2efc18528 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 4 Apr 2019 13:40:07 -0500 Subject: [PATCH 710/947] tests: lib: installer: fix jmeter PATH Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I8db0a224dd7fa6ee8e750ef508c3ac6a473601ae Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/450196 --- tests/lib/installers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 2dad0071..a141c362 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -334,7 +334,7 @@ def install_iw(device): def install_jmeter(device): '''Install jmeter if not present.''' - device.sendline('export PATH=$PATH:/opt/apache-jmeter-5.0/bin/') + device.sendline('export PATH=$PATH:/opt/apache-jmeter-5.1.1/bin/') device.expect(device.prompt) device.sendline('jmeter --version') try: From c54939b25a1884b7040d9d7b67dfab4a9d6a9669 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 4 Apr 2019 17:50:12 -0500 Subject: [PATCH 711/947] devices: debian_isc: convert ip address to object before comparison Otherwise this is a simple string Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Id63b338d576ef6ccc2f12116c8fec3376da82b4f Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/450221 --- devices/debian_isc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index bd1a6168..7ad52a08 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -472,7 +472,7 @@ def _restart_dhcp_with_lock(self): try: chk_ip = self.get_interface_ip6addr(self.iface_dut) - if chk_ip not in self.prov_nw_ipv6: + if ipaddress.IPv6Address(unicode(chk_ip)) not in self.prov_nw_ipv6: do_ipv6 = False except: do_ipv6 = False From 90440a5412b0ee20593ab962d0a017944366b679 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 5 Apr 2019 12:19:45 -0500 Subject: [PATCH 712/947] devices: debian: reorder start lan client Not 100% sure how to handle this yet, but let's get an ipv6 addr first so if we do end up getting and ipv4 addr we also get an ipv4 nameserver. In the future this all needs to be cleaned up because the LAN client might not even get an ipv4 address Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I1c35cda11b20795de747edfcbd3a04a5dec99dd0 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/450323 --- devices/debian.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 2b497619..89e1cccd 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -573,6 +573,12 @@ def setup_as_lan_device(self): self.expect(self.prompt) def start_lan_client(self, wan_gw=None): + # very casual try for ipv6 addr, if we don't get one don't fail for now + self.enable_ipv6(self.iface_dut) + self.sendline('dhclient -6 -i %s -v' % self.iface_dut) + if 0 == self.expect([pexpect.TIMEOUT] + self.prompt, timeout=15): + self.sendcontrol('c') + # TODO: this should not be required (fix at some point...) self.sendline('sysctl -w net.ipv6.conf.%s.accept_dad=0' % self.iface_dut) self.sendline('ip link set down %s && ip link set up %s' % (self.iface_dut, self.iface_dut)) @@ -582,7 +588,7 @@ def start_lan_client(self, wan_gw=None): self.sendline('\nifconfig %s up' % self.iface_dut) self.expect('ifconfig %s up' % self.iface_dut) self.expect(self.prompt) - self.sendline("dhclient -r %s" % self.iface_dut) + self.sendline("dhclient -4 -r %s" % self.iface_dut) self.expect(self.prompt) self.sendline('\nifconfig %s 0.0.0.0' % self.iface_dut) self.expect(self.prompt) @@ -595,7 +601,7 @@ def start_lan_client(self, wan_gw=None): self.expect(self.prompt) for attempt in range(3): try: - self.sendline('dhclient -v %s' % self.iface_dut) + self.sendline('dhclient -4 -v %s' % self.iface_dut) self.expect('DHCPOFFER', timeout=30) self.expect(self.prompt) break @@ -604,12 +610,8 @@ def start_lan_client(self, wan_gw=None): else: raise Exception("Error: Device on LAN couldn't obtain address via DHCP.") - # very casual try for ipv6 addr, if we don't get one don't fail for now - self.enable_ipv6(self.iface_dut) - self.sendline('dhclient -6 -i %s -v' % self.iface_dut) - if 0 == self.expect([pexpect.TIMEOUT] + self.prompt, timeout=15): - self.sendcontrol('c') - + self.sendline('cat /etc/resolv.conf') + self.expect(self.prompt) self.sendline('ip addr show dev %s' % self.iface_dut) self.expect(self.prompt) self.sendline('ip route') @@ -630,6 +632,8 @@ def start_lan_client(self, wan_gw=None): self.expect_exact("ip route | grep %s | awk '{print $1}'" % ip_addr) self.expect(self.prompt) self.lan_network = ipaddress.IPv4Network(self.before.strip().decode()) + self.sendline('ip -6 route') + self.expect(self.prompt) # Setup HTTP proxy, so board webserver is accessible via this device self.sendline('curl --version') From 6ab9ee5aed3640d26de50ec4f8d94c64059aad3f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 5 Apr 2019 12:21:18 -0500 Subject: [PATCH 713/947] tests: jmeter: re-enable results, and make time configurable Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ia59fb9be351f5891436b4ca0263cab290b15b8bb Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/450324 --- tests/jmeter.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/tests/jmeter.py b/tests/jmeter.py index 943c3ce5..194b5eb0 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -12,6 +12,7 @@ class JMeter(rootfs_boot.RootFSBootTest): jmx = "https://jmeter.apache.org/demos/ForEachTest2.jmx" shortname = "ForEachTest2" + default_time = 600 def runTest(self): install_jmeter(lan) @@ -32,7 +33,7 @@ def runTest(self): lan.sendline('JVM_ARGS="-Xms4096m -Xmx8192m" jmeter -n -t test.jmx -l foo.log -e -o output') lan.expect_exact('jmeter -n -t test.jmx -l foo.log -e -o output') - for i in range(600): + for i in range(self.default_time): if 0 != lan.expect([pexpect.TIMEOUT] + prompt, timeout=5): break; conns = board.get_nf_conntrack_conn_count() @@ -59,15 +60,15 @@ def recover(self): lan.expect(prompt) board.touch() - #print "Copying files from lan to dir = %s" % self.config.output_dir - #lan.sendline('readlink -f output/') - #lan.expect('readlink -f output/') - #board.touch() - #lan.expect(prompt) - #board.touch() - #fname=lan.before.strip() - #board.touch() - #scp_from(fname, lan.ipaddr, lan.username, lan.password, lan.port, os.path.join(self.config.output_dir, 'jmeter_%s' % self.shortname)) + print "Copying files from lan to dir = %s" % self.config.output_dir + lan.sendline('readlink -f output/') + lan.expect('readlink -f output/') + board.touch() + lan.expect(prompt) + board.touch() + fname=lan.before.strip() + board.touch() + scp_from(fname, lan.ipaddr, lan.username, lan.password, lan.port, os.path.join(self.config.output_dir, 'jmeter_%s' % self.shortname)) # let board settle down board.expect(pexpect.TIMEOUT, timeout=30) From 7c16f570b43e470b7c7a702ea821a03dc71292e9 Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Fri, 5 Apr 2019 22:38:00 +0530 Subject: [PATCH 714/947] tests: lib: common.py snmp_mib_set() - Modified for reg-ex for getting hex-string value --- tests/lib/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/lib/common.py b/tests/lib/common.py index 74261666..4eb7d9dc 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -421,7 +421,7 @@ def snmp_mib_set(device, board, iface_ip, mib_name, index, set_type, set_value, elif set_type == "x": set_value_hex = set_value[2:].upper() set_value_output = ' '.join([set_value_hex[i:i+2] for i in range(0, len(set_value_hex), 2)]) - idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\S+\:\s+(%s)\r\n' % set_value_output] + device.prompt, timeout=40) + idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\S+\:\s+(%s)\s+\r\n' % set_value_output] + device.prompt, timeout=40) assert idx==1,"Setting the mib %s" % mib_name snmp_out = device.match.group(1) device.expect(device.prompt) From bcbbefaea30d7ff7abc7e2ec037fe8578cc74c3d Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Mon, 8 Apr 2019 20:41:25 +0530 Subject: [PATCH 715/947] devices : casa_cmts: Modified the grouping in get_ertr_ipv4() --- devices/casa_cmts.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index c86a9952..ff436b05 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -487,7 +487,7 @@ def get_ertr_ipv4(self, mac): self.expect(self.prompt) ertr_ipv4 = re.search('(%s) .*(eRouter)'% ValidIpv4AddressRegex ,self.before) if ertr_ipv4: - ipv4 =ertr_ipv4.group(0) + ipv4 =ertr_ipv4.group(1) return ipv4 else: return None From 66801dd894e56989c9c477d85d845c6db7579b3a Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Wed, 3 Apr 2019 21:53:00 +0200 Subject: [PATCH 716/947] devices: base: set_printk is wrapped in a try/except block Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/base.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/devices/base.py b/devices/base.py index d2221b82..e395f031 100644 --- a/devices/base.py +++ b/devices/base.py @@ -250,8 +250,10 @@ def disable_ipv6(self, interface): self.expect(self.prompt, timeout=30) def set_printk(self, CUR=1, DEF=1, MIN=1, BTDEF=7): - self.sendline('echo "%d %d %d %d" > /proc/sys/kernel/printk'% (CUR, DEF, MIN, BTDEF)) - self.expect(self.prompt) - if not BFT_DEBUG: - common.print_bold("printk set to %d %d %d %d" % (CUR, DEF, MIN, BTDEF)) - + try: + self.sendline('echo "%d %d %d %d" > /proc/sys/kernel/printk'% (CUR, DEF, MIN, BTDEF)) + self.expect(self.prompt, timeout=10) + if not BFT_DEBUG: + common.print_bold("printk set to %d %d %d %d" % (CUR, DEF, MIN, BTDEF)) + except: + pass From 50b946f8846a9c292957a26a46b63bc901aeeef1 Mon Sep 17 00:00:00 2001 From: gerben <gerben_chen@compalbn.com> Date: Wed, 3 Apr 2019 10:11:00 +0800 Subject: [PATCH 717/947] lib: gui_helper: add select option by name for GUI add select option by name for GUI Signed-off-by: gerben <gerben_chen@compalbn.com> --- tests/lib/gui_helper.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/lib/gui_helper.py b/tests/lib/gui_helper.py index aaba7ca9..7b0d6bf0 100644 --- a/tests/lib/gui_helper.py +++ b/tests/lib/gui_helper.py @@ -40,7 +40,7 @@ def click_button_xpath(web_gui, clickbutton): except NoSuchElementException: return False -def select_option(web_gui, select_button, select_value): +def select_option_by_id(web_gui, select_button, select_value): try: #To select the option required select = Select(web_gui.find_element_by_id(select_button)) @@ -50,6 +50,16 @@ def select_option(web_gui, select_button, select_value): except NoSuchElementException: return None +def select_option_by_name(web_gui, select_button, select_value): + try: + #To select the option required + select = Select(web_gui.find_element_by_name(select_button)) + select.select_by_visible_text(select_value) + time.sleep(5) + return select + except NoSuchElementException: + return None + def get_drop_down_value(web_gui, get_value): try: #To get the value which already exists From 6e90b0975939e5f348af0b8ecff8af30897514ec Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 11 Apr 2019 11:22:54 -0500 Subject: [PATCH 718/947] devices: debian: drop startswith for args without options This fixes a bug with v4 vs v6 dhcp client for wan Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I831817b4e8d2ed79e6c56010355c85f292522b27 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/450950 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/debian.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 89e1cccd..e6298a42 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -136,13 +136,13 @@ def __init__(self, # TODO: remove wan-static-route at some point above if opt.startswith('static-route:'): self.static_route = opt.replace('static-route:', '').replace('-', ' via ') - if opt.startswith('wan-dhcp-client'): + if opt == 'wan-dhcp-client': self.wan_dhcp = True - if opt.startswith('wan-no-eth0'): + if opt == 'wan-no-eth0': self.wan_no_eth0 = True - if opt.startswith('wan-no-dhcp-sever'): + if opt == 'wan-no-dhcp-sever': self.wan_dhcp_server = False - if opt.startswith('wan-dhcp-client-v6'): + if opt == 'wan-dhcp-client-v6': self.wan_dhcpv6 = True try: From 00e758b76f69997cacf75dd97c23933108fb71da Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 11 Apr 2019 13:11:56 -0500 Subject: [PATCH 719/947] tests: iperf3: fix setting wan ipv6 address This is decided later, so we can't set at parse time otherwise we will get a stale address Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I0c878e4ce250b946a8d6824d69e26a2b16ec1228 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/450960 --- tests/iperf3_test.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/iperf3_test.py b/tests/iperf3_test.py index e1a9ae41..2ac57528 100644 --- a/tests/iperf3_test.py +++ b/tests/iperf3_test.py @@ -85,13 +85,19 @@ class iPerf3_v6Test(iPerf3Test): '''iPerf3 ipv6 generic performance tests''' opts = "-6" - target_ip = wan.gwv6 + + def runTest(self): + self.target_ip = wan.gwv6 + super(iPerf3_v6Test, self).runTest() class iPerf3R_v6Test(iPerf3Test): '''iPerf3 ipv6 reverse generic performance tests''' opts = "-6 -R" - target_ip = wan.gwv6 + + def runTest(self): + self.target_ip = wan.gwv6 + super(iPerf3R_v6Test, self).runTest() class iPerf3Test2nd(iPerf3Test): '''iPerf3 on second server port''' From c2086d475daf3935d0a14155606349fc8082d8cd Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 11 Apr 2019 13:12:38 -0500 Subject: [PATCH 720/947] devices: debian: set default ipv6 address to None This way we won't use the default one unless it's configured as such. Also we will know if things are wrong because the address will be clearly wrong as None is not an ipv6 address Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I9196f3cc02b578f11dc9c49052d631bec19caa23 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/450961 --- devices/debian.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index e6298a42..c72749d8 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -43,7 +43,7 @@ class DebianBox(base.BaseDevice): gw = None # TODO: does this need to be calculated? - gwv6 = ipaddress.IPv6Address(u"2001:dead:beef:1::2") + gwv6 = None ipv6_prefix = 64 def __init__(self, @@ -516,6 +516,7 @@ def setup_as_wan_gateway(self): self.expect(self.prompt) self.gwv6 = self.get_interface_ip6addr(self.iface_dut) elif self.gwv6 is not None: + self.gwv6 = ipaddress.IPv6Address(u"2001:dead:beef:1::2") # we are bypass this for now (see http://patchwork.ozlabs.org/patch/117949/) self.sendline('sysctl -w net.ipv6.conf.%s.accept_dad=0' % self.iface_dut) self.expect(self.prompt) From ad7f3762ab8d683f00a24748438ac7d341348b5b Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Mon, 15 Apr 2019 19:03:27 +0200 Subject: [PATCH 721/947] devices: base: Added prefer_ipv4(self, pref=True) Edits the /etc/gai.conf file, this is to give/remove ipv4 preference (by default ipv6 is preferred) No need to restart ipv4/6 See /etc/gai.conf inline comments for more details Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: I68fe5149bb34f854424244dbbe455faaf12d4ef8 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/451191 Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> Tested-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/base.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/devices/base.py b/devices/base.py index e395f031..a62d46fe 100644 --- a/devices/base.py +++ b/devices/base.py @@ -257,3 +257,16 @@ def set_printk(self, CUR=1, DEF=1, MIN=1, BTDEF=7): common.print_bold("printk set to %d %d %d %d" % (CUR, DEF, MIN, BTDEF)) except: pass + + def prefer_ipv4(self, pref=True): + """Edits the /etc/gai.conf file + + This is to give/remove ipv4 preference (by default ipv6 is preferred) + See /etc/gai.conf inline comments for more details + """ + if pref is True: + self.sendline("sed -i 's/^#precedence ::ffff:0:0\/96 100/precedence ::ffff:0:0\/96 100/' /etc/gai.conf") + else: + self.sendline("sed -i 's/^precedence ::ffff:0:0\/96 100/#precedence ::ffff:0:0\/96 100/' /etc/gai.conf") + self.expect(self.prompt) + From f5c7d0179a79e10e512f91439cb439e107f582c4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 4 Apr 2019 16:41:39 -0500 Subject: [PATCH 722/947] devices: debian_isc: add basic ISC config items No functional change, just adding more attribute definitions, remove hash size to make things more simple, mark items that need to move to host section Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ie925d3ce2b700b13741662c199d4528116b6ef6f Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/450227 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Reviewed-by: ketan tewari <ktewari.contractor@libertyglobal.com> --- devices/debian_isc.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 7ad52a08..78078624 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -67,22 +67,29 @@ def setup_dhcp6_config(self, board_config): preferred-lifetime 7200; option dhcp-renewal-time 3600; option dhcp-rebinding-time 5400; + allow leasequery; prefix-length-mode prefer; -option dhcp6.name-servers 2001:dead:beef:1::1; -option dhcp6.domain-search "test.example.com","example.com"; option dhcp6.info-refresh-time 21600; option dhcp6.ia_pd code 25 = { integer 32, integer 32, integer 32, integer 16, integer 16, integer 32, integer 32, integer 8, ip6-address}; option dhcp6.gateway code 32003 = ip6-address; -option space docsis code width 2 length width 2 hash size 100; +option space docsis code width 2 length width 2; +option docsis.device-type code 2 = text; option docsis.tftp-servers code 32 = array of ip6-address; option docsis.configuration-file code 33 = text; option docsis.syslog-servers code 34 = array of ip6-address; +option docsis.device-id code 36 = string; option docsis.time-servers code 37 = array of ip6-address; option docsis.time-offset code 38 = signed integer 32; +option docsis.cm-mac-address code 1026 = string; option vsio.docsis code 4491 = encapsulate docsis; +# TODO: move to host section +#option dhcp6.aftr-name ""; +option dhcp6.name-servers 2001:dead:beef:1::1; +option dhcp6.domain-search "test.example.com","example.com"; + subnet6 2001:dead:beef:1::/64 { interface ###IFACE###; ignore booting; From a0e9962ac7f0e77941949eb0cbca7aedb62bafcd Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 16 Apr 2019 22:14:46 -0500 Subject: [PATCH 723/947] tests: jmeter: rework how jmeter is run and what files are saved This let's us save data from output to the working directory, among other files Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I65ef1e42cdbd9e64e5c6f1fb4a87c32c5a39a1af Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/451309 --- tests/jmeter.py | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/tests/jmeter.py b/tests/jmeter.py index 194b5eb0..b93b0f49 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -15,24 +15,32 @@ class JMeter(rootfs_boot.RootFSBootTest): default_time = 600 def runTest(self): + self.dir = 'jmeter_%s' % self.shortname install_jmeter(lan) + lan.sendline('rm -rf $HOME/%s' % self.dir) + lan.expect(prompt) + lan.sendline('mkdir -p $HOME/%s/wd' % self.dir) + lan.expect(prompt) + lan.sendline('mkdir -p $HOME/%s/results' % self.dir) + lan.expect(prompt) + if self.jmx.startswith('http'): - lan.sendline('curl %s > test.jmx' % self.jmx) + lan.sendline('curl %s > $HOME/%s/test.jmx' % (self.jmx, self.dir)) lan.expect(prompt) else: print("Copying %s to lan device" % self.jmx) - lan.copy_file_to_server(self.jmx, dst='/root/test.jmx') - - lan.sendline('rm -rf output *.log') - lan.expect(prompt) - lan.sendline('mkdir -p output') - lan.expect(prompt) + lan.sendline('echo $HOME') + lan.expect_exact('echo $HOME') + lan.expect(prompt) + lan.copy_file_to_server(self.jmx, dst=lan.before.strip() + '/%s/test.jmx' % self.dir) board.collect_stats(stats=['mpstat']) - lan.sendline('JVM_ARGS="-Xms4096m -Xmx8192m" jmeter -n -t test.jmx -l foo.log -e -o output') - lan.expect_exact('jmeter -n -t test.jmx -l foo.log -e -o output') + lan.sendline('cd $HOME/%s/wd' % self.dir) + lan.expect(prompt) + lan.sendline('JVM_ARGS="-Xms4096m -Xmx8192m" jmeter -n -t ../test.jmx -l foo.log -e -o $HOME/%s/results' % self.dir) + lan.expect_exact('foo.log -e -o $HOME/%s/results' % self.dir) for i in range(self.default_time): if 0 != lan.expect([pexpect.TIMEOUT] + prompt, timeout=5): break; @@ -47,8 +55,8 @@ def runTest(self): raise Exception("jmeter did not have enough time to complete") - #lan.sendline('rm -rf output') - #lan.expect(prompt) + lan.sendline('cd -') + lan.expect(prompt) lan.sendline('rm test.jmx') lan.expect(prompt) @@ -61,14 +69,14 @@ def recover(self): board.touch() print "Copying files from lan to dir = %s" % self.config.output_dir - lan.sendline('readlink -f output/') - lan.expect('readlink -f output/') + lan.sendline('readlink -f $HOME/%s/' % self.dir) + lan.expect_exact('readlink -f $HOME/%s/' % self.dir) board.touch() lan.expect(prompt) board.touch() fname=lan.before.strip() board.touch() - scp_from(fname, lan.ipaddr, lan.username, lan.password, lan.port, os.path.join(self.config.output_dir, 'jmeter_%s' % self.shortname)) + scp_from(fname, lan.ipaddr, lan.username, lan.password, lan.port, self.config.output_dir) # let board settle down board.expect(pexpect.TIMEOUT, timeout=30) From 2db35101e27c7825cac0da23f8007de552fb1094 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 17 Apr 2019 08:56:19 -0500 Subject: [PATCH 724/947] devices: debian: force apt to ipv4 for now This is causing issues installing packages later, so let's force to ipv4 because we don't test installing packages we just want to use them Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I2123dcfc53cb78a7f9fa96c73c6a982f6550dd0e Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/451363 --- devices/debian.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index c72749d8..901499e2 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -246,6 +246,9 @@ def install_pkgs(self): if self.pkgs_installed == True: return + self.sendline('echo "Acquire::ForceIPv4 "true";" > /etc/apt/apt.conf.d/99force-ipv4') + self.expect(self.prompt) + if not self.wan_no_eth0 and not self.wan_dhcp and not self.install_pkgs_after_dhcp and not getattr(self, 'standalone_provisioner', False): self.sendline('ifconfig %s down' % self.iface_dut) self.expect(self.prompt) From 3ce41963e4a09fed4568f0f5312f6599f73d71f1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 17 Apr 2019 09:38:53 -0500 Subject: [PATCH 725/947] tests: jmeter: shorten expect_exact since it's cut at 80 chars Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ic7c36b0fa079bde813af42d38e6b4213a6fe0251 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/451378 --- tests/jmeter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/jmeter.py b/tests/jmeter.py index b93b0f49..d6e171ee 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -40,7 +40,7 @@ def runTest(self): lan.sendline('cd $HOME/%s/wd' % self.dir) lan.expect(prompt) lan.sendline('JVM_ARGS="-Xms4096m -Xmx8192m" jmeter -n -t ../test.jmx -l foo.log -e -o $HOME/%s/results' % self.dir) - lan.expect_exact('foo.log -e -o $HOME/%s/results' % self.dir) + lan.expect_exact('$HOME/%s/results' % self.dir) for i in range(self.default_time): if 0 != lan.expect([pexpect.TIMEOUT] + prompt, timeout=5): break; From 780bd7cfaea73069407921978ebd503ba3130dba Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 17 Apr 2019 09:41:19 -0500 Subject: [PATCH 726/947] tests: jmeter: explictly strip r and n Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I47d6fa5c11232b357583b55f28714723eeb70a92 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/451379 --- tests/jmeter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/jmeter.py b/tests/jmeter.py index d6e171ee..36928f1b 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -74,7 +74,7 @@ def recover(self): board.touch() lan.expect(prompt) board.touch() - fname=lan.before.strip() + fname=lan.before.replace('\n', '').replace('\r', '') board.touch() scp_from(fname, lan.ipaddr, lan.username, lan.password, lan.port, self.config.output_dir) From 7cdfc1a4528a367c341180e29c3a17cae8f926ba Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 17 Apr 2019 10:20:06 -0500 Subject: [PATCH 727/947] tests: jmeter: fix another over 80 char line issue Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ic62388abe7bff432b19cf9693c7a3bd387d97315 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/451385 --- tests/jmeter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/jmeter.py b/tests/jmeter.py index 36928f1b..480d9a15 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -70,7 +70,7 @@ def recover(self): print "Copying files from lan to dir = %s" % self.config.output_dir lan.sendline('readlink -f $HOME/%s/' % self.dir) - lan.expect_exact('readlink -f $HOME/%s/' % self.dir) + lan.expect_exact('$HOME/%s/' % self.dir) board.touch() lan.expect(prompt) board.touch() From 7dea315ea38106ecdd34182cdcfe104a7af7338a Mon Sep 17 00:00:00 2001 From: Kalpana Vetrivel <kvetrivel.contractor@libertyglobal.com> Date: Wed, 17 Apr 2019 21:23:06 +0530 Subject: [PATCH 728/947] lib: wifi: Added "self" argu for func in wifi_stub() class Signed-off-by: Kalpana Vetrivel <kvetrivel.contractor@libertyglobal.com> --- tests/lib/wifi.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/lib/wifi.py b/tests/lib/wifi.py index f39e8c6e..3cdf0828 100644 --- a/tests/lib/wifi.py +++ b/tests/lib/wifi.py @@ -215,7 +215,7 @@ def get_broadcast(self, *args, **kwargs): raise Exception("Not implemented!") def get_channel_number(self, *args, **kwargs): raise Exception("Not implemented!") - def prepare(): + def prepare(self): pass - def cleanup(): + def cleanup(self): pass From 1c0f15cb6d8e572288f919b7651ff0058c7544e3 Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalanaiappan.contractor@libertyglobal.com> Date: Wed, 17 Apr 2019 13:42:56 +0530 Subject: [PATCH 729/947] tests: lib: common.py: Modified snmp_mib_get to remove "" Signed-off-by: Panimalar Palaniappan <ppalanaiappan.contractor@libertyglobal.com> --- tests/lib/common.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/lib/common.py b/tests/lib/common.py index 4eb7d9dc..52a79be9 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -417,7 +417,7 @@ def snmp_mib_set(device, board, iface_ip, mib_name, index, set_type, set_value, if set_type == "i" or set_type == "a" or set_type == "u": idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\S+\:\s+(%s)\r\n' % set_value] + device.prompt, timeout=time_out) elif set_type == "s": - idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\S+\:\s+("%s")\r\n' % set_value] + device.prompt, timeout=time_out) + idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\S+\:\s+\"(%s)\"\r\n' % set_value] + device.prompt, timeout=time_out) elif set_type == "x": set_value_hex = set_value[2:].upper() set_value_output = ' '.join([set_value_hex[i:i+2] for i in range(0, len(set_value_hex), 2)]) @@ -444,6 +444,7 @@ def snmp_mib_get(device, board, iface_ip, mib_name, index, timeout=10, retry=3): assert idx==1,"Getting the mib %s"% mib_name snmp_out = device.match.group(1) device.expect(device.prompt) + snmp_out = snmp_out.strip("\"") return snmp_out def hex2ipv6(hexstr): From 1012b82746a263ff11cddbb24506bb59bb45131d Mon Sep 17 00:00:00 2001 From: luke <luke_tseng@compalbn.com> Date: Thu, 18 Apr 2019 11:18:37 +0800 Subject: [PATCH 730/947] devices: debian.py: fix ipv6 addr with DHCP check - try to get ipv6 addr from DHCP if not get one. Signed-off-by: luke <luke_tseng@compalbn.com> --- devices/debian.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 901499e2..1ea1d321 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -511,13 +511,16 @@ def setup_as_wan_gateway(self): # we are bypass this for now (see http://patchwork.ozlabs.org/patch/117949/) self.sendline('sysctl -w net.ipv6.conf.%s.accept_dad=0' % self.iface_dut) self.expect(self.prompt) - self.sendline('dhclient -6 -i -v %s -r' % self.iface_dut) - self.expect(self.prompt) - self.sendline('dhclient -6 -i -v %s' % self.iface_dut) - self.expect(self.prompt) - self.sendline('ip -6 addr') - self.expect(self.prompt) - self.gwv6 = self.get_interface_ip6addr(self.iface_dut) + try: + self.gwv6 = self.get_interface_ip6addr(self.iface_dut) + except: + self.sendline('dhclient -6 -i -r %s' % self.iface_dut) + self.expect(self.prompt) + self.sendline('dhclient -6 -i -v %s' % self.iface_dut) + self.expect(self.prompt) + self.sendline('ip -6 addr') + self.expect(self.prompt) + self.gwv6 = self.get_interface_ip6addr(self.iface_dut) elif self.gwv6 is not None: self.gwv6 = ipaddress.IPv6Address(u"2001:dead:beef:1::2") # we are bypass this for now (see http://patchwork.ozlabs.org/patch/117949/) From 35ac80057823d2649c7d9b5cb26a50fdff97738c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 16 Apr 2019 15:49:04 -0500 Subject: [PATCH 731/947] devices: debian: fix logic for setting default gwv6 address This was a bug, we can't just set the ipv6 address after we determine it's configured properly... just do nothing if no ipv6 address is configured Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Idab747d13bec78b88ae85b92b91dc85af83b02c0 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/451289 Reviewed-by: ketan tewari <ktewari.contractor@libertyglobal.com> --- devices/debian.py | 1 - 1 file changed, 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index 1ea1d321..f50a2296 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -522,7 +522,6 @@ def setup_as_wan_gateway(self): self.expect(self.prompt) self.gwv6 = self.get_interface_ip6addr(self.iface_dut) elif self.gwv6 is not None: - self.gwv6 = ipaddress.IPv6Address(u"2001:dead:beef:1::2") # we are bypass this for now (see http://patchwork.ozlabs.org/patch/117949/) self.sendline('sysctl -w net.ipv6.conf.%s.accept_dad=0' % self.iface_dut) self.expect(self.prompt) From 1d97a221f9dd3758f186929ee7c7d677af317bb9 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 16 Apr 2019 15:06:37 -0500 Subject: [PATCH 732/947] devices: debian_isc: bump up cm, erouter, mta v6 subnets to next 61 prefx CASA 3200 does not support more ipv6 address so let's pick addresses that can at least work with the lowest common demonitator Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I5adea6a39bdce1b53fb155d81eeca3fa4365ad22 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/451286 --- devices/casa_cmts.py | 7 +++++-- devices/debian_isc.py | 24 ++++++++++++------------ 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index ff436b05..43fcc55d 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -536,8 +536,11 @@ def get_center_freq(self, mac_domain=None): print "Setting up IPv6 address, bundles, routes, etc" cmts.set_iface_ipv6addr('gige 0', '2001:dead:beef:1::cafe/64') cmts.add_route6('::/0', '2001:dead:beef:1::1') - cmts.add_ipv6_bundle_addrs(1, "2001:dead:beef:1::1", "2001:dead:beef:2::cafe/64", - secondary_ips=["2001:dead:beef:3::cafe/64", "2001:dead:beef:4::cafe/64"]) + # TODO: casa 3200 cmts only supports one ip bundle for ipv6.... + # so we use a ipv6 address 2001:dead:beef:4::cafe/62 for that which means we can bump + # these up too + cmts.add_ipv6_bundle_addrs(1, "2001:dead:beef:1::1", "2001:dead:beef:4::cafe/64", + secondary_ips=["2001:dead:beef:5::cafe/64", "2001:dead:beef:6::cafe/64"]) sys.exit(0) # TODO: example for now, need to parse args diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 78078624..8d985717 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -36,12 +36,12 @@ def __init__(self, *args, **kwargs): self.prov_ipv6 = ipaddress.IPv6Address(kwargs.pop('prov_ipv6', u"2001:dead:beef:1::1")) self.prov_nw_ipv6 = ipaddress.IPv6Interface(str(self.prov_ipv6) + unicode('/%s' % self.ipv6_prefix)).network - self.cm_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('cm_gateway_v6', u"2001:dead:beef:2::cafe")) - self.cm_network_v6 = ipaddress.IPv6Network(kwargs.pop('cm_network_v6', u"2001:dead:beef:2::/64")) - self.mta_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('mta_gateway_v6', u"2001:dead:beef:3::cafe")) - self.mta_network_v6 = ipaddress.IPv6Network(kwargs.pop('mta_network_v6', u"2001:dead:beef:3::/64")) - self.open_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('open_gateway_v6', u"2001:dead:beef:4::cafe")) - self.open_network_v6 = ipaddress.IPv6Network(kwargs.pop('open_network_v6', u"2001:dead:beef:4::/64")) + self.cm_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('cm_gateway_v6', u"2001:dead:beef:4::cafe")) + self.cm_network_v6 = ipaddress.IPv6Network(kwargs.pop('cm_network_v6', u"2001:dead:beef:4::/64")) + self.mta_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('mta_gateway_v6', u"2001:dead:beef:5::cafe")) + self.mta_network_v6 = ipaddress.IPv6Network(kwargs.pop('mta_network_v6', u"2001:dead:beef:5::/64")) + self.open_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('open_gateway_v6', u"2001:dead:beef:6::cafe")) + self.open_network_v6 = ipaddress.IPv6Network(kwargs.pop('open_network_v6', u"2001:dead:beef:6::/64")) self.prov_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('prov_gateway_v6', u"2001:dead:beef:1::cafe")) self.erouter_net = ipaddress.IPv6Network(kwargs.pop('erouter_net', u"2001:dead:beef:f000::/55")) @@ -97,9 +97,9 @@ def setup_dhcp6_config(self, board_config): shared-network boardfarm { interface ###IFACE###; - subnet6 2001:dead:beef:2::/64 { + subnet6 2001:dead:beef:4::/64 { pool6 { - range6 2001:dead:beef:2::10 2001:dead:beef:2::100; + range6 2001:dead:beef:4::10 2001:dead:beef:4::100; } option docsis.tftp-servers ###PROV_IPV6###; option docsis.time-servers ###PROV_IPV6###; @@ -107,17 +107,17 @@ def setup_dhcp6_config(self, board_config): option docsis.syslog-servers ###PROV_IPV6### ; option docsis.time-offset 5000; } - subnet6 2001:dead:beef:3::/64 { + subnet6 2001:dead:beef:5::/64 { pool6 { - range6 2001:dead:beef:3::10 2001:dead:beef:3::100; + range6 2001:dead:beef:5::10 2001:dead:beef:5::100; } option docsis.tftp-servers ###PROV_IPV6###; option docsis.time-servers ###PROV_IPV6###; option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; } - subnet6 2001:dead:beef:4::/64 { + subnet6 2001:dead:beef:6::/64 { pool6 { - range6 2001:dead:beef:4::10 2001:dead:beef:4::100; + range6 2001:dead:beef:6::10 2001:dead:beef:6::100; } prefix6 ###EROUTER_NET_START### ###EROUTER_NET_END### /###EROUTER_PREFIX###; option dhcp6.solmax-rt 240; From 3720a0a4a840ad5f6a8a09dfc8aa2addfbebb976 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 16 Apr 2019 18:07:22 -0500 Subject: [PATCH 733/947] devices: debian_isc: remove mta for ipv6 (doesn't really exist) Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Icc32ca46efb9648a3a860387372c8b9c0ad67210 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/451306 --- devices/debian_isc.py | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 8d985717..35c111ef 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -38,8 +38,6 @@ def __init__(self, *args, **kwargs): self.cm_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('cm_gateway_v6', u"2001:dead:beef:4::cafe")) self.cm_network_v6 = ipaddress.IPv6Network(kwargs.pop('cm_network_v6', u"2001:dead:beef:4::/64")) - self.mta_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('mta_gateway_v6', u"2001:dead:beef:5::cafe")) - self.mta_network_v6 = ipaddress.IPv6Network(kwargs.pop('mta_network_v6', u"2001:dead:beef:5::/64")) self.open_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('open_gateway_v6', u"2001:dead:beef:6::cafe")) self.open_network_v6 = ipaddress.IPv6Network(kwargs.pop('open_network_v6', u"2001:dead:beef:6::/64")) self.prov_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('prov_gateway_v6', u"2001:dead:beef:1::cafe")) @@ -107,14 +105,6 @@ def setup_dhcp6_config(self, board_config): option docsis.syslog-servers ###PROV_IPV6### ; option docsis.time-offset 5000; } - subnet6 2001:dead:beef:5::/64 { - pool6 { - range6 2001:dead:beef:5::10 2001:dead:beef:5::100; - } - option docsis.tftp-servers ###PROV_IPV6###; - option docsis.time-servers ###PROV_IPV6###; - option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; - } subnet6 2001:dead:beef:6::/64 { pool6 { range6 2001:dead:beef:6::10 2001:dead:beef:6::100; @@ -148,10 +138,7 @@ def setup_dhcp6_config(self, board_config): # insert tftp server, TODO: how to clean up? if 'options' not in board_config['extra_provisioning_v6']['cm']: board_config['extra_provisioning_v6']['cm']['options'] = {} - if 'options' not in board_config['extra_provisioning_v6']['mta']: - board_config['extra_provisioning_v6']['mta']['options'] = {} board_config['extra_provisioning_v6']['cm']['options']['docsis.tftp-servers'] = tftp_server - board_config['extra_provisioning_v6']['mta']['options']['docsis.tftp-servers'] = tftp_server # there is probably a better way to construct this file... for dev, cfg_sec in board_config['extra_provisioning_v6'].iteritems(): @@ -359,9 +346,6 @@ def update_cmts_isc_dhcp_config(self, board_config): } # DHCPv6 defaults for when board does not supply defaults - if 'mta_mac' in board_config and not 'mta' in board_config['extra_provisioning_v6']: - board_config['extra_provisioning_v6']["mta"] = \ - { "hardware ethernet": board_config['mta_mac'] } if 'cm_mac' in board_config and not 'cm' in board_config['extra_provisioning_v6']: board_config['extra_provisioning_v6']["cm"] = \ { "hardware ethernet": board_config['cm_mac'], @@ -430,7 +414,7 @@ def provision_board(self, board_config): self.sendline('ip route add %s via %s' % (nw, self.prov_gateway)) self.expect(self.prompt) - for nw in [self.cm_gateway_v6, self.mta_gateway_v6, self.open_gateway_v6]: + for nw in [self.cm_gateway_v6, self.open_gateway_v6]: self.sendline('ip -6 route add %s/%s via %s dev %s' % (nw, self.ipv6_prefix, self.prov_gateway_v6, self.iface_dut)) self.expect(self.prompt) From 48fe0ff1317850528316a363402580833cb7c990 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 16 Apr 2019 21:16:43 -0500 Subject: [PATCH 734/947] devices: debian_isc: add classes for CM and erouter Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I3e4e1fc0e137c6d8edc62c686246448d3a71df9e Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/451307 --- devices/debian_isc.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 35c111ef..80be3ca9 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -88,6 +88,13 @@ def setup_dhcp6_config(self, board_config): option dhcp6.name-servers 2001:dead:beef:1::1; option dhcp6.domain-search "test.example.com","example.com"; +class "CM" { + match if option docsis.device-type = "ECM"; +} +class "EROUTER" { + match if option docsis.device-type = "EROUTER"; +} + subnet6 2001:dead:beef:1::/64 { interface ###IFACE###; ignore booting; @@ -98,20 +105,22 @@ def setup_dhcp6_config(self, board_config): subnet6 2001:dead:beef:4::/64 { pool6 { range6 2001:dead:beef:4::10 2001:dead:beef:4::100; + allow members of "CM"; + option docsis.tftp-servers ###PROV_IPV6###; + option docsis.time-servers ###PROV_IPV6###; + option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; + option docsis.syslog-servers ###PROV_IPV6### ; + option docsis.time-offset 5000; } - option docsis.tftp-servers ###PROV_IPV6###; - option docsis.time-servers ###PROV_IPV6###; - option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; - option docsis.syslog-servers ###PROV_IPV6### ; - option docsis.time-offset 5000; } subnet6 2001:dead:beef:6::/64 { pool6 { range6 2001:dead:beef:6::10 2001:dead:beef:6::100; + allow members of "EROUTER"; + option dhcp6.solmax-rt 240; + option dhcp6.inf-max-rt 360; + prefix6 ###EROUTER_NET_START### ###EROUTER_NET_END### /###EROUTER_PREFIX###; } - prefix6 ###EROUTER_NET_START### ###EROUTER_NET_END### /###EROUTER_PREFIX###; - option dhcp6.solmax-rt 240; - option dhcp6.inf-max-rt 360; } } EOF''' From 324523575d337d3986afe51e687ff499db3b996c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 18 Apr 2019 13:21:58 -0500 Subject: [PATCH 735/947] tests: nmap: convert lan test to use touch() Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I495d9afdece1236608395269b148fae2678a09d9 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/451488 --- tests/nmap.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/nmap.py b/tests/nmap.py index fd419208..25b8726e 100644 --- a/tests/nmap.py +++ b/tests/nmap.py @@ -1,7 +1,7 @@ # Copyright (c) 2015 # # All rights reserved. -# +m# # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. @@ -22,8 +22,7 @@ def runTest(self): for i in range(12): if 0 == lan.expect(['Nmap scan report', pexpect.TIMEOUT], timeout=100): break - board.sendcontrol('c') - board.expect(prompt) + board.touch() lan.expect(prompt, timeout=60) open_ports = re.findall("(\d+)/tcp\s+open", lan.before) msg = "Found %s open TCP ports on LAN interface: %s." % \ From 1013932c725e6e4bba19af3aa715df20104abd5b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 19 Apr 2019 09:20:06 -0500 Subject: [PATCH 736/947] tests: nmap: remove random garbage in previous commit Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I1c8890424592f4658ddc38b7508473ab0751881b Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/451547 --- tests/nmap.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/nmap.py b/tests/nmap.py index 25b8726e..e079c1f8 100644 --- a/tests/nmap.py +++ b/tests/nmap.py @@ -1,7 +1,7 @@ # Copyright (c) 2015 # # All rights reserved. -m# +# # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. From 66e54668ff2d4b432fa50a9e94c5cc10f13ba7cf Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Tue, 23 Apr 2019 12:03:27 +0200 Subject: [PATCH 737/947] bft-node: Dockerfile: added 'less' to package list Because it is really useful, and better than 'more' and cat. Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: Iee8f1a6e2d0ead3df28e2cca54a940339ec24975 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/451715 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft-node/Dockerfile | 57 +++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/bft-node/Dockerfile b/bft-node/Dockerfile index d26eed73..3020ad24 100755 --- a/bft-node/Dockerfile +++ b/bft-node/Dockerfile @@ -4,37 +4,38 @@ RUN echo "root:bigfoot1" | chpasswd RUN apt-get update && \ apt-get install -y --no-install-recommends \ - apache2-utils \ - curl \ - dnsutils \ - iperf \ - iperf3 \ - iproute \ - iptables \ - isc-dhcp-server \ - isc-dhcp-client \ - lighttpd \ - net-tools \ - netcat \ - nmap \ - openssh-server \ - pppoe \ - psmisc \ - procps \ - python-pip \ - python-mysqldb \ - tinyproxy \ - traceroute \ - tftpd-hpa \ - tcpdump \ - vim-common \ - xinetd + apache2-utils \ + curl \ + dnsutils \ + iperf \ + iperf3 \ + iproute \ + iptables \ + isc-dhcp-server \ + isc-dhcp-client \ + lighttpd \ + net-tools \ + netcat \ + nmap \ + openssh-server \ + pppoe \ + psmisc \ + procps \ + python-pip \ + python-mysqldb \ + tinyproxy \ + traceroute \ + tftpd-hpa \ + tcpdump \ + vim-common \ + xinetd \ + less # NOTE: apparmor will interfere with dhclient, disable on HOST by running: # sudo service apparmor stop # sudo service apparmor teardown -RUN mkdir /var/run/sshd -RUN sed -i 's/.*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config + RUN mkdir /var/run/sshd + RUN sed -i 's/.*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config -EXPOSE 22 + EXPOSE 22 From 8ca9541b841a64a898ed938b2852090b37d1b9b5 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 24 Apr 2019 13:53:53 -0500 Subject: [PATCH 738/947] tests: jmeter: delete previous run if present Take the last, so we know what we're getting at least Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ia44d4b07429828b26945bca93e2d4a00b08e2005 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/451938 --- tests/jmeter.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/jmeter.py b/tests/jmeter.py index 480d9a15..33d82254 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -1,4 +1,5 @@ import os +import shutil import pexpect import rootfs_boot @@ -7,6 +8,14 @@ from devices import board, lan, prompt from devices.common import scp_from +def rm_r(path): + if not os.path.exists(path): + return + if os.path.isfile(path) or os.path.islink(path): + os.unlink(path) + else: + shutil.rmtree(path) + class JMeter(rootfs_boot.RootFSBootTest): '''Runs JMeter jmx file from LAN device''' @@ -76,6 +85,7 @@ def recover(self): board.touch() fname=lan.before.replace('\n', '').replace('\r', '') board.touch() + rm_r(os.path.join(self.config.output_dir, self.dir)) scp_from(fname, lan.ipaddr, lan.username, lan.password, lan.port, self.config.output_dir) # let board settle down From 9a23fb890b7d6f8b9a72db1d2bb10a45232dd33e Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 22 Apr 2019 12:15:32 -0500 Subject: [PATCH 739/947] devices: axiros_acs: add getcurrent which syncs the set of values in specific namespace Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I6f61c464733e6b58243e9cf4bdce64e950d4ed22 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/451666 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/axiros_acs.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/devices/axiros_acs.py b/devices/axiros_acs.py index b68f7bea..6aada377 100755 --- a/devices/axiros_acs.py +++ b/devices/axiros_acs.py @@ -92,6 +92,12 @@ def get(self, serial_number, param): return None return self.Axiros_GetTicketValue (ticketid) + def getcurrent(self, serial_number, param): + self.get(serial_number, param + '.') + # TODO: note: verified ticket was sent to ACS with all the results in the param namespace + # however the get above does not pull the results so we can't check them here but that's + # not a major issue since the API does not do that for the current implementation + def set(self, serial_number, attr, value): SetParameterValuesParametersClassArray_type = self.client.get_type('ns0:SetParameterValuesParametersClassArray') SetParameterValuesParametersClassArray_data = SetParameterValuesParametersClassArray_type ([{'key': attr, 'value': value}]) From fe37d4c4cf5b969f1ed87ce8b3c3f7d3d3907066 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Wed, 24 Apr 2019 20:07:34 +0200 Subject: [PATCH 740/947] devices: debian: fixed a login issue for non root users container factory commit for a non root user the rexexp was matching the wrong prompt and then skipping the sending of the password Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: I9dfe96a8ef993adda15934936c7eb7257da8cfe9 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/451936 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index f50a2296..daa438bd 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -146,7 +146,7 @@ def __init__(self, self.wan_dhcpv6 = True try: - i = self.expect(["yes/no", "assword:", "Last login"] + self.prompt, timeout=30) + i = self.expect(["yes/no", "assword:", "Last login", username+".*'s password:"] + self.prompt, timeout=30) except pexpect.TIMEOUT as e: raise Exception("Unable to connect to %s." % name) except pexpect.EOF as e: @@ -156,12 +156,12 @@ def __init__(self, if i == 0: self.sendline("yes") i = self.expect(["Last login", "assword:"]) - if i == 1: + if i == 1 or i == 3: self.sendline(password) else: pass # if we did initially get a prompt wait for one here - if i < 3: + if i < 4: self.expect(self.prompt) if ipaddr is None: From ac690dc70b4ea91481a1b00d18c7c236b8d9efed Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 4 Apr 2019 12:37:48 -0500 Subject: [PATCH 741/947] tests: __init__: add exception on incompatible filename Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ia557e991b33b9ff065003ed44c097d54ce2ac692 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/450189 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/__init__.py b/tests/__init__.py index 4bb2c755..4d83b591 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -24,6 +24,8 @@ test_mappings = { } for x in sorted([os.path.basename(f)[:-3] for f in test_files if not "__" in f]): + if x == "tests": + raise Exception("INVALID test file name found, tests.py will cause namespace issues, please rename") try: exec("import %s as test_file" % x) test_mappings[test_file] = [] From 818a5a762aec755e62bc16a4e9c73580faf0386b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 24 Apr 2019 20:09:20 -0500 Subject: [PATCH 742/947] devices: owrt: check that mpstat is still running Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: If39eade4377150d757770eb872537e4f1921aa11 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/452011 --- devices/openwrt_router.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 194aad1b..55be238a 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -601,11 +601,20 @@ def collect_stats(self, stats=[]): self.failed_stats['mpstat'] = float('nan') continue + pp.sendline('ps | grep mpstat') + self.stats.append(stat) def parse_stats(self, dict_to_log={}): pp = self.get_pp_dev() + if 'mpstat' in self.stats: + pp.sendline('ps | grep mpstat') + pp.expect_exact('ps | grep mpstat') + if 0 == pp.expect([pexpect.TIMEOUT, 'mpstat -P ALL 5'], timeout=5): + self.failed_stats['mpstat'] = float('nan') + self.stats.remove('mpstat') + idx = 0 for not_used in range(len(self.stats)): pp.sendline('fg') From 286279979b025d389dfcd32ddd012705c2035dcf Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 24 Apr 2019 20:16:12 -0500 Subject: [PATCH 743/947] devices: owrt: if we fail to kill mpstat, reset console Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I5d2fecbb9b73023b25b17c7ca2deff1aeeb01124 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/452012 --- devices/openwrt_router.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 55be238a..0ab19018 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -588,6 +588,8 @@ def collect_stats(self, stats=[]): pp.expect(pp.prompt) break except: + pp.sendcontrol('d') + pp = self.get_pp_dev() if i == 4: print_bold("FAILED TO KILL MPSTAT!") pp.sendcontrol('c') From 1a0b64205a8f2e67162e8f01939b947027744300 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Fri, 26 Apr 2019 10:47:29 +0200 Subject: [PATCH 744/947] config: set default_display_backend_port to 0 This should fix the possible conflicts we are seeing where some gui tests failng to run as the driver cannot start the browser virtual diplay. The virtual diplay was using the hardcoded 5904 default port, for ALL the bft runs. NOTE TO TESTERS: if you want to connect your Xvnc viewer, you either look which port the system has assinged, or run bft as follows: BFT_OPTIONS=disp_port:5904 ./bft <and your usual options> See for more info: https://unix.stackexchange.com/questions/180492/is-it-possible-to-connect-to-tcp-port-0 Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: I69629606e63cb180b87f98b407ac8624dbe282e7 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/452181 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- config.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config.py b/config.py index b0cc7c0d..dd8b3098 100644 --- a/config.py +++ b/config.py @@ -51,7 +51,7 @@ "proxy":["normal","sock5"], "webdriver":["chrome","ffox"], "disp":["xvfb", "xephyr", "xvnc"], - "disp_port":["5904"], + "disp_port":["0"], "disp_size":["1366x768"] } @@ -60,7 +60,7 @@ default_proxy_type = "normal" default_web_driver = "ffox" default_display_backend = "xvnc" -default_display_backend_port = "5904" +default_display_backend_port = "0" # i.e. use any available ports default_display_backend_size = "1366x768" if 'BFT_OPTIONS' in os.environ: @@ -76,7 +76,7 @@ elif k == "disp_port": # quick validation i = int(v) # if not a valid num python will throw and exception - if not 1024 <= i <= 65535: + if i != 0 and not 1024 <= i <= 65535: print("Warning: display backend port: %i not in range (1024-65535)" % i) exit(1) default_display_backend_port = v From 6a033e5dc84c7368fdd8ec2738b08b35ca7b07e7 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 26 Apr 2019 10:19:45 -0500 Subject: [PATCH 745/947] devices: __init__: allow devices to be python modules This is a bit hacky, but it let's the code below import the device as a module instead of a single file Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I9f1d0c9107b0f6fe8389119b838ca1242c253d01 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/452233 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/__init__.py b/devices/__init__.py index 646339be..a6e9c9ca 100644 --- a/devices/__init__.py +++ b/devices/__init__.py @@ -23,11 +23,13 @@ prompt = None device_files = glob.glob(os.path.dirname(__file__)+"/*.py") +device_files += [e.replace('/__init__', '') for e in glob.glob(os.path.dirname(__file__) + '/*/__init__.py')] if 'BFT_OVERLAY' in os.environ: for overlay in os.environ['BFT_OVERLAY'].split(' '): overlay = os.path.abspath(overlay) sys.path.insert(0, overlay + '/devices') device_files += glob.glob(overlay + '/devices/*.py') + device_files += [e.replace('/__init__', '') for e in glob.glob(overlay + '/devices/*/__init__.py')] sys.path.insert(0, overlay + '/tests') From d8805604a8b99298ee883d9f6e77e200477d22c5 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 23 Apr 2019 10:57:51 -0500 Subject: [PATCH 746/947] devices: debian: only start ipv6 dhcp if we lack an ip Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I91d66f444a6e6392620e9fd75e18f25158964bd6 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/451754 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Reviewed-by: ketan tewari <ktewari.contractor@libertyglobal.com> --- devices/debian.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index daa438bd..55ddc624 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -580,10 +580,19 @@ def setup_as_lan_device(self): def start_lan_client(self, wan_gw=None): # very casual try for ipv6 addr, if we don't get one don't fail for now - self.enable_ipv6(self.iface_dut) - self.sendline('dhclient -6 -i %s -v' % self.iface_dut) - if 0 == self.expect([pexpect.TIMEOUT] + self.prompt, timeout=15): - self.sendcontrol('c') + try: + self.enable_ipv6(self.iface_dut) + # TODO: how to wait for stateless config? + self.get_interface_ip6addr(self.iface_dut) + except: + self.sendline('dhclient -6 -i -r %s' % self.iface_dut) + self.expect(self.prompt) + self.sendline('dhclient -6 -i -v %s' % self.iface_dut) + if 0 == self.expect([pexpect.TIMEOUT] + self.prompt, timeout=15): + self.sendcontrol('c') + self.expect(self.prompt) + self.sendline('ip -6 addr') + self.expect(self.prompt) # TODO: this should not be required (fix at some point...) self.sendline('sysctl -w net.ipv6.conf.%s.accept_dad=0' % self.iface_dut) From 3ac1bd9c73dd72bf6dfc92e3bea9384000aa8fa1 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Sun, 28 Apr 2019 18:28:55 +0200 Subject: [PATCH 747/947] bft-node: Dockerfile: added bind a process to an IP This patch compiles a shim to bind a process to an IP address using LD_PRELOAD. To run the shim use the following syntax: BIND_ADDR="X.X.X.X" LD_PRELOAD=/usr/lib/bind.so [command to run] Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: Iea0f34654911fd971d4ebe9a6421cc3b0da7fab3 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/452339 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: ketan tewari <ktewari.contractor@libertyglobal.com> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft-node/Dockerfile | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/bft-node/Dockerfile b/bft-node/Dockerfile index 3020ad24..403808d7 100755 --- a/bft-node/Dockerfile +++ b/bft-node/Dockerfile @@ -29,13 +29,21 @@ RUN apt-get update && \ tcpdump \ vim-common \ xinetd \ - less + less \ + wget \ + build-essential # NOTE: apparmor will interfere with dhclient, disable on HOST by running: # sudo service apparmor stop # sudo service apparmor teardown - RUN mkdir /var/run/sshd - RUN sed -i 's/.*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config +RUN mkdir /var/run/sshd +RUN sed -i 's/.*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config - EXPOSE 22 +# The following lines compile a shim to bind a process to an IP address +# using LD_PRELOAD. To run the shim use the following syntax: +# BIND_ADDR="X.X.X.X" LD_PRELOAD=/usr/lib/bind.so [command to run] +RUN wget http://daniel-lange.com/software/bind.c -O /root/bind.c +RUN cd /root; sed -i '/#include <errno.h>/a #include <arpa\/inet.h>' ./bind.c; gcc -nostartfiles -fpic -shared bind.c -o bind.so -ldl -D_GNU_SOURCE; strip bind.so; mv ./bind.so /usr/lib/ + +EXPOSE 22 From 0b95e14b56d0d8659a2503e015c88fede722d536 Mon Sep 17 00:00:00 2001 From: samuel <samuel_chuang@compalbn.com> Date: Mon, 29 Apr 2019 16:29:13 +0800 Subject: [PATCH 748/947] fix tests: lib: network_helper because the old one is for py3 version,fix it for py2 version Signed-off-by: samuel <samuel_chuang@compalbn.com> --- tests/lib/network_helper.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/lib/network_helper.py b/tests/lib/network_helper.py index 955f4e73..371660ea 100644 --- a/tests/lib/network_helper.py +++ b/tests/lib/network_helper.py @@ -21,7 +21,7 @@ def ipv4_to_snmp_format(ipv4_str): ipv4_tmp = re.sub("[\s\.\-]", "", ipv4_str) ipv4_decimal = int(ipv4_tmp, 16) ipv4_format = ipaddress.IPv4Address(ipv4_decimal) - ipv4_address = ipaddress.ip_address(ipv4_format) + ipv4_address = ipaddress.ip_address(u'%s' % ipv4_format) return ipv4_address @@ -29,7 +29,7 @@ def ipv6_to_snmp_format(ipv6_str): ipv6_tmp = re.sub("[\s\.\-]", "", ipv6_str) pattern = re.compile('.{4}') ipv6_tmp_ip = ':'.join(pattern.findall(ipv6_tmp)) - ipv6_address = ipaddress.ip_address(ipv6_tmp_ip) + ipv6_address = ipaddress.ip_address(u'%s' % ipv6_tmp_ip) return ipv6_address From 3c952c94507fff25ba9955cad993610ea4a95e2e Mon Sep 17 00:00:00 2001 From: gerben <gerben_chen@compalbn.com> Date: Mon, 29 Apr 2019 17:12:43 +0800 Subject: [PATCH 749/947] lib: gui_helper: add get_text_value_by_xpath add function for get text value by xpath gui element has no element id to use Signed-off-by: gerben <gerben_chen@compalbn.com> --- tests/lib/gui_helper.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/lib/gui_helper.py b/tests/lib/gui_helper.py index 7b0d6bf0..94d8bd99 100644 --- a/tests/lib/gui_helper.py +++ b/tests/lib/gui_helper.py @@ -91,3 +91,12 @@ def get_text_value(web_gui, get_value): return text_value except NoSuchElementException: return None + +def get_text_value_by_xpath(web_gui, get_value): + try: + #To get the text box value + text_button = web_gui.find_element_by_xpath(get_value) + text_value = text_button.text + return text_value + except NoSuchElementException: + return None From 76cf9144aee7935c422e0476e3d2485ff8ac13aa Mon Sep 17 00:00:00 2001 From: gerben <gerben_chen@compalbn.com> Date: Fri, 3 May 2019 11:52:11 +0800 Subject: [PATCH 750/947] lib: gui_helper: add select_option_by_xpath function add function for select by xpath Signed-off-by: gerben <gerben_chen@compalbn.com> --- tests/lib/gui_helper.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/lib/gui_helper.py b/tests/lib/gui_helper.py index 94d8bd99..523a1d7e 100644 --- a/tests/lib/gui_helper.py +++ b/tests/lib/gui_helper.py @@ -60,6 +60,16 @@ def select_option_by_name(web_gui, select_button, select_value): except NoSuchElementException: return None +def select_option_by_xpath(web_gui, select_button, select_value): + try: + #To select the option required + select = Select(web_gui.find_element_by_xpath(select_button)) + select.select_by_visible_text(select_value) + time.sleep(5) + return select + except NoSuchElementException: + return None + def get_drop_down_value(web_gui, get_value): try: #To get the value which already exists From 5d8b603f544509aa9dc78d4bd70e3bdee9489ad5 Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalanaiappan.contractor@libertyglobal.com> Date: Wed, 1 May 2019 18:46:04 +0530 Subject: [PATCH 751/947] devices: casa_cmts.py: added clear_cm_reset() to reset the CM from CMTS Signed-off-by: Panimalar Palaniappan <ppalanaiappan.contractor@libertyglobal.com> --- devices/casa_cmts.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 43fcc55d..25a8b905 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -94,6 +94,10 @@ def clear_offline(self, cmmac): self.sendline('clear cable modem %s offline' % cmmac) self.expect(self.prompt) + def clear_cm_reset(self, cmmac): + self.sendline("clear cable modem %s reset" %cmmac) + self.expect(self.prompt) + def check_PartialService(self, cmmac): self.sendline('show cable modem %s' % cmmac) self.expect('(\d+/\d+\.\d+/\d+(\*|\#)\s+\d+/\d+/\d+(\*|\#))\s+online') From fa13b9fcbe73ab13acc82f7bbad77286b757394c Mon Sep 17 00:00:00 2001 From: "prekumar.contractor" <prekumar.contractor@libertyglobal.com> Date: Fri, 3 May 2019 20:56:46 +0200 Subject: [PATCH 752/947] devices: casa_cmts: updated check_online function -Function checks the encrytion mode and returns True if online -Function returns actual status if status other than online -Encryption enable(yes) - online(pt), (no)-online -Asserts when the above conditions are not met Signed-off-by: prekumar.contractor <prekumar.contractor@libertyglobal.com> --- devices/casa_cmts.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 25a8b905..c32e8427 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -78,15 +78,25 @@ def logout(self): self.sendline('exit') def check_online(self, cmmac): - output = "offline" + """Function checks the encrytion mode and returns True if online""" + """Function returns actual status if status other than online""" self.sendline('show cable modem %s' % cmmac) self.expect('.+ranging cm \d+') result = self.match.group() - match = re.search('\d+/\d+/\d+\**\s+([^\s]+)', result) - if match != None: - output = match.group(1) + match = re.search('\d+/\d+/\d+\**\s+([^\s]+)\s+\d+\s+.+\d+\s+(\w+)\r\n', result) + if match: + status = match.group(1) + encrytion = match.group(2) + if status == "online(pt)" and encrytion == "yes": + output = True + elif status == "online" and encrytion == "no": + output = True + elif "online" not in status and status != None: + output = status + else: + assert 0, "ERROR: incorrect cmstatus \""+status+"\" in cmts for bpi encrytion \""+encrytion+"\"" else: - output = "offline" + assert 0, "ERROR: Couldn't fetch CM status from cmts" self.expect(self.prompt) return output From 95266d9cbb8aef795512be4ce08dc10b43098586 Mon Sep 17 00:00:00 2001 From: "prekumar.contractor" <prekumar.contractor@libertyglobal.com> Date: Thu, 2 May 2019 13:19:14 +0200 Subject: [PATCH 753/947] tests: lib: common: modified snmp_mib_get for additional space - The match group result has the additional space at the end - Modified the match group to fetch without space Signed-off-by: prekumar.contractor <prekumar.contractor@libertyglobal.com> --- tests/lib/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/lib/common.py b/tests/lib/common.py index 52a79be9..abc0d002 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -444,7 +444,7 @@ def snmp_mib_get(device, board, iface_ip, mib_name, index, timeout=10, retry=3): assert idx==1,"Getting the mib %s"% mib_name snmp_out = device.match.group(1) device.expect(device.prompt) - snmp_out = snmp_out.strip("\"") + snmp_out = snmp_out.strip("\"").strip() return snmp_out def hex2ipv6(hexstr): From 395c587b73c266d3638e352033b98cac2069f1cc Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Sun, 5 May 2019 22:43:11 +0200 Subject: [PATCH 754/947] devices: ssh_connection: expects yes/no when connecting This should not break anything I hope. Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: I145a10d661d52e15b1ce6c13a28ade2c387dfd89 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/453180 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/ssh_connection.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/devices/ssh_connection.py b/devices/ssh_connection.py index ca329576..18696af4 100644 --- a/devices/ssh_connection.py +++ b/devices/ssh_connection.py @@ -18,7 +18,10 @@ def connect(self): args=['-c', self.conn_cmd]) try: - result = self.device.expect(["assword:", "passphrase"] + self.device.prompt) + result = self.device.expect(["assword:", "passphrase", "yes/no"] + self.device.prompt) + if result == 2: + self.device.sendline("yes") + result = self.device.expect(["assword:", "passphrase"] + self.device.prompt) except pexpect.EOF as e: raise Exception("Board is in use (connection refused).") if result == 0 or result == 1: From 009716a9944ddd1500e6b032b91abf3e78217acb Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 6 May 2019 15:16:46 -0500 Subject: [PATCH 755/947] tests: rootfs: don't start dhcp on wan device Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ic6145e5a45d907facf513d5f0a9aebc3d35bd396 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/453468 --- tests/rootfs_boot.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index e5e664e3..f5e7507a 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -26,15 +26,12 @@ def boot(self, reflash=True): # This is a mess, just taking the last tftpd-server? tftp_device = getattr(self.config, tftp_server) - dhcp_started = False - # start dhcp servers for device in self.config.board['devices']: if 'options' in device and 'no-dhcp-sever' in device['options']: continue if 'options' in device and 'dhcp-server' in device['options']: getattr(self.config, device['name']).setup_dhcp_server() - dhcp_started = True if not wan and len(tftp_servers) == 0: msg = 'No WAN Device or tftp_server defined, skipping flash.' @@ -48,9 +45,6 @@ def boot(self, reflash=True): if tftp_device is None: tftp_device = wan - if wan and not dhcp_started: - wan.setup_dhcp_server() - tftp_device.start_tftp_server() prov = getattr(self.config, 'provisioner', None) From 640e5abfa6b83974237d678d9ce2fe4cd97ade69 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 6 May 2019 14:53:44 -0500 Subject: [PATCH 756/947] devices: debian: update usage of gw, gw_ng, and gw_prefixlen gw_ng is the gw with a cidr gw is the previos ip address only and gw_prefixlen is just the cidr Similiar options need to be consolidated for ipv6 Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I2affbee708bf1a73bdb8fd7009b233e202147ab0 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/453469 --- devices/debian.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 55ddc624..8c7beedd 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -120,14 +120,23 @@ def __init__(self, else: self.gw = lan_gateway + lan_network.num_addresses - self.nw = ipaddress.IPv4Network(str(self.gw).decode('utf-8') + '/' + str(lan_network.netmask), strict=False) + self.gw_ng = ipaddress.IPv4Interface(str(self.gw).decode('utf-8') + '/' + str(lan_network.netmask)) + self.nw = self.gw_ng.network + self.gw_prefixlen = self.nw.prefixlen # override above values if set in wan options if 'options' in kwargs: options = [x.strip() for x in kwargs['options'].split(',')] for opt in options: if opt.startswith('wan-static-ip:'): - self.gw = ipaddress.IPv4Address(opt.replace('wan-static-ip:', '')) + value = opt.replace('wan-static-ip:', '') + self.gw = ipaddress.IPv4Address(value.split('/')[0]) + if '/' not in value: + value = value + (u'/24') + # TODO: use IPv4 and IPv6 interface object everywhere in this class + self.gw_ng = ipaddress.IPv4Interface(value) + self.nw = self.gw_ng.network + self.gw_prefixlen = self.nw.prefixlen self.static_ip = True if opt.startswith('wan-static-ipv6:'): self.gwv6 = ipaddress.IPv6Address(opt.replace('wan-static-ipv6:', '')) @@ -340,7 +349,7 @@ def start_tftp_server(self): # set WAN ip address, for now this will always be this address for the device side # TODO: fix gateway for non-WAN tftp_server if self.gw != eth1_addr: - self.sendline('ifconfig %s %s' % (self.iface_dut, getattr(self, 'gw', '192.168.0.1'))) + self.sendline('ifconfig %s %s' % (self.iface_dut, self.gw_ng)) self.expect(self.prompt) self.sendline('ifconfig %s up' % self.iface_dut) self.expect(self.prompt) @@ -500,7 +509,7 @@ def setup_as_wan_gateway(self): self.expect(self.prompt) self.gw = self.get_interface_ipaddr(self.iface_dut) elif not self.wan_no_eth0: - self.sendline('ifconfig %s %s' % (self.iface_dut, self.gw)) + self.sendline('ifconfig %s %s' % (self.iface_dut, self.gw_ng)) self.expect(self.prompt) self.sendline('ifconfig %s up' % self.iface_dut) self.expect(self.prompt) From 89ba45d3698a9163ca09ce21b9fb0a7b4309f0d9 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 6 May 2019 15:27:46 -0500 Subject: [PATCH 757/947] devices: debian_isc: bypass ipv6 dhcp if not configured Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I660f7d739e0f435322cb41fcea3183606d9e1bd0 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/453470 --- devices/debian_isc.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 80be3ca9..8c1f51e1 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -61,6 +61,10 @@ def __init__(self, *args, **kwargs): def setup_dhcp6_config(self, board_config): tftp_server = self.tftp_device.tftp_server_ipv6_int() + # can't provision without this, so let's ignore v6 if that's the case + if tftp_server is None: + return + to_send = '''cat > /etc/dhcp/dhcpd6.conf-''' + board_config['station'] + '''.master << EOF preferred-lifetime 7200; option dhcp-renewal-time 3600; From 52f9c80fffbfb8e2fcb2f3d6a71772111d45cc7b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 6 May 2019 15:28:10 -0500 Subject: [PATCH 758/947] devices: debian: force ping to use ipv4 since we install pkgs over ipv4 Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Iad8803c0b3645a1101107951fd295c28b31757ee Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/453471 --- devices/debian.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index 8c7beedd..08055072 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -277,7 +277,7 @@ def _install_pkgs(): # TODO: use netns for all this? undo_default_route = None - self.sendline('ping -c1 deb.debian.org') + self.sendline('ping -4 -c1 deb.debian.org') i = self.expect(['ping: unknown host', 'connect: Network is unreachable', pexpect.TIMEOUT] + self.prompt, timeout=10) if 0 == i: # TODO: don't reference eth0, but the uplink iface From 4ff4fba759fa22e159e2dd8ffd71a04559b08bce Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 6 May 2019 16:39:53 -0500 Subject: [PATCH 759/947] devices: debian_isc: allow no ipv6 Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I90b756dd79dff905403e52d9d757c7f52a9de608 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/453472 --- devices/debian_isc.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 8c1f51e1..3737d813 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -63,6 +63,8 @@ def setup_dhcp6_config(self, board_config): # can't provision without this, so let's ignore v6 if that's the case if tftp_server is None: + self.sendline('rm /etc/dhcp/dhcpd6.conf-' + board_config['station'] + '.master') + self.expect(self.prompt) return to_send = '''cat > /etc/dhcp/dhcpd6.conf-''' + board_config['station'] + '''.master << EOF @@ -178,6 +180,12 @@ class "EROUTER" { def setup_dhcp_config(self, board_config): tftp_server = self.tftp_device.tftp_server_ip_int() + # TODO: we should work ipv6 only at some point + #if tftp_server is None: + # self.sendline('rm /etc/dhcp/dhcpd.conf-' + board_config['station'] + '.master') + # self.expect(self.prompt) + # return + to_send = '''cat > /etc/dhcp/dhcpd.conf-''' + board_config['station'] + '''.master << EOF log-facility local7; option log-servers ###LOG_SERVER###; @@ -478,6 +486,8 @@ def _restart_dhcp_with_lock(self): chk_ip = self.get_interface_ip6addr(self.iface_dut) if ipaddress.IPv6Address(unicode(chk_ip)) not in self.prov_nw_ipv6: do_ipv6 = False + if self.tftp_device.tftp_server_ipv6_int() is None: + do_ipv6 = False except: do_ipv6 = False From 3e1f87b1d9e5c5c95166b03e6107c9d659eb67a6 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 6 May 2019 17:12:32 -0500 Subject: [PATCH 760/947] tests: rootfs: change pathway to trigger provisioning This has basically the same effect except we can add our own checks that are board specific in the code path Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: If4e4b31d17baca33ce4508b760833d961c927e14 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/453474 --- tests/rootfs_boot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index f5e7507a..f6effef0 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -50,7 +50,7 @@ def boot(self, reflash=True): prov = getattr(self.config, 'provisioner', None) if prov is not None: prov.tftp_device = tftp_device - prov.provision_board(self.config.board) + board.reprovision(prov) if hasattr(prov, 'prov_gateway'): gw = prov.prov_gateway if wan.gw in prov.prov_network else prov.prov_ip From 70b5358c73d51d90aceaf32134565acc2bc24878 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 30 Apr 2019 17:17:34 -0500 Subject: [PATCH 761/947] tests: linux_boot: add more debug details if test fails This devices (especially pexpect objects) will print a lot of useful info if we just print them Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I698539a97cf79b1a03a94fef9371a7b9f8cb36b1 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/452747 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/linux_boot.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/linux_boot.py b/tests/linux_boot.py index 49cca40e..a78cc430 100644 --- a/tests/linux_boot.py +++ b/tests/linux_boot.py @@ -134,6 +134,14 @@ def testWrapper(self): else: print(e) traceback.print_exc(file=sys.stdout) + + import os + if 'BFT_DEBUG' in os.environ: + print(self) + for device in self.config.devices: + d = getattr(self.config, device) + print(d) + self.recover() raise From e33fb000e06a3e45c4da3aec25666b27caa4b9b4 Mon Sep 17 00:00:00 2001 From: "nsevvel.contractor" <nsevvel.contractor@libertyglobal.com> Date: Wed, 8 May 2019 18:08:23 +0200 Subject: [PATCH 762/947] devices: debian_isc : sip_fqdn variable added Signed-off-by: nsevvel.contractor <nsevvel.contractor@libertyglobal.com> Change-Id: I3ad5528a2e8fc5cbdb76f24fb398b502e68eac67 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/453700 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian_isc.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 3737d813..1a7c69bf 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -42,7 +42,9 @@ def __init__(self, *args, **kwargs): self.open_network_v6 = ipaddress.IPv6Network(kwargs.pop('open_network_v6', u"2001:dead:beef:6::/64")) self.prov_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('prov_gateway_v6', u"2001:dead:beef:1::cafe")) self.erouter_net = ipaddress.IPv6Network(kwargs.pop('erouter_net', u"2001:dead:beef:f000::/55")) - + self.sip_fqdn = kwargs.pop('sip_fqdn',u"08:54:43:4F:4D:4C:41:42:53:03:43:4F:4D:00") + self.time_server = ipaddress.IPv4Address(kwargs.pop('time_server', self.prov_ip)) + self.syslog_server = ipaddress.IPv4Address(kwargs.pop('syslog_server', self.prov_ip)) if 'options' in kwargs: options = [x.strip() for x in kwargs['options'].split(',')] for opt in options: @@ -243,7 +245,7 @@ class "HOST" { option time-offset 1; option domain-name-servers ###PROV###; option docsis-mta.kerberos-realm 05:42:41:53:49:43:01:31:00 ; - option docsis-mta.provision-server 0 08:54:43:4F:4D:4C:41:42:53:03:43:4F:4D:00 ; + option docsis-mta.provision-server 0 ###MTA_SIP_FQDN### ; } subnet ###OPEN_IP### netmask ###OPEN_NETMASK### { @@ -268,8 +270,9 @@ class "HOST" { } EOF''' - to_send = to_send.replace('###LOG_SERVER###', str(self.prov_ip)) - to_send = to_send.replace('###TIME_SERVER###', str(self.prov_ip)) + to_send = to_send.replace('###LOG_SERVER###', str(self.syslog_server)) + to_send = to_send.replace('###TIME_SERVER###', str(self.time_server)) + to_send = to_send.replace('###MTA_SIP_FQDN###', str(self.sip_fqdn)) to_send = to_send.replace('###NEXT_SERVER###', str(self.prov_ip)) to_send = to_send.replace('###IFACE###', str(self.iface_dut)) to_send = to_send.replace('###MTA_DHCP_SERVER1###', str(self.prov_ip)) From 597d971b1061600712c75c43234fd8e71356b8c9 Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Wed, 8 May 2019 18:16:03 +0530 Subject: [PATCH 763/947] tests: lib: wifi: Added wifi_client_stub() --- tests/lib/wifi.py | 48 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/tests/lib/wifi.py b/tests/lib/wifi.py index 3cdf0828..e0417963 100644 --- a/tests/lib/wifi.py +++ b/tests/lib/wifi.py @@ -219,3 +219,51 @@ def prepare(self): pass def cleanup(self): pass + +class wifi_client_stub(): + def enable_wifi(self, iface): + '''Function to make the wifi interface UP + Takes interface as an argument''' + raise Exception("Not implemented!") + def disable_wifi(self, iface): + '''Function to make the wifi interface DOWN + Takes interface as an argument''' + raise Exception("Not implemented!") + def disable_and_enable_wifi(self): + '''Function to make the wifi interface DOWN and UP + Takes interface as an argument''' + raise Exception("Not implemented!") + def wifi_scan(self, iface): + '''Function that scans for SSIDs on a particular radio, and return a list of SSID + Takes interface to be scanned as an argument''' + raise Exception("Not implemented!") + # this code does not execute, but rather serves as an example for the API + return "SSID: <ssid_name1> \ + SSID: <ssid_name2>.." + def wifi_check_ssid(self, iface, ssid_name): + '''Function that scans for a particular SSID + Takes interface and ssid to be scanned as an argument''' + raise Exception("Not implemented!") + # this code does not execute, but rather serves as an example for the API + return "SSID: <ssid_name>" + def wifi_connect(self, iface, ssid_name, password, security_mode): + '''Function to connect to wifi either with ssid name and password or with ssid name alone + Takes arguments as SSID and (password,security) if required''' + raise Exception("Not implemented!") + def wifi_connectivity_verify(self, iface): + '''Function to verify wifi connectivity + Takes interface as argument to check for wifi connectivity + Returns True or False based on connectivity''' + raise Exception("Not implemented!") + # this code does not execute, but rather serves as an example for the API + return "True or False" + def wifi_disconnect(self, iface): + '''Function to disconnect wifi + Takes interface to be disconnected as argument''' + raise Exception("Not implemented!") + def wifi_change_region(self, country): + '''Function to change the country + Takes country name as an argument Eg:Germany + Return the country code Eg: Germany as DE''' + raise Exception("Not implemented!") + return "DE" From 5086d180097042d5452d7c0f9a24398504e279cd Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 6 May 2019 19:49:36 -0500 Subject: [PATCH 764/947] Revert "requirements: lock down urllib" This reverts commit 6a6bdae6de82beedf1b982f7fb3c3e662944df5e. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I4b5d9279af26c16c94c64d3ddde417f882e9c58e Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/453488 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index af180aee..e461e024 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,3 @@ -urllib3==1.23 argparse elasticsearch>=1.0.0 unittest2 From e4be8b90b86a7a67ac576925533b311697a76a9d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 6 May 2019 20:14:30 -0500 Subject: [PATCH 765/947] requirements.txt: remove version dep for pexpect Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I94eb68e72af21a34fe4565512e68a3964cd115be Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/453489 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index e461e024..a83f3540 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ argparse elasticsearch>=1.0.0 unittest2 -pexpect==3.1 +pexpect beautifulsoup4 termcolor selenium From 938306c0ac3c0e3e3191a0611ab3787668d34fa1 Mon Sep 17 00:00:00 2001 From: MartinCBN <martin_wu@compalbn.com> Date: Mon, 6 May 2019 13:24:05 +0800 Subject: [PATCH 766/947] tests: lib: common: modified snmp_mib_get add -c community setup for using public Signed-off-by: MartinCBN <martin_wu@compalbn.com> --- tests/lib/common.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/lib/common.py b/tests/lib/common.py index abc0d002..7ff854d7 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -427,7 +427,7 @@ def snmp_mib_set(device, board, iface_ip, mib_name, index, set_type, set_value, device.expect(device.prompt) return snmp_out -def snmp_mib_get(device, board, iface_ip, mib_name, index, timeout=10, retry=3): +def snmp_mib_get(device, board, iface_ip, mib_name, index, timeout=10, retry=3, community='private'): """ Name: snmp_mib_get Purpose: get the value of mibs via snmp @@ -439,7 +439,7 @@ def snmp_mib_get(device, board, iface_ip, mib_name, index, timeout=10, retry=3): match = re.search("\d+.(.*)",board.mib[mib_name]) mib_oid = match.group(1)+'.'+index time_out = (timeout*retry)+30 - device.sendline("snmpget -v 2c -c private -t " +str(timeout)+ " -r "+str(retry)+" "+iface_ip+" "+board.mib[mib_name]+"."+str(index)) + device.sendline("snmpget -v 2c -c "+community+" -t " +str(timeout)+ " -r "+str(retry)+" "+iface_ip+" "+board.mib[mib_name]+"."+str(index)) idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\S+\:\s+(.*)\r\n'] + device.prompt, timeout=time_out) assert idx==1,"Getting the mib %s"% mib_name snmp_out = device.match.group(1) From 3c287475e43a75fd2e7a1f9d881ff528903ebc25 Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Wed, 1 May 2019 01:55:01 +0530 Subject: [PATCH 767/947] devices: debian: Enhanced link_up() and set_link_state() Modified the functions to perform in sudo as well --- devices/debian.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 08055072..4813e316 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -214,10 +214,19 @@ def run_cleanup_cmd(self): cc.expect(pexpect.EOF, timeout=120) print("cleanup_cmd done.") - def sudo_sendline(self, s): + def sudo_sendline(self, cmd): if self.username != "root": - s = "sudo " + s - return super(DebianBox, self).sendline(s) + self.sendline("sudo true") + if 0 == self.expect(["password for .*:"] + self.prompt): + will_prompt_for_password = True + else: + will_prompt_for_password = False + + cmd = "sudo " + cmd + if will_prompt_for_password: + self.sendline(self.password) + self.expect(self.prompt) + super(DebianBox, self).sendline(cmd) def reset(self): self.sendline('reboot') @@ -761,7 +770,7 @@ def link_up(self, interface): self.sendline("ip link show %s" % interface) self.expect(self.prompt) link_state = self.before - match = re.search('NO-CARRIER,BROADCAST,MULTICAST,UP',link_state) + match = re.search('BROADCAST,MULTICAST,UP',link_state) if match: return match.group(0) else: @@ -769,7 +778,7 @@ def link_up(self, interface): def set_link_state(self, interface, state): '''Setting the interface status''' - self.sendline("ip link set %s %s" % (interface,state)) + self.sudo_sendline("ip link set %s %s" % (interface,state)) self.expect(self.prompt) if __name__ == '__main__': From 15e778da04fe839b9dc7df18f7ca1265005c6b54 Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Mon, 6 May 2019 18:15:12 +0530 Subject: [PATCH 768/947] devices: debian_wifi: Enhanced the wifi functions to execute in sudo as well --- devices/debian_wifi.py | 137 ++++++++++++++++++++++++----------------- 1 file changed, 80 insertions(+), 57 deletions(-) diff --git a/devices/debian_wifi.py b/devices/debian_wifi.py index 39f47da6..64a1ba50 100644 --- a/devices/debian_wifi.py +++ b/devices/debian_wifi.py @@ -1,88 +1,111 @@ import re import debian import pexpect +from countrycode import countrycode +from lib.wifi import wifi_client_stub -class DebianWifi(debian.DebianBox): +class DebianWifi(debian.DebianBox, wifi_client_stub): '''Extension of Debian class with wifi functions''' model = ('debianwifi') + iface_wlan = "wlan0" + iface_wlan1 = "wlan1" - iface_wlan = "wlan1" + def disable_and_enable_wifi(self, iface): + self.set_link_state(iface, "down") + self.set_link_state(iface, "up") - def scan(self): + def disable_wifi(self, iface): + self.set_link_state(iface, "down") + + def enable_wifi(self, iface): + self.set_link_state(iface, "up") + + def wifi_scan(self, iface): from tests.lib.installers import install_iw install_iw(self) - self.sendline('iw %s scan | grep SSID:' % self.iface_wlan) + self.sudo_sendline('iw %s scan | grep SSID:' % iface) self.expect(self.prompt) - return self.before - def wpa_connect(self, ssid_name, password): - '''Generate WPA supplicant file and execute it''' - self.sendline("rm /etc/"+ssid_name+".conf") - self.expect(self.prompt) - self.sendline("wpa_passphrase "+ssid_name+ " >> /etc/"+ssid_name+".conf") - self.expect("") - self.sendline(password) - self.expect(self.prompt,timeout=20) - self.sendline("cat /etc/"+ssid_name+".conf") - self.expect(self.prompt) - self.sendline("wpa_supplicant -B -Dnl80211 -i"+self.iface_wlan+ " -c/etc/"+ssid_name+".conf") - self.expect(self.prompt) - wpa_start = None - wpa_start = self.before - match = re.search('Successfully initialized wpa_supplicant',wpa_start) - if match: - return match.group(0) - else: - return None + def wifi_check_ssid(self, iface, ssid_name): + from tests.lib.installers import install_iw + install_iw(self) - def wlan_connectivity(self): + self.sudo_sendline('iw %s scan | grep "SSID: %s"' % (iface, ssid_name)) + self.expect(self.prompt) + match = re.search("%s\"\s+.*(%s)"%(ssid_name, ssid_name), self.before) + if match: + return True + else: + return False + + def wifi_connect(self, iface, ssid_name, password=None, security_mode=None): + if password == None: + self.sudo_sendline("iwconfig %s essid %s" % (iface,ssid_name)) + else: + '''Generate WPA supplicant file and execute it''' + self.sudo_sendline("rm "+ssid_name+".conf") + self.expect(self.prompt) + self.sudo_sendline("wpa_passphrase "+ssid_name+" "+password+" >> "+ssid_name+".conf") + self.expect(self.prompt) + self.sendline("cat "+ssid_name+".conf") + self.expect(self.prompt) + self.sudo_sendline("wpa_supplicant -B -Dnl80211 -i"+iface+ " -c"+ssid_name+".conf") + self.expect(self.prompt) + match = re.search('Successfully initialized wpa_supplicant', self.before) + if match: + return True + else: + return False + + def wifi_connectivity_verify(self, iface): '''Connection state verify''' - self.sendline("iw %s link" % self.iface_wlan) + self.sendline("iw %s link" % iface) self.expect(self.prompt) - conn_state = self.before - match = re.search('Connected',conn_state) + match = re.search('Connected', self.before) if match: - return match.group(0) + return True else: - return None + return False def disconnect_wpa(self): - self.sendline("killall wpa_supplicant") + self.sudo_sendline("killall wpa_supplicant") self.expect(self.prompt) - def wlan_ssid_connect(self, ssid_name): - self.sendline("iwconfig %s essid %s" % (self.iface_wlan,ssid_name)) + def wlan_ssid_disconnect(self, iface): + output = self.sudo_sendline("iw dev %s disconnect" % iface) self.expect(self.prompt) - def wlan_ssid_disconnect(self): - self.sendline("iw dev %s disconnect" % self.iface_wlan) + def wifi_disconnect(self, iface): + self.disconnect_wpa() + self.wlan_ssid_disconnect(iface) + + def wifi_change_region(self, country): + country = countrycode(country, origin='country_name', target='iso2c') + self.sudo_sendline("iw reg set %s"%(country)) + self.expect(self.prompt) + self.sendline("iw reg get") self.expect(self.prompt) + match = re.search(country, self.before) + if match: + return match.group(0) + else: + return None - def start_lan_client(self, wan_gw=None): - self.iface_dut = self.iface_wlan + def start_lan_client(self, iface): + self.iface_dut = iface super(DebianWifi, self).start_lan_client() - def linux_wifi_client(self, board, ssid_name, password=None): + def wifi_client_connect(self, iface, ssid_name, password=None): '''Scan for SSID and verify connectivity''' - output = self.scan() - match = re.search("%s" % ssid_name,output) - assert match!=None,'SSID value check in WLAN container' - - link = self.link_up(self.iface_wlan) - if link==None: - wlan.set_link_state(self.iface_wlan) - - if password: - conn_wpa = self.wpa_connect(ssid_name,password) - assert conn_wpa!=None,'WPA supplicant initiation' - else: - self.wlan_ssid_connect(ssid_name) - - board.expect(pexpect.TIMEOUT, timeout=20) - conn_wlan = self.wlan_connectivity() - assert conn_wlan!=None,'Connection establishment in WIFI' - - self.start_lan_client() + self.disable_and_enable_wifi(iface) + self.expect(pexpect.TIMEOUT, timeout=20) + output = self.wifi_check_ssid(iface, ssid_name) + assert output==True,'SSID value check in WLAN container' + + conn_wifi = self.wifi_connect(iface, ssid_name, password) + self.expect(pexpect.TIMEOUT, timeout=20) + verify_connect = self.wifi_connectivity_verify(iface) + assert verify_connect==True,'Connection establishment in WIFI' From 7bf98c3ebb1746027904e4ab13e592af7546f6f3 Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Mon, 6 May 2019 18:43:46 +0530 Subject: [PATCH 769/947] tests: lib: network_testing: Added generic functions for network testing --- tests/lib/network_testing.py | 49 ++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 tests/lib/network_testing.py diff --git a/tests/lib/network_testing.py b/tests/lib/network_testing.py new file mode 100644 index 00000000..5b5bc53e --- /dev/null +++ b/tests/lib/network_testing.py @@ -0,0 +1,49 @@ +# Copyright (c) 2015 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. +# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 + +import re + +def tcpdump_capture(device, ip_address, port, capture_file): + device.sendline("tcpdump -i %s -n \'portrange %s\' -w /tmp/%s &" %(ip_address, port, capture_file)) + device.expect(device.prompt) + return device.before + +def kill_process(device, process="tcpdump"): + device.sendline("killall %s" %process) + device.expect(device.prompt) + return device.before + +def tcpdump_read(device, capture_file): + device.sendline("tcpdump -n -r /tmp/%s" %(capture_file)) + device.expect(device.prompt) + output = device.before + device.sendline("rm /tmp/%s" %(capture_file)) + device.expect(device.prompt) + return output + +def nmap_cli(device, ip_address, port, protocol=None, retry="0"): + if protocol == "tcp": + device.sendline("nmap -sS %s -p %s -Pn -r -max-retries %s" %(ip_address,port,retry)) + elif protocol == "udp": + device.sendline("nmap -sU %s -p %s -Pn -r -max-retries %s" %(ip_address,port,retry)) + else: + device.sendline("nmap -sS -sU %s -p %s -Pn -r -max-retries %s" %(ip_address,port,retry)) + device.expect(device.prompt,timeout=200) + return device.before + +def ping(device, ping_ip, ping_interface=None, count=4): + if ping_interface == None: + device.sendline("ping -c %s %s"%(count,ping_ip)) + else: + device.sendline("ping -I %s -c %s %s"%(ping_interface,count,ping_ip)) + device.expect(device.prompt, timeout=50) + match = re.search("%s packets transmitted, %s received, 0%% packet loss" % (count, count), device.before) + if match: + return True + else: + return False From d5a093182ca63f691e675aed5687c8d935aaa551 Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Thu, 9 May 2019 21:40:19 +0530 Subject: [PATCH 770/947] requirements.txt: Added countrycode Fixes previous commit Signed-off-by: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Change-Id: I70011d5b55f77c7cfd97c25579d59ccf802f12b8 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/453900 Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> Tested-by: Matthew McClintock <msm-oss@mcclintock.net> --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index a83f3540..5e0951d0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -18,3 +18,4 @@ Faker zeep matplotlib netaddr +countrycode From 0ebc77805351c8cf63b406352ef10b2b910aab81 Mon Sep 17 00:00:00 2001 From: Kalpana Vetrivel <kvetrivel.contractor@libertyglobal.com> Date: Wed, 15 May 2019 14:28:06 +0530 Subject: [PATCH 771/947] lib: wifi: Documented "apply_changes_no_delay" variable in wifi_stub() Added apply_changes() in wifi_stub Change-Id: Ibf8aca6ccc6e9341067c97ee622a65d93c8405c9 Signed-off-by: Kalpana Vetrivel <kvetrivel.contractor@libertyglobal.com> Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/454490 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/wifi.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/lib/wifi.py b/tests/lib/wifi.py index e0417963..fa4407a8 100644 --- a/tests/lib/wifi.py +++ b/tests/lib/wifi.py @@ -179,6 +179,10 @@ def uciSetWifiSecurity(board, vap_iface, security): board.expect(prompt) class wifi_stub(): + apply_changes_no_delay = False + # The above variable can tweak the behavior of the below functions + # If it is set to True, it will apply the changes after setting wifi parameters + # If it is set to False, it will not save any changes & apply_changes() will be skipped def enable_wifi(self, *args, **kwargs): raise Exception("Not implemented!") def set_ssid(self, *args, **kwargs): @@ -219,6 +223,9 @@ def prepare(self): pass def cleanup(self): pass + def apply_changes(self): + '''This function used to save the configs to be modified''' + pass class wifi_client_stub(): def enable_wifi(self, iface): From e52d6d0cf72bacddd1c9582552fcfe3cdc4d70c3 Mon Sep 17 00:00:00 2001 From: Kalpana Vetrivel <kvetrivel.contractor@libertyglobal.com> Date: Thu, 16 May 2019 17:29:07 +0530 Subject: [PATCH 772/947] lib: wifi: Changed the var value to true for "apply_changes_no_delay" For "apply_changes_no_delay" variable should be True in wifi_Stub since it required in mv1_wifi_gui.py Signed-off-by: Kalpana Vetrivel <kvetrivel.contractor@libertyglobal.com> Change-Id: I2befe88ae745821fa2b15a61845281a32df6e430 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/454756 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/wifi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/lib/wifi.py b/tests/lib/wifi.py index fa4407a8..5d45a087 100644 --- a/tests/lib/wifi.py +++ b/tests/lib/wifi.py @@ -179,7 +179,7 @@ def uciSetWifiSecurity(board, vap_iface, security): board.expect(prompt) class wifi_stub(): - apply_changes_no_delay = False + apply_changes_no_delay = True # The above variable can tweak the behavior of the below functions # If it is set to True, it will apply the changes after setting wifi parameters # If it is set to False, it will not save any changes & apply_changes() will be skipped From d4b3d08b48d718d3a16c251030cf14b1c25a7567 Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Mon, 13 May 2019 17:51:32 +0530 Subject: [PATCH 773/947] devices: debian_wifi: Modified disable_and_enable_wifi and wifi_client_connect func disable_and_enable_wifi() - Modified it by calling disable and enable function wifi_client_connect() - Added security_mode arg,to match with windows wifi fucntion Signed-off-by: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Change-Id: I9cdaf53610f0d03e234dd7344f6afd59dc4502e4 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/454325 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian_wifi.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/devices/debian_wifi.py b/devices/debian_wifi.py index 64a1ba50..762722d9 100644 --- a/devices/debian_wifi.py +++ b/devices/debian_wifi.py @@ -12,8 +12,8 @@ class DebianWifi(debian.DebianBox, wifi_client_stub): iface_wlan1 = "wlan1" def disable_and_enable_wifi(self, iface): - self.set_link_state(iface, "down") - self.set_link_state(iface, "up") + self.disable_wifi(iface) + self.enable_wifi(iface) def disable_wifi(self, iface): self.set_link_state(iface, "down") @@ -98,7 +98,7 @@ def start_lan_client(self, iface): self.iface_dut = iface super(DebianWifi, self).start_lan_client() - def wifi_client_connect(self, iface, ssid_name, password=None): + def wifi_client_connect(self, iface, ssid_name, password=None, security_mode=None): '''Scan for SSID and verify connectivity''' self.disable_and_enable_wifi(iface) self.expect(pexpect.TIMEOUT, timeout=20) From fa4e80601ddfb2e7157ba2e003b4c1d96a3d099a Mon Sep 17 00:00:00 2001 From: "ketan.d.luffy" <ktewari.contractor@libertyglobal.com> Date: Fri, 17 May 2019 18:03:38 +0200 Subject: [PATCH 774/947] deploy-boardfarm-nodes: added voice container func Setting default start SSH port value as 44000 Increment by 1 for each voice container Create a soft link to serial ACM dev depends on https://review.gerrithub.io/c/lgirdk/boardfarm/+/451932 Signed-off-by: ketan.d.luffy <ktewari.contractor@libertyglobal.com> Change-Id: I68572a6ee0e60e799a14ebb48998c0c23051ea3a Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/454918 Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> Tested-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 6c572cbc..29ec2002 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -265,6 +265,31 @@ create_container_eth1_wifi () { docker exec $cname ip link set wlan1 up } +#voice container +create_container_voice () { + #will be from /dev ACM dev name + local dev=$1 + #keep offset as 40000 + local offset=${2:-1} + local proxy_dir=${3:-"0"} + local proxy_ip=${4:-"0"} + + cname=bft-node-$dev + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -p $(( 4000 + $offset )):22 \ + -d $BF_IMG /usr/sbin/sshd -D + + #add proxy details if specified + local docker_gw_ip=$(ip -4 addr show docker0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}') + if [ "$proxy_dir" != "0" ] && [ "$proxy_ip" != "0" ] + then + docker cp $proxy_dir/proxy.conf $cname:/etc/apt/apt.conf.d/ + docker exec $cname ip route add $proxy_ip via $docker_gw_ip + fi + docker exec $cname ln -s /dev/tty$dev /root/line-$dev +} + [ "$IFACE" = "undefined" ] && return echo "Creating nodes starting on vlan $START_VLAN to $END_VLAN on iface $IFACE" From b803a4d1176de97530d416e29bd6dad4f01d436d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 7 May 2019 19:25:53 -0500 Subject: [PATCH 775/947] devices: debian_isc: add ipv6 provisioning config items Make more items not hard coded in ipv6 config Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I9986c082c184ea4beab18b11eb76dec7d8c68ccd Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/453598 --- devices/debian_isc.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 1a7c69bf..59251fc2 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -38,8 +38,12 @@ def __init__(self, *args, **kwargs): self.cm_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('cm_gateway_v6', u"2001:dead:beef:4::cafe")) self.cm_network_v6 = ipaddress.IPv6Network(kwargs.pop('cm_network_v6', u"2001:dead:beef:4::/64")) + self.cm_network_v6_start = ipaddress.IPv6Address(kwargs.pop('cm_network_v6_start', u"2001:dead:beef:4::10")) + self.cm_network_v6_end = ipaddress.IPv6Address(kwargs.pop('cm_network_v6_end', u"2001:dead:beef:4::100")) self.open_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('open_gateway_v6', u"2001:dead:beef:6::cafe")) self.open_network_v6 = ipaddress.IPv6Network(kwargs.pop('open_network_v6', u"2001:dead:beef:6::/64")) + self.open_network_v6_start = ipaddress.IPv6Address(kwargs.pop('open_network_v6_start', u"2001:dead:beef:6::10")) + self.open_network_v6_end = ipaddress.IPv6Address(kwargs.pop('open_network_v6_end', u"2001:dead:beef:6::100")) self.prov_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('prov_gateway_v6', u"2001:dead:beef:1::cafe")) self.erouter_net = ipaddress.IPv6Network(kwargs.pop('erouter_net', u"2001:dead:beef:f000::/55")) self.sip_fqdn = kwargs.pop('sip_fqdn',u"08:54:43:4F:4D:4C:41:42:53:03:43:4F:4D:00") @@ -93,7 +97,7 @@ def setup_dhcp6_config(self, board_config): # TODO: move to host section #option dhcp6.aftr-name ""; -option dhcp6.name-servers 2001:dead:beef:1::1; +option dhcp6.name-servers ###PROV_IPV6###; option dhcp6.domain-search "test.example.com","example.com"; class "CM" { @@ -103,16 +107,16 @@ class "EROUTER" { match if option docsis.device-type = "EROUTER"; } -subnet6 2001:dead:beef:1::/64 { +subnet6 ###PROV_NW_IPV6### { interface ###IFACE###; ignore booting; } shared-network boardfarm { interface ###IFACE###; - subnet6 2001:dead:beef:4::/64 { + subnet6 ###CM_NETWORK_V6### { pool6 { - range6 2001:dead:beef:4::10 2001:dead:beef:4::100; + range6 ###CM_NETWORK_V6_START### ###CM_NETWORK_V6_END###; allow members of "CM"; option docsis.tftp-servers ###PROV_IPV6###; option docsis.time-servers ###PROV_IPV6###; @@ -121,9 +125,9 @@ class "EROUTER" { option docsis.time-offset 5000; } } - subnet6 2001:dead:beef:6::/64 { + subnet6 ###OPEN_NETWORK_V6### { pool6 { - range6 2001:dead:beef:6::10 2001:dead:beef:6::100; + range6 ###OPEN_NETWORK_V6_START### ###OPEN_NETWORK_V6_END###; allow members of "EROUTER"; option dhcp6.solmax-rt 240; option dhcp6.inf-max-rt 360; @@ -135,6 +139,13 @@ class "EROUTER" { to_send = to_send.replace('###IFACE###', self.iface_dut) to_send = to_send.replace('###PROV_IPV6###', str(self.prov_ipv6)) + to_send = to_send.replace('###PROV_NW_IPV6###', str(self.prov_nw_ipv6)) + to_send = to_send.replace('###CM_NETWORK_V6###', str(self.cm_network_v6)) + to_send = to_send.replace('###CM_NETWORK_V6_START###', str(self.cm_network_v6_start)) + to_send = to_send.replace('###CM_NETWORK_V6_END###', str(self.cm_network_v6_end)) + to_send = to_send.replace('###OPEN_NETWORK_V6###', str(self.open_network_v6)) + to_send = to_send.replace('###OPEN_NETWORK_V6_START###', str(self.open_network_v6_start)) + to_send = to_send.replace('###OPEN_NETWORK_V6_END###', str(self.open_network_v6_end)) to_send = to_send.replace('###EROUTER_NET_START###', str(self.erouter_net[0])) to_send = to_send.replace('###EROUTER_NET_END###', str(self.erouter_net[-ipaddress.IPv6Network(u'::0/%s' % self.ipv6_prefix).num_addresses])) to_send = to_send.replace('###EROUTER_PREFIX###', str(self.ipv6_prefix)) From dbed81bf810de5ee7eba2f6a1a869dec1fbe82fe Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Date: Tue, 14 May 2019 22:22:39 +0800 Subject: [PATCH 776/947] devices: windows_telnet.py: get_interface_ip6addr() Added get_interface_ip6addr() get cnr ipv6 Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Change-Id: I7582fb4d7a98c0f476485eec16bfe9c5785d9516 Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Change-Id: Ic6ffc6a73863bb7070ab66a3808ec2a7efd3bb5e Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/454469 Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> Tested-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/windows_telnet.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/devices/windows_telnet.py b/devices/windows_telnet.py index 0976c26b..168faa13 100755 --- a/devices/windows_telnet.py +++ b/devices/windows_telnet.py @@ -80,3 +80,14 @@ def get_default_gateway(self, wifi_interface): return match.group(1) else: return None + + def get_interface_ipaddr(self, interface): + self.get_ip(interface) + + def get_interface_ip6addr(self, interface): + self.sendline("netsh interface ipv6 show addresses %s" %interface) + self.expect(self.prompt) + for match in re.findall(AllValidIpv6AddressesRegex, self.before) + ipv6addr = ipaddress.IPv6Address(unicode(match)) + if not ipv6addr.is_link_local: + return ip6addr \ No newline at end of file From e3da6c6b362027ac920d9738eca3f75a07a73e5a Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 20 May 2019 21:40:16 -0500 Subject: [PATCH 777/947] devices: windows_telnet: fix bad python syntax Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Idc491882b044e86ef946787f56c37e541c6114b6 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/455158 --- devices/windows_telnet.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/windows_telnet.py b/devices/windows_telnet.py index 168faa13..91025910 100755 --- a/devices/windows_telnet.py +++ b/devices/windows_telnet.py @@ -87,7 +87,7 @@ def get_interface_ipaddr(self, interface): def get_interface_ip6addr(self, interface): self.sendline("netsh interface ipv6 show addresses %s" %interface) self.expect(self.prompt) - for match in re.findall(AllValidIpv6AddressesRegex, self.before) + for match in re.findall(AllValidIpv6AddressesRegex, self.before): ipv6addr = ipaddress.IPv6Address(unicode(match)) if not ipv6addr.is_link_local: - return ip6addr \ No newline at end of file + return ip6addr From 89f6cb2ae3d606f5e22004d97ed595e7f1924ce7 Mon Sep 17 00:00:00 2001 From: "ketan.d.luffy" <ktewari.contractor@libertyglobal.com> Date: Fri, 17 May 2019 16:50:53 +0200 Subject: [PATCH 778/947] bft-node: Dockerfile: Added iw, wpasupplicant, ntpdate Added these packages for Wi-Fi containers Added ntpdate Signed-off-by: ketan.d.luffy <ktewari.contractor@libertyglobal.com> Change-Id: Ide17b6266539b396a2a734b6052f2d092f108b41 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/454905 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft-node/Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bft-node/Dockerfile b/bft-node/Dockerfile index 403808d7..b63235b7 100755 --- a/bft-node/Dockerfile +++ b/bft-node/Dockerfile @@ -31,6 +31,9 @@ RUN apt-get update && \ xinetd \ less \ wget \ + iw \ + wpasupplicant \ + ntpdate \ build-essential # NOTE: apparmor will interfere with dhclient, disable on HOST by running: From 544da7ec82a61b5f73da59c1878a4fe4aee427b5 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 20 May 2019 17:19:30 -0500 Subject: [PATCH 779/947] devices: debian_isc: handle case where ope and cm subnet are the same This also could apply to IPV4 Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I926e4d76561f3fcfabd1f1923c9f047cd611460f Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/455134 Reviewed-by: ketan tewari <ktewari.contractor@libertyglobal.com> Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/debian_isc.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 59251fc2..223d5119 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -123,9 +123,14 @@ class "EROUTER" { option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; option docsis.syslog-servers ###PROV_IPV6### ; option docsis.time-offset 5000; - } + }''' + + if self.cm_network_v6 != self.open_network_v6: + to_send = to_send + ''' } - subnet6 ###OPEN_NETWORK_V6### { + subnet6 ###OPEN_NETWORK_V6### {''' + + to_send = to_send + ''' pool6 { range6 ###OPEN_NETWORK_V6_START### ###OPEN_NETWORK_V6_END###; allow members of "EROUTER"; From fbce69e7eb505f6d070b7ad56f8031dc0df22b71 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 20 May 2019 17:21:02 -0500 Subject: [PATCH 780/947] tests: lib: docsis: delete file before running encoding step To make sure we never reuse the old config file Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: If2b89964bd1c12fae5022fc3d108cd1e7fa23aab Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/455135 --- tests/lib/docsis.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py index c2de8fd1..8e493695 100755 --- a/tests/lib/docsis.py +++ b/tests/lib/docsis.py @@ -72,6 +72,8 @@ def encode(self, output_type='cm_cfg'): def encode_mta(): mtacfg_name=self.file.replace('.txt', '.bin') mtacfg_path=os.path.join(self.dir_path, mtacfg_name) + if os.path.isfile(mtacfg_path): + os.remove(mtacfg_path) tclsh = Tkinter.Tcl() tclsh.eval("source %s/mta_conf_Proc.tcl" % os.path.dirname(__file__)) tclsh.eval("run [list %s -e -hash eu -out %s]" % (self.file_path, mtacfg_path)) @@ -82,6 +84,8 @@ def encode_mta(): def encode_cm(): cmcfg_name=self.file.replace('.txt', '.cfg') cmcfg_path=os.path.join(self.dir_path, cmcfg_name) + if os.path.isfile(cmcfg_path): + os.remove(cmcfg_path) print("docsis -e %s /dev/null %s" % (self.file_path, cmcfg_path)) os.system("docsis -e %s /dev/null %s" % (self.file_path, cmcfg_path)) assert os.path.exists(cmcfg_path) From 76320d595d08ada31122e6228c3745f92c46b817 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 20 May 2019 17:43:34 -0500 Subject: [PATCH 781/947] tests: lib: docsis: add support for a board providing it's own mib definitions This way we can use named mibs in the config files to reduce confusion Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ia71b61f0ef710bd6c5494f9cb4bb8e0b533e28d4 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/455139 --- tests/lib/docsis.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py index 8e493695..88d1400f 100755 --- a/tests/lib/docsis.py +++ b/tests/lib/docsis.py @@ -22,7 +22,9 @@ class docsis: encode(output_type='cm_cfg') return output file name(.cfg or .bin) """ - def __init__(self, file_or_obj, tmpdir=None): + + mibs_path_arg = "" + def __init__(self, file_or_obj, tmpdir=None, mibs_paths=None): # TODO: fix at some point, this tmpdir is already relative to the CM config you # are grabbing? Not ideal as that dir might not be writeable, or a tftp or http URL # at some point - need to use a real local tmpdir or maybe even results so we can @@ -30,6 +32,16 @@ def __init__(self, file_or_obj, tmpdir=None): if tmpdir is None: tmpdir = os.path.join('tmp', config.board['station']) + from devices import board + if mibs_paths is None and hasattr(board, 'mibs_paths'): + default = os.path.expandvars('/home/$USER/.snmp/mibs:/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp') + mibs_path_arg = "-M " + default + + for mibs_path in board.mibs_paths: + mibs_path_arg = mibs_path_arg + ":" + mibs_path + + self.mibs_path_arg = mibs_path_arg + # TODO: this is all a bit wild here, need to clean up everything.. if isinstance(file_or_obj, cm_cfg): self.cm_cfg = file_or_obj @@ -86,8 +98,8 @@ def encode_cm(): cmcfg_path=os.path.join(self.dir_path, cmcfg_name) if os.path.isfile(cmcfg_path): os.remove(cmcfg_path) - print("docsis -e %s /dev/null %s" % (self.file_path, cmcfg_path)) - os.system("docsis -e %s /dev/null %s" % (self.file_path, cmcfg_path)) + print("docsis %s -e %s /dev/null %s" % (self.mibs_path_arg, self.file_path, cmcfg_path)) + os.system("docsis %s -e %s /dev/null %s" % (self.mibs_path_arg, self.file_path, cmcfg_path)) assert os.path.exists(cmcfg_path) return cmcfg_path From d6b8e173864f967fd035799baaaa757a33af3b29 Mon Sep 17 00:00:00 2001 From: "nsevvel.contractor" <nsevvel.contractor@libertyglobal.com> Date: Tue, 21 May 2019 17:34:30 +0200 Subject: [PATCH 782/947] tests: lib: installers: added script to install asterisk,pjsua and required libraries Change-Id: I5488cf19cb7cd066220c3a7bddbf2c5830ca8368 Signed-off-by: nsevvel.contractor <nsevvel.contractor@libertyglobal.com> Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/455076 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/installers.py | 96 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index a141c362..61f5eade 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -565,3 +565,99 @@ def install_postfix(device): device.sendline("service postfix start") assert 0 != device.expect(['failed']+ device.prompt, timeout = 90), "Unable to start Postfix service.Service is not properly installed" + +def install_asterisk(device): + '''Install asterisk if not present.''' + device.sendline('apt list --installed | grep -i asterisk') + try: + device.expect(['asterisk/']) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install asterisk -y 2>&1 & ') + device.expect(device.prompt) + for not_used in range(100): + device.sendline('apt list --installed | grep -i asterisk') + idx = device.expect(['asterisk/'] + device.prompt) + if idx == 0: + device.expect(device.prompt) + break + if not_used > 99: + assert 0,"Failed to install asterisk" + +def install_make(device): + '''Install make if not present.''' + device.sendline('apt list --installed | grep -i make') + try: + device.expect('make/', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install make -y') + device.expect(['make/'] + device.prompt, timeout=60) + +def install_gcc(device): + '''Install make if not present.''' + device.sendline('apt list --installed | grep -i gcc') + try: + device.expect('gcc/', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install gcc -y') + device.expect(['gcc/'] + device.prompt, timeout=60) + +def install_pkgconfig(device): + '''Install make if not present.''' + device.sendline('apt list --installed | grep -i pkg-config') + try: + device.expect('pkg\-config/', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install pkg-config -y') + device.expect(['pkg\-config/'] + device.prompt, timeout=60) + +def install_libsound2dev(device): + '''Install make if not present.''' + device.sendline('apt list --installed | grep -i libasound2-dev') + try: + device.expect('libasound2\-dev/', timeout=5) + device.expect(device.prompt) + except: + device.expect(device.prompt) + device.sendline('apt-get install libasound2-dev -y') + device.expect(['libasound2\-dev/'] + device.prompt, timeout=100) + +def install_pjsua(device): + '''Install softphone if not present.''' + try: + device.sendline('ldconfig -p | grep pj') + device.expect(['libpjsua\.so\.2\s\(libc6\,x86\-64\)'] + device.expect(device.prompt) + except: + install_make(device) + install_gcc(device) + install_pkgconfig(device) + install_libsound2dev(device) + install_wget(device) + device.sendline('rm -r pjpr*') + device.expect(device.prompt,timeout=70) + device.sendline('wget http://www.pjsip.org/release/2.6/pjproject-2.6.tar.bz2') + device.expect(device.prompt,timeout=100) + device.sendline('tar -xjf pjproject-2.6.tar.bz2') + device.expect(device.prompt,timeout=70) + device.sendline('cd pjproject-2.6') + device.expect(device.prompt) + device.sendline('./configure && make dep && make && make install 2>&1 & ') + device.expect(device.prompt) + for not_used in range(100): + import pexpect + device.expect(pexpect.TIMEOUT, timeout=10) + device.sendline('ldconfig -p | grep pj') + idx = device.expect(['libpjsua\.so\.2\s\(libc6\,x86\-64\)'] + device.prompt) + if idx == 0: + device.expect(device.prompt) + break + if not_used > 99: + assert 0,"Failed to install pjsua" From 3618d0c63ba5e1aa33ec710844c247914f8b7404 Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Date: Mon, 20 May 2019 16:53:53 +0800 Subject: [PATCH 783/947] tests: lib: common.py: firefox_webproxy_driver: added code to save file in CWD Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Change-Id: I8af40a0b88c5ad40b206288027ad75c8816a7044 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/455065 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/common.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/lib/common.py b/tests/lib/common.py index 7ff854d7..d4e0eec6 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -112,6 +112,11 @@ def firefox_webproxy_driver(ipport): profile.set_preference("network.proxy.socks", ip) profile.set_preference("network.proxy.socks_port", int(port)) profile.set_preference("network.proxy.socks_remote_dns", True) + profile.set_preference("browser.download.dir", os.getcwd()) + #number 2 is to save the file to the above current location instead of downloads + profile.set_preference("browser.download.folderList", 2) + #added this line to open the file without asking any questions + profile.set_preference("browser.helperApps.neverAsk.openFile", "text/anytext,text/comma-separated-values,text/csv,application/octet-stream") profile.update_preferences() driver = webdriver.Firefox(firefox_profile=profile) driver.implicitly_wait(30) From d414d42bb11247d6b223506f08464b4e5c637b04 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 21 May 2019 16:49:52 -0500 Subject: [PATCH 784/947] tests: lib: installer: fix syntax error Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I221f484caf64b6d510deb09138cb744c8e9e46f7 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/455317 --- tests/lib/installers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 61f5eade..94e4c5f2 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -633,7 +633,7 @@ def install_pjsua(device): '''Install softphone if not present.''' try: device.sendline('ldconfig -p | grep pj') - device.expect(['libpjsua\.so\.2\s\(libc6\,x86\-64\)'] + device.expect(['libpjsua\.so\.2\s\(libc6\,x86\-64\)']) device.expect(device.prompt) except: install_make(device) From d239199baee5da6c9b77580058c8f68dfcbc2de0 Mon Sep 17 00:00:00 2001 From: "ketan.d.luffy" <ktewari.contractor@libertyglobal.com> Date: Wed, 22 May 2019 13:23:50 +0200 Subject: [PATCH 785/947] deploy-boardfarm-nodes: refactored ipvlan/macvlan Updated the eth_static function. Retaianing the IPVLAN independent API. Added IPv6 address assignment Merged ipvlan and macvlan driver to a single method. Signed-off-by: ketan.d.luffy <ktewari.contractor@libertyglobal.com> Change-Id: Ib85a3da4646ea932903d95385622d0c8277eae8d Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/455299 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 29ec2002..7674f4b2 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -154,6 +154,9 @@ create_container_eth1_static () { local name=$1 local ip=$2 local default_route=$3 + local driver=${4:-macvlan} + local ipv6_addr=${5:-"0"} + local ipv6_default=${6:-"0"} cname=bft-node-$IFACE-$name docker stop $cname && docker rm $cname @@ -163,7 +166,12 @@ create_container_eth1_static () { cspace=$(docker inspect --format {{.State.Pid}} $cname) # create lab network access port - sudo ip link add tempfoo link $IFACE type macvlan mode bridge + if [ "$driver" = "ipvlan" ] + then + sudo ip link add tempfoo link $IFACE type $driver mode l2 + else + sudo ip link add tempfoo link $IFACE type $driver mode bridge + fi sudo ip link set dev tempfoo up sudo ip link set netns $cspace dev tempfoo docker exec $cname ip link set tempfoo name eth1 @@ -171,8 +179,15 @@ create_container_eth1_static () { docker exec $cname ip addr add $ip dev eth1 docker exec $cname ip route add default via $default_route dev eth1 docker exec $cname ping $default_route -c3 -} + ! [ "$ipv6_addr" != "0" -a "$ipv6_default" != "0" ] && echo "Error: missing ipv6 params" && return + + docker exec $cname sysctl net.ipv6.conf.eth1.disable_ipv6=0 + docker exec $cname ip -6 addr add $ipv6_addr dev eth1 + docker exec $cname ip -6 route add default via $ipv6_default dev eth1 + sleep 3 + docker exec $cname bash -c "ping -c3 $ipv6_default" +} # eth1 is on main network and static create_container_eth1_static_ipvlan () { From 4bb9b4825617716210e515dc76e3de72b2d1d34d Mon Sep 17 00:00:00 2001 From: "ketan.d.luffy" <ktewari.contractor@libertyglobal.com> Date: Thu, 23 May 2019 21:22:37 +0200 Subject: [PATCH 786/947] debian: debian_isc: Adding CCCv4 option for MTA Added CCCv4 options which points the DHCPv4 server for MTA in DHCPv6 reply. Signed-off-by: ketan.d.luffy <ktewari.contractor@libertyglobal.com> Change-Id: I3f466041f6c2256ac84d19434717687479e8d77e Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/455568 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian_isc.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 223d5119..9346f011 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -93,6 +93,7 @@ def setup_dhcp6_config(self, board_config): option docsis.time-servers code 37 = array of ip6-address; option docsis.time-offset code 38 = signed integer 32; option docsis.cm-mac-address code 1026 = string; +option docsis.PKTCBL-CCCV4 code 2170 = { integer 16, integer 16, ip-address, integer 16, integer 16, ip-address }; option vsio.docsis code 4491 = encapsulate docsis; # TODO: move to host section @@ -123,6 +124,7 @@ class "EROUTER" { option docsis.configuration-file "9_EU_CBN_IPv6_LG.cfg"; option docsis.syslog-servers ###PROV_IPV6### ; option docsis.time-offset 5000; + option docsis.PKTCBL-CCCV4 1 4 ###MTA_DHCP_SERVER1### 2 4 ###MTA_DHCP_SERVER2###; }''' if self.cm_network_v6 != self.open_network_v6: @@ -154,6 +156,8 @@ class "EROUTER" { to_send = to_send.replace('###EROUTER_NET_START###', str(self.erouter_net[0])) to_send = to_send.replace('###EROUTER_NET_END###', str(self.erouter_net[-ipaddress.IPv6Network(u'::0/%s' % self.ipv6_prefix).num_addresses])) to_send = to_send.replace('###EROUTER_PREFIX###', str(self.ipv6_prefix)) + to_send = to_send.replace('###MTA_DHCP_SERVER1###', str(self.prov_ip)) + to_send = to_send.replace('###MTA_DHCP_SERVER2###', str(self.prov_ip)) # TODO: add ranges for subnet's, syslog server per CM self.sendline(to_send) @@ -172,6 +176,7 @@ class "EROUTER" { if 'options' not in board_config['extra_provisioning_v6']['cm']: board_config['extra_provisioning_v6']['cm']['options'] = {} board_config['extra_provisioning_v6']['cm']['options']['docsis.tftp-servers'] = tftp_server + board_config['extra_provisioning_v6']['cm']['options']['docsis.PKTCBL-CCCV4'] = "1 4 %s 1 4 %s" % (self.prov_ip, self.prov_ip) # there is probably a better way to construct this file... for dev, cfg_sec in board_config['extra_provisioning_v6'].iteritems(): From 6bb96bf6c1d594351a2be04698b8d4ba29ce4476 Mon Sep 17 00:00:00 2001 From: "ketan.d.luffy" <ktewari.contractor@libertyglobal.com> Date: Tue, 21 May 2019 19:55:44 +0200 Subject: [PATCH 787/947] devices: debian_isc.py: add offset based on tzone Added method to fetch offset based on TZ Default value "UTC/GMT +0" Valid value "UTC/GMT -11 to +12" Signed-off-by: ketan.d.luffy <ktewari.contractor@libertyglobal.com> Change-Id: I24dd6269150e32e84e1b48c414a0bb8e7989e44e Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/455293 Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> Tested-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian_isc.py | 41 +++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 9346f011..7f2988e9 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -3,6 +3,7 @@ import pexpect from lib.regexlib import ValidIpv4AddressRegex from lib.docsis import docsis, cm_cfg +import re from devices import DebianBox @@ -46,8 +47,9 @@ def __init__(self, *args, **kwargs): self.open_network_v6_end = ipaddress.IPv6Address(kwargs.pop('open_network_v6_end', u"2001:dead:beef:6::100")) self.prov_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('prov_gateway_v6', u"2001:dead:beef:1::cafe")) self.erouter_net = ipaddress.IPv6Network(kwargs.pop('erouter_net', u"2001:dead:beef:f000::/55")) - self.sip_fqdn = kwargs.pop('sip_fqdn',u"08:54:43:4F:4D:4C:41:42:53:03:43:4F:4D:00") - self.time_server = ipaddress.IPv4Address(kwargs.pop('time_server', self.prov_ip)) + self.sip_fqdn = kwargs.pop('sip_fqdn',u"08:54:43:4F:4D:4C:41:42:53:03:43:4F:4D:00") + self.time_server = ipaddress.IPv4Address(kwargs.pop('time_server', self.prov_ip)) + self.timezone = self.get_timzone_offset(kwargs.pop('timezone', u"UTC")) self.syslog_server = ipaddress.IPv4Address(kwargs.pop('syslog_server', self.prov_ip)) if 'options' in kwargs: options = [x.strip() for x in kwargs['options'].split(',')] @@ -125,6 +127,7 @@ class "EROUTER" { option docsis.syslog-servers ###PROV_IPV6### ; option docsis.time-offset 5000; option docsis.PKTCBL-CCCV4 1 4 ###MTA_DHCP_SERVER1### 2 4 ###MTA_DHCP_SERVER2###; + option docsis.time-offset ###TIMEZONE###; }''' if self.cm_network_v6 != self.open_network_v6: @@ -158,6 +161,7 @@ class "EROUTER" { to_send = to_send.replace('###EROUTER_PREFIX###', str(self.ipv6_prefix)) to_send = to_send.replace('###MTA_DHCP_SERVER1###', str(self.prov_ip)) to_send = to_send.replace('###MTA_DHCP_SERVER2###', str(self.prov_ip)) + to_send = to_send.replace('###TIMEZONE###', str(self.timezone)) # TODO: add ranges for subnet's, syslog server per CM self.sendline(to_send) @@ -253,7 +257,7 @@ class "HOST" { option broadcast-address ###CM_BROADCAST###; option dhcp-parameter-request-list 43; option domain-name "local"; - option time-offset 1; + option time-offset ###TIMEZONE###; option tftp-server-name "###DEFAULT_TFTP_SERVER###"; option docsis-mta.dhcp-server-1 ###MTA_DHCP_SERVER1###; option docsis-mta.dhcp-server-2 ###MTA_DHCP_SERVER2###; @@ -263,7 +267,7 @@ class "HOST" { { option routers ###MTA_GATEWAY###; option broadcast-address ###MTA_BROADCAST###; - option time-offset 1; + option time-offset ###TIMEZONE###; option domain-name-servers ###PROV###; option docsis-mta.kerberos-realm 05:42:41:53:49:43:01:31:00 ; option docsis-mta.provision-server 0 ###MTA_SIP_FQDN### ; @@ -273,7 +277,7 @@ class "HOST" { option routers ###OPEN_GATEWAY###; option broadcast-address ###OPEN_BROADCAST###; option domain-name "local"; - option time-offset 1; + option time-offset ###TIMEZONE###; option domain-name-servers ###PROV###; } pool { @@ -293,7 +297,7 @@ class "HOST" { to_send = to_send.replace('###LOG_SERVER###', str(self.syslog_server)) to_send = to_send.replace('###TIME_SERVER###', str(self.time_server)) - to_send = to_send.replace('###MTA_SIP_FQDN###', str(self.sip_fqdn)) + to_send = to_send.replace('###MTA_SIP_FQDN###', str(self.sip_fqdn)) to_send = to_send.replace('###NEXT_SERVER###', str(self.prov_ip)) to_send = to_send.replace('###IFACE###', str(self.iface_dut)) to_send = to_send.replace('###MTA_DHCP_SERVER1###', str(self.prov_ip)) @@ -320,9 +324,10 @@ class "HOST" { to_send = to_send.replace('###OPEN_END_RANGE###', str(self.open_network[60])) to_send = to_send.replace('###OPEN_GATEWAY###', str(self.open_gateway)) to_send = to_send.replace('###OPEN_BROADCAST###', str(self.open_network[-1])) + to_send = to_send.replace('###TIMEZONE###', str(self.timezone)) self.sendline(to_send) - self.expect(self.prompt) + self.expect(self.prompt) self.sendline('rm /etc/dhcp/dhcpd.conf.''' + board_config['station']) self.expect(self.prompt) @@ -358,6 +363,22 @@ class "HOST" { self.sendline("mv /etc/dhcp/dhcpd.conf-" + board_config['station'] + ".master /etc/dhcp/dhcpd.conf") self.expect(self.prompt) + def get_timzone_offset(self,timezone): + if timezone == "UTC": + return 0 + if timezone.startswith("GMT") or timezone.startswith("UTC"): + try: + offset = int(re.search(r"[\W\D\S]?\d{1,2}",timezone).group(0)) + except: + # In case a value was not provided, will throw an Attribute error + return 0 + # offset should be from GMT -11 to GMT 12 + if offset in range(-11,13): + return 3600 * offset + else: + print("Invalid Timezone. Using UTC standard") + return 0 + def update_cmts_isc_dhcp_config(self, board_config): if 'extra_provisioning' not in board_config: # same defaults so we at least set tftp server to WAN @@ -380,9 +401,13 @@ def update_cmts_isc_dhcp_config(self, board_config): board_config['extra_provisioning']["cm"] = \ { "hardware ethernet": board_config['cm_mac'], "options": { "domain-name-servers": "%s" % self.prov_ip, - "time-offset": "-25200" + "time-offset": "%s" % str(self.timezone) } } + + # since it skips the previous condition if extra prov is provided + board_config['extra_provisioning']["cm"]["options"]["time-offset"] = "%s" % str(self.timezone) + if 'erouter_mac' in board_config and not 'erouter' in board_config['extra_provisioning']: board_config['extra_provisioning']["erouter"] = \ { "hardware ethernet": board_config['erouter_mac'], From bc290e64525b8cb9242f3022bb3d526ca3a52d3a Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 23 May 2019 16:13:50 -0500 Subject: [PATCH 788/947] tests: rootfs_boot: mta ipv4 should be working for all modes now This needs to be into a helper function that brings up a docsis board and checks all interfaces required for a typical docsis CM Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I27efb36ba1c95d89f33573db426253b62ce51f80 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/455573 --- tests/rootfs_boot.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index f6effef0..bcf6183b 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -181,8 +181,8 @@ def boot(self, reflash=True): wan_ipv6 = False erouter_ipv4 = False erouter_ipv6 = False - mta_ipv4 = False - mta_ipv6 = False # Never possible on any boards? + mta_ipv4 = True + mta_ipv6 = False # Not in spec cm_configmode = board.cm_cfg.cm_configmode @@ -199,8 +199,6 @@ def boot(self, reflash=True): if cm_configmode == 'dual-stack': wan_ipv4 = erouter_ipv4 = True wan_ipv6 = erouter_ipv6 = True - # TODO: mta does not come up in this mode now, to b e fixed - # TODO: no ipv6 only TLV?!? while (time.time() - start_time < time_for_provisioning): try: From 53dcc9ca8b77a523952ea6be2c7faf9057172716 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 28 May 2019 10:39:45 -0500 Subject: [PATCH 789/947] tests: rootfs_boot: fix check in except Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I94bf339b72aad05c158bfdcfbb24186edb6d2b4c Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/456038 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Reviewed-by: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> --- tests/rootfs_boot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index bcf6183b..abf65647 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -224,7 +224,7 @@ def boot(self, reflash=True): except KeyboardInterrupt: raise except: - if time.time() - start_time < time_for_provisioning: + if time.time() - start_time > time_for_provisioning: raise # Try to verify router has stayed up (and, say, not suddenly rebooted) From 4ebe3ee9d888d4d7d67e18a5fe1d167dfa9f9cee Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 29 May 2019 13:12:15 -0500 Subject: [PATCH 790/947] bft: allow logging results into aws bucket One needs to set these environment variables and the results will be logged to that bucket: export BFT_AWS_ACCESS_KEY=... export BFT_AWS_SECRET_ACCESS_KEY=... export BFT_AWS_BUCKET=... Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I94da35a9e131ca4fa865bc4aedee787bfbd0b6da Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/456257 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- bft | 14 ++++++++++++++ requirements.txt | 1 + 2 files changed, 15 insertions(+) diff --git a/bft b/bft index 247de23b..887235aa 100755 --- a/bft +++ b/bft @@ -422,6 +422,20 @@ def main(): print("Unable to store results to elasticsearch_server specified in config. " "Results stored locally.") + if set(('BFT_AWS_ACCESS_KEY', 'BFT_AWS_SECRET_ACCESS_KEY', 'BFT_AWS_BUCKET')).issubset(os.environ): + try: + import boto3 + + filename = datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S.000Z") + '.json' + s3 = boto3.resource('s3', + aws_access_key_id=os.environ['BFT_AWS_ACCESS_KEY'], + aws_secret_access_key=os.environ['BFT_AWS_SECRET_ACCESS_KEY']) + s3object = s3.Object(os.environ['BFT_AWS_BUCKET'], filename) + s3object.put(Body=(bytes(json.dumps(info_for_remote_log, default=str).encode('UTF-8')))) + except Exception as e: + print("Failed to load data in AWS bucket") + print(e) + #Update the results in Zephyr print_bold('Starting Zephyr Execution....') diff --git a/requirements.txt b/requirements.txt index 5e0951d0..15935971 100644 --- a/requirements.txt +++ b/requirements.txt @@ -19,3 +19,4 @@ zeep matplotlib netaddr countrycode +boto3 From bbf97c0f853ea90c510363c4a7cf1ba57c7ddf3c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 30 May 2019 16:01:22 -0500 Subject: [PATCH 791/947] bft: pick boards with fewest features Before we just move board with no features to front, well let's be more specific and move board with fewest features to front. We need to start weighting features too Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I1499caacaa06678c69246d3076f72c02c5702316 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/456394 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- bft | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/bft b/bft index 887235aa..2def6d03 100755 --- a/bft +++ b/bft @@ -88,9 +88,23 @@ def main(): # Connect to any board in list connected_to_board = False random.shuffle(config.BOARD_NAMES) - if config.features == []: - # move boards with a feature to end of the list - config.BOARD_NAMES = sorted(config.BOARD_NAMES, key=lambda x: 'feature' in config.boardfarm_config[x]) + + def sortFunc(x): + # TODO: add configurable priorities for each type of feature + # e.g. wifi is probably one we never want to use unless requested + if 'feature' in config.boardfarm_config[x]: + if type(config.boardfarm_config[x]['feature']) is list: + return len(config.boardfarm_config[x]['feature']) + else: + return 1 + else: + return -1 + + print config.BOARD_NAMES + # move boards with a feature to end of the list + config.BOARD_NAMES = sorted(config.BOARD_NAMES, key=sortFunc) + print config.BOARD_NAMES + for name in config.BOARD_NAMES: try: config.board = config.boardfarm_config[name] From a0c36522cd99a28560f39e6343ebd692d356cd7e Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 24 May 2019 16:18:23 -0500 Subject: [PATCH 792/947] tests: latency_all: add test to check latency between all devices This highlights a few issues with the API, some devices don't have iface_dut defined, others don't have get_interface_ipaddr, etc Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ib4db3f55cbead0aac01a149c0a80fb6b5d2c693e Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/455716 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- tests/latency_all.py | 57 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 tests/latency_all.py diff --git a/tests/latency_all.py b/tests/latency_all.py new file mode 100644 index 00000000..f94729e3 --- /dev/null +++ b/tests/latency_all.py @@ -0,0 +1,57 @@ +import rootfs_boot +import re + +from devices import board + +class LatencyAllDevices(rootfs_boot.RootFSBootTest): + '''finds latency between all devices''' + def runTest(self): + + # TODO: create a get devices function? + devs = [] + for device in self.config.devices: + devs.append(getattr(self.config, device)) + + devs.append(board.get_pp_dev()) + + results = [] + + for d1 in devs: + for d2 in devs: + if d1 is d2: + continue + + board.touch() + + print "comparing " + d1.name + " to " + d2.name + + try: + ip1 = d1.get_interface_ipaddr(d1.iface_dut) + ip2 = d2.get_interface_ipaddr(d2.iface_dut) + + def parse_ping_times(string): + r = [float(i) for i in re.findall('time=([^\s]*) ms', string)] + return sum(r)/len(r) + + d1.sendline("ping -c20 %s" % ip2) + d1.expect_exact("ping -c20 %s" % ip2) + d1.expect(d1.prompt) + + result = parse_ping_times(d1.before) + if result is not float('nan'): + results.append('latency from %s to %s = %s ms' % (d1.name, d2.name, str(result))) + + d2.sendline("ping -c20 %s" % ip1) + d2.expect_exact("ping -c20 %s" % ip1) + d2.expect(d2.prompt) + + result = parse_ping_times(d2.before) + if result is not float('nan'): + results.append('latency from %s to %s = %s ms' % (d2.name, d1.name, str(result))) + except: + print "failed to ping " + d1.name + " to " + d2.name + continue + + print "Results:" + for line in results: + print line From 46de30eb5bdcf7fee1a379cd1b3b45c0acbd49b8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 24 May 2019 16:19:51 -0500 Subject: [PATCH 793/947] devices/casa_cmts: add proper name after pexpect is started Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: If3b1a9cb65d520af69df597b0620f9722c8e77e0 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/455717 --- devices/casa_cmts.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index c32e8427..8768b346 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -40,6 +40,8 @@ def __init__(self, self.connect() self.logfile_read = sys.stdout + self.name = kwargs.get('name', 'casa_cmts') + def connect(self): try: try: From f893fbb507244bd8fb23035d26e0b9b9958b0857 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 3 Jun 2019 12:19:47 -0500 Subject: [PATCH 794/947] bft: remove debugging messages that made it through Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I26b370372ea9784d01f2c910b1f1824149d32b00 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/456661 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- bft | 2 -- 1 file changed, 2 deletions(-) diff --git a/bft b/bft index 2def6d03..908e539b 100755 --- a/bft +++ b/bft @@ -100,10 +100,8 @@ def main(): else: return -1 - print config.BOARD_NAMES # move boards with a feature to end of the list config.BOARD_NAMES = sorted(config.BOARD_NAMES, key=sortFunc) - print config.BOARD_NAMES for name in config.BOARD_NAMES: try: From 8b68cd250f08b1c5b7978e25d6c54bb27db02e57 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Tue, 4 Jun 2019 08:49:59 +0200 Subject: [PATCH 795/947] devices: common: error handling on EOF exception if the copy command does not include the echo for the filename, then the code generates and EOF exception that can be confusing to the user. Now handles this exception and print an err msg accordingly. A small unit test module has been added. It tests only the new behaviour, but in future it could house more unit tests. Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: Id10c14083ad36557992923c3b4a1efb10530e92b Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/456391 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/common.py | 6 ++++- tests/selftest.py | 61 +++++++++++++++++++++++++++++++++++++++++++++++ testsuites.cfg | 4 ++++ 3 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 tests/selftest.py diff --git a/devices/common.py b/devices/common.py index 5a01cc45..78016bce 100644 --- a/devices/common.py +++ b/devices/common.py @@ -28,7 +28,8 @@ def get_file_magic(fname, num_bytes=4): def copy_file_to_server(cmd, password, target="/tftpboot/"): '''Requires a command like ssh/scp to transfer a file, and a password. - Run the command and enter the password if asked for one.''' + Run the command and enter the password if asked for one. + NOTE: The command must print the filename once the copy has completed''' for attempt in range(5): try: print_bold(cmd) @@ -46,6 +47,9 @@ def copy_file_to_server(cmd, password, target="/tftpboot/"): fname = p.match.group(0).strip() print_bold("\nfile: %s" % fname) + except pexpect.EOF: + print_bold("EOF exception: unable to extract filename (should be echoed by command)!") + print_bold("EOF exception: command: %s"%cmd) except Exception as e: print_bold(e) print_bold("tried to copy file to server and failed!") diff --git a/tests/selftest.py b/tests/selftest.py new file mode 100644 index 00000000..213b2dd1 --- /dev/null +++ b/tests/selftest.py @@ -0,0 +1,61 @@ +import rootfs_boot +import lib +import hashlib +import random +import string +from devices import board, wan, lan, wlan, prompt, common + +''' + This file can bu used to add unit tests that + tests/validate the behavior of new/modified + components. +''' + +class selftest_test_copy_file_to_server(rootfs_boot.RootFSBootTest): + ''' + Copy a file to /tmp on the WAN device using common.copy_file_to_server + ''' + def runTest(self): + if not wan: + msg = 'No WAN Device defined, skipping copy file to WAN test.' + lib.common.test_msg(msg) + self.skipTest(msg) + + fname = "/tmp/smallFile.txt" + + letters = string.ascii_letters + fcontent = ''.join(random.choice(letters) for i in range(50)) + + text_file = open(fname, "w") + text_file.write(fcontent) + text_file.close() + + fmd5 = hashlib.md5(open(fname,'rb').read()).hexdigest() + print("File orginal md5sum: %s"% fmd5) + + wan_ip = wan.get_interface_ipaddr("eth0") + + cmd = "cat %s | ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -x %s@%s \"cat - > %s\""\ + % (fname, wan.username, wan_ip, fname) + # this must fail as the command does not echo the filename + try: + common.copy_file_to_server(cmd, wan.password, "/tmp") + except: + print("Copy failed as expected") + pass + + cmd = "cat %s | ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -x %s@%s \"cat - > %s; echo %s\""\ + % (fname, wan.username, wan_ip, fname, fname) + # this should pass + try: + common.copy_file_to_server(cmd, wan.password, "/tmp") + except: + assert 0,"copy_file_to_server failed, Test failed!!!!" + + # is the destination file identical to the source file + wan.sendline("md5sum %s"% fname) + wan.expect(fmd5) + wan.expect(wan.prompt) + + print("Test passed") + diff --git a/testsuites.cfg b/testsuites.cfg index 19220ae4..66008278 100644 --- a/testsuites.cfg +++ b/testsuites.cfg @@ -125,6 +125,9 @@ MemoryUse RebootHard MemoryUse +[selftest] +selftest_test_copy_file_to_server + [travisci] RootFSBootTest KernelModules @@ -133,4 +136,5 @@ InterfacesShow LanDevPingRouter RouterPingWanDev LanDevPingWanDev +@selftest iPerf3Test From 9ed1091ea893a9ca973a053b681d0dfc7150223c Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Tue, 4 Jun 2019 08:25:30 +0200 Subject: [PATCH 796/947] tests: selftest: add a helper to test using get_device() We will be using this more to test dynamically creating devices, so let's add a test to make sure nothing breaks. Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: I81aca465aaba0e2b0bb3560a4f0b085683515ffb Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/456521 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/selftest.py | 113 ++++++++++++++++++++++++++++++++++++++++++++++ testsuites.cfg | 1 + 2 files changed, 114 insertions(+) diff --git a/tests/selftest.py b/tests/selftest.py index 213b2dd1..88295766 100644 --- a/tests/selftest.py +++ b/tests/selftest.py @@ -59,3 +59,116 @@ def runTest(self): print("Test passed") +class selftest_test_create_session(rootfs_boot.RootFSBootTest): + ''' + tests the create_session function in devices/__init__.py + ''' + session = None + def runTest(self): + if not wan: + msg = 'No WAN Device defined, skipping test_create_session.' + lib.common.test_msg(msg) + self.skipTest(msg) + + wan_ip = wan.get_interface_ipaddr("eth0") + + import devices + # this should fail, as "DebianBoxNonExistent" is not (yet) a device + try: + kwargs ={ + 'name':"wan_test_calls_fail", + 'ipaddr':wan_ip, + 'port':22, + 'color': 'magenta' + } + self.session = devices.get_device("DebianBoxNonExistent", **kwargs) + except: + pass + else: + assert self.session is None,"Test Failed on wrong class name" + print("Failed to create session on wrong class name (expected) PASS") + + # this must fail, as "169.254.12.18" is not a valid ip + try: + kwargs ={ + 'name':"wan_test_ip_fail", + 'ipaddr':"169.254.12.18", + 'port':22, + 'color': 'cyan' + } + self.session = devices.get_device("DebianBox", **kwargs) + except: + pass + else: + assert self.session is None,"Test Failed on wrong IP" + print("Failed to create session on wrong IP (expected) PASS") + + # this must fail, as 50 is not a valid port + try: + kwargs ={ + 'name':"wan_test_port_fail", + 'ipaddr':wan_ip, + 'port':50, + 'color': 'red' + } + self.session = devices.get_device("DebianBox", **kwargs) + except: + pass + else: + assert self.session is None,"Test Failed on wrong port" + print("Failed to create session on wrong port (expected) PASS") + + # this must fail, close but no cigar + try: + kwargs ={ + 'name':"wan_test_type_fail", + 'ipaddr':wan_ip, + 'port':50, + 'color': 'red' + } + self.session = devices.get_device("debina", **kwargs) + except: + pass + else: + assert self.session is None,"Test Failed on misspelled class name" + print("Failed to create session on misspelled class name (expected) PASS") + + # this should pass + try: + kwargs ={ + 'name':"correct_wan_parms", + 'ipaddr':wan_ip, + 'port':'22', + 'color': 'yellow' + } + self.session = devices.get_device("debian", **kwargs) + except: + assert 0, "Failed to create session, Test FAILED!" + else: + assert self.session is not None,"Test Failed on correct paramters!!" + + print("Session created successfully") + + # is the session really logged onto the wan? + + wan.sendline() + wan.expect(wan.prompt) + wan.sendline("ip a") + wan.expect(wan.prompt) + w = wan.before + + self.session.sendline() + self.session.expect(self.session.prompt) + self.session.sendline("ip a") + self.session.expect(self.session.prompt) + s = self.session.before + + assert w == s, "Interfaces differ!!! Test Failed" + + self.session.sendline("exit") + + print("Test passed") + + def recover(self): + if self.session is not None: + self.session.sendline("exit") diff --git a/testsuites.cfg b/testsuites.cfg index 66008278..45621a69 100644 --- a/testsuites.cfg +++ b/testsuites.cfg @@ -127,6 +127,7 @@ MemoryUse [selftest] selftest_test_copy_file_to_server +selftest_test_create_session [travisci] RootFSBootTest From a25900de1cecc927dda2f08a21eee9d0357adc38 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Tue, 4 Jun 2019 22:05:40 +0200 Subject: [PATCH 797/947] devices: debian_isc: get_ipv4_timeserver api to get the timeserver form the provisioner Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: I33a21b550d4dd5c92d78226381d2b98f91d547b3 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/456849 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian_isc.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 7f2988e9..ef478a53 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -615,3 +615,6 @@ def get_conf_file_from_tftp(self, _tmpdir, board_config): return True + def get_ipv4_time_server(self): + return self.time_server + From ce4e9988a44396b49a5eef8d47ba8d0bd65983c3 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Wed, 5 Jun 2019 11:35:30 -0500 Subject: [PATCH 798/947] Add python-tk to travis.yaml Without this package, a user can hit this error: File "/home/ubuntu/boardfarm/devices/debian_isc.py", line 5, in <module> from lib.docsis import docsis, cm_cfg File "/home/ubuntu/boardfarm/devices/../tests/lib/docsis.py", line 11, in <module> import Tkinter File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 42, in <module> raise ImportError, str(msg) + ', please install the python-tk package' --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 661b5809..9383486f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ before_install: - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" - sudo apt-get -qq update - - sudo apt-get install -y qemu-system-x86 docker-ce + - sudo apt-get install -y qemu-system-x86 docker-ce python-tk - sudo apt-get install -y libsnmp-dev snmp-mibs-downloader script: - ./bft -l From 6deb3e2150d325566f7ea231e042121d0f45aac7 Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Date: Wed, 5 Jun 2019 21:17:31 +0800 Subject: [PATCH 799/947] tests: lib: network_testing: Modified function for sudo_sendline Modified function for sudo_sendline Added tcpdump capture without port Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Change-Id: I7df4d074940d4a48e5ae5af048449d8662cb1469 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/456995 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/network_testing.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/tests/lib/network_testing.py b/tests/lib/network_testing.py index 5b5bc53e..a2fb5091 100644 --- a/tests/lib/network_testing.py +++ b/tests/lib/network_testing.py @@ -8,39 +8,42 @@ import re -def tcpdump_capture(device, ip_address, port, capture_file): - device.sendline("tcpdump -i %s -n \'portrange %s\' -w /tmp/%s &" %(ip_address, port, capture_file)) +def tcpdump_capture(device, interface, port=None, capture_file='pkt_capture.pcap'): + if port == None: + device.sudo_sendline("tcpdump -i %s -n -w %s &" %(interface, capture_file)) + else: + device.sudo_sendline("tcpdump -i %s -n \'portrange %s\' -w %s &" %(interface, port, capture_file)) device.expect(device.prompt) return device.before def kill_process(device, process="tcpdump"): - device.sendline("killall %s" %process) + device.sudo_sendline("killall %s" %process) device.expect(device.prompt) return device.before def tcpdump_read(device, capture_file): - device.sendline("tcpdump -n -r /tmp/%s" %(capture_file)) + device.sudo_sendline("tcpdump -n -r %s" %(capture_file)) device.expect(device.prompt) output = device.before - device.sendline("rm /tmp/%s" %(capture_file)) + device.sudo_sendline("rm %s" %(capture_file)) device.expect(device.prompt) return output def nmap_cli(device, ip_address, port, protocol=None, retry="0"): if protocol == "tcp": - device.sendline("nmap -sS %s -p %s -Pn -r -max-retries %s" %(ip_address,port,retry)) + device.sudo_sendline("nmap -sS %s -p %s -Pn -r -max-retries %s" %(ip_address,port,retry)) elif protocol == "udp": - device.sendline("nmap -sU %s -p %s -Pn -r -max-retries %s" %(ip_address,port,retry)) + device.sudo_sendline("nmap -sU %s -p %s -Pn -r -max-retries %s" %(ip_address,port,retry)) else: - device.sendline("nmap -sS -sU %s -p %s -Pn -r -max-retries %s" %(ip_address,port,retry)) + device.sudo_sendline("nmap -sS -sU %s -p %s -Pn -r -max-retries %s" %(ip_address,port,retry)) device.expect(device.prompt,timeout=200) return device.before def ping(device, ping_ip, ping_interface=None, count=4): if ping_interface == None: - device.sendline("ping -c %s %s"%(count,ping_ip)) + device.sudo_sendline("ping -c %s %s"%(count,ping_ip)) else: - device.sendline("ping -I %s -c %s %s"%(ping_interface,count,ping_ip)) + device.sudo_sendline("ping -I %s -c %s %s"%(ping_interface,count,ping_ip)) device.expect(device.prompt, timeout=50) match = re.search("%s packets transmitted, %s received, 0%% packet loss" % (count, count), device.before) if match: From c93f22838e31d9044705663b902f3d1276d8d276 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Wed, 5 Jun 2019 18:09:38 +0200 Subject: [PATCH 800/947] deploy-boardfarm-nodes: ssh and web port refactor This commit is related to the stability changes, the port values have been parameterised for all the deploy functions. Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: I62b83561d32a9f7cfd0b868691a80a058249aac4 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457022 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: ketan tewari <ktewari.contractor@libertyglobal.com> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 7674f4b2..c6bcf73e 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -7,6 +7,8 @@ OPTS=${4:-"both"} # both, odd, even, odd-dhcp, even-dhcp BRINT=br-bft BF_IMG=${BF_IMG:-"bft:node"} DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +STARTSSHPORT=5000 +STARTWEBPORT=8000 random_private_mac () { python - <<END @@ -44,8 +46,8 @@ create_container_eth1_vlan () { cname=bft-node-$IFACE-$vlan-$offset docker stop $cname && docker rm $cname docker run --name $cname --privileged -h $cname --restart=always \ - -p $(( 5000 + $offset + $vlan )):22 \ - -p $(( 8000 + $offset + $vlan )):8080 \ + -p $(( $STARTSSHPORT + $offset + $vlan )):22 \ + -p $(( $STARTWEBPORT + $offset + $vlan )):8080 \ -d $BF_IMG /usr/sbin/sshd -D sudo ip link del $IFACE.$vlan || true @@ -71,8 +73,8 @@ create_container_eth1_bridged_vlan () { cname=bft-node-$IFACE-$vlan-$offset docker stop $cname && docker rm $cname docker run --name $cname --privileged -h $cname --restart=always \ - -p $(( 5000 + $offset + $vlan )):22 \ - -p $(( 8000 + $offset + $vlan )):8080 \ + -p $(( $STARTSSHPORT + $offset + $vlan )):22 \ + -p $(( $STARTWEBPORT + $offset + $vlan )):8080 \ -d $BF_IMG /usr/sbin/sshd -D cspace=$(docker inspect --format '{{.State.Pid}}' $cname) @@ -111,8 +113,8 @@ create_container_eth1_macvtap_vlan () { cname=bft-node-$IFACE-$vlan-$offset docker stop $cname && docker rm $cname docker run --name $cname --privileged -h $cname --restart=always \ - -p $(( 5000 + $offset + $vlan )):22 \ - -p $(( 8000 + $offset + $vlan )):8080 \ + -p $(( $STARTSSHPORT + $offset + $vlan )):22 \ + -p $(( $STARTWEBPORT + $offset + $vlan )):8080 \ -d $BF_IMG /usr/sbin/sshd -D cspace=$(docker inspect --format '{{.State.Pid}}' $cname) @@ -223,8 +225,8 @@ create_container_eth1_static_linked () { cname=bft-node-$IFACE-$name docker stop $cname && docker rm $cname docker run --name $cname --privileged -h $cname --restart=always \ - -p $(( 5000 + $offset )):22 \ - -p $(( 8000 + $offset )):8080 \ + -p $(( $STARTSSHPORT + $offset )):22 \ + -p $(( $STARTWEBPORT + $offset )):8080 \ -d $BF_IMG /usr/sbin/sshd -D cspace=$(docker inspect --format {{.State.Pid}} $cname) @@ -248,8 +250,8 @@ create_container_eth1_phys () { cname=bft-node-$dev docker stop $cname && docker rm $cname docker run --name $cname --privileged -h $cname --restart=always \ - -p $(( 5000 + $offset )):22 \ - -p $(( 8000 + $offset )):8080 \ + -p $(( $STARTSSHPORT + $offset )):22 \ + -p $(( $STARTWEBPORT + $offset )):8080 \ -d $BF_IMG /usr/sbin/sshd -D cspace=$(docker inspect --format {{.State.Pid}} $cname) @@ -268,8 +270,8 @@ create_container_eth1_wifi () { cname=bft-node-$dev docker stop $cname && docker rm $cname docker run --name $cname --privileged -h $cname --restart=always \ - -p $(( 5000 + $offset )):22 \ - -p $(( 8000 + $offset )):8080 \ + -p $(( $STARTSSHPORT + $offset )):22 \ + -p $(( $STARTWEBPORT + $offset )):8080 \ -d $BF_IMG /usr/sbin/sshd -D cspace=$(docker inspect --format {{.State.Pid}} $cname) From 834783d0ce9afee25a21db8c478765d0541f8d88 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 8 May 2019 15:51:17 -0500 Subject: [PATCH 801/947] devices: debian_isc add host-identifier option dhcp6.client-id for ipv6 Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ica0218cb8632904465d8ca22b1fd6ea75a0e78d3 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/453754 Reviewed-by: ketan tewari <ktewari.contractor@libertyglobal.com> --- devices/debian_isc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index ef478a53..20453ae0 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -418,7 +418,7 @@ def update_cmts_isc_dhcp_config(self, board_config): # DHCPv6 defaults for when board does not supply defaults if 'cm_mac' in board_config and not 'cm' in board_config['extra_provisioning_v6']: board_config['extra_provisioning_v6']["cm"] = \ - { "hardware ethernet": board_config['cm_mac'], + { "host-identifier option dhcp6.client-id": '00:03:00:01:' + board_config['cm_mac'], "options": { "docsis.configuration-file": '"%s"' % board_config['cm_cfg'].encoded_fname } } if 'erouter_mac' in board_config and not 'erouter' in board_config['extra_provisioning_v6']: board_config['extra_provisioning_v6']["erouter"] = \ From b22f04122f75dc2cf5bcfc940e33710f946f026e Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Thu, 6 Jun 2019 18:27:13 +0200 Subject: [PATCH 802/947] tests: lib: wifi: fix API inconsistency cosmetic: wrong info given for the wifi_check_ssid API return value Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: I4c29824d3960e340094b699de520cf1a2e22557f Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457139 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Kalpana Vetrivel <kvetrivel.contractor@libertyglobal.com> Reviewed-by: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/wifi.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/lib/wifi.py b/tests/lib/wifi.py index 5d45a087..2cf6c1d5 100644 --- a/tests/lib/wifi.py +++ b/tests/lib/wifi.py @@ -252,7 +252,8 @@ def wifi_check_ssid(self, iface, ssid_name): Takes interface and ssid to be scanned as an argument''' raise Exception("Not implemented!") # this code does not execute, but rather serves as an example for the API - return "SSID: <ssid_name>" + return True # if found + return False # if not found def wifi_connect(self, iface, ssid_name, password, security_mode): '''Function to connect to wifi either with ssid name and password or with ssid name alone Takes arguments as SSID and (password,security) if required''' From 76f61d7e0da8ba286ef58d56f84928506a448019 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 6 Jun 2019 10:42:48 -0500 Subject: [PATCH 803/947] deploy-boardfarm-nodes: build node if it doesn't exist Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ia2c14dc1c10b1188242ff5b4ba96c94989faf489 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457150 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Reviewed-by: ketan tewari <ktewari.contractor@libertyglobal.com> --- deploy-boardfarm-nodes.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index c6bcf73e..119a5155 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -10,6 +10,10 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" STARTSSHPORT=5000 STARTWEBPORT=8000 +if ! docker inspect --type=image $BF_IMG > /dev/null 2>&1 ; then + (cd $DIR; docker build -t $BF_IMG ${BF_IMG/:/-}) +fi + random_private_mac () { python - <<END import random From 6e3bca063a3d3c56df712472d4ca15fb35918110 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 8 May 2019 15:50:50 -0500 Subject: [PATCH 804/947] devices: casa_cmts: tweak tcpdump functions Allow setting interface. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I6f4d2f581e62ed50555eef4eca2d5637d0b38ec0 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/453753 Reviewed-by: ketan tewari <ktewari.contractor@libertyglobal.com> Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- devices/casa_cmts.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 8768b346..87a24827 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -449,13 +449,13 @@ def unmirror_traffic(self): self.sendline('exit') self.expect(self.prompt) - def run_tcpdump(self, time, opts=""): + def run_tcpdump(self, time, iface='any', opts=""): self.sendline('diag') self.expect('Password:') self.sendline('casadiag') self.expect(self.prompt) - self.sendline('tcpdump "-i any %s"' % opts) - self.expect(pexpect.TIMEOUT, timeout=time) + self.sendline('tcpdump "-i%s %s"' % (iface, opts)) + self.expect(self.prompt + [pexpect.TIMEOUT], timeout=time) self.sendcontrol('c') self.expect(self.prompt) self.sendline('exit') From 6cbc4c69027d419e9a30d9bfe720142e73c06262 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 10 Jun 2019 12:47:54 -0500 Subject: [PATCH 805/947] devices: debian_isc: add missing import Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ifeb8516e2bdf2fb443dee2aa94e46d3df68eb7fe Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457507 --- devices/debian_isc.py | 1 + 1 file changed, 1 insertion(+) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 20453ae0..d9a3c493 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -4,6 +4,7 @@ from lib.regexlib import ValidIpv4AddressRegex from lib.docsis import docsis, cm_cfg import re +import glob from devices import DebianBox From 133f8cf97607d3f07930c23b3dfbc2af13334afe Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 6 Jun 2019 15:44:16 -0500 Subject: [PATCH 806/947] tests: rootfs_boot: move docsis ip networking checks to separate function Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I9d898e7fe3ab5477b630ccecf27d1cb6b2434c77 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457156 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Reviewed-by: Lynn Lin <lynn_lin@compalbn.com> --- tests/lib/docsis.py | 55 +++++++++++++++++++++++++++++++++++++++++ tests/rootfs_boot.py | 59 +++----------------------------------------- 2 files changed, 58 insertions(+), 56 deletions(-) diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py index 88d1400f..4c061b93 100755 --- a/tests/lib/docsis.py +++ b/tests/lib/docsis.py @@ -10,6 +10,7 @@ from common import cmd_exists import Tkinter import re +import time class docsis: """ @@ -190,3 +191,57 @@ class mta_cfg(cm_cfg): '''MTA specific class for cfgs''' encoded_suffix = '.bin' + +def check_valid_docsis_ip_networking(board, strict=True, time_for_provisioning=120): + start_time = time.time() + + wan_ipv4 = False + wan_ipv6 = False + erouter_ipv4 = False + erouter_ipv6 = False + mta_ipv4 = True + mta_ipv6 = False # Not in spec + + cm_configmode = board.cm_cfg.cm_configmode + + if cm_configmode == 'bridge': + # TODO + pass + if cm_configmode == 'ipv4': + wan_ipv4 = erouter_ipv4 = True + if cm_configmode == 'dslite': + # TODO + pass + if cm_configmode == 'dual-stack': + wan_ipv4 = erouter_ipv4 = True + wan_ipv6 = erouter_ipv6 = True + + while (time.time() - start_time < time_for_provisioning): + try: + if wan_ipv4: + valid_ipv4(board.get_interface_ipaddr(board.wan_iface)) + if wan_ipv6: + valid_ipv6(board.get_interface_ip6addr(board.wan_iface)) + + if hasattr(board, 'erouter_iface'): + if erouter_ipv4: + valid_ipv4(board.get_interface_ipaddr(board.erouter_iface)) + if erouter_ipv6: + valid_ipv6(board.get_interface_ip6addr(board.erouter_iface)) + + if hasattr(board, 'mta_iface'): + if mta_ipv4: + valid_ipv4(board.get_interface_ipaddr(board.mta_iface)) + if mta_ipv6: + valid_ipv6(board.get_interface_ip6addr(board.mta_iface)) + + # if we get this far, we have all IPs and can exit while loop + break + except KeyboardInterrupt: + raise + except: + if time.time() - start_time > time_for_provisioning: + if strict: + assert False, "Failed to provision docsis device properly" + else: + print("WARN: failed to provision board entirely") diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index abf65647..230fc6a9 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -11,6 +11,7 @@ import ipaddress from lib.network_helper import valid_ipv4, valid_ipv6 +from lib.docsis import check_valid_docsis_ip_networking from devices import board, wan, lan, prompt @@ -170,62 +171,8 @@ def boot(self, reflash=True): if len(pkg) > 0: board.install_package(pkg) - # TODO: we should do some of this for other types of provisioners - # TODO: this should probably move into a DEVICE specific helper function - # so all the correct logic can be encoded there - if prov is not None and 'debian-isc-provisioner' in prov.model: - start_time = time.time() - time_for_provisioning = 120 - - wan_ipv4 = False - wan_ipv6 = False - erouter_ipv4 = False - erouter_ipv6 = False - mta_ipv4 = True - mta_ipv6 = False # Not in spec - - cm_configmode = board.cm_cfg.cm_configmode - - if cm_configmode == 'bridge': - # TODO - pass - if cm_configmode == 'ipv4': - wan_ipv4 = erouter_ipv4 = True - # TODO: this fails if we have dhcp6 running, why? - #mta_ipv4 = True # TODO: is this true? - if cm_configmode == 'dslite': - # TODO - pass - if cm_configmode == 'dual-stack': - wan_ipv4 = erouter_ipv4 = True - wan_ipv6 = erouter_ipv6 = True - - while (time.time() - start_time < time_for_provisioning): - try: - if wan_ipv4: - valid_ipv4(board.get_interface_ipaddr(board.wan_iface)) - if wan_ipv6: - valid_ipv6(board.get_interface_ip6addr(board.wan_iface)) - - if hasattr(board, 'erouter_iface'): - if erouter_ipv4: - valid_ipv4(board.get_interface_ipaddr(board.erouter_iface)) - if erouter_ipv6: - valid_ipv6(board.get_interface_ip6addr(board.erouter_iface)) - - if hasattr(board, 'mta_iface'): - if mta_ipv4: - valid_ipv4(board.get_interface_ipaddr(board.mta_iface)) - if mta_ipv6: - valid_ipv6(board.get_interface_ip6addr(board.mta_iface)) - - # if we get this far, we have all IPs and can exit while loop - break - except KeyboardInterrupt: - raise - except: - if time.time() - start_time > time_for_provisioning: - raise + if board.has_cmts: + check_valid_docsis_ip_networking(board) # Try to verify router has stayed up (and, say, not suddenly rebooted) end_seconds_up = board.get_seconds_uptime() From 28a2494f4edf99409d0f95175e872da5122cc2d9 Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Tue, 11 Jun 2019 18:49:10 +0530 Subject: [PATCH 807/947] devices: debian_wifi: Added constructor to get interface and removed iface args All wifi clients shall follow this convention, of iface_dut for the primary DUT facing device and iface_wifi for any wifi related "control" ping for example, is not releated to wifi so we shall implement generic ping that uses iface_dut.. running iw commands to look at wifi freq or channels shall use iface_wifi since we are acting directly on the wifi device Signed-off-by: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Change-Id: I0ff9b16c7f3a9473ef6c0ac5a19baa2cef99c06a Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457023 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian_wifi.py | 59 +++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/devices/debian_wifi.py b/devices/debian_wifi.py index 762722d9..e73866e0 100644 --- a/devices/debian_wifi.py +++ b/devices/debian_wifi.py @@ -8,32 +8,33 @@ class DebianWifi(debian.DebianBox, wifi_client_stub): '''Extension of Debian class with wifi functions''' model = ('debianwifi') - iface_wlan = "wlan0" - iface_wlan1 = "wlan1" + def __init__(self, *args, **kwargs): + super(DebianWifi,self).__init__( *args, **kwargs) + self.iface_dut = self.iface_wifi = self.kwargs.get('dut_interface', 'wlan1') - def disable_and_enable_wifi(self, iface): - self.disable_wifi(iface) - self.enable_wifi(iface) + def disable_and_enable_wifi(self): + self.disable_wifi() + self.enable_wifi() - def disable_wifi(self, iface): - self.set_link_state(iface, "down") + def disable_wifi(self): + self.set_link_state(self.iface_wifi, "down") - def enable_wifi(self, iface): - self.set_link_state(iface, "up") + def enable_wifi(self): + self.set_link_state(self.iface_wifi, "up") - def wifi_scan(self, iface): + def wifi_scan(self): from tests.lib.installers import install_iw install_iw(self) - self.sudo_sendline('iw %s scan | grep SSID:' % iface) + self.sudo_sendline('iw %s scan | grep SSID:' % self.iface_wifi) self.expect(self.prompt) return self.before - def wifi_check_ssid(self, iface, ssid_name): + def wifi_check_ssid(self, ssid_name): from tests.lib.installers import install_iw install_iw(self) - self.sudo_sendline('iw %s scan | grep "SSID: %s"' % (iface, ssid_name)) + self.sudo_sendline('iw %s scan | grep "SSID: %s"' % (self.iface_wifi, ssid_name)) self.expect(self.prompt) match = re.search("%s\"\s+.*(%s)"%(ssid_name, ssid_name), self.before) if match: @@ -41,9 +42,9 @@ def wifi_check_ssid(self, iface, ssid_name): else: return False - def wifi_connect(self, iface, ssid_name, password=None, security_mode=None): + def wifi_connect(self, ssid_name, password=None, security_mode=None): if password == None: - self.sudo_sendline("iwconfig %s essid %s" % (iface,ssid_name)) + self.sudo_sendline("iwconfig %s essid %s" % (self.iface_wifi,ssid_name)) else: '''Generate WPA supplicant file and execute it''' self.sudo_sendline("rm "+ssid_name+".conf") @@ -52,7 +53,7 @@ def wifi_connect(self, iface, ssid_name, password=None, security_mode=None): self.expect(self.prompt) self.sendline("cat "+ssid_name+".conf") self.expect(self.prompt) - self.sudo_sendline("wpa_supplicant -B -Dnl80211 -i"+iface+ " -c"+ssid_name+".conf") + self.sudo_sendline("wpa_supplicant -B -Dnl80211 -i"+self.iface_wifi+ " -c"+ssid_name+".conf") self.expect(self.prompt) match = re.search('Successfully initialized wpa_supplicant', self.before) if match: @@ -60,9 +61,9 @@ def wifi_connect(self, iface, ssid_name, password=None, security_mode=None): else: return False - def wifi_connectivity_verify(self, iface): + def wifi_connectivity_verify(self): '''Connection state verify''' - self.sendline("iw %s link" % iface) + self.sendline("iw %s link" % self.iface_wifi) self.expect(self.prompt) match = re.search('Connected', self.before) if match: @@ -74,13 +75,13 @@ def disconnect_wpa(self): self.sudo_sendline("killall wpa_supplicant") self.expect(self.prompt) - def wlan_ssid_disconnect(self, iface): - output = self.sudo_sendline("iw dev %s disconnect" % iface) + def wlan_ssid_disconnect(self): + output = self.sudo_sendline("iw dev %s disconnect" % self.iface_wifi) self.expect(self.prompt) - def wifi_disconnect(self, iface): + def wifi_disconnect(self): self.disconnect_wpa() - self.wlan_ssid_disconnect(iface) + self.wlan_ssid_disconnect() def wifi_change_region(self, country): country = countrycode(country, origin='country_name', target='iso2c') @@ -94,18 +95,18 @@ def wifi_change_region(self, country): else: return None - def start_lan_client(self, iface): - self.iface_dut = iface + def start_lan_client(self): + self.iface_dut = self.iface_wifi super(DebianWifi, self).start_lan_client() - def wifi_client_connect(self, iface, ssid_name, password=None, security_mode=None): + def wifi_client_connect(self, ssid_name, password=None, security_mode=None): '''Scan for SSID and verify connectivity''' - self.disable_and_enable_wifi(iface) + self.disable_and_enable_wifi() self.expect(pexpect.TIMEOUT, timeout=20) - output = self.wifi_check_ssid(iface, ssid_name) + output = self.wifi_check_ssid(ssid_name) assert output==True,'SSID value check in WLAN container' - conn_wifi = self.wifi_connect(iface, ssid_name, password) + conn_wifi = self.wifi_connect(ssid_name, password) self.expect(pexpect.TIMEOUT, timeout=20) - verify_connect = self.wifi_connectivity_verify(iface) + verify_connect = self.wifi_connectivity_verify() assert verify_connect==True,'Connection establishment in WIFI' From 6c61b5924f6d6ef27a201003331cf2793a57e3ae Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 6 Jun 2019 14:02:00 -0500 Subject: [PATCH 808/947] devices: debian: allow debian to use ip/port as well as commands This will be useful for running commands as well connecting via ssh Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I8cd4617817ba816e312cf9ce5b3f2a58d3b92953 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457151 Reviewed-by: ketan tewari <ktewari.contractor@libertyglobal.com> --- devices/debian.py | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 4813e316..504d4876 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -71,6 +71,14 @@ def __init__(self, self.http_proxy = kwargs.pop('http_proxy', None) + if pre_cmd_host is not None: + sys.stdout.write("\tRunning pre_cmd_host.... ") + sys.stdout.flush() + phc = pexpect.spawn(command='bash', args=['-c', pre_cmd_host], env=env) + phc.logfile_read = sys.stdout + phc.expect(pexpect.EOF, timeout=120) + print("\tpre_cmd_host done") + if ipaddr is not None: pexpect.spawn.__init__(self, command="ssh", @@ -82,20 +90,17 @@ def __init__(self, '-o', 'ServerAliveCountMax=5']) self.ipaddr = ipaddr - else: - if pre_cmd_host is not None: - sys.stdout.write("\tRunning pre_cmd_host.... ") - sys.stdout.flush() - phc = pexpect.spawn(command='bash', args=['-c', pre_cmd_host], env=env) - phc.expect(pexpect.EOF, timeout=120) - print("\tpre_cmd_host done") - if cleanup_cmd is not None: - self.cleanup_cmd = cleanup_cmd - atexit.register(self.run_cleanup_cmd) + if cleanup_cmd is not None: + self.cleanup_cmd = cleanup_cmd + atexit.register(self.run_cleanup_cmd) + if cmd is not None: + sys.stdout.write("\tRunning cmd.... ") + sys.stdout.flush() pexpect.spawn.__init__(self, command="bash", args=['-c', cmd], env=env) self.ipaddr = None + print("\tcmd done") self.name = name self.color = color @@ -195,12 +200,15 @@ def __init__(self, print("\tpost_cmd_host done") if post_cmd is not None: + sys.stdout.write("\tRunning post_cmd.... ") + sys.stdout.flush() env_prefix="" for k, v in env.iteritems(): env_prefix += "export %s=%s; " % (k, v) self.sendline(env_prefix + post_cmd) self.expect(self.prompt) + print("\tpost_cmd done") if reboot: self.reset() From 955b5b73aac42f769bbf0976a188a6db74b22d4b Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Tue, 11 Jun 2019 19:07:14 +0530 Subject: [PATCH 809/947] tests: lib: wifi: Modified wifi client stub arguments Signed-off-by: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Change-Id: I1926f7037c56698e49b91360d09748a986b5a1da Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457617 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/wifi.py | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/tests/lib/wifi.py b/tests/lib/wifi.py index 2cf6c1d5..cab872ef 100644 --- a/tests/lib/wifi.py +++ b/tests/lib/wifi.py @@ -228,46 +228,40 @@ def apply_changes(self): pass class wifi_client_stub(): - def enable_wifi(self, iface): - '''Function to make the wifi interface UP - Takes interface as an argument''' + def enable_wifi(self): + '''Function to make the wifi interface UP''' raise Exception("Not implemented!") - def disable_wifi(self, iface): - '''Function to make the wifi interface DOWN - Takes interface as an argument''' + def disable_wifi(self): + '''Function to make the wifi interface DOWN''' raise Exception("Not implemented!") def disable_and_enable_wifi(self): - '''Function to make the wifi interface DOWN and UP - Takes interface as an argument''' + '''Function to make the wifi interface DOWN and UP''' raise Exception("Not implemented!") - def wifi_scan(self, iface): - '''Function that scans for SSIDs on a particular radio, and return a list of SSID - Takes interface to be scanned as an argument''' + def wifi_scan(self): + '''Function that scans for SSIDs on a particular radio, and return a list of SSID''' raise Exception("Not implemented!") # this code does not execute, but rather serves as an example for the API return "SSID: <ssid_name1> \ SSID: <ssid_name2>.." - def wifi_check_ssid(self, iface, ssid_name): + def wifi_check_ssid(self, ssid_name): '''Function that scans for a particular SSID - Takes interface and ssid to be scanned as an argument''' + Takes ssid to be scanned as an argument''' raise Exception("Not implemented!") # this code does not execute, but rather serves as an example for the API return True # if found return False # if not found - def wifi_connect(self, iface, ssid_name, password, security_mode): + def wifi_connect(self, ssid_name, password, security_mode): '''Function to connect to wifi either with ssid name and password or with ssid name alone Takes arguments as SSID and (password,security) if required''' raise Exception("Not implemented!") - def wifi_connectivity_verify(self, iface): + def wifi_connectivity_verify(self): '''Function to verify wifi connectivity - Takes interface as argument to check for wifi connectivity Returns True or False based on connectivity''' raise Exception("Not implemented!") # this code does not execute, but rather serves as an example for the API return "True or False" - def wifi_disconnect(self, iface): - '''Function to disconnect wifi - Takes interface to be disconnected as argument''' + def wifi_disconnect(self): + '''Function to disconnect wifi''' raise Exception("Not implemented!") def wifi_change_region(self, country): '''Function to change the country From b59a485f7da382cdd57345a87cc12c5e656d14a2 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 11 Jun 2019 09:49:19 -0500 Subject: [PATCH 810/947] Fix 'Failed to run ... parse' message Just listing tests using "./bft -l" printed an error message at top: Failed to run <class 'tests.cdrouter_bootstrap.CDrouterCustom'> parse function! Due to this: Traceback (most recent call last): File "/home/mikea/boardfarm/tests/__init__.py", line 50, in init new_tests = test.parse(config) or [] File "/home/mikea/boardfarm/tests/lib/common.py", line 33, in wrapper return f(*args, **kwargs) File "/home/mikea/boardfarm/tests/cdrouter_bootstrap.py", line 329, in parse if 'cdrouter_server' in config.board: AttributeError: 'module' object has no attribute 'board' This code change fixes that. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ia137074d555ec8b387b2fd889b1e1c36c0fc51a2 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457641 Reviewed-by: Mike Anderson <mikeanderson@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> Tested-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/cdrouter_bootstrap.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 807f1fe1..1abfad32 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -326,7 +326,7 @@ def recover(self): @staticmethod @lib.common.run_once def parse(config): - if 'cdrouter_server' in config.board: + if hasattr(config, 'board') and 'cdrouter_server' in config.board: cdrouter_server = config.board['cdrouter_server'] elif config.cdrouter_server is not None: cdrouter_server = config.cdrouter_server From 4558a71339d4cf897aee61b1ab62c6decae0d1af Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Wed, 12 Jun 2019 13:34:57 -0500 Subject: [PATCH 811/947] Add feature to post results to MongoDB If a MongoDB hostname, username, and password are set then this will attempt to connect and post results to that database at the end of a bft run. If those aren't set, no new behavior. Tested by setting up a MongoDB on their free cloud service. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I81567fe2f763dce6a5ecf65159f64c2768ee79ba Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457867 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 12 ++++++- config.py | 6 ++++ devices/mongodblogger.py | 78 ++++++++++++++++++++++++++++++++++++++++ requirements.txt | 1 + 4 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 devices/mongodblogger.py diff --git a/bft b/bft index 908e539b..6a5ed658 100755 --- a/bft +++ b/bft @@ -26,7 +26,7 @@ import zephyr_reporter import site site.addsitedir(os.path.dirname(os.path.realpath(__file__))) -from devices import logstash, elasticlogger, get_device +from devices import logstash, elasticlogger, mongodblogger, get_device import matplotlib matplotlib.use('Agg') @@ -434,6 +434,16 @@ def main(): print("Unable to store results to elasticsearch_server specified in config. " "Results stored locally.") + try: + if hasattr(config, 'mongodb') and config.mongodb['host'] is not None: + mongodblogger.MongodbLogger(**config.mongodb).log(info_for_remote_log) + else: + print("Needed mongodb parameters are not set, see config. Results stored locally.") + except Exception as e: + print(e) + print("Unable to store results to mongodb specified in config. " + "Results stored locally.") + if set(('BFT_AWS_ACCESS_KEY', 'BFT_AWS_SECRET_ACCESS_KEY', 'BFT_AWS_BUCKET')).issubset(os.environ): try: import boto3 diff --git a/config.py b/config.py index dd8b3098..2ad751f6 100644 --- a/config.py +++ b/config.py @@ -35,6 +35,12 @@ # https://elasticsearch-py.readthedocs.org/en/master/api.html#elasticsearch elasticsearch_server = os.environ.get('BFT_ELASTICSERVER', None) +# MongoDB server. Data in JSON-format can be directly sent here. +mongodb = {"host": os.environ.get('BFT_MONGOHOST', None), + "username": os.environ.get('BFT_MONGOUSER', None), + "password": os.environ.get('BFT_MONGOPASS', None) + } + # Code change server like gerrit, github, etc... Used only in display # of the results html file to list links to code changes tested. code_change_server = None diff --git a/devices/mongodblogger.py b/devices/mongodblogger.py new file mode 100644 index 00000000..af89b340 --- /dev/null +++ b/devices/mongodblogger.py @@ -0,0 +1,78 @@ +# Copyright (c) 2015 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. +#!/usr/bin/env python + +import datetime +import json +import os +import socket +import sys + +import ipaddress +import pymongo + +class ComplexEncoder(json.JSONEncoder): + def default(self, obj): + if isinstance(obj, ipaddress.IPv4Network) or \ + isinstance(obj, ipaddress.IPv4Address): + return str(obj) + elif isinstance(obj, datetime.datetime): + return str(obj) + else: + try: + return json.JSONEncoder.default(self, obj) + except: + print("WARNING: mongodblogger ComplexEncoder can't handle type %s" % type(obj)) + return "" + +def pprint(x): + '''Pretty print an object''' + print(json.dumps(x, sort_keys=True, indent=2, cls=ComplexEncoder)) + +class MongodbLogger(object): + ''' + Write data directly to mongodb. + ''' + + def __init__(self, host, username, password, + db_name='boardfarm', + collection_name='bft_run'): + self.host = host + self.username = username + self.password = password + self.db_name = db_name + self.collection_name = collection_name + # Connect to host + connect_str = "mongodb+srv://%s:%s@%s/test?retryWrites=true&w=majority" % (self.username, self.password, self.host) + self.client = pymongo.MongoClient(connect_str) + self.db = self.client[self.db_name] + self.collection = self.db[self.collection_name] + # Set default data + username = os.environ.get('BUILD_USER_ID', None) + if username is None: + username = os.environ.get('USER', '') + self.default_data = { + 'hostname': socket.gethostname(), + 'user': username, + 'build_url': os.environ.get('BUILD_URL', 'None'), + 'change_list': os.environ.get('change_list', 'None'), + 'apss': os.environ.get('apss', 'None').split('-')[0], + 'manifest': os.environ.get('manifest', 'None'), + } + + def log(self, data, debug=False): + # Put in default data + self.default_data['timestamp'] = datetime.datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S.000Z") + data.update(self.default_data) + # Handle object types that json normally can't (converts them to a string or number) + data = json.loads(json.dumps(data, cls=ComplexEncoder)) + if debug: + print("Storing into mongodb:") + pprint(data) + post_id = self.collection.insert_one(data).inserted_id + doc_url = "%s; db: %s; collection: %s; _id: %s" % (self.host, self.db_name, self.collection_name, post_id) + print("Mongodb: Data stored at %s" % (doc_url)) diff --git a/requirements.txt b/requirements.txt index 15935971..e6886c34 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,6 +8,7 @@ selenium future dlipower cdrouter +pymongo pyserial ipaddress easysnmp From ebc018e4059f7aabf16c3bee54640c9d5de43ff2 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 6 Jun 2019 11:43:58 -0500 Subject: [PATCH 812/947] deploy-boardfarm-nodes.sh: create base stub func for docker w/ ssh on mgmt This can be called generically, also we can use it for the emulated sessions more easily as well. TODO: should use ephemeral ports for these docker ports as an option at some point Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I0725bc3f1baab783cd65eccc1a71ffd008afed48 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457152 --- boardfarm_config_example.json | 42 ++++++++++++++++------------------- deploy-boardfarm-nodes.sh | 32 ++++++++++++++++++-------- 2 files changed, 42 insertions(+), 32 deletions(-) diff --git a/boardfarm_config_example.json b/boardfarm_config_example.json index ed32ba77..fda8ff86 100644 --- a/boardfarm_config_example.json +++ b/boardfarm_config_example.json @@ -35,22 +35,20 @@ { "type": "debian", "name": "wan", - "pre_cmd_host": "docker build -t bft:node bft-node", - "cmd": "docker run --name wan-${uniq_id} --privileged -it bft:node /bin/bash", - "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' wan-${uniq_id}) dev ${wan_iface}", - "post_cmd": "ip link set ${wan_iface} name eth1", + "pre_cmd_host": "source deploy-boardfarm-nodes.sh; create_container_stub wan-${uniq_id} 5910 9910 ${wan_iface}", "cleanup_cmd": "docker stop wan-${uniq_id}; docker rm wan-${uniq_id}", + "ipaddr": "localhost", + "port": "5910", "color": "cyan", "options": "tftpd-server" }, { "type": "debian", "name": "lan", - "pre_cmd_host": "docker build -t bft:node bft-node", - "cmd": "docker run --name lan-${uniq_id} --privileged -p 9909:9909 -it bft:node /bin/bash", - "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan-${uniq_id}) dev ${lan_iface}", - "post_cmd": "ip link set ${lan_iface} name eth1", + "pre_cmd_host": "source deploy-boardfarm-nodes.sh; create_container_stub lan-${uniq_id} 5909 9909 ${lan_iface}", "cleanup_cmd": "docker stop lan-${uniq_id}; docker rm lan-${uniq_id}", +"ipaddr": "localhost", +"port": "5909", "color": "blue", "http_proxy": "localhost:9909" } @@ -60,29 +58,27 @@ }, "qemux86-openwrt-1": { "board_type": "qemux86-openwrt", - "conn_cmd": "sudo qemu-system-i386 -m 256 -nographic --enable-kvm -netdev tap,id=wan,ifname=${wan_iface} -device e1000,netdev=wan -netdev tap,id=lan,ifname=${lan_iface} -device e1000,netdev=lan", + "conn_cmd": "sudo qemu-system-i386 -m 256 -nographic --enable-kvm -netdev tap,id=lan,ifname=${lan_iface} -device e1000,netdev=lan -netdev tap,id=wan,ifname=${wan_iface} -device e1000,netdev=wan", "devices": [ { "type": "debian", - "name": "lan", - "pre_cmd_host": "docker build -t bft:node bft-node", - "cmd": "docker run --name wan-${uniq_id} --privileged -it bft:node /bin/bash", - "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' wan-${uniq_id}) dev ${wan_iface}", - "post_cmd": "ip link set ${wan_iface} name eth1", + "name": "wan", + "pre_cmd_host": "source deploy-boardfarm-nodes.sh; create_container_stub wan-${uniq_id} 5909 9909 ${wan_iface}", "cleanup_cmd": "docker stop wan-${uniq_id}; docker rm wan-${uniq_id}", - "color": "cyan", - "options": "tftpd-server", - "http_proxy": "localhost:9909" + "ipaddr": "localhost", + "port": "5909", + "color": "blue" }, { "type": "debian", - "name": "wan", - "pre_cmd_host": "docker build -t bft:node bft-node", - "cmd": "docker run --name lan-${uniq_id} --privileged -it bft:node /bin/bash", - "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan-${uniq_id}) dev ${lan_iface}", - "post_cmd": "ip link set ${lan_iface} name eth1", + "name": "lan", + "pre_cmd_host": "source deploy-boardfarm-nodes.sh; create_container_stub lan-${uniq_id} 5910 9910 ${lan_iface}", "cleanup_cmd": "docker stop lan-${uniq_id}; docker rm lan-${uniq_id}", - "color": "blue" +"ipaddr": "localhost", +"port": "5910", + "color": "cyan", + "options": "tftpd-server", + "http_proxy": "localhost:9909" } ], "connection_type": "local_serial", diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 119a5155..9dba8c5f 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -42,25 +42,39 @@ local_route () { docker exec $cname ip route add $local_route dev eth0 via $docker0 } +# creates container running with ssh on eth0, adds DUT facing interface only +create_container_stub () { + local cname=${1} + local sshport=${2} + local proxyport=${3} + local ifacedut=${4} + + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -p $sshport:22 \ + -p $proxyport:8080 \ + -d $BF_IMG /usr/sbin/sshd -D + + cspace=$(docker inspect --format '{{.State.Pid}}' $cname) + sudo ip link set netns $cspace dev $ifacedut + docker exec $cname ip link set $ifacedut name eth1 + docker exec $cname ip link set dev eth1 address $(random_private_mac $vlan) +} + # eth0 is docker private network, eth1 is vlan on specific interface create_container_eth1_vlan () { local vlan=$1 local offset=${2:-0} cname=bft-node-$IFACE-$vlan-$offset - docker stop $cname && docker rm $cname - docker run --name $cname --privileged -h $cname --restart=always \ - -p $(( $STARTSSHPORT + $offset + $vlan )):22 \ - -p $(( $STARTWEBPORT + $offset + $vlan )):8080 \ - -d $BF_IMG /usr/sbin/sshd -D sudo ip link del $IFACE.$vlan || true sudo ip link add link $IFACE name $IFACE.$vlan type vlan id $vlan - cspace=$(docker inspect --format '{{.State.Pid}}' $cname) - sudo ip link set netns $cspace dev $IFACE.$vlan - docker exec $cname ip link set $IFACE.$vlan name eth1 - docker exec $cname ip link set dev eth1 address $(random_private_mac $vlan) + create_container_stub $cname \ + $(( $STARTSSHPORT + $offset + $vlan )) \ + $(( $STARTWEBPORT + $offset + $vlan )) \ + $IFACE.$vlan } # eth0 is docker private network, eth1 is vlan on specific interface within a bridge From 2e9df730282c6fed895350ce291e41447b7ae2ee Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Wed, 12 Jun 2019 15:17:19 +0530 Subject: [PATCH 813/947] devices: base: Added ping function Signed-off-by: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Change-Id: I5ac3b41cdbd2d2c58707b181150fdc75065705e6 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457215 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/base.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/devices/base.py b/devices/base.py index a62d46fe..fe693dc5 100644 --- a/devices/base.py +++ b/devices/base.py @@ -270,3 +270,16 @@ def prefer_ipv4(self, pref=True): self.sendline("sed -i 's/^precedence ::ffff:0:0\/96 100/#precedence ::ffff:0:0\/96 100/' /etc/gai.conf") self.expect(self.prompt) + def ping(self, ping_ip, source_ip=None, ping_count=4, ping_interface=None): + if source_ip == None and ping_interface == None: + self.sendline('ping -c %s %s'%(ping_count, ping_ip)) + elif ping_interface != None: + self.sendline('ping -I %s -c %s %s'%(ping_interface, ping_count, ping_ip)) + else: + self.sendline("ping -S %s -c %s %s"%(source_ip, ping_count, ping_ip)) + self.expect(self.prompt, timeout=50) + match = re.search("%s packets transmitted, %s received, 0%% packet loss" % (ping_count, ping_count), self.before) + if match: + return 'True' + else: + return 'False' From 7c2aa37045ac2b608445b41743327479f0fe5768 Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Wed, 12 Jun 2019 15:54:01 +0530 Subject: [PATCH 814/947] devices: windows_telnet: Modified the ping function Signed-off-by: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Change-Id: I42c5cf1b3956d552217aeb189b39d357d2ffe88e Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457774 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/windows_telnet.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/devices/windows_telnet.py b/devices/windows_telnet.py index 91025910..fe711b2a 100755 --- a/devices/windows_telnet.py +++ b/devices/windows_telnet.py @@ -45,12 +45,12 @@ def get_ip(self, wifi_interface): else: return None - def ping(self, ping_ip ,source_ip=None): + def ping(self, ping_ip ,source_ip=None, ping_count=4, ping_interface=None): if source_ip == None : - self.sendline('ping '+ping_ip) + self.sendline('ping -n %s %s'%(ping_count, ping_ip)) else: - self.sendline('ping -S %s %s' % (source_ip , ping_ip)) + self.sendline("ping -S %s -n %s %s"%(source_ip, ping_count, ping_ip)) self.expect("(.+)>",timeout=30) Wifi_log = self.match.group(1) From 53e9d89ee4dc62f85ecfa38fa12a843a147dea2b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 10 Jun 2019 09:39:30 -0500 Subject: [PATCH 815/947] tests: lib: logging: make float formatter more specific This keeps the spacing a little bit better for all the logs, there is still lots of room for improvement Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ia18417fe387ed833d62d1a8d692f9b361d1dec33 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457496 --- tests/lib/logging.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/lib/logging.py b/tests/lib/logging.py index f5a1f5a3..d23eb00e 100644 --- a/tests/lib/logging.py +++ b/tests/lib/logging.py @@ -43,12 +43,12 @@ def wrapper(*args, **kwargs): to_log = '%s.%s ( %s )' % (func.__module__, func.__name__, func_args_str) if hasattr(args[0], 'start'): - args[0].log_calls += '[%s]calling %s\r\n' % ((datetime.now()-args[0].start).total_seconds(), to_log) + args[0].log_calls += '[%.6f]calling %s\r\n' % ((datetime.now()-args[0].start).total_seconds(), to_log) ret = func(*args, **kwargs) if hasattr(args[0], 'start'): - args[0].log_calls += "[%s]returned %s = %s\r\n" % ((datetime.now()-args[0].start).total_seconds(), to_log, repr(ret)) + args[0].log_calls += "[%.6f]returned %s = %s\r\n" % ((datetime.now()-args[0].start).total_seconds(), to_log, repr(ret)) return ret return wrapper @@ -83,10 +83,10 @@ def write(self, string): td = datetime.now()-self.parent.start # check for the split case if len(self.parent.log) > 1 and self.parent.log[-1] == '\r' and string[0] == '\n': - tmp = '\n[%s]' % td.total_seconds() + tmp = '\n[%.6f]' % td.total_seconds() tmp += string[1:] string = tmp - to_log = re.sub('\r\n', '\r\n[%s]' % td.total_seconds(), string) + to_log = re.sub('\r\n', '\r\n[%.6f]' % td.total_seconds(), string) self.parent.log += to_log if hasattr(self.parent, 'test_to_log'): self.parent.test_to_log.log += re.sub('\r\n\[', '\r\n%s: [' % self.parent.test_prefix, to_log) From 0b6caa981fdfc283c0a14ce923b23b65411f99ee Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 11 Jun 2019 11:45:25 -0500 Subject: [PATCH 816/947] Ran autopep8 on tests/__init__.py to fix indents and more Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ie21afb00fa5d38107877c78e8e6b722220ef1949 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457645 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/__init__.py | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/tests/__init__.py b/tests/__init__.py index 4d83b591..dcad9619 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -13,7 +13,7 @@ import inspect import sys -test_files = glob.glob(os.path.dirname(__file__)+"/*.py") +test_files = glob.glob(os.path.dirname(__file__) + "/*.py") if 'BFT_OVERLAY' in os.environ: for overlay in os.environ['BFT_OVERLAY'].split(' '): overlay = os.path.abspath(overlay) @@ -22,7 +22,7 @@ sys.path.insert(0, os.getcwd() + '/tests') -test_mappings = { } +test_mappings = {} for x in sorted([os.path.basename(f)[:-3] for f in test_files if not "__" in f]): if x == "tests": raise Exception("INVALID test file name found, tests.py will cause namespace issues, please rename") @@ -41,18 +41,18 @@ print("Warning: could not import from file %s. Run with BFT_DEBUG=y for more details" % x) def init(config): - for test_file, tests in test_mappings.iteritems(): - for test in tests: + for test_file, tests in test_mappings.iteritems(): + for test in tests: #print('checking %s in %s' % (test, test_file)) - if hasattr(test, "parse"): - try: - #print("calling parse on %s" % test) - new_tests = test.parse(config) or [] - for new_test in new_tests: - globals()[new_test] = getattr(test_file, new_test) - except Exception as e: - if 'BFT_DEBUG' in os.environ: - import traceback - traceback.print_exc() - print("Failed to run %s parse function!" % test) - pass + if hasattr(test, "parse"): + try: + #print("calling parse on %s" % test) + new_tests = test.parse(config) or [] + for new_test in new_tests: + globals()[new_test] = getattr(test_file, new_test) + except Exception as e: + if 'BFT_DEBUG' in os.environ: + import traceback + traceback.print_exc() + print("Failed to run %s parse function!" % test) + pass From 8badb1cc7cd1ace8c6463d7821ce7a32d4d66e0c Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 12 Jun 2019 15:43:40 -0500 Subject: [PATCH 817/947] tests: selftest: skip copy test if we are not using ssh Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I193e3b54ed5a87cc684822f4d700bc730ec8b042 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457999 --- tests/selftest.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/selftest.py b/tests/selftest.py index 88295766..048187b9 100644 --- a/tests/selftest.py +++ b/tests/selftest.py @@ -21,6 +21,11 @@ def runTest(self): lib.common.test_msg(msg) self.skipTest(msg) + if not hasattr(wan, 'ipaddr'): + msg = 'WAN device is not running ssh server, can\'t copy with this function' + lib.common.test_msg(msg) + self.skipTest(msg) + fname = "/tmp/smallFile.txt" letters = string.ascii_letters From 85d8f6336f34363be28b878765b254241a9c9bc0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 13 Jun 2019 12:13:42 -0500 Subject: [PATCH 818/947] tests: selftest: use tempfile that doesn't have fixed name Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I71a3b86e0b2954db716c4b23ded5d93926a96f4e Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/458000 --- tests/selftest.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/selftest.py b/tests/selftest.py index 048187b9..15f2583c 100644 --- a/tests/selftest.py +++ b/tests/selftest.py @@ -3,6 +3,8 @@ import hashlib import random import string +import os +import tempfile from devices import board, wan, lan, wlan, prompt, common ''' @@ -26,14 +28,14 @@ def runTest(self): lib.common.test_msg(msg) self.skipTest(msg) - fname = "/tmp/smallFile.txt" + text_file = tempfile.NamedTemporaryFile() + self.fname = fname = text_file.name letters = string.ascii_letters fcontent = ''.join(random.choice(letters) for i in range(50)) - text_file = open(fname, "w") text_file.write(fcontent) - text_file.close() + text_file.flush() fmd5 = hashlib.md5(open(fname,'rb').read()).hexdigest() print("File orginal md5sum: %s"% fmd5) From 4a5ca2ea1de94d5e932c8ecbe823c24421380ae7 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 12 Jun 2019 12:56:42 -0500 Subject: [PATCH 819/947] devices: debian: don't print messages from pre_cmd_host We can get messages anyways and they don't need to be conveyed... however we do need a better way to show failures Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Idca5d8c906c874af629e09e16544ac62a33d10ae Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457862 --- devices/debian.py | 1 - 1 file changed, 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index 504d4876..b20406a1 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -75,7 +75,6 @@ def __init__(self, sys.stdout.write("\tRunning pre_cmd_host.... ") sys.stdout.flush() phc = pexpect.spawn(command='bash', args=['-c', pre_cmd_host], env=env) - phc.logfile_read = sys.stdout phc.expect(pexpect.EOF, timeout=120) print("\tpre_cmd_host done") From c2fa4a6241cbd6c8ab1ffcb0c03f42f329cca4e9 Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Date: Fri, 14 Jun 2019 16:16:11 +0800 Subject: [PATCH 820/947] tests: lib: common.py: moved retry function here from base Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Change-Id: Ibb2c72ea9b91ee7704a2b26a9ea80a4be74d43dd Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/458011 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/common.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/lib/common.py b/tests/lib/common.py index d4e0eec6..d473e8a3 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -460,3 +460,14 @@ def hex2ipv6(hexstr): hexstr = hexstr.replace(' ', '').lower() blocks = (''.join(block) for block in zip(*[iter(hexstr)]*4)) return ipaddress.IPv6Address(':'.join(str(block) for block in blocks).decode('utf-8')) + +def retry(func_name, max_retry, *args): + for i in range(max_retry): + try: + output = func_name(*args) + if output: + return output + except: + continue + else: + return None From 4331758db232ec0d2be487b26318b05497f0c4b0 Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Date: Fri, 14 Jun 2019 23:41:38 +0800 Subject: [PATCH 821/947] tests: lib: network_testing: added ssh_service_verify() Added ssh and telnet service verification Change-Id: I25b49be950aaea86be334cbfe1398690f82bab82 Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457141 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/network_testing.py | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/tests/lib/network_testing.py b/tests/lib/network_testing.py index a2fb5091..c292cfd6 100644 --- a/tests/lib/network_testing.py +++ b/tests/lib/network_testing.py @@ -50,3 +50,42 @@ def ping(device, ping_ip, ping_interface=None, count=4): return True else: return False + +def ssh_service_verify(device, dest_device, ip, opts="", ssh_key="-oKexAlgorithms=+diffie-hellman-group1-sha1"): + """ + This function assumes that the server does not know the identity of the client!!!!! + I.e. no passwordless login + """ + device.sendline("ssh %s@%s" %(dest_device.username, ip)) + try: + idx = device.expect(['no matching key exchange method found']+ ['(yes/no)']+ ['assword:'], timeout=60) + if idx == 0: + device.expect(device.prompt) + device.sendline("ssh %s %s@%s %s" %(ssh_key, dest_device.username, ip, opts)) + idx = device.expect(['(yes/no)'] + ['assword:'], timeout=60) + if idx == 0: + idx = 1 + if idx == 1: + device.sendline('yes') + device.expect("assword:") + device.sendline(dest_device.password) + device.expect(dest_device.prompt) + device.sendline("exit") + device.expect(device.prompt, timeout=20) + except Exception as e: + print(e) + raise Exception("Failed to connect SSH to :%s" %device.before) + +def telnet_service_verify(device, dest_device, ip, opts=""): + device.sendline("telnet%s %s" %(opts, ip)) + try: + device.expect(["Username:"], timeout=60) + device.sendline(dest_device.username) + device.expect(["assword:"]) + device.sendline(dest_device.password) + device.expect(dest_device.prompt, timeout=40) + device.sendline("exit") + device.expect(device.prompt, timeout=20) + except Exception as e: + print(e) + raise Exception("Failed to connect telnet to :%s" %device.before) From 2f8eb3313868cd9da866ed918a21588660972b33 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 18 Jun 2019 10:21:05 -0500 Subject: [PATCH 822/947] Standarize format of boardfarm config json file Fixes all the spacing and such. Simply did: cat file.json | python -m json.tool > new.json Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I2a01e55145eeb1750872b602a11664a6d132df22 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/458481 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- boardfarm_config_example.json | 192 +++++++++++++++++----------------- 1 file changed, 96 insertions(+), 96 deletions(-) diff --git a/boardfarm_config_example.json b/boardfarm_config_example.json index fda8ff86..2723d8b8 100644 --- a/boardfarm_config_example.json +++ b/boardfarm_config_example.json @@ -1,116 +1,116 @@ { - "rpi3-1": { - "board_type": "rpi3", + "new_device": { + "board_type": "Unknown", "conn_cmd": "cu -l /dev/ttyUSB1 -s 115200", - "devices": [ - { - "type": "debian", - "name": "wan", - "pre_cmd_host": "docker build -t bft:node bft-node", - "cmd": "docker run --name wan --privileged -it bft:node /bin/bash", - "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' wan) dev enx00249b14dc6e", - "post_cmd": "ip link set enx00249b14dc6e name eth1", - "cleanup_cmd": "docker stop wan; docker rm wan; sudo ip link set dev enx00249b14dc6e down", - "color": "cyan", - "options": "tftpd-server" - }, - { - "type": "debian", - "name": "lan", - "pre_cmd_host": "docker build -t bft:node bft-node", - "cmd": "docker run --name lan --privileged -it bft:node /bin/bash", - "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan) dev enxc05627904e8c", - "post_cmd": "ip link set enxc05627904e8c name eth1", - "cleanup_cmd": "docker stop lan; docker rm lan; sudo ip link set dev enxc05627904e8c down", - "color": "blue" - } - ], - "connection_type": "local_serial", - "notes": "Rpi3 device with docker containers attached to WAN/LAN" + "connection_type": "local_serial", + "devices": [ + { + "cleanup_cmd": "docker stop wan; docker rm wan; sudo ip link set dev enx00249b14dc6e down", + "cmd": "docker run --name wan --privileged -it bft:node /bin/bash", + "color": "cyan", + "name": "wan", + "options": "tftpd-server", + "post_cmd": "ip link set enx00249b14dc6e name eth1", + "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' wan) dev enx00249b14dc6e", + "pre_cmd_host": "docker build -t bft:node bft-node", + "type": "debian" + }, + { + "cleanup_cmd": "docker stop lan; docker rm lan; sudo ip link set dev enxc05627904e8c down", + "cmd": "docker run --name lan --privileged -it bft:node /bin/bash", + "color": "blue", + "name": "lan", + "post_cmd": "ip link set enxc05627904e8c name eth1", + "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan) dev enxc05627904e8c", + "pre_cmd_host": "docker build -t bft:node bft-node", + "type": "debian" + } + ], + "notes": "Unknown device with docker containers attached to WAN/LAN" }, "qemux86-1": { "board_type": "qemux86", "conn_cmd": "sudo qemu-system-i386 -m 256 -nographic --enable-kvm -netdev tap,id=wan,ifname=${wan_iface} -device e1000,netdev=wan -netdev tap,id=lan,ifname=${lan_iface} -device e1000,netdev=lan", + "connection_type": "local_serial", "devices": [ - { - "type": "debian", - "name": "wan", - "pre_cmd_host": "source deploy-boardfarm-nodes.sh; create_container_stub wan-${uniq_id} 5910 9910 ${wan_iface}", - "cleanup_cmd": "docker stop wan-${uniq_id}; docker rm wan-${uniq_id}", - "ipaddr": "localhost", - "port": "5910", - "color": "cyan", - "options": "tftpd-server" - }, - { - "type": "debian", - "name": "lan", - "pre_cmd_host": "source deploy-boardfarm-nodes.sh; create_container_stub lan-${uniq_id} 5909 9909 ${lan_iface}", - "cleanup_cmd": "docker stop lan-${uniq_id}; docker rm lan-${uniq_id}", -"ipaddr": "localhost", -"port": "5909", - "color": "blue", - "http_proxy": "localhost:9909" - } + { + "cleanup_cmd": "docker stop wan-${uniq_id}; docker rm wan-${uniq_id}", + "color": "cyan", + "ipaddr": "localhost", + "name": "wan", + "options": "tftpd-server", + "port": "5910", + "pre_cmd_host": "source deploy-boardfarm-nodes.sh; create_container_stub wan-${uniq_id} 5910 9910 ${wan_iface}", + "type": "debian" + }, + { + "cleanup_cmd": "docker stop lan-${uniq_id}; docker rm lan-${uniq_id}", + "color": "blue", + "http_proxy": "localhost:9909", + "ipaddr": "localhost", + "name": "lan", + "port": "5909", + "pre_cmd_host": "source deploy-boardfarm-nodes.sh; create_container_stub lan-${uniq_id} 5909 9909 ${lan_iface}", + "type": "debian" + } ], - "connection_type": "local_serial", "notes": "QEMU emulated devices" }, "qemux86-openwrt-1": { "board_type": "qemux86-openwrt", "conn_cmd": "sudo qemu-system-i386 -m 256 -nographic --enable-kvm -netdev tap,id=lan,ifname=${lan_iface} -device e1000,netdev=lan -netdev tap,id=wan,ifname=${wan_iface} -device e1000,netdev=wan", + "connection_type": "local_serial", "devices": [ - { - "type": "debian", - "name": "wan", - "pre_cmd_host": "source deploy-boardfarm-nodes.sh; create_container_stub wan-${uniq_id} 5909 9909 ${wan_iface}", - "cleanup_cmd": "docker stop wan-${uniq_id}; docker rm wan-${uniq_id}", - "ipaddr": "localhost", - "port": "5909", - "color": "blue" - }, - { - "type": "debian", - "name": "lan", - "pre_cmd_host": "source deploy-boardfarm-nodes.sh; create_container_stub lan-${uniq_id} 5910 9910 ${lan_iface}", - "cleanup_cmd": "docker stop lan-${uniq_id}; docker rm lan-${uniq_id}", -"ipaddr": "localhost", -"port": "5910", - "color": "cyan", - "options": "tftpd-server", - "http_proxy": "localhost:9909" - } + { + "cleanup_cmd": "docker stop wan-${uniq_id}; docker rm wan-${uniq_id}", + "color": "blue", + "ipaddr": "localhost", + "name": "wan", + "port": "5909", + "pre_cmd_host": "source deploy-boardfarm-nodes.sh; create_container_stub wan-${uniq_id} 5909 9909 ${wan_iface}", + "type": "debian" + }, + { + "cleanup_cmd": "docker stop lan-${uniq_id}; docker rm lan-${uniq_id}", + "color": "cyan", + "http_proxy": "localhost:9909", + "ipaddr": "localhost", + "name": "lan", + "options": "tftpd-server", + "port": "5910", + "pre_cmd_host": "source deploy-boardfarm-nodes.sh; create_container_stub lan-${uniq_id} 5910 9910 ${lan_iface}", + "type": "debian" + } ], - "connection_type": "local_serial", "notes": "QEMU emulated devices" }, - "new_device": { - "board_type": "Unknown", + "rpi3-1": { + "board_type": "rpi3", "conn_cmd": "cu -l /dev/ttyUSB1 -s 115200", - "devices": [ - { - "type": "debian", - "name": "wan", - "pre_cmd_host": "docker build -t bft:node bft-node", - "cmd": "docker run --name wan --privileged -it bft:node /bin/bash", - "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' wan) dev enx00249b14dc6e", - "post_cmd": "ip link set enx00249b14dc6e name eth1", - "cleanup_cmd": "docker stop wan; docker rm wan; sudo ip link set dev enx00249b14dc6e down", - "color": "cyan", - "options": "tftpd-server" - }, - { - "type": "debian", - "name": "lan", - "pre_cmd_host": "docker build -t bft:node bft-node", - "cmd": "docker run --name lan --privileged -it bft:node /bin/bash", - "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan) dev enxc05627904e8c", - "post_cmd": "ip link set enxc05627904e8c name eth1", - "cleanup_cmd": "docker stop lan; docker rm lan; sudo ip link set dev enxc05627904e8c down", - "color": "blue" - } - ], - "connection_type": "local_serial", - "notes": "Unknown device with docker containers attached to WAN/LAN" + "connection_type": "local_serial", + "devices": [ + { + "cleanup_cmd": "docker stop wan; docker rm wan; sudo ip link set dev enx00249b14dc6e down", + "cmd": "docker run --name wan --privileged -it bft:node /bin/bash", + "color": "cyan", + "name": "wan", + "options": "tftpd-server", + "post_cmd": "ip link set enx00249b14dc6e name eth1", + "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' wan) dev enx00249b14dc6e", + "pre_cmd_host": "docker build -t bft:node bft-node", + "type": "debian" + }, + { + "cleanup_cmd": "docker stop lan; docker rm lan; sudo ip link set dev enxc05627904e8c down", + "cmd": "docker run --name lan --privileged -it bft:node /bin/bash", + "color": "blue", + "name": "lan", + "post_cmd": "ip link set enxc05627904e8c name eth1", + "post_cmd_host": "sudo ip link set netns $(docker inspect --format '{{.State.Pid}}' lan) dev enxc05627904e8c", + "pre_cmd_host": "docker build -t bft:node bft-node", + "type": "debian" + } + ], + "notes": "Rpi3 device with docker containers attached to WAN/LAN" } } From e586688b598eb4b702e91e84787f011d72b203f7 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Wed, 5 Jun 2019 18:27:11 +0200 Subject: [PATCH 823/947] deploy-boardfarm-nodes: isolate mgmt iface helper added helper function to isolate the mgmt iface by using the LD_PRELOAD shim. Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: Iaae7aaa646229b6d4929c2d4b4a91f6a87cc387b Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457025 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: ketan tewari <ktewari.contractor@libertyglobal.com> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 9dba8c5f..f2f6ac37 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -42,6 +42,31 @@ local_route () { docker exec $cname ip route add $local_route dev eth0 via $docker0 } +# helper function for lan containers to push the mgmt iface in a separate routing table +# and creates a bash alias named "mgmt" that should be used to bind commands to the +# mgmt iface (this is to allow internet connectivity to specific commands without imparing +# the default route of the iface_dut) +# This function should be called when the container has an eth0 and an eth1 ifaces and eth0 +# needs to be isolated +isolate_management() { + local cname=${1} + + docker_dev=$(docker exec $cname ip route list | grep ^default | awk '{print $5}' ) + docker_gw_ip=$(ip -4 addr show docker0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}') + docker_dev_ip=$(docker exec $cname ip -4 addr show $docker_dev | grep -oP '(?<=inet\s)\d+(\.\d+){3}') + docker_nw=$(ip route | grep "dev docker0" | grep src | awk '{print $1}' | head -n1) + + docker exec $cname bash -c "echo \"1 mgmt\" >> /etc/iproute2/rt_tables" + docker exec $cname ip route add default via $docker_gw_ip table mgmt + docker exec $cname ip rule add from $docker_dev_ip table mgmt + docker exec $cname ip rule add to $docker_dev_ip table mgmt + docker exec $cname ip rule add from $docker_nw table mgmt + docker exec $cname ip rule add to $docker_nw table mgmt + + docker cp $cname:root/.bashrc bashrc_$cname + echo "alias mgmt='BIND_ADDR=$docker_dev_ip LD_PRELOAD=/usr/lib/bind.so '" >> bashrc_$cname + docker cp bashrc_$cname $cname:root/.bashrc; rm bashrc_$cname +} # creates container running with ssh on eth0, adds DUT facing interface only create_container_stub () { local cname=${1} @@ -59,6 +84,8 @@ create_container_stub () { sudo ip link set netns $cspace dev $ifacedut docker exec $cname ip link set $ifacedut name eth1 docker exec $cname ip link set dev eth1 address $(random_private_mac $vlan) + + isolate_management ${cname} } # eth0 is docker private network, eth1 is vlan on specific interface @@ -96,6 +123,7 @@ create_container_eth1_bridged_vlan () { -d $BF_IMG /usr/sbin/sshd -D cspace=$(docker inspect --format '{{.State.Pid}}' $cname) + isolate_management ${cname} # create bridge sudo ip link add br-$IFACE.$vlan type bridge || true @@ -136,6 +164,7 @@ create_container_eth1_macvtap_vlan () { -d $BF_IMG /usr/sbin/sshd -D cspace=$(docker inspect --format '{{.State.Pid}}' $cname) + isolate_management ${cname} # create uplink vlan on IFACE sudo ip link add link $IFACE name $IFACE.$vlan type vlan id $vlan @@ -293,6 +322,7 @@ create_container_eth1_wifi () { -d $BF_IMG /usr/sbin/sshd -D cspace=$(docker inspect --format {{.State.Pid}} $cname) + isolate_management ${cname} # create lab network access port sudo iw phy $(cat /sys/class/net/"$dev"/phy80211/name) set netns $cspace From 6243911c2407a66efcbe6470d11d5cf1d3e0471b Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Date: Tue, 18 Jun 2019 21:33:07 +0800 Subject: [PATCH 824/947] tests: lib: common.py: Added sleep to avoid multiple retry And remove try/except... Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Change-Id: Iad7190723a6af68c8f0b2b2c3b2e0be421733f80 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/458304 Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> Tested-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/common.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/tests/lib/common.py b/tests/lib/common.py index d473e8a3..adf1d846 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -463,11 +463,10 @@ def hex2ipv6(hexstr): def retry(func_name, max_retry, *args): for i in range(max_retry): - try: - output = func_name(*args) - if output: - return output - except: - continue + output = func_name(*args) + if output: + return output else: - return None + time.sleep(5) + else: + return None From f4b29fa4c60024268a96cff25629d551c3cf5838 Mon Sep 17 00:00:00 2001 From: "ketan.d.luffy" <ktewari.contractor@libertyglobal.com> Date: Wed, 22 May 2019 16:44:05 +0200 Subject: [PATCH 825/947] deploy-boardfarm-nodes: Modified Wi-Fi container Added provision to set proxy inside wifi-container Isolates the management Added rfkill to free wifi interface resource Signed-off-by: ketan.d.luffy <ktewari.contractor@libertyglobal.com> Change-Id: Ie76de0a98a058ce9c640dc5525278b4e3348441e Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/455421 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index f2f6ac37..28c4a509 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -312,7 +312,9 @@ create_container_eth1_phys () { # eth0 is docker private network, eth1 with device create_container_eth1_wifi () { local dev=$1 - local offset=$2 + local offset=${2:-40000} + local proxy_dir=${3:-"0"} + local proxy_ip=${4:-"0"} cname=bft-node-$dev docker stop $cname && docker rm $cname @@ -321,10 +323,23 @@ create_container_eth1_wifi () { -p $(( $STARTWEBPORT + $offset )):8080 \ -d $BF_IMG /usr/sbin/sshd -D + isolate_management ${cname} + + #add proxy details if specified + local docker_gw_ip=$(ip -4 addr show docker0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}') + if [ "$proxy_dir" != "0" ] && [ "$proxy_ip" != "0" ] + then + docker cp $proxy_dir/proxy.conf $cname:/etc/apt/apt.conf.d/ + docker exec $cname ip route add $proxy_ip via $docker_gw_ip table mgmt + fi cspace=$(docker inspect --format {{.State.Pid}} $cname) isolate_management ${cname} # create lab network access port + # rfkill and ip need to be added as rootLessCommands on the host + # if Wi-Fi was associated to an SSID on the host, on pushing the interface + # to container rfkill releases the wifi resource from host. + sudo rfkill unblock wifi sudo iw phy $(cat /sys/class/net/"$dev"/phy80211/name) set netns $cspace docker exec $cname ip link set $dev name wlan1 docker exec $cname ip link set wlan1 up From e44cf782c250427d563834797cda261643c818eb Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 12 Jun 2019 13:14:57 -0500 Subject: [PATCH 826/947] testsuites: add checks for internet connectivity We assume for travisci at least that the WAN container is connected to the internet, so let's verify the router can ping that device Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I3d5cfa845d829a451642abb9a12319e32717f82e Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457863 --- testsuites.cfg | 2 ++ 1 file changed, 2 insertions(+) diff --git a/testsuites.cfg b/testsuites.cfg index 45621a69..721c31eb 100644 --- a/testsuites.cfg +++ b/testsuites.cfg @@ -136,6 +136,8 @@ MemoryUse InterfacesShow LanDevPingRouter RouterPingWanDev +RouterPingInternet +RouterPingInternetName LanDevPingWanDev @selftest iPerf3Test From 4eb2729ddc12b33b95242abb818784cf0fd1b72f Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Mon, 17 Jun 2019 14:55:37 -0500 Subject: [PATCH 827/947] bft: Add class for interacting with a boardfarm server If boardfarm config is a local file, this feature does nothing. If boardfarm config is a file hosted on a server, this will test if it is a "boardfarm server". If not, this feature does nothing. If yes, this feature lets that server know when it is using a board, and when it is done. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ia1127c281ce9119ee8b7d92dbd72f1aede672437 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/458316 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 12 +++++ dbclients/__init__.py | 0 dbclients/boardfarmwebclient.py | 79 +++++++++++++++++++++++++++++++++ requirements.txt | 1 + 4 files changed, 92 insertions(+) create mode 100644 dbclients/__init__.py create mode 100644 dbclients/boardfarmwebclient.py diff --git a/bft b/bft index 6a5ed658..f96845b7 100755 --- a/bft +++ b/bft @@ -27,6 +27,7 @@ import site site.addsitedir(os.path.dirname(os.path.realpath(__file__))) from devices import logstash, elasticlogger, mongodblogger, get_device +from dbclients import boardfarmwebclient import matplotlib matplotlib.use('Agg') @@ -85,6 +86,11 @@ def main(): start = datetime.now() + # Setup boardfarm client even if config is a local file (in which + # case this will do nothing) + bfweb = boardfarmwebclient.BoardfarmWebClient(config.boardfarm_config_location, + debug=os.environ.get("BFT_DEBUG", False)) + # Connect to any board in list connected_to_board = False random.shuffle(config.BOARD_NAMES) @@ -197,6 +203,9 @@ def main(): except: print_bold("Using Board %s, User %s" % (name, os.environ['USER'])) + # Let boardfarm server know we are using a station + bfweb.checkout(name) + # Make devices (board, lan, wan, available to tests easily) devices.initialize_devices(config) @@ -275,6 +284,9 @@ def main(): print_bold("Results run=%d failures=%d skipped=%d" % (tests_pass, tests_fail, tests_skip)) + # Let server know we are no longer using a station + bfweb.checkin(name) + try: config.console.close() if 'devices' in config.board: diff --git a/dbclients/__init__.py b/dbclients/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/dbclients/boardfarmwebclient.py b/dbclients/boardfarmwebclient.py new file mode 100644 index 00000000..1e02981c --- /dev/null +++ b/dbclients/boardfarmwebclient.py @@ -0,0 +1,79 @@ +# Copyright (c) 2015 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. +#!/usr/bin/env python + +import os +import re +import socket + +import requests + +class BoardfarmWebClient(object): + ''' + Handles interacting with a boardfarm server. For checking out + stations, etc. + ''' + + def __init__(self, config_url, debug=False): + self.config_url = config_url + self.debug = debug + self.server_url = None + self.server_version = None + # If config isn't on a server, do nothing + if not config_url.startswith('http'): + return + self.default_data = {'hostname': socket.gethostname(), + 'username': os.environ.get('BUILD_USER_ID', None) or \ + os.environ.get('USER', None) + } + try: + # See if this is a boardfarm server by checking the root /api path + self.server_url = re.search('http.*/api', self.config_url).group(0) + r = requests.get(self.server_url) + data = r.json() + self.server_version = data.get('version', None) + print("Using %s as boardfarm server, version %s" % + (self.server_url, self.server_version)) + except: + if self.debug: + print("The server hosting '%s' does not appear to be a " + "boardfarm server." % self.config_url) + + def checkout(self, name): + if not self.server_version: + return + try: + url = self.server_url + "/checkout" + info = {"name": name} + info.update(self.default_data) + requests.post(url, json=info) + print("Notified boardfarm server of checkout of %s" % name) + except Exception as e: + if self.debug: + print(e) + print("Failed to notify boardfarm server of checkout") + + def checkin(self, name): + if not self.server_version: + return + try: + url = self.server_url + "/checkin" + info = {"name": name} + info.update(self.default_data) + requests.post(url, json=info) + print("Notified boardfarm server of checkin of %s" % name) + except Exception as e: + if self.debug: + print(e) + print("Failed to notify boardfarm server of checkin") + +if __name__ == '__main__': + bf_config = "http://boardfarm.myexamplesite.com/api/bf_config" + #bf_config = "../bf_config.json" + bfweb = BoardfarmWebClient(bf_config, debug=False) + bfweb.checkout("rpi3") + bfweb.checkin("rpi3") diff --git a/requirements.txt b/requirements.txt index e6886c34..79972b92 100644 --- a/requirements.txt +++ b/requirements.txt @@ -21,3 +21,4 @@ matplotlib netaddr countrycode boto3 +requests From f833534983968c72795cecfc18dcd1fdf52e0db2 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Wed, 19 Jun 2019 13:52:06 -0500 Subject: [PATCH 828/947] requirements: Ran sort on requirements.txt for clarity Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I72887f646f0c44b862a7448316c4bd0f7426b9db Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/458685 Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> Tested-by: Matthew McClintock <msm-oss@mcclintock.net> --- requirements.txt | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/requirements.txt b/requirements.txt index 79972b92..aea345e0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,24 +1,24 @@ argparse -elasticsearch>=1.0.0 -unittest2 -pexpect beautifulsoup4 -termcolor -selenium -future -dlipower +boto3 cdrouter -pymongo -pyserial -ipaddress +countrycode +dlipower easysnmp -jira -simplejson -pyvirtualdisplay +elasticsearch>=1.0.0 Faker -zeep +future +ipaddress +jira matplotlib netaddr -countrycode -boto3 +pexpect +pymongo +pyserial +pyvirtualdisplay requests +selenium +simplejson +termcolor +unittest2 +zeep From e15777cfc0d482ba4966c8f23bcb9a3a95b731e0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 20 Jun 2019 09:15:46 -0500 Subject: [PATCH 829/947] jenkinsfile: add gerrithub build pipeline Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Iead44c76654fd18b9e1371a00c6e139f0f569b1d Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/458834 --- .jenkinsfile | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .jenkinsfile diff --git a/.jenkinsfile b/.jenkinsfile new file mode 100644 index 00000000..66b631ab --- /dev/null +++ b/.jenkinsfile @@ -0,0 +1,40 @@ +def changeBranch = "change-${GERRIT_CHANGE_NUMBER}-${GERRIT_PATCHSET_NUMBER}" + +pipeline { + agent { label 'boardfarm' } + + stages { + stage('checkout gerrit change') { + steps { + // TODO: don't hardcode user name + git url: 'ssh://mattsm@review.gerrithub.io:29418/lgirdk/boardfarm' + sh "git fetch origin ${GERRIT_REFSPEC}:${changeBranch}" + sh "git rebase --abort || true" + sh "git reset --hard HEAD" + sh "git checkout ${changeBranch}" + sh "git rebase origin/master" + } + } + stage('run bft test') { + steps { + ansiColor('xterm') { + sh 'git show HEAD' + sh 'pip install --user -r requirements.txt' + sh 'yes | BFT_DEBUG=y ./bft -b qemux86-openwrt -r http://c4.lgirdk.com/~mattsm/openwrt-x86-generic-combined-ext4.vmdk -y -x travisci' + sh 'grep tests_fail...0, results/test_results.json' + } + } + } + stage('post results to gerrit') { + steps { + sh '''#!/bin/bash + cat results/test_results.json | jq '.test_results[] | [ .grade, .name, .message, .elapsed_time ] | @tsv' | \ + sed -e 's/"//g' -e 's/\\t/ /g' | \ + while read -r line; do + echo $line >> message + done + ''' + } + } + } +} From e12e5c899d51f8d8db6101b01a4a0ac4ac7e6848 Mon Sep 17 00:00:00 2001 From: "ketan.d.luffy" <ktewari.contractor@libertyglobal.com> Date: Tue, 18 Jun 2019 20:48:05 +0200 Subject: [PATCH 830/947] deploy-boardfarm-nodes: Updated static_eth1_linked Added support for IPv6 Second interface can be added using macvlan, macvtap or ipvlan driver Isolates the docker interface eth0 from WAN subnet Signed-off-by: ketan.d.luffy <ktewari.contractor@libertyglobal.com> Change-Id: I5ca92a394ede8012ac845ea6194f174b94308f79 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/458521 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- deploy-boardfarm-nodes.sh | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 28c4a509..612c564e 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -267,7 +267,10 @@ create_container_eth1_static_linked () { local name=$1 local ip=$2 local default_route=$3 - local offset=$4 + local offset=${4:-0} + local driver=${5:-macvlan} + local ipv6_addr=${6:-"0"} + local ipv6_default=${7:-"0"} cname=bft-node-$IFACE-$name docker stop $cname && docker rm $cname @@ -277,16 +280,32 @@ create_container_eth1_static_linked () { -d $BF_IMG /usr/sbin/sshd -D cspace=$(docker inspect --format {{.State.Pid}} $cname) + isolate_management ${cname} # create lab network access port - sudo ip link add tempfoo link $IFACE type macvlan mode bridge + if [ "$driver" = "ipvlan" ] + then + sudo ip link add tempfoo link $IFACE type $driver mode l2 + else + # driver can be macvtap or macvlan. default=macvlan + sudo ip link add tempfoo link $IFACE type $driver mode bridge + fi sudo ip link set dev tempfoo up sudo ip link set netns $cspace dev tempfoo docker exec $cname ip link set tempfoo name eth1 docker exec $cname ip link set eth1 up docker exec $cname ip addr add $ip dev eth1 + docker exec $cname ip route del default dev eth0 docker exec $cname ip route add default via $default_route dev eth1 docker exec $cname ping $default_route -c3 + + ! [ "$ipv6_addr" != "0" -a "$ipv6_default" != "0" ] && echo "Error: missing ipv6 params" && return + + docker exec $cname sysctl net.ipv6.conf.eth1.disable_ipv6=0 + docker exec $cname ip -6 addr add $ipv6_addr dev eth1 + docker exec $cname ip -6 route add default via $ipv6_default dev eth1 + sleep 3 + docker exec $cname bash -c "ping -c3 $ipv6_default" } # eth0 is docker private network, eth1 physical device From 6278d6971f0ed5fde67aaf97ad773428135b31cc Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Date: Wed, 19 Jun 2019 15:48:14 +0800 Subject: [PATCH 831/947] tests: lib: common.py: Added function to get a key value from gui json Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Change-Id: Ie397e9af9ac3e6dc397040c6f13cfe9db958894f Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/458568 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/common.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/lib/common.py b/tests/lib/common.py index adf1d846..349d1953 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -470,3 +470,13 @@ def retry(func_name, max_retry, *args): time.sleep(5) else: return None + +def resolv_dict(dic, key): + """ + This function used to get the value from gui json, replacement of eval + """ + key = key.strip("[]'").replace("']['", '#').split('#') + key_val = dic + for elem in key: + key_val = key_val[elem] + return key_val From dba26221b053b400e07015563786aeee70aa0a40 Mon Sep 17 00:00:00 2001 From: "nsevvel.contractor" <nsevvel.contractor@libertyglobal.com> Date: Wed, 19 Jun 2019 15:23:23 +0200 Subject: [PATCH 832/947] devices: debian: add and remove hosts in dnsmasq Signed-off-by: nsevvel.contractor <nsevvel.contractor@libertyglobal.com> Change-Id: I2e0355418b77cdcacbd8444f190c83203608bf0b Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/457306 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index b20406a1..db32b714 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -499,8 +499,31 @@ def setup_dnsmasq(self): self.sendline('server=8.8.4.4') self.sendline('listen-address=127.0.0.1') self.sendline('listen-address=%s' % self.gw) + self.sendline('addn-hosts=/etc/dnsmasq.hosts') #all additional hosts will be added to dnsmasq.hosts self.sendline('EOF') + self.add_hosts() + self.sendline('/etc/init.d/dnsmasq restart') + self.expect(self.prompt) + def add_hosts(self): + #to add extra hosts(dict) to dnsmasq.hosts if dns has to run in wan container + import config + from devices import board + hosts={} + for device in config.board['devices']: + if 'ipaddr' in device: + domain_name=str(getattr(config, device['name']).name)+'.boardfarm.com' + ip=str(getattr(config, device['name']).ipaddr) + hosts[domain_name] = ip + if hosts is not None: + self.sendline('cat > /etc/dnsmasq.hosts << EOF') + for key, value in hosts.iteritems(): + self.sendline(key+" "+ value) + self.sendline('EOF') + + def remove_hosts(self): + self.sendline('rm /etc/dnsmasq.hosts') + self.expect(self.prompt) self.sendline('/etc/init.d/dnsmasq restart') self.expect(self.prompt) From 2f815ba52f268d254bf2992b10fef84e9b842afd Mon Sep 17 00:00:00 2001 From: "ketan.d.luffy" <ktewari.contractor@libertyglobal.com> Date: Tue, 18 Jun 2019 20:53:40 +0200 Subject: [PATCH 833/947] debian:devices.py: update static IPv6 with prefix WAN static IPv6 addresses won't be always /64. The prefix is environment specific. Added flag to set prefix as well Signed-off-by: ketan.d.luffy <ktewari.contractor@libertyglobal.com> Change-Id: I0dbf5fe09c5617a5361c80b2808753b5e90643c1 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/458522 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/devices/debian.py b/devices/debian.py index db32b714..e9bc0ae0 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -143,7 +143,12 @@ def __init__(self, self.gw_prefixlen = self.nw.prefixlen self.static_ip = True if opt.startswith('wan-static-ipv6:'): - self.gwv6 = ipaddress.IPv6Address(opt.replace('wan-static-ipv6:', '')) + if "/" in opt: + ipv6_interface=ipaddress.IPv6Interface(opt.replace('wan-static-ipv6:', '')) + self.gwv6 = ipv6_interface.ip + self.ipv6_prefix = ipv6_interface._prefixlen + else: + self.gwv6 = ipaddress.IPv6Address(opt.replace('wan-static-ipv6:', '')) if opt.startswith('wan-static-route:'): self.static_route = opt.replace('wan-static-route:', '').replace('-', ' via ') # TODO: remove wan-static-route at some point above From a9cb10b64ec008eb59377092412aa72d67a347cc Mon Sep 17 00:00:00 2001 From: "ketan.d.luffy" <ktewari.contractor@libertyglobal.com> Date: Thu, 20 Jun 2019 21:22:08 +0200 Subject: [PATCH 834/947] devices:debian_isc.py : IPv6 address and PD update IPv6 addresses and networks are derived from ipaddress.IPv6Interface Host IPv6 addresses which do not require prefix are left as it is. Updated the Prefix Delegation for open host devices. Knowns hosts get a fix prefix for pd, this helps in not having a conflict in ISP router's pd database. Signed-off-by: ketan.d.luffy <ktewari.contractor@libertyglobal.com> Change-Id: I23d3e017d3989e4aeac6944fec5dc293c71f7333 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/458869 Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> Tested-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian_isc.py | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index d9a3c493..c190d620 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -35,19 +35,24 @@ def __init__(self, *args, **kwargs): self.prov_gateway = ipaddress.IPv4Address(kwargs.pop('prov_gateway', u"192.168.3.222")) self.prov_ip = ipaddress.IPv4Address(kwargs.pop('prov_ip', u"192.168.3.1")) - self.prov_ipv6 = ipaddress.IPv6Address(kwargs.pop('prov_ipv6', u"2001:dead:beef:1::1")) - self.prov_nw_ipv6 = ipaddress.IPv6Interface(str(self.prov_ipv6) + unicode('/%s' % self.ipv6_prefix)).network + self.prov_iface = ipaddress.IPv6Interface(kwargs.pop('prov_ipv6', u"2001:dead:beef:1::1/%s" % self.ipv6_prefix)) + self.prov_ipv6, self.prov_nw_ipv6 = self.prov_iface.ip, self.prov_iface.network - self.cm_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('cm_gateway_v6', u"2001:dead:beef:4::cafe")) - self.cm_network_v6 = ipaddress.IPv6Network(kwargs.pop('cm_network_v6', u"2001:dead:beef:4::/64")) + self.cm_gateway_v6_iface = ipaddress.IPv6Interface(kwargs.pop('cm_gateway_v6', u"2001:dead:beef:4::cafe/%s" % self.ipv6_prefix)) + self.cm_gateway_v6, self.cm_network_v6 = self.cm_gateway_v6_iface.ip, self.cm_gateway_v6_iface.network self.cm_network_v6_start = ipaddress.IPv6Address(kwargs.pop('cm_network_v6_start', u"2001:dead:beef:4::10")) self.cm_network_v6_end = ipaddress.IPv6Address(kwargs.pop('cm_network_v6_end', u"2001:dead:beef:4::100")) - self.open_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('open_gateway_v6', u"2001:dead:beef:6::cafe")) - self.open_network_v6 = ipaddress.IPv6Network(kwargs.pop('open_network_v6', u"2001:dead:beef:6::/64")) + self.open_gateway_iface = ipaddress.IPv6Interface(kwargs.pop('open_gateway_v6', u"2001:dead:beef:6::cafe/%s" % self.ipv6_prefix)) + self.open_gateway_v6, self.open_network_v6 = self.open_gateway_iface.ip, self.open_gateway_iface.network self.open_network_v6_start = ipaddress.IPv6Address(kwargs.pop('open_network_v6_start', u"2001:dead:beef:6::10")) self.open_network_v6_end = ipaddress.IPv6Address(kwargs.pop('open_network_v6_end', u"2001:dead:beef:6::100")) self.prov_gateway_v6 = ipaddress.IPv6Address(kwargs.pop('prov_gateway_v6', u"2001:dead:beef:1::cafe")) - self.erouter_net = ipaddress.IPv6Network(kwargs.pop('erouter_net', u"2001:dead:beef:f000::/55")) + + # we're storing a list of all /56 subnets possible from erouter_net_iface. + # As per docsis, /56 must be the default pd length + self.erouter_net_iface = ipaddress.IPv6Interface(kwargs.pop('erouter_net', u"2001:dead:beef:e000::/51")) + self.erouter_net = list(self.erouter_net_iface.network.subnets(56-self.erouter_net_iface._prefixlen)) + self.sip_fqdn = kwargs.pop('sip_fqdn',u"08:54:43:4F:4D:4C:41:42:53:03:43:4F:4D:00") self.time_server = ipaddress.IPv4Address(kwargs.pop('time_server', self.prov_ip)) self.timezone = self.get_timzone_offset(kwargs.pop('timezone', u"UTC")) @@ -157,9 +162,11 @@ class "EROUTER" { to_send = to_send.replace('###OPEN_NETWORK_V6###', str(self.open_network_v6)) to_send = to_send.replace('###OPEN_NETWORK_V6_START###', str(self.open_network_v6_start)) to_send = to_send.replace('###OPEN_NETWORK_V6_END###', str(self.open_network_v6_end)) - to_send = to_send.replace('###EROUTER_NET_START###', str(self.erouter_net[0])) - to_send = to_send.replace('###EROUTER_NET_END###', str(self.erouter_net[-ipaddress.IPv6Network(u'::0/%s' % self.ipv6_prefix).num_addresses])) - to_send = to_send.replace('###EROUTER_PREFIX###', str(self.ipv6_prefix)) + + # keep last ten /56 prefix in erouter pool. for unknown hosts + to_send = to_send.replace('###EROUTER_NET_START###', str(self.erouter_net[-10].network_address)) + to_send = to_send.replace('###EROUTER_NET_END###', str(self.erouter_net[-1].network_address)) + to_send = to_send.replace('###EROUTER_PREFIX###', str(self.erouter_net[-1]._prefixlen)) to_send = to_send.replace('###MTA_DHCP_SERVER1###', str(self.prov_ip)) to_send = to_send.replace('###MTA_DHCP_SERVER2###', str(self.prov_ip)) to_send = to_send.replace('###TIMEZONE###', str(self.timezone)) @@ -183,6 +190,10 @@ class "EROUTER" { board_config['extra_provisioning_v6']['cm']['options']['docsis.tftp-servers'] = tftp_server board_config['extra_provisioning_v6']['cm']['options']['docsis.PKTCBL-CCCV4'] = "1 4 %s 1 4 %s" % (self.prov_ip, self.prov_ip) + # the IPv6 subnet for erouter_net in json, should be large enough + # len(erouter_net) >= no. of boards + 10 + board_config['extra_provisioning_v6']['erouter']['fixed-prefix6'] = str(self.erouter_net[int(board_config['station'].split("-")[-1])%len(self.erouter_net)]) + # there is probably a better way to construct this file... for dev, cfg_sec in board_config['extra_provisioning_v6'].iteritems(): self.sendline("echo 'host %s-%s {' >> %s" % (dev, board_config['station'], cfg_file)) From 1e5e838a0097408595f43616dfc5e78f38579ff2 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Wed, 19 Jun 2019 16:37:03 +0200 Subject: [PATCH 835/947] tests: lib: common: added retry_on_exception Retries a method if an exception occurs NOTE: args must be a tuple, hence a 1 arg tuple is (<arg>,) Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: I9a873ed45306a57cefaa5bfe90b4cbf4afc30bf9 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/458639 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/common.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/lib/common.py b/tests/lib/common.py index 349d1953..df19a781 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -471,6 +471,23 @@ def retry(func_name, max_retry, *args): else: return None +def retry_on_exception(method, args, retries=10, tout=5): + """ + Retries a method if an exception occurs + NOTE: args must be a tuple, hence a 1 arg tuple is (<arg>,) + """ + output = None + for not_used in range(retries): + try: + output = method(*args) + break + except Exception as e: + print_bold("method failed %d time (%s)"%((not_used+1), e)) + time.sleep(tout) + pass + + return output + def resolv_dict(dic, key): """ This function used to get the value from gui json, replacement of eval From 4d7dcbfea1ac6b83680f2dcc2c6e1ea63f8195f3 Mon Sep 17 00:00:00 2001 From: "nsevvel.contractor" <nsevvel.contractor@libertyglobal.com> Date: Wed, 19 Jun 2019 15:31:21 +0200 Subject: [PATCH 836/947] tests: lib: common: added setup_asterisk_config Signed-off-by: nsevvel.contractor <nsevvel.contractor@libertyglobal.com> Change-Id: I0d81af56b4f1ded5cf8b59483da73901dc9bb64f Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/458631 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/common.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/tests/lib/common.py b/tests/lib/common.py index df19a781..287854ed 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -497,3 +497,47 @@ def resolv_dict(dic, key): for elem in key: key_val = key_val[elem] return key_val + +def setup_asterisk_config(device,numbers): + # to add sip.conf and extensions.conf + gen_conf = '''cat > /etc/asterisk/sip.conf << EOF +[general] +context=default +bindport=5060 +allowguest=yes +qualify=yes +registertimeout=900 +allow=all +allow=alaw +allow=gsm +allow=g723 +allow=g729 +EOF''' + gen_mod = '''cat > /etc/asterisk/extensions.conf << EOF +[default] +EOF''' + device.sendline(gen_conf) + device.expect(device.prompt) + device.sendline(gen_mod) + device.expect(device.prompt) + for i in numbers: + num_conf = '''( +echo ['''+i+'''] +echo type=friend +echo regexten='''+i+''' +echo secret=1234 +echo qualify=no +echo nat=force_rport +echo host=dynamic +echo canreinvite=no +echo context=default +echo dial=SIP/'''+i+''' +)>> /etc/asterisk/sip.conf''' + device.sendline(num_conf) + device.expect(device.prompt) + num_mod = '''( +echo exten \=\> '''+i+''',1,Dial\(SIP\/'''+i+''',10,r\) +echo same \=\>n,Wait\(20\) +)>> /etc/asterisk/extensions.conf''' + device.sendline(num_mod) + device.expect(device.prompt) From 93f5ef73b67971f2c78c88894cdd2f3faf4934cb Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 20 Jun 2019 16:20:30 -0500 Subject: [PATCH 837/947] devices/debian: skip device if ipaddr attribute not set Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Id26b760b312de756b9b56096d9227c1e84c78ac6 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/458873 --- devices/debian.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index e9bc0ae0..dbfd1e6f 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -518,8 +518,10 @@ def add_hosts(self): for device in config.board['devices']: if 'ipaddr' in device: domain_name=str(getattr(config, device['name']).name)+'.boardfarm.com' - ip=str(getattr(config, device['name']).ipaddr) - hosts[domain_name] = ip + device = getattr(config, device['name']) + if not hasattr(device, 'ipaddr'): + continue + hosts[domain_name] = str(device.ipaddr) if hosts is not None: self.sendline('cat > /etc/dnsmasq.hosts << EOF') for key, value in hosts.iteritems(): From b7ab57f603bbba2c6f06dc1f7957d61b71ed316f Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Thu, 20 Jun 2019 20:31:15 +0530 Subject: [PATCH 838/947] devices: casa_cmts: Modified get_cmipv6() to fetch all valid IPv6 address Signed-off-by: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Change-Id: I1d1ec5b7055429ad73f28e27a949203ca123fe97 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/458940 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> Tested-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/casa_cmts.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 87a24827..99672b75 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -11,7 +11,7 @@ import base import re import connection_decider -from lib.regexlib import ValidIpv6AddressRegex, ValidIpv4AddressRegex +from lib.regexlib import ValidIpv6AddressRegex, ValidIpv4AddressRegex, AllValidIpv6AddressesRegex class CasaCMTS(base.BaseDevice): ''' @@ -137,13 +137,12 @@ def get_cmip(self, cmmac): def get_cmipv6(self, cmmac): self.sendline('show cable modem %s' % cmmac) - self.expect('\s((200([0-9a-f]){1,1}:)([0-9a-f]{1,4}:){1,6}([0-9a-f]{1,4}))([\/\s])') - result = self.match.group(1) - if self.match != None: - output = result + self.expect(self.prompt) + match = re.search(AllValidIpv6AddressesRegex, self.before) + if match: + output = match.group(0) else: output = "None" - self.expect(self.prompt) return output def get_mtaip(self, cmmac, mtamac): From f169feabff1dd7292167d22c1515c85a1a2b0af4 Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Tue, 25 Jun 2019 18:28:28 +0530 Subject: [PATCH 839/947] tests: lib: network_testing: Added sync for kill to finish Added sync in kill_process() function for kill to get completed so file can be readable Signed-off-by: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Change-Id: I8a326eea67b794e74d2f5bbda39b4247e7fd72f3 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/459149 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- tests/lib/network_testing.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/lib/network_testing.py b/tests/lib/network_testing.py index c292cfd6..ac812049 100644 --- a/tests/lib/network_testing.py +++ b/tests/lib/network_testing.py @@ -19,6 +19,8 @@ def tcpdump_capture(device, interface, port=None, capture_file='pkt_capture.pcap def kill_process(device, process="tcpdump"): device.sudo_sendline("killall %s" %process) device.expect(device.prompt) + device.sudo_sendline("sync") + device.expect(device.prompt) return device.before def tcpdump_read(device, capture_file): From 441dd3dae11d0e57aaa310e4b1e8718b18146d56 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Mon, 24 Jun 2019 20:57:19 -0500 Subject: [PATCH 840/947] Use atexit to checkin a station Now if bft hits an exception or receives a CTRL-C it will still notify the boardfarm server to checkin a station. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I178a9df7394bc1549c006e72247d44cec6a6c4a3 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/459213 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bft b/bft index f96845b7..20ae8eb9 100755 --- a/bft +++ b/bft @@ -7,6 +7,7 @@ # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. +import atexit import inspect import os import random @@ -205,6 +206,8 @@ def main(): # Let boardfarm server know we are using a station bfweb.checkout(name) + # Checkin the station when we exit + atexit.register(bfweb.checkin, name) # Make devices (board, lan, wan, available to tests easily) devices.initialize_devices(config) @@ -284,9 +287,6 @@ def main(): print_bold("Results run=%d failures=%d skipped=%d" % (tests_pass, tests_fail, tests_skip)) - # Let server know we are no longer using a station - bfweb.checkin(name) - try: config.console.close() if 'devices' in config.board: From 6ad5b2351b29851be6e087432ad3c1bb2d7c283b Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Fri, 28 Jun 2019 08:48:54 +0200 Subject: [PATCH 841/947] devices: added base_cmts and arris_cmts check_online: returns true is cm is operational (the status string otherwise) clear_offline clear_cm_reset get_mtaip get_cmip get_cmipv6 get_cm_mac_domain check_PartialService DUT_chnl_lock Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: Iade7607b488c721ebd13e1a3ebdc1b17a40807dd Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/458623 Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> Tested-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/arris_cmts.py | 214 ++++++++++++++++++++++++++++++++++++++++++ devices/base_cmts.py | 60 ++++++++++++ devices/casa_cmts.py | 16 +--- 3 files changed, 278 insertions(+), 12 deletions(-) create mode 100644 devices/arris_cmts.py create mode 100644 devices/base_cmts.py diff --git a/devices/arris_cmts.py b/devices/arris_cmts.py new file mode 100644 index 00000000..02dee646 --- /dev/null +++ b/devices/arris_cmts.py @@ -0,0 +1,214 @@ +# Copyright (c) 2018 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. +#!/usr/bin/env python + +import pexpect +import sys +import base +import re +import connection_decider +import base_cmts +from lib.regexlib import AllValidIpv6AddressesRegex, ValidIpv4AddressRegex + +class ArrisCMTS(base_cmts.BaseCmts): + ''' + Connects to and configures a Arris CMTS + ''' + + prompt = [ 'arris(.*)>', 'arris(.*)#', 'arris\(.*\)> ', 'arris\(.*\)# '] + model = "arris_cmts" + + class ArrisCMTSDecorators(): + + @classmethod + def mac_to_cmts_type_mac_decorator(cls, function): + def wrapper(*args, **kwargs): + #import pdb; pdb.set_trace() + args = list(args) + if ':' in args[1]: + args[1] = args[0].get_cm_mac_cmts_format(args[1]) + return function(*args) + return wrapper + + def __init__(self, + *args, + **kwargs): + conn_cmd = kwargs.get('conn_cmd', None) + connection_type = kwargs.get('connection_type', 'local_serial') + self.username = kwargs.get('username', 'boardfarm') + self.password = kwargs.get('password', 'boardfarm') + self.password_admin = kwargs.get('password_admin', 'boardfarm') + self.mac_domain = kwargs.get('mac_domain', None) + + if conn_cmd is None: + # TODO: try to parse from ipaddr, etc + raise Exception("No command specified to connect to Arris CMTS") + + self.connection = connection_decider.connection(connection_type, device=self, conn_cmd=conn_cmd) + self.connection.connect() + self.connect() + self.logfile_read = sys.stdout + + self.name = kwargs.get('name', self.model) + + def connect(self): + try: + try: + self.expect_exact("Escape character is '^]'.", timeout=5) + except: + pass + self.sendline() + if 1 != self.expect(['\r\nLogin:', pexpect.TIMEOUT], timeout=10): + self.sendline(self.username) + self.expect('assword:') + self.sendline(self.password) + self.expect(self.prompt) + else: + # Over telnet we come in at the right prompt + # over serial we could have a double login + # not yet implemented + raise('Failed to connect to Arris via telnet') + self.sendline('enable') + if 0 == self.expect(['Password:'] + self.prompt): + self.sendline(self.password_admin) + self.expect(self.prompt) + self.sendline('config') + self.expect('Enter configuration commands, one per line. End with exit or quit or CTRL Z') + self.expect(self.prompt) + self.sendline('pagination') + self.expect(self.prompt) + return + except: + raise Exception("Unable to get prompt on CASA device") + + def logout(self): + self.sendline('exit') + self.sendline('exit') + + @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator + def check_online(self, cmmac): + """ + Function checks the encrytion mode and returns True if online + Args: cmmac + Return: True if the CM is operational + The actual status otherwise + """ + self.sendline('show cable modem %s detail' % cmmac) + self.expect(self.prompt) + if 'State=Operational' in self.before: + return True + else: + return re.findall('State=(.*?\s)', self.before)[0].strip() + + @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator + def clear_offline(self, cmmac): + """ + Reset a modem + Args: cmmac + """ + self.sendline('exit') + self.expect(self.prompt) + self.sendline('clear cable modem %s offline' % cmmac) + self.expect(self.prompt) + self.sendline('configure') + self.expect(self.prompt) + + @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator + def clear_cm_reset(self, cmmac): + """ + Reset a modem + Args: cmmac + """ + self.sendline('exit') + self.expect(self.prompt) + """ NB: this command does not reboot the CM, but forces it to reinitialise """ + self.sendline("clear cable modem %s reset" %cmmac) + self.expect(self.prompt) + self.sendline('configure') + self.expect(self.prompt) + + @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator + def get_mtaip(self, cmmac, mtamac): + """ + Gets the mta ip address + Args: cmmac, mtamac(not used) + Return: mta ip or None if not found + """ + self.sendline('show cable modem %s detail | include MTA' % (cmmac)) + self.expect('CPE\(MTA\)\s+.*IPv4=(' + ValidIpv4AddressRegex + ')\r\n') + result = self.match.group(1) + if self.match != None: + output = result + else: + output = "None" + self.expect(self.prompt) + return output + + @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator + def get_ip_from_regexp(self, cmmac, ip_regexpr): + """ + Gets an ip address according to a regexpr (helper function) + Args: cmmac, ip_regexpr + Return: ip addr (ipv4/6 according to regexpr) or None if not found + """ + self.sendline('show cable modem | include %s' % cmmac) + if 1 == self.expect([cmmac + '\s+(' + ip_regexpr + ')', pexpect.TIMEOUT], timeout=2): + output = "None" + else: + result = self.match.group(1) + if self.match != None: + output = result + else: + output = "None" + self.expect(self.prompt) + return output + + def get_cmip(self, cmmac): + """ + Returns the CM mgmt ipv4 address + Args: cmmac + Return: ip addr (ipv4) or None if not found + """ + return self.get_ip_from_regexp(cmmac, ValidIpv4AddressRegex) + + def get_cmipv6(self, cmmac): + """ + Returns the CM mgmt ipv6 address + Args: cmmac + Return: ip addr (ipv4) or None if not found + """ + return self.get_ip_from_regexp(cmmac, AllValidIpv6AddressesRegex) + + @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator + def get_cm_mac_domain(self,cm_mac): + """ + Returns the Mac-domain of Cable modem + Args: cm_mac + Return: ip addr (ipv4) or None if not found + """ + mac_domain = None + self.sendline('show cable modem %s detail | include Cable-Mac='% cm_mac) + if 0 == self.expect(['Cable-Mac= ([0-9]{1,3}),', pexpect.TIMEOUT], timeout=5): + mac_domain = self.match.group(1) + self.expect(self.prompt) + return mac_domain + + @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator + def check_PartialService(self, cmmac): + self.sendline('show cable modem %s | include impaired' % cmmac) + self.expect('\(impaired:\s') + match = self.match.group(1) + self.expect(self.prompt) + return match != None + + @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator + def DUT_chnl_lock(self,cm_mac): + """Check the CM channel locks with 24*8 """ + self.sendline("show cable modem | include %s" % cm_mac) + index = self.expect(["(24x8)"], timeout=3) + self.expect(self.prompt) + return 0 == index diff --git a/devices/base_cmts.py b/devices/base_cmts.py new file mode 100644 index 00000000..e1d03c09 --- /dev/null +++ b/devices/base_cmts.py @@ -0,0 +1,60 @@ +from devices import base + +class BaseCmts(base.BaseDevice): + ''' + Common API for the CMTS type devices + ''' + model = "undefined" + + def connect(self): + raise Exception("Not implemented!") + + def logout(self): + raise Exception("Not implemented!") + + def check_online(self, cmmac): + raise Exception("Not implemented!") + + def get_cmip(self, cmmac): + raise Exception("Not implemented!") + + def get_cmipv6(self, cmmac): + raise Exception("Not implemented!") + + def get_mtaip(self, cmmac, mtamac): + raise Exception("Not implemented!") + + # this should be get_md_bundle + def get_cm_bundle(self,mac_domain): + raise Exception("Not implemented!") + + def get_cm_mac_domain(self,cm_mac): + raise Exception("Not implemented!") + + def get_cmts_ip_bundle(self,bundle): + raise Exception("Not implemented!") + + def get_cmts_model(self): + return model + + def clear_offline(self, cmmac): + raise Exception("Not implemented!") + + def clear_cm_reset(self, cmmac): + raise Exception("Not implemented!") + + def get_cm_mac_cmts_format(self, mac): + """ + Function: get_cm_mac_cmts_format(mac) + Parameters: mac (mac address XX:XX:XX:XX:XX:XX) + returns: the cm_mac in cmts format xxxx.xxxx.xxxx (lowercase) + """ + if mac == None: + return None + # the mac cmts syntax format example is 3843.7d80.0ac0 + tmp = mac.replace(':', '') + mac_cmts_format = tmp[:4]+"."+tmp[4:8]+"."+tmp[8:] + return mac_cmts_format.lower() + + + diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 99672b75..e625c3a5 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -12,8 +12,9 @@ import re import connection_decider from lib.regexlib import ValidIpv6AddressRegex, ValidIpv4AddressRegex, AllValidIpv6AddressesRegex +import base_cmts -class CasaCMTS(base.BaseDevice): +class CasaCMTS(base_cmts.BaseCmts): ''' Connects to and configures a CASA CMTS ''' @@ -146,6 +147,8 @@ def get_cmipv6(self, cmmac): return output def get_mtaip(self, cmmac, mtamac): + if ':' in mtamac: + mtamac = self.get_cm_mac_cmts_format(mtamac) self.sendline('show cable modem %s cpe' % cmmac) self.expect('([\d\.]+)\s+dhcp\s+' + mtamac) result = self.match.group(1) @@ -479,17 +482,6 @@ def is_cm_bridged(self, cm_mac): else: return True - # Function: get_cm_mac_cmts_format(mac) - # Parameters: mac (mac address XX:XX:XX:XX:XX:XX) - # returns: the cm_mac in cmts format xxxx.xxxx.xxxx (lowercase) - def get_cm_mac_cmts_format(self, mac): - if mac == None: - return None - # the mac cmts syntax format example is 3843.7d80.0ac0 - tmp = mac.replace(':', '') - mac_cmts_format = tmp[:4]+"."+tmp[4:8]+"."+tmp[8:] - return mac_cmts_format.lower() - def check_docsis_mac_ip_provisioning_mode(self, index): self.sendline('show interface docsis-mac %s' % index) self.expect('ip-provisioning-mode (\w+\-\w+)') From 0fdec6c0cdc9b50795ce82c27ab83f23a910abc3 Mon Sep 17 00:00:00 2001 From: "ketan.d.luffy" <ktewari.contractor@libertyglobal.com> Date: Tue, 25 Jun 2019 13:21:05 +0200 Subject: [PATCH 842/947] devices:debian_isc.py : update default route provision_board() resets the eth1 interface. This deletes the default route set from JSON. Added a patch to update default route after reset. Signed-off-by: ketan.d.luffy <ktewari.contractor@libertyglobal.com> Change-Id: I10425a35d89dff8beef7b2d243daec7c991a26b8 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/459294 Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> Tested-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian_isc.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index c190d620..702cb386 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -492,6 +492,10 @@ def provision_board(self, board_config): self.sendline('ip -6 addr add %s/%s dev %s' % (self.gwv6, self.ipv6_prefix, self.iface_dut)) self.expect(self.prompt) + if self.static_route is not None: + self.sendline('ip route add %s' % self.static_route) + self.expect(self.prompt) + for nw in [self.cm_network, self.mta_network, self.open_network]: self.sendline('ip route add %s via %s' % (nw, self.prov_gateway)) self.expect(self.prompt) From 93d75d507887ac4797396e82ec642ff1e4fbe138 Mon Sep 17 00:00:00 2001 From: "ketan.d.luffy" <ktewari.contractor@libertyglobal.com> Date: Mon, 24 Jun 2019 18:21:19 +0200 Subject: [PATCH 843/947] devices: debian_isc: IPv6 Pool for unknown hosts Added a pool for IPv6 hosts connected to CMs in bridge mode. IP addresses are allocated from the erouter v6 subnet. Start and end values incremented by 200. Signed-off-by: ketan.d.luffy <ktewari.contractor@libertyglobal.com> Change-Id: I179ba3863dbe42a45111dbd27441ddb177035423 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/459169 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian_isc.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 702cb386..815b6c06 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -149,6 +149,12 @@ class "EROUTER" { option dhcp6.inf-max-rt 360; prefix6 ###EROUTER_NET_START### ###EROUTER_NET_END### /###EROUTER_PREFIX###; } + pool6 { + range6 ###OPEN_NETWORK_HOST_V6_START### ###OPEN_NETWORK_HOST_V6_END###; + allow unknown-clients; + option dhcp6.solmax-rt 240; + option dhcp6.inf-max-rt 360; + } } } EOF''' @@ -162,6 +168,9 @@ class "EROUTER" { to_send = to_send.replace('###OPEN_NETWORK_V6###', str(self.open_network_v6)) to_send = to_send.replace('###OPEN_NETWORK_V6_START###', str(self.open_network_v6_start)) to_send = to_send.replace('###OPEN_NETWORK_V6_END###', str(self.open_network_v6_end)) + # Increment IP by 200 hosts + to_send = to_send.replace('###OPEN_NETWORK_HOST_V6_START###', str(self.open_network_v6_start+256*2)) + to_send = to_send.replace('###OPEN_NETWORK_HOST_V6_END###', str(self.open_network_v6_end+256*2)) # keep last ten /56 prefix in erouter pool. for unknown hosts to_send = to_send.replace('###EROUTER_NET_START###', str(self.erouter_net[-10].network_address)) From 334acf9549385d6168bf330b9d5696a878a3670a Mon Sep 17 00:00:00 2001 From: "ketan.d.luffy" <ktewari.contractor@libertyglobal.com> Date: Wed, 26 Jun 2019 15:48:46 +0200 Subject: [PATCH 844/947] devices: debian.py: Added a mgmt DNS for LAN In case of loss of CM connectivity, LAN containers will use mgmt DNS IP to update/install packages using mgmt alias. The DNS IP is appended to etc/resolv.conf Signed-off-by: ketan.d.luffy <ktewari.contractor@libertyglobal.com> Change-Id: Ic70550c609e8caeb85b80a7e4d15b0ff4358d1f4 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/459487 Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> Tested-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/debian.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index dbfd1e6f..4b7d6c2d 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -38,6 +38,7 @@ class DebianBox(base.BaseDevice): wan_dhcp_server = True tftp_device = None tftp_dir = '/tftpboot' + mgmt_dns = None iface_dut = "eth1" gw = None @@ -162,6 +163,9 @@ def __init__(self, self.wan_dhcp_server = False if opt == 'wan-dhcp-client-v6': self.wan_dhcpv6 = True + if opt.startswith('mgmt-dns:'): + value = opt.replace('mgmt-dns:', '') + self.mgmt_dns = ipaddress.IPv4Address(value.split('/')[0]) try: i = self.expect(["yes/no", "assword:", "Last login", username+".*'s password:"] + self.prompt, timeout=30) @@ -666,6 +670,13 @@ def start_lan_client(self, wan_gw=None): self.expect(self.prompt) self.sendline("sed -e 's/mv -f $new_resolv_conf $resolv_conf/cat $new_resolv_conf > $resolv_conf/g' -i /sbin/dhclient-script") self.expect(self.prompt) + + if self.mgmt_dns is not None: + self.sendline("sed '/append domain-name-servers %s/d' -i /etc/dhcp/dhclient.conf" % str(self.mgmt_dns)) + self.expect(self.prompt) + self.sendline('echo "append domain-name-servers %s;" >> /etc/dhcp/dhclient.conf' % str(self.mgmt_dns)) + self.expect(self.prompt) + # TODO: don't hard code eth0 self.sendline('ip route del default dev eth0') self.expect(self.prompt) From 4b1a4bd0875200c057ff64911888fc1534a164d4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 28 Jun 2019 09:59:53 -0500 Subject: [PATCH 845/947] devices/debian: add mgmt before apt commands if set This let's apt calls bypass going through the DUT and go via the mgmt interface Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I79c6071bf17a9e0a2be8a5068e0e7e10a2180f74 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/459816 Reviewed-by: ketan tewari <ktewari.contractor@libertyglobal.com> --- devices/debian.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index 4b7d6c2d..d3f63e2d 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -192,6 +192,12 @@ def __init__(self, self.expect(self.prompt) ipaddr = self.ipaddr = self.before.strip() + self.sendline('alias mgmt') + idx = self.expect(['alias mgmt=', pexpect.TIMEOUT], timeout=10) + if idx == 0: + self.expect(self.prompt) + self.sendline('alias apt="mgmt apt"; alias apt-get="mgmt apt-get"') + if self.port != 22: cprint("%s port %s device console = %s" % (ipaddr, port, colored(color, color)), None, attrs=['bold']) else: From 385785e8b13aec4dd71514211467ebc065768e0a Mon Sep 17 00:00:00 2001 From: Kalpana Vetrivel <kvetrivel.contractor@libertyglobal.com> Date: Fri, 28 Jun 2019 22:05:25 +0530 Subject: [PATCH 846/947] devices: casa_cmts: Handled chnl bonding cli to work on diff cmts get_cmts_variant - Added func to check diff cmts variant DUT_chnl_lock - Added condition for chnl bonding cli to work on casa 3000 Change-Id: Ib6346735d5c115ee0388dfaac12db1b3b7013c26 Signed-off-by: Kalpana Vetrivel <kvetrivel.contractor@libertyglobal.com> Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/459789 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/casa_cmts.py | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index e625c3a5..7a8e79ff 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -21,6 +21,7 @@ class CasaCMTS(base_cmts.BaseCmts): prompt = ['CASA-C3200>', 'CASA-C3200#', 'CASA-C3200\(.*\)#', 'CASA-C10G>', 'CASA-C10G#', 'CASA-C10G\(.*\)#'] model = "casa_cmts" + variant = None def __init__(self, *args, @@ -72,6 +73,7 @@ def connect(self): self.expect(self.prompt) self.sendline('page-off') self.expect(self.prompt) + self.get_cmts_variant() return except: raise Exception("Unable to get prompt on CASA device") @@ -80,6 +82,12 @@ def logout(self): self.sendline('exit') self.sendline('exit') + def get_cmts_variant(self): + '''Function to get the cmt type''' + self.sendline("show system | include Product") + self.expect(['Product: ([0-9A-Z]+)']) + self.variant = self.after + def check_online(self, cmmac): """Function checks the encrytion mode and returns True if online""" """Function returns actual status if status other than online""" @@ -160,15 +168,27 @@ def get_mtaip(self, cmmac, mtamac): return output def DUT_chnl_lock(self,cm_mac): - """Check the CM channel locks with 24*8 """ - self.sendline("show cable modem %s bonding" % cm_mac) - index = self.expect(["256\(8\*24\)"]+ self.prompt) - chnl_lock = self.match.group() - if 0 == index: - self.expect(self.prompt) - return True + """Check the CM channel locks based on cmts type""" + streams = ['Upstream', 'Downstream'] + channel_list = [] + channel_lock = False + for stream in streams: + self.sendline("show cable modem %s verbose | inc \"%s Channel Set\"" % (cm_mac, stream)) + if stream == 'Upstream': + self.expect(['(\d+/\d+.\d+/\d+).*']) + match = re.search('(\d+/\d+.\d+/\d+).*', self.after) + elif stream == 'Downstream': + self.expect(['(\d+/\d+/\d+).*']) + match = re.search('(\d+/\d+/\d+).*', self.after) + channel = len(match.group().split(",")) + channel_list.append(channel) + if "3000" in self.variant: + if channel_list[0] == 8 and channel_list[1] == 16: + channel_lock = True else: - return False + if channel_list[0] == 8 and channel_list[1] == 24: + channel_lock = True + return channel_lock def get_cm_bundle(self,mac_domain): """Get the bundle id from mac-domain """ From 2f60e1449ee5d4e9cec0bc463042845adf2c5b16 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 28 Jun 2019 11:48:24 -0500 Subject: [PATCH 847/947] tests: selftest: check command was sent properly Otherwise the assert below will fail and it's really failing because the command 'ip a' was not run, so let's verify that text was sent and echoed back to us first Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Id05c6330c859f7d1ae26d3e234f86e1663eb2c74 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/459821 Reviewed-by: Mike Anderson <mikeanderson@mcclintock.net> --- tests/selftest.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/selftest.py b/tests/selftest.py index 15f2583c..b53658cb 100644 --- a/tests/selftest.py +++ b/tests/selftest.py @@ -161,12 +161,14 @@ def runTest(self): wan.sendline() wan.expect(wan.prompt) wan.sendline("ip a") + wan.expect_exact("ip a") wan.expect(wan.prompt) w = wan.before self.session.sendline() self.session.expect(self.session.prompt) self.session.sendline("ip a") + self.session.expect_exact("ip a") self.session.expect(self.session.prompt) s = self.session.before From 7d57bdb65be25b540afcc2f6f4b738891ea6bee6 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Fri, 28 Jun 2019 18:01:53 +0000 Subject: [PATCH 848/947] Move database classes from devices/ to dbclients/ Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ie2a65fd62a4455b6e1339d6f8a4f15e220fe7046 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/459828 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 4 ++-- {devices => dbclients}/elasticlogger.py | 0 {devices => dbclients}/logstash.py | 0 {devices => dbclients}/mongodblogger.py | 0 4 files changed, 2 insertions(+), 2 deletions(-) rename {devices => dbclients}/elasticlogger.py (100%) rename {devices => dbclients}/logstash.py (100%) rename {devices => dbclients}/mongodblogger.py (100%) diff --git a/bft b/bft index 20ae8eb9..9e7224cd 100755 --- a/bft +++ b/bft @@ -27,8 +27,8 @@ import zephyr_reporter import site site.addsitedir(os.path.dirname(os.path.realpath(__file__))) -from devices import logstash, elasticlogger, mongodblogger, get_device -from dbclients import boardfarmwebclient +from devices import get_device +from dbclients import logstash, elasticlogger, mongodblogger, boardfarmwebclient import matplotlib matplotlib.use('Agg') diff --git a/devices/elasticlogger.py b/dbclients/elasticlogger.py similarity index 100% rename from devices/elasticlogger.py rename to dbclients/elasticlogger.py diff --git a/devices/logstash.py b/dbclients/logstash.py similarity index 100% rename from devices/logstash.py rename to dbclients/logstash.py diff --git a/devices/mongodblogger.py b/dbclients/mongodblogger.py similarity index 100% rename from devices/mongodblogger.py rename to dbclients/mongodblogger.py From 11e32d9ebee93dfccd7290ad31cb71bd4e32c7da Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Sun, 30 Jun 2019 21:09:51 -0500 Subject: [PATCH 849/947] Add checkout of station AND devices from boardfarm server Previous version of this feature only checked-out a station by name from the boardfarm server. Now this will checkout a station and all shared devices (anything with an "_id" key). Again, all this code does nothing if you are just using a normal JSON file. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I692dc725fabdb9574f269654990c8651d07dfd33 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/459905 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- bft | 14 +++++++------- dbclients/boardfarmwebclient.py | 29 ++++++++++++++++++----------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/bft b/bft index 9e7224cd..f8f18bf7 100755 --- a/bft +++ b/bft @@ -204,17 +204,17 @@ def main(): except: print_bold("Using Board %s, User %s" % (name, os.environ['USER'])) - # Let boardfarm server know we are using a station - bfweb.checkout(name) - # Checkin the station when we exit - atexit.register(bfweb.checkin, name) + # Store name of station in config for convenience + config.board['station'] = name + + # Notify boardfarm server of station & devices we are using + bfweb.checkout(config.board) + # Checkin station & devices when we exit + atexit.register(bfweb.checkin) # Make devices (board, lan, wan, available to tests easily) devices.initialize_devices(config) - # Write board info to json file and stdout - config.board['station'] = name - # Update config from board info if hasattr(config.console, "update_config"): config.console.update_config() diff --git a/dbclients/boardfarmwebclient.py b/dbclients/boardfarmwebclient.py index 1e02981c..cf56a6b8 100644 --- a/dbclients/boardfarmwebclient.py +++ b/dbclients/boardfarmwebclient.py @@ -23,6 +23,7 @@ def __init__(self, config_url, debug=False): self.debug = debug self.server_url = None self.server_version = None + self.checked_out = None # If config isn't on a server, do nothing if not config_url.startswith('http'): return @@ -43,28 +44,32 @@ def __init__(self, config_url, debug=False): print("The server hosting '%s' does not appear to be a " "boardfarm server." % self.config_url) - def checkout(self, name): + def checkout(self, config): if not self.server_version: return try: + # Gather all the '_id' keys out of the config + station_id = config.get('_id', None) + device_ids = [] + if "devices" in config: + device_ids = [x["_id"] for x in config["devices"] if "_id" in x] + self.checked_out = {"ids": [station_id] + device_ids, + "name": config.get("station", None)} + self.checked_out.update(self.default_data) url = self.server_url + "/checkout" - info = {"name": name} - info.update(self.default_data) - requests.post(url, json=info) + requests.post(url, json=self.checked_out) print("Notified boardfarm server of checkout of %s" % name) except Exception as e: if self.debug: print(e) print("Failed to notify boardfarm server of checkout") - def checkin(self, name): - if not self.server_version: + def checkin(self): + if not self.server_version or not self.checked_out: return try: url = self.server_url + "/checkin" - info = {"name": name} - info.update(self.default_data) - requests.post(url, json=info) + requests.post(url, json=self.checked_out) print("Notified boardfarm server of checkin of %s" % name) except Exception as e: if self.debug: @@ -75,5 +80,7 @@ def checkin(self, name): bf_config = "http://boardfarm.myexamplesite.com/api/bf_config" #bf_config = "../bf_config.json" bfweb = BoardfarmWebClient(bf_config, debug=False) - bfweb.checkout("rpi3") - bfweb.checkin("rpi3") + bfweb.checkout({"_id": "1111", + "station": "rpi3", + "devices": [{"_id": "1112"}]}) + bfweb.checkin() From 753d509ff767034c8d7f31de031d30229f3756e2 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Sun, 30 Jun 2019 12:34:10 -0500 Subject: [PATCH 850/947] bft: print name of test that fails to run via -e Now with the name so one can easily identify which test that was passed in via -e that failed to parse properly Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ie4c7abac0e9b8d2b8f616dac2b2e5e6cf36bd6b6 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/459896 Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> --- bft | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bft b/bft index f8f18bf7..0ba7730b 100755 --- a/bft +++ b/bft @@ -254,7 +254,7 @@ def main(): for name in config.EXTRA_TESTS: t = getattr(tests, name, None) if t is None: - raise Exception("Unable to load test from tests class!!!! Parsing of test selected via -e failed") + raise Exception("Unable to load %s test from tests class!!!! Parsing of test selected via -e failed" % name) print_bold(" %s" % t) test = t(config) test.start = start From 8c799e6b0f78a381075704aad3da1dc7eb3ad372 Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Date: Thu, 27 Jun 2019 20:12:56 +0800 Subject: [PATCH 851/947] devices: casa_cmts.py : Modified get_cmts_ip_bundle() function Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Change-Id: Ia922f4652f17a63844c20f16fbecbe990435d289 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/459614 Tested-by: Matthew McClintock <msm-oss@mcclintock.net> Reviewed-by: Matthew McClintock <msm-oss@mcclintock.net> --- devices/casa_cmts.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 7a8e79ff..bb554b20 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -209,15 +209,23 @@ def get_cm_mac_domain(self,cm_mac): mac_domain = self.match.group(2) self.expect(self.prompt) return mac_domain - - def get_cmts_ip_bundle(self,bundle): + + def get_cmts_ip_bundle(self, bundle): """get the CMTS bundle IP""" - self.sendline('show interface ip-bundle %s | i "secondary"' % bundle) - index = self.expect(['ip address ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+) ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+) secondary'] + self.prompt) - if index != 0: - assert 0,"ERROR: Failed to get the CMTS bundle IP" - cmts_ip = self.match.group(1) + import devices + from devices import provisioner + if hasattr(devices, 'provisioner') and hasattr(devices.provisioner, 'open_gateway'): + gw_ip = provisioner.open_gateway + else: + gw_ip = ValidIpv4AddressRegex + + self.sendline('show interface ip-bundle %s | i secondary' % bundle) self.expect(self.prompt) + cmts_ip = re.search('ip address (%s) .* secondary'%gw_ip, self.before) + if cmts_ip: + cmts_ip = cmts_ip.group(1) + else: + assert 0,"ERROR: Failed to get the CMTS bundle IP" return cmts_ip def reset(self): From 7789d5e5aeeeddc17b77c93fa9f9e60952c89b55 Mon Sep 17 00:00:00 2001 From: Kalpana Vetrivel <kvetrivel.contractor@libertyglobal.com> Date: Tue, 2 Jul 2019 03:00:34 +0530 Subject: [PATCH 852/947] Revert "devices: casa_cmts: Handled chnl bonding cli to work on diff cmts" This reverts commit 385785e8b13aec4dd71514211467ebc065768e0a. Signed-off-by: Kalpana Vetrivel <kvetrivel.contractor@libertyglobal.com> Change-Id: I348d84057638c2cdc8114b40595026e63ac9f0d4 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/460027 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/casa_cmts.py | 36 ++++++++---------------------------- 1 file changed, 8 insertions(+), 28 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index bb554b20..26fe0525 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -21,7 +21,6 @@ class CasaCMTS(base_cmts.BaseCmts): prompt = ['CASA-C3200>', 'CASA-C3200#', 'CASA-C3200\(.*\)#', 'CASA-C10G>', 'CASA-C10G#', 'CASA-C10G\(.*\)#'] model = "casa_cmts" - variant = None def __init__(self, *args, @@ -73,7 +72,6 @@ def connect(self): self.expect(self.prompt) self.sendline('page-off') self.expect(self.prompt) - self.get_cmts_variant() return except: raise Exception("Unable to get prompt on CASA device") @@ -82,12 +80,6 @@ def logout(self): self.sendline('exit') self.sendline('exit') - def get_cmts_variant(self): - '''Function to get the cmt type''' - self.sendline("show system | include Product") - self.expect(['Product: ([0-9A-Z]+)']) - self.variant = self.after - def check_online(self, cmmac): """Function checks the encrytion mode and returns True if online""" """Function returns actual status if status other than online""" @@ -168,27 +160,15 @@ def get_mtaip(self, cmmac, mtamac): return output def DUT_chnl_lock(self,cm_mac): - """Check the CM channel locks based on cmts type""" - streams = ['Upstream', 'Downstream'] - channel_list = [] - channel_lock = False - for stream in streams: - self.sendline("show cable modem %s verbose | inc \"%s Channel Set\"" % (cm_mac, stream)) - if stream == 'Upstream': - self.expect(['(\d+/\d+.\d+/\d+).*']) - match = re.search('(\d+/\d+.\d+/\d+).*', self.after) - elif stream == 'Downstream': - self.expect(['(\d+/\d+/\d+).*']) - match = re.search('(\d+/\d+/\d+).*', self.after) - channel = len(match.group().split(",")) - channel_list.append(channel) - if "3000" in self.variant: - if channel_list[0] == 8 and channel_list[1] == 16: - channel_lock = True + """Check the CM channel locks with 24*8 """ + self.sendline("show cable modem %s bonding" % cm_mac) + index = self.expect(["256\(8\*24\)"]+ self.prompt) + chnl_lock = self.match.group() + if 0 == index: + self.expect(self.prompt) + return True else: - if channel_list[0] == 8 and channel_list[1] == 24: - channel_lock = True - return channel_lock + return False def get_cm_bundle(self,mac_domain): """Get the bundle id from mac-domain """ From 1d4d686fa4864dbe96d98d66ba87f8387bccfded Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Wed, 3 Jul 2019 13:58:16 -0500 Subject: [PATCH 853/947] Add info to Readme about Qemu and Docker These instructions would have helped me get setup more quickly. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I4ee50691e877a35af7271f98edb478510bd6055b Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/460379 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- README.md | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7b69ebde..64f52444 100644 --- a/README.md +++ b/README.md @@ -23,13 +23,46 @@ Software Setup If you are a Linux user, and wish to run and/or develop tests, please clone this repository and then install needed libaries: ```shell -apt-get install python-pip curl +apt-get install python-pip curl python-tk libsnmp-dev snmp-mibs-downloader cd openwrt/ pip install -r requirements.txt ``` The file `config.py` is the main configuration. For example, it sets the location of the file that describes the available hardware. +### Compiling Qemu to simulate devices + +[Qemu](https://www.qemu.org/) does full system simulation, and boardfarm can use that tool to run tests on simulated devices (e.g. a simulated OpenWrt router). If you want to use qemu, you will want a recent version (3.0 or higher). You may have to compile on your own system, and if so here's how: + +```sh +sudo apt-get update +sudo apt-get install build-essential zlib1g-dev pkg-config \ + libglib2.0-dev binutils-dev libboost-all-dev autoconf \ + libtool libssl-dev libpixman-1-dev libpython-dev python-pip \ + python-capstone virtualenv wget +wget https://download.qemu.org/qemu-4.0.0.tar.xz +tar xvJf qemu-4.0.0.tar.xz +cd qemu-4.0.0 +./configure +make +sudo make install +``` + +### Getting Docker for simulated devices + +Docker is also useful for creating simulated devices for running tests. To get the latest stable docker and set it up correctly: + +```sh +sudo apt-get update +sudo apt-get install apt-transport-https ca-certificates curl software-properties-common +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - +sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" +sudo apt-get update +sudo apt-get install -y docker-ce +# Add your user to the docker group so that you can run docker without sudo +sudo usermod -aG docker $USER +``` + Hardware Setup -------------- From 1e1c0508b2d06ed76fe6d74de74765513f33f5f3 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Mon, 1 Jul 2019 18:39:25 +0200 Subject: [PATCH 854/947] devices: added kermit connection changes This change adds a class that wraps the kermit configuration/connection This requires the json config to use kermit instead of telent The kermit connection uses: SET TELNET WAIT OFF to eliminate the waits (C-Kermit 7.0 and later strictly enforce Telnet protocol rules. One such rule is that certain negotiations must be responded to) Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: I2dc5aca8b90d3dba4d35e4aa80f3b1d3b0dac43e Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/459128 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/connection_decider.py | 4 +++ devices/kermit_connection.py | 47 +++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 devices/kermit_connection.py diff --git a/devices/connection_decider.py b/devices/connection_decider.py index f9eaf751..273d7b41 100644 --- a/devices/connection_decider.py +++ b/devices/connection_decider.py @@ -2,6 +2,7 @@ import local_serial_connection import ssh_connection import local_cmd +import kermit_connection def connection(conn_type, device, **kwargs): ''' @@ -19,6 +20,9 @@ def connection(conn_type, device, **kwargs): if conn_type in ("local_cmd"): return local_cmd.LocalCmd(device=device, **kwargs) + if conn_type in ("kermit_cmd"): + return kermit_connection.KermitConnection(device=device, **kwargs) + # Default for all other models print("\nWARNING: Unknown connection type '%s'." % type) print("Please check spelling, or write an appropriate class " diff --git a/devices/kermit_connection.py b/devices/kermit_connection.py new file mode 100644 index 00000000..44a88dde --- /dev/null +++ b/devices/kermit_connection.py @@ -0,0 +1,47 @@ +import os +import pexpect +import config +from lib.common import cmd_exists + +class KermitConnection(): + """ + Wrapper for the kermit command + kermit can be used as an alternative to telnet. On some + platform telnet can hog the cpu to 100% for no apparent + reason. kermit seems to be more stable, but to work properly + it needs a little setting up. + """ + prompt = "C-Kermit>" + + def __init__(self, device=None, conn_cmd=None, **kwargs): + self.device = device + self.conn_cmd = conn_cmd + + def connect(self): + try: + pexpect.spawn.__init__(self.device, + command='/bin/bash', + args=['-c', "kermit"]) + self.device.sendline() + self.device.expect(self.prompt) + # don't be strict and wait too long for the negotiations + self.device.sendline("SET TELNET WAIT OFF") + self.device.expect(self.prompt) + self.device.sendline("set host %s"% ' '.join(self.conn_cmd.split(' ')[1:])) + self.device.expect(self.prompt) + self.device.sendline('connect') + self.device.expect(['----------------------------------------------------'], timeout=15) + # check if it is a Microsoft Telnet Service + if 0 == self.device.expect(['Welcome to Microsoft Telnet Service', pexpect.TIMEOUT], timeout=10): + # MS telnet server does weird things... this sendline should get the 'login:' prompt + self.device.sendline() + except pexpect.EOF as e: + raise Exception("Board is in use (connection refused).") + + def close(): + self.device.sendcontrol('\\') + self.device.sendline('c') + self.device.expect(self.prompt) + self.device.sendline('q') + self.device.expect('OK to exit\?') + self.device.sendline('y') From efab3c150bb8e6cede2d55b381398b26bbd10020 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Mon, 8 Jul 2019 09:11:04 -0500 Subject: [PATCH 855/947] Send BUILD_URL to boardfarm server This way the server can easily link back to the jenkins job that is using a station. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I84d2f0ae38d2ea61f2949a374020e5eb2a9ee0c8 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/460838 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- dbclients/boardfarmwebclient.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dbclients/boardfarmwebclient.py b/dbclients/boardfarmwebclient.py index cf56a6b8..d39218d0 100644 --- a/dbclients/boardfarmwebclient.py +++ b/dbclients/boardfarmwebclient.py @@ -29,7 +29,8 @@ def __init__(self, config_url, debug=False): return self.default_data = {'hostname': socket.gethostname(), 'username': os.environ.get('BUILD_USER_ID', None) or \ - os.environ.get('USER', None) + os.environ.get('USER', None), + 'build_url': os.environ.get('BUILD_URL', None) } try: # See if this is a boardfarm server by checking the root /api path From 1c7b04d1829c98ddc87783c4e0916e17fbe9ed27 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 9 Jul 2019 10:26:19 -0500 Subject: [PATCH 856/947] Fix minor print error in boardfarmwebclient.py Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ie946f1214768f847326d0dab6255b6583dfb297d Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/461019 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- dbclients/boardfarmwebclient.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dbclients/boardfarmwebclient.py b/dbclients/boardfarmwebclient.py index d39218d0..71b9b7d0 100644 --- a/dbclients/boardfarmwebclient.py +++ b/dbclients/boardfarmwebclient.py @@ -59,7 +59,9 @@ def checkout(self, config): self.checked_out.update(self.default_data) url = self.server_url + "/checkout" requests.post(url, json=self.checked_out) - print("Notified boardfarm server of checkout of %s" % name) + print("Notified boardfarm server of checkout") + if self.debug: + print(self.checked_out) except Exception as e: if self.debug: print(e) @@ -71,7 +73,9 @@ def checkin(self): try: url = self.server_url + "/checkin" requests.post(url, json=self.checked_out) - print("Notified boardfarm server of checkin of %s" % name) + print("Notified boardfarm server of checkin") + if self.debug: + print(self.checked_out) except Exception as e: if self.debug: print(e) From 3f2568f3137632440a6b3cd1a09045068728a259 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 9 Jul 2019 14:58:46 -0500 Subject: [PATCH 857/947] devices: axiros_acs: allow more time for getcurrent This get's more data from device, so let's give it more time Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I38a37869049d04e636a5834afae0de6c25943bbc Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/461094 Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> Tested-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/axiros_acs.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/devices/axiros_acs.py b/devices/axiros_acs.py index 6aada377..4ff2d7a6 100755 --- a/devices/axiros_acs.py +++ b/devices/axiros_acs.py @@ -68,7 +68,7 @@ def __str__(self): def close(self): pass - def get(self, serial_number, param): + def get(self, serial_number, param, wait=8): GetParameterValuesParametersClassArray_type = self.client.get_type('ns0:GetParameterValuesParametersClassArray') GetParameterValuesParametersClassArray_data = GetParameterValuesParametersClassArray_type ([param]) @@ -90,10 +90,10 @@ def get(self, serial_number, param): if ticketid is None: return None - return self.Axiros_GetTicketValue (ticketid) + return self.Axiros_GetTicketValue (ticketid, wait=wait) def getcurrent(self, serial_number, param): - self.get(serial_number, param + '.') + self.get(serial_number, param + '.', wait=20) # TODO: note: verified ticket was sent to ACS with all the results in the param namespace # however the get above does not pull the results so we can't check them here but that's # not a major issue since the API does not do that for the current implementation @@ -144,8 +144,8 @@ def Axiros_GetTicketResponse(self, ticketid): return response['code'] - def Axiros_GetTicketValue(self, ticketid): - for i in range(8): + def Axiros_GetTicketValue(self, ticketid, wait=8): + for i in range(wait): time.sleep (1) with self.client.settings(raw_response=True): ticket_resp = self.client.service.get_generic_sb_result(ticketid) From 133ac8106c49732055a6dbe1eac8edc3153dce29 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 9 Jul 2019 09:27:37 -0500 Subject: [PATCH 858/947] Handle empty boardfarm config and bad board type argument If the boardfarm configuration is empty, this prints a clear message. Example: ERROR: Boardfarm config at http://whatever.com/api/bf_config is empty, so either all stations are in use or disabled. Also if the user asks for a type of board that isn't available, this prints what board types are available. Example: ERROR! You specified board types: mv2 but that is not an existing & available type of board. Please choose a board type from: * tiger1 * lion3 * leopard1 Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I6a9a069132fa5e30b7fc1a931df074e97c553628 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/460990 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- arguments.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/arguments.py b/arguments.py index a9caecdb..18f892b3 100755 --- a/arguments.py +++ b/arguments.py @@ -123,6 +123,21 @@ def parse(): print('Unable to access/read Board Farm configuration\n%s' % boardfarm_config_location) sys.exit(1) + # Check if boardfarm configuration is empty + if not config.boardfarm_config: + print("ERROR! Boardfarm config at %s is empty, so" % args.config_file) + print("either all stations are in use or disabled.") + sys.exit(10) + # Check if given board type(s) have any overlap with available board types from config + if args.board_type: + all_board_types = [config.boardfarm_config[key].get('board_type') for key in config.boardfarm_config] + if not (set(args.board_type) & set(all_board_types)): + print("ERROR! You specified board types: %s " % " ".join(args.board_type)) + print("but that is not an existing & available type of board.") + print("Please choose a board type from:") + print("\n".join([" * %s" % x for x in set(all_board_types)])) + sys.exit(10) + config.batch = args.batch if args.inventory: From 3e45fac458f65210c17edfaf0538af6d817219e1 Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Date: Thu, 11 Jul 2019 03:12:19 +0800 Subject: [PATCH 859/947] devices: casa_cmts: Modified the code to work on both AMS and CBN Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Change-Id: I68452e58062eb2ecd931b1778cd5068d5728f315 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/461056 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/casa_cmts.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 26fe0525..f97820c8 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -498,9 +498,14 @@ def check_docsis_mac_ip_provisioning_mode(self, index): return result def get_ertr_ipv4(self, mac): + '''Getting erouter ipv4 from CMTS ''' self.sendline("show cable modem %s cpe" % mac) self.expect(self.prompt) - ertr_ipv4 = re.search('(%s) .*(eRouter)'% ValidIpv4AddressRegex ,self.before) + from netaddr import EUI + mac = EUI(mac) + ertr_mac = EUI(int(mac) + 2) + ertr_mac.dialect = netaddr.mac_cisco + ertr_ipv4 = re.search('(%s) .* (%s)' %(ValidIpv4AddressRegex, ertr_mac), self.before) if ertr_ipv4: ipv4 =ertr_ipv4.group(1) return ipv4 @@ -508,6 +513,7 @@ def get_ertr_ipv4(self, mac): return None def get_ertr_ipv6(self, mac): + '''Getting erouter ipv6 from CMTS ''' self.sendline("show cable modem %s cpe" % mac) self.expect(self.prompt) ertr_ipv6 = re.search(ValidIpv6AddressRegex ,self.before) From 2dac73d52933e7727cb82dea93949e88e7ea3f83 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Thu, 11 Jul 2019 10:09:47 -0500 Subject: [PATCH 860/947] dbclients: Create function for notifying boardfarm server of error This can be used in multiple places simply by passing a station name and message. The server displays these messages instantly. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I425871763d0bbe99db2e39ce59a8ac13e2580dff Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/461449 Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> Tested-by: Matthew McClintock <matthew@meldnetworks.com> --- dbclients/boardfarmwebclient.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/dbclients/boardfarmwebclient.py b/dbclients/boardfarmwebclient.py index 71b9b7d0..5e2143a8 100644 --- a/dbclients/boardfarmwebclient.py +++ b/dbclients/boardfarmwebclient.py @@ -45,6 +45,22 @@ def __init__(self, config_url, debug=False): print("The server hosting '%s' does not appear to be a " "boardfarm server." % self.config_url) + def post_note(self, name, note): + ''' + If an error is encountered with a station, use this function + to send a message to the boardfarm server. Something short + and useful for display. + ''' + if not self.server_version: + return + try: + url = self.server_url + "/stations/" + name + requests.post(url, json={"note": note}) + except Exception as e: + if self.debug: + print(e) + print("Failed to notify boardfarm server with message.") + def checkout(self, config): if not self.server_version: return From ce009b15b9222fd16e8fbb9d4d2595ce33c59708 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Thu, 11 Jul 2019 19:27:15 -0500 Subject: [PATCH 861/947] Add --version to show version number This is what it looks like: $ ./bft --version bft 1.0.0 In a future commit this version can be used to tell the boardfarm server what version we are running. Maybe a future commit could also store the version number in a more typical "setup.py" file which contains requirements, and code for installation. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I27542a3737165e620f86aa5f187f9e7407843ac3 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/461508 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- arguments.py | 1 + library.py | 3 +++ 2 files changed, 4 insertions(+) diff --git a/arguments.py b/arguments.py index 18f892b3..b7e99aff 100755 --- a/arguments.py +++ b/arguments.py @@ -80,6 +80,7 @@ def parse(): parser.add_argument('--bootargs', metavar='', type=str, default=None, help='bootargs to set or append to default args (board dependant)') parser.add_argument('-g', '--golden', metavar='', type=str, default=[], nargs='+', help='Path to JSON results to compare against (golden master)') parser.add_argument('-q', '--feature', metavar='', type=str, default=[], nargs='+', help='Features required for this test run') + parser.add_argument('--version', action='version', version='%(prog)s {}'.format(library.version), help='show version and exit') args = parser.parse_args() diff --git a/library.py b/library.py index 14202daa..b546745a 100644 --- a/library.py +++ b/library.py @@ -10,6 +10,9 @@ from termcolor import cprint from pprint import pformat +_version = (1, 0, 0) +version = '.'.join(str(x) for x in _version) + def print_bold(msg): cprint(msg, None, attrs=['bold']) From d619431ca15121fc95eae63ed71ee16e95e0f7fd Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Date: Fri, 12 Jul 2019 17:46:05 +0800 Subject: [PATCH 862/947] devices: casa_cmts: Modified chnl bonding function DUT_chnl_lock - Modified the func to work on all casa cmts Added netaddr import Change-Id: Ic58f0dcadc779ab86fad6ec2e824f8b6f2d90061 Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/459957 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/casa_cmts.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index f97820c8..db30f0eb 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -160,15 +160,19 @@ def get_mtaip(self, cmmac, mtamac): return output def DUT_chnl_lock(self,cm_mac): - """Check the CM channel locks with 24*8 """ - self.sendline("show cable modem %s bonding" % cm_mac) - index = self.expect(["256\(8\*24\)"]+ self.prompt) - chnl_lock = self.match.group() - if 0 == index: + """Check the CM channel locks based on cmts type""" + streams = ['Upstream', 'Downstream'] + channel_list = [] + for stream in streams: + self.sendline("show cable modem %s verbose | inc \"%s Channel Set\"" % (cm_mac, stream)) self.expect(self.prompt) - return True - else: - return False + if stream == 'Upstream': + match = re.search('(\d+/\d+.\d+/\d+).+', self.before) + elif stream == 'Downstream': + match = re.search('(\d+/\d+/\d+).+', self.before) + channel = len(match.group().split(",")) + channel_list.append(channel) + return channel_list def get_cm_bundle(self,mac_domain): """Get the bundle id from mac-domain """ @@ -502,6 +506,7 @@ def get_ertr_ipv4(self, mac): self.sendline("show cable modem %s cpe" % mac) self.expect(self.prompt) from netaddr import EUI + import netaddr mac = EUI(mac) ertr_mac = EUI(int(mac) + 2) ertr_mac.dialect = netaddr.mac_cisco From 75f819b0e99064dde4c0b7636f3e487a052defd9 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Fri, 12 Jul 2019 10:12:42 -0500 Subject: [PATCH 863/947] Have BoardfarmWebClient report version in User-Agent Set an HTTP header so that boardfarm server can have ability to change response depending on who is asking. Example User-Agents: Boardfarm 1.0.0;Python 2.7.15;Ubuntu 18.04 Boardfarm 1.0.0;Python 2.7.10;MacOS 10.13.6 Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I5e284ebf03e10192adfc8aed60cec6055a4ab46d Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/461617 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- bft | 1 + dbclients/boardfarmwebclient.py | 34 +++++++++++++++++++++++++++------ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/bft b/bft index 0ba7730b..2846becb 100755 --- a/bft +++ b/bft @@ -90,6 +90,7 @@ def main(): # Setup boardfarm client even if config is a local file (in which # case this will do nothing) bfweb = boardfarmwebclient.BoardfarmWebClient(config.boardfarm_config_location, + bf_version=library.version, debug=os.environ.get("BFT_DEBUG", False)) # Connect to any board in list diff --git a/dbclients/boardfarmwebclient.py b/dbclients/boardfarmwebclient.py index 5e2143a8..9a182fb4 100644 --- a/dbclients/boardfarmwebclient.py +++ b/dbclients/boardfarmwebclient.py @@ -6,9 +6,11 @@ # The full text can be found in LICENSE in the root directory. #!/usr/bin/env python +import platform import os import re import socket +import sys import requests @@ -18,8 +20,9 @@ class BoardfarmWebClient(object): stations, etc. ''' - def __init__(self, config_url, debug=False): + def __init__(self, config_url, bf_version="1.0.0", debug=False): self.config_url = config_url + self.bf_version = bf_version self.debug = debug self.server_url = None self.server_version = None @@ -27,6 +30,7 @@ def __init__(self, config_url, debug=False): # If config isn't on a server, do nothing if not config_url.startswith('http'): return + self.headers = {'user-agent': self._user_agent()} self.default_data = {'hostname': socket.gethostname(), 'username': os.environ.get('BUILD_USER_ID', None) or \ os.environ.get('USER', None), @@ -35,16 +39,34 @@ def __init__(self, config_url, debug=False): try: # See if this is a boardfarm server by checking the root /api path self.server_url = re.search('http.*/api', self.config_url).group(0) - r = requests.get(self.server_url) + r = requests.get(self.server_url, headers=self.headers) data = r.json() self.server_version = data.get('version', None) print("Using %s as boardfarm server, version %s" % (self.server_url, self.server_version)) - except: + except Exception as e: if self.debug: + print(e) print("The server hosting '%s' does not appear to be a " "boardfarm server." % self.config_url) + def _user_agent(self): + bfversion = 'Boardfarm %s' % self.bf_version + s = platform.system() + py = "Python %s.%s.%s" % (sys.version_info[:3]) + try: + system = platform.system() + if system == 'Linux': + s = "%s %s" % platform.linux_distribution()[:2] + elif system == 'Darwin': + s = "MacOS %s" % platform.mac_ver()[0] + elif system == 'Windows': + s = "Windows %s" % platform.win32_ver()[0] + except Exception as e: + if self.debug: + print('Unable to get more specific system info') + return ";".join([bfversion, py, s]) + def post_note(self, name, note): ''' If an error is encountered with a station, use this function @@ -55,7 +77,7 @@ def post_note(self, name, note): return try: url = self.server_url + "/stations/" + name - requests.post(url, json={"note": note}) + requests.post(url, json={"note": note}, headers=self.headers) except Exception as e: if self.debug: print(e) @@ -74,7 +96,7 @@ def checkout(self, config): "name": config.get("station", None)} self.checked_out.update(self.default_data) url = self.server_url + "/checkout" - requests.post(url, json=self.checked_out) + requests.post(url, json=self.checked_out, headers=self.headers) print("Notified boardfarm server of checkout") if self.debug: print(self.checked_out) @@ -88,7 +110,7 @@ def checkin(self): return try: url = self.server_url + "/checkin" - requests.post(url, json=self.checked_out) + requests.post(url, json=self.checked_out, headers=self.headers) print("Notified boardfarm server of checkin") if self.debug: print(self.checked_out) From 5d755456ec1f5fec972dad87fb0108ad3c10c214 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 15 Jul 2019 12:36:56 -0500 Subject: [PATCH 864/947] bft: replace colons with dashes for AWS bucket Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I37b414344c2409832a55fd606686e06865f4ff42 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/461904 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- bft | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bft b/bft index 2846becb..0752acfa 100755 --- a/bft +++ b/bft @@ -461,7 +461,7 @@ def main(): try: import boto3 - filename = datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S.000Z") + '.json' + filename = datetime.utcnow().strftime("%Y-%m-%dT%H-%M-%S.000Z") + '.json' s3 = boto3.resource('s3', aws_access_key_id=os.environ['BFT_AWS_ACCESS_KEY'], aws_secret_access_key=os.environ['BFT_AWS_SECRET_ACCESS_KEY']) From 5f3876247a2b08737d0a77cb9f5fc5912bd44fc1 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 15 Jul 2019 13:15:08 -0500 Subject: [PATCH 865/947] devices: debian: properly eat all the extra chars So we don't see them later... Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I5a21546b0d28e4e2272b5d9bd4c2147e39ed7272 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/461908 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/debian.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devices/debian.py b/devices/debian.py index d3f63e2d..ef584a59 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -197,6 +197,8 @@ def __init__(self, if idx == 0: self.expect(self.prompt) self.sendline('alias apt="mgmt apt"; alias apt-get="mgmt apt-get"') + self.expect_exact('alias apt="mgmt apt"; alias apt-get="mgmt apt-get"') + self.expect(self.prompt) if self.port != 22: cprint("%s port %s device console = %s" % (ipaddr, port, colored(color, color)), None, attrs=['bold']) From 41a7569e990855d763741e5248f11264a9146514 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 16 Jul 2019 11:32:03 -0500 Subject: [PATCH 866/947] For Zephyr, simplify creation of test_cases_list Still builds a list of [name, grade] for each test just as before. Also moved printing of "Starting Zephyr Execution" so that it only displays if Zephyr actually runs. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I515e190d1797d343fd91dd46d7cef355fe369a29 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462090 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- bft | 13 +------------ zephyr/zephyr_reporter.py | 1 + 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/bft b/bft index 0752acfa..e43a400b 100755 --- a/bft +++ b/bft @@ -472,20 +472,9 @@ def main(): print(e) #Update the results in Zephyr - print_bold('Starting Zephyr Execution....') - try: result_data = json.load(open('./results/test_results.json')) - length = len(result_data["test_results"]) - test_cases_list = [] - - for tc in range(0, length): - test_cases_list.append([]) - test_case = result_data["test_results"][tc]["name"] - test_cases_list[tc].append(test_case) - test_result = result_data["test_results"][tc]["grade"] - test_cases_list[tc].append(test_result) - + test_cases_list = [[r["name"], r["grade"]] for r in result_data["test_results"]] zephyr_reporter.update_zephyr(test_cases_list) except Exception as e: print(e) diff --git a/zephyr/zephyr_reporter.py b/zephyr/zephyr_reporter.py index c6110f0a..c6327fc4 100644 --- a/zephyr/zephyr_reporter.py +++ b/zephyr/zephyr_reporter.py @@ -105,6 +105,7 @@ def update_zephyr(test_cases_list): if len(args) == 0: print("Zephyr is not configured, skipping...") return + print('Starting Zephyr Execution....') for z in args: if "JIRA_URL" == z['jira_url'] or "JIRAPASSWORD" == z['passwd']: From ef13213ca830a6f7aee3149cbad47eeec5c49534 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 16 Jul 2019 10:35:14 -0500 Subject: [PATCH 867/947] Print clear error when a wrong board name is given If a board name is given, first check if that is present in the list of boards. Else display an error message: $ ./bft -n rpi -y -x travisci ERROR! You specified board names: rpi but that is not an existing & available board. Please choose a board type from: * rpi3-1 * rpi3-2 * rpi3-3 Fixes issue: https://github.com/lgirdk/boardfarm/issues/116 Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ifb624278812eca6925af052c33a1e25fe96c91e1 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462087 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- arguments.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arguments.py b/arguments.py index b7e99aff..4a21cfd2 100755 --- a/arguments.py +++ b/arguments.py @@ -138,6 +138,15 @@ def parse(): print("Please choose a board type from:") print("\n".join([" * %s" % x for x in set(all_board_types)])) sys.exit(10) + # Check if given board name(s) are present in available boards + if args.board_names: + all_board_names = [key for key in config.boardfarm_config if key != "locations"] + if not (set(args.board_names) & set(all_board_names)): + print("ERROR! You specified board names: %s " % " ".join(args.board_names)) + print("but that is not an existing & available board.") + print("Please choose a board name from:") + print("\n".join([" * %s" % x for x in sorted(all_board_names)])) + sys.exit(10) config.batch = args.batch From 9c3344af7043110ce74fd879cd303df2e82018e8 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Mon, 15 Jul 2019 11:14:06 -0500 Subject: [PATCH 868/947] Before logging data to databases, convert python objects This walks the data structure, and converts some python objects into a representation that can be stored in JSON (like strings). It prints a warning when it doesn't know how to convert a specific python object. For those objects, we will need to write a __str__ function. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I662e00b59d82805562042418d991de1eb17a10a5 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/461901 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- bft | 10 ++++++++-- library.py | 38 ++++++++++++++++++++++++++++++-------- 2 files changed, 38 insertions(+), 10 deletions(-) diff --git a/bft b/bft index e43a400b..3a4136c2 100755 --- a/bft +++ b/bft @@ -221,7 +221,7 @@ def main(): config.console.update_config() print_bold('\n==========') - library.print_board_info(config.board) + library.printd(config.board) # Run tests os.environ['TEST_START_TIME'] = datetime.now().strftime("%s") @@ -301,7 +301,7 @@ def main(): except Exception as e: print(e) print_bold("For some reason, could not close a connection.") - library.print_board_info(config.board) + library.printd(config.board) combined_list = [] def add_to_combined_list(log, name, combined_list=combined_list): @@ -429,6 +429,12 @@ def main(): for subtest in t.subtests: prepare_results_for_kibana(subtest, prefix=prefix) + # Convert python objects to things that can be stored in + # JSON, like strings and numbers. + info_for_remote_log = library.clean_for_json(info_for_remote_log) + # Remove reserved key names + info_for_remote_log.pop('_id', None) + try: if config.logging_server is not None: logstash.RemoteLogger(config.logging_server).log(info_for_remote_log) diff --git a/library.py b/library.py index b546745a..87b16600 100644 --- a/library.py +++ b/library.py @@ -5,23 +5,45 @@ # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. +import datetime +import ipaddress +import json import os from termcolor import cprint -from pprint import pformat _version = (1, 0, 0) version = '.'.join(str(x) for x in _version) -def print_bold(msg): - cprint(msg, None, attrs=['bold']) -def print_board_info(x): - for key in sorted(x): - if isinstance(x[key], list): - print_bold(" %s: \n%s" % (key, pformat(x[key], indent=5).replace("u'", "'"))) +class HelperEncoder(json.JSONEncoder): + '''Turn some objects into a form that can be stored in JSON.''' + def default(self, obj): + if isinstance(obj, ipaddress.IPv4Network) or \ + isinstance(obj, ipaddress.IPv4Address): + return str(obj) + elif isinstance(obj, datetime.datetime): + return str(obj) else: - print_bold(" %s: %s" % (key, pformat(x[key]).replace("u'", "'"))) + try: + return json.JSONEncoder.default(self, obj) + except: + print("WARNING: HelperEncoder doesn't know how to convert %s to a string or number" % type(obj)) + return "" + +def clean_for_json(data): + ''' + Given a python dictionary, walk the structure and convert values to + types that are valid for JSON. Return a python dictionary. + ''' + return json.loads(json.dumps(data, cls=HelperEncoder)) + +def printd(data): + '''Pretty-print as a JSON data object.''' + print(json.dumps(data, sort_keys=True, indent=4, cls=HelperEncoder)) + +def print_bold(msg): + cprint(msg, None, attrs=['bold']) def process_test_results(raw_test_results, golden={}): full_results = {'test_results': [], From de3eb86eb6aa6e81c479a35d791858312e0ca4b2 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 16 Jul 2019 12:26:16 -0500 Subject: [PATCH 869/947] Fix running of analysis classes There were 2 issues here: * The code opened the combined log in 'w' mode, which clears contents. * Regular expression searches need strings, not files. Now with this change the code reads the file just once, and in the correct mode. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I0f700d0a8206469947c2e7e147cb87467ec9f1dc Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462093 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- bft | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/bft b/bft index 3a4136c2..19947203 100755 --- a/bft +++ b/bft @@ -384,11 +384,16 @@ def main(): # run all analysis classes (post processing) # also, never fail so we don't block automation try: - import analysis - for cstr in dir(analysis): - c = getattr(analysis, cstr) - if inspect.isclass(c) and issubclass(c, analysis.Analysis): - with open(os.path.join(config.output_dir, "console-combined.log"), 'w') as clog: + fname = "console-combined.log" + with open(os.path.join(config.output_dir, fname), 'r') as f: + clog = f.read() + if not clog: + print("Skipping analysis because %s is empty..." % fname) + else: + import analysis + for cstr in dir(analysis): + c = getattr(analysis, cstr) + if inspect.isclass(c) and issubclass(c, analysis.Analysis): c().analyze(clog, config.output_dir) except Exception as e: if not issubclass(type(e), (StopIteration)): From 1af7f2e6d6a71a1c350739cd86e1eb95aeb953dc Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 16 Jul 2019 13:03:06 -0500 Subject: [PATCH 870/947] library: add shortname for printing details about object Sometimes the string representation is already used for other purposes so let's add a specific override Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I919505ed8968aec932e29e140dee8559f2d88719 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462096 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Mike Anderson <mikeanderson@mcclintock.net> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- library.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/library.py b/library.py index 87b16600..bc2fedbb 100644 --- a/library.py +++ b/library.py @@ -24,6 +24,8 @@ def default(self, obj): return str(obj) elif isinstance(obj, datetime.datetime): return str(obj) + elif hasattr(obj, 'shortname'): + return obj.shortname() else: try: return json.JSONEncoder.default(self, obj) From 7627b08552a032d45ef2a4f550d42439e7d780e4 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 16 Jul 2019 16:53:36 -0500 Subject: [PATCH 871/947] arguments: Alphabetize arguments There's so many arguments that alphabetizing helps searching them all. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ie26014b31438a770cef33c8960890f9c3635ea83 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462110 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- arguments.py | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/arguments.py b/arguments.py index 4a21cfd2..3131b588 100755 --- a/arguments.py +++ b/arguments.py @@ -54,32 +54,32 @@ def parse(): usage='bft [options...]', formatter_class=argparse.RawDescriptionHelpFormatter, epilog=HELP_EPILOG) - parser.add_argument('-l', '--list_tests', action='store_true', help='List available tests and exit') + parser.add_argument('-a', '--analysis', metavar='', type=str, default=None, help='Only run post processing analysis on logs') + parser.add_argument('-b', '--board_type', metavar='', type=str, nargs='+', default=None, help='MODEL(s) of board to connect to') + parser.add_argument('-c', '--config_file', metavar='', type=str, default=boardfarm_config_location, help='JSON config file for boardfarm') + parser.add_argument('-e', '--extend', metavar='', type=str, default=None, action="append", help='NAME of extra test to run') + parser.add_argument('-f', '--filter', metavar='', type=str, default=None, action="append", help='Regex filter off arbitrary board parameters') + parser.add_argument('-g', '--golden', metavar='', type=str, default=[], nargs='+', help='Path to JSON results to compare against (golden master)') parser.add_argument('-i', '--inventory', action='store_true', help='List available boards and exit') - parser.add_argument('-y', '--batch', action='store_true', help='Run in unattended mode - do not spawn console on failed test') - parser.add_argument('-t', '--retry', type=int, default=0, help='How many times to retry every test if it fails') parser.add_argument('-k', '--kernel', metavar='', type=str, default=None, help='URL or file PATH of Kernel image to flash') - parser.add_argument('-r', '--rootfs', metavar='', type=str, default=None, help='URL or file PATH of Rootfs image to flash') - parser.add_argument('--nfsroot', metavar='', type=str, default=None, help='URL or file PATH of Rootfs image to flash') + parser.add_argument('-l', '--list_tests', action='store_true', help='List available tests and exit') parser.add_argument('-m', '--meta_img_loc', metavar='', type=str, default=None, help='URL or file PATH to meta image to flash') - parser.add_argument('-p', '--package', metavar='', type=str, action="append", default=None, help='URL or file PATH of ipk install after boot') - parser.add_argument('-u', '--uboot', metavar='', type=str, default=None, help=argparse.SUPPRESS) - parser.add_argument('-s', '--sysupgrade', metavar='', type=str, default=None, help='URL or file PATH to Sysupgrade image') - parser.add_argument('-x', '--testsuite', metavar='', type=str, default=None, help='NAME of test suite to run') - parser.add_argument('-e', '--extend', metavar='', type=str, default=None, action="append", help='NAME of extra test to run') parser.add_argument('-n', '--board_names', metavar='', type=str, nargs='+', default=[], help='NAME(s) of boards to run on') - parser.add_argument('-b', '--board_type', metavar='', type=str, nargs='+', default=None, help='MODEL(s) of board to connect to') - parser.add_argument('-w', '--wan', metavar='', type=str, default='dhcp', help='WAN protocol, dhcp (default) or pppoe') - parser.add_argument('-v', '--reboot-vms', action="store_true", help='Reboot VMs before starting tests') - parser.add_argument('-f', '--filter', metavar='', type=str, default=None, action="append", help='Regex filter off arbitrary board parameters') - parser.add_argument('-a', '--analysis', metavar='', type=str, default=None, help='Only run post processing analysis on logs') owrt_tests_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "results", '') parser.add_argument('-o', '--output_dir', metavar='', type=str, default=owrt_tests_dir, help='Directory to output results files too') + parser.add_argument('-p', '--package', metavar='', type=str, action="append", default=None, help='URL or file PATH of ipk install after boot') + parser.add_argument('-q', '--feature', metavar='', type=str, default=[], nargs='+', help='Features required for this test run') + parser.add_argument('-r', '--rootfs', metavar='', type=str, default=None, help='URL or file PATH of Rootfs image to flash') + parser.add_argument('-s', '--sysupgrade', metavar='', type=str, default=None, help='URL or file PATH to Sysupgrade image') + parser.add_argument('-t', '--retry', type=int, default=0, help='How many times to retry every test if it fails') + parser.add_argument('-u', '--uboot', metavar='', type=str, default=None, help=argparse.SUPPRESS) + parser.add_argument('-v', '--reboot-vms', action="store_true", help='Reboot VMs before starting tests') + parser.add_argument('-w', '--wan', metavar='', type=str, default='dhcp', help='WAN protocol, dhcp (default) or pppoe') + parser.add_argument('-x', '--testsuite', metavar='', type=str, default=None, help='NAME of test suite to run') + parser.add_argument('-y', '--batch', action='store_true', help='Run in unattended mode - do not spawn console on failed test') parser.add_argument('-z', '--no-network', action='store_true', help='Skip basic network tests when booting') - parser.add_argument('-c', '--config_file', metavar='', type=str, default=boardfarm_config_location, help='JSON config file for boardfarm') parser.add_argument('--bootargs', metavar='', type=str, default=None, help='bootargs to set or append to default args (board dependant)') - parser.add_argument('-g', '--golden', metavar='', type=str, default=[], nargs='+', help='Path to JSON results to compare against (golden master)') - parser.add_argument('-q', '--feature', metavar='', type=str, default=[], nargs='+', help='Features required for this test run') + parser.add_argument('--nfsroot', metavar='', type=str, default=None, help='URL or file PATH of Rootfs image to flash') parser.add_argument('--version', action='version', version='%(prog)s {}'.format(library.version), help='show version and exit') args = parser.parse_args() From 27e5836d97c1c988e6f5a9574e85f8cfddae653f Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 16 Jul 2019 18:46:40 -0500 Subject: [PATCH 872/947] Add bft version to data that is logged Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I1b88027c8b69ec6d0cd0338967913e393eb541c8 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462113 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- bft | 1 + 1 file changed, 1 insertion(+) diff --git a/bft b/bft index 19947203..0ead49dc 100755 --- a/bft +++ b/bft @@ -403,6 +403,7 @@ def main(): # Try to remotely log information about this run info_for_remote_log = dict(config.board) info_for_remote_log.update(full_results) + info_for_remote_log['bft_version'] = library.version try: info_for_remote_log['duration'] = int(os.environ['TEST_END_TIME'])-int(os.environ['TEST_START_TIME']) except: From bb04f66ead175d6e043b2f0e5265842488a39cbb Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 16 Jul 2019 20:30:13 -0500 Subject: [PATCH 873/947] arguments.py: tabs to spaces Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: If403d29115209f5e5c235c222cb6307c34f3a8e5 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462114 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- arguments.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/arguments.py b/arguments.py index 3131b588..40e6cddc 100755 --- a/arguments.py +++ b/arguments.py @@ -190,23 +190,23 @@ def parse(): continue if x.startswith('http://') or x.startswith('https://'): try: - def add_basic_auth(login_str, request): - '''Adds Basic auth to http request, pass in login:password as string''' - import base64 - encodeuser = base64.b64encode(login_str.encode('utf-8')).decode("utf-8") - authheader = "Basic %s" % encodeuser - request.add_header("Authorization", authheader) + def add_basic_auth(login_str, request): + '''Adds Basic auth to http request, pass in login:password as string''' + import base64 + encodeuser = base64.b64encode(login_str.encode('utf-8')).decode("utf-8") + authheader = "Basic %s" % encodeuser + request.add_header("Authorization", authheader) import ssl context = ssl._create_unverified_context() - req = urllib.Request(x) + req = urllib.Request(x) try: import netrc, urlparse n = netrc.netrc() login, unused, password = n.authenticators(urlparse.urlparse(x).hostname) - add_basic_auth("%s:%s" % (login, password), req) + add_basic_auth("%s:%s" % (login, password), req) except (TypeError, ImportError, IOError, netrc.NetrcParseError): pass From 66f1e84441c9a7305a0d4cf4d04022d361dceb8f Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 16 Jul 2019 21:07:34 -0500 Subject: [PATCH 874/947] tests/lib/common.py: remove unused imports This may seem pointless, but it makes it easier to get this all working with Python 3. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ia904c37fefa1c578a1cf1f22d6df0894a663098a Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462115 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/lib/common.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/lib/common.py b/tests/lib/common.py index 287854ed..3f7bdb7f 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -9,12 +9,8 @@ import json import pexpect import sys -import subprocess import time -import unittest2 -import urllib2 import os -import signal import config from termcolor import cprint import re, ipaddress From aaf1d0f2a4355d5593c7fdd40c01fb5735ded969 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 17 Jul 2019 10:12:32 -0500 Subject: [PATCH 875/947] .travis.yml: lock down dist to test on Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Iac22548602743948e9353dab1311eda1436109bf Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462288 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 9383486f..f78097c7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,4 @@ +dist: trusty sudo: required language: python python: From b30eaa103ca361d551c42e3f9606393cff762603 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 16 Jul 2019 13:12:56 -0500 Subject: [PATCH 876/947] bft: skip duplicate device types and mimic server behavior This duplicates the behavior of the server. However, if you have these in the location field and you ARE not running a server you are probably doing something wrong. This is just for debugging purposes and to speed up local testing. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I2a1927a544dcd4722f3548ed09f9205d250682d8 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462098 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- bft | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bft b/bft index 0ead49dc..c48d208b 100755 --- a/bft +++ b/bft @@ -38,6 +38,10 @@ def setup_dynamic_devices(config, env=None, start=None): config.devices = [] for device in config.board['devices']: + if device['name'] in config.devices: + print("Skipping duplicate device type: %s" % device['name']) + continue + device['reboot'] = config.reboot_vms device['env'] = env device['lan_network'] = config.console.lan_network From b87306713ab0c25b1b86b2a647aeff266d6d0711 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 16 Jul 2019 13:42:51 -0500 Subject: [PATCH 877/947] arguments: add feature for devices in locations section to dut Features for a device in the locations section can be added to the DUT for testing purposes. For example if we have a device that is wifi-linux compatible we can say that feature is available for the DUT when testing Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Iaf1ca12c35dc3b0d7d6a076ff7edaa7ec0b1ef2c Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462100 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Mike Anderson <mikeanderson@mcclintock.net> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- arguments.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arguments.py b/arguments.py index 40e6cddc..ae7a607d 100755 --- a/arguments.py +++ b/arguments.py @@ -277,6 +277,20 @@ def add_basic_auth(login_str, request): if 'feature' not in config.boardfarm_config[b]: continue features = config.boardfarm_config[b]['feature'] + if 'devices' in config.boardfarm_config[b]: + seen_names = [] + for d in config.boardfarm_config[b]['devices']: + if 'feature' in d: + # since we only connect to one type of device + # we need to ignore the features on the other ones + # even though they should be the same + if d['name'] in seen_names: + continue + seen_names.append(d['name']) + + if type(d['feature']) is str or type(d['feature']) is unicode: + d['feature'] = [d['feature']] + features.extend(x for x in d['feature'] if x not in features) if type(features) is str or type(features) is unicode: features = [features] if set(args.feature) != set(args.feature) & set(features): From 9880969e2e01a13b5397fc219163ecfadeb6260b Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 16 Jul 2019 13:04:43 -0500 Subject: [PATCH 878/947] tests: docsis: add shortname for cm cfg object This is not ideal, but it's some info about the CM cfg that was used that is not 1000s of chars long. We need to look at a better summary, or maybe we will just get used to the md5. At least they can be compared against runs to see if they were the same. Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I487a0b13bd9da421ef680c2600277f0834cf0238 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462097 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Mike Anderson <mikeanderson@mcclintock.net> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/lib/docsis.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py index 4c061b93..2003d117 100755 --- a/tests/lib/docsis.py +++ b/tests/lib/docsis.py @@ -11,6 +11,7 @@ import Tkinter import re import time +import hashlib class docsis: """ @@ -161,6 +162,10 @@ def __str__(self): '''String repr of CM txt''' return self.txt + def shortname(self): + '''short name for displaying in summary''' + return hashlib.md5(self.txt.encode()).hexdigest() + def save(self, full_path): with open(full_path, 'w') as txt: txt.write(self.txt) From 7e30d4dabd3698928ba209b6fc1924ee7cbf3f90 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Wed, 17 Jul 2019 20:07:36 -0500 Subject: [PATCH 879/947] Run autopep8 on a handful of files If the changes look better, and they don't break anything, I can run on more files. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I87ec45ea6d15e69d50fb89d1c2d514d7727ca9e4 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462363 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/arris_cmts.py | 11 ++++++----- devices/axiros_acs.py | 31 +++++++++++++++++++------------ devices/base.py | 22 ++++++++++++---------- devices/base_cmts.py | 10 ++++------ devices/casa_cmts.py | 36 +++++++++++++++++++----------------- devices/common.py | 24 ++++++++++++++++-------- 6 files changed, 76 insertions(+), 58 deletions(-) diff --git a/devices/arris_cmts.py b/devices/arris_cmts.py index 02dee646..e807b1e7 100644 --- a/devices/arris_cmts.py +++ b/devices/arris_cmts.py @@ -14,12 +14,13 @@ import base_cmts from lib.regexlib import AllValidIpv6AddressesRegex, ValidIpv4AddressRegex + class ArrisCMTS(base_cmts.BaseCmts): ''' Connects to and configures a Arris CMTS ''' - prompt = [ 'arris(.*)>', 'arris(.*)#', 'arris\(.*\)> ', 'arris\(.*\)# '] + prompt = ['arris(.*)>', 'arris(.*)#', 'arris\(.*\)> ', 'arris\(.*\)# '] model = "arris_cmts" class ArrisCMTSDecorators(): @@ -126,7 +127,7 @@ def clear_cm_reset(self, cmmac): self.sendline('exit') self.expect(self.prompt) """ NB: this command does not reboot the CM, but forces it to reinitialise """ - self.sendline("clear cable modem %s reset" %cmmac) + self.sendline("clear cable modem %s reset" % cmmac) self.expect(self.prompt) self.sendline('configure') self.expect(self.prompt) @@ -184,14 +185,14 @@ def get_cmipv6(self, cmmac): return self.get_ip_from_regexp(cmmac, AllValidIpv6AddressesRegex) @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator - def get_cm_mac_domain(self,cm_mac): + def get_cm_mac_domain(self, cm_mac): """ Returns the Mac-domain of Cable modem Args: cm_mac Return: ip addr (ipv4) or None if not found """ mac_domain = None - self.sendline('show cable modem %s detail | include Cable-Mac='% cm_mac) + self.sendline('show cable modem %s detail | include Cable-Mac=' % cm_mac) if 0 == self.expect(['Cable-Mac= ([0-9]{1,3}),', pexpect.TIMEOUT], timeout=5): mac_domain = self.match.group(1) self.expect(self.prompt) @@ -206,7 +207,7 @@ def check_PartialService(self, cmmac): return match != None @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator - def DUT_chnl_lock(self,cm_mac): + def DUT_chnl_lock(self, cm_mac): """Check the CM channel locks with 24*8 """ self.sendline("show cable modem | include %s" % cm_mac) index = self.expect(["(24x8)"], timeout=3) diff --git a/devices/axiros_acs.py b/devices/axiros_acs.py index 4ff2d7a6..c8933813 100755 --- a/devices/axiros_acs.py +++ b/devices/axiros_acs.py @@ -36,6 +36,7 @@ } }) + class AxirosACS(): model = "axiros_acs_soap" @@ -58,7 +59,8 @@ def __init__(self, *args, **kwargs): session = Session() session.auth = HTTPBasicAuth(self.username, self.password) - self.client = Client(wsdl=self.wsdl, transport=Transport(session=session), wsse=UsernameToken(self.username, self.password)) + self.client = Client(wsdl=self.wsdl, transport=Transport(session=session), + wsse=UsernameToken(self.username, self.password)) name = "acs_server" @@ -70,7 +72,7 @@ def close(self): def get(self, serial_number, param, wait=8): GetParameterValuesParametersClassArray_type = self.client.get_type('ns0:GetParameterValuesParametersClassArray') - GetParameterValuesParametersClassArray_data = GetParameterValuesParametersClassArray_type ([param]) + GetParameterValuesParametersClassArray_data = GetParameterValuesParametersClassArray_type([param]) CommandOptionsTypeStruct_type = self.client.get_type('ns0:CommandOptionsTypeStruct') CommandOptionsTypeStruct_data = CommandOptionsTypeStruct_type() @@ -78,9 +80,10 @@ def get(self, serial_number, param, wait=8): CPEIdentifierClassStruct_type = self.client.get_type('ns0:CPEIdentifierClassStruct') CPEIdentifierClassStruct_data = CPEIdentifierClassStruct_type(cpeid=serial_number) - # get raw soap response (parsing error with zeep) + # get raw soap response (parsing error with zeep) with self.client.settings(raw_response=True): - response = self.client.service.GetParameterValues(GetParameterValuesParametersClassArray_data, CommandOptionsTypeStruct_data, CPEIdentifierClassStruct_data) + response = self.client.service.GetParameterValues( + GetParameterValuesParametersClassArray_data, CommandOptionsTypeStruct_data, CPEIdentifierClassStruct_data) ticketid = None root = ElementTree.fromstring(response.content) @@ -90,7 +93,7 @@ def get(self, serial_number, param, wait=8): if ticketid is None: return None - return self.Axiros_GetTicketValue (ticketid, wait=wait) + return self.Axiros_GetTicketValue(ticketid, wait=wait) def getcurrent(self, serial_number, param): self.get(serial_number, param + '.', wait=20) @@ -100,7 +103,8 @@ def getcurrent(self, serial_number, param): def set(self, serial_number, attr, value): SetParameterValuesParametersClassArray_type = self.client.get_type('ns0:SetParameterValuesParametersClassArray') - SetParameterValuesParametersClassArray_data = SetParameterValuesParametersClassArray_type ([{'key': attr, 'value': value}]) + SetParameterValuesParametersClassArray_data = SetParameterValuesParametersClassArray_type([ + {'key': attr, 'value': value}]) CommandOptionsTypeStruct_type = self.client.get_type('ns0:CommandOptionsTypeStruct') CommandOptionsTypeStruct_data = CommandOptionsTypeStruct_type() @@ -110,7 +114,8 @@ def set(self, serial_number, attr, value): # get raw soap response (parsing error with zeep) with self.client.settings(raw_response=True): - response = self.client.service.SetParameterValues(SetParameterValuesParametersClassArray_data, CommandOptionsTypeStruct_data, CPEIdentifierClassStruct_data) + response = self.client.service.SetParameterValues( + SetParameterValuesParametersClassArray_data, CommandOptionsTypeStruct_data, CPEIdentifierClassStruct_data) ticketid = None root = ElementTree.fromstring(response.content) @@ -121,7 +126,7 @@ def set(self, serial_number, attr, value): if ticketid is None: return None - return self.Axiros_GetTicketValue (ticketid) + return self.Axiros_GetTicketValue(ticketid) def Axiros_GetListOfCPEs(self): CPESearchOptionsClassStruct_type = self.client.get_type('ns0:CPESearchOptionsClassStruct') @@ -130,7 +135,8 @@ def Axiros_GetListOfCPEs(self): CommandOptionsForCPESearchStruct_type = self.client.get_type('ns0:CommandOptionsForCPESearchStruct') CommandOptionsForCPESearchStruct_data = CommandOptionsForCPESearchStruct_type() - response = self.client.service.GetListOfCPEs(CPESearchOptionsClassStruct_data, CommandOptionsForCPESearchStruct_data) + response = self.client.service.GetListOfCPEs( + CPESearchOptionsClassStruct_data, CommandOptionsForCPESearchStruct_data) if response['code'] != 200: return None @@ -146,7 +152,7 @@ def Axiros_GetTicketResponse(self, ticketid): def Axiros_GetTicketValue(self, ticketid, wait=8): for i in range(wait): - time.sleep (1) + time.sleep(1) with self.client.settings(raw_response=True): ticket_resp = self.client.service.get_generic_sb_result(ticketid) @@ -159,6 +165,7 @@ def Axiros_GetTicketValue(self, ticketid, wait=8): return value.text return None + if __name__ == '__main__': import sys @@ -171,10 +178,10 @@ def Axiros_GetTicketValue(self, ticketid, wait=8): acs = AxirosACS(ipaddr=ip, port=port, username=sys.argv[2], password=sys.argv[3]) - acs.Axiros_GetListOfCPEs () + acs.Axiros_GetListOfCPEs() ret = acs.get('DEAP805811D5', 'Device.DeviceInfo.SoftwareVersion') print ret - ret = acs.get ('DEAP805811D5', 'Device.WiFi.SSID.1.SSID') + ret = acs.get('DEAP805811D5', 'Device.WiFi.SSID.1.SSID') print ret diff --git a/devices/base.py b/devices/base.py index fe693dc5..c93735ea 100644 --- a/devices/base.py +++ b/devices/base.py @@ -20,6 +20,7 @@ # To Do: maybe make this config variable BFT_DEBUG = "BFT_DEBUG" in os.environ + class BaseDevice(pexpect.spawn): __metaclass__ = LoggerMeta log = "" @@ -103,12 +104,12 @@ def set_logfile_read(self, value): logfile_read = property(get_logfile_read, set_logfile_read) def interact(self, escape_character=chr(29), - input_filter=None, output_filter=None): + input_filter=None, output_filter=None): o = self._logfile_read self.logfile_read = None ret = super(BaseDevice, self).interact(escape_character, - input_filter, output_filter) + input_filter, output_filter) self.logfile_read = o return ret @@ -124,11 +125,11 @@ def parse_sar_iface_pkts(self, wan, lan): if lan is None: exp = [wan] else: - exp = [wan,lan] + exp = [wan, lan] for x in range(0, len(exp)): i = self.expect(exp) - if i == 0: # parse wan stats + if i == 0: # parse wan stats self.expect("(\d+.\d+)\s+(\d+.\d+)") wan_pps = float(self.match.group(1)) + float(self.match.group(2)) if i == 1: @@ -202,7 +203,7 @@ def expect_helper(self, pattern, wrapper, *args, **kwargs): else: idx = 3 common.print_bold("%s = expecting: %s" % - (error_detect.caller_file_line(idx), repr(pattern))) + (error_detect.caller_file_line(idx), repr(pattern))) try: ret = wrapper(pattern, *args, **kwargs) @@ -251,7 +252,7 @@ def disable_ipv6(self, interface): def set_printk(self, CUR=1, DEF=1, MIN=1, BTDEF=7): try: - self.sendline('echo "%d %d %d %d" > /proc/sys/kernel/printk'% (CUR, DEF, MIN, BTDEF)) + self.sendline('echo "%d %d %d %d" > /proc/sys/kernel/printk' % (CUR, DEF, MIN, BTDEF)) self.expect(self.prompt, timeout=10) if not BFT_DEBUG: common.print_bold("printk set to %d %d %d %d" % (CUR, DEF, MIN, BTDEF)) @@ -272,13 +273,14 @@ def prefer_ipv4(self, pref=True): def ping(self, ping_ip, source_ip=None, ping_count=4, ping_interface=None): if source_ip == None and ping_interface == None: - self.sendline('ping -c %s %s'%(ping_count, ping_ip)) + self.sendline('ping -c %s %s' % (ping_count, ping_ip)) elif ping_interface != None: - self.sendline('ping -I %s -c %s %s'%(ping_interface, ping_count, ping_ip)) + self.sendline('ping -I %s -c %s %s' % (ping_interface, ping_count, ping_ip)) else: - self.sendline("ping -S %s -c %s %s"%(source_ip, ping_count, ping_ip)) + self.sendline("ping -S %s -c %s %s" % (source_ip, ping_count, ping_ip)) self.expect(self.prompt, timeout=50) - match = re.search("%s packets transmitted, %s received, 0%% packet loss" % (ping_count, ping_count), self.before) + match = re.search("%s packets transmitted, %s received, 0%% packet loss" % + (ping_count, ping_count), self.before) if match: return 'True' else: diff --git a/devices/base_cmts.py b/devices/base_cmts.py index e1d03c09..f002df50 100644 --- a/devices/base_cmts.py +++ b/devices/base_cmts.py @@ -1,5 +1,6 @@ from devices import base + class BaseCmts(base.BaseDevice): ''' Common API for the CMTS type devices @@ -25,13 +26,13 @@ def get_mtaip(self, cmmac, mtamac): raise Exception("Not implemented!") # this should be get_md_bundle - def get_cm_bundle(self,mac_domain): + def get_cm_bundle(self, mac_domain): raise Exception("Not implemented!") - def get_cm_mac_domain(self,cm_mac): + def get_cm_mac_domain(self, cm_mac): raise Exception("Not implemented!") - def get_cmts_ip_bundle(self,bundle): + def get_cmts_ip_bundle(self, bundle): raise Exception("Not implemented!") def get_cmts_model(self): @@ -55,6 +56,3 @@ def get_cm_mac_cmts_format(self, mac): tmp = mac.replace(':', '') mac_cmts_format = tmp[:4]+"."+tmp[4:8]+"."+tmp[8:] return mac_cmts_format.lower() - - - diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index db30f0eb..f6c19faf 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -14,6 +14,7 @@ from lib.regexlib import ValidIpv6AddressRegex, ValidIpv4AddressRegex, AllValidIpv6AddressesRegex import base_cmts + class CasaCMTS(base_cmts.BaseCmts): ''' Connects to and configures a CASA CMTS @@ -108,7 +109,7 @@ def clear_offline(self, cmmac): self.expect(self.prompt) def clear_cm_reset(self, cmmac): - self.sendline("clear cable modem %s reset" %cmmac) + self.sendline("clear cable modem %s reset" % cmmac) self.expect(self.prompt) def check_PartialService(self, cmmac): @@ -124,8 +125,8 @@ def check_PartialService(self, cmmac): return output def get_cmip(self, cmmac): - tmp = cmmac.replace(":", "").lower() - cmmac_cmts = tmp[:4]+"."+ tmp[4:8]+"."+tmp[8:] + tmp = cmmac.replace(":", "").lower() + cmmac_cmts = tmp[:4]+"." + tmp[4:8]+"."+tmp[8:] self.sendline('show cable modem %s' % cmmac) self.expect(cmmac_cmts + '\s+([\d\.]+)') result = self.match.group(1) @@ -159,7 +160,7 @@ def get_mtaip(self, cmmac, mtamac): self.expect(self.prompt) return output - def DUT_chnl_lock(self,cm_mac): + def DUT_chnl_lock(self, cm_mac): """Check the CM channel locks based on cmts type""" streams = ['Upstream', 'Downstream'] channel_list = [] @@ -174,22 +175,22 @@ def DUT_chnl_lock(self,cm_mac): channel_list.append(channel) return channel_list - def get_cm_bundle(self,mac_domain): + def get_cm_bundle(self, mac_domain): """Get the bundle id from mac-domain """ self.sendline('show interface docsis-mac '+mac_domain+' | i "ip bundle"') index = self.expect(['(ip bundle)[ ]{1,}([0-9]|[0-9][0-9])'] + self.prompt) - if index !=0: + if index != 0: assert 0, "ERROR:Failed to get the CM bundle id from CMTS" bundle = self.match.group(2) self.expect(self.prompt) return bundle - def get_cm_mac_domain(self,cm_mac): + def get_cm_mac_domain(self, cm_mac): """Get the Mac-domain of Cable modem """ self.sendline('show cable modem '+cm_mac+' verbose | i "MAC Domain"') idx = self.expect(['(MAC Domain)[ ]{2,}\:([0-9]|[0-9][0-9])'] + self.prompt) if idx != 0: - assert 0,"ERROR: Failed to get the CM Mac Domain from the CMTS" + assert 0, "ERROR: Failed to get the CM Mac Domain from the CMTS" mac_domain = self.match.group(2) self.expect(self.prompt) return mac_domain @@ -205,11 +206,11 @@ def get_cmts_ip_bundle(self, bundle): self.sendline('show interface ip-bundle %s | i secondary' % bundle) self.expect(self.prompt) - cmts_ip = re.search('ip address (%s) .* secondary'%gw_ip, self.before) + cmts_ip = re.search('ip address (%s) .* secondary' % gw_ip, self.before) if cmts_ip: cmts_ip = cmts_ip.group(1) else: - assert 0,"ERROR: Failed to get the CMTS bundle IP" + assert 0, "ERROR: Failed to get the CMTS bundle IP" return cmts_ip def reset(self): @@ -393,12 +394,12 @@ def add_iface_docsis_mac(self, index, ip_bundle, qam_idx, qam_sub, qam_ch, ups_i self.expect(self.prompt) self.sendline('ip-provisioning-mode dual-stack') self.expect(self.prompt) - count = 1; + count = 1 for ch in qam_ch: self.sendline('downstream %s interface qam %s/%s/%s' % (count, qam_idx, qam_sub, ch)) self.expect(self.prompt) count += 1 - count = 1; + count = 1 for ch in ups_ch: self.sendline('upstream %s interface upstream %s/%s/0' % (count, ups_idx, ch)) self.expect(self.prompt) @@ -488,7 +489,7 @@ def del_file(self, f): # (i.e. theCM mode is in gateway mode) def is_cm_bridged(self, cm_mac): self.sendline("show cable modem "+cm_mac+" cpe") - if 0==self.expect(['eRouter']+self.prompt): + if 0 == self.expect(['eRouter']+self.prompt): self.expect(self.prompt) return False else: @@ -510,9 +511,9 @@ def get_ertr_ipv4(self, mac): mac = EUI(mac) ertr_mac = EUI(int(mac) + 2) ertr_mac.dialect = netaddr.mac_cisco - ertr_ipv4 = re.search('(%s) .* (%s)' %(ValidIpv4AddressRegex, ertr_mac), self.before) + ertr_ipv4 = re.search('(%s) .* (%s)' % (ValidIpv4AddressRegex, ertr_mac), self.before) if ertr_ipv4: - ipv4 =ertr_ipv4.group(1) + ipv4 = ertr_ipv4.group(1) return ipv4 else: return None @@ -521,7 +522,7 @@ def get_ertr_ipv6(self, mac): '''Getting erouter ipv6 from CMTS ''' self.sendline("show cable modem %s cpe" % mac) self.expect(self.prompt) - ertr_ipv6 = re.search(ValidIpv6AddressRegex ,self.before) + ertr_ipv6 = re.search(ValidIpv6AddressRegex, self.before) if ertr_ipv6: ipv6 = ertr_ipv6.group() return ipv6 @@ -552,6 +553,7 @@ def get_center_freq(self, mac_domain=None): return str(int(self.before.split(' ')[-1])) + if __name__ == '__main__': import time @@ -566,7 +568,7 @@ def get_center_freq(self, mac_domain=None): # so we use a ipv6 address 2001:dead:beef:4::cafe/62 for that which means we can bump # these up too cmts.add_ipv6_bundle_addrs(1, "2001:dead:beef:1::1", "2001:dead:beef:4::cafe/64", - secondary_ips=["2001:dead:beef:5::cafe/64", "2001:dead:beef:6::cafe/64"]) + secondary_ips=["2001:dead:beef:5::cafe/64", "2001:dead:beef:6::cafe/64"]) sys.exit(0) # TODO: example for now, need to parse args diff --git a/devices/common.py b/devices/common.py index 78016bce..75236aa1 100644 --- a/devices/common.py +++ b/devices/common.py @@ -6,6 +6,7 @@ # The full text can be found in LICENSE in the root directory. # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 +from lib.common import cmd_exists import binascii import os import pexpect @@ -14,6 +15,7 @@ import termcolor + def get_file_magic(fname, num_bytes=4): '''Return the first few bytes from a file to determine the type.''' if fname.startswith("http://") or fname.startswith("https://"): @@ -26,6 +28,7 @@ def get_file_magic(fname, num_bytes=4): f.close() return binascii.hexlify(data) + def copy_file_to_server(cmd, password, target="/tftpboot/"): '''Requires a command like ssh/scp to transfer a file, and a password. Run the command and enter the password if asked for one. @@ -38,18 +41,18 @@ def copy_file_to_server(cmd, password, target="/tftpboot/"): i = p.expect(["yes/no", "password:", "%s.*" % target]) if i == 0: - p.sendline("yes") - i = p.expect(["not used", "password:", "%s.*" % target], timeout=45) + p.sendline("yes") + i = p.expect(["not used", "password:", "%s.*" % target], timeout=45) if i == 1: - p.sendline("%s" % password) - p.expect("%s.*" % target, timeout=120) + p.sendline("%s" % password) + p.expect("%s.*" % target, timeout=120) fname = p.match.group(0).strip() print_bold("\nfile: %s" % fname) except pexpect.EOF: print_bold("EOF exception: unable to extract filename (should be echoed by command)!") - print_bold("EOF exception: command: %s"%cmd) + print_bold("EOF exception: command: %s" % cmd) except Exception as e: print_bold(e) print_bold("tried to copy file to server and failed!") @@ -59,15 +62,17 @@ def copy_file_to_server(cmd, password, target="/tftpboot/"): print_bold("Unable to copy file to server, exiting") raise Exception("Unable to copy file to server") -from lib.common import cmd_exists + def download_from_web(url, server, username, password, port): pipe = "" if cmd_exists('pv'): pipe = " pv | " - cmd = "curl -n -L -k '%s' 2>/dev/null | %s ssh -p %s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -x %s@%s \"mkdir -p /tftpboot/tmp; tmpfile=\`mktemp /tftpboot/tmp/XXXXX\`; cat - > \$tmpfile; chmod a+rw \$tmpfile; echo \$tmpfile\"" % (url, pipe, port, username, server) + cmd = "curl -n -L -k '%s' 2>/dev/null | %s ssh -p %s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -x %s@%s \"mkdir -p /tftpboot/tmp; tmpfile=\`mktemp /tftpboot/tmp/XXXXX\`; cat - > \$tmpfile; chmod a+rw \$tmpfile; echo \$tmpfile\"" % ( + url, pipe, port, username, server) return copy_file_to_server(cmd, password) + def scp_to_tftp_server(fname, server, username, password, port): # local file verify it exists first if not os.path.isfile(fname): @@ -78,12 +83,15 @@ def scp_to_tftp_server(fname, server, username, password, port): if cmd_exists('pv'): pipe = " pv | " - cmd = "cat %s | %s ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p %s -x %s@%s \"mkdir -p /tftpboot/tmp; tmpfile=\`mktemp /tftpboot/tmp/XXXXX\`; cat - > \$tmpfile; chmod a+rw \$tmpfile; echo \$tmpfile\"" % (fname, pipe, port, username, server) + cmd = "cat %s | %s ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p %s -x %s@%s \"mkdir -p /tftpboot/tmp; tmpfile=\`mktemp /tftpboot/tmp/XXXXX\`; cat - > \$tmpfile; chmod a+rw \$tmpfile; echo \$tmpfile\"" % ( + fname, pipe, port, username, server) return copy_file_to_server(cmd, password) + def scp_from(fname, server, username, password, port, dest): cmd = "scp -P %s -r %s@%s:%s %s; echo DONE" % (port, username, server, fname, dest) copy_file_to_server(cmd, password, target='DONE') + def print_bold(msg): termcolor.cprint(msg, None, attrs=['bold']) From 9d6894cca303bb2fe962e5605d92697baade86e8 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 16 Jul 2019 14:07:25 -0500 Subject: [PATCH 880/947] bft: print time to connect to a device Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I20d0cfd93bdc1154990ad00175e4d78da0e7b63d Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462102 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Mike Anderson <mikeanderson@mcclintock.net> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- bft | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bft b/bft index c48d208b..c8925de0 100755 --- a/bft +++ b/bft @@ -48,7 +48,11 @@ def setup_dynamic_devices(config, env=None, start=None): device['lan_gateway'] = config.console.lan_gateway device['start'] = start + s = time.time() dyn_dev = get_device(device['type'], **device) + if 'BFT_DEBUG' in os.environ: + print("Time to instantiate device = %s" % (time.time() - s)) + if dyn_dev is not None: if 'name' not in device: raise Exception("Device in config is not named! This is required") From 6121bacb39559fbe05f6b7413fbfce621ad23385 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Wed, 17 Jul 2019 19:53:21 -0500 Subject: [PATCH 881/947] dbclients: Remove unused reference to a thing from the olden days Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I09e50d16ec6d784ffa8e45342ce548ea94769a8b Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462359 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- dbclients/elasticlogger.py | 1 - dbclients/logstash.py | 1 - dbclients/mongodblogger.py | 1 - 3 files changed, 3 deletions(-) diff --git a/dbclients/elasticlogger.py b/dbclients/elasticlogger.py index ea10e511..b2e9b4cc 100644 --- a/dbclients/elasticlogger.py +++ b/dbclients/elasticlogger.py @@ -49,7 +49,6 @@ def __init__(self, server, index='boardfarm', doc_type='bft_run'): 'user': username, 'build_url': os.environ.get('BUILD_URL', 'None'), 'change_list': os.environ.get('change_list', 'None'), - 'apss': os.environ.get('apss', 'None').split('-')[0], 'manifest': os.environ.get('manifest', 'None'), } diff --git a/dbclients/logstash.py b/dbclients/logstash.py index 8dddb429..36232873 100644 --- a/dbclients/logstash.py +++ b/dbclients/logstash.py @@ -27,7 +27,6 @@ def __init__(self, server, subtype='demo'): 'user': username, 'build_url': os.environ.get('BUILD_URL', 'None'), 'change_list': os.environ.get('change_list', 'None'), - 'apss': os.environ.get('apss', 'None').split('-')[0], 'manifest': os.environ.get('manifest', 'None'), } self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) diff --git a/dbclients/mongodblogger.py b/dbclients/mongodblogger.py index af89b340..a480877c 100644 --- a/dbclients/mongodblogger.py +++ b/dbclients/mongodblogger.py @@ -60,7 +60,6 @@ def __init__(self, host, username, password, 'user': username, 'build_url': os.environ.get('BUILD_URL', 'None'), 'change_list': os.environ.get('change_list', 'None'), - 'apss': os.environ.get('apss', 'None').split('-')[0], 'manifest': os.environ.get('manifest', 'None'), } From d3217871e45eee6253919f8e977f5beb9990491d Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Thu, 18 Jul 2019 11:54:17 -0500 Subject: [PATCH 882/947] html results: Display conn_cmd or ipaddr:port Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I2d05ea23a25d703214490dacb0636db7543c8631 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462528 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- make_human_readable.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/make_human_readable.py b/make_human_readable.py index 88b85be5..e3b72b10 100644 --- a/make_human_readable.py +++ b/make_human_readable.py @@ -86,7 +86,10 @@ def build_station_info(board_info): ret = "" for device in board_info[u'devices']: - ret += " <li>%s %s</li>\n" % (device[u'name'], device[u'type']) + conn = device.get('conn_cmd', None) + if not conn: + conn = ":".join([device.get('ipaddr',''), device.get('port','')]) + ret += " <li>%s %s %s</li>\n" % (device['name'], device['type'], conn) return ret From 644a192c8b544898465c6e6470cb299f4f380130 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Thu, 18 Jul 2019 12:06:46 -0500 Subject: [PATCH 883/947] Add empty __init__.py to zephyr/ dir so we can import normally Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ieedafd9b6282eb82668347be1af2a8c3d66188d0 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462530 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- bft | 3 +-- zephyr/__init__.py | 6 ++++++ 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 zephyr/__init__.py diff --git a/bft b/bft index c8925de0..c3b372d3 100755 --- a/bft +++ b/bft @@ -19,8 +19,7 @@ import json import traceback from datetime import datetime -sys.path.insert(0, './zephyr/') -import zephyr_reporter +from zephyr import zephyr_reporter # Put this directory into the python path, so # that devices may be imported. diff --git a/zephyr/__init__.py b/zephyr/__init__.py new file mode 100644 index 00000000..81167843 --- /dev/null +++ b/zephyr/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) 2019 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. From 8c429b9a31e5b11dcf57926c0178630384c86192 Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Date: Fri, 19 Jul 2019 02:16:02 +0800 Subject: [PATCH 884/947] devices: linux: moved get_interface_ipaddr() and get_interface_ip6addr() Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Change-Id: If096e5d0379cf9ed6a916c7f5466b0ee4390357a Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462535 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/base.py | 20 ++++---------------- devices/cougarpark.py | 4 ++-- devices/debian.py | 14 ++------------ devices/linux.py | 29 +++++++++++++++++++++++++++++ devices/netgear.py | 4 ++-- devices/openwrt_router.py | 4 ++-- 6 files changed, 41 insertions(+), 34 deletions(-) create mode 100644 devices/linux.py diff --git a/devices/base.py b/devices/base.py index c93735ea..284833e9 100644 --- a/devices/base.py +++ b/devices/base.py @@ -30,24 +30,12 @@ class BaseDevice(pexpect.spawn): delaybetweenchar = None def get_interface_ipaddr(self, interface): - self.sendline("\nifconfig %s" % interface) - self.expect('addr:(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).*(Bcast|P-t-P):', timeout=5) - ipaddr = self.match.group(1) - self.expect(self.prompt) - return ipaddr + '''Get ipv4 address of interface ''' + raise Exception("Not implemented!") def get_interface_ip6addr(self, interface): - self.sendline("\nifconfig %s" % interface) - self.expect_exact("ifconfig %s" % interface) - self.expect(self.prompt) - - for match in re.findall(AllValidIpv6AddressesRegex, self.before): - ip6addr = ipaddress.IPv6Address(unicode(match)) - if not ip6addr.is_link_local: - # TODO: at some point just return ip6addr - return match - - raise Exception("Did not find non-link-local ipv6 address") + '''Get ipv6 address of interface ''' + raise Exception("Not implemented!") def get_interface_macaddr(self, interface): self.sendline('cat /sys/class/net/%s/address' % interface) diff --git a/devices/cougarpark.py b/devices/cougarpark.py index 8c388a43..a5392ff9 100644 --- a/devices/cougarpark.py +++ b/devices/cougarpark.py @@ -11,7 +11,7 @@ import ipaddress import connection_decider import signal -import base +import linux import sys KEY_ESCAPE = '\x1B' @@ -46,7 +46,7 @@ def __init__(self, *args, **kwargs): super(CougarPark, self).__init__(*args, **kwargs) del kwargs['conn_cmd'] - self.arm = pexpect.spawn.__new__(base.BaseDevice) + self.arm = pexpect.spawn.__new__(linux.LinuxDevice) arm_conn = connection_decider.connection(kwargs['connection_type'], device=self.arm, conn_cmd=self.conn_list[1], **kwargs) arm_conn.connect() self.consoles.append(self.arm) diff --git a/devices/debian.py b/devices/debian.py index ef584a59..6dbd9678 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -8,7 +8,7 @@ import sys import time import pexpect -import base +import linux import atexit import os import binascii @@ -19,7 +19,7 @@ from termcolor import colored, cprint -class DebianBox(base.BaseDevice): +class DebianBox(linux.LinuxDevice): ''' A linux machine running an ssh server. ''' @@ -274,16 +274,6 @@ def reset(self): self.password, self.port, reboot=False) - def get_interface_ipaddr(self, interface): - self.sendline("\nifconfig %s" % interface) - regex = ['addr:(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).*(Bcast|P-t-P):', - 'inet (\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).*(broadcast|P-t-P)', - 'inet ('+ValidIpv4AddressRegex+').*netmask ('+ValidIpv4AddressRegex+').*destination '+ValidIpv4AddressRegex] - self.expect(regex, timeout=5) - ipaddr = self.match.group(1) - self.expect(self.prompt) - return ipaddr - def install_pkgs(self): if self.pkgs_installed == True: return diff --git a/devices/linux.py b/devices/linux.py new file mode 100644 index 00000000..00130634 --- /dev/null +++ b/devices/linux.py @@ -0,0 +1,29 @@ +import base +import pexpect, ipaddress, re +from lib.regexlib import ValidIpv4AddressRegex, AllValidIpv6AddressesRegex + +class LinuxDevice(base.BaseDevice): + '''Linux implementations ''' + + def get_interface_ipaddr(self, interface): + '''Get ipv4 address of interface''' + self.sendline("\nifconfig %s" % interface) + regex = ['addr:(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).*(Bcast|P-t-P):', + 'inet (\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}).*(broadcast|P-t-P)', + 'inet ('+ValidIpv4AddressRegex+').*netmask ('+ValidIpv4AddressRegex+').*destination '+ValidIpv4AddressRegex] + self.expect(regex, timeout=5) + ipaddr = self.match.group(1) + ipv4address = str(ipaddress.IPv4Address(unicode(ipaddr))) + self.expect(self.prompt) + return ipv4address + + def get_interface_ip6addr(self, interface): + '''Get ipv6 address of interface''' + self.sendline("\nifconfig %s" % interface) + self.expect_exact("ifconfig %s" % interface) + self.expect(self.prompt) + for match in re.findall(AllValidIpv6AddressesRegex, self.before): + ip6address = ipaddress.IPv6Address(unicode(match)) + if not ip6address.is_link_local: + return str(ip6address) + raise Exception("Did not find non-link-local ipv6 address") diff --git a/devices/netgear.py b/devices/netgear.py index 1e4a2b5a..47e1b704 100644 --- a/devices/netgear.py +++ b/devices/netgear.py @@ -8,12 +8,12 @@ import pexpect import sys -import base +import linux # Netgear Switch Prompt prompt = "\(M4100-50G\) " -class NetgearM4100(base.BaseDevice): +class NetgearM4100(linux.LinuxDevice): ''' A netgear switch allows for changing connections by modifying VLANs on ports. diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 0ab19018..286e3c4e 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -14,7 +14,7 @@ import sys import urllib2 import pexpect -import base +import linux from datetime import datetime import ipaddress import re @@ -24,7 +24,7 @@ import connection_decider from common import print_bold -class OpenWrtRouter(base.BaseDevice): +class OpenWrtRouter(linux.LinuxDevice): ''' Args: model: Examples include "ap148" and "ap135". From 0890a0a3f91fb62a078b826ef2f3f96eb7e7ac46 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Wed, 17 Jul 2019 18:32:58 -0500 Subject: [PATCH 885/947] Add handling of optional _redirect key in bf config If the key "_redirect" is present, load the boardfarm config from that location instead. This will let us get users moved over to using boardfarm server. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I85379c0748d7258ea07cb1119931ff3c20d9beb4 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462352 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- arguments.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arguments.py b/arguments.py index ae7a607d..ee9db6da 100755 --- a/arguments.py +++ b/arguments.py @@ -105,6 +105,14 @@ def parse(): data = open(args.config_file, 'r').read() config.boardfarm_config = json.loads(data) + if "_redirect" in config.boardfarm_config: + print("Using boardfarm config file at %s" % config.boardfarm_config['_redirect']) + print("Please set your default config by doing:") + print(' export BFT_CONFIG="%s"' % config.boardfarm_config['_redirect']) + print("If you want to use local config, remove the _redirect line.") + data = urlopen(config.boardfarm_config['_redirect']).read().decode() + config.boardfarm_config = json.loads(data) + if 'locations' in config.boardfarm_config: location = config.boardfarm_config['locations'] del config.boardfarm_config['locations'] From 479e0ad4b41dc1283e3cb693ae062b5b7eb836f7 Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Date: Sat, 20 Jul 2019 04:47:36 +0800 Subject: [PATCH 886/947] devices: linux: moved few functions from base to linux module Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Change-Id: Ia26ac767fb521468b1bbc403df6e331abee74eb0 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462648 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/base.py | 56 ++++++++----------------------------- devices/linux.py | 71 ++++++++++++++++++++++++++++++++++++++++++++++- tests/selftest.py | 26 +++++++++++++++++ testsuites.cfg | 1 + 4 files changed, 109 insertions(+), 45 deletions(-) diff --git a/devices/base.py b/devices/base.py index 284833e9..7143fd43 100644 --- a/devices/base.py +++ b/devices/base.py @@ -38,22 +38,12 @@ def get_interface_ip6addr(self, interface): raise Exception("Not implemented!") def get_interface_macaddr(self, interface): - self.sendline('cat /sys/class/net/%s/address' % interface) - self.expect_exact('cat /sys/class/net/%s/address' % interface) - self.expect(LinuxMacFormat) - macaddr = self.match.group() - self.expect(self.prompt) - return macaddr + '''Get the interface mac address ''' + raise Exception("Not implemented!") def get_seconds_uptime(self): '''Return seconds since last reboot. Stored in /proc/uptime''' - self.sendcontrol('c') - self.expect(self.prompt) - self.sendline('\ncat /proc/uptime') - self.expect('((\d+)\.(\d{2}))(\s)(\d+)\.(\d{2})') - seconds_up = float(self.match.group(1)) - self.expect(self.prompt) - return seconds_up + raise Exception("Not implemented!") def get_logfile_read(self): if hasattr(self, "_logfile_read"): @@ -229,23 +219,16 @@ def expect_exact_split(self, pattern, nsplit=1, *args, **kwargs): pass def enable_ipv6(self, interface): - self.sendline("sysctl net.ipv6.conf."+interface+".accept_ra=2") - self.expect(self.prompt, timeout=30) - self.sendline("sysctl net.ipv6.conf."+interface+".disable_ipv6=0") - self.expect(self.prompt, timeout=30) + '''Enable ipv6 in interface ''' + raise Exception("Not implemented!") def disable_ipv6(self, interface): - self.sendline("sysctl net.ipv6.conf."+interface+".disable_ipv6=1") - self.expect(self.prompt, timeout=30) + '''Disable IPv6 in interface ''' + raise Exception("Not implemented!") def set_printk(self, CUR=1, DEF=1, MIN=1, BTDEF=7): - try: - self.sendline('echo "%d %d %d %d" > /proc/sys/kernel/printk' % (CUR, DEF, MIN, BTDEF)) - self.expect(self.prompt, timeout=10) - if not BFT_DEBUG: - common.print_bold("printk set to %d %d %d %d" % (CUR, DEF, MIN, BTDEF)) - except: - pass + '''Print the when debug enabled ''' + raise Exception("Not implemented!") def prefer_ipv4(self, pref=True): """Edits the /etc/gai.conf file @@ -253,23 +236,8 @@ def prefer_ipv4(self, pref=True): This is to give/remove ipv4 preference (by default ipv6 is preferred) See /etc/gai.conf inline comments for more details """ - if pref is True: - self.sendline("sed -i 's/^#precedence ::ffff:0:0\/96 100/precedence ::ffff:0:0\/96 100/' /etc/gai.conf") - else: - self.sendline("sed -i 's/^precedence ::ffff:0:0\/96 100/#precedence ::ffff:0:0\/96 100/' /etc/gai.conf") - self.expect(self.prompt) + raise Exception("Not implemented!") def ping(self, ping_ip, source_ip=None, ping_count=4, ping_interface=None): - if source_ip == None and ping_interface == None: - self.sendline('ping -c %s %s' % (ping_count, ping_ip)) - elif ping_interface != None: - self.sendline('ping -I %s -c %s %s' % (ping_interface, ping_count, ping_ip)) - else: - self.sendline("ping -S %s -c %s %s" % (source_ip, ping_count, ping_ip)) - self.expect(self.prompt, timeout=50) - match = re.search("%s packets transmitted, %s received, 0%% packet loss" % - (ping_count, ping_count), self.before) - if match: - return 'True' - else: - return 'False' + '''Check Ping verification from device ''' + raise Exception("Not implemented!") diff --git a/devices/linux.py b/devices/linux.py index 00130634..02a79238 100644 --- a/devices/linux.py +++ b/devices/linux.py @@ -1,6 +1,6 @@ import base import pexpect, ipaddress, re -from lib.regexlib import ValidIpv4AddressRegex, AllValidIpv6AddressesRegex +from lib.regexlib import ValidIpv4AddressRegex, AllValidIpv6AddressesRegex, LinuxMacFormat class LinuxDevice(base.BaseDevice): '''Linux implementations ''' @@ -27,3 +27,72 @@ def get_interface_ip6addr(self, interface): if not ip6address.is_link_local: return str(ip6address) raise Exception("Did not find non-link-local ipv6 address") + + def get_interface_macaddr(self, interface): + '''Get the interface macaddress ''' + self.sendline('cat /sys/class/net/%s/address' % interface) + self.expect_exact('cat /sys/class/net/%s/address' % interface) + self.expect(LinuxMacFormat) + macaddr = self.match.group() + self.expect(self.prompt) + return macaddr + + def get_seconds_uptime(self): + '''Return seconds since last reboot. Stored in /proc/uptime''' + self.sendcontrol('c') + self.expect(self.prompt) + self.sendline('\ncat /proc/uptime') + self.expect('((\d+)\.(\d{2}))(\s)(\d+)\.(\d{2})') + seconds_up = float(self.match.group(1)) + self.expect(self.prompt) + return seconds_up + + def enable_ipv6(self, interface): + '''Enable ipv6 of the interface ''' + self.sendline("sysctl net.ipv6.conf."+interface+".accept_ra=2") + self.expect(self.prompt, timeout=30) + self.sendline("sysctl net.ipv6.conf."+interface+".disable_ipv6=0") + self.expect(self.prompt, timeout=30) + + def disable_ipv6(self, interface): + '''Disable ipv6 of the interface ''' + self.sendline("sysctl net.ipv6.conf."+interface+".disable_ipv6=1") + self.expect(self.prompt, timeout=30) + + def set_printk(self, CUR=1, DEF=1, MIN=1, BTDEF=7): + '''Modifies the log level in kernel''' + try: + self.sendline('echo "%d %d %d %d" > /proc/sys/kernel/printk' % (CUR, DEF, MIN, BTDEF)) + self.expect(self.prompt, timeout=10) + if not BFT_DEBUG: + common.print_bold("printk set to %d %d %d %d" % (CUR, DEF, MIN, BTDEF)) + except: + pass + + def prefer_ipv4(self, pref=True): + """Edits the /etc/gai.conf file + + This is to give/remove ipv4 preference (by default ipv6 is preferred) + See /etc/gai.conf inline comments for more details + """ + if pref is True: + self.sendline("sed -i 's/^#precedence ::ffff:0:0\/96 100/precedence ::ffff:0:0\/96 100/' /etc/gai.conf") + else: + self.sendline("sed -i 's/^precedence ::ffff:0:0\/96 100/#precedence ::ffff:0:0\/96 100/' /etc/gai.conf") + self.expect(self.prompt) + + def ping(self, ping_ip, source_ip=None, ping_count=4, ping_interface=None): + '''Check ping from any device''' + if source_ip == None and ping_interface == None: + self.sendline('ping -c %s %s' % (ping_count, ping_ip)) + elif ping_interface != None: + self.sendline('ping -I %s -c %s %s' % (ping_interface, ping_count, ping_ip)) + else: + self.sendline("ping -S %s -c %s %s" % (source_ip, ping_count, ping_ip)) + self.expect(self.prompt, timeout=50) + match = re.search("%s packets transmitted, %s received, 0%% packet loss" % + (ping_count, ping_count), self.before) + if match: + return 'True' + else: + return 'False' diff --git a/tests/selftest.py b/tests/selftest.py index b53658cb..3b4db413 100644 --- a/tests/selftest.py +++ b/tests/selftest.py @@ -178,6 +178,32 @@ def runTest(self): print("Test passed") +class selftest_testing_linuxdevice_functions(rootfs_boot.RootFSBootTest): + ''' + tests the function moved from base.py to devices/linux.py + ''' + def runTest(self): + from devices import lan, debian, linux + if lan.model == "debian": + # check that lan is derived from LinuxDevice + assert(issubclass(debian.DebianBox, linux.LinuxDevice)) + + lan_mac = lan.get_interface_macaddr(lan.iface_dut) + assert lan_mac != None, "Failed getting lan mac address" + print "lan mac address: %s", lan_mac + + uptime = lan.get_seconds_uptime() + assert uptime != None, "Failed getting system uptime" + print "system uptime is: %s", uptime + + ping_check = lan.ping("8.8.8.8") + print "ping status is %s", ping_check + + ipv6_disable = lan.disable_ipv6(lan.iface_dut) + ipv6_enable = lan.enable_ipv6(lan.iface_dut) + board.set_printk() + print("Test passed") + def recover(self): if self.session is not None: self.session.sendline("exit") diff --git a/testsuites.cfg b/testsuites.cfg index 721c31eb..739af1a8 100644 --- a/testsuites.cfg +++ b/testsuites.cfg @@ -128,6 +128,7 @@ MemoryUse [selftest] selftest_test_copy_file_to_server selftest_test_create_session +selftest_testing_linuxdevice_functions [travisci] RootFSBootTest From da224a75aa23918a11c4863679f28fba272eeb66 Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Date: Wed, 24 Jul 2019 00:59:27 +0800 Subject: [PATCH 887/947] devices: linux: moving common linux functions to linux.py module Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Change-Id: I313f0a713ee093ab6becee88ff3ea26654d051a8 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463001 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/debian.py | 91 ------------------------------------------- devices/linux.py | 99 ++++++++++++++++++++++++++++++++++++++++++++++- tests/selftest.py | 51 +++++++++++++++++++++--- 3 files changed, 143 insertions(+), 98 deletions(-) diff --git a/devices/debian.py b/devices/debian.py index 6dbd9678..2fc391af 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -238,20 +238,6 @@ def run_cleanup_cmd(self): cc.expect(pexpect.EOF, timeout=120) print("cleanup_cmd done.") - def sudo_sendline(self, cmd): - if self.username != "root": - self.sendline("sudo true") - if 0 == self.expect(["password for .*:"] + self.prompt): - will_prompt_for_password = True - else: - will_prompt_for_password = False - - cmd = "sudo " + cmd - if will_prompt_for_password: - self.sendline(self.password) - self.expect(self.prompt) - super(DebianBox, self).sendline(cmd) - def reset(self): self.sendline('reboot') self.expect(['going down','disconnected']) @@ -336,11 +322,6 @@ def _install_pkgs(): self.sendline("ip route del default via %s" % undo_default_route) self.expect(self.prompt) - def ip_neigh_flush(self): - self.sendline('\nip -s neigh flush all') - self.expect('flush all') - self.expect(self.prompt) - def turn_on_pppoe(self): self.sendline('cat > /etc/ppp/pppoe-server-options << EOF') self.sendline('noauth') @@ -428,33 +409,6 @@ def start_sshd_server(self): self.sendline('/etc/init.d/ssh reload') self.expect(self.prompt) - def copy_file_to_server(self, src, dst=None): - def gzip_str(string_): - import gzip - import io - out = io.BytesIO() - with gzip.GzipFile(fileobj=out, mode='w') as fo: - fo.write(string_) - return out.getvalue() - - with open(src, mode='rb') as file: - bin_file = binascii.hexlify(gzip_str(file.read())) - if dst is None: - dst = self.tftp_dir + '/' + os.path.basename(src) - print ("Copying %s to %s" % (src, dst)) - saved_logfile_read = self.logfile_read - self.logfile_read = None - self.sendline('''cat << EOFEOFEOFEOF | xxd -r -p | gunzip > %s -%s -EOFEOFEOFEOF''' % (dst, bin_file)) - self.expect(self.prompt) - self.sendline('ls %s' % dst) - self.expect_exact('ls %s' % dst) - i = self.expect(['ls: cannot access %s: No such file or directory' % dst] + self.prompt) - if i == 0: - raise Exception("Failed to copy file") - self.logfile_read = saved_logfile_read - def configure(self, kind, config=[]): # TODO: wan needs to enable on more so we can route out? self.enable_ipv6(self.iface_dut) @@ -774,35 +728,6 @@ def start_lan_client(self, wan_gw=None): self.sendline('ip route add %s via %s' % (wan_gw, self.lan_gateway)) self.expect(self.prompt) - def add_new_user(self, id, pwd): - '''Create new login ID. But check if already exists''' - self.sendline('\nadduser %s' % id) - try: - self.expect_exact("Enter new UNIX password", timeout=5) - self.sendline('%s' % pwd) - self.expect_exact("Retype new UNIX password") - self.sendline('%s' % pwd) - self.expect_exact("Full Name []") - self.sendline('%s' % id) - self.expect_exact("Room Number []") - self.sendline('1') - self.expect_exact("Work Phone []") - self.sendline('4081234567') - self.expect_exact("Home Phone []") - self.sendline('4081234567') - self.expect_exact("Other []") - self.sendline('4081234567') - self.expect_exact("Is the information correct?") - self.sendline('y') - self.expect(self.prompt) - self.sendline('usermod -aG sudo %s' % id) - self.expect(self.prompt) - # Remove "$" in the login prompt and replace it with "#" - self.sendline('sed -i \'s/\\w\\\$ /\\\w# /g\' //home/%s/.bashrc' % id) - self.expect(self.prompt, timeout=30) - except: - self.expect(self.prompt, timeout=30) - def tftp_server_ip_int(self): '''Returns the DUT facing side tftp server ip''' return self.gw @@ -811,22 +736,6 @@ def tftp_server_ipv6_int(self): '''Returns the DUT facing side tftp server ipv6''' return self.gwv6 - def link_up(self, interface): - '''Checking the interface status''' - self.sendline("ip link show %s" % interface) - self.expect(self.prompt) - link_state = self.before - match = re.search('BROADCAST,MULTICAST,UP',link_state) - if match: - return match.group(0) - else: - return None - - def set_link_state(self, interface, state): - '''Setting the interface status''' - self.sudo_sendline("ip link set %s %s" % (interface,state)) - self.expect(self.prompt) - if __name__ == '__main__': # Example use try: diff --git a/devices/linux.py b/devices/linux.py index 02a79238..9762efa6 100644 --- a/devices/linux.py +++ b/devices/linux.py @@ -1,9 +1,10 @@ -import base -import pexpect, ipaddress, re +import base, binascii +import os, pexpect, ipaddress, re from lib.regexlib import ValidIpv4AddressRegex, AllValidIpv6AddressesRegex, LinuxMacFormat class LinuxDevice(base.BaseDevice): '''Linux implementations ''' + tftp_dir = '/tftpboot' def get_interface_ipaddr(self, interface): '''Get ipv4 address of interface''' @@ -96,3 +97,97 @@ def ping(self, ping_ip, source_ip=None, ping_count=4, ping_interface=None): return 'True' else: return 'False' + + def is_link_up(self, interface): + '''Checking the interface status''' + self.sendline("ip link show %s" % interface) + self.expect(self.prompt) + link_state = self.before + match = re.search('BROADCAST,MULTICAST,UP',link_state) + if match: + return match.group(0) + else: + return None + + def set_link_state(self, interface, state): + '''Setting the interface status''' + self.sudo_sendline("ip link set %s %s" % (interface,state)) + self.expect(self.prompt) + + def add_new_user(self, id, pwd): + '''Create new login ID. But check if already exists''' + self.sendline('\nadduser %s' % id) + try: + self.expect_exact("Enter new UNIX password", timeout=5) + self.sendline('%s' % pwd) + self.expect_exact("Retype new UNIX password") + self.sendline('%s' % pwd) + self.expect_exact("Full Name []") + self.sendline('%s' % id) + self.expect_exact("Room Number []") + self.sendline('1') + self.expect_exact("Work Phone []") + self.sendline('4081234567') + self.expect_exact("Home Phone []") + self.sendline('4081234567') + self.expect_exact("Other []") + self.sendline('4081234567') + self.expect_exact("Is the information correct?") + self.sendline('y') + self.expect(self.prompt) + self.sendline('usermod -aG sudo %s' % id) + self.expect(self.prompt) + # Remove "$" in the login prompt and replace it with "#" + self.sendline('sed -i \'s/\\w\\\$ /\\\w# /g\' //home/%s/.bashrc' % id) + self.expect(self.prompt, timeout=30) + except: + self.expect(self.prompt, timeout=30) + + def copy_file_to_server(self, src, dst=None): + '''Copy the file from source to destination ''' + def gzip_str(string_): + import gzip + import io + out = io.BytesIO() + with gzip.GzipFile(fileobj=out, mode='w') as fo: + fo.write(string_) + return out.getvalue() + + with open(src, mode='rb') as file: + bin_file = binascii.hexlify(gzip_str(file.read())) + if dst is None: + dst = self.tftp_dir + '/' + os.path.basename(src) + print ("Copying %s to %s" % (src, dst)) + saved_logfile_read = self.logfile_read + self.logfile_read = None + self.sendline('''cat << EOFEOFEOFEOF | xxd -r -p | gunzip > %s +%s +EOFEOFEOFEOF''' % (dst, bin_file)) + self.expect(self.prompt) + self.sendline('ls %s' % dst) + self.expect_exact('ls %s' % dst) + i = self.expect(['ls: cannot access %s: No such file or directory' % dst] + self.prompt) + if i == 0: + raise Exception("Failed to copy file") + self.logfile_read = saved_logfile_read + + def ip_neigh_flush(self): + '''Removes entries in the neighbour table ''' + self.sendline('\nip -s neigh flush all') + self.expect('flush all') + self.expect(self.prompt) + + def sudo_sendline(self, cmd): + '''Add sudo in the sendline if username is root''' + if self.username != "root": + self.sendline("sudo true") + if 0 == self.expect(["password for .*:"] + self.prompt): + will_prompt_for_password = True + else: + will_prompt_for_password = False + + cmd = "sudo " + cmd + if will_prompt_for_password: + self.sendline(self.password) + self.expect(self.prompt) + super(LinuxDevice, self).sendline(cmd) diff --git a/tests/selftest.py b/tests/selftest.py index 3b4db413..ad4c7545 100644 --- a/tests/selftest.py +++ b/tests/selftest.py @@ -27,7 +27,6 @@ def runTest(self): msg = 'WAN device is not running ssh server, can\'t copy with this function' lib.common.test_msg(msg) self.skipTest(msg) - text_file = tempfile.NamedTemporaryFile() self.fname = fname = text_file.name @@ -178,9 +177,13 @@ def runTest(self): print("Test passed") + def recover(self): + if self.session is not None: + self.session.sendline("exit") + class selftest_testing_linuxdevice_functions(rootfs_boot.RootFSBootTest): ''' - tests the function moved from base.py to devices/linux.py + tests the linux functions moved to devices/linux.py ''' def runTest(self): from devices import lan, debian, linux @@ -188,22 +191,60 @@ def runTest(self): # check that lan is derived from LinuxDevice assert(issubclass(debian.DebianBox, linux.LinuxDevice)) + #get the mac address of the interface lan_mac = lan.get_interface_macaddr(lan.iface_dut) assert lan_mac != None, "Failed getting lan mac address" print "lan mac address: %s", lan_mac + #check the system uptime uptime = lan.get_seconds_uptime() assert uptime != None, "Failed getting system uptime" print "system uptime is: %s", uptime + #ping ip using function ping from linux.py ping_check = lan.ping("8.8.8.8") print "ping status is %s", ping_check + #disable ipv6 ipv6_disable = lan.disable_ipv6(lan.iface_dut) + #enable ipv6 ipv6_enable = lan.enable_ipv6(lan.iface_dut) board.set_printk() print("Test passed") - def recover(self): - if self.session is not None: - self.session.sendline("exit") + #remove neighbour table entries + lan.ip_neigh_flush() + + #set the link state up + lan.set_link_state("eth1", "up") + + #Checking the interface status + link = lan.is_link_up("eth1") + assert link != None, "Failed to check the link is up" + + #add sudo when the username is root + lan.sudo_sendline("ping -c5 '8.8.8.8'") + lan.expect(lan.prompt, timeout=50) + + #add new user name in linux + lan.add_new_user("test", "test") + lan.sendline("userdel test") + lan.expect(lan.prompt) + + text_file = tempfile.NamedTemporaryFile() + letters = string.ascii_letters + fcontent = ''.join(random.choice(letters) for i in range(50)) + + text_file.write(fcontent) + text_file.flush() + + fmd5 = hashlib.md5(open(text_file.name, 'rb').read()).hexdigest() + print("File orginal md5sum: %s"% fmd5) + print('copying file to lan at /tmp/dst.txt') + lan.copy_file_to_server(text_file.name, "/tmp/dst.txt") + print('Copy Done. Verify the integrity of the file') + lan.sendline('md5sum /tmp/dst.txt') + lan.expect(fmd5) + lan.expect(lan.prompt) + print 'Test Passed' + From f3bd9c4e7ba8aec6e41753d059171cd63d325854 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 23 Jul 2019 14:55:02 -0500 Subject: [PATCH 888/947] test: linux_boot: log test time to ELK (and others) Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ibe6bed83a3c96f1bd5fb144f109fee6b32e45956 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463018 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Mike Anderson <mikeanderson@mcclintock.net> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/linux_boot.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/linux_boot.py b/tests/linux_boot.py index a78cc430..8dd9802f 100644 --- a/tests/linux_boot.py +++ b/tests/linux_boot.py @@ -117,13 +117,16 @@ def testWrapper(self): self.result_grade = "OK" self.stop_time = time.time() + self.logged['test_time'] = float(self.stop_time - self.start_time) except unittest2.case.SkipTest: self.stop_time = time.time() + self.logged['test_time'] = float(self.stop_time - self.start_time) self.result_grade = "SKIP" print("\n\n=========== Test skipped! Moving on... =============") raise except Exception as e: self.stop_time = time.time() + self.logged['test_time'] = float(self.stop_time - self.start_time) if hasattr(self, 'expected_failure') and self.expected_failure: self.result_grade = "Exp FAIL" else: From e281e097a4556de2eee870ee9dde98bd7cfc8c25 Mon Sep 17 00:00:00 2001 From: "prekumar.contractor" <prekumar.contractor@libertyglobal.com> Date: Tue, 23 Jul 2019 17:15:18 +0200 Subject: [PATCH 889/947] tests: lib: bft_logging: Renamed file name - Renamed file name from logging to bft_logging - Reason: to avoid conflicts with default python module called "logging" Note: Do not merge. Kindly review and let know whether the change is ok, so that the change can be implemented in import section of tests using this file. Signed-off-by: prekumar.contractor <prekumar.contractor@libertyglobal.com> Change-Id: If76c4a081270e103936a14520099f43102c16a39 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462983 Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> Tested-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/lib/{logging.py => bft_logging.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tests/lib/{logging.py => bft_logging.py} (100%) diff --git a/tests/lib/logging.py b/tests/lib/bft_logging.py similarity index 100% rename from tests/lib/logging.py rename to tests/lib/bft_logging.py From 0c3b1c742db9a18d2a2afdb6db1fad55855062fa Mon Sep 17 00:00:00 2001 From: "prekumar.contractor" <prekumar.contractor@libertyglobal.com> Date: Wed, 24 Jul 2019 11:55:11 +0200 Subject: [PATCH 890/947] devices: base: modified lib.logging to lib.bft_logging tests: linux_boot: modified lib.logging to lib.bft_logging dependent on https://review.gerrithub.io/c/lgirdk/boardfarm/+/462983 Signed-off-by: prekumar.contractor <prekumar.contractor@libertyglobal.com> Change-Id: Ic078979c8c0f207f99e16267b04e3fca00d7cfcb Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463052 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/base.py | 2 +- tests/linux_boot.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/base.py b/devices/base.py index 7143fd43..773586a8 100644 --- a/devices/base.py +++ b/devices/base.py @@ -15,7 +15,7 @@ import ipaddress from lib.regexlib import LinuxMacFormat, AllValidIpv6AddressesRegex -from lib.logging import LoggerMeta, o_helper +from lib.bft_logging import LoggerMeta, o_helper # To Do: maybe make this config variable BFT_DEBUG = "BFT_DEBUG" in os.environ diff --git a/tests/linux_boot.py b/tests/linux_boot.py index 8dd9802f..415c8341 100644 --- a/tests/linux_boot.py +++ b/tests/linux_boot.py @@ -13,7 +13,7 @@ import time from devices import board, wan, lan, wlan, prompt -from lib.logging import LoggerMeta, now_short +from lib.bft_logging import LoggerMeta, now_short class LinuxBootTest(unittest2.TestCase): _testMethodName = "UNDEFINED" From 03986803b5bfce2c64918220e7e718446fc57110 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 24 Jul 2019 17:04:20 -0500 Subject: [PATCH 891/947] gitignore: add tags to ignore list Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: If003eed57ed28163b1c0473f0fb81dde818f8bae Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463111 Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> Tested-by: Matthew McClintock <matthew@meldnetworks.com> --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index fc1729ee..93dbe70a 100644 --- a/.gitignore +++ b/.gitignore @@ -72,6 +72,7 @@ results/ # ctas TAGS +tags # Alternate config files *.json From a114b0fc7dc921842e29f504c063e8047184884e Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 22 Jul 2019 13:54:04 -0500 Subject: [PATCH 892/947] arguments: fix passing config file from command line Skips new redirect key when parsing JSON, also overrides _redirect if one is using the -c argument Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Id1b426898346dabc1d9cad53ce380b0d439fdfdd Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462894 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Mike Anderson <mikeanderson@mcclintock.net> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- arguments.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/arguments.py b/arguments.py index ee9db6da..47acd645 100755 --- a/arguments.py +++ b/arguments.py @@ -56,7 +56,7 @@ def parse(): epilog=HELP_EPILOG) parser.add_argument('-a', '--analysis', metavar='', type=str, default=None, help='Only run post processing analysis on logs') parser.add_argument('-b', '--board_type', metavar='', type=str, nargs='+', default=None, help='MODEL(s) of board to connect to') - parser.add_argument('-c', '--config_file', metavar='', type=str, default=boardfarm_config_location, help='JSON config file for boardfarm') + parser.add_argument('-c', '--config_file', metavar='', type=str, default=None, help='JSON config file for boardfarm') parser.add_argument('-e', '--extend', metavar='', type=str, default=None, action="append", help='NAME of extra test to run') parser.add_argument('-f', '--filter', metavar='', type=str, default=None, action="append", help='Regex filter off arbitrary board parameters') parser.add_argument('-g', '--golden', metavar='', type=str, default=[], nargs='+', help='Path to JSON results to compare against (golden master)') @@ -99,20 +99,27 @@ def parse(): sys.exit(0) try: - if args.config_file.startswith("http"): - data = urlopen(args.config_file).read().decode() + if args.config_file is not None: + config.boardfarm_config_location = args.config_file + + if config.boardfarm_config_location.startswith("http"): + data = urlopen(config.boardfarm_config_location).read().decode() else: - data = open(args.config_file, 'r').read() + data = open(config.boardfarm_config_location, 'r').read() + config.boardfarm_config = json.loads(data) - if "_redirect" in config.boardfarm_config: + if "_redirect" in config.boardfarm_config and args.config_file is None: print("Using boardfarm config file at %s" % config.boardfarm_config['_redirect']) print("Please set your default config by doing:") print(' export BFT_CONFIG="%s"' % config.boardfarm_config['_redirect']) print("If you want to use local config, remove the _redirect line.") data = urlopen(config.boardfarm_config['_redirect']).read().decode() + config.boardfarm_config_location = config.boardfarm_config['_redirect'] config.boardfarm_config = json.loads(data) + config.boardfarm_config.pop('_redirect', None) + if 'locations' in config.boardfarm_config: location = config.boardfarm_config['locations'] del config.boardfarm_config['locations'] From 58a376222104b7aa6dc0eca7d8cac1b7983446e2 Mon Sep 17 00:00:00 2001 From: luke <luke_tseng@compalbn.com> Date: Wed, 24 Jul 2019 13:33:55 +0800 Subject: [PATCH 893/947] tests: lib: gui_helper: add get value function for disabled input - gui_helper.py: to get the text with dynamic value. Change-Id: I53a44f841d66f74e14a8137743e7174e279ce3c4 Signed-off-by: luke <luke_tseng@compalbn.com> Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463037 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/lib/gui_helper.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/lib/gui_helper.py b/tests/lib/gui_helper.py index 523a1d7e..3f3791d8 100644 --- a/tests/lib/gui_helper.py +++ b/tests/lib/gui_helper.py @@ -110,3 +110,9 @@ def get_text_value_by_xpath(web_gui, get_value): return text_value except NoSuchElementException: return None + +def get_value_from_disabled_input(web_gui, get_value): + #To get the text with dynamic value + js="return document.getElementById(\"{!s}\").value;".format(str(get_value)) + text_value = web_gui.execute_script(js) + return str(text_value) From 5f3edeec6ac2d3a2bb2f0874515d9554cef82187 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Mon, 22 Jul 2019 10:13:05 +0200 Subject: [PATCH 894/947] tests: lib: SnmpHelper: added SnmpMib class given the path to the snmp ASN files, build a dictionary and allows us to get the oid given the mib name Unit test is included The module can be run as standalone (python tests/lib/SnmpHelper.py) The unit test installs snmpd in the wan container and performs snmpgets on a small set of generic linux mibs Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: I043442eeeb6ae24349e3372cf19856740c988560 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462819 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- requirements.txt | 1 + resources/mibs/SNMPv2-CONF.txt | 322 ++++ resources/mibs/SNMPv2-MIB.txt | 854 +++++++++ resources/mibs/SNMPv2-SMI.txt | 344 ++++ resources/mibs/SNMPv2-TC.txt | 772 ++++++++ resources/mibs/rfc1213-mib2.asn1.txt | 2657 ++++++++++++++++++++++++++ tests/lib/SnmpHelper.py | 132 ++ tests/lib/common.py | 25 +- tests/lib/installers.py | 20 +- tests/selftest.py | 149 +- testsuites.cfg | 1 + 11 files changed, 5268 insertions(+), 9 deletions(-) create mode 100755 resources/mibs/SNMPv2-CONF.txt create mode 100755 resources/mibs/SNMPv2-MIB.txt create mode 100755 resources/mibs/SNMPv2-SMI.txt create mode 100755 resources/mibs/SNMPv2-TC.txt create mode 100644 resources/mibs/rfc1213-mib2.asn1.txt create mode 100644 tests/lib/SnmpHelper.py diff --git a/requirements.txt b/requirements.txt index aea345e0..756563ee 100644 --- a/requirements.txt +++ b/requirements.txt @@ -22,3 +22,4 @@ simplejson termcolor unittest2 zeep +pysmi diff --git a/resources/mibs/SNMPv2-CONF.txt b/resources/mibs/SNMPv2-CONF.txt new file mode 100755 index 00000000..24a1eed9 --- /dev/null +++ b/resources/mibs/SNMPv2-CONF.txt @@ -0,0 +1,322 @@ +SNMPv2-CONF DEFINITIONS ::= BEGIN + +IMPORTS ObjectName, NotificationName, ObjectSyntax + FROM SNMPv2-SMI; + +-- definitions for conformance groups + +OBJECT-GROUP MACRO ::= +BEGIN + TYPE NOTATION ::= + ObjectsPart + "STATUS" Status + "DESCRIPTION" Text + ReferPart + + VALUE NOTATION ::= + value(VALUE OBJECT IDENTIFIER) + + ObjectsPart ::= + "OBJECTS" "{" Objects "}" + Objects ::= + Object + | Objects "," Object + Object ::= + + value(ObjectName) + + Status ::= + "current" + | "deprecated" + | "obsolete" + + ReferPart ::= + "REFERENCE" Text + | empty + + -- a character string as defined in [2] + Text ::= value(IA5String) +END + +-- more definitions for conformance groups + +NOTIFICATION-GROUP MACRO ::= +BEGIN + TYPE NOTATION ::= + NotificationsPart + "STATUS" Status + "DESCRIPTION" Text + ReferPart + + VALUE NOTATION ::= + value(VALUE OBJECT IDENTIFIER) + + NotificationsPart ::= + "NOTIFICATIONS" "{" Notifications "}" + Notifications ::= + Notification + | Notifications "," Notification + Notification ::= + value(NotificationName) + + Status ::= + "current" + | "deprecated" + | "obsolete" + + ReferPart ::= + "REFERENCE" Text + | empty + + -- a character string as defined in [2] + Text ::= value(IA5String) +END + +-- definitions for compliance statements + +MODULE-COMPLIANCE MACRO ::= +BEGIN + TYPE NOTATION ::= + "STATUS" Status + "DESCRIPTION" Text + ReferPart + ModulePart + + VALUE NOTATION ::= + value(VALUE OBJECT IDENTIFIER) + + Status ::= + "current" + | "deprecated" + | "obsolete" + + ReferPart ::= + "REFERENCE" Text + | empty + + ModulePart ::= + Modules + Modules ::= + Module + | Modules Module + Module ::= + -- name of module -- + "MODULE" ModuleName + MandatoryPart + CompliancePart + + ModuleName ::= + -- identifier must start with uppercase letter + identifier ModuleIdentifier + -- must not be empty unless contained + -- in MIB Module + | empty + ModuleIdentifier ::= + value(OBJECT IDENTIFIER) + | empty + + MandatoryPart ::= + "MANDATORY-GROUPS" "{" Groups "}" + | empty + + Groups ::= + + Group + | Groups "," Group + Group ::= + value(OBJECT IDENTIFIER) + + CompliancePart ::= + Compliances + | empty + + Compliances ::= + Compliance + | Compliances Compliance + Compliance ::= + ComplianceGroup + | Object + + ComplianceGroup ::= + "GROUP" value(OBJECT IDENTIFIER) + "DESCRIPTION" Text + + Object ::= + "OBJECT" value(ObjectName) + SyntaxPart + WriteSyntaxPart + AccessPart + "DESCRIPTION" Text + + -- must be a refinement for object's SYNTAX clause + SyntaxPart ::= "SYNTAX" Syntax + | empty + + -- must be a refinement for object's SYNTAX clause + WriteSyntaxPart ::= "WRITE-SYNTAX" Syntax + | empty + + Syntax ::= -- Must be one of the following: + -- a base type (or its refinement), + -- a textual convention (or its refinement), or + -- a BITS pseudo-type + type + | "BITS" "{" NamedBits "}" + + NamedBits ::= NamedBit + | NamedBits "," NamedBit + + NamedBit ::= identifier "(" number ")" -- number is nonnegative + + AccessPart ::= + "MIN-ACCESS" Access + | empty + Access ::= + "not-accessible" + | "accessible-for-notify" + | "read-only" + | "read-write" + | "read-create" + + -- a character string as defined in [2] + Text ::= value(IA5String) +END + +-- definitions for capabilities statements + +AGENT-CAPABILITIES MACRO ::= +BEGIN + TYPE NOTATION ::= + "PRODUCT-RELEASE" Text + "STATUS" Status + "DESCRIPTION" Text + ReferPart + ModulePart + + VALUE NOTATION ::= + value(VALUE OBJECT IDENTIFIER) + + Status ::= + "current" + | "obsolete" + + ReferPart ::= + "REFERENCE" Text + | empty + + ModulePart ::= + Modules + | empty + Modules ::= + Module + | Modules Module + Module ::= + -- name of module -- + "SUPPORTS" ModuleName + "INCLUDES" "{" Groups "}" + VariationPart + + ModuleName ::= + + -- identifier must start with uppercase letter + identifier ModuleIdentifier + ModuleIdentifier ::= + value(OBJECT IDENTIFIER) + | empty + + Groups ::= + Group + | Groups "," Group + Group ::= + value(OBJECT IDENTIFIER) + + VariationPart ::= + Variations + | empty + Variations ::= + Variation + | Variations Variation + + Variation ::= + ObjectVariation + | NotificationVariation + + NotificationVariation ::= + "VARIATION" value(NotificationName) + AccessPart + "DESCRIPTION" Text + + ObjectVariation ::= + "VARIATION" value(ObjectName) + SyntaxPart + WriteSyntaxPart + AccessPart + CreationPart + DefValPart + "DESCRIPTION" Text + + -- must be a refinement for object's SYNTAX clause + SyntaxPart ::= "SYNTAX" Syntax + | empty + + WriteSyntaxPart ::= "WRITE-SYNTAX" Syntax + | empty + + Syntax ::= -- Must be one of the following: + -- a base type (or its refinement), + -- a textual convention (or its refinement), or + -- a BITS pseudo-type + + type + | "BITS" "{" NamedBits "}" + + NamedBits ::= NamedBit + | NamedBits "," NamedBit + + NamedBit ::= identifier "(" number ")" -- number is nonnegative + + AccessPart ::= + "ACCESS" Access + | empty + + Access ::= + "not-implemented" + -- only "not-implemented" for notifications + | "accessible-for-notify" + | "read-only" + | "read-write" + | "read-create" + -- following is for backward-compatibility only + | "write-only" + + CreationPart ::= + "CREATION-REQUIRES" "{" Cells "}" + | empty + Cells ::= + Cell + | Cells "," Cell + Cell ::= + value(ObjectName) + + DefValPart ::= "DEFVAL" "{" Defvalue "}" + | empty + + Defvalue ::= -- must be valid for the object's syntax + -- in this macro's SYNTAX clause, if present, + -- or if not, in object's OBJECT-TYPE macro + value(ObjectSyntax) + | "{" BitsValue "}" + + BitsValue ::= BitNames + | empty + + BitNames ::= BitName + | BitNames "," BitName + + BitName ::= identifier + + -- a character string as defined in [2] + Text ::= value(IA5String) +END + +END diff --git a/resources/mibs/SNMPv2-MIB.txt b/resources/mibs/SNMPv2-MIB.txt new file mode 100755 index 00000000..8c828305 --- /dev/null +++ b/resources/mibs/SNMPv2-MIB.txt @@ -0,0 +1,854 @@ +SNMPv2-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, + TimeTicks, Counter32, snmpModules, mib-2 + FROM SNMPv2-SMI + DisplayString, TestAndIncr, TimeStamp + + FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP + FROM SNMPv2-CONF; + +snmpMIB MODULE-IDENTITY + LAST-UPDATED "200210160000Z" + ORGANIZATION "IETF SNMPv3 Working Group" + CONTACT-INFO + "WG-EMail: snmpv3@lists.tislabs.com + Subscribe: snmpv3-request@lists.tislabs.com + + Co-Chair: Russ Mundy + Network Associates Laboratories + postal: 15204 Omega Drive, Suite 300 + Rockville, MD 20850-4601 + USA + EMail: mundy@tislabs.com + phone: +1 301 947-7107 + + Co-Chair: David Harrington + Enterasys Networks + postal: 35 Industrial Way + P. O. Box 5005 + Rochester, NH 03866-5005 + USA + EMail: dbh@enterasys.com + phone: +1 603 337-2614 + + Editor: Randy Presuhn + BMC Software, Inc. + postal: 2141 North First Street + San Jose, CA 95131 + USA + EMail: randy_presuhn@bmc.com + phone: +1 408 546-1006" + DESCRIPTION + "The MIB module for SNMP entities. + + Copyright (C) The Internet Society (2002). This + version of this MIB module is part of RFC 3418; + see the RFC itself for full legal notices. + " + REVISION "200210160000Z" + DESCRIPTION + "This revision of this MIB module was published as + RFC 3418." + REVISION "199511090000Z" + DESCRIPTION + "This revision of this MIB module was published as + RFC 1907." + REVISION "199304010000Z" + DESCRIPTION + "The initial revision of this MIB module was published + as RFC 1450." + ::= { snmpModules 1 } + +snmpMIBObjects OBJECT IDENTIFIER ::= { snmpMIB 1 } + +-- ::= { snmpMIBObjects 1 } this OID is obsolete +-- ::= { snmpMIBObjects 2 } this OID is obsolete +-- ::= { snmpMIBObjects 3 } this OID is obsolete + +-- the System group +-- +-- a collection of objects common to all managed systems. + +system OBJECT IDENTIFIER ::= { mib-2 1 } + +sysDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual description of the entity. This value should + include the full name and version identification of + the system's hardware type, software operating-system, + and networking software." + ::= { system 1 } + +sysObjectID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor's authoritative identification of the + network management subsystem contained in the entity. + This value is allocated within the SMI enterprises + subtree (1.3.6.1.4.1) and provides an easy and + unambiguous means for determining `what kind of box' is + being managed. For example, if vendor `Flintstones, + Inc.' was assigned the subtree 1.3.6.1.4.1.424242, + it could assign the identifier 1.3.6.1.4.1.424242.1.1 + to its `Fred Router'." + ::= { system 2 } + +sysUpTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time (in hundredths of a second) since the + network management portion of the system was last + re-initialized." + ::= { system 3 } + +sysContact OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The textual identification of the contact person for + this managed node, together with information on how + to contact this person. If no contact information is + known, the value is the zero-length string." + ::= { system 4 } + +sysName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "An administratively-assigned name for this managed + node. By convention, this is the node's fully-qualified + domain name. If the name is unknown, the value is + the zero-length string." + ::= { system 5 } + +sysLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The physical location of this node (e.g., 'telephone + closet, 3rd floor'). If the location is unknown, the + value is the zero-length string." + ::= { system 6 } + +sysServices OBJECT-TYPE + SYNTAX INTEGER (0..127) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A value which indicates the set of services that this + entity may potentially offer. The value is a sum. + + This sum initially takes the value zero. Then, for + each layer, L, in the range 1 through 7, that this node + performs transactions for, 2 raised to (L - 1) is added + to the sum. For example, a node which performs only + routing functions would have a value of 4 (2^(3-1)). + In contrast, a node which is a host offering application + services would have a value of 72 (2^(4-1) + 2^(7-1)). + Note that in the context of the Internet suite of + protocols, values should be calculated accordingly: + + layer functionality + 1 physical (e.g., repeaters) + 2 datalink/subnetwork (e.g., bridges) + 3 internet (e.g., supports the IP) + 4 end-to-end (e.g., supports the TCP) + 7 applications (e.g., supports the SMTP) + + For systems including OSI protocols, layers 5 and 6 + may also be counted." + ::= { system 7 } + +-- object resource information +-- +-- a collection of objects which describe the SNMP entity's +-- (statically and dynamically configurable) support of +-- various MIB modules. + +sysORLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time of the most recent + change in state or value of any instance of sysORID." + ::= { system 8 } + +sysORTable OBJECT-TYPE + SYNTAX SEQUENCE OF SysOREntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The (conceptual) table listing the capabilities of + the local SNMP application acting as a command + responder with respect to various MIB modules. + SNMP entities having dynamically-configurable support + of MIB modules will have a dynamically-varying number + of conceptual rows." + ::= { system 9 } + +sysOREntry OBJECT-TYPE + SYNTAX SysOREntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry (conceptual row) in the sysORTable." + INDEX { sysORIndex } + ::= { sysORTable 1 } + +SysOREntry ::= SEQUENCE { + sysORIndex INTEGER, + sysORID OBJECT IDENTIFIER, + sysORDescr DisplayString, + sysORUpTime TimeStamp +} + +sysORIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The auxiliary variable used for identifying instances + of the columnar objects in the sysORTable." + ::= { sysOREntry 1 } + +sysORID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An authoritative identification of a capabilities + statement with respect to various MIB modules supported + by the local SNMP application acting as a command + responder." + ::= { sysOREntry 2 } + +sysORDescr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual description of the capabilities identified + by the corresponding instance of sysORID." + ::= { sysOREntry 3 } + +sysORUpTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time this conceptual + row was last instantiated." + ::= { sysOREntry 4 } + +-- the SNMP group +-- +-- a collection of objects providing basic instrumentation and +-- control of an SNMP entity. + +snmp OBJECT IDENTIFIER ::= { mib-2 11 } + +snmpInPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of messages delivered to the SNMP + entity from the transport service." + ::= { snmp 1 } + +snmpInBadVersions OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of SNMP messages which were delivered + to the SNMP entity and were for an unsupported SNMP + version." + ::= { snmp 3 } + +snmpInBadCommunityNames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of community-based SNMP messages (for + example, SNMPv1) delivered to the SNMP entity which + used an SNMP community name not known to said entity. + Also, implementations which authenticate community-based + SNMP messages using check(s) in addition to matching + the community name (for example, by also checking + whether the message originated from a transport address + allowed to use a specified community name) MAY include + in this value the number of messages which failed the + additional check(s). It is strongly RECOMMENDED that + + the documentation for any security model which is used + to authenticate community-based SNMP messages specify + the precise conditions that contribute to this value." + ::= { snmp 4 } + +snmpInBadCommunityUses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of community-based SNMP messages (for + example, SNMPv1) delivered to the SNMP entity which + represented an SNMP operation that was not allowed for + the SNMP community named in the message. The precise + conditions under which this counter is incremented + (if at all) depend on how the SNMP entity implements + its access control mechanism and how its applications + interact with that access control mechanism. It is + strongly RECOMMENDED that the documentation for any + access control mechanism which is used to control access + to and visibility of MIB instrumentation specify the + precise conditions that contribute to this value." + ::= { snmp 5 } + +snmpInASNParseErrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of ASN.1 or BER errors encountered by + the SNMP entity when decoding received SNMP messages." + ::= { snmp 6 } + +snmpEnableAuthenTraps OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates whether the SNMP entity is permitted to + generate authenticationFailure traps. The value of this + object overrides any configuration information; as such, + it provides a means whereby all authenticationFailure + traps may be disabled. + + Note that it is strongly recommended that this object + be stored in non-volatile memory so that it remains + constant across re-initializations of the network + management system." + ::= { snmp 30 } + +snmpSilentDrops OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Confirmed Class PDUs (such as + GetRequest-PDUs, GetNextRequest-PDUs, + GetBulkRequest-PDUs, SetRequest-PDUs, and + InformRequest-PDUs) delivered to the SNMP entity which + were silently dropped because the size of a reply + containing an alternate Response Class PDU (such as a + Response-PDU) with an empty variable-bindings field + was greater than either a local constraint or the + maximum message size associated with the originator of + the request." + ::= { snmp 31 } + +snmpProxyDrops OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Confirmed Class PDUs + (such as GetRequest-PDUs, GetNextRequest-PDUs, + GetBulkRequest-PDUs, SetRequest-PDUs, and + InformRequest-PDUs) delivered to the SNMP entity which + were silently dropped because the transmission of + the (possibly translated) message to a proxy target + failed in a manner (other than a time-out) such that + no Response Class PDU (such as a Response-PDU) could + be returned." + ::= { snmp 32 } + +-- information for notifications +-- +-- a collection of objects which allow the SNMP entity, when +-- supporting a notification originator application, +-- to be configured to generate SNMPv2-Trap-PDUs. + +snmpTrap OBJECT IDENTIFIER ::= { snmpMIBObjects 4 } + +snmpTrapOID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION + "The authoritative identification of the notification + currently being sent. This variable occurs as + the second varbind in every SNMPv2-Trap-PDU and + InformRequest-PDU." + ::= { snmpTrap 1 } + +-- ::= { snmpTrap 2 } this OID is obsolete + +snmpTrapEnterprise OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION + "The authoritative identification of the enterprise + associated with the trap currently being sent. When an + SNMP proxy agent is mapping an RFC1157 Trap-PDU + into a SNMPv2-Trap-PDU, this variable occurs as the + last varbind." + ::= { snmpTrap 3 } + +-- ::= { snmpTrap 4 } this OID is obsolete + +-- well-known traps + +snmpTraps OBJECT IDENTIFIER ::= { snmpMIBObjects 5 } + +coldStart NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "A coldStart trap signifies that the SNMP entity, + supporting a notification originator application, is + reinitializing itself and that its configuration may + have been altered." + ::= { snmpTraps 1 } + +warmStart NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "A warmStart trap signifies that the SNMP entity, + supporting a notification originator application, + is reinitializing itself such that its configuration + is unaltered." + ::= { snmpTraps 2 } + +-- Note the linkDown NOTIFICATION-TYPE ::= { snmpTraps 3 } +-- and the linkUp NOTIFICATION-TYPE ::= { snmpTraps 4 } +-- are defined in RFC 2863 [RFC2863] + +authenticationFailure NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "An authenticationFailure trap signifies that the SNMP + entity has received a protocol message that is not + properly authenticated. While all implementations + of SNMP entities MAY be capable of generating this + trap, the snmpEnableAuthenTraps object indicates + whether this trap will be generated." + ::= { snmpTraps 5 } + +-- Note the egpNeighborLoss notification is defined +-- as { snmpTraps 6 } in RFC 1213 + +-- the set group +-- +-- a collection of objects which allow several cooperating +-- command generator applications to coordinate their use of the +-- set operation. + +snmpSet OBJECT IDENTIFIER ::= { snmpMIBObjects 6 } + +snmpSetSerialNo OBJECT-TYPE + SYNTAX TestAndIncr + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "An advisory lock used to allow several cooperating + command generator applications to coordinate their + use of the SNMP set operation. + + This object is used for coarse-grain coordination. + To achieve fine-grain coordination, one or more similar + objects might be defined within each MIB group, as + appropriate." + ::= { snmpSet 1 } + +-- conformance information + +snmpMIBConformance + OBJECT IDENTIFIER ::= { snmpMIB 2 } + +snmpMIBCompliances + OBJECT IDENTIFIER ::= { snmpMIBConformance 1 } +snmpMIBGroups OBJECT IDENTIFIER ::= { snmpMIBConformance 2 } + +-- compliance statements + +-- ::= { snmpMIBCompliances 1 } this OID is obsolete +snmpBasicCompliance MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION + "The compliance statement for SNMPv2 entities which + implement the SNMPv2 MIB. + + This compliance statement is replaced by + snmpBasicComplianceRev2." + MODULE -- this module + MANDATORY-GROUPS { snmpGroup, snmpSetGroup, systemGroup, + snmpBasicNotificationsGroup } + + GROUP snmpCommunityGroup + DESCRIPTION + "This group is mandatory for SNMPv2 entities which + support community-based authentication." + ::= { snmpMIBCompliances 2 } + +snmpBasicComplianceRev2 MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMP entities which + implement this MIB module." + MODULE -- this module + MANDATORY-GROUPS { snmpGroup, snmpSetGroup, systemGroup, + snmpBasicNotificationsGroup } + + GROUP snmpCommunityGroup + DESCRIPTION + "This group is mandatory for SNMP entities which + support community-based authentication." + + GROUP snmpWarmStartNotificationGroup + DESCRIPTION + "This group is mandatory for an SNMP entity which + supports command responder applications, and is + able to reinitialize itself such that its + configuration is unaltered." + ::= { snmpMIBCompliances 3 } + +-- units of conformance + +-- ::= { snmpMIBGroups 1 } this OID is obsolete +-- ::= { snmpMIBGroups 2 } this OID is obsolete +-- ::= { snmpMIBGroups 3 } this OID is obsolete + +-- ::= { snmpMIBGroups 4 } this OID is obsolete + +snmpGroup OBJECT-GROUP + OBJECTS { snmpInPkts, + snmpInBadVersions, + snmpInASNParseErrs, + snmpSilentDrops, + snmpProxyDrops, + snmpEnableAuthenTraps } + STATUS current + DESCRIPTION + "A collection of objects providing basic instrumentation + and control of an SNMP entity." + ::= { snmpMIBGroups 8 } + +snmpCommunityGroup OBJECT-GROUP + OBJECTS { snmpInBadCommunityNames, + snmpInBadCommunityUses } + STATUS current + DESCRIPTION + "A collection of objects providing basic instrumentation + of a SNMP entity which supports community-based + authentication." + ::= { snmpMIBGroups 9 } + +snmpSetGroup OBJECT-GROUP + OBJECTS { snmpSetSerialNo } + STATUS current + DESCRIPTION + "A collection of objects which allow several cooperating + command generator applications to coordinate their + use of the set operation." + ::= { snmpMIBGroups 5 } + +systemGroup OBJECT-GROUP + OBJECTS { sysDescr, sysObjectID, sysUpTime, + sysContact, sysName, sysLocation, + sysServices, + sysORLastChange, sysORID, + sysORUpTime, sysORDescr } + STATUS current + DESCRIPTION + "The system group defines objects which are common to all + managed systems." + ::= { snmpMIBGroups 6 } + +snmpBasicNotificationsGroup NOTIFICATION-GROUP + NOTIFICATIONS { coldStart, authenticationFailure } + STATUS current + DESCRIPTION + "The basic notifications implemented by an SNMP entity + supporting command responder applications." + ::= { snmpMIBGroups 7 } + +snmpWarmStartNotificationGroup NOTIFICATION-GROUP + NOTIFICATIONS { warmStart } + STATUS current + DESCRIPTION + "An additional notification for an SNMP entity supporting + command responder applications, if it is able to reinitialize + itself such that its configuration is unaltered." + ::= { snmpMIBGroups 11 } + +snmpNotificationGroup OBJECT-GROUP + OBJECTS { snmpTrapOID, snmpTrapEnterprise } + STATUS current + DESCRIPTION + "These objects are required for entities + which support notification originator applications." + ::= { snmpMIBGroups 12 } + +-- definitions in RFC 1213 made obsolete by the inclusion of a +-- subset of the snmp group in this MIB + +snmpOutPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Messages which were + passed from the SNMP protocol entity to the + transport service." + ::= { snmp 2 } + +-- { snmp 7 } is not used + +snmpInTooBigs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field was + `tooBig'." + ::= { snmp 8 } + +snmpInNoSuchNames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field was + `noSuchName'." + ::= { snmp 9 } + +snmpInBadValues OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field was + `badValue'." + ::= { snmp 10 } + +snmpInReadOnlys OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number valid SNMP PDUs which were delivered + to the SNMP protocol entity and for which the value + of the error-status field was `readOnly'. It should + be noted that it is a protocol error to generate an + SNMP PDU which contains the value `readOnly' in the + error-status field, as such this object is provided + as a means of detecting incorrect implementations of + the SNMP." + ::= { snmp 11 } + +snmpInGenErrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were delivered + to the SNMP protocol entity and for which the value + of the error-status field was `genErr'." + ::= { snmp 12 } + +snmpInTotalReqVars OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of MIB objects which have been + retrieved successfully by the SNMP protocol entity + as the result of receiving valid SNMP Get-Request + and Get-Next PDUs." + ::= { snmp 13 } + +snmpInTotalSetVars OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of MIB objects which have been + altered successfully by the SNMP protocol entity as + the result of receiving valid SNMP Set-Request PDUs." + ::= { snmp 14 } + +snmpInGetRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Request PDUs which + have been accepted and processed by the SNMP + protocol entity." + ::= { snmp 15 } + +snmpInGetNexts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Next PDUs which have been + accepted and processed by the SNMP protocol entity." + ::= { snmp 16 } + +snmpInSetRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Set-Request PDUs which + have been accepted and processed by the SNMP protocol + entity." + ::= { snmp 17 } + +snmpInGetResponses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Response PDUs which + have been accepted and processed by the SNMP protocol + entity." + ::= { snmp 18 } + +snmpInTraps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Trap PDUs which have been + accepted and processed by the SNMP protocol entity." + ::= { snmp 19 } + +snmpOutTooBigs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were generated + by the SNMP protocol entity and for which the value + of the error-status field was `tooBig.'" + ::= { snmp 20 } + +snmpOutNoSuchNames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were generated + by the SNMP protocol entity and for which the value + of the error-status was `noSuchName'." + ::= { snmp 21 } + +snmpOutBadValues OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were generated + by the SNMP protocol entity and for which the value + of the error-status field was `badValue'." + ::= { snmp 22 } + +-- { snmp 23 } is not used + +snmpOutGenErrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were generated + by the SNMP protocol entity and for which the value + of the error-status field was `genErr'." + ::= { snmp 24 } + +snmpOutGetRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Request PDUs which + have been generated by the SNMP protocol entity." + ::= { snmp 25 } + +snmpOutGetNexts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Next PDUs which have + been generated by the SNMP protocol entity." + ::= { snmp 26 } + +snmpOutSetRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Set-Request PDUs which + have been generated by the SNMP protocol entity." + ::= { snmp 27 } + +snmpOutGetResponses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Response PDUs which + have been generated by the SNMP protocol entity." + ::= { snmp 28 } + +snmpOutTraps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Trap PDUs which have + been generated by the SNMP protocol entity." + ::= { snmp 29 } + +snmpObsoleteGroup OBJECT-GROUP + OBJECTS { snmpOutPkts, snmpInTooBigs, snmpInNoSuchNames, + snmpInBadValues, snmpInReadOnlys, snmpInGenErrs, + snmpInTotalReqVars, snmpInTotalSetVars, + snmpInGetRequests, snmpInGetNexts, snmpInSetRequests, + snmpInGetResponses, snmpInTraps, snmpOutTooBigs, + snmpOutNoSuchNames, snmpOutBadValues, + snmpOutGenErrs, snmpOutGetRequests, snmpOutGetNexts, + snmpOutSetRequests, snmpOutGetResponses, snmpOutTraps + } + STATUS obsolete + DESCRIPTION + "A collection of objects from RFC 1213 made obsolete + by this MIB module." + ::= { snmpMIBGroups 10 } + +END diff --git a/resources/mibs/SNMPv2-SMI.txt b/resources/mibs/SNMPv2-SMI.txt new file mode 100755 index 00000000..1c01e1df --- /dev/null +++ b/resources/mibs/SNMPv2-SMI.txt @@ -0,0 +1,344 @@ +SNMPv2-SMI DEFINITIONS ::= BEGIN + +-- the path to the root + +org OBJECT IDENTIFIER ::= { iso 3 } -- "iso" = 1 +dod OBJECT IDENTIFIER ::= { org 6 } +internet OBJECT IDENTIFIER ::= { dod 1 } + +directory OBJECT IDENTIFIER ::= { internet 1 } + +mgmt OBJECT IDENTIFIER ::= { internet 2 } +mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } +transmission OBJECT IDENTIFIER ::= { mib-2 10 } + +experimental OBJECT IDENTIFIER ::= { internet 3 } + +private OBJECT IDENTIFIER ::= { internet 4 } +enterprises OBJECT IDENTIFIER ::= { private 1 } + +security OBJECT IDENTIFIER ::= { internet 5 } + +snmpV2 OBJECT IDENTIFIER ::= { internet 6 } + +-- transport domains +snmpDomains OBJECT IDENTIFIER ::= { snmpV2 1 } + +-- transport proxies +snmpProxys OBJECT IDENTIFIER ::= { snmpV2 2 } + +-- module identities +snmpModules OBJECT IDENTIFIER ::= { snmpV2 3 } + +-- Extended UTCTime, to allow dates with four-digit years +-- (Note that this definition of ExtUTCTime is not to be IMPORTed +-- by MIB modules.) +ExtUTCTime ::= OCTET STRING(SIZE(11 | 13)) + -- format is YYMMDDHHMMZ or YYYYMMDDHHMMZ + + -- where: YY - last two digits of year (only years + -- between 1900-1999) + -- YYYY - last four digits of the year (any year) + -- MM - month (01 through 12) + -- DD - day of month (01 through 31) + -- HH - hours (00 through 23) + -- MM - minutes (00 through 59) + -- Z - denotes GMT (the ASCII character Z) + -- + -- For example, "9502192015Z" and "199502192015Z" represent + -- 8:15pm GMT on 19 February 1995. Years after 1999 must use + -- the four digit year format. Years 1900-1999 may use the + -- two or four digit format. + +-- definitions for information modules + +MODULE-IDENTITY MACRO ::= +BEGIN + TYPE NOTATION ::= + "LAST-UPDATED" value(Update ExtUTCTime) + "ORGANIZATION" Text + "CONTACT-INFO" Text + "DESCRIPTION" Text + RevisionPart + + VALUE NOTATION ::= + value(VALUE OBJECT IDENTIFIER) + + RevisionPart ::= + Revisions + | empty + Revisions ::= + Revision + | Revisions Revision + Revision ::= + "REVISION" value(Update ExtUTCTime) + "DESCRIPTION" Text + + -- a character string as defined in section 3.1.1 + Text ::= value(IA5String) +END + +OBJECT-IDENTITY MACRO ::= +BEGIN + TYPE NOTATION ::= + "STATUS" Status + "DESCRIPTION" Text + + ReferPart + + VALUE NOTATION ::= + value(VALUE OBJECT IDENTIFIER) + + Status ::= + "current" + | "deprecated" + | "obsolete" + + ReferPart ::= + "REFERENCE" Text + | empty + + -- a character string as defined in section 3.1.1 + Text ::= value(IA5String) +END + +-- names of objects +-- (Note that these definitions of ObjectName and NotificationName +-- are not to be IMPORTed by MIB modules.) + +ObjectName ::= + OBJECT IDENTIFIER + +NotificationName ::= + OBJECT IDENTIFIER + +-- syntax of objects + +-- the "base types" defined here are: +-- 3 built-in ASN.1 types: INTEGER, OCTET STRING, OBJECT IDENTIFIER +-- 8 application-defined types: Integer32, IpAddress, Counter32, +-- Gauge32, Unsigned32, TimeTicks, Opaque, and Counter64 + +ObjectSyntax ::= + CHOICE { + simple + SimpleSyntax, + -- note that SEQUENCEs for conceptual tables and + -- rows are not mentioned here... + + application-wide + ApplicationSyntax + } + +-- built-in ASN.1 types + +SimpleSyntax ::= + CHOICE { + -- INTEGERs with a more restrictive range + -- may also be used + integer-value -- includes Integer32 + INTEGER (-2147483648..2147483647), + -- OCTET STRINGs with a more restrictive size + -- may also be used + string-value + OCTET STRING (SIZE (0..65535)), + objectID-value + OBJECT IDENTIFIER + } + +-- indistinguishable from INTEGER, but never needs more than +-- 32-bits for a two's complement representation +Integer32 ::= + INTEGER (-2147483648..2147483647) + +-- application-wide types + +ApplicationSyntax ::= + CHOICE { + ipAddress-value + IpAddress, + counter-value + Counter32, + timeticks-value + TimeTicks, + arbitrary-value + Opaque, + big-counter-value + Counter64, + unsigned-integer-value -- includes Gauge32 + Unsigned32 + } + +-- in network-byte order + +-- (this is a tagged type for historical reasons) +IpAddress ::= + [APPLICATION 0] + IMPLICIT OCTET STRING (SIZE (4)) + +-- this wraps +Counter32 ::= + [APPLICATION 1] + IMPLICIT INTEGER (0..4294967295) + +-- this doesn't wrap +Gauge32 ::= + [APPLICATION 2] + IMPLICIT INTEGER (0..4294967295) + +-- an unsigned 32-bit quantity +-- indistinguishable from Gauge32 +Unsigned32 ::= + [APPLICATION 2] + IMPLICIT INTEGER (0..4294967295) + +-- hundredths of seconds since an epoch +TimeTicks ::= + [APPLICATION 3] + IMPLICIT INTEGER (0..4294967295) + +-- for backward-compatibility only +Opaque ::= + [APPLICATION 4] + IMPLICIT OCTET STRING + +-- for counters that wrap in less than one hour with only 32 bits +Counter64 ::= + [APPLICATION 6] + IMPLICIT INTEGER (0..18446744073709551615) + +-- definition for objects + +OBJECT-TYPE MACRO ::= +BEGIN + TYPE NOTATION ::= + "SYNTAX" Syntax + UnitsPart + "MAX-ACCESS" Access + "STATUS" Status + "DESCRIPTION" Text + ReferPart + + IndexPart + DefValPart + + VALUE NOTATION ::= + value(VALUE ObjectName) + + Syntax ::= -- Must be one of the following: + -- a base type (or its refinement), + -- a textual convention (or its refinement), or + -- a BITS pseudo-type + type + | "BITS" "{" NamedBits "}" + + NamedBits ::= NamedBit + | NamedBits "," NamedBit + + NamedBit ::= identifier "(" number ")" -- number is nonnegative + + UnitsPart ::= + "UNITS" Text + | empty + + Access ::= + "not-accessible" + | "accessible-for-notify" + | "read-only" + | "read-write" + | "read-create" + + Status ::= + "current" + | "deprecated" + | "obsolete" + + ReferPart ::= + "REFERENCE" Text + | empty + + IndexPart ::= + "INDEX" "{" IndexTypes "}" + | "AUGMENTS" "{" Entry "}" + | empty + IndexTypes ::= + IndexType + | IndexTypes "," IndexType + IndexType ::= + "IMPLIED" Index + | Index + + Index ::= + -- use the SYNTAX value of the + -- correspondent OBJECT-TYPE invocation + value(ObjectName) + Entry ::= + -- use the INDEX value of the + -- correspondent OBJECT-TYPE invocation + value(ObjectName) + + DefValPart ::= "DEFVAL" "{" Defvalue "}" + | empty + + Defvalue ::= -- must be valid for the type specified in + -- SYNTAX clause of same OBJECT-TYPE macro + value(ObjectSyntax) + | "{" BitsValue "}" + + BitsValue ::= BitNames + | empty + + BitNames ::= BitName + | BitNames "," BitName + + BitName ::= identifier + + -- a character string as defined in section 3.1.1 + Text ::= value(IA5String) +END + +-- definitions for notifications + +NOTIFICATION-TYPE MACRO ::= +BEGIN + TYPE NOTATION ::= + ObjectsPart + "STATUS" Status + "DESCRIPTION" Text + ReferPart + + VALUE NOTATION ::= + value(VALUE NotificationName) + + ObjectsPart ::= + "OBJECTS" "{" Objects "}" + | empty + Objects ::= + Object + + | Objects "," Object + Object ::= + value(ObjectName) + + Status ::= + "current" + | "deprecated" + | "obsolete" + + ReferPart ::= + "REFERENCE" Text + | empty + + -- a character string as defined in section 3.1.1 + Text ::= value(IA5String) +END + +-- definitions of administrative identifiers + +zeroDotZero OBJECT-IDENTITY + STATUS current + DESCRIPTION + "A value used for null identifiers." + ::= { 0 0 } + +END diff --git a/resources/mibs/SNMPv2-TC.txt b/resources/mibs/SNMPv2-TC.txt new file mode 100755 index 00000000..860bf71e --- /dev/null +++ b/resources/mibs/SNMPv2-TC.txt @@ -0,0 +1,772 @@ +SNMPv2-TC DEFINITIONS ::= BEGIN + +IMPORTS + TimeTicks FROM SNMPv2-SMI; + +-- definition of textual conventions + +TEXTUAL-CONVENTION MACRO ::= + +BEGIN + TYPE NOTATION ::= + DisplayPart + "STATUS" Status + "DESCRIPTION" Text + ReferPart + "SYNTAX" Syntax + + VALUE NOTATION ::= + value(VALUE Syntax) -- adapted ASN.1 + + DisplayPart ::= + "DISPLAY-HINT" Text + | empty + + Status ::= + "current" + | "deprecated" + | "obsolete" + + ReferPart ::= + "REFERENCE" Text + | empty + + -- a character string as defined in [2] + Text ::= value(IA5String) + + Syntax ::= -- Must be one of the following: + -- a base type (or its refinement), or + -- a BITS pseudo-type + type + | "BITS" "{" NamedBits "}" + + NamedBits ::= NamedBit + | NamedBits "," NamedBit + + NamedBit ::= identifier "(" number ")" -- number is nonnegative + +END + +DisplayString ::= TEXTUAL-CONVENTION + DISPLAY-HINT "255a" + STATUS current + DESCRIPTION + "Represents textual information taken from the NVT ASCII + + character set, as defined in pages 4, 10-11 of RFC 854. + + To summarize RFC 854, the NVT ASCII repertoire specifies: + + - the use of character codes 0-127 (decimal) + + - the graphics characters (32-126) are interpreted as + US ASCII + + - NUL, LF, CR, BEL, BS, HT, VT and FF have the special + meanings specified in RFC 854 + + - the other 25 codes have no standard interpretation + + - the sequence 'CR LF' means newline + + - the sequence 'CR NUL' means carriage-return + + - an 'LF' not preceded by a 'CR' means moving to the + same column on the next line. + + - the sequence 'CR x' for any x other than LF or NUL is + illegal. (Note that this also means that a string may + end with either 'CR LF' or 'CR NUL', but not with CR.) + + Any object defined using this syntax may not exceed 255 + characters in length." + SYNTAX OCTET STRING (SIZE (0..255)) + +PhysAddress ::= TEXTUAL-CONVENTION + DISPLAY-HINT "1x:" + STATUS current + DESCRIPTION + "Represents media- or physical-level addresses." + SYNTAX OCTET STRING + +MacAddress ::= TEXTUAL-CONVENTION + DISPLAY-HINT "1x:" + STATUS current + DESCRIPTION + "Represents an 802 MAC address represented in the + `canonical' order defined by IEEE 802.1a, i.e., as if it + were transmitted least significant bit first, even though + 802.5 (in contrast to other 802.x protocols) requires MAC + addresses to be transmitted most significant bit first." + SYNTAX OCTET STRING (SIZE (6)) + +TruthValue ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents a boolean value." + SYNTAX INTEGER { true(1), false(2) } + +TestAndIncr ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents integer-valued information used for atomic + operations. When the management protocol is used to specify + that an object instance having this syntax is to be + modified, the new value supplied via the management protocol + must precisely match the value presently held by the + instance. If not, the management protocol set operation + fails with an error of `inconsistentValue'. Otherwise, if + the current value is the maximum value of 2^31-1 (2147483647 + decimal), then the value held by the instance is wrapped to + zero; otherwise, the value held by the instance is + incremented by one. (Note that regardless of whether the + management protocol set operation succeeds, the variable- + binding in the request and response PDUs are identical.) + + The value of the ACCESS clause for objects having this + syntax is either `read-write' or `read-create'. When an + instance of a columnar object having this syntax is created, + any value may be supplied via the management protocol. + + When the network management portion of the system is re- + initialized, the value of every object instance having this + syntax must either be incremented from its value prior to + the re-initialization, or (if the value prior to the re- + initialization is unknown) be set to a pseudo-randomly + generated value." + SYNTAX INTEGER (0..2147483647) + +AutonomousType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents an independently extensible type identification + value. It may, for example, indicate a particular sub-tree + with further MIB definitions, or define a particular type of + protocol or hardware." + SYNTAX OBJECT IDENTIFIER + +InstancePointer ::= TEXTUAL-CONVENTION + STATUS obsolete + DESCRIPTION + "A pointer to either a specific instance of a MIB object or + a conceptual row of a MIB table in the managed device. In + the latter case, by convention, it is the name of the + particular instance of the first accessible columnar object + in the conceptual row. + + The two uses of this textual convention are replaced by + VariablePointer and RowPointer, respectively." + SYNTAX OBJECT IDENTIFIER + +VariablePointer ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A pointer to a specific object instance. For example, + sysContact.0 or ifInOctets.3." + SYNTAX OBJECT IDENTIFIER + +RowPointer ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents a pointer to a conceptual row. The value is the + name of the instance of the first accessible columnar object + in the conceptual row. + + For example, ifIndex.3 would point to the 3rd row in the + ifTable (note that if ifIndex were not-accessible, then + ifDescr.3 would be used instead)." + SYNTAX OBJECT IDENTIFIER + +RowStatus ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The RowStatus textual convention is used to manage the + creation and deletion of conceptual rows, and is used as the + value of the SYNTAX clause for the status column of a + conceptual row (as described in Section 7.7.1 of [2].) + + The status column has six defined values: + + - `active', which indicates that the conceptual row is + available for use by the managed device; + + - `notInService', which indicates that the conceptual + row exists in the agent, but is unavailable for use by + the managed device (see NOTE below); 'notInService' has + no implication regarding the internal consistency of + the row, availability of resources, or consistency with + the current state of the managed device; + + - `notReady', which indicates that the conceptual row + exists in the agent, but is missing information + necessary in order to be available for use by the + managed device (i.e., one or more required columns in + the conceptual row have not been instanciated); + + - `createAndGo', which is supplied by a management + station wishing to create a new instance of a + conceptual row and to have its status automatically set + to active, making it available for use by the managed + device; + + - `createAndWait', which is supplied by a management + station wishing to create a new instance of a + conceptual row (but not make it available for use by + the managed device); and, + - `destroy', which is supplied by a management station + wishing to delete all of the instances associated with + an existing conceptual row. + + Whereas five of the six values (all except `notReady') may + be specified in a management protocol set operation, only + three values will be returned in response to a management + protocol retrieval operation: `notReady', `notInService' or + `active'. That is, when queried, an existing conceptual row + has only three states: it is either available for use by + the managed device (the status column has value `active'); + it is not available for use by the managed device, though + the agent has sufficient information to attempt to make it + so (the status column has value `notInService'); or, it is + not available for use by the managed device, and an attempt + to make it so would fail because the agent has insufficient + information (the state column has value `notReady'). + + NOTE WELL + + This textual convention may be used for a MIB table, + irrespective of whether the values of that table's + conceptual rows are able to be modified while it is + active, or whether its conceptual rows must be taken + out of service in order to be modified. That is, it is + the responsibility of the DESCRIPTION clause of the + status column to specify whether the status column must + not be `active' in order for the value of some other + column of the same conceptual row to be modified. If + such a specification is made, affected columns may be + changed by an SNMP set PDU if the RowStatus would not + be equal to `active' either immediately before or after + processing the PDU. In other words, if the PDU also + contained a varbind that would change the RowStatus + value, the column in question may be changed if the + RowStatus was not equal to `active' as the PDU was + received, or if the varbind sets the status to a value + other than 'active'. + + Also note that whenever any elements of a row exist, the + RowStatus column must also exist. + + To summarize the effect of having a conceptual row with a + status column having a SYNTAX clause value of RowStatus, + consider the following state diagram: + + STATE + +--------------+-----------+-------------+------------- + | A | B | C | D + | |status col.|status column| + |status column | is | is |status column + ACTION |does not exist| notReady | notInService| is active +--------------+--------------+-----------+-------------+------------- +set status |noError ->D|inconsist- |inconsistent-|inconsistent- +column to | or | entValue| Value| Value +createAndGo |inconsistent- | | | + | Value| | | +--------------+--------------+-----------+-------------+------------- +set status |noError see 1|inconsist- |inconsistent-|inconsistent- +column to | or | entValue| Value| Value +createAndWait |wrongValue | | | +--------------+--------------+-----------+-------------+------------- +set status |inconsistent- |inconsist- |noError |noError +column to | Value| entValue| | +active | | | | + | | or | | + | | | | + | |see 2 ->D|see 8 ->D| ->D +--------------+--------------+-----------+-------------+------------- +set status |inconsistent- |inconsist- |noError |noError ->C +column to | Value| entValue| | +notInService | | | | + | | or | | or + | | | | + | |see 3 ->C| ->C|see 6 +--------------+--------------+-----------+-------------+------------- +set status |noError |noError |noError |noError ->A +column to | | | | or +destroy | ->A| ->A| ->A|see 7 +--------------+--------------+-----------+-------------+------------- +set any other |see 4 |noError |noError |see 5 +column to some| | | | +value | | see 1| ->C| ->D +--------------+--------------+-----------+-------------+------------- + + (1) goto B or C, depending on information available to the + agent. + + (2) if other variable bindings included in the same PDU, + provide values for all columns which are missing but + required, and all columns have acceptable values, then + return noError and goto D. + + (3) if other variable bindings included in the same PDU, + provide legal values for all columns which are missing but + required, then return noError and goto C. + + (4) at the discretion of the agent, the return value may be + either: + + inconsistentName: because the agent does not choose to + create such an instance when the corresponding + RowStatus instance does not exist, or + + inconsistentValue: if the supplied value is + inconsistent with the state of some other MIB object's + value, or + + noError: because the agent chooses to create the + instance. + + If noError is returned, then the instance of the status + column must also be created, and the new state is B or C, + depending on the information available to the agent. If + inconsistentName or inconsistentValue is returned, the row + remains in state A. + + (5) depending on the MIB definition for the column/table, + either noError or inconsistentValue may be returned. + + (6) the return value can indicate one of the following + errors: + + wrongValue: because the agent does not support + notInService (e.g., an agent which does not support + createAndWait), or + + inconsistentValue: because the agent is unable to take + the row out of service at this time, perhaps because it + is in use and cannot be de-activated. + + (7) the return value can indicate the following error: + + inconsistentValue: because the agent is unable to + remove the row at this time, perhaps because it is in + use and cannot be de-activated. + + (8) the transition to D can fail, e.g., if the values of the + conceptual row are inconsistent, then the error code would + be inconsistentValue. + + NOTE: Other processing of (this and other varbinds of) the + set request may result in a response other than noError + being returned, e.g., wrongValue, noCreation, etc. + + Conceptual Row Creation + + There are four potential interactions when creating a + conceptual row: selecting an instance-identifier which is + not in use; creating the conceptual row; initializing any + objects for which the agent does not supply a default; and, + making the conceptual row available for use by the managed + device. + + Interaction 1: Selecting an Instance-Identifier + + The algorithm used to select an instance-identifier varies + for each conceptual row. In some cases, the instance- + identifier is semantically significant, e.g., the + destination address of a route, and a management station + selects the instance-identifier according to the semantics. + + In other cases, the instance-identifier is used solely to + distinguish conceptual rows, and a management station + without specific knowledge of the conceptual row might + examine the instances present in order to determine an + unused instance-identifier. (This approach may be used, but + it is often highly sub-optimal; however, it is also a + questionable practice for a naive management station to + attempt conceptual row creation.) + + Alternately, the MIB module which defines the conceptual row + might provide one or more objects which provide assistance + in determining an unused instance-identifier. For example, + if the conceptual row is indexed by an integer-value, then + an object having an integer-valued SYNTAX clause might be + defined for such a purpose, allowing a management station to + issue a management protocol retrieval operation. In order + to avoid unnecessary collisions between competing management + stations, `adjacent' retrievals of this object should be + different. + + Finally, the management station could select a pseudo-random + number to use as the index. In the event that this index + + was already in use and an inconsistentValue was returned in + response to the management protocol set operation, the + management station should simply select a new pseudo-random + number and retry the operation. + + A MIB designer should choose between the two latter + algorithms based on the size of the table (and therefore the + efficiency of each algorithm). For tables in which a large + number of entries are expected, it is recommended that a MIB + object be defined that returns an acceptable index for + creation. For tables with small numbers of entries, it is + recommended that the latter pseudo-random index mechanism be + used. + + Interaction 2: Creating the Conceptual Row + + Once an unused instance-identifier has been selected, the + management station determines if it wishes to create and + activate the conceptual row in one transaction or in a + negotiated set of interactions. + + Interaction 2a: Creating and Activating the Conceptual Row + + The management station must first determine the column + requirements, i.e., it must determine those columns for + which it must or must not provide values. Depending on the + complexity of the table and the management station's + knowledge of the agent's capabilities, this determination + can be made locally by the management station. Alternately, + the management station issues a management protocol get + operation to examine all columns in the conceptual row that + it wishes to create. In response, for each column, there + are three possible outcomes: + + - a value is returned, indicating that some other + management station has already created this conceptual + row. We return to interaction 1. + + - the exception `noSuchInstance' is returned, + indicating that the agent implements the object-type + associated with this column, and that this column in at + least one conceptual row would be accessible in the MIB + view used by the retrieval were it to exist. For those + columns to which the agent provides read-create access, + the `noSuchInstance' exception tells the management + station that it should supply a value for this column + when the conceptual row is to be created. + + - the exception `noSuchObject' is returned, indicating + that the agent does not implement the object-type + associated with this column or that there is no + conceptual row for which this column would be + accessible in the MIB view used by the retrieval. As + such, the management station can not issue any + management protocol set operations to create an + instance of this column. + + Once the column requirements have been determined, a + management protocol set operation is accordingly issued. + This operation also sets the new instance of the status + column to `createAndGo'. + + When the agent processes the set operation, it verifies that + it has sufficient information to make the conceptual row + available for use by the managed device. The information + available to the agent is provided by two sources: the + management protocol set operation which creates the + conceptual row, and, implementation-specific defaults + supplied by the agent (note that an agent must provide + implementation-specific defaults for at least those objects + which it implements as read-only). If there is sufficient + information available, then the conceptual row is created, a + `noError' response is returned, the status column is set to + `active', and no further interactions are necessary (i.e., + interactions 3 and 4 are skipped). If there is insufficient + information, then the conceptual row is not created, and the + set operation fails with an error of `inconsistentValue'. + On this error, the management station can issue a management + protocol retrieval operation to determine if this was + because it failed to specify a value for a required column, + or, because the selected instance of the status column + already existed. In the latter case, we return to + interaction 1. In the former case, the management station + can re-issue the set operation with the additional + information, or begin interaction 2 again using + `createAndWait' in order to negotiate creation of the + conceptual row. + + NOTE WELL + + Regardless of the method used to determine the column + requirements, it is possible that the management + station might deem a column necessary when, in fact, + the agent will not allow that particular columnar + instance to be created or written. In this case, the + management protocol set operation will fail with an + error such as `noCreation' or `notWritable'. In this + case, the management station decides whether it needs + to be able to set a value for that particular columnar + instance. If not, the management station re-issues the + management protocol set operation, but without setting + a value for that particular columnar instance; + otherwise, the management station aborts the row + creation algorithm. + + Interaction 2b: Negotiating the Creation of the Conceptual + Row + + The management station issues a management protocol set + operation which sets the desired instance of the status + column to `createAndWait'. If the agent is unwilling to + process a request of this sort, the set operation fails with + an error of `wrongValue'. (As a consequence, such an agent + must be prepared to accept a single management protocol set + operation, i.e., interaction 2a above, containing all of the + columns indicated by its column requirements.) Otherwise, + the conceptual row is created, a `noError' response is + returned, and the status column is immediately set to either + `notInService' or `notReady', depending on whether it has + sufficient information to (attempt to) make the conceptual + row available for use by the managed device. If there is + sufficient information available, then the status column is + set to `notInService'; otherwise, if there is insufficient + information, then the status column is set to `notReady'. + Regardless, we proceed to interaction 3. + + Interaction 3: Initializing non-defaulted Objects + + The management station must now determine the column + requirements. It issues a management protocol get operation + to examine all columns in the created conceptual row. In + the response, for each column, there are three possible + outcomes: + + - a value is returned, indicating that the agent + implements the object-type associated with this column + and had sufficient information to provide a value. For + those columns to which the agent provides read-create + access (and for which the agent allows their values to + be changed after their creation), a value return tells + the management station that it may issue additional + management protocol set operations, if it desires, in + order to change the value associated with this column. + + - the exception `noSuchInstance' is returned, + indicating that the agent implements the object-type + associated with this column, and that this column in at + least one conceptual row would be accessible in the MIB + view used by the retrieval were it to exist. However, + the agent does not have sufficient information to + provide a value, and until a value is provided, the + conceptual row may not be made available for use by the + managed device. For those columns to which the agent + provides read-create access, the `noSuchInstance' + exception tells the management station that it must + issue additional management protocol set operations, in + order to provide a value associated with this column. + + - the exception `noSuchObject' is returned, indicating + that the agent does not implement the object-type + associated with this column or that there is no + conceptual row for which this column would be + accessible in the MIB view used by the retrieval. As + such, the management station can not issue any + management protocol set operations to create an + instance of this column. + + If the value associated with the status column is + `notReady', then the management station must first deal with + all `noSuchInstance' columns, if any. Having done so, the + value of the status column becomes `notInService', and we + proceed to interaction 4. + + Interaction 4: Making the Conceptual Row Available + + Once the management station is satisfied with the values + associated with the columns of the conceptual row, it issues + a management protocol set operation to set the status column + to `active'. If the agent has sufficient information to + make the conceptual row available for use by the managed + device, the management protocol set operation succeeds (a + `noError' response is returned). Otherwise, the management + protocol set operation fails with an error of + `inconsistentValue'. + + NOTE WELL + + A conceptual row having a status column with value + `notInService' or `notReady' is unavailable to the + managed device. As such, it is possible for the + managed device to create its own instances during the + time between the management protocol set operation + which sets the status column to `createAndWait' and the + management protocol set operation which sets the status + column to `active'. In this case, when the management + protocol set operation is issued to set the status + column to `active', the values held in the agent + supersede those used by the managed device. + + If the management station is prevented from setting the + status column to `active' (e.g., due to management station + or network failure) the conceptual row will be left in the + `notInService' or `notReady' state, consuming resources + indefinitely. The agent must detect conceptual rows that + have been in either state for an abnormally long period of + time and remove them. It is the responsibility of the + DESCRIPTION clause of the status column to indicate what an + abnormally long period of time would be. This period of + time should be long enough to allow for human response time + (including `think time') between the creation of the + conceptual row and the setting of the status to `active'. + In the absence of such information in the DESCRIPTION + clause, it is suggested that this period be approximately 5 + minutes in length. This removal action applies not only to + newly-created rows, but also to previously active rows which + are set to, and left in, the notInService state for a + prolonged period exceeding that which is considered normal + for such a conceptual row. + + Conceptual Row Suspension + + When a conceptual row is `active', the management station + may issue a management protocol set operation which sets the + instance of the status column to `notInService'. If the + agent is unwilling to do so, the set operation fails with an + error of `wrongValue' or `inconsistentValue'. Otherwise, + the conceptual row is taken out of service, and a `noError' + response is returned. It is the responsibility of the + DESCRIPTION clause of the status column to indicate under + what circumstances the status column should be taken out of + service (e.g., in order for the value of some other column + of the same conceptual row to be modified). + + Conceptual Row Deletion + + For deletion of conceptual rows, a management protocol set + operation is issued which sets the instance of the status + column to `destroy'. This request may be made regardless of + the current value of the status column (e.g., it is possible + to delete conceptual rows which are either `notReady', + `notInService' or `active'.) If the operation succeeds, + then all instances associated with the conceptual row are + immediately removed." + SYNTAX INTEGER { + -- the following two values are states: + -- these values may be read or written + active(1), + notInService(2), + -- the following value is a state: + -- this value may be read, but not written + notReady(3), + -- the following three values are + -- actions: these values may be written, + -- but are never read + createAndGo(4), + createAndWait(5), + destroy(6) + } + +TimeStamp ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The value of the sysUpTime object at which a specific + occurrence happened. The specific occurrence must be + + defined in the description of any object defined using this + type. + + If sysUpTime is reset to zero as a result of a re- + initialization of the network management (sub)system, then + the values of all TimeStamp objects are also reset. + However, after approximately 497 days without a re- + initialization, the sysUpTime object will reach 2^^32-1 and + then increment around to zero; in this case, existing values + of TimeStamp objects do not change. This can lead to + ambiguities in the value of TimeStamp objects." + SYNTAX TimeTicks + +TimeInterval ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A period of time, measured in units of 0.01 seconds." + SYNTAX INTEGER (0..2147483647) + +DateAndTime ::= TEXTUAL-CONVENTION + DISPLAY-HINT "2d-1d-1d,1d:1d:1d.1d,1a1d:1d" + STATUS current + DESCRIPTION + "A date-time specification. + + field octets contents range + ----- ------ -------- ----- + 1 1-2 year* 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minutes 0..59 + 6 7 seconds 0..60 + (use 60 for leap-second) + 7 8 deci-seconds 0..9 + 8 9 direction from UTC '+' / '-' + 9 10 hours from UTC* 0..13 + 10 11 minutes from UTC 0..59 + + * Notes: + - the value of year is in network-byte order + - daylight saving time in New Zealand is +13 + + For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be + displayed as: + + 1992-5-26,13:30:15.0,-4:0 + + Note that if only local time is known, then timezone + information (fields 8-10) is not present." + SYNTAX OCTET STRING (SIZE (8 | 11)) + +StorageType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Describes the memory realization of a conceptual row. A + row which is volatile(2) is lost upon reboot. A row which + is either nonVolatile(3), permanent(4) or readOnly(5), is + backed up by stable storage. A row which is permanent(4) + can be changed but not deleted. A row which is readOnly(5) + cannot be changed nor deleted. + + If the value of an object with this syntax is either + permanent(4) or readOnly(5), it cannot be written. + Conversely, if the value is either other(1), volatile(2) or + nonVolatile(3), it cannot be modified to be permanent(4) or + readOnly(5). (All illegal modifications result in a + 'wrongValue' error.) + + Every usage of this textual convention is required to + specify the columnar objects which a permanent(4) row must + at a minimum allow to be writable." + SYNTAX INTEGER { + other(1), -- eh? + volatile(2), -- e.g., in RAM + nonVolatile(3), -- e.g., in NVRAM + permanent(4), -- e.g., partially in ROM + readOnly(5) -- e.g., completely in ROM + } + +TDomain ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Denotes a kind of transport service. + + Some possible values, such as snmpUDPDomain, are defined in + the SNMPv2-TM MIB module. Other possible values are defined + in other MIB modules." + REFERENCE "The SNMPv2-TM MIB module is defined in RFC 1906." + SYNTAX OBJECT IDENTIFIER + +TAddress ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Denotes a transport service address. + + A TAddress value is always interpreted within the context of a + TDomain value. Thus, each definition of a TDomain value must + be accompanied by a definition of a textual convention for use + with that TDomain. Some possible textual conventions, such as + SnmpUDPAddress for snmpUDPDomain, are defined in the SNMPv2-TM + MIB module. Other possible textual conventions are defined in + other MIB modules." + REFERENCE "The SNMPv2-TM MIB module is defined in RFC 1906." + SYNTAX OCTET STRING (SIZE (1..255)) + +END diff --git a/resources/mibs/rfc1213-mib2.asn1.txt b/resources/mibs/rfc1213-mib2.asn1.txt new file mode 100644 index 00000000..3f3522ed --- /dev/null +++ b/resources/mibs/rfc1213-mib2.asn1.txt @@ -0,0 +1,2657 @@ +-- file: asn1specs/1213_mib2.asn1 +-- +-- this file is used in ../c{,++}-examples/snmp/ +-- +-- $Header: /home/rainbow/rj/cvs/snacc/asn1specs/rfc1213-mib2.asn1,v 1.3 1995/07/27 08:29:19 rj Exp $ +-- $Log: rfc1213-mib2.asn1,v $ +-- Revision 1.3 1995/07/27 08:29:19 rj +-- rfc1155-smi.asn1, rfc1157-snmp.asn1 and rfc1213-mib2.asn1 renamed from 1155-smi.asn1, 1157-snmp.asn1 and 1213-mib2.asn1 to accomodate to snacc's new file name generation scheme. +-- +-- Revision 1.2 1995/07/25 19:53:14 rj +-- changed `_' to `-' in file names. +-- +-- Revision 1.1 1994/08/31 23:08:28 rj +-- first check-in. +-- + +RFC1213-MIB DEFINITIONS ::= BEGIN + + IMPORTS + mgmt, NetworkAddress, IpAddress, Counter, Gauge, + TimeTicks + FROM RFC1155-SMI + +-- OBJECT-TYPE +-- FROM RFC-1212 + + ; + + -- This MIB module uses the extended OBJECT-TYPE macro as + -- defined in [14]; + + + -- MIB-II (same prefix as MIB-I) + + mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } + + -- textual conventions + + DisplayString ::= + OCTET STRING + -- This data type is used to model textual information taken + -- from the NVT ASCII character set. By convention, objects + -- with this syntax are declared as having + -- SIZE (0..255) + + PhysAddress ::= + OCTET STRING + -- This data type is used to model media addresses. For many + -- types of media, this will be in a binary representation. + -- For example, an ethernet address would be represented as + -- a string of 6 octets. + + + -- groups in MIB-II + + system OBJECT IDENTIFIER ::= { mib-2 1 } + + interfaces OBJECT IDENTIFIER ::= { mib-2 2 } + + at OBJECT IDENTIFIER ::= { mib-2 3 } + + ip OBJECT IDENTIFIER ::= { mib-2 4 } + + icmp OBJECT IDENTIFIER ::= { mib-2 5 } + + tcp OBJECT IDENTIFIER ::= { mib-2 6 } + + udp OBJECT IDENTIFIER ::= { mib-2 7 } + + egp OBJECT IDENTIFIER ::= { mib-2 8 } + + -- historical (some say hysterical) + -- cmot OBJECT IDENTIFIER ::= { mib-2 9 } + + transmission OBJECT IDENTIFIER ::= { mib-2 10 } + + snmp OBJECT IDENTIFIER ::= { mib-2 11 } + + + -- the System group + + -- Implementation of the System group is mandatory for all + -- systems. If an agent is not configured to have a value + -- for any of these variables, a string of length 0 is + -- returned. + + sysDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A textual description of the entity. This value + should include the full name and version + identification of the system's hardware type, + software operating-system, and networking + software. It is mandatory that this only contain + printable ASCII characters." + ::= { system 1 } + + sysObjectID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The vendor's authoritative identification of the + network management subsystem contained in the + entity. This value is allocated within the SMI + enterprises subtree (1.3.6.1.4.1) and provides an + easy and unambiguous means for determining `what + kind of box' is being managed. For example, if + vendor `Flintstones, Inc.' was assigned the + subtree 1.3.6.1.4.1.4242, it could assign the + identifier 1.3.6.1.4.1.4242.1.1 to its `Fred + Router'." + ::= { system 2 } + + sysUpTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time (in hundredths of a second) since the + network management portion of the system was last + re-initialized." + ::= { system 3 } + + sysContact OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The textual identification of the contact person + for this managed node, together with information + on how to contact this person." + ::= { system 4 } + + sysName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An administratively-assigned name for this + managed node. By convention, this is the node's + fully-qualified domain name." + ::= { system 5 } + + sysLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The physical location of this node (e.g., + `telephone closet, 3rd floor')." + ::= { system 6 } + + sysServices OBJECT-TYPE + SYNTAX INTEGER (0..127) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A value which indicates the set of services that + this entity primarily offers. + + The value is a sum. This sum initially takes the + value zero, Then, for each layer, L, in the range + 1 through 7, that this node performs transactions + for, 2 raised to (L - 1) is added to the sum. For + example, a node which performs primarily routing + functions would have a value of 4 (2^(3-1)). In + contrast, a node which is a host offering + application services would have a value of 72 + (2^(4-1) + 2^(7-1)). Note that in the context of + the Internet suite of protocols, values should be + calculated accordingly: + + layer functionality + 1 physical (e.g., repeaters) + 2 datalink/subnetwork (e.g., bridges) + 3 internet (e.g., IP gateways) + 4 end-to-end (e.g., IP hosts) + 7 applications (e.g., mail relays) + + For systems including OSI protocols, layers 5 and + 6 may also be counted." + ::= { system 7 } + + + + -- the Interfaces group + + -- Implementation of the Interfaces group is mandatory for + -- all systems. + + ifNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of network interfaces (regardless of + their current state) present on this system." + ::= { interfaces 1 } + + + -- the Interfaces table + + -- The Interfaces table contains information on the entity's + -- interfaces. Each interface is thought of as being + -- attached to a `subnetwork'. Note that this term should + -- not be confused with `subnet' which refers to an + -- addressing partitioning scheme used in the Internet suite + -- of protocols. + + ifTable OBJECT-TYPE + SYNTAX SEQUENCE OF IfEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of interface entries. The number of + entries is given by the value of ifNumber." + ::= { interfaces 2 } + + ifEntry OBJECT-TYPE + SYNTAX IfEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An interface entry containing objects at the + subnetwork layer and below for a particular + interface." + INDEX { ifIndex } + ::= { ifTable 1 } + + IfEntry ::= + SEQUENCE { + ifIndex + INTEGER, + ifDescr + DisplayString, + ifType + INTEGER, + ifMtu + INTEGER, + ifSpeed + Gauge, + ifPhysAddress + PhysAddress, + ifAdminStatus + INTEGER, + ifOperStatus + INTEGER, + ifLastChange + TimeTicks, + ifInOctets + Counter, + ifInUcastPkts + Counter, + ifInNUcastPkts + Counter, + ifInDiscards + Counter, + ifInErrors + Counter, + ifInUnknownProtos + Counter, + ifOutOctets + Counter, + ifOutUcastPkts + Counter, + ifOutNUcastPkts + Counter, + ifOutDiscards + Counter, + ifOutErrors + Counter, + ifOutQLen + Gauge, + ifSpecific + OBJECT IDENTIFIER + } + + ifIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique value for each interface. Its value + ranges between 1 and the value of ifNumber. The + value for each interface must remain constant at + least from one re-initialization of the entity's + network management system to the next re- + initialization." + ::= { ifEntry 1 } + + ifDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A textual string containing information about the + interface. This string should include the name of + the manufacturer, the product name and the version + of the hardware interface." + ::= { ifEntry 2 } + + ifType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + regular1822(2), + hdh1822(3), + ddn-x25(4), + rfc877-x25(5), + ethernet-csmacd(6), + iso88023-csmacd(7), + iso88024-tokenBus(8), + iso88025-tokenRing(9), + iso88026-man(10), + starLan(11), + proteon-10Mbit(12), + proteon-80Mbit(13), + hyperchannel(14), + fddi(15), + lapb(16), + sdlc(17), + ds1(18), -- T-1 + e1(19), -- european equiv. of T-1 + basicISDN(20), + primaryISDN(21), -- proprietary serial + propPointToPointSerial(22), + ppp(23), + softwareLoopback(24), + eon(25), -- CLNP over IP [11] + ethernet-3Mbit(26), + nsip(27), -- XNS over IP + slip(28), -- generic SLIP + ultra(29), -- ULTRA technologies + ds3(30), -- T-3 + sip(31), -- SMDS + frame-relay(32) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of interface, distinguished according to + the physical/link protocol(s) immediately `below' + the network layer in the protocol stack." + ::= { ifEntry 3 } + + ifMtu OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size of the largest datagram which can be + sent/received on the interface, specified in + octets. For interfaces that are used for + transmitting network datagrams, this is the size + of the largest network datagram that can be sent + on the interface." + ::= { ifEntry 4 } + + ifSpeed OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An estimate of the interface's current bandwidth + in bits per second. For interfaces which do not + vary in bandwidth or for those where no accurate + estimation can be made, this object should contain + the nominal bandwidth." + ::= { ifEntry 5 } + + ifPhysAddress OBJECT-TYPE + SYNTAX PhysAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The interface's address at the protocol layer + immediately `below' the network layer in the + protocol stack. For interfaces which do not have + such an address (e.g., a serial line), this object + should contain an octet string of zero length." + ::= { ifEntry 6 } + + ifAdminStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), -- ready to pass packets + down(2), + testing(3) -- in some test mode + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The desired state of the interface. The + testing(3) state indicates that no operational + packets can be passed." + ::= { ifEntry 7 } + + ifOperStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), -- ready to pass packets + down(2), + testing(3) -- in some test mode + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current operational state of the interface. + The testing(3) state indicates that no operational + packets can be passed." + ::= { ifEntry 8 } + + ifLastChange OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of sysUpTime at the time the interface + entered its current operational state. If the + current state was entered prior to the last re- + initialization of the local network management + subsystem, then this object contains a zero + value." + ::= { ifEntry 9 } + + ifInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of octets received on the + interface, including framing characters." + ::= { ifEntry 10 } + + ifInUcastPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of subnetwork-unicast packets + delivered to a higher-layer protocol." + ::= { ifEntry 11 } + + ifInNUcastPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of non-unicast (i.e., subnetwork- + broadcast or subnetwork-multicast) packets + delivered to a higher-layer protocol." + ::= { ifEntry 12 } + + ifInDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of inbound packets which were chosen + to be discarded even though no errors had been + detected to prevent their being deliverable to a + higher-layer protocol. One possible reason for + discarding such a packet could be to free up + buffer space." + ::= { ifEntry 13 } + + ifInErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of inbound packets that contained + errors preventing them from being deliverable to a + higher-layer protocol." + ::= { ifEntry 14 } + + + ifInUnknownProtos OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of packets received via the interface + which were discarded because of an unknown or + unsupported protocol." + ::= { ifEntry 15 } + + ifOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of octets transmitted out of the + interface, including framing characters." + ::= { ifEntry 16 } + + ifOutUcastPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted to a + subnetwork-unicast address, including those that + were discarded or not sent." + ::= { ifEntry 17 } + + ifOutNUcastPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted to a non- + unicast (i.e., a subnetwork-broadcast or + subnetwork-multicast) address, including those + that were discarded or not sent." + ::= { ifEntry 18 } + + ifOutDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of outbound packets which were chosen + to be discarded even though no errors had been + detected to prevent their being transmitted. One + possible reason for discarding such a packet could + be to free up buffer space." + ::= { ifEntry 19 } + + ifOutErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of outbound packets that could not be + transmitted because of errors." + ::= { ifEntry 20 } + + ifOutQLen OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The length of the output packet queue (in + packets)." + ::= { ifEntry 21 } + + ifSpecific OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A reference to MIB definitions specific to the + particular media being used to realize the + interface. For example, if the interface is + realized by an ethernet, then the value of this + object refers to a document defining objects + specific to ethernet. If this information is not + present, its value should be set to the OBJECT + IDENTIFIER { 0 0 }, which is a syntatically valid + object identifier, and any conformant + implementation of ASN.1 and BER must be able to + generate and recognize this value." + ::= { ifEntry 22 } + + + -- the Address Translation group + + -- Implementation of the Address Translation group is + -- mandatory for all systems. Note however that this group + -- is deprecated by MIB-II. That is, it is being included + -- solely for compatibility with MIB-I nodes, and will most + -- likely be excluded from MIB-III nodes. From MIB-II and + -- onwards, each network protocol group contains its own + -- address translation tables. + + -- The Address Translation group contains one table which is + -- the union across all interfaces of the translation tables + -- for converting a NetworkAddress (e.g., an IP address) into + -- a subnetwork-specific address. For lack of a better term, + -- this document refers to such a subnetwork-specific address + -- as a `physical' address. + + -- Examples of such translation tables are: for broadcast + -- media where ARP is in use, the translation table is + -- equivalent to the ARP cache; or, on an X.25 network where + -- non-algorithmic translation to X.121 addresses is + -- required, the translation table contains the + -- NetworkAddress to X.121 address equivalences. + + atTable OBJECT-TYPE + SYNTAX SEQUENCE OF AtEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "The Address Translation tables contain the + NetworkAddress to `physical' address equivalences. + Some interfaces do not use translation tables for + determining address equivalences (e.g., DDN-X.25 + has an algorithmic method); if all interfaces are + of this type, then the Address Translation table + is empty, i.e., has zero entries." + ::= { at 1 } + + atEntry OBJECT-TYPE + SYNTAX AtEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Each entry contains one NetworkAddress to + `physical' address equivalence." + INDEX { atIfIndex, + atNetAddress } + ::= { atTable 1 } + + AtEntry ::= + SEQUENCE { + atIfIndex + INTEGER, + atPhysAddress + PhysAddress, + atNetAddress + NetworkAddress + } + + atIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS deprecated + DESCRIPTION + "The interface on which this entry's equivalence + is effective. The interface identified by a + particular value of this index is the same + interface as identified by the same value of + ifIndex." + ::= { atEntry 1 } + + atPhysAddress OBJECT-TYPE + SYNTAX PhysAddress + ACCESS read-write + STATUS deprecated + DESCRIPTION + "The media-dependent `physical' address. + + Setting this object to a null string (one of zero + length) has the effect of invaliding the + corresponding entry in the atTable object. That + is, it effectively dissasociates the interface + identified with said entry from the mapping + identified with said entry. It is an + implementation-specific matter as to whether the + agent removes an invalidated entry from the table. + Accordingly, management stations must be prepared + to receive tabular information from agents that + corresponds to entries not currently in use. + Proper interpretation of such entries requires + examination of the relevant atPhysAddress object." + ::= { atEntry 2 } + + atNetAddress OBJECT-TYPE + SYNTAX NetworkAddress + ACCESS read-write + STATUS deprecated + DESCRIPTION + "The NetworkAddress (e.g., the IP address) + corresponding to the media-dependent `physical' + address." + ::= { atEntry 3 } + + + -- the IP group + + -- Implementation of the IP group is mandatory for all + -- systems. + + ipForwarding OBJECT-TYPE + SYNTAX INTEGER { + forwarding(1), -- acting as a gateway + not-forwarding(2) -- NOT acting as a gateway + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The indication of whether this entity is acting + as an IP gateway in respect to the forwarding of + datagrams received by, but not addressed to, this + entity. IP gateways forward datagrams. IP hosts + do not (except those source-routed via the host). + + Note that for some managed nodes, this object may + take on only a subset of the values possible. + Accordingly, it is appropriate for an agent to + return a `badValue' response if a management + station attempts to change this object to an + inappropriate value." + ::= { ip 1 } + + ipDefaultTTL OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The default value inserted into the Time-To-Live + field of the IP header of datagrams originated at + this entity, whenever a TTL value is not supplied + by the transport layer protocol." + ::= { ip 2 } + + ipInReceives OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of input datagrams received from + interfaces, including those received in error." + ::= { ip 3 } + + ipInHdrErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of input datagrams discarded due to + errors in their IP headers, including bad + checksums, version number mismatch, other format + errors, time-to-live exceeded, errors discovered + in processing their IP options, etc." + ::= { ip 4 } + + ipInAddrErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of input datagrams discarded because + the IP address in their IP header's destination + field was not a valid address to be received at + this entity. This count includes invalid + addresses (e.g., 0.0.0.0) and addresses of + unsupported Classes (e.g., Class E). For entities + which are not IP Gateways and therefore do not + forward datagrams, this counter includes datagrams + discarded because the destination address was not + a local address." + ::= { ip 5 } + + ipForwDatagrams OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of input datagrams for which this + entity was not their final IP destination, as a + result of which an attempt was made to find a + route to forward them to that final destination. + In entities which do not act as IP Gateways, this + counter will include only those packets which were + Source-Routed via this entity, and the Source- + Route option processing was successful." + ::= { ip 6 } + + ipInUnknownProtos OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of locally-addressed datagrams + received successfully but discarded because of an + unknown or unsupported protocol." + ::= { ip 7 } + + ipInDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of input IP datagrams for which no + problems were encountered to prevent their + continued processing, but which were discarded + (e.g., for lack of buffer space). Note that this + counter does not include any datagrams discarded + while awaiting re-assembly." + ::= { ip 8 } + + ipInDelivers OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of input datagrams successfully + delivered to IP user-protocols (including ICMP)." + ::= { ip 9 } + + ipOutRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of IP datagrams which local IP + user-protocols (including ICMP) supplied to IP in + requests for transmission. Note that this counter + does not include any datagrams counted in + ipForwDatagrams." + ::= { ip 10 } + + ipOutDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of output IP datagrams for which no + problem was encountered to prevent their + transmission to their destination, but which were + discarded (e.g., for lack of buffer space). Note + that this counter would include datagrams counted + in ipForwDatagrams if any such packets met this + (discretionary) discard criterion." + ::= { ip 11 } + + ipOutNoRoutes OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of IP datagrams discarded because no + route could be found to transmit them to their + destination. Note that this counter includes any + packets counted in ipForwDatagrams which meet this + `no-route' criterion. Note that this includes any + datagarms which a host cannot route because all of + its default gateways are down." + ::= { ip 12 } + + ipReasmTimeout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum number of seconds which received + fragments are held while they are awaiting + reassembly at this entity." + ::= { ip 13 } + + ipReasmReqds OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of IP fragments received which needed + to be reassembled at this entity." + ::= { ip 14 } + + ipReasmOKs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of IP datagrams successfully re- + assembled." + ::= { ip 15 } + + ipReasmFails OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of failures detected by the IP re- + assembly algorithm (for whatever reason: timed + out, errors, etc). Note that this is not + necessarily a count of discarded IP fragments + since some algorithms (notably the algorithm in + RFC 815) can lose track of the number of fragments + by combining them as they are received." + ::= { ip 16 } + + ipFragOKs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of IP datagrams that have been + successfully fragmented at this entity." + ::= { ip 17 } + + ipFragFails OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of IP datagrams that have been + discarded because they needed to be fragmented at + this entity but could not be, e.g., because their + Don't Fragment flag was set." + ::= { ip 18 } + + ipFragCreates OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of IP datagram fragments that have + been generated as a result of fragmentation at + this entity." + ::= { ip 19 } + + + + -- the IP address table + + -- The IP address table contains this entity's IP addressing + -- information. + + ipAddrTable OBJECT-TYPE + SYNTAX SEQUENCE OF IpAddrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of addressing information relevant to + this entity's IP addresses." + ::= { ip 20 } + + ipAddrEntry OBJECT-TYPE + SYNTAX IpAddrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The addressing information for one of this + entity's IP addresses." + INDEX { ipAdEntAddr } + ::= { ipAddrTable 1 } + + IpAddrEntry ::= + SEQUENCE { + ipAdEntAddr + IpAddress, + ipAdEntIfIndex + INTEGER, + ipAdEntNetMask + IpAddress, + ipAdEntBcastAddr + INTEGER, + ipAdEntReasmMaxSize + INTEGER (0..65535) + } + + ipAdEntAddr OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IP address to which this entry's addressing + information pertains." + ::= { ipAddrEntry 1 } + + + ipAdEntIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + interface to which this entry is applicable. The + interface identified by a particular value of this + index is the same interface as identified by the + same value of ifIndex." + ::= { ipAddrEntry 2 } + + ipAdEntNetMask OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The subnet mask associated with the IP address of + this entry. The value of the mask is an IP + address with all the network bits set to 1 and all + the hosts bits set to 0." + ::= { ipAddrEntry 3 } + + ipAdEntBcastAddr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of the least-significant bit in the IP + broadcast address used for sending datagrams on + the (logical) interface associated with the IP + address of this entry. For example, when the + Internet standard all-ones broadcast address is + used, the value will be 1. This value applies to + both the subnet and network broadcasts addresses + used by the entity on this (logical) interface." + ::= { ipAddrEntry 4 } + + ipAdEntReasmMaxSize OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size of the largest IP datagram which this + entity can re-assemble from incoming IP fragmented + datagrams received on this interface." + ::= { ipAddrEntry 5 } + + + + -- the IP routing table + + -- The IP routing table contains an entry for each route + -- presently known to this entity. + + ipRouteTable OBJECT-TYPE + SYNTAX SEQUENCE OF IpRouteEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This entity's IP Routing table." + ::= { ip 21 } + + ipRouteEntry OBJECT-TYPE + SYNTAX IpRouteEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A route to a particular destination." + INDEX { ipRouteDest } + ::= { ipRouteTable 1 } + + IpRouteEntry ::= + SEQUENCE { + ipRouteDest + IpAddress, + ipRouteIfIndex + INTEGER, + ipRouteMetric1 + INTEGER, + ipRouteMetric2 + INTEGER, + ipRouteMetric3 + INTEGER, + ipRouteMetric4 + INTEGER, + ipRouteNextHop + IpAddress, + ipRouteType + INTEGER, + ipRouteProto + INTEGER, + ipRouteAge + INTEGER, + ipRouteMask + IpAddress, + ipRouteMetric5 + INTEGER, + ipRouteInfo + OBJECT IDENTIFIER + } + + ipRouteDest OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The destination IP address of this route. An + entry with a value of 0.0.0.0 is considered a + default route. Multiple routes to a single + destination can appear in the table, but access to + such multiple entries is dependent on the table- + access mechanisms defined by the network + management protocol in use." + ::= { ipRouteEntry 1 } + + ipRouteIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + local interface through which the next hop of this + route should be reached. The interface identified + by a particular value of this index is the same + interface as identified by the same value of + ifIndex." + ::= { ipRouteEntry 2 } + + ipRouteMetric1 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The primary routing metric for this route. The + semantics of this metric are determined by the + routing-protocol specified in the route's + ipRouteProto value. If this metric is not used, + its value should be set to -1." + ::= { ipRouteEntry 3 } + + ipRouteMetric2 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An alternate routing metric for this route. The + semantics of this metric are determined by the + routing-protocol specified in the route's + ipRouteProto value. If this metric is not used, + its value should be set to -1." + ::= { ipRouteEntry 4 } + + ipRouteMetric3 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An alternate routing metric for this route. The + semantics of this metric are determined by the + routing-protocol specified in the route's + ipRouteProto value. If this metric is not used, + its value should be set to -1." + ::= { ipRouteEntry 5 } + + ipRouteMetric4 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An alternate routing metric for this route. The + semantics of this metric are determined by the + routing-protocol specified in the route's + ipRouteProto value. If this metric is not used, + its value should be set to -1." + ::= { ipRouteEntry 6 } + + ipRouteNextHop OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IP address of the next hop of this route. + (In the case of a route bound to an interface + which is realized via a broadcast media, the value + of this field is the agent's IP address on that + interface.)" + ::= { ipRouteEntry 7 } + + ipRouteType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + + invalid(2), -- an invalidated route + -- route to directly + direct(3), -- connected (sub-)network + + -- route to a non-local + indirect(4) -- host/network/sub-network + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The type of route. Note that the values + direct(3) and indirect(4) refer to the notion of + direct and indirect routing in the IP + architecture. + + Setting this object to the value invalid(2) has + the effect of invalidating the corresponding entry + in the ipRouteTable object. That is, it + effectively dissasociates the destination + identified with said entry from the route + identified with said entry. It is an + implementation-specific matter as to whether the + agent removes an invalidated entry from the table. + Accordingly, management stations must be prepared + to receive tabular information from agents that + corresponds to entries not currently in use. + Proper interpretation of such entries requires + examination of the relevant ipRouteType object." + ::= { ipRouteEntry 8 } + + ipRouteProto OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + + -- non-protocol information, + -- e.g., manually configured + local(2), -- entries + + -- set via a network + netmgmt(3), -- management protocol + + -- obtained via ICMP, + icmp(4), -- e.g., Redirect + + -- the remaining values are + -- all gateway routing + -- protocols + egp(5), + ggp(6), + hello(7), + rip(8), + is-is(9), + es-is(10), + ciscoIgrp(11), + bbnSpfIgp(12), + ospf(13), + bgp(14) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The routing mechanism via which this route was + learned. Inclusion of values for gateway routing + protocols is not intended to imply that hosts + should support those protocols." + ::= { ipRouteEntry 9 } + + ipRouteAge OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of seconds since this route was last + updated or otherwise determined to be correct. + Note that no semantics of `too old' can be implied + except through knowledge of the routing protocol + by which the route was learned." + ::= { ipRouteEntry 10 } + + ipRouteMask OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Indicate the mask to be logical-ANDed with the + destination address before being compared to the + value in the ipRouteDest field. For those systems + that do not support arbitrary subnet masks, an + agent constructs the value of the ipRouteMask by + determining whether the value of the correspondent + ipRouteDest field belong to a class-A, B, or C + network, and then using one of: + + mask network + 255.0.0.0 class-A + 255.255.0.0 class-B + 255.255.255.0 class-C + + If the value of the ipRouteDest is 0.0.0.0 (a + default route), then the mask value is also + 0.0.0.0. It should be noted that all IP routing + subsystems implicitly use this mechanism." + ::= { ipRouteEntry 11 } + + ipRouteMetric5 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An alternate routing metric for this route. The + semantics of this metric are determined by the + routing-protocol specified in the route's + ipRouteProto value. If this metric is not used, + its value should be set to -1." + ::= { ipRouteEntry 12 } + + ipRouteInfo OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A reference to MIB definitions specific to the + particular routing protocol which is responsible + for this route, as determined by the value + specified in the route's ipRouteProto value. If + this information is not present, its value should + be set to the OBJECT IDENTIFIER { 0 0 }, which is + a syntatically valid object identifier, and any + conformant implementation of ASN.1 and BER must be + able to generate and recognize this value." + ::= { ipRouteEntry 13 } + + + -- the IP Address Translation table + + -- The IP address translation table contain the IpAddress to + -- `physical' address equivalences. Some interfaces do not + -- use translation tables for determining address + -- equivalences (e.g., DDN-X.25 has an algorithmic method); + -- if all interfaces are of this type, then the Address + -- Translation table is empty, i.e., has zero entries. + + ipNetToMediaTable OBJECT-TYPE + SYNTAX SEQUENCE OF IpNetToMediaEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The IP Address Translation table used for mapping + from IP addresses to physical addresses." + ::= { ip 22 } + + ipNetToMediaEntry OBJECT-TYPE + SYNTAX IpNetToMediaEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Each entry contains one IpAddress to `physical' + address equivalence." + INDEX { ipNetToMediaIfIndex, + ipNetToMediaNetAddress } + ::= { ipNetToMediaTable 1 } + + IpNetToMediaEntry ::= + SEQUENCE { + ipNetToMediaIfIndex + INTEGER, + ipNetToMediaPhysAddress + PhysAddress, + ipNetToMediaNetAddress + IpAddress, + ipNetToMediaType + INTEGER + } + + ipNetToMediaIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The interface on which this entry's equivalence + is effective. The interface identified by a + particular value of this index is the same + interface as identified by the same value of + ifIndex." + ::= { ipNetToMediaEntry 1 } + + ipNetToMediaPhysAddress OBJECT-TYPE + SYNTAX PhysAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The media-dependent `physical' address." + ::= { ipNetToMediaEntry 2 } + + + + ipNetToMediaNetAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IpAddress corresponding to the media- + dependent `physical' address." + ::= { ipNetToMediaEntry 3 } + + ipNetToMediaType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + invalid(2), -- an invalidated mapping + dynamic(3), + static(4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The type of mapping. + + Setting this object to the value invalid(2) has + the effect of invalidating the corresponding entry + in the ipNetToMediaTable. That is, it effectively + dissasociates the interface identified with said + entry from the mapping identified with said entry. + It is an implementation-specific matter as to + whether the agent removes an invalidated entry + from the table. Accordingly, management stations + must be prepared to receive tabular information + from agents that corresponds to entries not + currently in use. Proper interpretation of such + entries requires examination of the relevant + ipNetToMediaType object." + ::= { ipNetToMediaEntry 4 } + + + -- additional IP objects + + ipRoutingDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of routing entries which were chosen + to be discarded even though they are valid. One + possible reason for discarding such an entry could + be to free-up buffer space for other routing + entries." + ::= { ip 23 } + + + -- the ICMP group + + -- Implementation of the ICMP group is mandatory for all + -- systems. + + icmpInMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of ICMP messages which the + entity received. Note that this counter includes + all those counted by icmpInErrors." + ::= { icmp 1 } + + icmpInErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP messages which the entity + received but determined as having ICMP-specific + errors (bad ICMP checksums, bad length, etc.)." + ::= { icmp 2 } + + icmpInDestUnreachs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Destination Unreachable + messages received." + ::= { icmp 3 } + + icmpInTimeExcds OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Time Exceeded messages + received." + ::= { icmp 4 } + + + icmpInParmProbs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Parameter Problem messages + received." + ::= { icmp 5 } + + icmpInSrcQuenchs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Source Quench messages + received." + ::= { icmp 6 } + + icmpInRedirects OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Redirect messages received." + ::= { icmp 7 } + + icmpInEchos OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Echo (request) messages + received." + ::= { icmp 8 } + + icmpInEchoReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Echo Reply messages received." + ::= { icmp 9 } + + icmpInTimestamps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Timestamp (request) messages + received." + ::= { icmp 10 } + + icmpInTimestampReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Timestamp Reply messages + received." + ::= { icmp 11 } + + icmpInAddrMasks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Address Mask Request messages + received." + ::= { icmp 12 } + + icmpInAddrMaskReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Address Mask Reply messages + received." + ::= { icmp 13 } + + icmpOutMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of ICMP messages which this + entity attempted to send. Note that this counter + includes all those counted by icmpOutErrors." + ::= { icmp 14 } + + icmpOutErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP messages which this entity did + not send due to problems discovered within ICMP + such as a lack of buffers. This value should not + include errors discovered outside the ICMP layer + such as the inability of IP to route the resultant + datagram. In some implementations there may be no + types of error which contribute to this counter's + value." + ::= { icmp 15 } + + icmpOutDestUnreachs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Destination Unreachable + messages sent." + ::= { icmp 16 } + + icmpOutTimeExcds OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Time Exceeded messages sent." + ::= { icmp 17 } + + icmpOutParmProbs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Parameter Problem messages + sent." + ::= { icmp 18 } + + icmpOutSrcQuenchs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Source Quench messages sent." + ::= { icmp 19 } + + icmpOutRedirects OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Redirect messages sent. For a + host, this object will always be zero, since hosts + do not send redirects." + ::= { icmp 20 } + + icmpOutEchos OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Echo (request) messages sent." + ::= { icmp 21 } + + icmpOutEchoReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Echo Reply messages sent." + ::= { icmp 22 } + + icmpOutTimestamps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Timestamp (request) messages + sent." + ::= { icmp 23 } + + icmpOutTimestampReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Timestamp Reply messages + sent." + ::= { icmp 24 } + + icmpOutAddrMasks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Address Mask Request messages + sent." + ::= { icmp 25 } + + + icmpOutAddrMaskReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Address Mask Reply messages + sent." + ::= { icmp 26 } + + + -- the TCP group + + -- Implementation of the TCP group is mandatory for all + -- systems that implement the TCP. + + -- Note that instances of object types that represent + -- information about a particular TCP connection are + -- transient; they persist only as long as the connection + -- in question. + + tcpRtoAlgorithm OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + + constant(2), -- a constant rto + rsre(3), -- MIL-STD-1778, Appendix B + vanj(4) -- Van Jacobson's algorithm [10] + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The algorithm used to determine the timeout value + used for retransmitting unacknowledged octets." + ::= { tcp 1 } + + tcpRtoMin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The minimum value permitted by a TCP + implementation for the retransmission timeout, + measured in milliseconds. More refined semantics + for objects of this type depend upon the algorithm + used to determine the retransmission timeout. In + particular, when the timeout algorithm is rsre(3), + an object of this type has the semantics of the + LBOUND quantity described in RFC 793." + ::= { tcp 2 } + + + tcpRtoMax OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum value permitted by a TCP + implementation for the retransmission timeout, + measured in milliseconds. More refined semantics + for objects of this type depend upon the algorithm + used to determine the retransmission timeout. In + particular, when the timeout algorithm is rsre(3), + an object of this type has the semantics of the + UBOUND quantity described in RFC 793." + ::= { tcp 3 } + + tcpMaxConn OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The limit on the total number of TCP connections + the entity can support. In entities where the + maximum number of connections is dynamic, this + object should contain the value -1." + ::= { tcp 4 } + + tcpActiveOpens OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times TCP connections have made a + direct transition to the SYN-SENT state from the + CLOSED state." + ::= { tcp 5 } + + tcpPassiveOpens OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times TCP connections have made a + direct transition to the SYN-RCVD state from the + LISTEN state." + ::= { tcp 6 } + + + + tcpAttemptFails OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times TCP connections have made a + direct transition to the CLOSED state from either + the SYN-SENT state or the SYN-RCVD state, plus the + number of times TCP connections have made a direct + transition to the LISTEN state from the SYN-RCVD + state." + ::= { tcp 7 } + + tcpEstabResets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times TCP connections have made a + direct transition to the CLOSED state from either + the ESTABLISHED state or the CLOSE-WAIT state." + ::= { tcp 8 } + + tcpCurrEstab OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of TCP connections for which the + current state is either ESTABLISHED or CLOSE- + WAIT." + ::= { tcp 9 } + + tcpInSegs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of segments received, including + those received in error. This count includes + segments received on currently established + connections." + ::= { tcp 10 } + + tcpOutSegs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of segments sent, including + those on current connections but excluding those + containing only retransmitted octets." + ::= { tcp 11 } + + tcpRetransSegs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of segments retransmitted - that + is, the number of TCP segments transmitted + containing one or more previously transmitted + octets." + ::= { tcp 12 } + + + -- the TCP Connection table + + -- The TCP connection table contains information about this + -- entity's existing TCP connections. + + tcpConnTable OBJECT-TYPE + SYNTAX SEQUENCE OF TcpConnEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table containing TCP connection-specific + information." + ::= { tcp 13 } + + tcpConnEntry OBJECT-TYPE + SYNTAX TcpConnEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about a particular current TCP + connection. An object of this type is transient, + in that it ceases to exist when (or soon after) + the connection makes the transition to the CLOSED + state." + INDEX { tcpConnLocalAddress, + tcpConnLocalPort, + tcpConnRemAddress, + tcpConnRemPort } + ::= { tcpConnTable 1 } + + + TcpConnEntry ::= + SEQUENCE { + tcpConnState + INTEGER, + tcpConnLocalAddress + IpAddress, + tcpConnLocalPort + INTEGER (0..65535), + tcpConnRemAddress + IpAddress, + tcpConnRemPort + INTEGER (0..65535) + } + + tcpConnState OBJECT-TYPE + SYNTAX INTEGER { + closed(1), + listen(2), + synSent(3), + synReceived(4), + established(5), + finWait1(6), + finWait2(7), + closeWait(8), + lastAck(9), + closing(10), + timeWait(11), + deleteTCB(12) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The state of this TCP connection. + + The only value which may be set by a management + station is deleteTCB(12). Accordingly, it is + appropriate for an agent to return a `badValue' + response if a management station attempts to set + this object to any other value. + + If a management station sets this object to the + value deleteTCB(12), then this has the effect of + deleting the TCB (as defined in RFC 793) of the + corresponding connection on the managed node, + resulting in immediate termination of the + connection. + + As an implementation-specific option, a RST + segment may be sent from the managed node to the + other TCP endpoint (note however that RST segments + are not sent reliably)." + ::= { tcpConnEntry 1 } + + tcpConnLocalAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The local IP address for this TCP connection. In + the case of a connection in the listen state which + is willing to accept connections for any IP + interface associated with the node, the value + 0.0.0.0 is used." + ::= { tcpConnEntry 2 } + + tcpConnLocalPort OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The local port number for this TCP connection." + ::= { tcpConnEntry 3 } + + tcpConnRemAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The remote IP address for this TCP connection." + ::= { tcpConnEntry 4 } + + tcpConnRemPort OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The remote port number for this TCP connection." + ::= { tcpConnEntry 5 } + + + -- additional TCP objects + + tcpInErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of segments received in error + (e.g., bad TCP checksums)." + ::= { tcp 14 } + + tcpOutRsts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of TCP segments sent containing the + RST flag." + ::= { tcp 15 } + + + -- the UDP group + + -- Implementation of the UDP group is mandatory for all + -- systems which implement the UDP. + + udpInDatagrams OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of UDP datagrams delivered to + UDP users." + ::= { udp 1 } + + udpNoPorts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of received UDP datagrams for + which there was no application at the destination + port." + ::= { udp 2 } + + udpInErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of received UDP datagrams that could + not be delivered for reasons other than the lack + of an application at the destination port." + ::= { udp 3 } + + + udpOutDatagrams OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of UDP datagrams sent from this + entity." + ::= { udp 4 } + + + -- the UDP Listener table + + -- The UDP listener table contains information about this + -- entity's UDP end-points on which a local application is + -- currently accepting datagrams. + + udpTable OBJECT-TYPE + SYNTAX SEQUENCE OF UdpEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table containing UDP listener information." + ::= { udp 5 } + + udpEntry OBJECT-TYPE + SYNTAX UdpEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about a particular current UDP + listener." + INDEX { udpLocalAddress, udpLocalPort } + ::= { udpTable 1 } + + UdpEntry ::= + SEQUENCE { + udpLocalAddress + IpAddress, + udpLocalPort + INTEGER (0..65535) + } + + udpLocalAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The local IP address for this UDP listener. In + the case of a UDP listener which is willing to + accept datagrams for any IP interface associated + with the node, the value 0.0.0.0 is used." + ::= { udpEntry 1 } + + udpLocalPort OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The local port number for this UDP listener." + ::= { udpEntry 2 } + + + -- the EGP group + + -- Implementation of the EGP group is mandatory for all + -- systems which implement the EGP. + + egpInMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of EGP messages received without + error." + ::= { egp 1 } + + egpInErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of EGP messages received that proved + to be in error." + ::= { egp 2 } + + egpOutMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of locally generated EGP + messages." + ::= { egp 3 } + + egpOutErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of locally generated EGP messages not + sent due to resource limitations within an EGP + entity." + ::= { egp 4 } + + + -- the EGP Neighbor table + + -- The EGP neighbor table contains information about this + -- entity's EGP neighbors. + + egpNeighTable OBJECT-TYPE + SYNTAX SEQUENCE OF EgpNeighEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The EGP neighbor table." + ::= { egp 5 } + + egpNeighEntry OBJECT-TYPE + SYNTAX EgpNeighEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about this entity's relationship with + a particular EGP neighbor." + INDEX { egpNeighAddr } + ::= { egpNeighTable 1 } + + EgpNeighEntry ::= + SEQUENCE { + egpNeighState + INTEGER, + egpNeighAddr + IpAddress, + egpNeighAs + INTEGER, + egpNeighInMsgs + Counter, + egpNeighInErrs + Counter, + egpNeighOutMsgs + Counter, + egpNeighOutErrs + Counter, + egpNeighInErrMsgs + Counter, + egpNeighOutErrMsgs + Counter, + egpNeighStateUps + Counter, + egpNeighStateDowns + Counter, + egpNeighIntervalHello + INTEGER, + egpNeighIntervalPoll + INTEGER, + egpNeighMode + INTEGER, + egpNeighEventTrigger + INTEGER + } + + egpNeighState OBJECT-TYPE + SYNTAX INTEGER { + idle(1), + acquisition(2), + down(3), + up(4), + cease(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The EGP state of the local system with respect to + this entry's EGP neighbor. Each EGP state is + represented by a value that is one greater than + the numerical value associated with said state in + RFC 904." + ::= { egpNeighEntry 1 } + + egpNeighAddr OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IP address of this entry's EGP neighbor." + ::= { egpNeighEntry 2 } + + egpNeighAs OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The autonomous system of this EGP peer. Zero + should be specified if the autonomous system + number of the neighbor is not yet known." + ::= { egpNeighEntry 3 } + + egpNeighInMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of EGP messages received without error + from this EGP peer." + ::= { egpNeighEntry 4 } + + egpNeighInErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of EGP messages received from this EGP + peer that proved to be in error (e.g., bad EGP + checksum)." + ::= { egpNeighEntry 5 } + + egpNeighOutMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of locally generated EGP messages to + this EGP peer." + ::= { egpNeighEntry 6 } + + egpNeighOutErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of locally generated EGP messages not + sent to this EGP peer due to resource limitations + within an EGP entity." + ::= { egpNeighEntry 7 } + + egpNeighInErrMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of EGP-defined error messages received + from this EGP peer." + ::= { egpNeighEntry 8 } + + egpNeighOutErrMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of EGP-defined error messages sent to + this EGP peer." + ::= { egpNeighEntry 9 } + + egpNeighStateUps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of EGP state transitions to the UP + state with this EGP peer." + ::= { egpNeighEntry 10 } + + egpNeighStateDowns OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of EGP state transitions from the UP + state to any other state with this EGP peer." + ::= { egpNeighEntry 11 } + + egpNeighIntervalHello OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The interval between EGP Hello command + retransmissions (in hundredths of a second). This + represents the t1 timer as defined in RFC 904." + ::= { egpNeighEntry 12 } + + egpNeighIntervalPoll OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The interval between EGP poll command + retransmissions (in hundredths of a second). This + represents the t3 timer as defined in RFC 904." + ::= { egpNeighEntry 13 } + + egpNeighMode OBJECT-TYPE + SYNTAX INTEGER { active(1), passive(2) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The polling mode of this EGP entity, either + passive or active." + ::= { egpNeighEntry 14 } + + egpNeighEventTrigger OBJECT-TYPE + SYNTAX INTEGER { start(1), stop(2) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A control variable used to trigger operator- + initiated Start and Stop events. When read, this + variable always returns the most recent value that + egpNeighEventTrigger was set to. If it has not + been set since the last initialization of the + network management subsystem on the node, it + returns a value of `stop'. + + When set, this variable causes a Start or Stop + event on the specified neighbor, as specified on + pages 8-10 of RFC 904. Briefly, a Start event + causes an Idle peer to begin neighbor acquisition + and a non-Idle peer to reinitiate neighbor + acquisition. A stop event causes a non-Idle peer + to return to the Idle state until a Start event + occurs, either via egpNeighEventTrigger or + otherwise." + ::= { egpNeighEntry 15 } + + + -- additional EGP objects + + egpAs OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The autonomous system number of this EGP entity." + ::= { egp 6 } + + + + -- the Transmission group + + -- Based on the transmission media underlying each interface + -- on a system, the corresponding portion of the Transmission + -- group is mandatory for that system. + + -- When Internet-standard definitions for managing + -- transmission media are defined, the transmission group is + -- used to provide a prefix for the names of those objects. + + -- Typically, such definitions reside in the experimental + -- portion of the MIB until they are "proven", then as a + -- part of the Internet standardization process, the + -- definitions are accordingly elevated and a new object + -- identifier, under the transmission group is defined. By + -- convention, the name assigned is: + -- + -- type OBJECT IDENTIFIER ::= { transmission number } + -- + -- where "type" is the symbolic value used for the media in + -- the ifType column of the ifTable object, and "number" is + -- the actual integer value corresponding to the symbol. + + + -- the SNMP group + + -- Implementation of the SNMP group is mandatory for all + -- systems which support an SNMP protocol entity. Some of + -- the objects defined below will be zero-valued in those + -- SNMP implementations that are optimized to support only + -- those functions specific to either a management agent or + -- a management station. In particular, it should be + -- observed that the objects below refer to an SNMP entity, + -- and there may be several SNMP entities residing on a + -- managed node (e.g., if the node is hosting acting as + -- a management station). + + snmpInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of Messages delivered to the + SNMP entity from the transport service." + ::= { snmp 1 } + + snmpOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Messages which were + passed from the SNMP protocol entity to the + transport service." + ::= { snmp 2 } + + snmpInBadVersions OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Messages which were + delivered to the SNMP protocol entity and were for + an unsupported SNMP version." + ::= { snmp 3 } + + snmpInBadCommunityNames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Messages delivered to + the SNMP protocol entity which used a SNMP + community name not known to said entity." + ::= { snmp 4 } + + snmpInBadCommunityUses OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Messages delivered to + the SNMP protocol entity which represented an SNMP + operation which was not allowed by the SNMP + community named in the Message." + ::= { snmp 5 } + + snmpInASNParseErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of ASN.1 or BER errors + encountered by the SNMP protocol entity when + decoding received SNMP Messages." + ::= { snmp 6 } + + + -- { snmp 7 } is not used + + snmpInTooBigs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `tooBig'." + ::= { snmp 8 } + + snmpInNoSuchNames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `noSuchName'." + ::= { snmp 9 } + + snmpInBadValues OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `badValue'." + ::= { snmp 10 } + + snmpInReadOnlys OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number valid SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `readOnly'. It should be noted that it is a + protocol error to generate an SNMP PDU which + contains the value `readOnly' in the error-status + field, as such this object is provided as a means + of detecting incorrect implementations of the + SNMP." + ::= { snmp 11 } + + snmpInGenErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `genErr'." + ::= { snmp 12 } + + snmpInTotalReqVars OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of MIB objects which have been + retrieved successfully by the SNMP protocol entity + as the result of receiving valid SNMP Get-Request + and Get-Next PDUs." + ::= { snmp 13 } + + snmpInTotalSetVars OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of MIB objects which have been + altered successfully by the SNMP protocol entity + as the result of receiving valid SNMP Set-Request + PDUs." + ::= { snmp 14 } + + snmpInGetRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Get-Request PDUs which + have been accepted and processed by the SNMP + protocol entity." + ::= { snmp 15 } + + snmpInGetNexts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Get-Next PDUs which have + been accepted and processed by the SNMP protocol + entity." + ::= { snmp 16 } + + snmpInSetRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Set-Request PDUs which + have been accepted and processed by the SNMP + protocol entity." + ::= { snmp 17 } + + snmpInGetResponses OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Get-Response PDUs which + have been accepted and processed by the SNMP + protocol entity." + ::= { snmp 18 } + + snmpInTraps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Trap PDUs which have + been accepted and processed by the SNMP protocol + entity." + ::= { snmp 19 } + + snmpOutTooBigs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP PDUs which were + generated by the SNMP protocol entity and for + which the value of the error-status field is + `tooBig.'" + ::= { snmp 20 } + + + snmpOutNoSuchNames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP PDUs which were + generated by the SNMP protocol entity and for + which the value of the error-status is + `noSuchName'." + ::= { snmp 21 } + + snmpOutBadValues OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP PDUs which were + generated by the SNMP protocol entity and for + which the value of the error-status field is + `badValue'." + ::= { snmp 22 } + + -- { snmp 23 } is not used + + snmpOutGenErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP PDUs which were + generated by the SNMP protocol entity and for + which the value of the error-status field is + `genErr'." + ::= { snmp 24 } + + snmpOutGetRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Get-Request PDUs which + have been generated by the SNMP protocol entity." + ::= { snmp 25 } + + snmpOutGetNexts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Get-Next PDUs which have + been generated by the SNMP protocol entity." + ::= { snmp 26 } + + snmpOutSetRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Set-Request PDUs which + have been generated by the SNMP protocol entity." + ::= { snmp 27 } + + snmpOutGetResponses OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Get-Response PDUs which + have been generated by the SNMP protocol entity." + ::= { snmp 28 } + + snmpOutTraps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Trap PDUs which have + been generated by the SNMP protocol entity." + ::= { snmp 29 } + + snmpEnableAuthenTraps OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Indicates whether the SNMP agent process is + permitted to generate authentication-failure + traps. The value of this object overrides any + configuration information; as such, it provides a + means whereby all authentication-failure traps may + be disabled. + + Note that it is strongly recommended that this + object be stored in non-volatile memory so that it + remains constant between re-initializations of the + network management system." + ::= { snmp 30 } + +END diff --git a/tests/lib/SnmpHelper.py b/tests/lib/SnmpHelper.py new file mode 100644 index 00000000..ced392aa --- /dev/null +++ b/tests/lib/SnmpHelper.py @@ -0,0 +1,132 @@ +# Copyright (c) 2019 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. + +import os +import json +import re + + +if __name__ == '__main__': + # this allows it to run as a standalone module (i.e. python tests/lib/SnmpHelper.py) + # forces the import of the global logging not the local one + # for this part to be removed we need to rename the local logging.py + # or move this module elsewhere + import sys + sys.path.insert(0, '/usr/lib/python2.7/') + import logging + +from pysmi.reader import FileReader, HttpReader +from pysmi.searcher import StubSearcher +from pysmi.writer import CallbackWriter +from pysmi.parser import SmiStarParser +from pysmi.codegen import JsonCodeGen +from pysmi.compiler import MibCompiler + +class SnmpMibs(object): + """ + Look up specific ASN.1 MIBs at configured Web and FTP sites, + compile them into JSON documents and print them out to stdout. + Try to support both SMIv1 and SMIv2 flavors of SMI as well as + popular deviations from official syntax found in the wild. + Source: + http://snmplabs.com/pysmi/examples/download-and-compile-smistar-mibs-into-json.html + + DEBUG: + BFT_DEBUG=y shows which mib module is being parsed + BFT_DEBUG=yy VERY verbose, shows the compiled dictionary and + mibs/oid details + """ + dbg = None + mib_dict = {} + + def __init__(self, mib_list, src_dir_list, http_sources=None): + if "BFT_DEBUG" in os.environ: + self.dbg = os.environ.get('BFT_DEBUG') + else: + self.dbg = "" + + if "yy" in self.dbg: + # VERY verbose, but essential for spotting + # possible ASN.1 errors + from pysmi import debug + debug.setLogger(debug.Debug('reader', 'compiler')) + + # Initialize compiler infrastructure + mibCompiler = MibCompiler( + SmiStarParser(), JsonCodeGen(), CallbackWriter(self.callback_func) + ) + + # search for source MIBs here + mibCompiler.addSources(*[FileReader(x) for x in src_dir_list]) + + if http_sources: + # search for source MIBs at Web sites + mibCompiler.addSources(*[HttpReader(*x) for x in http_sources]) + + # never recompile MIBs with MACROs + mibCompiler.addSearchers(StubSearcher(*JsonCodeGen.baseMibs)) + + # run recursive MIB compilation + results = mibCompiler.compile(*mib_list) + + def callback_func(self, mibName, jsonDoc, cbCtx): + if "y" in self.dbg: + print('# MIB module %s' % mibName) + + for k,v in json.loads(jsonDoc).iteritems(): + if "oid" in v: + if "objects" in v or "revisions" in v: + # we want to skip objects that have no use + continue + # add it to my dict + if "yy" in self.dbg: + print "adding %s:{%s}" %(k, v) + self.mib_dict[k] = v + if "yy" in self.dbg: + print (json.dumps(self.mib_dict, indent=4)) + + def get_dict_mib(self): + return self.mib_dict + + def get_mib_oid(self, mib_name): + """ + Given a mib name, returns the OID, None if not found + """ + oid = None + try: + oid = self.mib_dict[mib_name]['oid'] + except: + if "y" in self.dbg: + print "ERROR: mib \'%s\' not found"%mib_name + pass + return oid.encode('ascii','ignore') + +############################################################################################## + +if __name__ == '__main__': + + # this section can be used to test the classes above + # (maybe by redirecting the output to a file) + # BUT for this to run as a standalone file, it needs an + # absolute import (see the file import section) + + location = None + + if len(sys.argv) < 3: + if len(sys.argv) == 1: + print "Using default values from unit test: %s"%(SnmpMibsUnitTest.srcDirectories) + else: + print "Usage:\n%s <path_to_global_mibs> [<path_to_vendor_mibs>]"%sys.argv[0] + sys.exit(1) + else: + print 'sys.argv='+sys.argv + location = sys.argv + + unit_test = SnmpMibsUnitTest(mibs_location=location) + assert (unit_test.unitTest()) + + print 'Done.' diff --git a/tests/lib/common.py b/tests/lib/common.py index 3f7bdb7f..07f5b57d 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -428,20 +428,31 @@ def snmp_mib_set(device, board, iface_ip, mib_name, index, set_type, set_value, device.expect(device.prompt) return snmp_out -def snmp_mib_get(device, board, iface_ip, mib_name, index, timeout=10, retry=3, community='private'): +def snmp_mib_get(device, parser, iface_ip, mib_name, index, timeout=10, retry=3, community='private'): """ Name: snmp_mib_get Purpose: get the value of mibs via snmp - Input: wan, board, prompt, wan_ip, mib_name, index + Input: wan, board/snmpParser, prompt, wan_ip, mib_name, index Output: get value mib_name has to be passed with name of the mib, index is query index - Usage: snmp_mib_set(wan, board, board.wan_iface, "wifiMgmtBssSecurityMode", "32") + Usage: snmp_mib_set(wan, board/snmpParser, board.wan_iface, "wifiMgmtBssSecurityMode", "32") """ - match = re.search("\d+.(.*)",board.mib[mib_name]) - mib_oid = match.group(1)+'.'+index time_out = (timeout*retry)+30 - device.sendline("snmpget -v 2c -c "+community+" -t " +str(timeout)+ " -r "+str(retry)+" "+iface_ip+" "+board.mib[mib_name]+"."+str(index)) - idx = device.expect(['Timeout: No Response from'] + ['iso\.'+mib_oid+'\s+\=\s+\S+\:\s+(.*)\r\n'] + device.prompt, timeout=time_out) + extra_arg = '' + + # this should allow for legacy behaviour (with board passed in) + try: + match = re.search("\d+.(.*)",parser.mib[mib_name]) + mib_oid = 'iso\.' + match.group(1) + '.'+index + oid = parser.mib[mib_name] + except: + extra_arg = ' -On ' + oid = parser.get_mib_oid(mib_name) + mib_oid = oid + '.'+index + escaped_oid = re.escape(oid) + '\.' + str(index) + + device.sendline("snmpget -v 2c " + extra_arg + " -c "+community+" -t " +str(timeout)+ " -r "+str(retry)+" "+iface_ip+" "+ oid +"."+str(index)) + idx = device.expect(['Timeout: No Response from'] + [mib_oid+'\s+\=\s+\S+\:\s+(.*)\r\n'] + device.prompt, timeout=time_out) assert idx==1,"Getting the mib %s"% mib_name snmp_out = device.match.group(1) device.expect(device.prompt) diff --git a/tests/lib/installers.py b/tests/lib/installers.py index 94e4c5f2..a7d9fa72 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -282,6 +282,24 @@ def install_xampp(device): device.sendline('touch /opt/lampp/htdocs/test.txt') device.expect(device.prompt, timeout=120) +def install_snmpd(device, post_cmd=None): + ''' + Install snmpd, use the 'post_cmd' to edit /etc/snmp/snmpd.conf + (or for whatever is needed just after the installation) + ''' + device.sendline('apt update && apt install snmpd -y') + device.expect(device.prompt, timeout=60) + + # by default snmpd only listen to connections from localhost, comment it out + device.sendline("sed 's/agentAddress udp:127.0.0.1:161/#agentAddress udp:127.0.0.1:161/' -i /etc/snmp/snmpd.conf") + device.expect(device.prompt) + + if post_cmd: + device.sendline(post_cmd) + device.expect(device.prompt) + device.sendline('service snmpd restart') + device.expect(device.prompt) + def install_snmp(device): '''Install snmp if not present.''' device.sendline('\nsnmpget --version') @@ -290,7 +308,7 @@ def install_snmp(device): device.expect(device.prompt) except: device.expect(device.prompt) - device.sendline('apt-get install snmp -y') + device.sendline('apt update && apt-get install snmp -y') device.expect(device.prompt, timeout=60) def install_vsftpd(device): diff --git a/tests/selftest.py b/tests/selftest.py index ad4c7545..65c6b3d9 100644 --- a/tests/selftest.py +++ b/tests/selftest.py @@ -5,7 +5,9 @@ import string import os import tempfile -from devices import board, wan, lan, wlan, prompt, common +from lib import SnmpHelper + +from devices import board, wan, lan, wlan, common ''' This file can bu used to add unit tests that @@ -248,3 +250,148 @@ def runTest(self): lan.expect(lan.prompt) print 'Test Passed' +class SnmpMibsUnitTest(object): + """ + Unit test for the SnmpMibs class. + Check for correct and incorrect mibs. + Default assumes the .mib files are in $USER/.snmp + DEBUG: + BFT_DEBUG=y shows the compiled dictionary + BFT_DEBUG=yy VERY verbose, shows the compiled dictionary and + mibs/oid details + """ + error_mibs = ['SsnmpEngineMaxMessageSize', # mispelled MUST fail + 'nonExistenMib', # this one MUST fail + 'ifCounterDiscontinuityTimeQ'] # mispelled MUST fail + + mibs = ['docsDevSwAdminStatus', + 'snmpEngineMaxMessageSize', + error_mibs[0], + 'docsDevServerDhcp', + 'ifCounterDiscontinuityTime', + error_mibs[1], + 'docsBpi2CmtsMulticastObjects', + error_mibs[2]] + + mib_files = ['DOCS-CABLE-DEVICE-MIB', 'DOCS-IETF-BPI2-MIB'] # this is the list of mib/txt files to be compiled + srcDirectories = ['/tmp/boardfarm-docsis/mibs'] # this needs to point to the mibs directory location + snmp_obj = None # will hold an instance of the SnmpMibs class + + def __init__(self,mibs_location=None, files=None, mibs=None, err_mibs=None): + """ + Takes: + mibs_location: where the .mib files are located (can be a list of dirs) + files: the name of the .mib/.txt files (without the extension) + mibs: e.g. sysDescr, sysObjectID, etc + err_mibs: wrong mibs (just for testing that the compiler rejects invalid mibs) + """ + + # where the .mib files are located + if mibs_location: + self.srcDirectories = mibs_location + + if type(self.srcDirectories) != list: + self.srcDirectories = [self.srcDirectories] + + for d in self.srcDirectories: + if not os.path.exists(str(d)): + msg = 'No mibs directory {} found test_SnmpHelper.'.format(str(self.srcDirectories)) + raise Exception(msg) + + if files: + self.mib_files = files + + self.snmp_obj = SnmpHelper.SnmpMibs(self.mib_files, self.srcDirectories) + + if mibs: + self.mibs = mibs + self.error_mibs = err_mibs + + if type(self.mibs) != list: + self.mibs = [self.mibs] + + def unitTest(self): + """ + Compiles the ASN1 and gets the oid of the given mibs + Asserts on failure + """ + + if 'y' in self.snmp_obj.dbg: + print(self.snmp_obj.mib_dict) + for k in self.snmp_obj.mib_dict: + print (k, ":", self.snmp_obj.mib_dict[k]) + + print("Testing get mib oid") + + for i in self.mibs: + try: + oid = self.snmp_obj.get_mib_oid(i) + print 'mib: %s - oid=%s'%(i, oid) + except Exception as e: + #we shoudl NOT find only the errored mibs, all other mibs MUST be found + assert(i in self.error_mibs), "Failed to get oid for mib: " + i + print "Failed to get oid for mib: %s (expected)"%i + if (self.error_mibs is not None): + self.error_mibs.remove(i) + + # the unit test must find all the errored mibs! + if (self.error_mibs is not None): + assert (self.error_mibs == []), "The test missed the following mibs: %s"%str(self.error_mibs) + return True + +class selftest_test_SnmpHelper(rootfs_boot.RootFSBootTest): + ''' + Tests the SnmpHelper module: + 1. compiles and get the oid of some sample mibs + 2. performs an snmp get from the lan to the wan + using hte compiled oids + ''' + + def runTest(self): + + from lib.installers import install_snmp, install_snmpd + from lib.common import snmp_mib_get + + wrong_mibs = ['PsysDescr', 'sys123ObjectID', 'sysServiceS'] + linux_mibs = ['sysDescr',\ + 'sysObjectID',\ + 'sysServices',\ + 'sysName',\ + 'sysServices',\ + 'sysUpTime'] + + test_mibs = [linux_mibs[0], wrong_mibs[0],\ + linux_mibs[1], wrong_mibs[1],\ + linux_mibs[2], wrong_mibs[2]] + + + unit_test = SnmpMibsUnitTest(mibs_location = './resources/mibs', + files = ['SNMPv2-MIB'], + mibs = test_mibs, + err_mibs = wrong_mibs) + assert (unit_test.unitTest()) + + install_snmpd(wan) + + lan.sendline('echo "nameserver 8.8.8.8" >> /etc/resolv.conf') + lan.expect(lan.prompt) + + install_snmp(lan) + wan_iface_ip = wan.get_interface_ipaddr(wan.iface_dut) + + for mib in linux_mibs: + try: + result = snmp_mib_get(lan, + unit_test.snmp_obj, + str(wan_iface_ip), + mib, + '0', + community='public') + + print 'snmpget({})@{}={}'.format(mib, wan_iface_ip, result) + except Exception as e: + print 'Failed on snmpget {} '.format(mib) + print(e) + raise e + + print("Test passed") diff --git a/testsuites.cfg b/testsuites.cfg index 739af1a8..29a02281 100644 --- a/testsuites.cfg +++ b/testsuites.cfg @@ -129,6 +129,7 @@ MemoryUse selftest_test_copy_file_to_server selftest_test_create_session selftest_testing_linuxdevice_functions +selftest_test_SnmpHelper [travisci] RootFSBootTest From 5033da2f4c51c7a8a8ca0b459f8ab30480d694ef Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Thu, 4 Jul 2019 10:19:08 +0200 Subject: [PATCH 895/947] deploy-boardfarm-nodes: stty columns in container It has happened that on creating a container the $COLUNMS value is 80 which is too small and on long commands has the cli wrap onto itself. This patch sets the $COLUNMS value to 200. Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: Ia226030e0eaf4b007af24df0815ca3a36798a9f8 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/460438 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- deploy-boardfarm-nodes.sh | 2 ++ devices/debian.py | 5 +++++ devices/linux.py | 5 +++++ 3 files changed, 12 insertions(+) diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh index 612c564e..440d6ba8 100755 --- a/deploy-boardfarm-nodes.sh +++ b/deploy-boardfarm-nodes.sh @@ -81,6 +81,8 @@ create_container_stub () { -d $BF_IMG /usr/sbin/sshd -D cspace=$(docker inspect --format '{{.State.Pid}}' $cname) + # this should avoid the cli wrapping onto itself + docker exec $cname bash -c 'echo "stty columns 200" >> /root/.bashrc' sudo ip link set netns $cspace dev $ifacedut docker exec $cname ip link set $ifacedut name eth1 docker exec $cname ip link set dev eth1 address $(random_private_mac $vlan) diff --git a/devices/debian.py b/devices/debian.py index 2fc391af..c4acf26e 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -116,6 +116,7 @@ def __init__(self, self.lan_gateway = lan_gateway self.tftp_device = self + # we need to pick a non-conflicting private network here # also we want it to be consistant and not random for a particular # board @@ -186,6 +187,10 @@ def __init__(self, if i < 4: self.expect(self.prompt) + # attempts to fix the cli colums size + self.set_cli_size(200) + + if ipaddr is None: self.sendline('hostname') self.expect('hostname') diff --git a/devices/linux.py b/devices/linux.py index 9762efa6..a80bb1f5 100644 --- a/devices/linux.py +++ b/devices/linux.py @@ -191,3 +191,8 @@ def sudo_sendline(self, cmd): self.sendline(self.password) self.expect(self.prompt) super(LinuxDevice, self).sendline(cmd) + + def set_cli_size(self, columns): + '''Set the terminal colums value''' + self.sendline('stty columns %s'%str(columns)) + self.expect(self.prompt) From 1b8f0f3ddacd569cf2f96886fcb575d637389f20 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Fri, 26 Jul 2019 11:32:54 -0500 Subject: [PATCH 896/947] tests: Replace wan/lan 'eth1' with wan/lan.iface_dut Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I9e81edb12b43269ed8878900a022aff31e9f7043 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463340 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/bridge_mode.py | 2 +- tests/cdrouter_bootstrap.py | 8 ++++---- tests/iperf_test.py | 4 ++-- tests/iperf_udp_test.py | 2 +- tests/ipv6_setup.py | 12 ++++++------ tests/netperf_reverse_test.py | 2 +- tests/netperf_udp_test.py | 2 +- tests/screenshot_gui.py | 2 +- tests/selftest.py | 4 ++-- tests/socat.py | 6 +++--- tests/tcpdump.py | 2 +- 11 files changed, 23 insertions(+), 23 deletions(-) diff --git a/tests/bridge_mode.py b/tests/bridge_mode.py index 94bbda88..84c9070c 100644 --- a/tests/bridge_mode.py +++ b/tests/bridge_mode.py @@ -55,5 +55,5 @@ def runTest(self): board.network_restart() board.firewall_restart() - lan.sendline('ifconfig eth1 192.168.0.2') + lan.sendline('ifconfig %s 192.168.0.2' % lan.iface_dut) lan.expect(prompt) diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 1abfad32..6f35e4d4 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -49,11 +49,11 @@ def runTest(self): if self.cdrouter_server is None: self.skipTest("No cdrouter server specified") - lan.sendline('ifconfig eth1 down') + lan.sendline('ifconfig %s down' % lan.iface_dut) lan.expect(prompt) if not board.has_cmts: - wan.sendline('ifconfig eth1 down') + wan.sendline('ifconfig %s down' % wan.iface_dut) wan.expect(prompt) c = CDRouter(self.cdrouter_server) @@ -110,7 +110,7 @@ def runTest(self): if d.vlan == 0: d.sendline('cat /proc/net/vlan/config') d.expect_exact('cat /proc/net/vlan/config') - if 0 == d.expect([pexpect.TIMEOUT, 'eth1.*\|\s([0-9]+).*\|'], timeout=5): + if 0 == d.expect([pexpect.TIMEOUT, '%s.*\|\s([0-9]+).*\|' % d.iface_dut], timeout=5): d.vlan = 0 else: d.vlan = d.match.group(1) @@ -313,7 +313,7 @@ def recover(self): self.results.stop(self.job_id) # TODO: full recovery... for d in [wan,lan]: - d.sendline('ifconfig eth1 up') + d.sendline('ifconfig %s up' % d.iface_dut) d.expect(prompt) # make sure board is back in a sane state diff --git a/tests/iperf_test.py b/tests/iperf_test.py index f7675f1b..6ff0a8fb 100644 --- a/tests/iperf_test.py +++ b/tests/iperf_test.py @@ -73,7 +73,7 @@ def server_opts_forward(self): def server_opts_reverse(self, node=lan): try: - lan_priv_ip = node.get_interface_ipaddr("eth1") + lan_priv_ip = node.get_interface_ipaddr(lan.iface_dut) except: lan_priv_ip = node.get_interface_ipaddr("wlan0") board.uci_forward_traffic_redirect("tcp", "5001", lan_priv_ip) @@ -342,7 +342,7 @@ def runTest(self): if not wlan: self.skipTest("skipping test no wlan") - self.fip = lan.get_interface_ipaddr("eth1") + self.fip = lan.get_interface_ipaddr(lan.iface_dut) self.rip = wlan.get_interface_ipaddr("wlan0") wlan.sendline('iwconfig') diff --git a/tests/iperf_udp_test.py b/tests/iperf_udp_test.py index 7d6b26c2..aadf2384 100644 --- a/tests/iperf_udp_test.py +++ b/tests/iperf_udp_test.py @@ -73,7 +73,7 @@ def server_opts_forward(self): def server_opts_reverse(self, node=lan): try: - lan_priv_ip = node.get_interface_ipaddr("eth1") + lan_priv_ip = node.get_interface_ipaddr(lan.iface_dut) except: lan_priv_ip = node.get_interface_ipaddr("wlan0") board.uci_forward_traffic_redirect("udp", "5001", lan_priv_ip) diff --git a/tests/ipv6_setup.py b/tests/ipv6_setup.py index 948e87c8..37cf63ea 100644 --- a/tests/ipv6_setup.py +++ b/tests/ipv6_setup.py @@ -37,22 +37,22 @@ def runTest(self): board.expect(prompt) board.network_restart() # Lan-side Device - lan.sendline('\nip -6 addr add 4aaa::6/64 dev eth1') + lan.sendline('\nip -6 addr add 4aaa::6/64 dev %s' % lan.iface_dut) lan.expect('ip -6') lan.expect(prompt) - lan.sendline('ip -6 route add 4aaa::1 dev eth1') + lan.sendline('ip -6 route add 4aaa::1 dev %s' % lan.iface_dut) lan.expect(prompt) - lan.sendline('ip -6 route add default via 4aaa::1 dev eth1') + lan.sendline('ip -6 route add default via 4aaa::1 dev %s' % lan.iface_dut) lan.expect(prompt) if 'No route to host' in lan.before: raise Exception('Error setting ivp6 routes') # Wan-side Device - wan.sendline('\nip -6 addr add 5aaa::6/64 dev eth1') + wan.sendline('\nip -6 addr add 5aaa::6/64 dev %s' % wan.iface_dut) wan.expect('ip -6') wan.expect(prompt) - wan.sendline('ip -6 route add 5aaa::1 dev eth1') + wan.sendline('ip -6 route add 5aaa::1 dev %s' % wan.iface_dut) wan.expect(prompt) - wan.sendline('ip -6 route add default via 5aaa::1 dev eth1') + wan.sendline('ip -6 route add default via 5aaa::1 dev %s' % wan.iface_dut) wan.expect(prompt) if 'No route to host' in wan.before: raise Exception('Error setting ivp6 routes') diff --git a/tests/netperf_reverse_test.py b/tests/netperf_reverse_test.py index b60968e8..abf48534 100644 --- a/tests/netperf_reverse_test.py +++ b/tests/netperf_reverse_test.py @@ -18,7 +18,7 @@ class NetperfReverseTest(netperf_test.NetperfTest): '''Setup Netperf and Ran Reverse Throughput.''' def runTest(self): # setup port forwarding to lan netperf server - lan_priv_ip = lan.get_interface_ipaddr("eth1") + lan_priv_ip = lan.get_interface_ipaddr(lan.iface_dut) board.uci_forward_traffic_redirect("tcp", "12865", lan_priv_ip) # setup port for data socket separate from control port board.uci_forward_traffic_redirect("tcp", "12866", lan_priv_ip) diff --git a/tests/netperf_udp_test.py b/tests/netperf_udp_test.py index 67d25ea3..8d19d6d2 100644 --- a/tests/netperf_udp_test.py +++ b/tests/netperf_udp_test.py @@ -22,7 +22,7 @@ def runTest(self): self.run_netperf(lan, "192.168.0.1 -c -C -l 30 -t UDP_STREAM -- -m 1460 -M 1460") # setup port forwarding to lan netperf server - lan_priv_ip = lan.get_interface_ipaddr("eth1") + lan_priv_ip = lan.get_interface_ipaddr(lan.iface_dut) board.uci_forward_traffic_redirect("tcp", "12865", lan_priv_ip) # setup port for data socket separate from control port board.uci_forward_traffic_redirect("udp", "12866", lan_priv_ip) diff --git a/tests/screenshot_gui.py b/tests/screenshot_gui.py index 4ec626ce..efe72744 100644 --- a/tests/screenshot_gui.py +++ b/tests/screenshot_gui.py @@ -37,7 +37,7 @@ def start_browser(self): elif lan.ipaddr is not None: ip = lan.ipaddr lan.sendline('cat /proc/net/vlan/config') - lan.expect('eth1.*\|\s([0-9]+).*\|') + lan.expect('%s.*\|\s([0-9]+).*\|' % lan.iface_dut) port = 8000 + int(lan.match.group(1)) lan.expect(prompt) proxy = "%s:%s" % (ip, port) diff --git a/tests/selftest.py b/tests/selftest.py index 65c6b3d9..47f2ee6f 100644 --- a/tests/selftest.py +++ b/tests/selftest.py @@ -218,10 +218,10 @@ def runTest(self): lan.ip_neigh_flush() #set the link state up - lan.set_link_state("eth1", "up") + lan.set_link_state(lan.iface_dut, "up") #Checking the interface status - link = lan.is_link_up("eth1") + link = lan.is_link_up(lan.iface_dut) assert link != None, "Failed to check the link is up" #add sudo when the username is root diff --git a/tests/socat.py b/tests/socat.py index bb3898e5..a9d904ac 100644 --- a/tests/socat.py +++ b/tests/socat.py @@ -38,7 +38,7 @@ def startSingleFlow(self, mintime=1, maxtime=60): self.all_ips.append((random_ip, random_port)) # start listners - wan.sendline('ip addr add %s/32 dev eth1' % random_ip) + wan.sendline('ip addr add %s/32 dev %s' % (random_ip, wan.iface_dut)) wan.expect(prompt) random_rate = randint(1,1024) @@ -96,8 +96,8 @@ def runTest(self): self.recover() def cleanup_ip(self, ip): - wan.sendline('ip addr del %s/32 dev eth1' % ip) - wan.expect_exact('ip addr del %s/32 dev eth1' % ip) + wan.sendline('ip addr del %s/32 dev %s' % (ip, wan.iface_dut)) + wan.expect_exact('ip addr del %s/32 dev %s' % (ip, wan.iface_dut)) wan.expect(prompt) wan.sendline('pkill -9 -f socat.*bind=%s' % ip) wan.expect(prompt) diff --git a/tests/tcpdump.py b/tests/tcpdump.py index 60a733ca..6573a60f 100644 --- a/tests/tcpdump.py +++ b/tests/tcpdump.py @@ -16,7 +16,7 @@ class TCPDumpWANandLAN(rootfs_boot.RootFSBootTest): def runTest(self): for d in [wan, lan]: - d.sendline('tcpdump -i eth1 -w /tmp/tcpdump.pcap %s' % self.opts) + d.sendline('tcpdump -i %s -w /tmp/tcpdump.pcap %s' % (d.iface_dut, self.opts)) board.expect(pexpect.TIMEOUT, timeout=15) From 052e8892ee98aff0ad439f14642bfd19921f03a0 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 22 Jul 2019 14:42:49 -0500 Subject: [PATCH 897/947] tests: linux_boot: add helper to get a device by feature Move this here in a generic fashion so tests can reuse this Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ie3ec5567edef166a4aa22634733cd6d7bc2a66e9 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/462896 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/linux_boot.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/linux_boot.py b/tests/linux_boot.py index 415c8341..3a0c2d9a 100644 --- a/tests/linux_boot.py +++ b/tests/linux_boot.py @@ -175,3 +175,8 @@ def set_log_to_file(self, value): self._log_to_file = value log_to_file = property(get_log_to_file, set_log_to_file) + + def get_device_by_feature(self, feature): + for device in self.config.devices: + if 'feature' in device and feature in devices['feature']: + return getattr(self, device) From cb78a887d6df38f03a9afb295918386971d98c2d Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Fri, 26 Jul 2019 13:50:47 -0500 Subject: [PATCH 898/947] openwrt_router: Placeholder enable_mgmt_gui() Just making this have the needed parameters. Will have to write code or place in a more appropriate class in the future. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I4cd4d1944708fa2d028d1283846deb6d4a15d40d Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463355 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/openwrt_router.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 286e3c4e..5803e630 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -528,8 +528,8 @@ def get_user_id(self, user_id): self.expect(self.prompt) return 0 == idx - def enable_mgmt_gui(self): - pass + def enable_mgmt_gui(self, board, wan): + print('WARNING: Code not written for enable_mgmt_gui for this board type, %s' % self.model) def get_pp_dev(self): return self From f384e4f58e508784ef6e53e5c06ce1b2d6a85f7f Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Thu, 25 Jul 2019 12:35:00 -0500 Subject: [PATCH 899/947] Consistently use os.path in config.py This fix allowed me to run bft from other directories. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ibb6d03d018152191188e8f9692e41108dc2eaa2e Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463225 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- config.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/config.py b/config.py index 2ad751f6..c2eb1b9f 100644 --- a/config.py +++ b/config.py @@ -8,19 +8,23 @@ import os import sys +local_path = os.path.dirname(os.path.realpath(__file__)) + # Boardfarm configuration describes test stations - see boardfarm doc. # Can be local or remote file. -boardfarm_config_location = os.environ.get('BFT_CONFIG', 'boardfarm_config_example.json') +boardfarm_config_location = os.environ.get('BFT_CONFIG', os.path.join(local_path, 'boardfarm_config_example.json')) # Test Suite config files. Standard python config file format. -testsuite_config_files = [os.path.join(os.path.dirname(os.path.realpath(__file__)), 'testsuites.cfg'), ] +testsuite_config_files = [os.path.join(local_path, 'testsuites.cfg'), ] layerconfs = [] if 'BFT_OVERLAY' in os.environ: for overlay in os.environ['BFT_OVERLAY'].split(' '): - if os.path.isfile(overlay + '/testsuites.cfg'): - testsuite_config_files.append(overlay + '/testsuites.cfg') - if os.path.isfile(overlay + os.sep + "layerconf.py"): + testsuites_path = os.path.join(overlay, 'testsuites.cfg') + layerconf_path = os.path.join(overlay, 'layerconf.py') + if os.path.isfile(testsuites_path): + testsuite_config_files.append(testsuites_path) + if os.path.isfile(layerconf_path): sys.path.insert(0, overlay) import layerconf as tmp layerconfs.append((overlay, tmp)) From 9f6ccd098d47080972fe36a6e117f5448410c336 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 24 Jul 2019 17:02:03 -0500 Subject: [PATCH 900/947] devices: debian_isc: allow arbitrary order for DHCP starting messages This would fail if messages were emitted in wrong order: Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ia9e29b4dec5ea13b19de593fd7efeda0b84c71fc Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463109 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/debian_isc.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 815b6c06..be3e56c8 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -566,11 +566,19 @@ def _restart_dhcp_with_lock(self): do_ipv6 = False self.sendline('(flock -x 9; /etc/init.d/isc-dhcp-server restart; flock -u 9) 9>/etc/init.d/isc-dhcp-server.lock') - self.expect(['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*']) + matching = ['Starting ISC DHCP(v4)? server.*dhcpd.', 'Starting isc-dhcp-server.*'] + match_num = 1 if do_ipv6: - self.expect('Starting ISC DHCPv6 server: dhcpd(6)?.\r\n') + matching.append('Starting ISC DHCPv6 server: dhcpd(6)?.\r\n') + match_num += 1 else: print("NOTE: not starting IPv6 because this provisioner is not setup properly") + + for not_used in range(match_num): + self.expect(matching) + match_num -= 1 + + assert match_num == 0, "Incorrect number of DHCP servers started, something went wrong!" self.expect(self.prompt) self.sendline('rm /etc/init.d/isc-dhcp-server.lock') self.expect(self.prompt) From f1f21b29adbdde90b81d4c9426656641185d50ac Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Fri, 26 Jul 2019 18:24:35 -0500 Subject: [PATCH 901/947] zephyr: fix print statements No functional change. Part of Python 2 to 3 project. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I297308db9b0b5291f14bcf4c6bc381fb29fdef45 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463371 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- zephyr/zapi.py | 33 +++++++++++++++++---------------- zephyr/zephyr_reporter.py | 6 +++--- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/zephyr/zapi.py b/zephyr/zapi.py index 7f2ef0ad..c28c4f71 100644 --- a/zephyr/zapi.py +++ b/zephyr/zapi.py @@ -20,6 +20,7 @@ class Zapi(object): """Zephyr API interface""" + def __init__(self, project_id=None, version_id=None, @@ -96,11 +97,11 @@ def create_execution(self, test_id, assignee=None): auth=(self._usr, self._pwd)) data = loads(response.text) execution_id = dict(data).keys()[0] - #execution_id = "442290" + #execution_id = "442290" if response.status_code <> 200: - print ("WARNING: " + response.text) - print (req_url) - print (payload) + print("WARNING: " + response.text) + print(req_url) + print(payload) return execution_id def get_executions(self, test_id=None, assignee=None): @@ -113,9 +114,9 @@ def get_executions(self, test_id=None, assignee=None): } req_url = self._zapi_url + 'execution' response = get(req_url, - params=payload, - headers=self._zapi_hdr, - auth=(self._usr, self._pwd)) + params=payload, + headers=self._zapi_hdr, + auth=(self._usr, self._pwd)) data = loads(response.text) executions = data.get('executions') or [] return executions @@ -125,13 +126,13 @@ def set_execution_field(self, execution_id, field, value): data = {field: value} req_url = self._zapi_url + 'execution/' + execution_id + '/' response = post(req_url, - params=data, - headers=self._zapi_hdr, - auth=(self._usr, self._pwd)) + params=data, + headers=self._zapi_hdr, + auth=(self._usr, self._pwd)) if response.status_code <> 200: - print ("WARNING: " + response.text) - print (req_url) - print (data) + print("WARNING: " + response.text) + print(req_url) + print(data) return response def set_execution(self, exec_status, execution_id, comment="", status_code_dict=STATUS_CODE_DICT): @@ -144,7 +145,7 @@ def set_execution(self, exec_status, execution_id, comment="", status_code_dict= headers=self._zapi_hdr, auth=(self._usr, self._pwd)) if response.status_code <> 200: - print ("WARNING: " + response.text) - print (req_url) - print (data) + print("WARNING: " + response.text) + print(req_url) + print(data) return response diff --git a/zephyr/zephyr_reporter.py b/zephyr/zephyr_reporter.py index c6327fc4..494324a2 100644 --- a/zephyr/zephyr_reporter.py +++ b/zephyr/zephyr_reporter.py @@ -138,11 +138,11 @@ def update_zephyr(test_cases_list): for i in range(len(test_cases_list)): test_name = test_cases_list[i][0] - print "Test_name :" + test_name + print("Test_name :" + test_name) test_id = get_test_id_from_meta_file(z["metafile"], test_name) if test_id: - print "Found Test ID in Meta file : " + test_id + print("Found Test ID in Meta file : " + test_id) issue = jira.issue(test_id) else: continue @@ -152,7 +152,7 @@ def update_zephyr(test_cases_list): exec_id = reporter.create_execution(str(issue.id)) result = test_cases_list[i][1] - print "Test case Result: " + result + print("Test case Result: " + result) log_data = "sample log data" if result == 'FAIL': result = 'FAIL' From f70611e60ba26d344dec5a29ec117c9a33cf3770 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Fri, 26 Jul 2019 18:35:13 -0500 Subject: [PATCH 902/947] devices: fix print statements No functional change. Part of Python 2 to 3 project. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I9db48b53c5e92d4645d5e34460b97d6bd1bec00d Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463372 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/axiros_acs.py | 4 ++-- devices/casa_cmts.py | 2 +- devices/debian_isc.py | 4 ++-- devices/linux.py | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/devices/axiros_acs.py b/devices/axiros_acs.py index c8933813..800ab870 100755 --- a/devices/axiros_acs.py +++ b/devices/axiros_acs.py @@ -181,7 +181,7 @@ def Axiros_GetTicketValue(self, ticketid, wait=8): acs.Axiros_GetListOfCPEs() ret = acs.get('DEAP805811D5', 'Device.DeviceInfo.SoftwareVersion') - print ret + print(ret) ret = acs.get('DEAP805811D5', 'Device.WiFi.SSID.1.SSID') - print ret + print(ret) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index f6c19faf..81a5cec4 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -561,7 +561,7 @@ def get_center_freq(self, mac_domain=None): cmts = CasaCMTS(conn_cmd=sys.argv[1], connection_type=connection_type) if len(sys.argv) > 2 and sys.argv[2] == "setup_ipv6": - print "Setting up IPv6 address, bundles, routes, etc" + print("Setting up IPv6 address, bundles, routes, etc") cmts.set_iface_ipv6addr('gige 0', '2001:dead:beef:1::cafe/64') cmts.add_route6('::/0', '2001:dead:beef:1::1') # TODO: casa 3200 cmts only supports one ip bundle for ipv6.... diff --git a/devices/debian_isc.py b/devices/debian_isc.py index be3e56c8..c1f4888c 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -632,7 +632,7 @@ def get_conf_file_from_tftp(self, _tmpdir, board_config): pass try: - print 'Downloading '+server+':'+conf_file+' to '+dest_fname + print('Downloading '+server+':'+conf_file+' to '+dest_fname) from devices.common import scp_from scp_from(conf_file, server, self.tftp_device.username, self.tftp_device.password, self.tftp_device.port, dest_fname) @@ -641,7 +641,7 @@ def get_conf_file_from_tftp(self, _tmpdir, board_config): # exception, but the file is not where it should be!! print("Tftp completed but %s not found in destination dir: "% dest_fname) return False - print "Downloaded: "+conf_file + print("Downloaded: "+conf_file) except: print("Failed to download %s from %s"% (conf_file, self.ipaddr)) return False diff --git a/devices/linux.py b/devices/linux.py index a80bb1f5..32fe5e28 100644 --- a/devices/linux.py +++ b/devices/linux.py @@ -157,7 +157,7 @@ def gzip_str(string_): bin_file = binascii.hexlify(gzip_str(file.read())) if dst is None: dst = self.tftp_dir + '/' + os.path.basename(src) - print ("Copying %s to %s" % (src, dst)) + print("Copying %s to %s" % (src, dst)) saved_logfile_read = self.logfile_read self.logfile_read = None self.sendline('''cat << EOFEOFEOFEOF | xxd -r -p | gunzip > %s From 1c1e9d6ac1e68fec3a2eddc51707de1eec8692d1 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Fri, 26 Jul 2019 18:51:27 -0500 Subject: [PATCH 903/947] tests: fix print statements No functional change. Part of Python 2 to 3 project. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ia597ea935fb0d4b7a6df13df7c256877ae87523b Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463374 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/bittorrent.py | 4 ++-- tests/cdrouter_bootstrap.py | 8 ++++---- tests/concurrent_iperf.py | 2 +- tests/curl_https.py | 4 ++-- tests/interact.py | 4 ++-- tests/jmeter.py | 2 +- tests/latency_all.py | 8 ++++---- tests/nmap.py | 2 +- tests/screenshot_gui.py | 4 ++-- tests/selftest.py | 18 +++++++++--------- tests/socat.py | 10 +++++----- 11 files changed, 33 insertions(+), 33 deletions(-) diff --git a/tests/bittorrent.py b/tests/bittorrent.py index 570899ca..bdaccb2e 100644 --- a/tests/bittorrent.py +++ b/tests/bittorrent.py @@ -27,7 +27,7 @@ def runTest(self): #d.expect(prompt) sz, rate, ip, port = self.startSingleFlow() - print ("started UDP to %s:%s sz = %s, rate = %sk" % (ip, port, sz, rate)) + print("started UDP to %s:%s sz = %s, rate = %sk" % (ip, port, sz, rate)) time = sz / ( rate * 1024) print("time should be ~%s" % time) self.check_and_clean_ips() @@ -54,7 +54,7 @@ def runTest(self): for i in range(10000): sz, rate, ip, port = self.startSingleFlow(maxtime=maxtime) - print ("started UDP to %s:%s sz = %s, rate = %sk" % (ip, port, sz, rate)) + print("started UDP to %s:%s sz = %s, rate = %sk" % (ip, port, sz, rate)) time = sz / ( rate * 1024) print("time should be ~%s" % time) self.check_and_clean_ips() diff --git a/tests/cdrouter_bootstrap.py b/tests/cdrouter_bootstrap.py index 6f35e4d4..186a4ac1 100644 --- a/tests/cdrouter_bootstrap.py +++ b/tests/cdrouter_bootstrap.py @@ -93,7 +93,7 @@ def runTest(self): wandutmac = board.match.group() board.expect(prompt) - print ("Using %s for WAN mac address" % wandutmac) + print("Using %s for WAN mac address" % wandutmac) lan.vlan = wan.vlan = 0 for device in self.config.board['devices']: @@ -116,8 +116,8 @@ def runTest(self): d.vlan = d.match.group(1) d.expect(prompt) - print ("Using %s for WAN vlan" % wan.vlan) - print ("Using %s for LAN vlan" % lan.vlan) + print("Using %s for WAN vlan" % wan.vlan) + print("Using %s for LAN vlan" % lan.vlan) # TODO: move wan and lan interface to bft config? contents=""" @@ -289,7 +289,7 @@ def add_cdrouter_config(config): try: metric = c.results.get(result_id, test.name, "bandwidth") - print vars(metric) + print(vars(metric)) # TODO: decide how to export data to kibana except: # Not all tests have this metric, no other way? diff --git a/tests/concurrent_iperf.py b/tests/concurrent_iperf.py index 0f57d90d..2bdceb2e 100644 --- a/tests/concurrent_iperf.py +++ b/tests/concurrent_iperf.py @@ -48,7 +48,7 @@ def runTest(self): self.result_message = "iPerf Concurrent Connections failed entirely at %s (failed conns = %s)" % (prev_conn, prev_failed) break - print self.result_message + print(self.result_message) self.recover() diff --git a/tests/curl_https.py b/tests/curl_https.py index 33c0a244..bdd9de30 100644 --- a/tests/curl_https.py +++ b/tests/curl_https.py @@ -21,7 +21,7 @@ def runTest(self): board.sendline('curl ' + check) board.expect('<!DOCTYPE html>') board.expect(prompt) - print '\n\nCurl downloaded ' + check + ' as expected\n' + print('\n\nCurl downloaded ' + check + ' as expected\n') class CurlSSLBad(rootfs_boot.RootFSBootTest): '''Curl can't access https with bad signature.''' @@ -44,5 +44,5 @@ def runTest(self): board.sendline('curl ' + check[0]) board.expect(check[1]) board.expect(prompt) - print '\n\nCurl refused to download ' + check[0] + ' as expected\n' + print('\n\nCurl refused to download ' + check[0] + ' as expected\n') diff --git a/tests/interact.py b/tests/interact.py index 4e70c981..ae6ebe60 100644 --- a/tests/interact.py +++ b/tests/interact.py @@ -179,7 +179,7 @@ def runTest(self): i += 1 if key == str(i): - print "Enter python shell, press Ctrl-D to exit" + print("Enter python shell, press Ctrl-D to exit") try: from IPython import embed embed() @@ -192,7 +192,7 @@ def runTest(self): shell = code.InteractiveConsole(vars) shell.interact() except: - print "Unable to spawn interactive shell!" + print("Unable to spawn interactive shell!") continue i += 1 diff --git a/tests/jmeter.py b/tests/jmeter.py index 33d82254..bee3645d 100644 --- a/tests/jmeter.py +++ b/tests/jmeter.py @@ -77,7 +77,7 @@ def recover(self): lan.expect(prompt) board.touch() - print "Copying files from lan to dir = %s" % self.config.output_dir + print("Copying files from lan to dir = %s" % self.config.output_dir) lan.sendline('readlink -f $HOME/%s/' % self.dir) lan.expect_exact('$HOME/%s/' % self.dir) board.touch() diff --git a/tests/latency_all.py b/tests/latency_all.py index f94729e3..08974a37 100644 --- a/tests/latency_all.py +++ b/tests/latency_all.py @@ -23,7 +23,7 @@ def runTest(self): board.touch() - print "comparing " + d1.name + " to " + d2.name + print("comparing " + d1.name + " to " + d2.name) try: ip1 = d1.get_interface_ipaddr(d1.iface_dut) @@ -49,9 +49,9 @@ def parse_ping_times(string): if result is not float('nan'): results.append('latency from %s to %s = %s ms' % (d2.name, d1.name, str(result))) except: - print "failed to ping " + d1.name + " to " + d2.name + print("failed to ping " + d1.name + " to " + d2.name) continue - print "Results:" + print("Results:") for line in results: - print line + print(line) diff --git a/tests/nmap.py b/tests/nmap.py index e079c1f8..176aa741 100644 --- a/tests/nmap.py +++ b/tests/nmap.py @@ -50,7 +50,7 @@ def runTest(self): self.result_message = msg print("open ports = %s" % open_ports) if hasattr(board, 'wan_open_ports'): - print ("allowing open ports %s" % board.wan_open_ports) + print("allowing open ports %s" % board.wan_open_ports) open_ports = set(open_ports) - set(board.wan_open_ports) assert len(open_ports) == 0 diff --git a/tests/screenshot_gui.py b/tests/screenshot_gui.py index efe72744..d282343f 100644 --- a/tests/screenshot_gui.py +++ b/tests/screenshot_gui.py @@ -45,7 +45,7 @@ def start_browser(self): # no proxy, use message below assert False except Exception as e: - print e + print(e) raise Exception("No reasonable http proxy found, please add one to the board config") board.enable_mgmt_gui(board, wan) @@ -83,7 +83,7 @@ class ScreenshotGUI(RunBrowserViaProxy): def runTest(self): driver = self.start_browser() - print ("taking ss of http://%s" % board.lan_gateway) + print("taking ss of http://%s" % board.lan_gateway) driver.get("http://%s" % board.lan_gateway) # wait for possible redirects to settle down diff --git a/tests/selftest.py b/tests/selftest.py index 47f2ee6f..71698933 100644 --- a/tests/selftest.py +++ b/tests/selftest.py @@ -196,16 +196,16 @@ def runTest(self): #get the mac address of the interface lan_mac = lan.get_interface_macaddr(lan.iface_dut) assert lan_mac != None, "Failed getting lan mac address" - print "lan mac address: %s", lan_mac + print("lan mac address: %s" % lan_mac) #check the system uptime uptime = lan.get_seconds_uptime() assert uptime != None, "Failed getting system uptime" - print "system uptime is: %s", uptime + print("system uptime is: %s" % uptime) #ping ip using function ping from linux.py ping_check = lan.ping("8.8.8.8") - print "ping status is %s", ping_check + print("ping status is %s" % ping_check) #disable ipv6 ipv6_disable = lan.disable_ipv6(lan.iface_dut) @@ -248,7 +248,7 @@ def runTest(self): lan.sendline('md5sum /tmp/dst.txt') lan.expect(fmd5) lan.expect(lan.prompt) - print 'Test Passed' + print('Test Passed') class SnmpMibsUnitTest(object): """ @@ -319,18 +319,18 @@ def unitTest(self): if 'y' in self.snmp_obj.dbg: print(self.snmp_obj.mib_dict) for k in self.snmp_obj.mib_dict: - print (k, ":", self.snmp_obj.mib_dict[k]) + print(k, ":", self.snmp_obj.mib_dict[k]) print("Testing get mib oid") for i in self.mibs: try: oid = self.snmp_obj.get_mib_oid(i) - print 'mib: %s - oid=%s'%(i, oid) + print('mib: %s - oid=%s' % (i, oid)) except Exception as e: #we shoudl NOT find only the errored mibs, all other mibs MUST be found assert(i in self.error_mibs), "Failed to get oid for mib: " + i - print "Failed to get oid for mib: %s (expected)"%i + print("Failed to get oid for mib: %s (expected)" % i) if (self.error_mibs is not None): self.error_mibs.remove(i) @@ -388,9 +388,9 @@ def runTest(self): '0', community='public') - print 'snmpget({})@{}={}'.format(mib, wan_iface_ip, result) + print('snmpget({})@{}={}'.format(mib, wan_iface_ip, result)) except Exception as e: - print 'Failed on snmpget {} '.format(mib) + print('Failed on snmpget {} '.format(mib)) print(e) raise e diff --git a/tests/socat.py b/tests/socat.py index a9d904ac..3e42f5b9 100644 --- a/tests/socat.py +++ b/tests/socat.py @@ -32,7 +32,7 @@ def startSingleFlow(self, mintime=1, maxtime=60): if (ipaddress.ip_address(random_ip.decode()), random_port) not in self.all_ips: break else: - print ("Skipping ip addr: %s" % random_ip) + print("Skipping ip addr: %s" % random_ip) print("Connecting to %s:%s" % (random_ip, random_port)) self.all_ips.append((random_ip, random_port)) @@ -73,14 +73,14 @@ def runTest(self): for i in range(self.conns): board.get_nf_conntrack_conn_count() board.touch() - print ("Starting connection %s" % i) + print("Starting connection %s" % i) sz, rate, ip, port = self.startSingleFlow(maxtime=single_max) - print ("started flow to %s:%s sz = %s, rate = %sk" % (ip, port, sz, rate)) + print("started flow to %s:%s sz = %s, rate = %sk" % (ip, port, sz, rate)) max_time = max(max_time, sz / ( rate * 1024)) self.check_and_clean_ips() - print ("waiting max time of %ss" % max_time) + print("waiting max time of %ss" % max_time) start = time.time() while time.time() - start < max_time + 5: @@ -145,7 +145,7 @@ def recover(self): # this needs to be here because we need to make sure mpstat is cleaned up board.parse_stats(dict_to_log=self.logged) - print ("mpstat cpu usage = %s" % self.logged['mpstat']) + print("mpstat cpu usage = %s" % self.logged['mpstat']) self.result_message = "BitTorrent test with %s connections, cpu usage = %s" % (self.conns, self.logged['mpstat']) From 98913924f481b5bd3faa2fe5da8acb9cf823ea43 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Fri, 26 Jul 2019 18:57:03 -0500 Subject: [PATCH 904/947] tests/lib: fix print statements No functional change. Part of Python 2 to 3 project. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ic26b78301a1015d2888cfc65d3e1cf3ea4768985 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463375 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/lib/SnmpHelper.py | 14 +++++++------- tests/lib/installers.py | 2 +- tests/lib/randomMAC.py | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/lib/SnmpHelper.py b/tests/lib/SnmpHelper.py index ced392aa..0a77dcba 100644 --- a/tests/lib/SnmpHelper.py +++ b/tests/lib/SnmpHelper.py @@ -84,10 +84,10 @@ def callback_func(self, mibName, jsonDoc, cbCtx): continue # add it to my dict if "yy" in self.dbg: - print "adding %s:{%s}" %(k, v) + print("adding %s:{%s}" %(k, v)) self.mib_dict[k] = v if "yy" in self.dbg: - print (json.dumps(self.mib_dict, indent=4)) + print(json.dumps(self.mib_dict, indent=4)) def get_dict_mib(self): return self.mib_dict @@ -101,7 +101,7 @@ def get_mib_oid(self, mib_name): oid = self.mib_dict[mib_name]['oid'] except: if "y" in self.dbg: - print "ERROR: mib \'%s\' not found"%mib_name + print("ERROR: mib \'%s\' not found"%mib_name) pass return oid.encode('ascii','ignore') @@ -118,15 +118,15 @@ def get_mib_oid(self, mib_name): if len(sys.argv) < 3: if len(sys.argv) == 1: - print "Using default values from unit test: %s"%(SnmpMibsUnitTest.srcDirectories) + print("Using default values from unit test: %s"%(SnmpMibsUnitTest.srcDirectories)) else: - print "Usage:\n%s <path_to_global_mibs> [<path_to_vendor_mibs>]"%sys.argv[0] + print("Usage:\n%s <path_to_global_mibs> [<path_to_vendor_mibs>]"%sys.argv[0]) sys.exit(1) else: - print 'sys.argv='+sys.argv + print('sys.argv='+sys.argv) location = sys.argv unit_test = SnmpMibsUnitTest(mibs_location=location) assert (unit_test.unitTest()) - print 'Done.' + print('Done.') diff --git a/tests/lib/installers.py b/tests/lib/installers.py index a7d9fa72..70af27b1 100755 --- a/tests/lib/installers.py +++ b/tests/lib/installers.py @@ -567,7 +567,7 @@ def install_postfix(device): device.expect(device.prompt, timeout=90) device.sendline("apt-get install postfix -y") install_settings = device.expect(['General type of mail configuration:'] + ['Errors were encountered'] + device.prompt, timeout = 120) - print install_settings + print(install_settings) if install_settings ==0: device.sendline("2") assert 0 == device.expect(['System mail name:']+ device.prompt, timeout = 90), "System mail name option is note received. Installaion failed" diff --git a/tests/lib/randomMAC.py b/tests/lib/randomMAC.py index 86217ded..ee8c3cbd 100755 --- a/tests/lib/randomMAC.py +++ b/tests/lib/randomMAC.py @@ -14,5 +14,5 @@ def randomMAC(): return (mac_to_be_decided) if __name__ == '__main__': - print randomMAC() + print(randomMAC()) From 0b2cda618428732d4794a50c72c9a35e31998479 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Sun, 28 Jul 2019 13:00:37 -0500 Subject: [PATCH 905/947] Fix or remove remaining print statements that were missed Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ie71757b878cd9075e289b624a6b82f75fee0fd50 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463397 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/casa_cmts.py | 4 ++-- devices/debian.py | 4 ---- devices/dell_switch.py | 4 ++-- devices/openwrt_router.py | 2 +- 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 81a5cec4..5145c5f5 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -610,8 +610,8 @@ def get_center_freq(self, mac_domain=None): cmts.set_iface_upstream(ups_idx, 0.0, 47000000, 6400000, 6) - print + print() print("Press Control-] to exit interact mode") print("=====================================") cmts.interact() - print + print() diff --git a/devices/debian.py b/devices/debian.py index c4acf26e..dd051302 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -766,7 +766,3 @@ def tftp_server_ipv6_int(self): from lib import installers installers.install_asterisk(dev) - - - print - diff --git a/devices/dell_switch.py b/devices/dell_switch.py index 6e99c29c..1fb3cef5 100644 --- a/devices/dell_switch.py +++ b/devices/dell_switch.py @@ -113,8 +113,8 @@ def save_running_to_startup_config(self): for i in range(43, 48+1): dell_switch.configure_eth_trunk_port(i) - print + print() print("Press Control-] to exit interact mode") print("=====================================") dell_switch.interact() - print + print() diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 5803e630..b9e4b67e 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -647,7 +647,7 @@ def parse_stats(self, dict_to_log={}): # TODO: verify we got 'em all if idx != len(self.stats): - print "WARN: did not match all stats collected!" + print("WARN: did not match all stats collected!") dict_to_log.update(self.failed_stats) From 17c7bfc7bcc41ef91db9712b1845d07aac0c3042 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Sun, 28 Jul 2019 18:41:13 -0500 Subject: [PATCH 906/947] docsis.py: use except to be compatible with python 2 and 3 Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I980a00d2bb3e8d5db409d8d1fb0ac4520cf4dc8e Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463410 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/lib/docsis.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py index 2003d117..3b0ac9db 100755 --- a/tests/lib/docsis.py +++ b/tests/lib/docsis.py @@ -59,7 +59,7 @@ def __init__(self, file_or_obj, tmpdir=None, mibs_paths=None): # make target tmpdir if it does not exist try: os.makedirs(self.dir_path) - except OSError, err: + except OSError as err: import errno # Reraise the error unless it's about an already existing directory if err.errno != errno.EEXIST or not os.path.isdir(self.dir_path): From 5544079fd4b65b46a011bf55c611d4a3d152db64 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Mon, 29 Jul 2019 01:41:26 -0500 Subject: [PATCH 907/947] devices: base: remove unused function This was added with an unrelated change Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I5f142cc1214120e101314ff1e1e2352bffa8edb2 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463463 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Mike Anderson <mikeanderson@mcclintock.net> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/base.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/devices/base.py b/devices/base.py index 773586a8..4992dbf1 100644 --- a/devices/base.py +++ b/devices/base.py @@ -215,9 +215,6 @@ def sendcontrol(self, char): return super(BaseDevice, self).sendcontrol(char) - def expect_exact_split(self, pattern, nsplit=1, *args, **kwargs): - pass - def enable_ipv6(self, interface): '''Enable ipv6 in interface ''' raise Exception("Not implemented!") From 77a869c234f0b7042c1e023e759f00eb10412209 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Mon, 29 Jul 2019 19:29:19 -0500 Subject: [PATCH 908/947] rootfs_boot.py: remove unused imports Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I7545c87f752af59330c6a861397bd606603fa745 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463562 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/rootfs_boot.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 230fc6a9..87ffccb6 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -8,9 +8,7 @@ import time import linux_boot import lib -import ipaddress -from lib.network_helper import valid_ipv4, valid_ipv6 from lib.docsis import check_valid_docsis_ip_networking from devices import board, wan, lan, prompt From 6c7e530ff43ade685db6c868968c05fe6c0bb665 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Tue, 30 Jul 2019 04:26:26 -0500 Subject: [PATCH 909/947] devices: debian_isc: fix erouter_net reference, used as a list Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I55605e05b52d1618f9e6a3248550823a62dfb630 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463592 Reviewed-by: ketan tewari <ktewari.contractor@libertyglobal.com> Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Tested-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/debian_isc.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index c1f4888c..41fc86c6 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -513,8 +513,9 @@ def provision_board(self, board_config): self.sendline('ip -6 route add %s/%s via %s dev %s' % (nw, self.ipv6_prefix, self.prov_gateway_v6, self.iface_dut)) self.expect(self.prompt) - self.sendline('ip -6 route add %s via %s' % (str(self.erouter_net), self.prov_gateway_v6)) - self.expect(self.prompt) + for nw in self.erouter_net: + self.sendline('ip -6 route add %s via %s' % (nw, self.prov_gateway_v6)) + self.expect(self.prompt) self.update_cmts_isc_dhcp_config(board_config) self.sendline('cat /etc/dhcp/dhcpd.conf') From 7e1006fb44504d6818c894cee9429f76194c82a6 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 30 Jul 2019 12:04:42 -0500 Subject: [PATCH 910/947] Remove streamboost.py and imports of it These imports weren't used anyway. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I6b1bdbf0422d86c8fce49d03094afa5c646b6b99 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463663 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/iperf_test.py | 2 +- tests/iperf_udp_test.py | 2 +- tests/lib/streamboost.py | 317 --------------------------------------- 3 files changed, 2 insertions(+), 319 deletions(-) delete mode 100644 tests/lib/streamboost.py diff --git a/tests/iperf_test.py b/tests/iperf_test.py index 6ff0a8fb..99b8b34e 100644 --- a/tests/iperf_test.py +++ b/tests/iperf_test.py @@ -10,7 +10,7 @@ import rootfs_boot import ipv6_setup import lib -from lib import streamboost, installers +from lib import installers from devices import board, wan, lan, wlan, prompt # change this if you want to one time tweak iperf opts diff --git a/tests/iperf_udp_test.py b/tests/iperf_udp_test.py index aadf2384..bc26abe1 100644 --- a/tests/iperf_udp_test.py +++ b/tests/iperf_udp_test.py @@ -10,7 +10,7 @@ import rootfs_boot import ipv6_setup import lib -from lib import streamboost, installers +from lib import installers from devices import board, wan, lan, wlan, prompt # change this if you want to one time tweak iperf opts diff --git a/tests/lib/streamboost.py b/tests/lib/streamboost.py deleted file mode 100644 index 0cbc55c0..00000000 --- a/tests/lib/streamboost.py +++ /dev/null @@ -1,317 +0,0 @@ -# Copyright (c) 2015 -# -# All rights reserved. -# -# This file is distributed under the Clear BSD license. -# The full text can be found in LICENSE in the root directory. - -import re -import time - -from devices import prompt -from common import clear_buffer - -def stop(console): - console.sendline('\nstreamboost stop') - console.expect(['StreamBoost: Executing stop all','streamboost: not found']) - console.expect(prompt) - -def start(console): - console.sendline('\nstreamboost start') - console.expect('StreamBoost: Executing start all') - console.expect(prompt) - -def verify_enabled(console): - '''Check if streamboost is enabled, throw exception if it is not.''' - console.sendline('\nuci show appflow.tccontroller.enable_streamboost') - console.expect('enable_streamboost=1', timeout=6) - console.expect(prompt) - -def verify_disabled(console): - '''Check if StreamBoost is disabled, throw exception if it is not.''' - console.sendline('\nuci show appflow.tccontroller.enable_streamboost') - console.expect('enable_streamboost=0', timeout=6) - console.expect(prompt) - -def is_enabled(console): - '''Return True if StreamBoost is enabled.''' - console.sendline('\nuci show appflow.tccontroller.enable_streamboost') - sb_enabled = console.expect(['enable_streamboost=0\r', 'enable_streamboost=1\r'], timeout=6) - console.expect(prompt) - if sb_enabled == 0: - return False - if sb_enabled == 1: - return True - -def disable(console): - '''Disable StreamBoost.''' - console.sendline('\nuci set appflow.tccontroller.enable_streamboost=0') - console.expect('streamboost=0', timeout=6) - console.expect(prompt) - console.sendline('uci commit appflow; luci-reload appflow') - console.expect('Reloading appflow...') - console.expect(prompt) - verify_disabled(console) - -def enable(console): - '''Enable StreamBoost.''' - console.sendline('\nuci set appflow.tccontroller.enable_streamboost=1') - console.expect('streamboost=1', timeout=6) - console.expect(prompt) - console.sendline('uci commit appflow; luci-reload appflow') - console.expect('Reloading appflow...') - console.expect(prompt) - # SB takes a few seconds to fully start - time.sleep(4) - verify_enabled(console) - -def enable_if_not(console): - '''Enable StreamBoost if it is not already enabled''' - if is_enabled(console): - return "StreamBoost is already enabled." - else: - enable(console) - return "StreamBoost now set to enabled." - -def disable_if_not(console): - '''Disable StreamBoost if it is not already enabled''' - if not is_enabled(console): - return "StreamBoost is already disabled." - else: - disable(console) - return "StreamBoost now set to disabled." - -def disable_http_auth(console): - '''Turn off HTTP Basic Auth on Ozker.''' - try: - # Display current setting, if found - console.sendline('\ngrep OZKER /etc/appflow/streamboost.sys.conf') - console.expect('OZKER_BASIC_AUTH', timeout=4) - console.expect(prompt) - except: - pass - # Remove current setting, if present - console.sendline("sed -i '/OZKER_BASIC_AUTH/d' /etc/appflow/streamboost.sys.conf") - console.expect(prompt) - console.sendline("sed -i '/OZKER_BASIC_AUTH/d' /var/run/appflow/streamboost.user.conf") - console.expect(prompt) - # Excplicitly disable - console.sendline('echo "OZKER_BASIC_AUTH=no">>/etc/appflow/streamboost.sys.conf') - console.expect(prompt) - console.sendline('echo "OZKER_BASIC_AUTH=no">>/var/run/appflow/streamboost.user.conf') - console.expect(prompt) - -def disable_monit(console): - '''Monit will restart Daemons that go down. - Disable monit to prevent it from starting daemons.''' - console.sendline('echo "SB_DISABLE_MONIT=yes">>/etc/appflow/streamboost.sys.conf') - console.expect(prompt) - -def enable_monit(console): - '''Monit is enabled by default, but if it sees a - certain variable, it will not restart daemons.''' - console.sendline("sed -i '/SB_DISABLE_MONIT/d' /etc/appflow/streamboost.sys.conf") - console.expect(prompt) - -def get_status(console, logread_if_manydown=False, monit=False, now=False): - ''' - Parse 'streamboost status' to - return a dictionary like: - {"redis-server" : "UP", - "policy-reader": "UP, - ...} - ''' - sbdaemon_status = {} - monit_status = {} - num_down = 0 - num_tries = 8 - for i in range(num_tries): - clear_buffer(console) - cmd='streamboost status' - if monit: - cmd='streamboost status_monit' - console.sendline("\n" + cmd) - try: - console.expect(cmd) - console.expect(prompt, timeout=60) - output = console.before - if monit: - m = re.search('status=(\d+)',output) - monit_status = {'code': int(m.group(1))} - result = re.findall('\[\s+(\w+)\s+\]\s([-\w]+)\s', output) - sbdaemon_status = dict([(x[1].lower(), x[0]) for x in result]) - num_down = len([x for x in sbdaemon_status if sbdaemon_status[x] == 'DOWN']) - if not now and ("does not exist" in output or "try again later" in output or num_down > 1): - print("\nStreamBoost not ready? Trying again, sleeping 15s...") - time.sleep(15) - else: - break - except: - console.sendcontrol('c') - if num_down > 1 and logread_if_manydown: - print("\nToo many daemons down. Dumping syslog...") - print("===== Begin Logread =====") - console.sendline('\nlogread') - console.expect('logread') - console.expect('OpenWrt') - console.expect(prompt) - print("\n===== End Logread =====") - if monit: - sbdaemon_status.update(monit_status) - return sbdaemon_status - -def verify_running(console, monit=False): - ''' - Fail if any streamboost daemon is DOWN - besides the bandwidth daemons. - ''' - ignore_list = ('aperture', 'bandwidth', 'bwestd') - status = get_status(console, monit=monit) - num_up = len([x for x in status if status[x] == 'UP']) - num_down = len([x for x in status if status[x] == 'DOWN' and x not in ignore_list]) - assert num_down == 0 and num_up > 7 - -def set_bw_limits(console, up_limit, down_limit): - ''' - Set bandwidth limits in uci, restart Streamboost, then verify new settings. - up_limit and down_limit must have units of Bytes. - ''' - # Check limits - console.sendline('\nuci show appflow.tccontroller | grep limit=') - console.expect('uplimit') - console.expect(prompt) - # Set new limits - console.sendline('uci set appflow.tccontroller.uplimit=%s' % up_limit) - console.expect(prompt) - console.sendline('uci set appflow.tccontroller.downlimit=%s' % down_limit) - console.expect(prompt) - console.sendline('uci commit appflow') - console.expect(prompt) - for i in range(2): - try: - console.sendline('\nluci-reload appflow') - console.expect('Reloading appflow') - console.expect(prompt) - break - except: - continue - time.sleep(2) # give streamboost chance to fully boot - # Check limits - console.sendline('redis-cli get settings:bw:up') - console.expect('"\d+"') - console.expect(prompt) - console.sendline('redis-cli get settings:bw:down') - console.expect('"\d+"') - console.expect(prompt) - console.sendline('uci show appflow | grep limit=') - console.expect('tccontroller') - console.expect(prompt) - uplimit = int(re.search('uplimit=(\d+)\r', console.before).group(1)) - downlimit = int(re.search('downlimit=(\d+)\r', console.before).group(1)) - print("\nStreamboost bandwidth limits now at %.1f Mbps upload, %.1f Mbps download." % (uplimit/131072., downlimit/131072.)) - if (uplimit != up_limit) or (downlimit != down_limit): - print("Warning: Settings now in uci do not agree with intended settings.") - -def print_redis_stats_size(console): - '''Print size of a few important things in redis database.''' - console.sendline('\nredis-cli info memory') - console.expect('Memory') - console.expect(prompt) - console.sendline('redis-cli llen eventdb:events') - console.expect('integer') - console.expect(prompt) - console.sendline('redis-cli lrange eventdb:events 0 -1 | wc -c') - console.expect('\d+') - console.expect(prompt) - console.sendline('redis-cli llen eventdb:features') - console.expect('integer') - console.expect(prompt) - console.sendline('redis-cli lrange eventdb:features 0 -1 | wc -c') - console.expect('\d+') - console.expect(prompt) - -def run_aperture(console): - '''Run bandwidth measurementt and return results in Mbps.''' - console.sendline('\nstreamboost measure') - console.expect('streamboost measure') - try: - console.expect(prompt, timeout=180) - except Exception as e: - print("\nAperture failed to finish after 3 minutes.") - print("Sending CTRL-C.") - console.sendcontrol('c') - console.expect(prompt) - return None, None - try: - up_result = re.search(r'uplimit=([0-9]+)\r\n', console.before).group(1) - down_result = re.search(r'downlimit=([0-9]+)\r\n', console.before).group(1) - up_result_mbps = int(up_result)*8.0/(1000.*1000.) - down_result_mbps = int(down_result)*8.0/(1000.*1000.) - return up_result_mbps, down_result_mbps - except Exception as e: - return None, None - -def check_detection_files_version(console): - '''Find the version of the Flow detection file yaml.''' - console.sendline("") - if console.model in ('dlink-dgl5500', 'zyxel-nbg6716'): - console.sendline("drflocs -D -k /etc/ssl/private/client_key.pem -w /tmp/run/appflow/wopr.yaml.enc | grep timestamp") - console.expect('timestamp:') - else: - console.sendline("opkg list | grep '[wopr|p0f]-db\|policy-redis'") - console.expect('wopr-db -') - console.expect(prompt) - console.sendline("grep timestamp /etc/appflow/wopr.yaml") - console.expect(prompt) - -def get_wopr_version(console): - '''Return version number of Application detection config file.''' - console.sendline("\ngrep timestamp /etc/appflow/wopr.yaml") - console.expect("timestamp: '([_\d]+)'") - version = console.match.group(1) - console.expect(prompt) - return version - -def get_detected_flows(console, duration=10, sleep=2): - ''' - Return dictionary with keys are detected flow names, and values are downloaded bytes. - Poll every 'delay' seconds for a duration of seconds. - ''' - # Fist create dict where key=name, value=list of down_bytes - final_result = {} - for i in range(duration/sleep): - console.sendline('\ncurl http://127.0.0.1/cgi-bin/ozker/api/flows') - console.expect('"flows":') - console.expect(prompt) - result = re.findall('"down_bytes":(\d+),"up_bytes":\d+,"name":"([_a-z0-9]+)"', console.before) - detected_flows = {} - if result: - detected_flows = dict([(x[1],int(x[0])) for x in result]) - for k in detected_flows: - if k not in final_result: - final_result[k] = [] - final_result[k].append(detected_flows[k]) - time.sleep(sleep) - # Modify to dict so that key=flowname, value=total bytes downloaded - # This formula is fancy. Example: [0, 2, 4, 0, 1, 6] = 10. - # It has to be, because flows can stop and "start over" at zero. - for n in final_result: - nums = final_result[n] - final_result[n] = sum([nums[i+1]-nums[i] for i in range(len(nums)-1) if nums[i+1]>nums[i]]) - return final_result - - -def get_pid(console, name): - try: - cmd="top -b -n 1 | grep " + name + " | grep -v grep | awk '{print $1}'" - console.sendline(cmd) - console.expect('(\d+)\r\n', timeout=5) - pid = int(console.match.group(1)) - console.expect(prompt) - return pid - except: - return -1 - -def kill_pid(console, pid): - cmd="kill " + str(pid) - console.sendline(cmd) - console.expect(prompt) From 62cc84a585baf8a089572a943f671a09dee0957d Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Fri, 26 Jul 2019 13:39:30 -0500 Subject: [PATCH 911/947] Pass config normally, don't import All the tests have access to the config, so it's better to pass that around. Importing a file from a different directory is messy and hard to follow. Fixes like this will make it easier to switch to Python3. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I8f3482338dd64e96e3a36fed5c8db1fec9514aa0 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463354 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Reviewed-by: Raju Shanigarapu <rshanigarapu.contractor@libertyglobal.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/lib/common.py | 11 +++++------ tests/screenshot_gui.py | 12 +++++++----- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/tests/lib/common.py b/tests/lib/common.py index 07f5b57d..8640365c 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -11,7 +11,6 @@ import sys import time import os -import config from termcolor import cprint import re, ipaddress @@ -91,7 +90,7 @@ def phantom_webproxy_driver(ipport): driver.set_page_load_timeout(30) return driver -def firefox_webproxy_driver(ipport): +def firefox_webproxy_driver(ipport, config): ''' Use this if you started web proxy on a machine connected to router's LAN. ''' @@ -120,7 +119,7 @@ def firefox_webproxy_driver(ipport): return driver -def chrome_webproxy_driver(ipport): +def chrome_webproxy_driver(ipport, config): ''' Use this if you prefer Chrome. Should be the same as firefox_webproxy_driver above, although ChromeWebDriver seems to be slower in loading pages. @@ -147,13 +146,13 @@ def chrome_webproxy_driver(ipport): return driver -def get_webproxy_driver(ipport): +def get_webproxy_driver(ipport, config): if config.default_web_driver == "ffox": - d = firefox_webproxy_driver(ipport) + d = firefox_webproxy_driver(ipport, config) d.maximize_window() return d elif config.default_web_driver == "chrome": - return chrome_webproxy_driver(ipport) + return chrome_webproxy_driver(ipport, config) # the win maximise is done in the chrome options else: # something has gone wrong, make the error message as self explanatory as possible diff --git a/tests/screenshot_gui.py b/tests/screenshot_gui.py index d282343f..b8395aad 100644 --- a/tests/screenshot_gui.py +++ b/tests/screenshot_gui.py @@ -8,7 +8,6 @@ import rootfs_boot import lib from devices import board, wan, lan, prompt -import config from pyvirtualdisplay import Display import pexpect @@ -18,13 +17,16 @@ class RunBrowserViaProxy(rootfs_boot.RootFSBootTest): '''Bootstrap firefox running via localproxy''' def start_browser(self): try: - x,y=config.get_display_backend_size() + x,y=self.config.get_display_backend_size() # try to start vnc server - self.display = Display(backend=config.default_display_backend, rfbport=config.default_display_backend_port, visible=0, size=(x, y)) + self.display = Display(backend=self.config.default_display_backend, + rfbport=self.config.default_display_backend_port, + visible=0, + size=(x, y)) self.display.start() if "BFT_DEBUG" in os.environ: - print("Connect to VNC display running on localhost:"+config.default_display_backend_port) + print("Connect to VNC display running on localhost:"+self.config.default_display_backend_port) raw_input("Press any key after connecting to display....") except: # fallback xvfb @@ -51,7 +53,7 @@ def start_browser(self): board.enable_mgmt_gui(board, wan) print("Using proxy %s" % proxy) - driver = lib.common.get_webproxy_driver(proxy) + driver = lib.common.get_webproxy_driver(proxy, self.config) return driver From 379b28990149fefd1036b6907ce039f0f3a495de Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 30 Jul 2019 11:44:06 -0500 Subject: [PATCH 912/947] kermit_connection.py: remove unused imports Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I067ad9650110c47b0b485f53c9a395402dcaf2df Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463658 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/kermit_connection.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/devices/kermit_connection.py b/devices/kermit_connection.py index 44a88dde..04a8002f 100644 --- a/devices/kermit_connection.py +++ b/devices/kermit_connection.py @@ -1,7 +1,5 @@ -import os import pexpect -import config -from lib.common import cmd_exists + class KermitConnection(): """ From 8971321f8a7ad90db26995c1536d132516e63fcf Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 30 Jul 2019 11:55:02 -0500 Subject: [PATCH 913/947] kermit_connection.py: close() needs self Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Icb0f33f2b40aa69eb4204b50535e5a49a95f1842 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463660 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/kermit_connection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/kermit_connection.py b/devices/kermit_connection.py index 04a8002f..77c7e0ca 100644 --- a/devices/kermit_connection.py +++ b/devices/kermit_connection.py @@ -36,7 +36,7 @@ def connect(self): except pexpect.EOF as e: raise Exception("Board is in use (connection refused).") - def close(): + def close(self): self.device.sendcontrol('\\') self.device.sendline('c') self.device.expect(self.prompt) From db5280dfd58190207cfb155eced46bfd2e3cb013 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 30 Jul 2019 13:23:28 -0500 Subject: [PATCH 914/947] base_cmts.py: fix import of base Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ifbdf8cd4802d0b8ece13a75e8efa7352e45c6f2e Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463679 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/base_cmts.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/base_cmts.py b/devices/base_cmts.py index f002df50..0ee196b8 100644 --- a/devices/base_cmts.py +++ b/devices/base_cmts.py @@ -1,4 +1,4 @@ -from devices import base +import base class BaseCmts(base.BaseDevice): From 8a822974724b51ff67aaa2efe66fafea5403d35a Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 30 Jul 2019 13:48:05 -0500 Subject: [PATCH 915/947] devices/debian_isc.py: Fix import of DebianBox The statement "from devices import" does not work here. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: If64ab255206b76df219165b1c9fc9a4689a1bc68 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463683 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/debian_isc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 41fc86c6..3dd81add 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -6,9 +6,9 @@ import re import glob -from devices import DebianBox +import debian -class DebianISCProvisioner(DebianBox): +class DebianISCProvisioner(debian.DebianBox): ''' Linux based provisioner using ISC DHCP server ''' From 19a07bf9a9f63e42e6ff036768b0e28fe7b75967 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 30 Jul 2019 20:20:15 -0500 Subject: [PATCH 916/947] devices: remove unused imports Used pyflakes tool to find these. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I5223d8100b841f088c8ae8bde9666d557e99f29f Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463705 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/arris_cmts.py | 2 +- devices/base.py | 4 ---- devices/casa_cmts.py | 1 - devices/debian.py | 4 ---- devices/dell_switch.py | 2 -- devices/error_detect.py | 1 - devices/linux.py | 2 +- devices/openwrt_router.py | 1 - devices/power.py | 2 -- devices/qemu.py | 1 - 10 files changed, 2 insertions(+), 18 deletions(-) diff --git a/devices/arris_cmts.py b/devices/arris_cmts.py index e807b1e7..f6fd5420 100644 --- a/devices/arris_cmts.py +++ b/devices/arris_cmts.py @@ -8,7 +8,7 @@ import pexpect import sys -import base + import re import connection_decider import base_cmts diff --git a/devices/base.py b/devices/base.py index 4992dbf1..e03ab958 100644 --- a/devices/base.py +++ b/devices/base.py @@ -6,15 +6,11 @@ # The full text can be found in LICENSE in the root directory. import pexpect -from datetime import datetime -import re import os import time import common import error_detect -import ipaddress -from lib.regexlib import LinuxMacFormat, AllValidIpv6AddressesRegex from lib.bft_logging import LoggerMeta, o_helper # To Do: maybe make this config variable diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py index 5145c5f5..539419f4 100644 --- a/devices/casa_cmts.py +++ b/devices/casa_cmts.py @@ -8,7 +8,6 @@ import pexpect import sys -import base import re import connection_decider from lib.regexlib import ValidIpv6AddressRegex, ValidIpv4AddressRegex, AllValidIpv6AddressesRegex diff --git a/devices/debian.py b/devices/debian.py index dd051302..2f7535da 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -11,11 +11,7 @@ import linux import atexit import os -import binascii -import glob import ipaddress -from lib.regexlib import ValidIpv4AddressRegex -import re from termcolor import colored, cprint diff --git a/devices/dell_switch.py b/devices/dell_switch.py index 1fb3cef5..485d9ced 100644 --- a/devices/dell_switch.py +++ b/devices/dell_switch.py @@ -102,8 +102,6 @@ def save_running_to_startup_config(self): self.expect(self.prompt) if __name__ == '__main__': - import time - dell_switch = DellSwitch(sys.argv[1]) dell_switch.connect() diff --git a/devices/error_detect.py b/devices/error_detect.py index 2ea15d1e..35604191 100644 --- a/devices/error_detect.py +++ b/devices/error_detect.py @@ -5,7 +5,6 @@ # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. -import pexpect import common import re import inspect diff --git a/devices/linux.py b/devices/linux.py index 32fe5e28..b4f9487d 100644 --- a/devices/linux.py +++ b/devices/linux.py @@ -1,5 +1,5 @@ import base, binascii -import os, pexpect, ipaddress, re +import os, ipaddress, re from lib.regexlib import ValidIpv4AddressRegex, AllValidIpv6AddressesRegex, LinuxMacFormat class LinuxDevice(base.BaseDevice): diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index b9e4b67e..833abe9b 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -8,7 +8,6 @@ import atexit import os import os.path -import random import signal import socket import sys diff --git a/devices/power.py b/devices/power.py index 5fc3d0aa..e626f307 100644 --- a/devices/power.py +++ b/devices/power.py @@ -16,8 +16,6 @@ import pexpect import dlipower import time -import re - import inspect def get_default_for_arg(function, arg): diff --git a/devices/qemu.py b/devices/qemu.py index fc1e1e43..9013bbe5 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -5,7 +5,6 @@ # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. -import common import openwrt_router import sys import pexpect From 0fd4ff4d5fc3effa61889adb80e48f8f08998503 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 30 Jul 2019 20:35:37 -0500 Subject: [PATCH 917/947] tests: remove unused imports Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I5e449c219f8f7fedd6e9c7a7b801b0ba5fab23e0 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463708 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/netperf_stress_test.py | 3 --- tests/netperf_test.py | 4 ---- tests/netperf_udp_test.py | 4 ---- tests/opkg.py | 2 -- tests/opkg_conf.py | 2 -- tests/perfperpkt_test.py | 5 +---- tests/samba.py | 3 --- tests/ssh_forward_port.py | 4 +--- tests/sysupgrade.py | 2 -- tests/ubus.py | 1 - tests/vmstat.py | 1 - 11 files changed, 2 insertions(+), 29 deletions(-) diff --git a/tests/netperf_stress_test.py b/tests/netperf_stress_test.py index a400e259..70de7f4b 100644 --- a/tests/netperf_stress_test.py +++ b/tests/netperf_stress_test.py @@ -5,11 +5,8 @@ # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. -import unittest2 import lib import netperf_test -import pexpect -import sys import time from netperf_test import install_netperf diff --git a/tests/netperf_test.py b/tests/netperf_test.py index 78cf5ddc..74f4baf5 100644 --- a/tests/netperf_test.py +++ b/tests/netperf_test.py @@ -5,12 +5,8 @@ # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. -import unittest2 import lib import rootfs_boot -import pexpect -import sys -import time import os from devices import board, wan, lan, wlan, prompt diff --git a/tests/netperf_udp_test.py b/tests/netperf_udp_test.py index 8d19d6d2..716f56d8 100644 --- a/tests/netperf_udp_test.py +++ b/tests/netperf_udp_test.py @@ -5,12 +5,8 @@ # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. -import unittest2 import lib import netperf_test -import pexpect -import sys -import time from devices import board, wan, lan, wlan, prompt diff --git a/tests/opkg.py b/tests/opkg.py index cc30bc00..e351af5c 100644 --- a/tests/opkg.py +++ b/tests/opkg.py @@ -5,8 +5,6 @@ # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. -import time - import rootfs_boot from devices import board, wan, lan, wlan, prompt diff --git a/tests/opkg_conf.py b/tests/opkg_conf.py index 4e12237f..e8079709 100644 --- a/tests/opkg_conf.py +++ b/tests/opkg_conf.py @@ -5,8 +5,6 @@ # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. -import time - import rootfs_boot from devices import board, wan, lan, wlan, prompt diff --git a/tests/perfperpkt_test.py b/tests/perfperpkt_test.py index 0697ea90..14fca36e 100644 --- a/tests/perfperpkt_test.py +++ b/tests/perfperpkt_test.py @@ -5,12 +5,9 @@ # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. -import unittest2 + import lib import iperf_test -import pexpect -import sys -import time from devices import board, wan, lan, wlan, prompt diff --git a/tests/samba.py b/tests/samba.py index 56212119..4d3047e2 100644 --- a/tests/samba.py +++ b/tests/samba.py @@ -5,9 +5,6 @@ # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. -import random -import re - import rootfs_boot from devices import board, wan, lan, wlan, prompt diff --git a/tests/ssh_forward_port.py b/tests/ssh_forward_port.py index e9cb1dbb..0c167fd8 100644 --- a/tests/ssh_forward_port.py +++ b/tests/ssh_forward_port.py @@ -5,12 +5,10 @@ # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. -import time -import unittest2 import rootfs_boot import lib import pexpect -import sys + from devices import board, wan, lan, wlan, prompt class SshWanDetect(rootfs_boot.RootFSBootTest): diff --git a/tests/sysupgrade.py b/tests/sysupgrade.py index 2baaccac..0300632c 100644 --- a/tests/sysupgrade.py +++ b/tests/sysupgrade.py @@ -5,8 +5,6 @@ # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. -import time -import unittest2 import rootfs_boot import lib from devices import board, wan, lan, wlan, prompt diff --git a/tests/ubus.py b/tests/ubus.py index bb11cfd0..8425fe5d 100644 --- a/tests/ubus.py +++ b/tests/ubus.py @@ -5,7 +5,6 @@ # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. -import re import rootfs_boot import json import time diff --git a/tests/vmstat.py b/tests/vmstat.py index 8dba8557..05931e14 100644 --- a/tests/vmstat.py +++ b/tests/vmstat.py @@ -5,7 +5,6 @@ # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. -import re import rootfs_boot from devices import board, wan, lan, wlan, prompt From 9c9afce0645287b99f4b61fc7b246b16c2c52a74 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Wed, 31 Jul 2019 11:46:18 -0500 Subject: [PATCH 918/947] devices: Add missing 'self' to functions in classes Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I3cff9ef620d83b2e0e6bbad360c2be56109de494 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463809 Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> Tested-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/local_cmd.py | 2 +- devices/local_serial_connection.py | 2 +- devices/ser2net_connection.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/devices/local_cmd.py b/devices/local_cmd.py index f08445fb..c49b1015 100644 --- a/devices/local_cmd.py +++ b/devices/local_cmd.py @@ -17,5 +17,5 @@ def connect(self): except pexpect.EOF as e: raise Exception("Board is in use (connection refused).") - def close(): + def close(self): self.device.sendcontrol('c') diff --git a/devices/local_serial_connection.py b/devices/local_serial_connection.py index 117dae0a..c3e58904 100644 --- a/devices/local_serial_connection.py +++ b/devices/local_serial_connection.py @@ -20,5 +20,5 @@ def connect(self): except pexpect.EOF as e: raise Exception("Board is in use (connection refused).") - def close(): + def close(self): self.device.sendline("~.") diff --git a/devices/ser2net_connection.py b/devices/ser2net_connection.py index f7815582..595283ff 100644 --- a/devices/ser2net_connection.py +++ b/devices/ser2net_connection.py @@ -17,5 +17,5 @@ def connect(self): if result == 0: raise Exception("Password required and not supported") - def close(): + def close(self): self.device.sendline("~.") From 12811d249643a79fa12b15cc347a937f7047f626 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Wed, 31 Jul 2019 12:39:31 -0500 Subject: [PATCH 919/947] devices: some pyflakes fixes Remove unused variables, remove unused imports, add missing import... Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ibc772da250e6bfda8c2383df647603bf35dd1a52 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463812 Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> Tested-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/base.py | 2 +- devices/base_cmts.py | 2 +- devices/debian.py | 5 ++--- devices/openwrt_router.py | 2 +- devices/qemu.py | 1 + 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/devices/base.py b/devices/base.py index e03ab958..b68c02d2 100644 --- a/devices/base.py +++ b/devices/base.py @@ -57,7 +57,7 @@ def check_output(self, cmd, timeout=30): self.expect_exact(cmd, timeout=5) try: self.expect(self.prompt, timeout=timeout) - except Exception as e: + except Exception: self.sendcontrol('c') raise Exception("Command did not complete within %s seconds. Prompt was not seen." % timeout) return self.before.strip() diff --git a/devices/base_cmts.py b/devices/base_cmts.py index 0ee196b8..34909ada 100644 --- a/devices/base_cmts.py +++ b/devices/base_cmts.py @@ -36,7 +36,7 @@ def get_cmts_ip_bundle(self, bundle): raise Exception("Not implemented!") def get_cmts_model(self): - return model + return self.model def clear_offline(self, cmmac): raise Exception("Not implemented!") diff --git a/devices/debian.py b/devices/debian.py index 2f7535da..7a6981e8 100755 --- a/devices/debian.py +++ b/devices/debian.py @@ -166,9 +166,9 @@ def __init__(self, try: i = self.expect(["yes/no", "assword:", "Last login", username+".*'s password:"] + self.prompt, timeout=30) - except pexpect.TIMEOUT as e: + except pexpect.TIMEOUT: raise Exception("Unable to connect to %s." % name) - except pexpect.EOF as e: + except pexpect.EOF: if hasattr(self, "before"): print(self.before) raise Exception("Unable to connect to %s." % name) @@ -470,7 +470,6 @@ def setup_dnsmasq(self): def add_hosts(self): #to add extra hosts(dict) to dnsmasq.hosts if dns has to run in wan container import config - from devices import board hosts={} for device in config.board['devices']: if 'ipaddr' in device: diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index 833abe9b..c3fa0b9e 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -499,7 +499,7 @@ def wait_for_mounts(self): try: board.sendline('mount') board.expect_exact('overlayfs:/overlay on / type overlay', timeout=15) - board.expect(prompt) + board.expect(self.prompt) break except: pass diff --git a/devices/qemu.py b/devices/qemu.py index 9013bbe5..2c8b2664 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -6,6 +6,7 @@ # The full text can be found in LICENSE in the root directory. import openwrt_router +import signal import sys import pexpect import atexit From 7e8df8605fcca218aac6070903b357d9147d3176 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Wed, 31 Jul 2019 18:53:04 -0500 Subject: [PATCH 920/947] bft: remove duplicate import and alphabetize Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ib90cf9a5c17fbf0928e32e717c7c6a70b1502c03 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463836 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- bft | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/bft b/bft index c3b372d3..78c3ae5d 100755 --- a/bft +++ b/bft @@ -8,14 +8,13 @@ # The full text can be found in LICENSE in the root directory. import atexit +import hashlib import inspect +import json import os import random import sys -import json -import hashlib import time -import json import traceback from datetime import datetime From bc06787693b764777fc06b4f3ed294986b8abf93 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Fri, 2 Aug 2019 10:20:48 -0500 Subject: [PATCH 921/947] tests/lib: Move imports to separate lines with autopep8 Ran "autopep8 -i --select E401 *.py" so that it will be easier to change imports someday. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ia324e8344086cf49d8881c04a04e33feae4a822a Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464009 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/lib/common.py | 3 ++- tests/lib/docsis.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/lib/common.py b/tests/lib/common.py index 8640365c..f6d11771 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -12,7 +12,8 @@ import time import os from termcolor import cprint -import re, ipaddress +import re +import ipaddress from selenium import webdriver from selenium.webdriver.common.proxy import * diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py index 3b0ac9db..d02b0505 100755 --- a/tests/lib/docsis.py +++ b/tests/lib/docsis.py @@ -6,7 +6,8 @@ # The full text can be found in LICENSE in the root directory. # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 -import os, config +import os +import config from common import cmd_exists import Tkinter import re From 1d53a67da6df648f01df4d3db65076516cc1e4eb Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Date: Thu, 1 Aug 2019 18:21:13 +0800 Subject: [PATCH 922/947] devices: linux: moved methods from openwrt_router to linux and base.py Created oe module in devices Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Change-Id: I48c51e5639518eabbfb3f49af32447660ce6c2ab Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463884 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/base.py | 62 +++++++++++- devices/linux.py | 95 +++++++++++++++++++ devices/oe.py | 8 ++ devices/openwrt_router.py | 195 +++++--------------------------------- tests/selftest.py | 24 +++++ 5 files changed, 209 insertions(+), 175 deletions(-) create mode 100644 devices/oe.py diff --git a/devices/base.py b/devices/base.py index b68c02d2..1d237fec 100644 --- a/devices/base.py +++ b/devices/base.py @@ -4,13 +4,13 @@ # # This file is distributed under the Clear BSD license. # The full text can be found in LICENSE in the root directory. - +import ipaddress import pexpect import os import time import common import error_detect - +import signal from lib.bft_logging import LoggerMeta, o_helper # To Do: maybe make this config variable @@ -234,3 +234,61 @@ def prefer_ipv4(self, pref=True): def ping(self, ping_ip, source_ip=None, ping_count=4, ping_interface=None): '''Check Ping verification from device ''' raise Exception("Not implemented!") + + def reset(self, break_into_uboot=False): + '''Power-cycle this device.''' + if not break_into_uboot: + self.power.reset() + return + for attempt in range(3): + try: + self.power.reset() + self.expect('U-Boot', timeout=30) + self.expect('Hit any key ') + self.sendline('\n\n\n\n\n\n\n') # try really hard + self.expect(self.uprompt, timeout=4) + # Confirm we are in uboot by typing any command. + # If we weren't in uboot, we wouldn't see the command + # that we type. + self.sendline('echo FOO') + self.expect('echo FOO', timeout=4) + self.expect(self.uprompt, timeout=4) + return + except Exception as e: + print(e) + print("\nWe appeared to have failed to break into U-Boot...") + + def check_memory_addresses(self): + '''Check/set memory addresses and size for proper flashing.''' + raise Exception("Not implemented!") + + def flash_uboot(self, uboot): + raise Exception('Code not written for flash_uboot for this board type, %s' % self.model) + + def flash_rootfs(self, ROOTFS): + raise Exception('Code not written for flash_rootfs for this board type, %s' % self.model) + + def flash_linux(self, KERNEL): + raise Exception('Code not written for flash_linux for this board type, %s.' % self.model) + + def flash_meta(self, META_BUILD, wan, lan): + raise Exception('Code not written for flash_meta for this board type, %s.' % self.model) + + def prepare_nfsroot(self, NFSROOT): + raise Exception('Code not written for prepare_nfsroot for this board type, %s.' % self.model) + + def kill_console_at_exit(self): + '''killing console ''' + self.kill(signal.SIGKILL) + + def get_dns_server(self): + '''Getting dns server ip address ''' + raise Exception("Not implemented!") + + def touch(self): + '''Keeps consoles active, so they don't disconnect for long running activities''' + self.sendline() + + def boot_linux(self, rootfs=None, bootargs=""): + raise Exception("\nWARNING: We don't know how to boot this board to linux " + "please write the code to do so.") diff --git a/devices/linux.py b/devices/linux.py index b4f9487d..05fe23e9 100644 --- a/devices/linux.py +++ b/devices/linux.py @@ -1,6 +1,7 @@ import base, binascii import os, ipaddress, re from lib.regexlib import ValidIpv4AddressRegex, AllValidIpv6AddressesRegex, LinuxMacFormat +import pexpect class LinuxDevice(base.BaseDevice): '''Linux implementations ''' @@ -196,3 +197,97 @@ def set_cli_size(self, columns): '''Set the terminal colums value''' self.sendline('stty columns %s'%str(columns)) self.expect(self.prompt) + + def wait_for_linux(self): + '''Verify Linux starts up.''' + i = self.expect(['Reset Button Push down', 'Linux version', 'Booting Linux', 'Starting kernel ...', 'Kernel command line specified:'], timeout=45) + if i == 0: + self.expect('httpd') + self.sendcontrol('c') + self.expect(self.uprompt) + self.sendline('boot') + i = self.expect(['U-Boot', 'login:', 'Please press Enter to activate this console'] + self.prompt, timeout=150) + if i == 0: + raise Exception('U-Boot came back when booting kernel') + elif i == 1: + self.sendline('root') + if 0 == self.expect(['assword:'] + self.prompt): + self.sendline('password') + self.expect(self.prompt) + + def get_dns_server_upstream(self): + '''Get the IP of name server''' + self.sendline('cat /etc/resolv.conf') + self.expect('nameserver (.*)\r\n', timeout=5) + ret = self.match.group(1) + self.expect(self.prompt) + return ret + + def get_nf_conntrack_conn_count(self): + '''Get the total number of connections in the network''' + pp = self.get_pp_dev() + + for not_used in range(5): + try: + pp.sendline('cat /proc/sys/net/netfilter/nf_conntrack_count') + pp.expect_exact('cat /proc/sys/net/netfilter/nf_conntrack_count', timeout=2) + pp.expect(pp.prompt, timeout=15) + ret = int(pp.before.strip()) + + self.touch() + return ret + except: + continue + else: + raise Exception("Unable to extract nf_conntrack_count!") + + def get_proc_vmstat(self, pp=None): + '''Get the virtual machine status ''' + if pp is None: + pp = self.get_pp_dev() + + for not_used in range(5): + try: + pp.sendline('cat /proc/vmstat') + pp.expect_exact('cat /proc/vmstat') + pp.expect(pp.prompt) + results = re.findall('(\w+) (\d+)', pp.before) + ret = {} + for key, value in results: + ret[key] = int(value) + + return ret + except Exception as e: + print(e) + continue + else: + raise Exception("Unable to parse /proc/vmstat!") + + def wait_for_network(self): + '''Wait until network interfaces have IP Addresses.''' + for interface in [self.wan_iface, self.lan_iface]: + for i in range(5): + try: + if interface is not None: + ipaddr = self.get_interface_ipaddr(interface).strip() + if not ipaddr: + continue + self.sendline("route -n") + self.expect(interface, timeout=2) + self.expect(self.prompt) + except pexpect.TIMEOUT: + print("waiting for wan/lan ipaddr") + else: + break + + def get_memfree(self): + '''Return the kB of free memory.''' + # free pagecache, dentries and inodes for higher accuracy + self.sendline('\nsync; echo 3 > /proc/sys/vm/drop_caches') + self.expect('drop_caches') + self.expect(self.prompt) + self.sendline('cat /proc/meminfo | head -2') + self.expect('MemFree:\s+(\d+) kB') + memFree = self.match.group(1) + self.expect(self.prompt) + return int(memFree) diff --git a/devices/oe.py b/devices/oe.py new file mode 100644 index 00000000..602c5a70 --- /dev/null +++ b/devices/oe.py @@ -0,0 +1,8 @@ +import linux, os, re + +class OpenEmbedded(linux.LinuxDevice): + '''OE core implementation''' + + def install_package(self, pkg): + '''Install packages ''' + raise Exception("Not implemented!") diff --git a/devices/openwrt_router.py b/devices/openwrt_router.py index c3fa0b9e..4d2c735d 100644 --- a/devices/openwrt_router.py +++ b/devices/openwrt_router.py @@ -52,9 +52,7 @@ class OpenWrtRouter(linux.LinuxDevice): routing = True lan_network = ipaddress.IPv4Network(u"192.168.1.0/24") lan_gateway = ipaddress.IPv4Address(u"192.168.1.1") - tmpdir = "/tmp" - def __init__(self, model, conn_cmd, @@ -107,43 +105,7 @@ def __init__(self, self.tftp_server = None atexit.register(self.kill_console_at_exit) - def reset(self, break_into_uboot=False): - '''Power-cycle this device.''' - if not break_into_uboot: - self.power.reset() - return - for attempt in range(3): - try: - self.power.reset() - self.expect('U-Boot', timeout=30) - self.expect('Hit any key ') - self.sendline('\n\n\n\n\n\n\n') # try really hard - self.expect(self.uprompt, timeout=4) - # Confirm we are in uboot by typing any command. - # If we weren't in uboot, we wouldn't see the command - # that we type. - self.sendline('echo FOO') - self.expect('echo FOO', timeout=4) - self.expect(self.uprompt, timeout=4) - return - except Exception as e: - print(e) - print("\nWe appeared to have failed to break into U-Boot...") - - - def get_memfree(self): - '''Return the kB of free memory.''' - # free pagecache, dentries and inodes for higher accuracy - self.sendline('\nsync; echo 3 > /proc/sys/vm/drop_caches') - self.expect('drop_caches') - self.expect(self.prompt) - self.sendline('cat /proc/meminfo | head -2') - self.expect('MemFree:\s+(\d+) kB') - memFree = self.match.group(1) - self.expect(self.prompt) - return int(memFree) - - def get_file(self, fname, lan_ip="192.168.1.1"): + def get_file(self, fname, lan_ip=lan_gateway): ''' OpenWrt routers have a webserver, so we use that to download the file via a webproxy (e.g. a device on the board's LAN). @@ -233,25 +195,6 @@ def install_package(self, fname): self.sendline("rm -f /%s" % target_file) self.expect(self.prompt) - def check_memory_addresses(self): - '''Check/set memory addresses and size for proper flashing.''' - pass - - def flash_uboot(self, uboot): - raise Exception('Code not written for flash_uboot for this board type, %s' % self.model) - - def flash_rootfs(self, ROOTFS): - raise Exception('Code not written for flash_rootfs for this board type, %s' % self.model) - - def flash_linux(self, KERNEL): - raise Exception('Code not written for flash_linux for this board type, %s.' % self.model) - - def flash_meta(self, META_BUILD, wan, lan): - raise Exception('Code not written for flash_meta for this board type, %s.' % self.model) - - def prepare_nfsroot(self, NFSROOT): - raise Exception('Code not written for prepare_nfsroot for this board type, %s.' % self.model) - def wait_for_boot(self): ''' Break into U-Boot. Check memory locations and sizes, and set @@ -289,26 +232,6 @@ def wait_for_boot(self): self.expect(["Writing to Nand... done", "Protected 1 sectors", "Saving Environment to NAND...", 'Saving Environment to FAT...']) self.expect(self.uprompt) - def kill_console_at_exit(self): - self.kill(signal.SIGKILL) - - def wait_for_network(self): - '''Wait until network interfaces have IP Addresses.''' - for interface in [self.wan_iface, self.lan_iface]: - for i in range(5): - try: - if interface is not None: - ipaddr = self.get_interface_ipaddr(interface).strip() - if not ipaddr: - continue - self.sendline("route -n") - self.expect(interface, timeout=2) - self.expect(self.prompt) - except pexpect.TIMEOUT: - print("waiting for wan/lan ipaddr") - else: - break - def network_restart(self): '''Restart networking.''' self.sendline('\nifconfig') @@ -398,36 +321,6 @@ def setup_uboot_network(self, tftp_server=None): self.sendline('saveenv') self.expect(self.uprompt) - def boot_linux(self, rootfs=None, bootargs=""): - print("\nWARNING: We don't know how to boot this board to linux " - "please write the code to do so.") - - def wait_for_linux(self): - '''Verify Linux starts up.''' - i = self.expect(['Reset Button Push down', 'Linux version', 'Booting Linux', 'Starting kernel ...', 'Kernel command line specified:'], timeout=45) - if i == 0: - self.expect('httpd') - self.sendcontrol('c') - self.expect(self.uprompt) - self.sendline('boot') - i = self.expect(['U-Boot', 'login:', 'Please press Enter to activate this console'] + self.prompt, timeout=150) - if i == 0: - raise Exception('U-Boot came back when booting kernel') - elif i == 1: - self.sendline('root') - if 0 == self.expect(['assword:'] + self.prompt): - self.sendline('password') - self.expect(self.prompt) - - # Give things time to start or crash on their own. - # Some things, like wifi, take a while. - self.expect(pexpect.TIMEOUT, timeout=40) - self.sendline('\r') - self.expect(self.prompt) - self.sendline('uname -a') - self.expect('Linux ') - self.expect(self.prompt) - def config_wan_proto(self, proto): '''Set protocol for WAN interface.''' if "dhcp" in proto: @@ -446,6 +339,14 @@ def config_wan_proto(self, proto): self.network_restart() self.expect(pexpect.TIMEOUT, timeout=10) + def enable_mgmt_gui(self): + '''Allow access to webgui from devices on WAN interface ''' + self.uci_allow_wan_http(self.lan_gateway) + + def enable_ssh(self): + '''Allow ssh on wan interface ''' + self.uci_allow_wan_ssh(self.lan_gateway) + def uci_allow_wan_http(self, lan_ip="192.168.1.1"): '''Allow access to webgui from devices on WAN interface.''' self.uci_forward_traffic_redirect("tcp", "80", lan_ip) @@ -494,31 +395,21 @@ def uci_forward_traffic_rule(self, tcp_udp, port, ip, target="ACCEPT"): self.firewall_restart() def wait_for_mounts(self): - # wait for overlay to finish mounting - for i in range(5): - try: - board.sendline('mount') - board.expect_exact('overlayfs:/overlay on / type overlay', timeout=15) - board.expect(self.prompt) - break - except: - pass - else: - print("WARN: Overlay still not mounted") + '''wait for overlay to finish mounting''' + for i in range(5): + try: + board.sendline('mount') + board.expect_exact('overlayfs:/overlay on / type overlay', timeout=15) + board.expect(prompt) + break + except: + pass + else: + print("WARN: Overlay still not mounted") def get_dns_server(self): - return "%s" % lan_gateway - - def get_dns_server_upstream(self): - self.sendline('cat /etc/resolv.conf') - self.expect('nameserver (.*)\r\n', timeout=5) - ret = self.match.group(1) - self.expect(self.prompt) - return ret - - def touch(self): - '''Keeps consoles active, so they don't disconnect for long running activities''' - self.sendline() + '''Getting dns server ip address ''' + return "%s" %self.lan_gateway def get_user_id(self, user_id): self.sendline('cat /etc/passwd | grep -w ' + user_id) @@ -527,51 +418,9 @@ def get_user_id(self, user_id): self.expect(self.prompt) return 0 == idx - def enable_mgmt_gui(self, board, wan): - print('WARNING: Code not written for enable_mgmt_gui for this board type, %s' % self.model) - def get_pp_dev(self): return self - def get_nf_conntrack_conn_count(self): - pp = self.get_pp_dev() - - for not_used in range(5): - try: - pp.sendline('cat /proc/sys/net/netfilter/nf_conntrack_count') - pp.expect_exact('cat /proc/sys/net/netfilter/nf_conntrack_count', timeout=2) - pp.expect(pp.prompt, timeout=15) - ret = int(pp.before.strip()) - - self.touch() - return ret - except: - continue - else: - raise Exception("Unable to extract nf_conntrack_count!") - - def get_proc_vmstat(self, pp=None): - # could be useful for both cores - if pp is None: - pp = self.get_pp_dev() - - for not_used in range(5): - try: - pp.sendline('cat /proc/vmstat') - pp.expect_exact('cat /proc/vmstat') - pp.expect(pp.prompt) - results = re.findall('(\w+) (\d+)', pp.before) - ret = {} - for key, value in results: - ret[key] = int(value) - - return ret - except Exception as e: - print(e) - continue - else: - raise Exception("Unable to parse /proc/vmstat!") - def collect_stats(self, stats=[]): pp = self.get_pp_dev() self.stats = [] diff --git a/tests/selftest.py b/tests/selftest.py index 71698933..ab1aa38e 100644 --- a/tests/selftest.py +++ b/tests/selftest.py @@ -248,6 +248,30 @@ def runTest(self): lan.sendline('md5sum /tmp/dst.txt') lan.expect(fmd5) lan.expect(lan.prompt) + + '''FUnctions moved from openwrt to linux ''' + #Wait until network interfaces have IP Addresses + board.wait_for_network() + print "Waited until network interfaces has ip address" + + #Check the available memory of the device + memory_avail = board.get_memfree() + print 'Available memory of the device:{}'.format(memory_avail) + + #Getting the vmstat + vmstat_out = board.get_proc_vmstat() + assert vmstat_out is not None, 'virtual machine status is None' + print "Got the vmstat{}".format(vmstat_out) + + #Get the total number of connections in the network + nw_count = board.get_nf_conntrack_conn_count() + assert nw_count is not None , 'connections are empty' + print 'Get the total number of connections in the network{}'.format(nw_count) + + #Getting the DNS server upstream + ip_addr = board.get_dns_server_upstream() + assert ip_addr is not None, 'Getting nameserver ip is None' + print "Got the DNS server upstream{}".format(ip_addr) print('Test Passed') class SnmpMibsUnitTest(object): From 99fbdbabb67076cb226c9b5eef4b4c0b2043e53f Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Thu, 1 Aug 2019 10:57:17 -0500 Subject: [PATCH 923/947] zephyr_reporter.py: Remove unused or repeated imports Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I2387849eaf5bcc96cb4513dd97d2ea4fdda6e0c8 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463921 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Mike Anderson <mikeanderson@mcclintock.net> --- zephyr/zephyr_reporter.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/zephyr/zephyr_reporter.py b/zephyr/zephyr_reporter.py index 494324a2..e4f2dec0 100644 --- a/zephyr/zephyr_reporter.py +++ b/zephyr/zephyr_reporter.py @@ -1,16 +1,11 @@ #!/usr/bin/python2 import argparse import os -import sys -import re import csv import datetime import json -from pprint import pprint -from time import gmtime, strftime from jira import JIRA import zapi -from jira import JIRA import requests COLUMN_SCRIPT_NAME="TestScript Name" From 7de8c2f7b123d3494f0580e86beb72d253784a08 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Mon, 5 Aug 2019 19:22:23 -0500 Subject: [PATCH 924/947] pyflakes: Remove unused exception variables Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ib1386f58e7fa0b68657ba4180956a44c99a78144 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464247 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Mike Anderson <mikeanderson@mcclintock.net> --- devices/kermit_connection.py | 2 +- devices/local_cmd.py | 2 +- devices/local_serial_connection.py | 2 +- devices/qemu.py | 2 +- devices/ser2net_connection.py | 2 +- devices/ssh_connection.py | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/devices/kermit_connection.py b/devices/kermit_connection.py index 77c7e0ca..7c115e7f 100644 --- a/devices/kermit_connection.py +++ b/devices/kermit_connection.py @@ -33,7 +33,7 @@ def connect(self): if 0 == self.device.expect(['Welcome to Microsoft Telnet Service', pexpect.TIMEOUT], timeout=10): # MS telnet server does weird things... this sendline should get the 'login:' prompt self.device.sendline() - except pexpect.EOF as e: + except pexpect.EOF: raise Exception("Board is in use (connection refused).") def close(self): diff --git a/devices/local_cmd.py b/devices/local_cmd.py index c49b1015..3da35bc3 100644 --- a/devices/local_cmd.py +++ b/devices/local_cmd.py @@ -14,7 +14,7 @@ def connect(self): command='/bin/bash', args=['-c', self.conn_cmd]) self.device.expect(pexpect.TIMEOUT, timeout=5) - except pexpect.EOF as e: + except pexpect.EOF: raise Exception("Board is in use (connection refused).") def close(self): diff --git a/devices/local_serial_connection.py b/devices/local_serial_connection.py index c3e58904..e34da656 100644 --- a/devices/local_serial_connection.py +++ b/devices/local_serial_connection.py @@ -17,7 +17,7 @@ def connect(self): args=['-c', self.conn_cmd]) try: result = self.device.expect([telnet_ipv4_conn, "----------------------------------------------------"]) - except pexpect.EOF as e: + except pexpect.EOF: raise Exception("Board is in use (connection refused).") def close(self): diff --git a/devices/qemu.py b/devices/qemu.py index 2c8b2664..a4ccae75 100644 --- a/devices/qemu.py +++ b/devices/qemu.py @@ -94,7 +94,7 @@ def temp_download(url): pexpect.spawn.__init__(self, command='/bin/bash', args=["-c", cmd], env=env) self.expect(pexpect.TIMEOUT, timeout=1) - except pexpect.EOF as e: + except pexpect.EOF: self.pid = None if 'failed to initialize KVM: Device or resource busy' in self.before or \ 'failed to initialize KVM: Cannot allocate memory' in self.before: diff --git a/devices/ser2net_connection.py b/devices/ser2net_connection.py index 595283ff..c7e9ccf6 100644 --- a/devices/ser2net_connection.py +++ b/devices/ser2net_connection.py @@ -12,7 +12,7 @@ def connect(self): try: result = self.device.expect(["assword:", "ser2net.*\r\n", "OpenGear Serial Server", "to access the port escape menu"]) - except pexpect.EOF as e: + except pexpect.EOF: raise Exception("Board is in use (connection refused).") if result == 0: raise Exception("Password required and not supported") diff --git a/devices/ssh_connection.py b/devices/ssh_connection.py index 18696af4..4d2e79cc 100644 --- a/devices/ssh_connection.py +++ b/devices/ssh_connection.py @@ -22,7 +22,7 @@ def connect(self): if result == 2: self.device.sendline("yes") result = self.device.expect(["assword:", "passphrase"] + self.device.prompt) - except pexpect.EOF as e: + except pexpect.EOF: raise Exception("Board is in use (connection refused).") if result == 0 or result == 1: assert self.ssh_password is not None, "Please add ssh_password in your json configuration file." From cd6f05118dbaa1b9696677a1d60123b0d22ce83c Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Fri, 2 Aug 2019 13:20:01 -0500 Subject: [PATCH 925/947] Default output directory involve current working dir This has no functional change for boardfarm as it is now because currently you can only run bft from one single directory. But someday soon we will be able to run bft from any directory. When that happens let's set the default output directory to be "results/" within the user's current working directory. Otherwise the default directory will be in some random other directory wherever they install python modules. Not good. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I597a9bf7dd7e195181b711a802531ebaf97b5d0a Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464033 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- arguments.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arguments.py b/arguments.py index 47acd645..b971c8c7 100755 --- a/arguments.py +++ b/arguments.py @@ -65,7 +65,7 @@ def parse(): parser.add_argument('-l', '--list_tests', action='store_true', help='List available tests and exit') parser.add_argument('-m', '--meta_img_loc', metavar='', type=str, default=None, help='URL or file PATH to meta image to flash') parser.add_argument('-n', '--board_names', metavar='', type=str, nargs='+', default=[], help='NAME(s) of boards to run on') - owrt_tests_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "results", '') + owrt_tests_dir = os.path.join(os.getcwd(), "results", '') parser.add_argument('-o', '--output_dir', metavar='', type=str, default=owrt_tests_dir, help='Directory to output results files too') parser.add_argument('-p', '--package', metavar='', type=str, action="append", default=None, help='URL or file PATH of ipk install after boot') parser.add_argument('-q', '--feature', metavar='', type=str, default=[], nargs='+', help='Features required for this test run') From af885618a7d2293c0abd491ddeed6edde5ae093d Mon Sep 17 00:00:00 2001 From: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Date: Wed, 31 Jul 2019 17:10:39 +0530 Subject: [PATCH 926/947] devices: Moved arris_cmts, casa_cmts, base_cmts to boardfarm-docsis Signed-off-by: Shakthi Ravichandran <sravichandran.contractor@libertyglobal.com> Change-Id: I9647f91d764eb05184604b8c71571f56a991e22d Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463781 Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> Tested-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/arris_cmts.py | 215 --------------- devices/base_cmts.py | 58 ---- devices/casa_cmts.py | 616 ------------------------------------------ 3 files changed, 889 deletions(-) delete mode 100644 devices/arris_cmts.py delete mode 100644 devices/base_cmts.py delete mode 100644 devices/casa_cmts.py diff --git a/devices/arris_cmts.py b/devices/arris_cmts.py deleted file mode 100644 index f6fd5420..00000000 --- a/devices/arris_cmts.py +++ /dev/null @@ -1,215 +0,0 @@ -# Copyright (c) 2018 -# -# All rights reserved. -# -# This file is distributed under the Clear BSD license. -# The full text can be found in LICENSE in the root directory. -#!/usr/bin/env python - -import pexpect -import sys - -import re -import connection_decider -import base_cmts -from lib.regexlib import AllValidIpv6AddressesRegex, ValidIpv4AddressRegex - - -class ArrisCMTS(base_cmts.BaseCmts): - ''' - Connects to and configures a Arris CMTS - ''' - - prompt = ['arris(.*)>', 'arris(.*)#', 'arris\(.*\)> ', 'arris\(.*\)# '] - model = "arris_cmts" - - class ArrisCMTSDecorators(): - - @classmethod - def mac_to_cmts_type_mac_decorator(cls, function): - def wrapper(*args, **kwargs): - #import pdb; pdb.set_trace() - args = list(args) - if ':' in args[1]: - args[1] = args[0].get_cm_mac_cmts_format(args[1]) - return function(*args) - return wrapper - - def __init__(self, - *args, - **kwargs): - conn_cmd = kwargs.get('conn_cmd', None) - connection_type = kwargs.get('connection_type', 'local_serial') - self.username = kwargs.get('username', 'boardfarm') - self.password = kwargs.get('password', 'boardfarm') - self.password_admin = kwargs.get('password_admin', 'boardfarm') - self.mac_domain = kwargs.get('mac_domain', None) - - if conn_cmd is None: - # TODO: try to parse from ipaddr, etc - raise Exception("No command specified to connect to Arris CMTS") - - self.connection = connection_decider.connection(connection_type, device=self, conn_cmd=conn_cmd) - self.connection.connect() - self.connect() - self.logfile_read = sys.stdout - - self.name = kwargs.get('name', self.model) - - def connect(self): - try: - try: - self.expect_exact("Escape character is '^]'.", timeout=5) - except: - pass - self.sendline() - if 1 != self.expect(['\r\nLogin:', pexpect.TIMEOUT], timeout=10): - self.sendline(self.username) - self.expect('assword:') - self.sendline(self.password) - self.expect(self.prompt) - else: - # Over telnet we come in at the right prompt - # over serial we could have a double login - # not yet implemented - raise('Failed to connect to Arris via telnet') - self.sendline('enable') - if 0 == self.expect(['Password:'] + self.prompt): - self.sendline(self.password_admin) - self.expect(self.prompt) - self.sendline('config') - self.expect('Enter configuration commands, one per line. End with exit or quit or CTRL Z') - self.expect(self.prompt) - self.sendline('pagination') - self.expect(self.prompt) - return - except: - raise Exception("Unable to get prompt on CASA device") - - def logout(self): - self.sendline('exit') - self.sendline('exit') - - @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator - def check_online(self, cmmac): - """ - Function checks the encrytion mode and returns True if online - Args: cmmac - Return: True if the CM is operational - The actual status otherwise - """ - self.sendline('show cable modem %s detail' % cmmac) - self.expect(self.prompt) - if 'State=Operational' in self.before: - return True - else: - return re.findall('State=(.*?\s)', self.before)[0].strip() - - @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator - def clear_offline(self, cmmac): - """ - Reset a modem - Args: cmmac - """ - self.sendline('exit') - self.expect(self.prompt) - self.sendline('clear cable modem %s offline' % cmmac) - self.expect(self.prompt) - self.sendline('configure') - self.expect(self.prompt) - - @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator - def clear_cm_reset(self, cmmac): - """ - Reset a modem - Args: cmmac - """ - self.sendline('exit') - self.expect(self.prompt) - """ NB: this command does not reboot the CM, but forces it to reinitialise """ - self.sendline("clear cable modem %s reset" % cmmac) - self.expect(self.prompt) - self.sendline('configure') - self.expect(self.prompt) - - @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator - def get_mtaip(self, cmmac, mtamac): - """ - Gets the mta ip address - Args: cmmac, mtamac(not used) - Return: mta ip or None if not found - """ - self.sendline('show cable modem %s detail | include MTA' % (cmmac)) - self.expect('CPE\(MTA\)\s+.*IPv4=(' + ValidIpv4AddressRegex + ')\r\n') - result = self.match.group(1) - if self.match != None: - output = result - else: - output = "None" - self.expect(self.prompt) - return output - - @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator - def get_ip_from_regexp(self, cmmac, ip_regexpr): - """ - Gets an ip address according to a regexpr (helper function) - Args: cmmac, ip_regexpr - Return: ip addr (ipv4/6 according to regexpr) or None if not found - """ - self.sendline('show cable modem | include %s' % cmmac) - if 1 == self.expect([cmmac + '\s+(' + ip_regexpr + ')', pexpect.TIMEOUT], timeout=2): - output = "None" - else: - result = self.match.group(1) - if self.match != None: - output = result - else: - output = "None" - self.expect(self.prompt) - return output - - def get_cmip(self, cmmac): - """ - Returns the CM mgmt ipv4 address - Args: cmmac - Return: ip addr (ipv4) or None if not found - """ - return self.get_ip_from_regexp(cmmac, ValidIpv4AddressRegex) - - def get_cmipv6(self, cmmac): - """ - Returns the CM mgmt ipv6 address - Args: cmmac - Return: ip addr (ipv4) or None if not found - """ - return self.get_ip_from_regexp(cmmac, AllValidIpv6AddressesRegex) - - @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator - def get_cm_mac_domain(self, cm_mac): - """ - Returns the Mac-domain of Cable modem - Args: cm_mac - Return: ip addr (ipv4) or None if not found - """ - mac_domain = None - self.sendline('show cable modem %s detail | include Cable-Mac=' % cm_mac) - if 0 == self.expect(['Cable-Mac= ([0-9]{1,3}),', pexpect.TIMEOUT], timeout=5): - mac_domain = self.match.group(1) - self.expect(self.prompt) - return mac_domain - - @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator - def check_PartialService(self, cmmac): - self.sendline('show cable modem %s | include impaired' % cmmac) - self.expect('\(impaired:\s') - match = self.match.group(1) - self.expect(self.prompt) - return match != None - - @ArrisCMTSDecorators.mac_to_cmts_type_mac_decorator - def DUT_chnl_lock(self, cm_mac): - """Check the CM channel locks with 24*8 """ - self.sendline("show cable modem | include %s" % cm_mac) - index = self.expect(["(24x8)"], timeout=3) - self.expect(self.prompt) - return 0 == index diff --git a/devices/base_cmts.py b/devices/base_cmts.py deleted file mode 100644 index 34909ada..00000000 --- a/devices/base_cmts.py +++ /dev/null @@ -1,58 +0,0 @@ -import base - - -class BaseCmts(base.BaseDevice): - ''' - Common API for the CMTS type devices - ''' - model = "undefined" - - def connect(self): - raise Exception("Not implemented!") - - def logout(self): - raise Exception("Not implemented!") - - def check_online(self, cmmac): - raise Exception("Not implemented!") - - def get_cmip(self, cmmac): - raise Exception("Not implemented!") - - def get_cmipv6(self, cmmac): - raise Exception("Not implemented!") - - def get_mtaip(self, cmmac, mtamac): - raise Exception("Not implemented!") - - # this should be get_md_bundle - def get_cm_bundle(self, mac_domain): - raise Exception("Not implemented!") - - def get_cm_mac_domain(self, cm_mac): - raise Exception("Not implemented!") - - def get_cmts_ip_bundle(self, bundle): - raise Exception("Not implemented!") - - def get_cmts_model(self): - return self.model - - def clear_offline(self, cmmac): - raise Exception("Not implemented!") - - def clear_cm_reset(self, cmmac): - raise Exception("Not implemented!") - - def get_cm_mac_cmts_format(self, mac): - """ - Function: get_cm_mac_cmts_format(mac) - Parameters: mac (mac address XX:XX:XX:XX:XX:XX) - returns: the cm_mac in cmts format xxxx.xxxx.xxxx (lowercase) - """ - if mac == None: - return None - # the mac cmts syntax format example is 3843.7d80.0ac0 - tmp = mac.replace(':', '') - mac_cmts_format = tmp[:4]+"."+tmp[4:8]+"."+tmp[8:] - return mac_cmts_format.lower() diff --git a/devices/casa_cmts.py b/devices/casa_cmts.py deleted file mode 100644 index 539419f4..00000000 --- a/devices/casa_cmts.py +++ /dev/null @@ -1,616 +0,0 @@ -# Copyright (c) 2018 -# -# All rights reserved. -# -# This file is distributed under the Clear BSD license. -# The full text can be found in LICENSE in the root directory. -#!/usr/bin/env python - -import pexpect -import sys -import re -import connection_decider -from lib.regexlib import ValidIpv6AddressRegex, ValidIpv4AddressRegex, AllValidIpv6AddressesRegex -import base_cmts - - -class CasaCMTS(base_cmts.BaseCmts): - ''' - Connects to and configures a CASA CMTS - ''' - - prompt = ['CASA-C3200>', 'CASA-C3200#', 'CASA-C3200\(.*\)#', 'CASA-C10G>', 'CASA-C10G#', 'CASA-C10G\(.*\)#'] - model = "casa_cmts" - - def __init__(self, - *args, - **kwargs): - conn_cmd = kwargs.get('conn_cmd', None) - connection_type = kwargs.get('connection_type', 'local_serial') - self.username = kwargs.get('username', 'root') - self.password = kwargs.get('password', 'casa') - self.password_admin = kwargs.get('password_admin', 'casa') - self.mac_domain = kwargs.get('mac_domain', None) - - if conn_cmd is None: - # TODO: try to parse from ipaddr, etc - raise Exception("No command specified to connect to Casa CMTS") - - self.connection = connection_decider.connection(connection_type, device=self, conn_cmd=conn_cmd) - self.connection.connect() - self.connect() - self.logfile_read = sys.stdout - - self.name = kwargs.get('name', 'casa_cmts') - - def connect(self): - try: - try: - self.expect_exact("Escape character is '^]'.", timeout=30) - except: - pass - if 2 != self.expect(['\r\n(.*) login:', '(.*) login:', pexpect.TIMEOUT], timeout=10): - hostname = self.match.group(1).replace('\n', '').replace('\r', '').strip() - self.prompt.append(hostname + '>') - self.prompt.append(hostname + '#') - self.prompt.append(hostname + '\(.*\)#') - self.sendline(self.username) - self.expect('assword:') - self.sendline(self.password) - self.expect(self.prompt) - else: - # Over telnet we come in at the right prompt - # over serial it could be stale so we try to recover - self.sendline('q') - self.sendline('exit') - self.expect([pexpect.TIMEOUT] + self.prompt, timeout=20) - self.sendline('enable') - if 0 == self.expect(['Password:'] + self.prompt): - self.sendline(self.password_admin) - self.expect(self.prompt) - self.sendline('config') - self.expect(self.prompt) - self.sendline('page-off') - self.expect(self.prompt) - return - except: - raise Exception("Unable to get prompt on CASA device") - - def logout(self): - self.sendline('exit') - self.sendline('exit') - - def check_online(self, cmmac): - """Function checks the encrytion mode and returns True if online""" - """Function returns actual status if status other than online""" - self.sendline('show cable modem %s' % cmmac) - self.expect('.+ranging cm \d+') - result = self.match.group() - match = re.search('\d+/\d+/\d+\**\s+([^\s]+)\s+\d+\s+.+\d+\s+(\w+)\r\n', result) - if match: - status = match.group(1) - encrytion = match.group(2) - if status == "online(pt)" and encrytion == "yes": - output = True - elif status == "online" and encrytion == "no": - output = True - elif "online" not in status and status != None: - output = status - else: - assert 0, "ERROR: incorrect cmstatus \""+status+"\" in cmts for bpi encrytion \""+encrytion+"\"" - else: - assert 0, "ERROR: Couldn't fetch CM status from cmts" - self.expect(self.prompt) - return output - - def clear_offline(self, cmmac): - self.sendline('clear cable modem %s offline' % cmmac) - self.expect(self.prompt) - - def clear_cm_reset(self, cmmac): - self.sendline("clear cable modem %s reset" % cmmac) - self.expect(self.prompt) - - def check_PartialService(self, cmmac): - self.sendline('show cable modem %s' % cmmac) - self.expect('(\d+/\d+\.\d+/\d+(\*|\#)\s+\d+/\d+/\d+(\*|\#))\s+online') - result = self.match.group(1) - match = re.search('\#', result) - if match != None: - output = 1 - else: - output = 0 - self.expect(self.prompt) - return output - - def get_cmip(self, cmmac): - tmp = cmmac.replace(":", "").lower() - cmmac_cmts = tmp[:4]+"." + tmp[4:8]+"."+tmp[8:] - self.sendline('show cable modem %s' % cmmac) - self.expect(cmmac_cmts + '\s+([\d\.]+)') - result = self.match.group(1) - if self.match != None: - output = result - else: - output = "None" - self.expect(self.prompt) - return output - - def get_cmipv6(self, cmmac): - self.sendline('show cable modem %s' % cmmac) - self.expect(self.prompt) - match = re.search(AllValidIpv6AddressesRegex, self.before) - if match: - output = match.group(0) - else: - output = "None" - return output - - def get_mtaip(self, cmmac, mtamac): - if ':' in mtamac: - mtamac = self.get_cm_mac_cmts_format(mtamac) - self.sendline('show cable modem %s cpe' % cmmac) - self.expect('([\d\.]+)\s+dhcp\s+' + mtamac) - result = self.match.group(1) - if self.match != None: - output = result - else: - output = "None" - self.expect(self.prompt) - return output - - def DUT_chnl_lock(self, cm_mac): - """Check the CM channel locks based on cmts type""" - streams = ['Upstream', 'Downstream'] - channel_list = [] - for stream in streams: - self.sendline("show cable modem %s verbose | inc \"%s Channel Set\"" % (cm_mac, stream)) - self.expect(self.prompt) - if stream == 'Upstream': - match = re.search('(\d+/\d+.\d+/\d+).+', self.before) - elif stream == 'Downstream': - match = re.search('(\d+/\d+/\d+).+', self.before) - channel = len(match.group().split(",")) - channel_list.append(channel) - return channel_list - - def get_cm_bundle(self, mac_domain): - """Get the bundle id from mac-domain """ - self.sendline('show interface docsis-mac '+mac_domain+' | i "ip bundle"') - index = self.expect(['(ip bundle)[ ]{1,}([0-9]|[0-9][0-9])'] + self.prompt) - if index != 0: - assert 0, "ERROR:Failed to get the CM bundle id from CMTS" - bundle = self.match.group(2) - self.expect(self.prompt) - return bundle - - def get_cm_mac_domain(self, cm_mac): - """Get the Mac-domain of Cable modem """ - self.sendline('show cable modem '+cm_mac+' verbose | i "MAC Domain"') - idx = self.expect(['(MAC Domain)[ ]{2,}\:([0-9]|[0-9][0-9])'] + self.prompt) - if idx != 0: - assert 0, "ERROR: Failed to get the CM Mac Domain from the CMTS" - mac_domain = self.match.group(2) - self.expect(self.prompt) - return mac_domain - - def get_cmts_ip_bundle(self, bundle): - """get the CMTS bundle IP""" - import devices - from devices import provisioner - if hasattr(devices, 'provisioner') and hasattr(devices.provisioner, 'open_gateway'): - gw_ip = provisioner.open_gateway - else: - gw_ip = ValidIpv4AddressRegex - - self.sendline('show interface ip-bundle %s | i secondary' % bundle) - self.expect(self.prompt) - cmts_ip = re.search('ip address (%s) .* secondary' % gw_ip, self.before) - if cmts_ip: - cmts_ip = cmts_ip.group(1) - else: - assert 0, "ERROR: Failed to get the CMTS bundle IP" - return cmts_ip - - def reset(self): - self.sendline('exit') - self.expect(self.prompt) - self.sendline('del startup-config') - self.expect('Please type YES to confirm deleting startup-config:') - self.sendline('YES') - self.expect(self.prompt) - self.sendline('system reboot') - if 0 == self.expect(['Proceed with reload\? please type YES to confirm :', 'starting up console shell ...'], timeout=180): - self.sendline('YES') - self.expect('starting up console shell ...', timeout=150) - self.sendline() - self.expect(self.prompt) - self.sendline('page-off') - self.expect(self.prompt) - self.sendline('enable') - self.expect('Password:') - self.sendline(self.password) - self.expect(self.prompt) - self.sendline('config') - self.expect(self.prompt) - - def wait_for_ready(self): - self.sendline('show system') - while 0 == self.expect(['NotReady'] + self.prompt): - self.expect(self.prompt) - self.expect(pexpect.TIMEOUT, timeout=5) - self.sendline('show system') - - def save_running_to_startup_config(self): - self.sendline('exit') - self.expect(self.prompt) - self.sendline('copy running-config startup-config') - self.expect(self.prompt) - self.sendline('config') - self.expect(self.prompt) - - def save_running_config_to_local(self, filename): - self.sendline('show running-config') - self.expect('show running-config') - self.expect(self.prompt) - - f = open(filename, "w") - f.write(self.before) - f.close() - - def set_iface_ipaddr(self, iface, ipaddr): - self.sendline('interface %s' % iface) - self.expect(self.prompt) - self.sendline('ip address %s' % ipaddr) - self.expect(self.prompt) - self.sendline('no shutdown') - self.expect(self.prompt) - self.sendline('exit') - self.expect(self.prompt) - - def set_iface_ipv6addr(self, iface, ipaddr): - self.sendline('interface %s' % iface) - self.expect(self.prompt) - self.sendline('ipv6 address %s' % ipaddr) - self.expect(self.prompt) - self.sendline('no shutdown') - self.expect(self.prompt) - self.sendline('exit') - self.expect(self.prompt) - - def add_ip_bundle(self, index, helper_ip, ip, secondary_ips=[]): - self.sendline('interface ip-bundle %s' % index) - self.expect(self.prompt) - self.sendline('ip address %s 255.255.255.0' % ip) - self.expect(self.prompt) - for ip2 in secondary_ips: - self.sendline('ip address %s 255.255.255.0 secondary' % ip2) - self.expect(self.prompt) - self.sendline('cable helper-address %s cable-modem' % helper_ip) - self.expect(self.prompt) - self.sendline('cable helper-address %s mta' % helper_ip) - self.expect(self.prompt) - self.sendline('cable helper-address %s host' % helper_ip) - self.expect(self.prompt) - self.sendline('exit') - self.expect(self.prompt) - - def add_ipv6_bundle_addrs(self, index, helper_ip, ip, secondary_ips=[]): - self.sendline('interface ip-bundle %s' % index) - self.expect(self.prompt) - self.sendline('ipv6 address %s' % ip) - self.expect(self.prompt) - for ip2 in secondary_ips: - self.sendline('ipv6 address %s secondary' % ip2) - self.expect(self.prompt) - self.sendline('cable helper-ipv6-address %s' % helper_ip) - self.expect(self.prompt) - self.sendline('exit') - self.expect(self.prompt) - - def add_route(self, net, mask, gw): - self.sendline('route net %s %s gw %s' % (net, mask, gw)) - self.expect(self.prompt) - - def add_route6(self, net, gw): - self.sendline('route6 net %s gw %s' % (net, gw)) - self.expect(self.prompt) - - def get_qam_module(self): - self.sendline('show system') - self.expect(self.prompt) - return re.findall('Module (\d+) QAM', self.before)[0] - - def get_ups_module(self): - self.sendline('show system') - self.expect(self.prompt) - return re.findall('Module (\d+) UPS', self.before)[0] - - def set_iface_qam(self, index, sub, annex, interleave, power): - self.sendline('interface qam %s/%s' % (index, sub)) - self.expect(self.prompt) - self.sendline('annex %s' % annex) - self.expect(self.prompt) - self.sendline('interleave %s' % interleave) - self.expect(self.prompt) - self.sendline('power %s' % power) - self.expect(self.prompt) - self.sendline('no shutdown') - self.expect(self.prompt) - self.sendline('exit') - self.expect(self.prompt) - - def set_iface_qam_freq(self, index, sub, channel, freq): - self.sendline('interface qam %s/%s' % (index, sub)) - self.expect(self.prompt) - self.sendline('channel %s freq %s' % (channel, freq)) - self.expect(self.prompt) - self.sendline('no channel %s shutdown' % channel) - self.expect(self.prompt) - self.sendline('exit') - self.expect(self.prompt) - - def set_iface_upstream(self, ups_idx, ups_ch, freq, width, power): - self.sendline('interface upstream %s/%s' % (ups_idx, ups_ch)) - self.expect(self.prompt) - self.sendline('frequency %s' % freq) - self.expect(self.prompt) - self.sendline('channel-width %s' % width) - self.expect(self.prompt) - self.sendline('power-level %s' % power) - self.expect(self.prompt) - self.sendline('ingress-cancellation') - self.expect(self.prompt) - self.sendline('logical-channel 0 profile 3') - self.expect(self.prompt) - self.sendline('logical-channel 0 minislot 1') - self.expect(self.prompt) - self.sendline('no logical-channel 0 shutdown') - self.expect(self.prompt) - self.sendline('logical-channel 1 shutdown') - self.expect(self.prompt) - self.sendline('no shutdown') - self.expect(self.prompt) - self.sendline('exit') - self.expect(self.prompt) - - def add_iface_docsis_mac(self, index, ip_bundle, qam_idx, qam_sub, qam_ch, ups_idx, ups_ch): - self.sendline('interface docsis-mac %s' % index) - self.expect(self.prompt) - self.sendline('no shutdown') - self.expect(self.prompt) - self.sendline('early-authentication-encryption ranging') - self.expect(self.prompt) - self.sendline('no dhcp-authorization') - self.expect(self.prompt) - self.sendline('no multicast-dsid-forward') - self.expect(self.prompt) - self.sendline('no tftp-enforce') - self.expect(self.prompt) - self.sendline('tftp-proxy') - self.expect(self.prompt) - self.sendline('ip bundle %s' % ip_bundle) - self.expect(self.prompt) - self.sendline('ip-provisioning-mode dual-stack') - self.expect(self.prompt) - count = 1 - for ch in qam_ch: - self.sendline('downstream %s interface qam %s/%s/%s' % (count, qam_idx, qam_sub, ch)) - self.expect(self.prompt) - count += 1 - count = 1 - for ch in ups_ch: - self.sendline('upstream %s interface upstream %s/%s/0' % (count, ups_idx, ch)) - self.expect(self.prompt) - count += 1 - self.sendline('exit') - self.expect(self.prompt) - - def modify_docsis_mac_ip_provisioning_mode(self, index, ip_pvmode='dual-stack'): - self.sendline('interface docsis-mac %s' % index) - self.expect(self.prompt) - self.sendline('ip-provisioning-mode %s' % ip_pvmode) - self.expect(self.prompt) - - def add_service_class(self, index, name, max_rate, max_burst, downstream=False): - self.sendline('cable service-class %s' % index) - self.expect(self.prompt) - self.sendline('name %s' % name) - self.expect(self.prompt) - self.sendline('max-traffic-rate %s' % max_rate) - self.expect(self.prompt) - self.sendline('max-traffic-burst %s' % max_burst) - self.expect(self.prompt) - self.sendline('max-concat-burst 0') - self.expect(self.prompt) - if downstream: - self.sendline('downstream') - self.expect(self.prompt) - self.sendline('exit') - self.expect(self.prompt) - - def add_service_group(self, index, qam_idx, qam_sub, qam_channels, ups_idx, ups_channels): - self.sendline('service group %s' % index) - self.expect(self.prompt) - for ch in qam_channels: - self.sendline('qam %s/%s/%s' % (qam_idx, qam_sub, ch)) - self.expect(self.prompt) - for ch in ups_channels: - self.sendline('upstream %s/%s' % (ups_idx, ch)) - self.expect(self.prompt) - self.sendline('exit') - self.expect(self.prompt) - - def mirror_traffic(self, macaddr=""): - self.sendline('diag') - self.expect('Password:') - self.sendline('casadiag') - self.expect(self.prompt) - self.sendline('mirror cm traffic 127.1.0.7 %s' % macaddr) - if 0 == self.expect(['Please type YES to confirm you want to mirror all CM traffic:'] + self.prompt): - self.sendline("YES") - self.expect(self.prompt) - self.sendline('exit') - self.expect(self.prompt) - - def unmirror_traffic(self): - self.sendline('diag') - self.expect('Password:') - self.sendline('casadiag') - self.expect(self.prompt) - self.sendline('mirror cm traffic 0') - self.expect(self.prompt) - self.sendline('exit') - self.expect(self.prompt) - - def run_tcpdump(self, time, iface='any', opts=""): - self.sendline('diag') - self.expect('Password:') - self.sendline('casadiag') - self.expect(self.prompt) - self.sendline('tcpdump "-i%s %s"' % (iface, opts)) - self.expect(self.prompt + [pexpect.TIMEOUT], timeout=time) - self.sendcontrol('c') - self.expect(self.prompt) - self.sendline('exit') - self.expect(self.prompt) - - def del_file(self, f): - self.sendline('del %s' % f) - self.expect(self.prompt) - - # Parameters: cm_mac (CM mac address) - # This function assumes the CM is online - # returns: - # True if the cmts does NOT see the CM eRouter - # (i.e. theCM mode is in bridge mode) - # False if the cmts sees the CM eRouter - # (i.e. theCM mode is in gateway mode) - def is_cm_bridged(self, cm_mac): - self.sendline("show cable modem "+cm_mac+" cpe") - if 0 == self.expect(['eRouter']+self.prompt): - self.expect(self.prompt) - return False - else: - return True - - def check_docsis_mac_ip_provisioning_mode(self, index): - self.sendline('show interface docsis-mac %s' % index) - self.expect('ip-provisioning-mode (\w+\-\w+)') - result = self.match.group(1) - if self.match != None: - return result - - def get_ertr_ipv4(self, mac): - '''Getting erouter ipv4 from CMTS ''' - self.sendline("show cable modem %s cpe" % mac) - self.expect(self.prompt) - from netaddr import EUI - import netaddr - mac = EUI(mac) - ertr_mac = EUI(int(mac) + 2) - ertr_mac.dialect = netaddr.mac_cisco - ertr_ipv4 = re.search('(%s) .* (%s)' % (ValidIpv4AddressRegex, ertr_mac), self.before) - if ertr_ipv4: - ipv4 = ertr_ipv4.group(1) - return ipv4 - else: - return None - - def get_ertr_ipv6(self, mac): - '''Getting erouter ipv6 from CMTS ''' - self.sendline("show cable modem %s cpe" % mac) - self.expect(self.prompt) - ertr_ipv6 = re.search(ValidIpv6AddressRegex, self.before) - if ertr_ipv6: - ipv6 = ertr_ipv6.group() - return ipv6 - else: - return None - - def get_center_freq(self, mac_domain=None): - return "512000000" - - # TODO: fix below - if mac_domain is None: - mac_domain = self.mac_domain - - assert mac_domain is not None, "get_center_freq() requires mac_domain to be set" - - self.sendline('show interface docsis-mac %s | inc downstream\s1\s' % mac_domain) - self.expect_exact('show interface docsis-mac %s | inc downstream\s1\s' % mac_domain) - self.expect(self.prompt) - assert 'downstream 1 interface qam' in self.before - - major, minor, sub = self.before.strip().split(' ')[-1].split('/') - - self.sendline('show interface qam %s/%s | inc channel\s%s\sfreq' % (major, minor, sub)) - self.expect_exact('show interface qam %s/%s | inc channel\s%s\sfreq' % (major, minor, sub)) - - self.expect(self.prompt) - assert 'channel %s frequency' % sub in self.before - - return str(int(self.before.split(' ')[-1])) - - -if __name__ == '__main__': - import time - - connection_type = "local_cmd" - cmts = CasaCMTS(conn_cmd=sys.argv[1], connection_type=connection_type) - - if len(sys.argv) > 2 and sys.argv[2] == "setup_ipv6": - print("Setting up IPv6 address, bundles, routes, etc") - cmts.set_iface_ipv6addr('gige 0', '2001:dead:beef:1::cafe/64') - cmts.add_route6('::/0', '2001:dead:beef:1::1') - # TODO: casa 3200 cmts only supports one ip bundle for ipv6.... - # so we use a ipv6 address 2001:dead:beef:4::cafe/62 for that which means we can bump - # these up too - cmts.add_ipv6_bundle_addrs(1, "2001:dead:beef:1::1", "2001:dead:beef:4::cafe/64", - secondary_ips=["2001:dead:beef:5::cafe/64", "2001:dead:beef:6::cafe/64"]) - sys.exit(0) - - # TODO: example for now, need to parse args - if False: - cmts.mirror_traffic() - cmts.run_tcpdump(15, opts="-w dump.pcap") - # TODO: extract pcap from CMTS - cmts.del_file("dump.pcap") - cmts.unmirror_traffic() - sys.exit(0) - - cmts.save_running_to_startup_config() - cmts.save_running_config_to_local("saved-casa-config-" + time.strftime("%Y%m%d-%H%M%S") + ".cfg") - cmts.reset() - cmts.wait_for_ready() - - cmts.set_iface_ipaddr('eth 0', '172.19.17.136 255.255.255.192') - cmts.set_iface_ipaddr('gige 0', '192.168.3.222 255.255.255.0') - # TODO: add third network for open - cmts.add_ip_bundle(1, "192.168.3.1", "192.168.200.1", secondary_ips=["192.168.201.1", "192.168.202.1"]) - - cmts.add_route("0.0.0.0", "0", "192.168.3.1") - - qam_idx = cmts.get_qam_module() - ups_idx = cmts.get_ups_module() - - cmts.set_iface_qam(qam_idx, 0, 'A', 12, 550) - cmts.set_iface_qam_freq(qam_idx, 0, 0, 235000000) - cmts.set_iface_qam_freq(qam_idx, 0, 1, 243000000) - cmts.set_iface_qam_freq(qam_idx, 0, 2, 251000000) - cmts.set_iface_qam_freq(qam_idx, 0, 3, 259000000) - - cmts.add_service_class(1, 'UNLIMITED_down', 100000, 10000, downstream=True) - cmts.add_service_class(2, 'UNLIMITED_up', 100000, 16320) - - cmts.add_service_group(1, qam_idx, 0, range(4), ups_idx, [0.0, 1.0]) - - cmts.add_iface_docsis_mac(1, 1, qam_idx, 0, range(4), ups_idx, [0.0, 1.0]) - - cmts.set_iface_upstream(ups_idx, 0.0, 47000000, 6400000, 6) - - print() - print("Press Control-] to exit interact mode") - print("=====================================") - cmts.interact() - print() From f03adeaad1018c31bc6a13c867f00bd6dfb96783 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Wed, 7 Aug 2019 11:16:40 -0500 Subject: [PATCH 927/947] tests/selftest: Fix mibs_location Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ic037c42386e0f247c82c203ccf8feefdd4525b7b Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464424 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/selftest.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/selftest.py b/tests/selftest.py index ab1aa38e..ab6d59be 100644 --- a/tests/selftest.py +++ b/tests/selftest.py @@ -389,7 +389,10 @@ def runTest(self): linux_mibs[2], wrong_mibs[2]] - unit_test = SnmpMibsUnitTest(mibs_location = './resources/mibs', + unit_test = SnmpMibsUnitTest(mibs_location = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), + os.pardir, + 'resources', + 'mibs')) files = ['SNMPv2-MIB'], mibs = test_mibs, err_mibs = wrong_mibs) From f6ebda7eecbd0ba07e5d62540c303e0d1fef8e61 Mon Sep 17 00:00:00 2001 From: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Date: Tue, 6 Aug 2019 00:40:57 +0800 Subject: [PATCH 928/947] tests: lib: Removed docsis module as it is moved to boardfarm-docsis Signed-off-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Change-Id: I45be3bd38f24f60dfee4b0a933eff2250d911323 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464193 Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> Tested-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/lib/docsis.py | 253 -------------------------------------------- 1 file changed, 253 deletions(-) delete mode 100755 tests/lib/docsis.py diff --git a/tests/lib/docsis.py b/tests/lib/docsis.py deleted file mode 100755 index d02b0505..00000000 --- a/tests/lib/docsis.py +++ /dev/null @@ -1,253 +0,0 @@ -# Copyright (c) 2015 -# -# All rights reserved. -# -# This file is distributed under the Clear BSD license. -# The full text can be found in LICENSE in the root directory. -# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 - -import os -import config -from common import cmd_exists -import Tkinter -import re -import time -import hashlib - -class docsis: - """ - Name: docsis module - Purpose: docsis operating. - Input: Absolute path of text file - Fuction: - decode(): - return output file name(.txt) - encode(output_type='cm_cfg') - return output file name(.cfg or .bin) - """ - - mibs_path_arg = "" - def __init__(self, file_or_obj, tmpdir=None, mibs_paths=None): - # TODO: fix at some point, this tmpdir is already relative to the CM config you - # are grabbing? Not ideal as that dir might not be writeable, or a tftp or http URL - # at some point - need to use a real local tmpdir or maybe even results so we can - # save the resulting artifacts in other tools - if tmpdir is None: - tmpdir = os.path.join('tmp', config.board['station']) - - from devices import board - if mibs_paths is None and hasattr(board, 'mibs_paths'): - default = os.path.expandvars('/home/$USER/.snmp/mibs:/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp') - mibs_path_arg = "-M " + default - - for mibs_path in board.mibs_paths: - mibs_path_arg = mibs_path_arg + ":" + mibs_path - - self.mibs_path_arg = mibs_path_arg - - # TODO: this is all a bit wild here, need to clean up everything.. - if isinstance(file_or_obj, cm_cfg): - self.cm_cfg = file_or_obj - # TODO: this seems like the wrong place to store these but OK - self.dir_path=os.path.join(os.path.split(__file__)[0], tmpdir) - self.file = self.cm_cfg.original_fname - self.file_path = os.path.join(self.dir_path, self.file) - else: - self.file_path=file_or_obj - self.dir_path=os.path.join(os.path.split(file_or_obj)[0], tmpdir) - self.file=os.path.split(file_or_obj)[1] - - # make target tmpdir if it does not exist - try: - os.makedirs(self.dir_path) - except OSError as err: - import errno - # Reraise the error unless it's about an already existing directory - if err.errno != errno.EEXIST or not os.path.isdir(self.dir_path): - raise - - if isinstance(file_or_obj, cm_cfg): - self.cm_cfg.save(self.file_path) - - assert cmd_exists('docsis') - assert cmd_exists('tclsh') - tclsh = Tkinter.Tcl() - assert tclsh.eval("package require sha1"), "please run apt-get install tcllib first" - - def decode(self): - if '.cfg' in self.file: - os.system("docsis -d %s > %s" %(self.file_path, self.file_path.replace('.cfg', '.txt'))) - assert os.path.exists(self.file.replace('.cfg', '.txt')) - - return self.file.replace('.cfg', '.txt') - - # TODO: decode MTA? - - def encode(self, output_type='cm_cfg'): - def encode_mta(): - mtacfg_name=self.file.replace('.txt', '.bin') - mtacfg_path=os.path.join(self.dir_path, mtacfg_name) - if os.path.isfile(mtacfg_path): - os.remove(mtacfg_path) - tclsh = Tkinter.Tcl() - tclsh.eval("source %s/mta_conf_Proc.tcl" % os.path.dirname(__file__)) - tclsh.eval("run [list %s -e -hash eu -out %s]" % (self.file_path, mtacfg_path)) - assert os.path.exists(mtacfg_path) - - return mtacfg_path - - def encode_cm(): - cmcfg_name=self.file.replace('.txt', '.cfg') - cmcfg_path=os.path.join(self.dir_path, cmcfg_name) - if os.path.isfile(cmcfg_path): - os.remove(cmcfg_path) - print("docsis %s -e %s /dev/null %s" % (self.mibs_path_arg, self.file_path, cmcfg_path)) - os.system("docsis %s -e %s /dev/null %s" % (self.mibs_path_arg, self.file_path, cmcfg_path)) - assert os.path.exists(cmcfg_path) - - return cmcfg_path - - if output_type == 'mta_cfg': - return encode_mta() - - # default is CM cfg, if that fails we try to use special mta tool - try: - return encode_cm() - except: - return encode_mta() - -class cm_cfg(object): - ''' - Class for generating CM cfg from nothing, or even importing from a file - They later need to be encoded via a compiler - ''' - - # TODO: all these names will need to be made up once we don't have - # an input file anymore - original_fname = None - original_file = None - encoded_suffix = '.cfg' - encoded_fname = None - - # string representation of cm cfg - # temporary for starting point - txt = "" - - # plenty of tests reference a file name, and assume it's in a certain - # place so let's allow for that for now - legacy_search_path = None - - def __init__(self, start=None): - '''Creates a default basic CM cfg file for modification''' - - # TODO: we require loading a file for the moment - if start == None: - raise Exception("We don't know how to start from scratch yet") - else: - # TODO: filename should not matter - self.original_file = start - self.original_fname = os.path.split(start)[1] - self.encoded_fname = self.original_fname.replace('.txt', self.encoded_suffix) - self.load(start) - - def load(self, cm_txt): - '''Load CM cfg from txt file, for modification''' - - if self.legacy_search_path is not None: - cm_txt = os.path.join(self.legacy_search_path, cm_txt) - - with open(cm_txt, 'r') as txt: - self.txt = txt.read() - - def __str__(self): - '''String repr of CM txt''' - return self.txt - - def shortname(self): - '''short name for displaying in summary''' - return hashlib.md5(self.txt.encode()).hexdigest() - - def save(self, full_path): - with open(full_path, 'w') as txt: - txt.write(self.txt) - - def generic_re_sub(self, regex, sub): - '''Crude function to replace strings in configs, should be replaced with subclasses''' - saved_txt = self.txt - - self.txt = re.sub(regex, sub, self.txt) - - if saved_txt == self.txt: - print("WARN: no regex sub was made for %s, to be replaced with %s" % (regex, sub)) - - def _cm_configmode(self): - '''function to check config mode in CM''' - '''0-Disable/Bridge, 1-IPv4, 2-IPv6 (DSlite), 3-IPv4 and IPv6(Dual)''' - modeset = ['0x010100', '0x010101', '0x010102', '0x010103'] - modestr = ['bridge', 'ipv4', 'dslite', 'dual-stack'] - for mode in range(0, len(modeset)): - tlv_check = "GenericTLV TlvCode 202 TlvLength 3 TlvValue "+modeset[mode] - initmode_check = "InitializationMode "+str(mode) - if (tlv_check in self.txt) or (initmode_check in self.txt): - return modestr[mode] - - cm_configmode = property(_cm_configmode) - -class mta_cfg(cm_cfg): - '''MTA specific class for cfgs''' - - encoded_suffix = '.bin' - -def check_valid_docsis_ip_networking(board, strict=True, time_for_provisioning=120): - start_time = time.time() - - wan_ipv4 = False - wan_ipv6 = False - erouter_ipv4 = False - erouter_ipv6 = False - mta_ipv4 = True - mta_ipv6 = False # Not in spec - - cm_configmode = board.cm_cfg.cm_configmode - - if cm_configmode == 'bridge': - # TODO - pass - if cm_configmode == 'ipv4': - wan_ipv4 = erouter_ipv4 = True - if cm_configmode == 'dslite': - # TODO - pass - if cm_configmode == 'dual-stack': - wan_ipv4 = erouter_ipv4 = True - wan_ipv6 = erouter_ipv6 = True - - while (time.time() - start_time < time_for_provisioning): - try: - if wan_ipv4: - valid_ipv4(board.get_interface_ipaddr(board.wan_iface)) - if wan_ipv6: - valid_ipv6(board.get_interface_ip6addr(board.wan_iface)) - - if hasattr(board, 'erouter_iface'): - if erouter_ipv4: - valid_ipv4(board.get_interface_ipaddr(board.erouter_iface)) - if erouter_ipv6: - valid_ipv6(board.get_interface_ip6addr(board.erouter_iface)) - - if hasattr(board, 'mta_iface'): - if mta_ipv4: - valid_ipv4(board.get_interface_ipaddr(board.mta_iface)) - if mta_ipv6: - valid_ipv6(board.get_interface_ip6addr(board.mta_iface)) - - # if we get this far, we have all IPs and can exit while loop - break - except KeyboardInterrupt: - raise - except: - if time.time() - start_time > time_for_provisioning: - if strict: - assert False, "Failed to provision docsis device properly" - else: - print("WARN: failed to provision board entirely") From 11bbe206ec34be64c074e450f0508b68ce0f7eac Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Mon, 5 Aug 2019 19:41:01 -0500 Subject: [PATCH 929/947] devices/windows_telnet: Fix 3 undefined variables Maybe the function get_interface_ip6addr() was never called, because it had 3 undefined variables: AllValidIpv6AddressesRegex, ipaddress, and ip6addr. Now fixed. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I1462d5ce3b9e3a6dfc736f9c28c61ff7d45db620 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464249 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/windows_telnet.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/devices/windows_telnet.py b/devices/windows_telnet.py index fe711b2a..894358ed 100755 --- a/devices/windows_telnet.py +++ b/devices/windows_telnet.py @@ -1,7 +1,9 @@ - -import sys, re +import ipaddress +import re +import sys import base import connection_decider +from lib.regexlib import AllValidIpv6AddressesRegex class WindowsTelnet(base.BaseDevice): @@ -90,4 +92,4 @@ def get_interface_ip6addr(self, interface): for match in re.findall(AllValidIpv6AddressesRegex, self.before): ipv6addr = ipaddress.IPv6Address(unicode(match)) if not ipv6addr.is_link_local: - return ip6addr + return ipv6addr From 2c3de636d0655f8330450749f85925ada92ccddc Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Tue, 6 Aug 2019 10:19:48 -0500 Subject: [PATCH 930/947] lib/common: fix use of 'self' that wasn't defined Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I237d715b0855b507270fa36547f368375e8d774c Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464315 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/lib/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/lib/common.py b/tests/lib/common.py index f6d11771..21ab519e 100644 --- a/tests/lib/common.py +++ b/tests/lib/common.py @@ -42,7 +42,7 @@ def spawn_ssh_pexpect(ip, user='root', pw='bigfoot1', prompt=None, port="22", vi i = p.expect(["yes/no", "assword:", "Last login"], timeout=30) if i == 0: p.sendline("yes") - i = self.expect(["Last login", "assword:"]) + i = p.expect(["Last login", "assword:"]) if i == 1: p.sendline(pw) else: From 92f1bfc62500d632bd375947307c6fe00b75807f Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 7 Aug 2019 13:08:40 -0500 Subject: [PATCH 931/947] refactor: change lib to docsis_lib globally Some of this should not be required since we should not depend on the docsis overlay, so there are some areas for improvemnet Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I00cf1fd95d58647db18b66b289f68164c2e0d548 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464440 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/debian_isc.py | 3 ++- tests/rootfs_boot.py | 3 +-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 3dd81add..13813b37 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -2,7 +2,6 @@ import os import pexpect from lib.regexlib import ValidIpv4AddressRegex -from lib.docsis import docsis, cm_cfg import re import glob @@ -456,6 +455,7 @@ def copy_cmts_provisioning_files(self, board_config): if 'tftp_cfg_files' in board_config: for cfg in board_config['tftp_cfg_files']: + from docsis_lib.docsis import cm_cfg if isinstance(cfg, cm_cfg) or isinstance(cfg, mta_cfg): cfg_list.append(cfg) else: @@ -468,6 +468,7 @@ def copy_cmts_provisioning_files(self, board_config): # Copy binary files to tftp server for cfg in cfg_set: + from docsis_lib import docsis d = docsis(cfg) ret = d.encode() self.tftp_device.copy_file_to_server(ret) diff --git a/tests/rootfs_boot.py b/tests/rootfs_boot.py index 87ffccb6..e2c1b343 100644 --- a/tests/rootfs_boot.py +++ b/tests/rootfs_boot.py @@ -9,8 +9,6 @@ import linux_boot import lib -from lib.docsis import check_valid_docsis_ip_networking - from devices import board, wan, lan, prompt class RootFSBootTest(linux_boot.LinuxBootTest): @@ -170,6 +168,7 @@ def boot(self, reflash=True): board.install_package(pkg) if board.has_cmts: + from docsis_lib.docsis import check_valid_docsis_ip_networking check_valid_docsis_ip_networking(board) # Try to verify router has stayed up (and, say, not suddenly rebooted) From ea6340efeb9dadf5361c3b8712e09b69b7b79c04 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Mon, 5 Aug 2019 19:30:39 -0500 Subject: [PATCH 932/947] devices/linux: Fix two undefined variables Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: If7b55f7ca6d91ea0905f4a8b7c236fa627587a7c Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464248 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/linux.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/devices/linux.py b/devices/linux.py index 05fe23e9..a5669284 100644 --- a/devices/linux.py +++ b/devices/linux.py @@ -3,6 +3,10 @@ from lib.regexlib import ValidIpv4AddressRegex, AllValidIpv6AddressesRegex, LinuxMacFormat import pexpect +from common import print_bold + +BFT_DEBUG = "BFT_DEBUG" in os.environ + class LinuxDevice(base.BaseDevice): '''Linux implementations ''' tftp_dir = '/tftpboot' @@ -67,7 +71,7 @@ def set_printk(self, CUR=1, DEF=1, MIN=1, BTDEF=7): self.sendline('echo "%d %d %d %d" > /proc/sys/kernel/printk' % (CUR, DEF, MIN, BTDEF)) self.expect(self.prompt, timeout=10) if not BFT_DEBUG: - common.print_bold("printk set to %d %d %d %d" % (CUR, DEF, MIN, BTDEF)) + print_bold("printk set to %d %d %d %d" % (CUR, DEF, MIN, BTDEF)) except: pass From 239574710edc155c6f277235a93095590de10754 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 7 Aug 2019 14:19:08 -0500 Subject: [PATCH 933/947] devices/debian_isc: fix import of docsis object Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I231819dee7876cda2da41a1736c68f5a4e5a014d Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464446 Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> Tested-by: Matthew McClintock <matthew@meldnetworks.com> --- devices/debian_isc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/debian_isc.py b/devices/debian_isc.py index 13813b37..c09015af 100644 --- a/devices/debian_isc.py +++ b/devices/debian_isc.py @@ -468,7 +468,7 @@ def copy_cmts_provisioning_files(self, board_config): # Copy binary files to tftp server for cfg in cfg_set: - from docsis_lib import docsis + from docsis_lib.docsis import docsis d = docsis(cfg) ret = d.encode() self.tftp_device.copy_file_to_server(ret) From 90e160092a1468061bb31c03ab2f9fd97036d8b5 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 7 Aug 2019 14:24:17 -0500 Subject: [PATCH 934/947] tests/lib: move mta_conf_Proc.tcl to docsis overlay Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I4ec6b272dc5a6310da99de73d7297b5ff1de8360 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464447 Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> Tested-by: Matthew McClintock <matthew@meldnetworks.com> --- tests/lib/mta_conf_Proc.tcl | 333 ------------------------------------ 1 file changed, 333 deletions(-) delete mode 100644 tests/lib/mta_conf_Proc.tcl diff --git a/tests/lib/mta_conf_Proc.tcl b/tests/lib/mta_conf_Proc.tcl deleted file mode 100644 index 1b58e08e..00000000 --- a/tests/lib/mta_conf_Proc.tcl +++ /dev/null @@ -1,333 +0,0 @@ -set VERSION "1.0.4" -package require asn -proc run { parameters } { - global VERSION - set optionnum [llength $parameters] - if { $optionnum == 0 } { - puts "MTA configure file Encode/Decode rev.$VERSION" - puts "Usage:run \[list input_file \[option\]\]" - puts "option:" - puts "\[General\]" - puts "-e Encode a MTA configuration file" - puts "-d Decode a MTA configuration file" - puts "-m Use MD5 as config file hash signature (default is SHA1)" - puts "-hash Add config hash (non (default), na, eu)" - puts "-out Specify a output filename (for encode use)" - puts "run \[list mta.txt -e -hash eu\]" - return - } - set input_file [file normalize [lindex $parameters 0]] - if { ![file exist $input_file] } { - puts "$input_file not available!" - return - } - set optionlist [list "-e" "-out" "-d" "-hash" "-m"] - set options [lrange $parameters 1 end] - foreach op $options { - if { [regexp {^-\w+$} $op] } { - if { [lsearch $optionlist $op] == -1 } { - puts "No such option \"$op\"" - return - } - } - } - if { [lsearch $options "-e"] != -1 && [lsearch $options "-d"] != -1 } { - puts "Cannot Encode/Decode at the same time!" - return - } - if { [lsearch $options "-out"] != -1 } { - set filename [file normalize [lindex $options [expr [lsearch $options "-out"]+1]]] - } else { - if { [lsearch $options "-e"] != -1 } { - set filename "[file rootname $input_file].bin" - } elseif { [lsearch $options "-d"] != -1 } { - set filename "[file rootname $input_file].txt" - } - } - set hash_type "non" - if { [lsearch $options "-hash"] != -1 } { - set hash_type [lindex $options [expr [lsearch $options "-hash"]+1]] - if { [lsearch [list "non" "na" "eu"] $hash_type] == -1 } { - puts "hash type $hash_type not available!" - return - } - } - set sig_type "sha1" - if { [lsearch $options "-e"] != -1 && $hash_type != "non" } { - if { [lsearch $options "-m"] != -1 } { - set sig_type "md5" - } else { - set sig_type "sha1" - } - } - if { [lsearch $options "-e"] != -1 } { - set hexstring "FE0101" - set fd [open $input_file r] - while { ![eof $fd] } { - gets $fd line - if { [string trim $line] == "" } { continue } - set clist [split $line "\t"] - if { [llength $clist] == 5 } { - set mibname [lindex $clist 0] - set oid [lindex $clist 1] - set value [lindex $clist 2] - set type [lindex $clist 3] - set comment [lindex $clist 4] - } else { - puts "\[ERROR\] Incorrect source MTA config file format!" - close $fd - exit - } - if { $oid == ".1.3.6.1.4.1.7432.1.1.2.9.0" } { continue } - if { $oid == ".1.3.6.1.4.1.4491.2.2.1.1.2.7.0" } { continue } - set htlv [add_tlv11 $oid $value $type] - append hexstring $htlv - } - close $fd - if { $hexstring == "FE0101" } { - puts "\[ERROR\] Could not find any MTA config setting in the file!" - exit - } - set before_hash $hexstring - append hexstring "FE01FF" - set BStr [binary format H* $hexstring] - if { $hash_type != "non" } { - if { $sig_type == "sha1" } { - package require sha1 - set hash [string toupper [::sha1::sha1 -hex $BStr]] - } else { - package require md5 - set hash [string toupper [::md5::md5 -hex $BStr]] - } - switch -- $hash_type { - "na" { - append before_hash [add_tlv11 ".1.3.6.1.4.1.4491.2.2.1.1.2.7.0" $hash "octetstring"] - } - "eu" { - append before_hash [add_tlv11 ".1.3.6.1.4.1.7432.1.1.2.9.0" $hash "octetstring"] - } - } - } - append before_hash "FE01FF" - set BStr [binary format H* $before_hash] - set fd [open $filename w] - fconfigure $fd -translation binary - puts -nonewline $fd $BStr - close $fd - } elseif { [lsearch $options "-d"] != -1 } { - dec_conf $input_file $filename - } -} -proc enc_hexstring { value } { - binary scan $value c* sl - set tmp "" - foreach s $sl { - append tmp [format "%02X" $s] - } - return $tmp -} -proc enc_ui32 { value } { - if { $value > 127 } { - return [format "%04X" $value] - } else { - return [format "%02X" $value] - } -} -proc enc_int { value } { - if { [regexp {^\-} $value] } { - set tmp [string range [enc_hexstring [binary format I $value]] end-7 end] - } else { - set tmp [format "%02X" $value] - if { [string length $tmp]%2 != 0 } { - set tmp "0$tmp" - } - } - return $tmp -} -proc enc_ip { value } { - set ipl [split $value "."] - set tmp "" - foreach ip $ipl { - append tmp [format "%02X" $ip] - } - return $tmp -} -proc add_tlv11 { oid value type } { - set tmp "" - set eoid [::asn::asnObjectIdentifier [split [string trim $oid .] .]] - switch -- $type { - "int" { - if { [regexp {^\-} $value] } { - set evalue [enc_int $value] - set vl [format "%02X" [expr [string length $evalue]/2]] - set evalue [binary format H* "02$vl$evalue"] - } else { - set evalue [::asn::asnInteger $value] - } - } - "bitstring" { - set evalue [::asn::asnBitString "$value[string repeat 0 [expr 8-[string length $value]]]"] - } - "string" { - set evalue [::asn::asnOctetString $value] - } - "null" { - set evalue [::asn::asnNull] - } - "OID" { - set evalue [::asn::asnObjectIdentifier [split [string trim $value .] .]] - } - "ipaddr" { - set evalue [enc_ip $value] - set vl [format "%02X" [expr [string length $evalue]/2]] - set evalue [binary format H* "40$vl$evalue"] - } - "counter" { - set evalue [enc_int $value] - set vl [format "%02X" [expr [string length $evalue]/2]] - set evalue [binary format H* "41$vl$evalue"] - } - "unsigned32" { - set evalue [enc_ui32 $value] - set vl [format "%02X" [expr [string length $evalue]/2]] - set evalue [binary format H* "42$vl$evalue"] - } - "timeticks" { - set evalue [enc_int $value] - set vl [format "%02X" [expr [string length $evalue]/2]] - set evalue [binary format H* "43$vl$evalue"] - } - "octetstring" { - set evalue [::asn::asnOctetString [binary format H* $value]] - } - } - binary scan [::asn::asnSequence $eoid $evalue] H* tmp - set tmp [string toupper $tmp] - set tl [format "%02X" [expr [string length $tmp]/2]] - if { [string length $tl]%2 != 0 } { - set tl "0$tl" - } - if { [string length $tl] != 2 } { - return "40$tl$tmp" - } else { - return "0B$tl$tmp" - } -} -proc tobyte { str } { - set tmp [list] - set i 0 - set max [string length $str] - while { $i < $max } { - lappend tmp [string range $str $i [expr $i+1]] - incr i 2 - } - return $tmp -} -proc dec_oid { value } { - ::asn::asnGetObjectIdentifier value oid - return ".[join $oid "."]" -} -proc dec_conf { src {dst "" } } { - set fd [open $src r] - fconfigure $fd -translation binary - set raw [read $fd [file size $src]] - close $fd - binary scan $raw "H*" raw - set raw [string toupper [string range $raw 6 end-6]] - set fd [open $dst w] - while { $raw!= "" } { - set tlvtmp [list ""] - set tag [string range $raw 0 1] - set i 2 - switch -- $tag { - "0B" { - set tlb 1 - } - "40" { - set tlb 2 - } - } - set tl [format "%d" 0x[string range $raw $i [expr $i+2*$tlb-1]]] - incr i [expr 2*$tlb] - set tmp [string range $raw $i [expr $i+2*$tl-1]] - incr i [expr 2*$tl] - switch -- $tlb { - 1 { - set tmp [string range $tmp 4 end] - } - 2 { - set tmp [string range $tmp 8 end] - } - } - set ol [format "%d" 0x[string range $tmp 2 3]] - set ind [expr 4+2*$ol] - set boid [binary format H* [string range $tmp 0 [expr $ind-1]]] - set oid [dec_oid $boid] - lappend tlvtmp $oid - set bvstr [binary format H* [string range $tmp $ind end]] - set vt [string range $tmp $ind [expr $ind+1]] - incr ind 2 - set vlx [string range $tmp $ind [expr $ind+1]] - incr ind 2 - if { $vlx == "82" } { - set vlx [string range $tmp $ind [expr $ind+3]] - incr ind 4 - } - set vl [format "%d" 0x$vlx] - set ev [string range $tmp $ind [expr $ind+$vl*2-1]] - switch -- $vt { - "02" { - set type "int" - ::asn::asnGetInteger bvstr value - } - "03" { - set type "bitstring" - ::asn::asnGetBitString bvstr value - } - "05" { - set type "null" - set value "" - } - "06" { - set type "OID" - set value [dec_oid $bvstr] - } - "40" { - set type "ipaddr" - set ipb [tobyte $ev] - set ipl [list] - foreach ip $ipb { - lappend ipl [format "%d" 0x$ip] - } - set value [join $ipl "."] - } - "41" { - set type "counter" - set value [format %d 0x$ev] - } - "42" { - set type "unsigned32" - set value [format %d 0x$ev] - } - "43" { - set type "timeticks" - set value [format %d 0x$ev] - } - default { - ::asn::asnGetOctetString bvstr value - regexp "\[\[:print:\]\]+" $value match - if { [string length $match] == $vl || $vl == 0 } { - set type "string" - } else { - set type "octetstring" - binary scan $value H* value - set value [string toupper $value] - } - } - } - lappend tlvtmp $value $type "" - puts $fd [join $tlvtmp "\t"] - set raw [string range $raw $i end] - } - close $fd -} From d1edde8bd8ed082625effb60da31de3d4159b28f Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Wed, 7 Aug 2019 10:32:34 -0500 Subject: [PATCH 935/947] Move almost everything to a subdirectory called boardfarm This is in preparation to making boardfarm a standard python module that we can import and write python scripts for. Two symlinks have been created: bft, and deploy-boardfarm-nodes.sh So you can still run "./bft" in the base directory. No other files were created, only moved. Near future commits will add '__init__.py' and other files to make boardfarm a proper module. An outline of commands for this commit: mkdir boardfarm mv * boardfarm/ git rm <files and directories in old location> git add <files and directories in new location> Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: If8e8d952ee1329f6a764bf5e0e920cc9c16c987e Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464355 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- bft | 535 +----------------- {analysis => boardfarm/analysis}/__init__.py | 0 {analysis => boardfarm/analysis}/analysis.py | 0 .../analysis}/connections.py | 0 {analysis => boardfarm/analysis}/oom.py | 0 {analysis => boardfarm/analysis}/panic.py | 0 {analysis => boardfarm/analysis}/ps.py | 0 .../analysis}/sb_connections.py | 0 {analysis => boardfarm/analysis}/slab.py | 0 {analysis => boardfarm/analysis}/vmstat.py | 0 arguments.py => boardfarm/arguments.py | 0 boardfarm/bft | 534 +++++++++++++++++ {bft-node => boardfarm/bft-node}/Dockerfile | 0 .../boardfarm_config_example.json | 0 config.py => boardfarm/config.py | 0 .../configs}/cdrouter-rdkb.conf | 0 .../dbclients}/__init__.py | 0 .../dbclients}/boardfarmwebclient.py | 0 .../dbclients}/elasticlogger.py | 0 .../dbclients}/logstash.py | 0 .../dbclients}/mongodblogger.py | 0 boardfarm/deploy-boardfarm-nodes.sh | 412 ++++++++++++++ {devices => boardfarm/devices}/__init__.py | 0 {devices => boardfarm/devices}/axiros_acs.py | 0 {devices => boardfarm/devices}/base.py | 0 {devices => boardfarm/devices}/common.py | 0 .../devices}/configreader.py | 0 .../devices}/connection_decider.py | 0 {devices => boardfarm/devices}/cougarpark.py | 0 {devices => boardfarm/devices}/debian.py | 0 {devices => boardfarm/devices}/debian_isc.py | 0 {devices => boardfarm/devices}/debian_wifi.py | 0 {devices => boardfarm/devices}/dell_switch.py | 0 .../devices}/error_detect.py | 0 .../devices}/kermit_connection.py | 0 {devices => boardfarm/devices}/linux.py | 0 {devices => boardfarm/devices}/local_cmd.py | 0 .../devices}/local_serial_connection.py | 0 {devices => boardfarm/devices}/marvell.py | 0 {devices => boardfarm/devices}/mysql.py | 0 {devices => boardfarm/devices}/netgear.py | 0 {devices => boardfarm/devices}/oe.py | 0 .../devices}/openwrt_router.py | 0 {devices => boardfarm/devices}/power.py | 0 .../devices}/qcom_akronite_nand.py | 0 .../devices}/qcom_akronite_nor.py | 0 .../devices}/qcom_arm_base.py | 0 .../devices}/qcom_dakota_nand.py | 0 .../devices}/qcom_dakota_nor.py | 0 {devices => boardfarm/devices}/qcom_mips.py | 0 {devices => boardfarm/devices}/qemu.py | 0 .../devices}/qemu_openwrt.py | 0 {devices => boardfarm/devices}/rpi.py | 0 .../devices}/ser2net_connection.py | 0 .../devices}/ssh_connection.py | 0 .../devices}/windows_telnet.py | 0 {devices => boardfarm/devices}/windows_wsl.py | 0 {docs => boardfarm/docs}/BOARD_FARM.md | 0 {docs => boardfarm/docs}/BoardFarm.png | Bin {docs => boardfarm/docs}/ELK_SETUP.md | 0 .../docs}/Simple_Board_Farm.jpg | Bin .../html}/template_results.html | 0 .../html}/template_results_basic.html | 0 library.py => boardfarm/library.py | 0 .../make_human_readable.py | 0 .../resources}/mibs/SNMPv2-CONF.txt | 0 .../resources}/mibs/SNMPv2-MIB.txt | 0 .../resources}/mibs/SNMPv2-SMI.txt | 0 .../resources}/mibs/SNMPv2-TC.txt | 0 .../resources}/mibs/rfc1213-mib2.asn1.txt | 0 {results => boardfarm/results}/README | 0 {tests => boardfarm/tests}/__init__.py | 0 {tests => boardfarm/tests}/bittorrent.py | 0 {tests => boardfarm/tests}/bridge_mode.py | 0 .../tests}/cdrouter_bootstrap.py | 0 .../tests}/concurrent_iperf.py | 0 .../tests}/connection_stress.py | 0 {tests => boardfarm/tests}/console_delay.py | 0 {tests => boardfarm/tests}/curl_https.py | 0 {tests => boardfarm/tests}/firewall_on_off.py | 0 {tests => boardfarm/tests}/hping3.py | 0 {tests => boardfarm/tests}/igmpv3_basic.py | 0 {tests => boardfarm/tests}/interact.py | 0 {tests => boardfarm/tests}/ip_link.py | 0 {tests => boardfarm/tests}/iperf3_test.py | 0 {tests => boardfarm/tests}/iperf_test.py | 0 {tests => boardfarm/tests}/iperf_udp_test.py | 0 {tests => boardfarm/tests}/iptables.py | 0 {tests => boardfarm/tests}/ipv6_curl.py | 0 {tests => boardfarm/tests}/ipv6_setup.py | 0 {tests => boardfarm/tests}/jmeter.py | 0 .../tests}/jmeter/httpreq_10x_10u_5t.jmx | 0 .../tests}/jmeter/httpreq_1x_9u_5t.jmx | 0 .../tests}/jmeter/httpreq_20x_9u_1t.jmx | 0 .../jmeter/httpreq_20x_9u_1t_1000msdelay.jmx | 0 .../jmeter/httpreq_20x_9u_1t_1500msdelay.jmx | 0 .../jmeter/httpreq_20x_9u_1t_300msdelay.jmx | 0 .../jmeter/httpreq_20x_9u_1t_500msdelay.jmx | 0 {tests => boardfarm/tests}/latency_all.py | 0 {tests => boardfarm/tests}/lib/SnmpHelper.py | 0 {tests => boardfarm/tests}/lib/__init__.py | 0 {tests => boardfarm/tests}/lib/bft_logging.py | 0 {tests => boardfarm/tests}/lib/common.py | 0 {tests => boardfarm/tests}/lib/gui_helper.py | 0 {tests => boardfarm/tests}/lib/installers.py | 0 .../tests}/lib/network_helper.py | 0 .../tests}/lib/network_testing.py | 0 {tests => boardfarm/tests}/lib/randomMAC.py | 0 {tests => boardfarm/tests}/lib/regexlib.py | 0 .../tests}/lib/scripts/openvpn-install.sh | 0 {tests => boardfarm/tests}/lib/wifi.py | 0 {tests => boardfarm/tests}/linux_boot.py | 0 {tests => boardfarm/tests}/lsmod.py | 0 {tests => boardfarm/tests}/netperf_bidir.py | 0 .../tests}/netperf_reverse_test.py | 0 {tests => boardfarm/tests}/netperf_rfc2544.py | 0 .../tests}/netperf_stress_test.py | 0 {tests => boardfarm/tests}/netperf_test.py | 0 .../tests}/netperf_udp_test.py | 0 {tests => boardfarm/tests}/network_restart.py | 0 {tests => boardfarm/tests}/nmap.py | 0 {tests => boardfarm/tests}/oe.py | 0 {tests => boardfarm/tests}/openwrt_version.py | 0 {tests => boardfarm/tests}/opkg.py | 0 {tests => boardfarm/tests}/opkg_conf.py | 0 {tests => boardfarm/tests}/perfperpkt_test.py | 0 {tests => boardfarm/tests}/ping.py | 0 {tests => boardfarm/tests}/ping6.py | 0 {tests => boardfarm/tests}/qdisc.py | 0 {tests => boardfarm/tests}/rootfs_boot.py | 0 {tests => boardfarm/tests}/samba.py | 0 {tests => boardfarm/tests}/screenshot_gui.py | 0 {tests => boardfarm/tests}/selftest.py | 0 {tests => boardfarm/tests}/snmp.py | 0 {tests => boardfarm/tests}/socat.py | 0 .../tests}/ssh_forward_port.py | 0 {tests => boardfarm/tests}/status.py | 0 {tests => boardfarm/tests}/sysupgrade.py | 0 {tests => boardfarm/tests}/tcpdump.py | 0 {tests => boardfarm/tests}/ubus.py | 0 {tests => boardfarm/tests}/uci_wireless.py | 0 {tests => boardfarm/tests}/uname.py | 0 {tests => boardfarm/tests}/vmstat.py | 0 {tests => boardfarm/tests}/webbrowse.py | 0 {tests => boardfarm/tests}/webgui.py | 0 {tests => boardfarm/tests}/webui_tests.py | 0 {tests => boardfarm/tests}/wifi.py | 0 testsuites.cfg => boardfarm/testsuites.cfg | 0 testsuites.py => boardfarm/testsuites.py | 0 {zephyr => boardfarm/zephyr}/README.md | 0 {zephyr => boardfarm/zephyr}/__init__.py | 0 .../zephyr}/boardfarm_tc_meta_file.csv | 0 {zephyr => boardfarm/zephyr}/zapi.py | 0 .../zephyr}/zephyr_reporter.py | 0 deploy-boardfarm-nodes.sh | 413 +------------- 155 files changed, 948 insertions(+), 946 deletions(-) mode change 100755 => 120000 bft rename {analysis => boardfarm/analysis}/__init__.py (100%) rename {analysis => boardfarm/analysis}/analysis.py (100%) rename {analysis => boardfarm/analysis}/connections.py (100%) rename {analysis => boardfarm/analysis}/oom.py (100%) rename {analysis => boardfarm/analysis}/panic.py (100%) rename {analysis => boardfarm/analysis}/ps.py (100%) rename {analysis => boardfarm/analysis}/sb_connections.py (100%) rename {analysis => boardfarm/analysis}/slab.py (100%) rename {analysis => boardfarm/analysis}/vmstat.py (100%) rename arguments.py => boardfarm/arguments.py (100%) create mode 100755 boardfarm/bft rename {bft-node => boardfarm/bft-node}/Dockerfile (100%) rename boardfarm_config_example.json => boardfarm/boardfarm_config_example.json (100%) rename config.py => boardfarm/config.py (100%) rename {configs => boardfarm/configs}/cdrouter-rdkb.conf (100%) rename {dbclients => boardfarm/dbclients}/__init__.py (100%) rename {dbclients => boardfarm/dbclients}/boardfarmwebclient.py (100%) rename {dbclients => boardfarm/dbclients}/elasticlogger.py (100%) rename {dbclients => boardfarm/dbclients}/logstash.py (100%) rename {dbclients => boardfarm/dbclients}/mongodblogger.py (100%) create mode 100755 boardfarm/deploy-boardfarm-nodes.sh rename {devices => boardfarm/devices}/__init__.py (100%) rename {devices => boardfarm/devices}/axiros_acs.py (100%) rename {devices => boardfarm/devices}/base.py (100%) rename {devices => boardfarm/devices}/common.py (100%) rename {devices => boardfarm/devices}/configreader.py (100%) rename {devices => boardfarm/devices}/connection_decider.py (100%) rename {devices => boardfarm/devices}/cougarpark.py (100%) rename {devices => boardfarm/devices}/debian.py (100%) rename {devices => boardfarm/devices}/debian_isc.py (100%) rename {devices => boardfarm/devices}/debian_wifi.py (100%) rename {devices => boardfarm/devices}/dell_switch.py (100%) rename {devices => boardfarm/devices}/error_detect.py (100%) rename {devices => boardfarm/devices}/kermit_connection.py (100%) rename {devices => boardfarm/devices}/linux.py (100%) rename {devices => boardfarm/devices}/local_cmd.py (100%) rename {devices => boardfarm/devices}/local_serial_connection.py (100%) rename {devices => boardfarm/devices}/marvell.py (100%) rename {devices => boardfarm/devices}/mysql.py (100%) rename {devices => boardfarm/devices}/netgear.py (100%) rename {devices => boardfarm/devices}/oe.py (100%) rename {devices => boardfarm/devices}/openwrt_router.py (100%) rename {devices => boardfarm/devices}/power.py (100%) rename {devices => boardfarm/devices}/qcom_akronite_nand.py (100%) rename {devices => boardfarm/devices}/qcom_akronite_nor.py (100%) rename {devices => boardfarm/devices}/qcom_arm_base.py (100%) rename {devices => boardfarm/devices}/qcom_dakota_nand.py (100%) rename {devices => boardfarm/devices}/qcom_dakota_nor.py (100%) rename {devices => boardfarm/devices}/qcom_mips.py (100%) rename {devices => boardfarm/devices}/qemu.py (100%) rename {devices => boardfarm/devices}/qemu_openwrt.py (100%) rename {devices => boardfarm/devices}/rpi.py (100%) rename {devices => boardfarm/devices}/ser2net_connection.py (100%) rename {devices => boardfarm/devices}/ssh_connection.py (100%) rename {devices => boardfarm/devices}/windows_telnet.py (100%) rename {devices => boardfarm/devices}/windows_wsl.py (100%) rename {docs => boardfarm/docs}/BOARD_FARM.md (100%) rename {docs => boardfarm/docs}/BoardFarm.png (100%) rename {docs => boardfarm/docs}/ELK_SETUP.md (100%) rename {docs => boardfarm/docs}/Simple_Board_Farm.jpg (100%) rename {html => boardfarm/html}/template_results.html (100%) rename {html => boardfarm/html}/template_results_basic.html (100%) rename library.py => boardfarm/library.py (100%) rename make_human_readable.py => boardfarm/make_human_readable.py (100%) rename {resources => boardfarm/resources}/mibs/SNMPv2-CONF.txt (100%) rename {resources => boardfarm/resources}/mibs/SNMPv2-MIB.txt (100%) rename {resources => boardfarm/resources}/mibs/SNMPv2-SMI.txt (100%) rename {resources => boardfarm/resources}/mibs/SNMPv2-TC.txt (100%) rename {resources => boardfarm/resources}/mibs/rfc1213-mib2.asn1.txt (100%) rename {results => boardfarm/results}/README (100%) rename {tests => boardfarm/tests}/__init__.py (100%) rename {tests => boardfarm/tests}/bittorrent.py (100%) rename {tests => boardfarm/tests}/bridge_mode.py (100%) rename {tests => boardfarm/tests}/cdrouter_bootstrap.py (100%) rename {tests => boardfarm/tests}/concurrent_iperf.py (100%) rename {tests => boardfarm/tests}/connection_stress.py (100%) rename {tests => boardfarm/tests}/console_delay.py (100%) rename {tests => boardfarm/tests}/curl_https.py (100%) rename {tests => boardfarm/tests}/firewall_on_off.py (100%) rename {tests => boardfarm/tests}/hping3.py (100%) rename {tests => boardfarm/tests}/igmpv3_basic.py (100%) rename {tests => boardfarm/tests}/interact.py (100%) rename {tests => boardfarm/tests}/ip_link.py (100%) rename {tests => boardfarm/tests}/iperf3_test.py (100%) rename {tests => boardfarm/tests}/iperf_test.py (100%) rename {tests => boardfarm/tests}/iperf_udp_test.py (100%) rename {tests => boardfarm/tests}/iptables.py (100%) rename {tests => boardfarm/tests}/ipv6_curl.py (100%) rename {tests => boardfarm/tests}/ipv6_setup.py (100%) rename {tests => boardfarm/tests}/jmeter.py (100%) rename {tests => boardfarm/tests}/jmeter/httpreq_10x_10u_5t.jmx (100%) rename {tests => boardfarm/tests}/jmeter/httpreq_1x_9u_5t.jmx (100%) rename {tests => boardfarm/tests}/jmeter/httpreq_20x_9u_1t.jmx (100%) rename {tests => boardfarm/tests}/jmeter/httpreq_20x_9u_1t_1000msdelay.jmx (100%) rename {tests => boardfarm/tests}/jmeter/httpreq_20x_9u_1t_1500msdelay.jmx (100%) rename {tests => boardfarm/tests}/jmeter/httpreq_20x_9u_1t_300msdelay.jmx (100%) rename {tests => boardfarm/tests}/jmeter/httpreq_20x_9u_1t_500msdelay.jmx (100%) rename {tests => boardfarm/tests}/latency_all.py (100%) rename {tests => boardfarm/tests}/lib/SnmpHelper.py (100%) rename {tests => boardfarm/tests}/lib/__init__.py (100%) rename {tests => boardfarm/tests}/lib/bft_logging.py (100%) rename {tests => boardfarm/tests}/lib/common.py (100%) rename {tests => boardfarm/tests}/lib/gui_helper.py (100%) rename {tests => boardfarm/tests}/lib/installers.py (100%) rename {tests => boardfarm/tests}/lib/network_helper.py (100%) rename {tests => boardfarm/tests}/lib/network_testing.py (100%) rename {tests => boardfarm/tests}/lib/randomMAC.py (100%) rename {tests => boardfarm/tests}/lib/regexlib.py (100%) rename {tests => boardfarm/tests}/lib/scripts/openvpn-install.sh (100%) rename {tests => boardfarm/tests}/lib/wifi.py (100%) rename {tests => boardfarm/tests}/linux_boot.py (100%) rename {tests => boardfarm/tests}/lsmod.py (100%) rename {tests => boardfarm/tests}/netperf_bidir.py (100%) rename {tests => boardfarm/tests}/netperf_reverse_test.py (100%) rename {tests => boardfarm/tests}/netperf_rfc2544.py (100%) rename {tests => boardfarm/tests}/netperf_stress_test.py (100%) rename {tests => boardfarm/tests}/netperf_test.py (100%) rename {tests => boardfarm/tests}/netperf_udp_test.py (100%) rename {tests => boardfarm/tests}/network_restart.py (100%) rename {tests => boardfarm/tests}/nmap.py (100%) rename {tests => boardfarm/tests}/oe.py (100%) rename {tests => boardfarm/tests}/openwrt_version.py (100%) rename {tests => boardfarm/tests}/opkg.py (100%) rename {tests => boardfarm/tests}/opkg_conf.py (100%) rename {tests => boardfarm/tests}/perfperpkt_test.py (100%) rename {tests => boardfarm/tests}/ping.py (100%) rename {tests => boardfarm/tests}/ping6.py (100%) rename {tests => boardfarm/tests}/qdisc.py (100%) rename {tests => boardfarm/tests}/rootfs_boot.py (100%) rename {tests => boardfarm/tests}/samba.py (100%) rename {tests => boardfarm/tests}/screenshot_gui.py (100%) rename {tests => boardfarm/tests}/selftest.py (100%) rename {tests => boardfarm/tests}/snmp.py (100%) rename {tests => boardfarm/tests}/socat.py (100%) rename {tests => boardfarm/tests}/ssh_forward_port.py (100%) rename {tests => boardfarm/tests}/status.py (100%) rename {tests => boardfarm/tests}/sysupgrade.py (100%) rename {tests => boardfarm/tests}/tcpdump.py (100%) rename {tests => boardfarm/tests}/ubus.py (100%) rename {tests => boardfarm/tests}/uci_wireless.py (100%) rename {tests => boardfarm/tests}/uname.py (100%) rename {tests => boardfarm/tests}/vmstat.py (100%) rename {tests => boardfarm/tests}/webbrowse.py (100%) rename {tests => boardfarm/tests}/webgui.py (100%) rename {tests => boardfarm/tests}/webui_tests.py (100%) rename {tests => boardfarm/tests}/wifi.py (100%) rename testsuites.cfg => boardfarm/testsuites.cfg (100%) rename testsuites.py => boardfarm/testsuites.py (100%) rename {zephyr => boardfarm/zephyr}/README.md (100%) rename {zephyr => boardfarm/zephyr}/__init__.py (100%) rename {zephyr => boardfarm/zephyr}/boardfarm_tc_meta_file.csv (100%) rename {zephyr => boardfarm/zephyr}/zapi.py (100%) rename {zephyr => boardfarm/zephyr}/zephyr_reporter.py (100%) mode change 100755 => 120000 deploy-boardfarm-nodes.sh diff --git a/bft b/bft deleted file mode 100755 index 78c3ae5d..00000000 --- a/bft +++ /dev/null @@ -1,534 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2015 -# -# All rights reserved. -# -# This file is distributed under the Clear BSD license. -# The full text can be found in LICENSE in the root directory. - -import atexit -import hashlib -import inspect -import json -import os -import random -import sys -import time -import traceback -from datetime import datetime - -from zephyr import zephyr_reporter - -# Put this directory into the python path, so -# that devices may be imported. -import site -site.addsitedir(os.path.dirname(os.path.realpath(__file__))) - -from devices import get_device -from dbclients import logstash, elasticlogger, mongodblogger, boardfarmwebclient - -import matplotlib -matplotlib.use('Agg') - -def setup_dynamic_devices(config, env=None, start=None): - '''Sets up dynamic devices from devices node in JSON config file''' - - config.devices = [] - for device in config.board['devices']: - if device['name'] in config.devices: - print("Skipping duplicate device type: %s" % device['name']) - continue - - device['reboot'] = config.reboot_vms - device['env'] = env - device['lan_network'] = config.console.lan_network - device['lan_gateway'] = config.console.lan_gateway - device['start'] = start - - s = time.time() - dyn_dev = get_device(device['type'], **device) - if 'BFT_DEBUG' in os.environ: - print("Time to instantiate device = %s" % (time.time() - s)) - - if dyn_dev is not None: - if 'name' not in device: - raise Exception("Device in config is not named! This is required") - setattr(config, device['name'], dyn_dev) - config.devices.append(device['name']) - - # TODO: should this be here for should each device type set it? - dyn_dev.start = start - - # TODO: set the following: - # reboot=config.reboot_vms, - # env=env, - # lan_network=config.console.lan_network, - # lan_gateway=config.console.lan_gateway, - # config=device) - - # if this device is a wan cmts provisioner, we set the device name - # TODO: this should be generic - if getattr(dyn_dev, 'wan_cmts_provisioner', False): - setattr(config, 'provisioner', dyn_dev) - config.devices.append('provisioner') - - continue - - print("Unknown device type for %s" % device) - -def main(): - '''Connect to devices, run tests, record results.''' - - # Read command-line arguments - import arguments - config = arguments.parse() - - import library - import devices - from termcolor import colored - from library import print_bold - - os.environ["TERM"] = "dumb" - - start = datetime.now() - - # Setup boardfarm client even if config is a local file (in which - # case this will do nothing) - bfweb = boardfarmwebclient.BoardfarmWebClient(config.boardfarm_config_location, - bf_version=library.version, - debug=os.environ.get("BFT_DEBUG", False)) - - # Connect to any board in list - connected_to_board = False - random.shuffle(config.BOARD_NAMES) - - def sortFunc(x): - # TODO: add configurable priorities for each type of feature - # e.g. wifi is probably one we never want to use unless requested - if 'feature' in config.boardfarm_config[x]: - if type(config.boardfarm_config[x]['feature']) is list: - return len(config.boardfarm_config[x]['feature']) - else: - return 1 - else: - return -1 - - # move boards with a feature to end of the list - config.BOARD_NAMES = sorted(config.BOARD_NAMES, key=sortFunc) - - for name in config.BOARD_NAMES: - try: - config.board = config.boardfarm_config[name] - except Exception as e: - print(e) - print("Error reading info about board %s from board farm configuration." % name) - break - - print_bold("Connecting to board named = %s, type = %s ..." % (name, config.board['board_type'])) - try: - # None is legacy for tftp_server from before dynamic devices, leave it for now... - tftp_server = None - tftp_port = "22" - - uniqid = hashlib.md5("%0.100f" % time.time()).hexdigest()[:15] - env = {"wan_iface": "wan%s" % uniqid[:12], - "lan_iface": "lan%s" % uniqid[:12], - "uniq_id": uniqid} - - - # Connect to board - config.console = devices.board_decider(config.board['board_type'], - conn_cmd=config.board['conn_cmd'], - power_ip=config.board.get('powerip', None), - power_outlet=config.board.get('powerport', None), - web_proxy=config.board.get('lan_device', None), - tftp_server=config.board.get('wan_device', tftp_server), - tftp_username=config.board.get('wan_username', 'root'), - tftp_password=config.board.get('wan_password', 'bigfoot1'), - tftp_port=config.board.get('wan_port', tftp_port), - connection_type=config.board.get('connection_type', None), - ssh_password=config.board.get('ssh_password', None), - power_username=config.board.get('power_username', None), - power_password=config.board.get('power_password', None), - rootfs=config.ROOTFS, - kernel=config.KERNEL, - config=config.board, - env=env, - start=start) - print_bold("dut device console = %s" % colored("black", 'grey')) - config.console.start = start - - if 'devices' in config.board: - setup_dynamic_devices(config, env=env, start=start) - - def get_tftp_config(dev): - saved = dev.logfile_read - dev.logfile_read = None - if 'wan-no-eth0' in dev.kwargs.get('options', ""): - config.console.tftp_server = dev.get_interface_ipaddr("eth1") - else: - config.console.tftp_server = dev.get_interface_ipaddr("eth0") - dev.logfile_read = saved - config.console.tftp_username = "root" - config.console.tftp_password = "bigfoot1" - config.console.tftp_port = "22" - config.console.tftp_dev = dev - - # check devices after they start for tftpd-server option if - # if we still have not configured a tftp server - if tftp_server is None: - for x in config.board['devices']: - if 'tftpd-server' in x.get('options', ""): - get_tftp_config(getattr(config, x['name'])) - # TODO: how do we handle multiple tftp servers, break for now - break - else: - # check if the tftp_server is an unresolved name and resolve the ip - for x in config.board['devices']: - if tftp_server == x.get('name', ""): - get_tftp_config(getattr(config, tftp_server)) - # call for ip addr too since we want to fields populated - if tftp_server == x.get('ipaddr', ""): - config.console.tftp_dev = getattr(config, x.get('name')) - - except KeyboardInterrupt: - print_bold("Keyboard interrupt") - sys.exit(2) - except Exception as e: - print(e) - traceback.print_exc(file=sys.stdout) - connected_to_board = False - continue - connected_to_board = True - break - if not connected_to_board: - print_bold("Failed to connect to any board") - sys.exit(2) - - try: - print_bold("Using Board %s, User %s" % (name, os.environ['BUILD_USER_ID'])) - except: - print_bold("Using Board %s, User %s" % (name, os.environ['USER'])) - - # Store name of station in config for convenience - config.board['station'] = name - - # Notify boardfarm server of station & devices we are using - bfweb.checkout(config.board) - # Checkin station & devices when we exit - atexit.register(bfweb.checkin) - - # Make devices (board, lan, wan, available to tests easily) - devices.initialize_devices(config) - - # Update config from board info - if hasattr(config.console, "update_config"): - config.console.update_config() - - print_bold('\n==========') - library.printd(config.board) - - # Run tests - os.environ['TEST_START_TIME'] = datetime.now().strftime("%s") - tests_to_run = [] - # Add tests from specified suite - print_bold('==========\nTest suite "%s" has been specified, will attempt to run tests:' % config.TEST_SUITE) - import tests - tests.init(config) - import testsuites - if config.TEST_SUITE not in testsuites.list_tests: - print_bold("Unable to find testsuite %s, aborting..." % config.TEST_SUITE) - sys.exit(1) - for i, name in enumerate(testsuites.list_tests[config.TEST_SUITE]): - if isinstance(name, str): - if not hasattr(tests, name): - print_bold("\tTest %s skipped, not found..." % name) - continue - test = getattr(tests, name) - test.start = start - else: - test = name - print_bold(" %s %s from %s" % (i+1, test.__name__, inspect.getfile(test))) - tests_to_run.append(test(config)) - if hasattr(config, 'EXTRA_TESTS') and config.EXTRA_TESTS: - if tests_to_run[-1].__class__.__name__ == "Interact": - print_bold("Last test is interact in testsuite, removing") - tests_to_run.pop() - - print_bold("Extra tests specified on command line:") - try: - for name in config.EXTRA_TESTS: - t = getattr(tests, name, None) - if t is None: - raise Exception("Unable to load %s test from tests class!!!! Parsing of test selected via -e failed" % name) - print_bold(" %s" % t) - test = t(config) - test.start = start - tests_to_run.append(test) - except Exception as e: - print_bold(e) - print_bold("Unable to find specified extra tests, aborting...") - sys.exit(1) - - print_bold('==========') - try: - tests_pass = tests_fail = tests_skip = 0 - curr_test = None - for test in tests_to_run: - curr_test = test - test.run() - curr_test = None - grade = getattr(test, "result_grade", None) - if grade == "OK" or grade == "Unexp OK": - tests_pass += 1 - elif grade == "FAIL" or grade == "Exp FAIL": - tests_fail += 1 - elif grade == "SKIP" or grade is None: - tests_skip += 1 - - except KeyboardInterrupt: - print_bold("Run interrupted. Wrapping up...") - if curr_test is not None: - curr_test.recover() - - print_bold("Results run=%d failures=%d skipped=%d" % (tests_pass, tests_fail, tests_skip)) - - try: - config.console.close() - if 'devices' in config.board: - for device in config.devices: - getattr(config, device).close() - else: - if config.lan is not None: - config.lan.close() - if config.wan is not None: - config.wan.close() - except Exception as e: - print(e) - print_bold("For some reason, could not close a connection.") - library.printd(config.board) - - combined_list = [] - def add_to_combined_list(log, name, combined_list=combined_list): - for line in log.split('\r\n'): - try: - if line is '': - continue - if line.startswith('\n'): - line = line[1:] - if line.startswith(' ['): - line = line[1:] - ts, text = line.split(']', 1) - combined_list.append({"time": float(ts[1:-1]), "text": str(text), "name": name}) - except: - print("Failed to parse log line = %s" % repr(line)) - pass - - idx = 1 - console_combined = [] - for console in config.console.consoles: - with open(os.path.join(config.output_dir, 'console-%s.log' % idx), 'w') as clog: - clog.write(console.log) - add_to_combined_list(console.log, "console-%s" % idx) - add_to_combined_list(console.log_calls, "console-%s" % idx) - add_to_combined_list(console.log, "", console_combined) - idx = idx + 1 - - def write_combined_log(combined_list, fname): - with open(os.path.join(config.output_dir, fname), 'w') as clog: - for e in combined_list: - try: - if e['name'] == "": - clog.write('[%s]%s\r\n' % (e['time'], e['text'])) - else: - clog.write('%s: [%s] %s\n' % (e['name'], e['time'], e['text'])) - except: - print("failed to parse line: %s" % repr(e)) - - import operator - console_combined.sort(key=operator.itemgetter('time')) - write_combined_log(console_combined, "console-combined.log") - - for device in config.devices: - with open(os.path.join(config.output_dir, device + ".log"), 'w') as clog: - d = getattr(config, device) - if hasattr(d, 'log'): - clog.write(d.log) - add_to_combined_list(d.log, device) - add_to_combined_list(d.log_calls, device) - - for test in tests_to_run: - if hasattr(test, 'log') and test.log != "": - with open(os.path.join(config.output_dir, '%s.log' % test.__class__.__name__), 'w') as clog: - clog.write(test.log) - if hasattr(test, 'log_calls'): - add_to_combined_list(test.log_calls, test.__class__.__name__) - - combined_list.sort(key=operator.itemgetter('time')) - write_combined_log(combined_list, "all.log") - - os.environ['TEST_END_TIME'] = datetime.now().strftime("%s") - - # grab golden master results - golden = {} - if config.golden is not []: - import requests - for g in golden: - try: - golden.update(requests.get(config.golden).json()) - except: - print_bold("Failed to fetch golden master results, skipping...") - - # Write test result messages to a file - full_results = library.process_test_results(tests_to_run, golden) - json.dump(full_results, - open(os.path.join(config.output_dir + 'test_results.json'), 'w'), - indent=4, - sort_keys=True) - - # run all analysis classes (post processing) - # also, never fail so we don't block automation - try: - fname = "console-combined.log" - with open(os.path.join(config.output_dir, fname), 'r') as f: - clog = f.read() - if not clog: - print("Skipping analysis because %s is empty..." % fname) - else: - import analysis - for cstr in dir(analysis): - c = getattr(analysis, cstr) - if inspect.isclass(c) and issubclass(c, analysis.Analysis): - c().analyze(clog, config.output_dir) - except Exception as e: - if not issubclass(type(e), (StopIteration)): - print("Failed to run anaylsis:") - print(e) - - # Try to remotely log information about this run - info_for_remote_log = dict(config.board) - info_for_remote_log.update(full_results) - info_for_remote_log['bft_version'] = library.version - try: - info_for_remote_log['duration'] = int(os.environ['TEST_END_TIME'])-int(os.environ['TEST_START_TIME']) - except: - pass - if hasattr(config, 'TEST_SUITE'): - info_for_remote_log['test_suite'] = str(config.TEST_SUITE) - # logstash cannot handle multi-level json, remove full test results - info_for_remote_log.pop('test_results', None) - # but we will add back specific test results data - for t in tests_to_run: - def prepare_results_for_kibana(test, prefix=""): - if hasattr(test, 'override_kibana_name'): - n = test.override_kibana_name - elif hasattr(test, 'name'): - n = test.name - else: - n = test.__class__.__name__ - - n = prefix + n - - for k, v in test.logged.items(): - info_for_remote_log[n + '-' + k] = v - if hasattr(test, 'result_grade'): - info_for_remote_log[n + "-result"] = test.result_grade - - return n - - prefix = prepare_results_for_kibana(t) + "-" - for subtest in t.subtests: - prepare_results_for_kibana(subtest, prefix=prefix) - - # Convert python objects to things that can be stored in - # JSON, like strings and numbers. - info_for_remote_log = library.clean_for_json(info_for_remote_log) - # Remove reserved key names - info_for_remote_log.pop('_id', None) - - try: - if config.logging_server is not None: - logstash.RemoteLogger(config.logging_server).log(info_for_remote_log) - except Exception as e: - print(e) - print("Unable to access logging_server specified in config. " - "Results stored only locally.") - - try: - if config.elasticsearch_server is not None: - elasticlogger.ElasticsearchLogger(config.elasticsearch_server).log(info_for_remote_log) - else: - print("No elasticsearch_server specified in config. Results stored locally") - except Exception as e: - print(e) - print("Unable to store results to elasticsearch_server specified in config. " - "Results stored locally.") - - try: - if hasattr(config, 'mongodb') and config.mongodb['host'] is not None: - mongodblogger.MongodbLogger(**config.mongodb).log(info_for_remote_log) - else: - print("Needed mongodb parameters are not set, see config. Results stored locally.") - except Exception as e: - print(e) - print("Unable to store results to mongodb specified in config. " - "Results stored locally.") - - if set(('BFT_AWS_ACCESS_KEY', 'BFT_AWS_SECRET_ACCESS_KEY', 'BFT_AWS_BUCKET')).issubset(os.environ): - try: - import boto3 - - filename = datetime.utcnow().strftime("%Y-%m-%dT%H-%M-%S.000Z") + '.json' - s3 = boto3.resource('s3', - aws_access_key_id=os.environ['BFT_AWS_ACCESS_KEY'], - aws_secret_access_key=os.environ['BFT_AWS_SECRET_ACCESS_KEY']) - s3object = s3.Object(os.environ['BFT_AWS_BUCKET'], filename) - s3object.put(Body=(bytes(json.dumps(info_for_remote_log, default=str).encode('UTF-8')))) - except Exception as e: - print("Failed to load data in AWS bucket") - print(e) - - #Update the results in Zephyr - try: - result_data = json.load(open('./results/test_results.json')) - test_cases_list = [[r["name"], r["grade"]] for r in result_data["test_results"]] - zephyr_reporter.update_zephyr(test_cases_list) - except Exception as e: - print(e) - print("Unable to Update results in Zephyr") - - # Create Pretty HTML output - import make_human_readable - try: - title_str = make_human_readable.get_title() - make_human_readable.xmlresults_to_html(full_results['test_results'], title=title_str, - output_name=os.path.join(config.output_dir, "results.html"), - board_info=config.board) - except Exception as e: - print(e) - print("Unable to create HTML results") - - # Send url of pretty html results to MySQL build database - try: - library.send_results_to_myqsl(config.TEST_SUITE, config.output_dir) - except Exception as e: - print(e) - print("Unable to log results to mysql database.") - - for t in tests_to_run: - if t.log_to_file is not None and hasattr(t, 'stop_time'): - filename = type(t).__name__ + '-' + time.strftime("%Y%m%d-%H%M%S") + ".txt" - testtime = t.stop_time - t.start_time - with open(os.path.join(config.output_dir, filename), 'w') as log: - log.write('\t=======================================================') - log.write('\n\tTest case ID: %s' % (type(t).__name__)) - log.write('\n\tTest case Description: %s' % (type(t).__doc__)) - log.write('\n\t=======================================================\n') - log.write(t.log_to_file) - log.write('\n\t=======================================================') - log.write('\n\t%s test result: %s' % (type(t).__name__, t.result_grade)) - log.write('\n\tTotal test time: %s seconds' % testtime) - log.write('\n\t=======================================================') -if __name__ == '__main__': - main() diff --git a/bft b/bft new file mode 120000 index 00000000..a80fd037 --- /dev/null +++ b/bft @@ -0,0 +1 @@ +boardfarm/bft \ No newline at end of file diff --git a/analysis/__init__.py b/boardfarm/analysis/__init__.py similarity index 100% rename from analysis/__init__.py rename to boardfarm/analysis/__init__.py diff --git a/analysis/analysis.py b/boardfarm/analysis/analysis.py similarity index 100% rename from analysis/analysis.py rename to boardfarm/analysis/analysis.py diff --git a/analysis/connections.py b/boardfarm/analysis/connections.py similarity index 100% rename from analysis/connections.py rename to boardfarm/analysis/connections.py diff --git a/analysis/oom.py b/boardfarm/analysis/oom.py similarity index 100% rename from analysis/oom.py rename to boardfarm/analysis/oom.py diff --git a/analysis/panic.py b/boardfarm/analysis/panic.py similarity index 100% rename from analysis/panic.py rename to boardfarm/analysis/panic.py diff --git a/analysis/ps.py b/boardfarm/analysis/ps.py similarity index 100% rename from analysis/ps.py rename to boardfarm/analysis/ps.py diff --git a/analysis/sb_connections.py b/boardfarm/analysis/sb_connections.py similarity index 100% rename from analysis/sb_connections.py rename to boardfarm/analysis/sb_connections.py diff --git a/analysis/slab.py b/boardfarm/analysis/slab.py similarity index 100% rename from analysis/slab.py rename to boardfarm/analysis/slab.py diff --git a/analysis/vmstat.py b/boardfarm/analysis/vmstat.py similarity index 100% rename from analysis/vmstat.py rename to boardfarm/analysis/vmstat.py diff --git a/arguments.py b/boardfarm/arguments.py similarity index 100% rename from arguments.py rename to boardfarm/arguments.py diff --git a/boardfarm/bft b/boardfarm/bft new file mode 100755 index 00000000..78c3ae5d --- /dev/null +++ b/boardfarm/bft @@ -0,0 +1,534 @@ +#!/usr/bin/env python + +# Copyright (c) 2015 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. + +import atexit +import hashlib +import inspect +import json +import os +import random +import sys +import time +import traceback +from datetime import datetime + +from zephyr import zephyr_reporter + +# Put this directory into the python path, so +# that devices may be imported. +import site +site.addsitedir(os.path.dirname(os.path.realpath(__file__))) + +from devices import get_device +from dbclients import logstash, elasticlogger, mongodblogger, boardfarmwebclient + +import matplotlib +matplotlib.use('Agg') + +def setup_dynamic_devices(config, env=None, start=None): + '''Sets up dynamic devices from devices node in JSON config file''' + + config.devices = [] + for device in config.board['devices']: + if device['name'] in config.devices: + print("Skipping duplicate device type: %s" % device['name']) + continue + + device['reboot'] = config.reboot_vms + device['env'] = env + device['lan_network'] = config.console.lan_network + device['lan_gateway'] = config.console.lan_gateway + device['start'] = start + + s = time.time() + dyn_dev = get_device(device['type'], **device) + if 'BFT_DEBUG' in os.environ: + print("Time to instantiate device = %s" % (time.time() - s)) + + if dyn_dev is not None: + if 'name' not in device: + raise Exception("Device in config is not named! This is required") + setattr(config, device['name'], dyn_dev) + config.devices.append(device['name']) + + # TODO: should this be here for should each device type set it? + dyn_dev.start = start + + # TODO: set the following: + # reboot=config.reboot_vms, + # env=env, + # lan_network=config.console.lan_network, + # lan_gateway=config.console.lan_gateway, + # config=device) + + # if this device is a wan cmts provisioner, we set the device name + # TODO: this should be generic + if getattr(dyn_dev, 'wan_cmts_provisioner', False): + setattr(config, 'provisioner', dyn_dev) + config.devices.append('provisioner') + + continue + + print("Unknown device type for %s" % device) + +def main(): + '''Connect to devices, run tests, record results.''' + + # Read command-line arguments + import arguments + config = arguments.parse() + + import library + import devices + from termcolor import colored + from library import print_bold + + os.environ["TERM"] = "dumb" + + start = datetime.now() + + # Setup boardfarm client even if config is a local file (in which + # case this will do nothing) + bfweb = boardfarmwebclient.BoardfarmWebClient(config.boardfarm_config_location, + bf_version=library.version, + debug=os.environ.get("BFT_DEBUG", False)) + + # Connect to any board in list + connected_to_board = False + random.shuffle(config.BOARD_NAMES) + + def sortFunc(x): + # TODO: add configurable priorities for each type of feature + # e.g. wifi is probably one we never want to use unless requested + if 'feature' in config.boardfarm_config[x]: + if type(config.boardfarm_config[x]['feature']) is list: + return len(config.boardfarm_config[x]['feature']) + else: + return 1 + else: + return -1 + + # move boards with a feature to end of the list + config.BOARD_NAMES = sorted(config.BOARD_NAMES, key=sortFunc) + + for name in config.BOARD_NAMES: + try: + config.board = config.boardfarm_config[name] + except Exception as e: + print(e) + print("Error reading info about board %s from board farm configuration." % name) + break + + print_bold("Connecting to board named = %s, type = %s ..." % (name, config.board['board_type'])) + try: + # None is legacy for tftp_server from before dynamic devices, leave it for now... + tftp_server = None + tftp_port = "22" + + uniqid = hashlib.md5("%0.100f" % time.time()).hexdigest()[:15] + env = {"wan_iface": "wan%s" % uniqid[:12], + "lan_iface": "lan%s" % uniqid[:12], + "uniq_id": uniqid} + + + # Connect to board + config.console = devices.board_decider(config.board['board_type'], + conn_cmd=config.board['conn_cmd'], + power_ip=config.board.get('powerip', None), + power_outlet=config.board.get('powerport', None), + web_proxy=config.board.get('lan_device', None), + tftp_server=config.board.get('wan_device', tftp_server), + tftp_username=config.board.get('wan_username', 'root'), + tftp_password=config.board.get('wan_password', 'bigfoot1'), + tftp_port=config.board.get('wan_port', tftp_port), + connection_type=config.board.get('connection_type', None), + ssh_password=config.board.get('ssh_password', None), + power_username=config.board.get('power_username', None), + power_password=config.board.get('power_password', None), + rootfs=config.ROOTFS, + kernel=config.KERNEL, + config=config.board, + env=env, + start=start) + print_bold("dut device console = %s" % colored("black", 'grey')) + config.console.start = start + + if 'devices' in config.board: + setup_dynamic_devices(config, env=env, start=start) + + def get_tftp_config(dev): + saved = dev.logfile_read + dev.logfile_read = None + if 'wan-no-eth0' in dev.kwargs.get('options', ""): + config.console.tftp_server = dev.get_interface_ipaddr("eth1") + else: + config.console.tftp_server = dev.get_interface_ipaddr("eth0") + dev.logfile_read = saved + config.console.tftp_username = "root" + config.console.tftp_password = "bigfoot1" + config.console.tftp_port = "22" + config.console.tftp_dev = dev + + # check devices after they start for tftpd-server option if + # if we still have not configured a tftp server + if tftp_server is None: + for x in config.board['devices']: + if 'tftpd-server' in x.get('options', ""): + get_tftp_config(getattr(config, x['name'])) + # TODO: how do we handle multiple tftp servers, break for now + break + else: + # check if the tftp_server is an unresolved name and resolve the ip + for x in config.board['devices']: + if tftp_server == x.get('name', ""): + get_tftp_config(getattr(config, tftp_server)) + # call for ip addr too since we want to fields populated + if tftp_server == x.get('ipaddr', ""): + config.console.tftp_dev = getattr(config, x.get('name')) + + except KeyboardInterrupt: + print_bold("Keyboard interrupt") + sys.exit(2) + except Exception as e: + print(e) + traceback.print_exc(file=sys.stdout) + connected_to_board = False + continue + connected_to_board = True + break + if not connected_to_board: + print_bold("Failed to connect to any board") + sys.exit(2) + + try: + print_bold("Using Board %s, User %s" % (name, os.environ['BUILD_USER_ID'])) + except: + print_bold("Using Board %s, User %s" % (name, os.environ['USER'])) + + # Store name of station in config for convenience + config.board['station'] = name + + # Notify boardfarm server of station & devices we are using + bfweb.checkout(config.board) + # Checkin station & devices when we exit + atexit.register(bfweb.checkin) + + # Make devices (board, lan, wan, available to tests easily) + devices.initialize_devices(config) + + # Update config from board info + if hasattr(config.console, "update_config"): + config.console.update_config() + + print_bold('\n==========') + library.printd(config.board) + + # Run tests + os.environ['TEST_START_TIME'] = datetime.now().strftime("%s") + tests_to_run = [] + # Add tests from specified suite + print_bold('==========\nTest suite "%s" has been specified, will attempt to run tests:' % config.TEST_SUITE) + import tests + tests.init(config) + import testsuites + if config.TEST_SUITE not in testsuites.list_tests: + print_bold("Unable to find testsuite %s, aborting..." % config.TEST_SUITE) + sys.exit(1) + for i, name in enumerate(testsuites.list_tests[config.TEST_SUITE]): + if isinstance(name, str): + if not hasattr(tests, name): + print_bold("\tTest %s skipped, not found..." % name) + continue + test = getattr(tests, name) + test.start = start + else: + test = name + print_bold(" %s %s from %s" % (i+1, test.__name__, inspect.getfile(test))) + tests_to_run.append(test(config)) + if hasattr(config, 'EXTRA_TESTS') and config.EXTRA_TESTS: + if tests_to_run[-1].__class__.__name__ == "Interact": + print_bold("Last test is interact in testsuite, removing") + tests_to_run.pop() + + print_bold("Extra tests specified on command line:") + try: + for name in config.EXTRA_TESTS: + t = getattr(tests, name, None) + if t is None: + raise Exception("Unable to load %s test from tests class!!!! Parsing of test selected via -e failed" % name) + print_bold(" %s" % t) + test = t(config) + test.start = start + tests_to_run.append(test) + except Exception as e: + print_bold(e) + print_bold("Unable to find specified extra tests, aborting...") + sys.exit(1) + + print_bold('==========') + try: + tests_pass = tests_fail = tests_skip = 0 + curr_test = None + for test in tests_to_run: + curr_test = test + test.run() + curr_test = None + grade = getattr(test, "result_grade", None) + if grade == "OK" or grade == "Unexp OK": + tests_pass += 1 + elif grade == "FAIL" or grade == "Exp FAIL": + tests_fail += 1 + elif grade == "SKIP" or grade is None: + tests_skip += 1 + + except KeyboardInterrupt: + print_bold("Run interrupted. Wrapping up...") + if curr_test is not None: + curr_test.recover() + + print_bold("Results run=%d failures=%d skipped=%d" % (tests_pass, tests_fail, tests_skip)) + + try: + config.console.close() + if 'devices' in config.board: + for device in config.devices: + getattr(config, device).close() + else: + if config.lan is not None: + config.lan.close() + if config.wan is not None: + config.wan.close() + except Exception as e: + print(e) + print_bold("For some reason, could not close a connection.") + library.printd(config.board) + + combined_list = [] + def add_to_combined_list(log, name, combined_list=combined_list): + for line in log.split('\r\n'): + try: + if line is '': + continue + if line.startswith('\n'): + line = line[1:] + if line.startswith(' ['): + line = line[1:] + ts, text = line.split(']', 1) + combined_list.append({"time": float(ts[1:-1]), "text": str(text), "name": name}) + except: + print("Failed to parse log line = %s" % repr(line)) + pass + + idx = 1 + console_combined = [] + for console in config.console.consoles: + with open(os.path.join(config.output_dir, 'console-%s.log' % idx), 'w') as clog: + clog.write(console.log) + add_to_combined_list(console.log, "console-%s" % idx) + add_to_combined_list(console.log_calls, "console-%s" % idx) + add_to_combined_list(console.log, "", console_combined) + idx = idx + 1 + + def write_combined_log(combined_list, fname): + with open(os.path.join(config.output_dir, fname), 'w') as clog: + for e in combined_list: + try: + if e['name'] == "": + clog.write('[%s]%s\r\n' % (e['time'], e['text'])) + else: + clog.write('%s: [%s] %s\n' % (e['name'], e['time'], e['text'])) + except: + print("failed to parse line: %s" % repr(e)) + + import operator + console_combined.sort(key=operator.itemgetter('time')) + write_combined_log(console_combined, "console-combined.log") + + for device in config.devices: + with open(os.path.join(config.output_dir, device + ".log"), 'w') as clog: + d = getattr(config, device) + if hasattr(d, 'log'): + clog.write(d.log) + add_to_combined_list(d.log, device) + add_to_combined_list(d.log_calls, device) + + for test in tests_to_run: + if hasattr(test, 'log') and test.log != "": + with open(os.path.join(config.output_dir, '%s.log' % test.__class__.__name__), 'w') as clog: + clog.write(test.log) + if hasattr(test, 'log_calls'): + add_to_combined_list(test.log_calls, test.__class__.__name__) + + combined_list.sort(key=operator.itemgetter('time')) + write_combined_log(combined_list, "all.log") + + os.environ['TEST_END_TIME'] = datetime.now().strftime("%s") + + # grab golden master results + golden = {} + if config.golden is not []: + import requests + for g in golden: + try: + golden.update(requests.get(config.golden).json()) + except: + print_bold("Failed to fetch golden master results, skipping...") + + # Write test result messages to a file + full_results = library.process_test_results(tests_to_run, golden) + json.dump(full_results, + open(os.path.join(config.output_dir + 'test_results.json'), 'w'), + indent=4, + sort_keys=True) + + # run all analysis classes (post processing) + # also, never fail so we don't block automation + try: + fname = "console-combined.log" + with open(os.path.join(config.output_dir, fname), 'r') as f: + clog = f.read() + if not clog: + print("Skipping analysis because %s is empty..." % fname) + else: + import analysis + for cstr in dir(analysis): + c = getattr(analysis, cstr) + if inspect.isclass(c) and issubclass(c, analysis.Analysis): + c().analyze(clog, config.output_dir) + except Exception as e: + if not issubclass(type(e), (StopIteration)): + print("Failed to run anaylsis:") + print(e) + + # Try to remotely log information about this run + info_for_remote_log = dict(config.board) + info_for_remote_log.update(full_results) + info_for_remote_log['bft_version'] = library.version + try: + info_for_remote_log['duration'] = int(os.environ['TEST_END_TIME'])-int(os.environ['TEST_START_TIME']) + except: + pass + if hasattr(config, 'TEST_SUITE'): + info_for_remote_log['test_suite'] = str(config.TEST_SUITE) + # logstash cannot handle multi-level json, remove full test results + info_for_remote_log.pop('test_results', None) + # but we will add back specific test results data + for t in tests_to_run: + def prepare_results_for_kibana(test, prefix=""): + if hasattr(test, 'override_kibana_name'): + n = test.override_kibana_name + elif hasattr(test, 'name'): + n = test.name + else: + n = test.__class__.__name__ + + n = prefix + n + + for k, v in test.logged.items(): + info_for_remote_log[n + '-' + k] = v + if hasattr(test, 'result_grade'): + info_for_remote_log[n + "-result"] = test.result_grade + + return n + + prefix = prepare_results_for_kibana(t) + "-" + for subtest in t.subtests: + prepare_results_for_kibana(subtest, prefix=prefix) + + # Convert python objects to things that can be stored in + # JSON, like strings and numbers. + info_for_remote_log = library.clean_for_json(info_for_remote_log) + # Remove reserved key names + info_for_remote_log.pop('_id', None) + + try: + if config.logging_server is not None: + logstash.RemoteLogger(config.logging_server).log(info_for_remote_log) + except Exception as e: + print(e) + print("Unable to access logging_server specified in config. " + "Results stored only locally.") + + try: + if config.elasticsearch_server is not None: + elasticlogger.ElasticsearchLogger(config.elasticsearch_server).log(info_for_remote_log) + else: + print("No elasticsearch_server specified in config. Results stored locally") + except Exception as e: + print(e) + print("Unable to store results to elasticsearch_server specified in config. " + "Results stored locally.") + + try: + if hasattr(config, 'mongodb') and config.mongodb['host'] is not None: + mongodblogger.MongodbLogger(**config.mongodb).log(info_for_remote_log) + else: + print("Needed mongodb parameters are not set, see config. Results stored locally.") + except Exception as e: + print(e) + print("Unable to store results to mongodb specified in config. " + "Results stored locally.") + + if set(('BFT_AWS_ACCESS_KEY', 'BFT_AWS_SECRET_ACCESS_KEY', 'BFT_AWS_BUCKET')).issubset(os.environ): + try: + import boto3 + + filename = datetime.utcnow().strftime("%Y-%m-%dT%H-%M-%S.000Z") + '.json' + s3 = boto3.resource('s3', + aws_access_key_id=os.environ['BFT_AWS_ACCESS_KEY'], + aws_secret_access_key=os.environ['BFT_AWS_SECRET_ACCESS_KEY']) + s3object = s3.Object(os.environ['BFT_AWS_BUCKET'], filename) + s3object.put(Body=(bytes(json.dumps(info_for_remote_log, default=str).encode('UTF-8')))) + except Exception as e: + print("Failed to load data in AWS bucket") + print(e) + + #Update the results in Zephyr + try: + result_data = json.load(open('./results/test_results.json')) + test_cases_list = [[r["name"], r["grade"]] for r in result_data["test_results"]] + zephyr_reporter.update_zephyr(test_cases_list) + except Exception as e: + print(e) + print("Unable to Update results in Zephyr") + + # Create Pretty HTML output + import make_human_readable + try: + title_str = make_human_readable.get_title() + make_human_readable.xmlresults_to_html(full_results['test_results'], title=title_str, + output_name=os.path.join(config.output_dir, "results.html"), + board_info=config.board) + except Exception as e: + print(e) + print("Unable to create HTML results") + + # Send url of pretty html results to MySQL build database + try: + library.send_results_to_myqsl(config.TEST_SUITE, config.output_dir) + except Exception as e: + print(e) + print("Unable to log results to mysql database.") + + for t in tests_to_run: + if t.log_to_file is not None and hasattr(t, 'stop_time'): + filename = type(t).__name__ + '-' + time.strftime("%Y%m%d-%H%M%S") + ".txt" + testtime = t.stop_time - t.start_time + with open(os.path.join(config.output_dir, filename), 'w') as log: + log.write('\t=======================================================') + log.write('\n\tTest case ID: %s' % (type(t).__name__)) + log.write('\n\tTest case Description: %s' % (type(t).__doc__)) + log.write('\n\t=======================================================\n') + log.write(t.log_to_file) + log.write('\n\t=======================================================') + log.write('\n\t%s test result: %s' % (type(t).__name__, t.result_grade)) + log.write('\n\tTotal test time: %s seconds' % testtime) + log.write('\n\t=======================================================') +if __name__ == '__main__': + main() diff --git a/bft-node/Dockerfile b/boardfarm/bft-node/Dockerfile similarity index 100% rename from bft-node/Dockerfile rename to boardfarm/bft-node/Dockerfile diff --git a/boardfarm_config_example.json b/boardfarm/boardfarm_config_example.json similarity index 100% rename from boardfarm_config_example.json rename to boardfarm/boardfarm_config_example.json diff --git a/config.py b/boardfarm/config.py similarity index 100% rename from config.py rename to boardfarm/config.py diff --git a/configs/cdrouter-rdkb.conf b/boardfarm/configs/cdrouter-rdkb.conf similarity index 100% rename from configs/cdrouter-rdkb.conf rename to boardfarm/configs/cdrouter-rdkb.conf diff --git a/dbclients/__init__.py b/boardfarm/dbclients/__init__.py similarity index 100% rename from dbclients/__init__.py rename to boardfarm/dbclients/__init__.py diff --git a/dbclients/boardfarmwebclient.py b/boardfarm/dbclients/boardfarmwebclient.py similarity index 100% rename from dbclients/boardfarmwebclient.py rename to boardfarm/dbclients/boardfarmwebclient.py diff --git a/dbclients/elasticlogger.py b/boardfarm/dbclients/elasticlogger.py similarity index 100% rename from dbclients/elasticlogger.py rename to boardfarm/dbclients/elasticlogger.py diff --git a/dbclients/logstash.py b/boardfarm/dbclients/logstash.py similarity index 100% rename from dbclients/logstash.py rename to boardfarm/dbclients/logstash.py diff --git a/dbclients/mongodblogger.py b/boardfarm/dbclients/mongodblogger.py similarity index 100% rename from dbclients/mongodblogger.py rename to boardfarm/dbclients/mongodblogger.py diff --git a/boardfarm/deploy-boardfarm-nodes.sh b/boardfarm/deploy-boardfarm-nodes.sh new file mode 100755 index 00000000..440d6ba8 --- /dev/null +++ b/boardfarm/deploy-boardfarm-nodes.sh @@ -0,0 +1,412 @@ +#!/bin/bash -xe + +IFACE=${1:-undefined} +START_VLAN=${2:-101} +END_VLAN=${3:-144} +OPTS=${4:-"both"} # both, odd, even, odd-dhcp, even-dhcp +BRINT=br-bft +BF_IMG=${BF_IMG:-"bft:node"} +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +STARTSSHPORT=5000 +STARTWEBPORT=8000 + +if ! docker inspect --type=image $BF_IMG > /dev/null 2>&1 ; then + (cd $DIR; docker build -t $BF_IMG ${BF_IMG/:/-}) +fi + +random_private_mac () { + python - <<END +import random + +def randomMAC(): + mac = [ (random.randint(0x00,0xff) & 0xfe), # the lsb is 0, i.e. no multicat bit + random.randint(0x00, 0xff), + random.randint(0x00, 0xff), + random.randint(0x00, 0xff), + random.randint(0x00, 0xff), + random.randint(0x00, 0xff) ] + mac_to_be_decided = ':'.join(map(lambda x : hex(x)[2:].lstrip("0x").zfill(2),mac)) + + return (mac_to_be_decided) + +if __name__ == '__main__': + print randomMAC() +END +} + +local_route () { + # TODO: This is a problem if the router network matches the host network + host_dev=$(ip route list | grep ^default | awk '{print $5}' ) + local_route=$(ip route | grep "dev $host_dev" | grep src | awk '{print $1}' | head -n1) + docker0=$(ip -4 addr show docker0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}') + docker exec $cname ip route add $local_route dev eth0 via $docker0 +} + +# helper function for lan containers to push the mgmt iface in a separate routing table +# and creates a bash alias named "mgmt" that should be used to bind commands to the +# mgmt iface (this is to allow internet connectivity to specific commands without imparing +# the default route of the iface_dut) +# This function should be called when the container has an eth0 and an eth1 ifaces and eth0 +# needs to be isolated +isolate_management() { + local cname=${1} + + docker_dev=$(docker exec $cname ip route list | grep ^default | awk '{print $5}' ) + docker_gw_ip=$(ip -4 addr show docker0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}') + docker_dev_ip=$(docker exec $cname ip -4 addr show $docker_dev | grep -oP '(?<=inet\s)\d+(\.\d+){3}') + docker_nw=$(ip route | grep "dev docker0" | grep src | awk '{print $1}' | head -n1) + + docker exec $cname bash -c "echo \"1 mgmt\" >> /etc/iproute2/rt_tables" + docker exec $cname ip route add default via $docker_gw_ip table mgmt + docker exec $cname ip rule add from $docker_dev_ip table mgmt + docker exec $cname ip rule add to $docker_dev_ip table mgmt + docker exec $cname ip rule add from $docker_nw table mgmt + docker exec $cname ip rule add to $docker_nw table mgmt + + docker cp $cname:root/.bashrc bashrc_$cname + echo "alias mgmt='BIND_ADDR=$docker_dev_ip LD_PRELOAD=/usr/lib/bind.so '" >> bashrc_$cname + docker cp bashrc_$cname $cname:root/.bashrc; rm bashrc_$cname +} +# creates container running with ssh on eth0, adds DUT facing interface only +create_container_stub () { + local cname=${1} + local sshport=${2} + local proxyport=${3} + local ifacedut=${4} + + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -p $sshport:22 \ + -p $proxyport:8080 \ + -d $BF_IMG /usr/sbin/sshd -D + + cspace=$(docker inspect --format '{{.State.Pid}}' $cname) + # this should avoid the cli wrapping onto itself + docker exec $cname bash -c 'echo "stty columns 200" >> /root/.bashrc' + sudo ip link set netns $cspace dev $ifacedut + docker exec $cname ip link set $ifacedut name eth1 + docker exec $cname ip link set dev eth1 address $(random_private_mac $vlan) + + isolate_management ${cname} +} + +# eth0 is docker private network, eth1 is vlan on specific interface +create_container_eth1_vlan () { + local vlan=$1 + local offset=${2:-0} + + cname=bft-node-$IFACE-$vlan-$offset + + sudo ip link del $IFACE.$vlan || true + sudo ip link add link $IFACE name $IFACE.$vlan type vlan id $vlan + + create_container_stub $cname \ + $(( $STARTSSHPORT + $offset + $vlan )) \ + $(( $STARTWEBPORT + $offset + $vlan )) \ + $IFACE.$vlan +} + +# eth0 is docker private network, eth1 is vlan on specific interface within a bridge +create_container_eth1_bridged_vlan () { + local vlan=$1 + local offset=${2:-0} + + # verify settings are correct + # TODO: verify the set + sudo sysctl -w net.bridge.bridge-nf-call-arptables=0 + sudo sysctl -w net.bridge.bridge-nf-call-ip6tables=0 + sudo sysctl -w net.bridge.bridge-nf-call-iptables=0 + + cname=bft-node-$IFACE-$vlan-$offset + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -p $(( $STARTSSHPORT + $offset + $vlan )):22 \ + -p $(( $STARTWEBPORT + $offset + $vlan )):8080 \ + -d $BF_IMG /usr/sbin/sshd -D + + cspace=$(docker inspect --format '{{.State.Pid}}' $cname) + isolate_management ${cname} + + # create bridge + sudo ip link add br-$IFACE.$vlan type bridge || true + sudo ip link set br-$IFACE.$vlan up + + # create uplink vlan on IFACE + sudo ip link delete $IFACE.$vlan || true + sudo ip link add link $IFACE name $IFACE.$vlan type vlan id $vlan + sudo ip link set dev $IFACE.$vlan address $(random_private_mac $vlan) + sudo ip link set $IFACE.$vlan master br-$IFACE.$vlan + sudo ip link set $IFACE up + sudo ip link set $IFACE.$vlan up + + # add veth for new container (one per container vs. the two above are shared) + sudo ip link add v$IFACE-$vlan-$offset type veth peer name eth1 netns $cspace + sudo ip link set v$IFACE-$vlan-$offset master br-$IFACE.$vlan + sudo ip link set v$IFACE-$vlan-$offset up + + docker exec $cname ip link set eth1 up +} + +# eth0 is docker private network, eth1 is vlan on specific interface within a bridge +create_container_eth1_macvtap_vlan () { + local vlan=$1 + local offset=${2:-0} + + # verify settings are correct + # TODO: verify the set + sudo sysctl -w net.bridge.bridge-nf-call-arptables=0 + sudo sysctl -w net.bridge.bridge-nf-call-ip6tables=0 + sudo sysctl -w net.bridge.bridge-nf-call-iptables=0 + + cname=bft-node-$IFACE-$vlan-$offset + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -p $(( $STARTSSHPORT + $offset + $vlan )):22 \ + -p $(( $STARTWEBPORT + $offset + $vlan )):8080 \ + -d $BF_IMG /usr/sbin/sshd -D + + cspace=$(docker inspect --format '{{.State.Pid}}' $cname) + isolate_management ${cname} + + # create uplink vlan on IFACE + sudo ip link add link $IFACE name $IFACE.$vlan type vlan id $vlan + sudo ip link set dev $IFACE.$vlan address $(random_private_mac $vlan) + sudo ip link set $IFACE.$vlan up + + # add veth for new container (one per container vs. the two above are shared) + sudo ip link add link $IFACE.$vlan name eth1 type macvtap + sudo ip link set netns $cspace dev eth1 + + docker exec $cname ip link set eth1 up +} + +# eth0/eth1 are both dhcp on the main network +create_container_eth1_dhcp () { + local vlan=$1 + + cname=bft-node-$IFACE-$vlan + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -d --network=none $BF_IMG /usr/sbin/sshd -D + + cspace=$(docker inspect --format '{{.State.Pid}}' $cname) + + # create lab network access port + sudo ip link add tempfoo link $IFACE type macvlan mode bridge + sudo ip link set dev tempfoo up + sudo ip link set netns $cspace dev tempfoo + docker exec $cname ip link set tempfoo name eth1 + docker exec $cname ifconfig eth1 up + docker exec $cname dhclient eth1 +} + +# eth1 is on main network and static +create_container_eth1_static () { + local name=$1 + local ip=$2 + local default_route=$3 + local driver=${4:-macvlan} + local ipv6_addr=${5:-"0"} + local ipv6_default=${6:-"0"} + + cname=bft-node-$IFACE-$name + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -d --network=none $BF_IMG /usr/sbin/sshd -D + + cspace=$(docker inspect --format {{.State.Pid}} $cname) + + # create lab network access port + if [ "$driver" = "ipvlan" ] + then + sudo ip link add tempfoo link $IFACE type $driver mode l2 + else + sudo ip link add tempfoo link $IFACE type $driver mode bridge + fi + sudo ip link set dev tempfoo up + sudo ip link set netns $cspace dev tempfoo + docker exec $cname ip link set tempfoo name eth1 + docker exec $cname ip link set eth1 up + docker exec $cname ip addr add $ip dev eth1 + docker exec $cname ip route add default via $default_route dev eth1 + docker exec $cname ping $default_route -c3 + + ! [ "$ipv6_addr" != "0" -a "$ipv6_default" != "0" ] && echo "Error: missing ipv6 params" && return + + docker exec $cname sysctl net.ipv6.conf.eth1.disable_ipv6=0 + docker exec $cname ip -6 addr add $ipv6_addr dev eth1 + docker exec $cname ip -6 route add default via $ipv6_default dev eth1 + sleep 3 + docker exec $cname bash -c "ping -c3 $ipv6_default" +} + +# eth1 is on main network and static +create_container_eth1_static_ipvlan () { + local name=$1 + local ip=$2 + local default_route=$3 + + cname=bft-node-$IFACE-$name + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -d --network=none $BF_IMG /usr/sbin/sshd -D + + cspace=$(docker inspect --format {{.State.Pid}} $cname) + + # create lab network access port + sudo ip link add tempfoo link $IFACE type ipvlan mode l2 + sudo ip link set dev tempfoo up + sudo ip link set netns $cspace dev tempfoo + docker exec $cname ip link set tempfoo name eth1 + docker exec $cname ip link set eth1 up + docker exec $cname ip addr add $ip dev eth1 + docker exec $cname ip route add default via $default_route dev eth1 + docker exec $cname ping $default_route -c3 +} + +# eth0 is docker private network, eth1 is static ip +create_container_eth1_static_linked () { + local name=$1 + local ip=$2 + local default_route=$3 + local offset=${4:-0} + local driver=${5:-macvlan} + local ipv6_addr=${6:-"0"} + local ipv6_default=${7:-"0"} + + cname=bft-node-$IFACE-$name + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -p $(( $STARTSSHPORT + $offset )):22 \ + -p $(( $STARTWEBPORT + $offset )):8080 \ + -d $BF_IMG /usr/sbin/sshd -D + + cspace=$(docker inspect --format {{.State.Pid}} $cname) + isolate_management ${cname} + + # create lab network access port + if [ "$driver" = "ipvlan" ] + then + sudo ip link add tempfoo link $IFACE type $driver mode l2 + else + # driver can be macvtap or macvlan. default=macvlan + sudo ip link add tempfoo link $IFACE type $driver mode bridge + fi + sudo ip link set dev tempfoo up + sudo ip link set netns $cspace dev tempfoo + docker exec $cname ip link set tempfoo name eth1 + docker exec $cname ip link set eth1 up + docker exec $cname ip addr add $ip dev eth1 + docker exec $cname ip route del default dev eth0 + docker exec $cname ip route add default via $default_route dev eth1 + docker exec $cname ping $default_route -c3 + + ! [ "$ipv6_addr" != "0" -a "$ipv6_default" != "0" ] && echo "Error: missing ipv6 params" && return + + docker exec $cname sysctl net.ipv6.conf.eth1.disable_ipv6=0 + docker exec $cname ip -6 addr add $ipv6_addr dev eth1 + docker exec $cname ip -6 route add default via $ipv6_default dev eth1 + sleep 3 + docker exec $cname bash -c "ping -c3 $ipv6_default" +} + +# eth0 is docker private network, eth1 physical device +create_container_eth1_phys () { + local dev=$1 + local offset=$2 + + cname=bft-node-$dev + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -p $(( $STARTSSHPORT + $offset )):22 \ + -p $(( $STARTWEBPORT + $offset )):8080 \ + -d $BF_IMG /usr/sbin/sshd -D + + cspace=$(docker inspect --format {{.State.Pid}} $cname) + + # create lab network access port + sudo ip link set netns $cspace dev $dev + docker exec $cname ip link set $dev name wlan1 + docker exec $cname ip link set wlan1 up +} + +# eth0 is docker private network, eth1 with device +create_container_eth1_wifi () { + local dev=$1 + local offset=${2:-40000} + local proxy_dir=${3:-"0"} + local proxy_ip=${4:-"0"} + + cname=bft-node-$dev + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -p $(( $STARTSSHPORT + $offset )):22 \ + -p $(( $STARTWEBPORT + $offset )):8080 \ + -d $BF_IMG /usr/sbin/sshd -D + + isolate_management ${cname} + + #add proxy details if specified + local docker_gw_ip=$(ip -4 addr show docker0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}') + if [ "$proxy_dir" != "0" ] && [ "$proxy_ip" != "0" ] + then + docker cp $proxy_dir/proxy.conf $cname:/etc/apt/apt.conf.d/ + docker exec $cname ip route add $proxy_ip via $docker_gw_ip table mgmt + fi + cspace=$(docker inspect --format {{.State.Pid}} $cname) + isolate_management ${cname} + + # create lab network access port + # rfkill and ip need to be added as rootLessCommands on the host + # if Wi-Fi was associated to an SSID on the host, on pushing the interface + # to container rfkill releases the wifi resource from host. + sudo rfkill unblock wifi + sudo iw phy $(cat /sys/class/net/"$dev"/phy80211/name) set netns $cspace + docker exec $cname ip link set $dev name wlan1 + docker exec $cname ip link set wlan1 up +} + +#voice container +create_container_voice () { + #will be from /dev ACM dev name + local dev=$1 + #keep offset as 40000 + local offset=${2:-1} + local proxy_dir=${3:-"0"} + local proxy_ip=${4:-"0"} + + cname=bft-node-$dev + docker stop $cname && docker rm $cname + docker run --name $cname --privileged -h $cname --restart=always \ + -p $(( 4000 + $offset )):22 \ + -d $BF_IMG /usr/sbin/sshd -D + + #add proxy details if specified + local docker_gw_ip=$(ip -4 addr show docker0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}') + if [ "$proxy_dir" != "0" ] && [ "$proxy_ip" != "0" ] + then + docker cp $proxy_dir/proxy.conf $cname:/etc/apt/apt.conf.d/ + docker exec $cname ip route add $proxy_ip via $docker_gw_ip + fi + docker exec $cname ln -s /dev/tty$dev /root/line-$dev +} + +[ "$IFACE" = "undefined" ] && return + +echo "Creating nodes starting on vlan $START_VLAN to $END_VLAN on iface $IFACE" + +for vlan in $(seq $START_VLAN $END_VLAN); do + echo "Creating node on vlan $vlan" + + create_container_eth1_vlan $vlan + + [ "$OPTS" = "both" ] && { local_route; continue; } + if [ $((vlan%2)) -eq 0 ]; then + [ "$OPTS" = "even" ] && local_route + elif [ "$OPTS" = "odd" ]; then + local_route + fi +done + +echo "Running the command below will stop all containers and clean up everything:" +echo 'docker stop $(docker ps -q) && docker rm $(docker ps -a -q)' diff --git a/devices/__init__.py b/boardfarm/devices/__init__.py similarity index 100% rename from devices/__init__.py rename to boardfarm/devices/__init__.py diff --git a/devices/axiros_acs.py b/boardfarm/devices/axiros_acs.py similarity index 100% rename from devices/axiros_acs.py rename to boardfarm/devices/axiros_acs.py diff --git a/devices/base.py b/boardfarm/devices/base.py similarity index 100% rename from devices/base.py rename to boardfarm/devices/base.py diff --git a/devices/common.py b/boardfarm/devices/common.py similarity index 100% rename from devices/common.py rename to boardfarm/devices/common.py diff --git a/devices/configreader.py b/boardfarm/devices/configreader.py similarity index 100% rename from devices/configreader.py rename to boardfarm/devices/configreader.py diff --git a/devices/connection_decider.py b/boardfarm/devices/connection_decider.py similarity index 100% rename from devices/connection_decider.py rename to boardfarm/devices/connection_decider.py diff --git a/devices/cougarpark.py b/boardfarm/devices/cougarpark.py similarity index 100% rename from devices/cougarpark.py rename to boardfarm/devices/cougarpark.py diff --git a/devices/debian.py b/boardfarm/devices/debian.py similarity index 100% rename from devices/debian.py rename to boardfarm/devices/debian.py diff --git a/devices/debian_isc.py b/boardfarm/devices/debian_isc.py similarity index 100% rename from devices/debian_isc.py rename to boardfarm/devices/debian_isc.py diff --git a/devices/debian_wifi.py b/boardfarm/devices/debian_wifi.py similarity index 100% rename from devices/debian_wifi.py rename to boardfarm/devices/debian_wifi.py diff --git a/devices/dell_switch.py b/boardfarm/devices/dell_switch.py similarity index 100% rename from devices/dell_switch.py rename to boardfarm/devices/dell_switch.py diff --git a/devices/error_detect.py b/boardfarm/devices/error_detect.py similarity index 100% rename from devices/error_detect.py rename to boardfarm/devices/error_detect.py diff --git a/devices/kermit_connection.py b/boardfarm/devices/kermit_connection.py similarity index 100% rename from devices/kermit_connection.py rename to boardfarm/devices/kermit_connection.py diff --git a/devices/linux.py b/boardfarm/devices/linux.py similarity index 100% rename from devices/linux.py rename to boardfarm/devices/linux.py diff --git a/devices/local_cmd.py b/boardfarm/devices/local_cmd.py similarity index 100% rename from devices/local_cmd.py rename to boardfarm/devices/local_cmd.py diff --git a/devices/local_serial_connection.py b/boardfarm/devices/local_serial_connection.py similarity index 100% rename from devices/local_serial_connection.py rename to boardfarm/devices/local_serial_connection.py diff --git a/devices/marvell.py b/boardfarm/devices/marvell.py similarity index 100% rename from devices/marvell.py rename to boardfarm/devices/marvell.py diff --git a/devices/mysql.py b/boardfarm/devices/mysql.py similarity index 100% rename from devices/mysql.py rename to boardfarm/devices/mysql.py diff --git a/devices/netgear.py b/boardfarm/devices/netgear.py similarity index 100% rename from devices/netgear.py rename to boardfarm/devices/netgear.py diff --git a/devices/oe.py b/boardfarm/devices/oe.py similarity index 100% rename from devices/oe.py rename to boardfarm/devices/oe.py diff --git a/devices/openwrt_router.py b/boardfarm/devices/openwrt_router.py similarity index 100% rename from devices/openwrt_router.py rename to boardfarm/devices/openwrt_router.py diff --git a/devices/power.py b/boardfarm/devices/power.py similarity index 100% rename from devices/power.py rename to boardfarm/devices/power.py diff --git a/devices/qcom_akronite_nand.py b/boardfarm/devices/qcom_akronite_nand.py similarity index 100% rename from devices/qcom_akronite_nand.py rename to boardfarm/devices/qcom_akronite_nand.py diff --git a/devices/qcom_akronite_nor.py b/boardfarm/devices/qcom_akronite_nor.py similarity index 100% rename from devices/qcom_akronite_nor.py rename to boardfarm/devices/qcom_akronite_nor.py diff --git a/devices/qcom_arm_base.py b/boardfarm/devices/qcom_arm_base.py similarity index 100% rename from devices/qcom_arm_base.py rename to boardfarm/devices/qcom_arm_base.py diff --git a/devices/qcom_dakota_nand.py b/boardfarm/devices/qcom_dakota_nand.py similarity index 100% rename from devices/qcom_dakota_nand.py rename to boardfarm/devices/qcom_dakota_nand.py diff --git a/devices/qcom_dakota_nor.py b/boardfarm/devices/qcom_dakota_nor.py similarity index 100% rename from devices/qcom_dakota_nor.py rename to boardfarm/devices/qcom_dakota_nor.py diff --git a/devices/qcom_mips.py b/boardfarm/devices/qcom_mips.py similarity index 100% rename from devices/qcom_mips.py rename to boardfarm/devices/qcom_mips.py diff --git a/devices/qemu.py b/boardfarm/devices/qemu.py similarity index 100% rename from devices/qemu.py rename to boardfarm/devices/qemu.py diff --git a/devices/qemu_openwrt.py b/boardfarm/devices/qemu_openwrt.py similarity index 100% rename from devices/qemu_openwrt.py rename to boardfarm/devices/qemu_openwrt.py diff --git a/devices/rpi.py b/boardfarm/devices/rpi.py similarity index 100% rename from devices/rpi.py rename to boardfarm/devices/rpi.py diff --git a/devices/ser2net_connection.py b/boardfarm/devices/ser2net_connection.py similarity index 100% rename from devices/ser2net_connection.py rename to boardfarm/devices/ser2net_connection.py diff --git a/devices/ssh_connection.py b/boardfarm/devices/ssh_connection.py similarity index 100% rename from devices/ssh_connection.py rename to boardfarm/devices/ssh_connection.py diff --git a/devices/windows_telnet.py b/boardfarm/devices/windows_telnet.py similarity index 100% rename from devices/windows_telnet.py rename to boardfarm/devices/windows_telnet.py diff --git a/devices/windows_wsl.py b/boardfarm/devices/windows_wsl.py similarity index 100% rename from devices/windows_wsl.py rename to boardfarm/devices/windows_wsl.py diff --git a/docs/BOARD_FARM.md b/boardfarm/docs/BOARD_FARM.md similarity index 100% rename from docs/BOARD_FARM.md rename to boardfarm/docs/BOARD_FARM.md diff --git a/docs/BoardFarm.png b/boardfarm/docs/BoardFarm.png similarity index 100% rename from docs/BoardFarm.png rename to boardfarm/docs/BoardFarm.png diff --git a/docs/ELK_SETUP.md b/boardfarm/docs/ELK_SETUP.md similarity index 100% rename from docs/ELK_SETUP.md rename to boardfarm/docs/ELK_SETUP.md diff --git a/docs/Simple_Board_Farm.jpg b/boardfarm/docs/Simple_Board_Farm.jpg similarity index 100% rename from docs/Simple_Board_Farm.jpg rename to boardfarm/docs/Simple_Board_Farm.jpg diff --git a/html/template_results.html b/boardfarm/html/template_results.html similarity index 100% rename from html/template_results.html rename to boardfarm/html/template_results.html diff --git a/html/template_results_basic.html b/boardfarm/html/template_results_basic.html similarity index 100% rename from html/template_results_basic.html rename to boardfarm/html/template_results_basic.html diff --git a/library.py b/boardfarm/library.py similarity index 100% rename from library.py rename to boardfarm/library.py diff --git a/make_human_readable.py b/boardfarm/make_human_readable.py similarity index 100% rename from make_human_readable.py rename to boardfarm/make_human_readable.py diff --git a/resources/mibs/SNMPv2-CONF.txt b/boardfarm/resources/mibs/SNMPv2-CONF.txt similarity index 100% rename from resources/mibs/SNMPv2-CONF.txt rename to boardfarm/resources/mibs/SNMPv2-CONF.txt diff --git a/resources/mibs/SNMPv2-MIB.txt b/boardfarm/resources/mibs/SNMPv2-MIB.txt similarity index 100% rename from resources/mibs/SNMPv2-MIB.txt rename to boardfarm/resources/mibs/SNMPv2-MIB.txt diff --git a/resources/mibs/SNMPv2-SMI.txt b/boardfarm/resources/mibs/SNMPv2-SMI.txt similarity index 100% rename from resources/mibs/SNMPv2-SMI.txt rename to boardfarm/resources/mibs/SNMPv2-SMI.txt diff --git a/resources/mibs/SNMPv2-TC.txt b/boardfarm/resources/mibs/SNMPv2-TC.txt similarity index 100% rename from resources/mibs/SNMPv2-TC.txt rename to boardfarm/resources/mibs/SNMPv2-TC.txt diff --git a/resources/mibs/rfc1213-mib2.asn1.txt b/boardfarm/resources/mibs/rfc1213-mib2.asn1.txt similarity index 100% rename from resources/mibs/rfc1213-mib2.asn1.txt rename to boardfarm/resources/mibs/rfc1213-mib2.asn1.txt diff --git a/results/README b/boardfarm/results/README similarity index 100% rename from results/README rename to boardfarm/results/README diff --git a/tests/__init__.py b/boardfarm/tests/__init__.py similarity index 100% rename from tests/__init__.py rename to boardfarm/tests/__init__.py diff --git a/tests/bittorrent.py b/boardfarm/tests/bittorrent.py similarity index 100% rename from tests/bittorrent.py rename to boardfarm/tests/bittorrent.py diff --git a/tests/bridge_mode.py b/boardfarm/tests/bridge_mode.py similarity index 100% rename from tests/bridge_mode.py rename to boardfarm/tests/bridge_mode.py diff --git a/tests/cdrouter_bootstrap.py b/boardfarm/tests/cdrouter_bootstrap.py similarity index 100% rename from tests/cdrouter_bootstrap.py rename to boardfarm/tests/cdrouter_bootstrap.py diff --git a/tests/concurrent_iperf.py b/boardfarm/tests/concurrent_iperf.py similarity index 100% rename from tests/concurrent_iperf.py rename to boardfarm/tests/concurrent_iperf.py diff --git a/tests/connection_stress.py b/boardfarm/tests/connection_stress.py similarity index 100% rename from tests/connection_stress.py rename to boardfarm/tests/connection_stress.py diff --git a/tests/console_delay.py b/boardfarm/tests/console_delay.py similarity index 100% rename from tests/console_delay.py rename to boardfarm/tests/console_delay.py diff --git a/tests/curl_https.py b/boardfarm/tests/curl_https.py similarity index 100% rename from tests/curl_https.py rename to boardfarm/tests/curl_https.py diff --git a/tests/firewall_on_off.py b/boardfarm/tests/firewall_on_off.py similarity index 100% rename from tests/firewall_on_off.py rename to boardfarm/tests/firewall_on_off.py diff --git a/tests/hping3.py b/boardfarm/tests/hping3.py similarity index 100% rename from tests/hping3.py rename to boardfarm/tests/hping3.py diff --git a/tests/igmpv3_basic.py b/boardfarm/tests/igmpv3_basic.py similarity index 100% rename from tests/igmpv3_basic.py rename to boardfarm/tests/igmpv3_basic.py diff --git a/tests/interact.py b/boardfarm/tests/interact.py similarity index 100% rename from tests/interact.py rename to boardfarm/tests/interact.py diff --git a/tests/ip_link.py b/boardfarm/tests/ip_link.py similarity index 100% rename from tests/ip_link.py rename to boardfarm/tests/ip_link.py diff --git a/tests/iperf3_test.py b/boardfarm/tests/iperf3_test.py similarity index 100% rename from tests/iperf3_test.py rename to boardfarm/tests/iperf3_test.py diff --git a/tests/iperf_test.py b/boardfarm/tests/iperf_test.py similarity index 100% rename from tests/iperf_test.py rename to boardfarm/tests/iperf_test.py diff --git a/tests/iperf_udp_test.py b/boardfarm/tests/iperf_udp_test.py similarity index 100% rename from tests/iperf_udp_test.py rename to boardfarm/tests/iperf_udp_test.py diff --git a/tests/iptables.py b/boardfarm/tests/iptables.py similarity index 100% rename from tests/iptables.py rename to boardfarm/tests/iptables.py diff --git a/tests/ipv6_curl.py b/boardfarm/tests/ipv6_curl.py similarity index 100% rename from tests/ipv6_curl.py rename to boardfarm/tests/ipv6_curl.py diff --git a/tests/ipv6_setup.py b/boardfarm/tests/ipv6_setup.py similarity index 100% rename from tests/ipv6_setup.py rename to boardfarm/tests/ipv6_setup.py diff --git a/tests/jmeter.py b/boardfarm/tests/jmeter.py similarity index 100% rename from tests/jmeter.py rename to boardfarm/tests/jmeter.py diff --git a/tests/jmeter/httpreq_10x_10u_5t.jmx b/boardfarm/tests/jmeter/httpreq_10x_10u_5t.jmx similarity index 100% rename from tests/jmeter/httpreq_10x_10u_5t.jmx rename to boardfarm/tests/jmeter/httpreq_10x_10u_5t.jmx diff --git a/tests/jmeter/httpreq_1x_9u_5t.jmx b/boardfarm/tests/jmeter/httpreq_1x_9u_5t.jmx similarity index 100% rename from tests/jmeter/httpreq_1x_9u_5t.jmx rename to boardfarm/tests/jmeter/httpreq_1x_9u_5t.jmx diff --git a/tests/jmeter/httpreq_20x_9u_1t.jmx b/boardfarm/tests/jmeter/httpreq_20x_9u_1t.jmx similarity index 100% rename from tests/jmeter/httpreq_20x_9u_1t.jmx rename to boardfarm/tests/jmeter/httpreq_20x_9u_1t.jmx diff --git a/tests/jmeter/httpreq_20x_9u_1t_1000msdelay.jmx b/boardfarm/tests/jmeter/httpreq_20x_9u_1t_1000msdelay.jmx similarity index 100% rename from tests/jmeter/httpreq_20x_9u_1t_1000msdelay.jmx rename to boardfarm/tests/jmeter/httpreq_20x_9u_1t_1000msdelay.jmx diff --git a/tests/jmeter/httpreq_20x_9u_1t_1500msdelay.jmx b/boardfarm/tests/jmeter/httpreq_20x_9u_1t_1500msdelay.jmx similarity index 100% rename from tests/jmeter/httpreq_20x_9u_1t_1500msdelay.jmx rename to boardfarm/tests/jmeter/httpreq_20x_9u_1t_1500msdelay.jmx diff --git a/tests/jmeter/httpreq_20x_9u_1t_300msdelay.jmx b/boardfarm/tests/jmeter/httpreq_20x_9u_1t_300msdelay.jmx similarity index 100% rename from tests/jmeter/httpreq_20x_9u_1t_300msdelay.jmx rename to boardfarm/tests/jmeter/httpreq_20x_9u_1t_300msdelay.jmx diff --git a/tests/jmeter/httpreq_20x_9u_1t_500msdelay.jmx b/boardfarm/tests/jmeter/httpreq_20x_9u_1t_500msdelay.jmx similarity index 100% rename from tests/jmeter/httpreq_20x_9u_1t_500msdelay.jmx rename to boardfarm/tests/jmeter/httpreq_20x_9u_1t_500msdelay.jmx diff --git a/tests/latency_all.py b/boardfarm/tests/latency_all.py similarity index 100% rename from tests/latency_all.py rename to boardfarm/tests/latency_all.py diff --git a/tests/lib/SnmpHelper.py b/boardfarm/tests/lib/SnmpHelper.py similarity index 100% rename from tests/lib/SnmpHelper.py rename to boardfarm/tests/lib/SnmpHelper.py diff --git a/tests/lib/__init__.py b/boardfarm/tests/lib/__init__.py similarity index 100% rename from tests/lib/__init__.py rename to boardfarm/tests/lib/__init__.py diff --git a/tests/lib/bft_logging.py b/boardfarm/tests/lib/bft_logging.py similarity index 100% rename from tests/lib/bft_logging.py rename to boardfarm/tests/lib/bft_logging.py diff --git a/tests/lib/common.py b/boardfarm/tests/lib/common.py similarity index 100% rename from tests/lib/common.py rename to boardfarm/tests/lib/common.py diff --git a/tests/lib/gui_helper.py b/boardfarm/tests/lib/gui_helper.py similarity index 100% rename from tests/lib/gui_helper.py rename to boardfarm/tests/lib/gui_helper.py diff --git a/tests/lib/installers.py b/boardfarm/tests/lib/installers.py similarity index 100% rename from tests/lib/installers.py rename to boardfarm/tests/lib/installers.py diff --git a/tests/lib/network_helper.py b/boardfarm/tests/lib/network_helper.py similarity index 100% rename from tests/lib/network_helper.py rename to boardfarm/tests/lib/network_helper.py diff --git a/tests/lib/network_testing.py b/boardfarm/tests/lib/network_testing.py similarity index 100% rename from tests/lib/network_testing.py rename to boardfarm/tests/lib/network_testing.py diff --git a/tests/lib/randomMAC.py b/boardfarm/tests/lib/randomMAC.py similarity index 100% rename from tests/lib/randomMAC.py rename to boardfarm/tests/lib/randomMAC.py diff --git a/tests/lib/regexlib.py b/boardfarm/tests/lib/regexlib.py similarity index 100% rename from tests/lib/regexlib.py rename to boardfarm/tests/lib/regexlib.py diff --git a/tests/lib/scripts/openvpn-install.sh b/boardfarm/tests/lib/scripts/openvpn-install.sh similarity index 100% rename from tests/lib/scripts/openvpn-install.sh rename to boardfarm/tests/lib/scripts/openvpn-install.sh diff --git a/tests/lib/wifi.py b/boardfarm/tests/lib/wifi.py similarity index 100% rename from tests/lib/wifi.py rename to boardfarm/tests/lib/wifi.py diff --git a/tests/linux_boot.py b/boardfarm/tests/linux_boot.py similarity index 100% rename from tests/linux_boot.py rename to boardfarm/tests/linux_boot.py diff --git a/tests/lsmod.py b/boardfarm/tests/lsmod.py similarity index 100% rename from tests/lsmod.py rename to boardfarm/tests/lsmod.py diff --git a/tests/netperf_bidir.py b/boardfarm/tests/netperf_bidir.py similarity index 100% rename from tests/netperf_bidir.py rename to boardfarm/tests/netperf_bidir.py diff --git a/tests/netperf_reverse_test.py b/boardfarm/tests/netperf_reverse_test.py similarity index 100% rename from tests/netperf_reverse_test.py rename to boardfarm/tests/netperf_reverse_test.py diff --git a/tests/netperf_rfc2544.py b/boardfarm/tests/netperf_rfc2544.py similarity index 100% rename from tests/netperf_rfc2544.py rename to boardfarm/tests/netperf_rfc2544.py diff --git a/tests/netperf_stress_test.py b/boardfarm/tests/netperf_stress_test.py similarity index 100% rename from tests/netperf_stress_test.py rename to boardfarm/tests/netperf_stress_test.py diff --git a/tests/netperf_test.py b/boardfarm/tests/netperf_test.py similarity index 100% rename from tests/netperf_test.py rename to boardfarm/tests/netperf_test.py diff --git a/tests/netperf_udp_test.py b/boardfarm/tests/netperf_udp_test.py similarity index 100% rename from tests/netperf_udp_test.py rename to boardfarm/tests/netperf_udp_test.py diff --git a/tests/network_restart.py b/boardfarm/tests/network_restart.py similarity index 100% rename from tests/network_restart.py rename to boardfarm/tests/network_restart.py diff --git a/tests/nmap.py b/boardfarm/tests/nmap.py similarity index 100% rename from tests/nmap.py rename to boardfarm/tests/nmap.py diff --git a/tests/oe.py b/boardfarm/tests/oe.py similarity index 100% rename from tests/oe.py rename to boardfarm/tests/oe.py diff --git a/tests/openwrt_version.py b/boardfarm/tests/openwrt_version.py similarity index 100% rename from tests/openwrt_version.py rename to boardfarm/tests/openwrt_version.py diff --git a/tests/opkg.py b/boardfarm/tests/opkg.py similarity index 100% rename from tests/opkg.py rename to boardfarm/tests/opkg.py diff --git a/tests/opkg_conf.py b/boardfarm/tests/opkg_conf.py similarity index 100% rename from tests/opkg_conf.py rename to boardfarm/tests/opkg_conf.py diff --git a/tests/perfperpkt_test.py b/boardfarm/tests/perfperpkt_test.py similarity index 100% rename from tests/perfperpkt_test.py rename to boardfarm/tests/perfperpkt_test.py diff --git a/tests/ping.py b/boardfarm/tests/ping.py similarity index 100% rename from tests/ping.py rename to boardfarm/tests/ping.py diff --git a/tests/ping6.py b/boardfarm/tests/ping6.py similarity index 100% rename from tests/ping6.py rename to boardfarm/tests/ping6.py diff --git a/tests/qdisc.py b/boardfarm/tests/qdisc.py similarity index 100% rename from tests/qdisc.py rename to boardfarm/tests/qdisc.py diff --git a/tests/rootfs_boot.py b/boardfarm/tests/rootfs_boot.py similarity index 100% rename from tests/rootfs_boot.py rename to boardfarm/tests/rootfs_boot.py diff --git a/tests/samba.py b/boardfarm/tests/samba.py similarity index 100% rename from tests/samba.py rename to boardfarm/tests/samba.py diff --git a/tests/screenshot_gui.py b/boardfarm/tests/screenshot_gui.py similarity index 100% rename from tests/screenshot_gui.py rename to boardfarm/tests/screenshot_gui.py diff --git a/tests/selftest.py b/boardfarm/tests/selftest.py similarity index 100% rename from tests/selftest.py rename to boardfarm/tests/selftest.py diff --git a/tests/snmp.py b/boardfarm/tests/snmp.py similarity index 100% rename from tests/snmp.py rename to boardfarm/tests/snmp.py diff --git a/tests/socat.py b/boardfarm/tests/socat.py similarity index 100% rename from tests/socat.py rename to boardfarm/tests/socat.py diff --git a/tests/ssh_forward_port.py b/boardfarm/tests/ssh_forward_port.py similarity index 100% rename from tests/ssh_forward_port.py rename to boardfarm/tests/ssh_forward_port.py diff --git a/tests/status.py b/boardfarm/tests/status.py similarity index 100% rename from tests/status.py rename to boardfarm/tests/status.py diff --git a/tests/sysupgrade.py b/boardfarm/tests/sysupgrade.py similarity index 100% rename from tests/sysupgrade.py rename to boardfarm/tests/sysupgrade.py diff --git a/tests/tcpdump.py b/boardfarm/tests/tcpdump.py similarity index 100% rename from tests/tcpdump.py rename to boardfarm/tests/tcpdump.py diff --git a/tests/ubus.py b/boardfarm/tests/ubus.py similarity index 100% rename from tests/ubus.py rename to boardfarm/tests/ubus.py diff --git a/tests/uci_wireless.py b/boardfarm/tests/uci_wireless.py similarity index 100% rename from tests/uci_wireless.py rename to boardfarm/tests/uci_wireless.py diff --git a/tests/uname.py b/boardfarm/tests/uname.py similarity index 100% rename from tests/uname.py rename to boardfarm/tests/uname.py diff --git a/tests/vmstat.py b/boardfarm/tests/vmstat.py similarity index 100% rename from tests/vmstat.py rename to boardfarm/tests/vmstat.py diff --git a/tests/webbrowse.py b/boardfarm/tests/webbrowse.py similarity index 100% rename from tests/webbrowse.py rename to boardfarm/tests/webbrowse.py diff --git a/tests/webgui.py b/boardfarm/tests/webgui.py similarity index 100% rename from tests/webgui.py rename to boardfarm/tests/webgui.py diff --git a/tests/webui_tests.py b/boardfarm/tests/webui_tests.py similarity index 100% rename from tests/webui_tests.py rename to boardfarm/tests/webui_tests.py diff --git a/tests/wifi.py b/boardfarm/tests/wifi.py similarity index 100% rename from tests/wifi.py rename to boardfarm/tests/wifi.py diff --git a/testsuites.cfg b/boardfarm/testsuites.cfg similarity index 100% rename from testsuites.cfg rename to boardfarm/testsuites.cfg diff --git a/testsuites.py b/boardfarm/testsuites.py similarity index 100% rename from testsuites.py rename to boardfarm/testsuites.py diff --git a/zephyr/README.md b/boardfarm/zephyr/README.md similarity index 100% rename from zephyr/README.md rename to boardfarm/zephyr/README.md diff --git a/zephyr/__init__.py b/boardfarm/zephyr/__init__.py similarity index 100% rename from zephyr/__init__.py rename to boardfarm/zephyr/__init__.py diff --git a/zephyr/boardfarm_tc_meta_file.csv b/boardfarm/zephyr/boardfarm_tc_meta_file.csv similarity index 100% rename from zephyr/boardfarm_tc_meta_file.csv rename to boardfarm/zephyr/boardfarm_tc_meta_file.csv diff --git a/zephyr/zapi.py b/boardfarm/zephyr/zapi.py similarity index 100% rename from zephyr/zapi.py rename to boardfarm/zephyr/zapi.py diff --git a/zephyr/zephyr_reporter.py b/boardfarm/zephyr/zephyr_reporter.py similarity index 100% rename from zephyr/zephyr_reporter.py rename to boardfarm/zephyr/zephyr_reporter.py diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh deleted file mode 100755 index 440d6ba8..00000000 --- a/deploy-boardfarm-nodes.sh +++ /dev/null @@ -1,412 +0,0 @@ -#!/bin/bash -xe - -IFACE=${1:-undefined} -START_VLAN=${2:-101} -END_VLAN=${3:-144} -OPTS=${4:-"both"} # both, odd, even, odd-dhcp, even-dhcp -BRINT=br-bft -BF_IMG=${BF_IMG:-"bft:node"} -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" -STARTSSHPORT=5000 -STARTWEBPORT=8000 - -if ! docker inspect --type=image $BF_IMG > /dev/null 2>&1 ; then - (cd $DIR; docker build -t $BF_IMG ${BF_IMG/:/-}) -fi - -random_private_mac () { - python - <<END -import random - -def randomMAC(): - mac = [ (random.randint(0x00,0xff) & 0xfe), # the lsb is 0, i.e. no multicat bit - random.randint(0x00, 0xff), - random.randint(0x00, 0xff), - random.randint(0x00, 0xff), - random.randint(0x00, 0xff), - random.randint(0x00, 0xff) ] - mac_to_be_decided = ':'.join(map(lambda x : hex(x)[2:].lstrip("0x").zfill(2),mac)) - - return (mac_to_be_decided) - -if __name__ == '__main__': - print randomMAC() -END -} - -local_route () { - # TODO: This is a problem if the router network matches the host network - host_dev=$(ip route list | grep ^default | awk '{print $5}' ) - local_route=$(ip route | grep "dev $host_dev" | grep src | awk '{print $1}' | head -n1) - docker0=$(ip -4 addr show docker0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}') - docker exec $cname ip route add $local_route dev eth0 via $docker0 -} - -# helper function for lan containers to push the mgmt iface in a separate routing table -# and creates a bash alias named "mgmt" that should be used to bind commands to the -# mgmt iface (this is to allow internet connectivity to specific commands without imparing -# the default route of the iface_dut) -# This function should be called when the container has an eth0 and an eth1 ifaces and eth0 -# needs to be isolated -isolate_management() { - local cname=${1} - - docker_dev=$(docker exec $cname ip route list | grep ^default | awk '{print $5}' ) - docker_gw_ip=$(ip -4 addr show docker0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}') - docker_dev_ip=$(docker exec $cname ip -4 addr show $docker_dev | grep -oP '(?<=inet\s)\d+(\.\d+){3}') - docker_nw=$(ip route | grep "dev docker0" | grep src | awk '{print $1}' | head -n1) - - docker exec $cname bash -c "echo \"1 mgmt\" >> /etc/iproute2/rt_tables" - docker exec $cname ip route add default via $docker_gw_ip table mgmt - docker exec $cname ip rule add from $docker_dev_ip table mgmt - docker exec $cname ip rule add to $docker_dev_ip table mgmt - docker exec $cname ip rule add from $docker_nw table mgmt - docker exec $cname ip rule add to $docker_nw table mgmt - - docker cp $cname:root/.bashrc bashrc_$cname - echo "alias mgmt='BIND_ADDR=$docker_dev_ip LD_PRELOAD=/usr/lib/bind.so '" >> bashrc_$cname - docker cp bashrc_$cname $cname:root/.bashrc; rm bashrc_$cname -} -# creates container running with ssh on eth0, adds DUT facing interface only -create_container_stub () { - local cname=${1} - local sshport=${2} - local proxyport=${3} - local ifacedut=${4} - - docker stop $cname && docker rm $cname - docker run --name $cname --privileged -h $cname --restart=always \ - -p $sshport:22 \ - -p $proxyport:8080 \ - -d $BF_IMG /usr/sbin/sshd -D - - cspace=$(docker inspect --format '{{.State.Pid}}' $cname) - # this should avoid the cli wrapping onto itself - docker exec $cname bash -c 'echo "stty columns 200" >> /root/.bashrc' - sudo ip link set netns $cspace dev $ifacedut - docker exec $cname ip link set $ifacedut name eth1 - docker exec $cname ip link set dev eth1 address $(random_private_mac $vlan) - - isolate_management ${cname} -} - -# eth0 is docker private network, eth1 is vlan on specific interface -create_container_eth1_vlan () { - local vlan=$1 - local offset=${2:-0} - - cname=bft-node-$IFACE-$vlan-$offset - - sudo ip link del $IFACE.$vlan || true - sudo ip link add link $IFACE name $IFACE.$vlan type vlan id $vlan - - create_container_stub $cname \ - $(( $STARTSSHPORT + $offset + $vlan )) \ - $(( $STARTWEBPORT + $offset + $vlan )) \ - $IFACE.$vlan -} - -# eth0 is docker private network, eth1 is vlan on specific interface within a bridge -create_container_eth1_bridged_vlan () { - local vlan=$1 - local offset=${2:-0} - - # verify settings are correct - # TODO: verify the set - sudo sysctl -w net.bridge.bridge-nf-call-arptables=0 - sudo sysctl -w net.bridge.bridge-nf-call-ip6tables=0 - sudo sysctl -w net.bridge.bridge-nf-call-iptables=0 - - cname=bft-node-$IFACE-$vlan-$offset - docker stop $cname && docker rm $cname - docker run --name $cname --privileged -h $cname --restart=always \ - -p $(( $STARTSSHPORT + $offset + $vlan )):22 \ - -p $(( $STARTWEBPORT + $offset + $vlan )):8080 \ - -d $BF_IMG /usr/sbin/sshd -D - - cspace=$(docker inspect --format '{{.State.Pid}}' $cname) - isolate_management ${cname} - - # create bridge - sudo ip link add br-$IFACE.$vlan type bridge || true - sudo ip link set br-$IFACE.$vlan up - - # create uplink vlan on IFACE - sudo ip link delete $IFACE.$vlan || true - sudo ip link add link $IFACE name $IFACE.$vlan type vlan id $vlan - sudo ip link set dev $IFACE.$vlan address $(random_private_mac $vlan) - sudo ip link set $IFACE.$vlan master br-$IFACE.$vlan - sudo ip link set $IFACE up - sudo ip link set $IFACE.$vlan up - - # add veth for new container (one per container vs. the two above are shared) - sudo ip link add v$IFACE-$vlan-$offset type veth peer name eth1 netns $cspace - sudo ip link set v$IFACE-$vlan-$offset master br-$IFACE.$vlan - sudo ip link set v$IFACE-$vlan-$offset up - - docker exec $cname ip link set eth1 up -} - -# eth0 is docker private network, eth1 is vlan on specific interface within a bridge -create_container_eth1_macvtap_vlan () { - local vlan=$1 - local offset=${2:-0} - - # verify settings are correct - # TODO: verify the set - sudo sysctl -w net.bridge.bridge-nf-call-arptables=0 - sudo sysctl -w net.bridge.bridge-nf-call-ip6tables=0 - sudo sysctl -w net.bridge.bridge-nf-call-iptables=0 - - cname=bft-node-$IFACE-$vlan-$offset - docker stop $cname && docker rm $cname - docker run --name $cname --privileged -h $cname --restart=always \ - -p $(( $STARTSSHPORT + $offset + $vlan )):22 \ - -p $(( $STARTWEBPORT + $offset + $vlan )):8080 \ - -d $BF_IMG /usr/sbin/sshd -D - - cspace=$(docker inspect --format '{{.State.Pid}}' $cname) - isolate_management ${cname} - - # create uplink vlan on IFACE - sudo ip link add link $IFACE name $IFACE.$vlan type vlan id $vlan - sudo ip link set dev $IFACE.$vlan address $(random_private_mac $vlan) - sudo ip link set $IFACE.$vlan up - - # add veth for new container (one per container vs. the two above are shared) - sudo ip link add link $IFACE.$vlan name eth1 type macvtap - sudo ip link set netns $cspace dev eth1 - - docker exec $cname ip link set eth1 up -} - -# eth0/eth1 are both dhcp on the main network -create_container_eth1_dhcp () { - local vlan=$1 - - cname=bft-node-$IFACE-$vlan - docker stop $cname && docker rm $cname - docker run --name $cname --privileged -h $cname --restart=always \ - -d --network=none $BF_IMG /usr/sbin/sshd -D - - cspace=$(docker inspect --format '{{.State.Pid}}' $cname) - - # create lab network access port - sudo ip link add tempfoo link $IFACE type macvlan mode bridge - sudo ip link set dev tempfoo up - sudo ip link set netns $cspace dev tempfoo - docker exec $cname ip link set tempfoo name eth1 - docker exec $cname ifconfig eth1 up - docker exec $cname dhclient eth1 -} - -# eth1 is on main network and static -create_container_eth1_static () { - local name=$1 - local ip=$2 - local default_route=$3 - local driver=${4:-macvlan} - local ipv6_addr=${5:-"0"} - local ipv6_default=${6:-"0"} - - cname=bft-node-$IFACE-$name - docker stop $cname && docker rm $cname - docker run --name $cname --privileged -h $cname --restart=always \ - -d --network=none $BF_IMG /usr/sbin/sshd -D - - cspace=$(docker inspect --format {{.State.Pid}} $cname) - - # create lab network access port - if [ "$driver" = "ipvlan" ] - then - sudo ip link add tempfoo link $IFACE type $driver mode l2 - else - sudo ip link add tempfoo link $IFACE type $driver mode bridge - fi - sudo ip link set dev tempfoo up - sudo ip link set netns $cspace dev tempfoo - docker exec $cname ip link set tempfoo name eth1 - docker exec $cname ip link set eth1 up - docker exec $cname ip addr add $ip dev eth1 - docker exec $cname ip route add default via $default_route dev eth1 - docker exec $cname ping $default_route -c3 - - ! [ "$ipv6_addr" != "0" -a "$ipv6_default" != "0" ] && echo "Error: missing ipv6 params" && return - - docker exec $cname sysctl net.ipv6.conf.eth1.disable_ipv6=0 - docker exec $cname ip -6 addr add $ipv6_addr dev eth1 - docker exec $cname ip -6 route add default via $ipv6_default dev eth1 - sleep 3 - docker exec $cname bash -c "ping -c3 $ipv6_default" -} - -# eth1 is on main network and static -create_container_eth1_static_ipvlan () { - local name=$1 - local ip=$2 - local default_route=$3 - - cname=bft-node-$IFACE-$name - docker stop $cname && docker rm $cname - docker run --name $cname --privileged -h $cname --restart=always \ - -d --network=none $BF_IMG /usr/sbin/sshd -D - - cspace=$(docker inspect --format {{.State.Pid}} $cname) - - # create lab network access port - sudo ip link add tempfoo link $IFACE type ipvlan mode l2 - sudo ip link set dev tempfoo up - sudo ip link set netns $cspace dev tempfoo - docker exec $cname ip link set tempfoo name eth1 - docker exec $cname ip link set eth1 up - docker exec $cname ip addr add $ip dev eth1 - docker exec $cname ip route add default via $default_route dev eth1 - docker exec $cname ping $default_route -c3 -} - -# eth0 is docker private network, eth1 is static ip -create_container_eth1_static_linked () { - local name=$1 - local ip=$2 - local default_route=$3 - local offset=${4:-0} - local driver=${5:-macvlan} - local ipv6_addr=${6:-"0"} - local ipv6_default=${7:-"0"} - - cname=bft-node-$IFACE-$name - docker stop $cname && docker rm $cname - docker run --name $cname --privileged -h $cname --restart=always \ - -p $(( $STARTSSHPORT + $offset )):22 \ - -p $(( $STARTWEBPORT + $offset )):8080 \ - -d $BF_IMG /usr/sbin/sshd -D - - cspace=$(docker inspect --format {{.State.Pid}} $cname) - isolate_management ${cname} - - # create lab network access port - if [ "$driver" = "ipvlan" ] - then - sudo ip link add tempfoo link $IFACE type $driver mode l2 - else - # driver can be macvtap or macvlan. default=macvlan - sudo ip link add tempfoo link $IFACE type $driver mode bridge - fi - sudo ip link set dev tempfoo up - sudo ip link set netns $cspace dev tempfoo - docker exec $cname ip link set tempfoo name eth1 - docker exec $cname ip link set eth1 up - docker exec $cname ip addr add $ip dev eth1 - docker exec $cname ip route del default dev eth0 - docker exec $cname ip route add default via $default_route dev eth1 - docker exec $cname ping $default_route -c3 - - ! [ "$ipv6_addr" != "0" -a "$ipv6_default" != "0" ] && echo "Error: missing ipv6 params" && return - - docker exec $cname sysctl net.ipv6.conf.eth1.disable_ipv6=0 - docker exec $cname ip -6 addr add $ipv6_addr dev eth1 - docker exec $cname ip -6 route add default via $ipv6_default dev eth1 - sleep 3 - docker exec $cname bash -c "ping -c3 $ipv6_default" -} - -# eth0 is docker private network, eth1 physical device -create_container_eth1_phys () { - local dev=$1 - local offset=$2 - - cname=bft-node-$dev - docker stop $cname && docker rm $cname - docker run --name $cname --privileged -h $cname --restart=always \ - -p $(( $STARTSSHPORT + $offset )):22 \ - -p $(( $STARTWEBPORT + $offset )):8080 \ - -d $BF_IMG /usr/sbin/sshd -D - - cspace=$(docker inspect --format {{.State.Pid}} $cname) - - # create lab network access port - sudo ip link set netns $cspace dev $dev - docker exec $cname ip link set $dev name wlan1 - docker exec $cname ip link set wlan1 up -} - -# eth0 is docker private network, eth1 with device -create_container_eth1_wifi () { - local dev=$1 - local offset=${2:-40000} - local proxy_dir=${3:-"0"} - local proxy_ip=${4:-"0"} - - cname=bft-node-$dev - docker stop $cname && docker rm $cname - docker run --name $cname --privileged -h $cname --restart=always \ - -p $(( $STARTSSHPORT + $offset )):22 \ - -p $(( $STARTWEBPORT + $offset )):8080 \ - -d $BF_IMG /usr/sbin/sshd -D - - isolate_management ${cname} - - #add proxy details if specified - local docker_gw_ip=$(ip -4 addr show docker0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}') - if [ "$proxy_dir" != "0" ] && [ "$proxy_ip" != "0" ] - then - docker cp $proxy_dir/proxy.conf $cname:/etc/apt/apt.conf.d/ - docker exec $cname ip route add $proxy_ip via $docker_gw_ip table mgmt - fi - cspace=$(docker inspect --format {{.State.Pid}} $cname) - isolate_management ${cname} - - # create lab network access port - # rfkill and ip need to be added as rootLessCommands on the host - # if Wi-Fi was associated to an SSID on the host, on pushing the interface - # to container rfkill releases the wifi resource from host. - sudo rfkill unblock wifi - sudo iw phy $(cat /sys/class/net/"$dev"/phy80211/name) set netns $cspace - docker exec $cname ip link set $dev name wlan1 - docker exec $cname ip link set wlan1 up -} - -#voice container -create_container_voice () { - #will be from /dev ACM dev name - local dev=$1 - #keep offset as 40000 - local offset=${2:-1} - local proxy_dir=${3:-"0"} - local proxy_ip=${4:-"0"} - - cname=bft-node-$dev - docker stop $cname && docker rm $cname - docker run --name $cname --privileged -h $cname --restart=always \ - -p $(( 4000 + $offset )):22 \ - -d $BF_IMG /usr/sbin/sshd -D - - #add proxy details if specified - local docker_gw_ip=$(ip -4 addr show docker0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}') - if [ "$proxy_dir" != "0" ] && [ "$proxy_ip" != "0" ] - then - docker cp $proxy_dir/proxy.conf $cname:/etc/apt/apt.conf.d/ - docker exec $cname ip route add $proxy_ip via $docker_gw_ip - fi - docker exec $cname ln -s /dev/tty$dev /root/line-$dev -} - -[ "$IFACE" = "undefined" ] && return - -echo "Creating nodes starting on vlan $START_VLAN to $END_VLAN on iface $IFACE" - -for vlan in $(seq $START_VLAN $END_VLAN); do - echo "Creating node on vlan $vlan" - - create_container_eth1_vlan $vlan - - [ "$OPTS" = "both" ] && { local_route; continue; } - if [ $((vlan%2)) -eq 0 ]; then - [ "$OPTS" = "even" ] && local_route - elif [ "$OPTS" = "odd" ]; then - local_route - fi -done - -echo "Running the command below will stop all containers and clean up everything:" -echo 'docker stop $(docker ps -q) && docker rm $(docker ps -a -q)' diff --git a/deploy-boardfarm-nodes.sh b/deploy-boardfarm-nodes.sh new file mode 120000 index 00000000..f1140f90 --- /dev/null +++ b/deploy-boardfarm-nodes.sh @@ -0,0 +1 @@ +boardfarm/deploy-boardfarm-nodes.sh \ No newline at end of file From 61e137bc713259c761545713690e75ca938a0659 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 7 Aug 2019 19:12:16 -0500 Subject: [PATCH 936/947] bft: the change that moved all files is causing isuses Probably need to fix another way eventually, just don't want to back out the bigger change Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I0862cb17bc371f25aadcbf98fa50068e359ae2f3 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464465 Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> Tested-by: Matthew McClintock <matthew@meldnetworks.com> --- boardfarm/bft | 2 ++ 1 file changed, 2 insertions(+) diff --git a/boardfarm/bft b/boardfarm/bft index 78c3ae5d..b374d8b2 100755 --- a/boardfarm/bft +++ b/boardfarm/bft @@ -25,6 +25,8 @@ from zephyr import zephyr_reporter import site site.addsitedir(os.path.dirname(os.path.realpath(__file__))) +os.chdir(os.path.dirname(os.path.realpath(__file__))) + from devices import get_device from dbclients import logstash, elasticlogger, mongodblogger, boardfarmwebclient From 3325fae7ee31c64c94d8233d13fccc8eada87654 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 7 Aug 2019 20:57:25 -0500 Subject: [PATCH 937/947] bft: more fixes for running from symlinked dir Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I945f9159ef74b5c811a807e52b49978a3a61413f Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464470 Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> Tested-by: Matthew McClintock <matthew@meldnetworks.com> --- boardfarm/bft | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/boardfarm/bft b/boardfarm/bft index b374d8b2..6e9211aa 100755 --- a/boardfarm/bft +++ b/boardfarm/bft @@ -25,9 +25,10 @@ from zephyr import zephyr_reporter import site site.addsitedir(os.path.dirname(os.path.realpath(__file__))) +cwd = os.getcwd() os.chdir(os.path.dirname(os.path.realpath(__file__))) - from devices import get_device +os.chdir(cwd) from dbclients import logstash, elasticlogger, mongodblogger, boardfarmwebclient import matplotlib From a35a025838e79098a692aa565dc2850a1b200914 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 8 Aug 2019 06:58:12 -0500 Subject: [PATCH 938/947] bft: more fixes for running from external directory and moving file locations w/ overlays Mostly this fixes BFT_OVERLAY being a relative path from the CWDIR. I suggest using full paths going forward though Also, we insert paths for devices in overlays, but we never inserted the path for devices in the main repo, so we need to do that too This should just be a small fix for better improvements later Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Ibf0d70ac93045cfae428ae76a4508436128aef25 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464538 Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> Tested-by: Matthew McClintock <matthew@meldnetworks.com> --- boardfarm/bft | 3 --- boardfarm/config.py | 1 + boardfarm/devices/__init__.py | 3 ++- boardfarm/devices/debian_isc.py | 2 +- boardfarm/make_human_readable.py | 1 + boardfarm/tests/cdrouter_bootstrap.py | 1 + boardfarm/tests/interact.py | 2 ++ boardfarm/zephyr/zephyr_reporter.py | 1 + 8 files changed, 9 insertions(+), 5 deletions(-) diff --git a/boardfarm/bft b/boardfarm/bft index 6e9211aa..78c3ae5d 100755 --- a/boardfarm/bft +++ b/boardfarm/bft @@ -25,10 +25,7 @@ from zephyr import zephyr_reporter import site site.addsitedir(os.path.dirname(os.path.realpath(__file__))) -cwd = os.getcwd() -os.chdir(os.path.dirname(os.path.realpath(__file__))) from devices import get_device -os.chdir(cwd) from dbclients import logstash, elasticlogger, mongodblogger, boardfarmwebclient import matplotlib diff --git a/boardfarm/config.py b/boardfarm/config.py index c2eb1b9f..ae8481dc 100644 --- a/boardfarm/config.py +++ b/boardfarm/config.py @@ -20,6 +20,7 @@ layerconfs = [] if 'BFT_OVERLAY' in os.environ: for overlay in os.environ['BFT_OVERLAY'].split(' '): + overlay = os.path.realpath(overlay) testsuites_path = os.path.join(overlay, 'testsuites.cfg') layerconf_path = os.path.join(overlay, 'layerconf.py') if os.path.isfile(testsuites_path): diff --git a/boardfarm/devices/__init__.py b/boardfarm/devices/__init__.py index a6e9c9ca..4756ddd9 100644 --- a/boardfarm/devices/__init__.py +++ b/boardfarm/devices/__init__.py @@ -13,6 +13,7 @@ # insert tests lib so devices and tests can share the same libraries sys.path.insert(0, os.path.dirname(__file__) + '/../tests') +sys.path.insert(0, os.path.dirname(__file__)) board = None lan = None @@ -26,7 +27,7 @@ device_files += [e.replace('/__init__', '') for e in glob.glob(os.path.dirname(__file__) + '/*/__init__.py')] if 'BFT_OVERLAY' in os.environ: for overlay in os.environ['BFT_OVERLAY'].split(' '): - overlay = os.path.abspath(overlay) + overlay = os.path.realpath(overlay) sys.path.insert(0, overlay + '/devices') device_files += glob.glob(overlay + '/devices/*.py') device_files += [e.replace('/__init__', '') for e in glob.glob(overlay + '/devices/*/__init__.py')] diff --git a/boardfarm/devices/debian_isc.py b/boardfarm/devices/debian_isc.py index c09015af..0aaf7359 100644 --- a/boardfarm/devices/debian_isc.py +++ b/boardfarm/devices/debian_isc.py @@ -450,7 +450,7 @@ def update_cmts_isc_dhcp_config(self, board_config): def copy_cmts_provisioning_files(self, board_config): # Look in all overlays as well, and PATH as a workaround for standalone paths = os.environ['PATH'].split(os.pathsep) - paths += os.environ['BFT_OVERLAY'].split(' ') + paths += [ os.path.realpath(x) for x in os.environ['BFT_OVERLAY'].split(' ') ] cfg_list = [] if 'tftp_cfg_files' in board_config: diff --git a/boardfarm/make_human_readable.py b/boardfarm/make_human_readable.py index e3b72b10..eca1d5f2 100644 --- a/boardfarm/make_human_readable.py +++ b/boardfarm/make_human_readable.py @@ -32,6 +32,7 @@ def pick_template_filename(): full = owrt_tests_dir+"/html/template_results.html" if 'BFT_OVERLAY' in os.environ: for overlay in os.environ['BFT_OVERLAY'].split(' '): + overlay = os.path.realpath(overlay) if os.path.isfile(overlay + "/html/template_results_basic.html"): basic = overlay + "/html/template_results_basic.html" break diff --git a/boardfarm/tests/cdrouter_bootstrap.py b/boardfarm/tests/cdrouter_bootstrap.py index 186a4ac1..64344b7b 100644 --- a/boardfarm/tests/cdrouter_bootstrap.py +++ b/boardfarm/tests/cdrouter_bootstrap.py @@ -145,6 +145,7 @@ def add_cdrouter_config(config): cdr_conf = open(config, 'r').readlines() elif 'BFT_OVERLAY' in os.environ: for p in os.environ['BFT_OVERLAY'].split(' '): + p = os.path.realpath(p) try: cdr_conf = open(os.path.join(p, config), 'r').readlines() except: diff --git a/boardfarm/tests/interact.py b/boardfarm/tests/interact.py index ae6ebe60..4a80d32b 100644 --- a/boardfarm/tests/interact.py +++ b/boardfarm/tests/interact.py @@ -117,6 +117,7 @@ def runTest(self): if 'BFT_OVERLAY' in os.environ: for o in os.environ['BFT_OVERLAY'].split(' ' ): + o = os.path.realpath(o) test_files = glob.glob(o + "/tests/*.py") for x in sorted([os.path.basename(f)[:-3] for f in test_files if not "__" in f]): exec("from %s import *" % x) @@ -139,6 +140,7 @@ def runTest(self): if 'BFT_OVERLAY' in os.environ: for o in os.environ['BFT_OVERLAY'].split(' ' ): + overlay = os.path.realpath(overlay) test_files = glob.glob(o + "/tests/*.py") for x in sorted([os.path.basename(f)[:-3] for f in test_files if not "__" in f]): exec("from %s import *" % x) diff --git a/boardfarm/zephyr/zephyr_reporter.py b/boardfarm/zephyr/zephyr_reporter.py index e4f2dec0..98649139 100644 --- a/boardfarm/zephyr/zephyr_reporter.py +++ b/boardfarm/zephyr/zephyr_reporter.py @@ -84,6 +84,7 @@ def parse_zapi_config(): data = [] if 'BFT_OVERLAY' in os.environ: for overlay in os.environ['BFT_OVERLAY'].split(' '): + overlay = os.path.realpath(overlay) zdir = os.path.join(os.path.abspath(overlay), 'zephyr') if os.path.exists(zdir): data.append(json.load(open(os.path.join(zdir, 'zapi_configuration.json')))) From 1c58ccebe9ed9d2c5ab727f51a42750628c12e49 Mon Sep 17 00:00:00 2001 From: Michele Gualco <mgualco.contractor@libertyglobal.com> Date: Thu, 8 Aug 2019 10:58:21 +0200 Subject: [PATCH 939/947] tests: selftest: added missing comma Signed-off-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Change-Id: Idf650a30cdda43bbcb4c4f0bbe3188c4b5522931 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464513 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Panimalar Palaniappan <ppalaniappan.contractor@libertyglobal.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- boardfarm/tests/selftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boardfarm/tests/selftest.py b/boardfarm/tests/selftest.py index ab6d59be..49c04188 100644 --- a/boardfarm/tests/selftest.py +++ b/boardfarm/tests/selftest.py @@ -392,7 +392,7 @@ def runTest(self): unit_test = SnmpMibsUnitTest(mibs_location = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), os.pardir, 'resources', - 'mibs')) + 'mibs')), files = ['SNMPv2-MIB'], mibs = test_mibs, err_mibs = wrong_mibs) From 68cbad6d6dae76c5150ad8cced5068df99270c50 Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Thu, 8 Aug 2019 11:02:06 -0500 Subject: [PATCH 940/947] tests/lib/wifi: Use expect_prompt() The class BaseDevice has a function expect_prompt() to replace use of expect(prompt). This simplifies imports. Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: Ieb4231a933683a9484f55b2b3c5e6f0454ce5a49 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464570 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- boardfarm/tests/lib/wifi.py | 61 ++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/boardfarm/tests/lib/wifi.py b/boardfarm/tests/lib/wifi.py index cab872ef..5db55d70 100644 --- a/boardfarm/tests/lib/wifi.py +++ b/boardfarm/tests/lib/wifi.py @@ -10,7 +10,6 @@ import re import string import time -from devices import prompt wlan_iface = None @@ -34,56 +33,56 @@ def randomSSIDName(): def uciSetWifiSSID(console, ssid): console.sendline('uci set wireless.@wifi-iface[0].ssid=%s; uci commit wireless; wifi' % ssid) - console.expect(prompt) + console.expect_prompt() def uciSetWifiMode(console, radio, hwmode): console.sendline('uci set wireless.wifi%s.hwmode=%s; uci commit wireless' % (radio, hwmode)) - console.expect(prompt) + console.expect_prompt() def uciSetChannel(console, radio, channel): console.sendline('uci set wireless.wifi%s.channel=%s; uci commit wireless' % (radio, channel)) - console.expect(prompt) + console.expect_prompt() def enable_wifi(board, index=0): board.sendline('\nuci set wireless.@wifi-device[%s].disabled=0; uci commit wireless' % index) board.expect('uci set') - board.expect(prompt) + board.expect_prompt() board.sendline('wifi') board.expect('wifi') - board.expect(prompt, timeout=50) + board.expect_prompt(timeout=50) time.sleep(20) def enable_all_wifi_interfaces(board): '''Find all wireless interfaces, and enable them.''' board.sendline('\nuci show wireless | grep disabled') board.expect('grep disabled') - board.expect(prompt) + board.expect_prompt() # The following re.findall should return list of settings: # ['wireless.radio0.disabled', 'wireless.radio1.disabled'] settings = re.findall('([\w\.]+)=\d', board.before) for s in settings: board.sendline('uci set %s=0' % s) - board.expect(prompt) + board.expect_prompt() board.sendline('uci commit wireless') - board.expect(prompt) + board.expect_prompt() board.sendline('wifi') - board.expect(prompt, timeout=50) + board.expect_prompt(timeout=50) def disable_wifi(board, wlan_iface="ath0"): board.sendline('uci set wireless.@wifi-device[0].disabled=1; uci commit wireless') board.expect('uci set') - board.expect(prompt) + board.expect_prompt() board.sendline('wifi') - board.expect(prompt) + board.expect_prompt() board.sendline('iwconfig %s' % wlan_iface) - board.expect(prompt) + board.expect_prompt() def wifi_on(board): '''Return True if WiFi is enabled.''' board.sendline('\nuci show wireless.@wifi-device[0].disabled') try: board.expect('disabled=0', timeout=5) - board.expect(prompt) + board.expect_prompt() return True except: return False @@ -99,7 +98,7 @@ def wifi_get_info(board, wlan_iface): essid = board.match.group(1) board.expect('Bit Rate[:=]([^ ]+) ') rate = float(board.match.group(1)) - board.expect(prompt) + board.expect_prompt() # TODO: determine channel channel = -1.0 elif "wlan" in wlan_iface: @@ -114,12 +113,12 @@ def wifi_get_info(board, wlan_iface): rate = float(board.match.group(1)) except: rate = -1.0 - board.expect(prompt) + board.expect_prompt() else: print("Unknown wireless type") except: board.sendline('dmesg') - board.expect(prompt) + board.expect_prompt() raise return essid, channel, rate, freq @@ -140,43 +139,43 @@ def wait_wifi_up(board, num_tries=10, sleep=15, wlan_iface="ath0"): def wifi_add_vap(console, phy, ssid): console.sendline('uci add wireless wifi-iface') - console.expect(prompt) + console.expect_prompt() console.sendline('uci set wireless.@wifi-iface[-1].device="%s"' % phy) - console.expect(prompt) + console.expect_prompt() console.sendline('uci set wireless.@wifi-iface[-1].network="lan"') - console.expect(prompt) + console.expect_prompt() console.sendline('uci set wireless.@wifi-iface[-1].mode="ap"') - console.expect(prompt) + console.expect_prompt() console.sendline('uci set wireless.@wifi-iface[-1].ssid="%s"' % ssid) - console.expect(prompt) + console.expect_prompt() console.sendline('uci set wireless.@wifi-iface[-1].encryption="none"') - console.expect(prompt) + console.expect_prompt() console.sendline('uci commit') - console.expect(prompt) + console.expect_prompt() def wifi_del_vap(console, index): console.sendline('uci delete wireless.@wifi-iface[%s]' % index) - console.expect(prompt) + console.expect_prompt() console.sendline('uci commit') - console.expect(prompt) + console.expect_prompt() def uciSetWifiSecurity(board, vap_iface, security): if security.lower() in ['none']: print("Setting security to none.") board.sendline('uci set wireless.@wifi-iface[%s].encryption=none' % vap_iface) - board.expect(prompt) + board.expect_prompt() elif security.lower() in ['wpa-psk']: print("Setting security to WPA-PSK.") board.sendline('uci set wireless.@wifi-iface[%s].encryption=psk+tkip' % vap_iface) - board.expect(prompt) + board.expect_prompt() board.sendline('uci set wireless.@wifi-iface[%s].key=1234567890abcdexyz' % vap_iface) - board.expect(prompt) + board.expect_prompt() elif security.lower() in ['wpa2-psk']: print("Setting security to WPA2-PSK.") board.sendline('uci set wireless.@wifi-iface[%s].encryption=psk2+ccmp' % vap_iface) - board.expect(prompt) + board.expect_prompt() board.sendline('uci set wireless.@wifi-iface[%s].key=1234567890abcdexyz' % vap_iface) - board.expect(prompt) + board.expect_prompt() class wifi_stub(): apply_changes_no_delay = True From aff2e7fa0f01ffb6ce3ce575c95d857a6a4cf56d Mon Sep 17 00:00:00 2001 From: Mike Anderson <mbanderson@uwalumni.com> Date: Thu, 8 Aug 2019 12:02:40 -0500 Subject: [PATCH 941/947] Create setup.py so we can install boardfarm To install boardfarm in developer mode: pip install -e . That means changes you make to the files are automatically available in the installed package. Or install normally: pip install . Either way, you can "import boardfarm" anywhere (doesn't do much at the moment, still a work in progress.) Or run bft anywhere (also a work in progress). Signed-off-by: Mike Anderson <mbanderson@uwalumni.com> Change-Id: I64c51f29ba6d900617276cd16a75baf3039715f5 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464580 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- boardfarm/__init__.py | 6 ++++++ setup.py | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 boardfarm/__init__.py create mode 100644 setup.py diff --git a/boardfarm/__init__.py b/boardfarm/__init__.py new file mode 100644 index 00000000..81167843 --- /dev/null +++ b/boardfarm/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) 2019 +# +# All rights reserved. +# +# This file is distributed under the Clear BSD license. +# The full text can be found in LICENSE in the root directory. diff --git a/setup.py b/setup.py new file mode 100644 index 00000000..1eac7b3a --- /dev/null +++ b/setup.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python + +from setuptools import setup, find_packages + +setup(name='boardfarm', + version='1.0.0', + description='Automated testing of network devices', + author='Various', + url='https://github.com/lgirdk/boardfarm', + packages=find_packages(), + package_data={'': ['*.txt','*.json','*.cfg','*.md','*.tcl']}, + include_package_data=True, + entry_points = { + 'console_scripts': ['bft=boardfarm.bft:main'], + } + ) From bc42b7b7814d6a1054f741020fc7e507cdf72a83 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 8 Aug 2019 12:45:59 -0500 Subject: [PATCH 942/947] devices: debian: print the name of the device when connecting Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I6f65683dcda391c90355e355622c3bf25a04f4c9 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464590 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Mike Anderson <mikeanderson@mcclintock.net> --- boardfarm/devices/debian.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/boardfarm/devices/debian.py b/boardfarm/devices/debian.py index 7a6981e8..2b9095fc 100755 --- a/boardfarm/devices/debian.py +++ b/boardfarm/devices/debian.py @@ -201,10 +201,12 @@ def __init__(self, self.expect_exact('alias apt="mgmt apt"; alias apt-get="mgmt apt-get"') self.expect(self.prompt) + cmsg = '%s ' % ipaddr if self.port != 22: - cprint("%s port %s device console = %s" % (ipaddr, port, colored(color, color)), None, attrs=['bold']) - else: - cprint("%s device console = %s" % (ipaddr, colored(color, color)), None, attrs=['bold']) + cmsg += '%s port ' % port + cmsg += 'device console = ' + cmsg += colored('%s (%s)' % (color, name), color) + cprint(cmsg, None, attrs=['bold']) if post_cmd_host is not None: sys.stdout.write("\tRunning post_cmd_host.... ") From 0cb33d1786967dff5d17e0154d97c70bba35b133 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 9 Aug 2019 09:46:47 -0500 Subject: [PATCH 943/947] devices: debian: point dns at localhost We just started dnsmasq caching nameserver, let's just use that Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: If11892ce0a7bd3f42530458d12d9f756cae2eef5 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464702 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: Michele Gualco <mgualco.contractor@libertyglobal.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- boardfarm/devices/debian.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/boardfarm/devices/debian.py b/boardfarm/devices/debian.py index 2b9095fc..19dd7fab 100755 --- a/boardfarm/devices/debian.py +++ b/boardfarm/devices/debian.py @@ -468,6 +468,8 @@ def setup_dnsmasq(self): self.add_hosts() self.sendline('/etc/init.d/dnsmasq restart') self.expect(self.prompt) + self.sendline('echo "nameserver 127.0.0.1" > /etc/resolv.conf') + self.expect(self.prompt) def add_hosts(self): #to add extra hosts(dict) to dnsmasq.hosts if dns has to run in wan container From 89d30b4b282434889de959b8de11fce0bb3a1ea9 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Wed, 31 Jul 2019 06:51:08 -0500 Subject: [PATCH 944/947] devices: docker_factory: add initial implementation Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I1e7351edb1bc5598d4e454957b267ac9d90cbb9a Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/463782 Tested-by: Matthew McClintock <matthew@meldnetworks.com> Reviewed-by: ketan tewari <ktewari.contractor@libertyglobal.com> Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> --- boardfarm/bft | 25 +++-- boardfarm/boardfarm_config_example.json | 49 ++++++---- boardfarm/devices/docker_factory.py | 121 ++++++++++++++++++++++++ 3 files changed, 170 insertions(+), 25 deletions(-) create mode 100644 boardfarm/devices/docker_factory.py diff --git a/boardfarm/bft b/boardfarm/bft index 78c3ae5d..a474946d 100755 --- a/boardfarm/bft +++ b/boardfarm/bft @@ -51,14 +51,12 @@ def setup_dynamic_devices(config, env=None, start=None): if 'BFT_DEBUG' in os.environ: print("Time to instantiate device = %s" % (time.time() - s)) - if dyn_dev is not None: - if 'name' not in device: - raise Exception("Device in config is not named! This is required") - setattr(config, device['name'], dyn_dev) - config.devices.append(device['name']) + def create_device_helper(name, dev): + setattr(config, name, dev) + config.devices.append(name) # TODO: should this be here for should each device type set it? - dyn_dev.start = start + dev.start = start # TODO: set the following: # reboot=config.reboot_vms, @@ -69,10 +67,21 @@ def setup_dynamic_devices(config, env=None, start=None): # if this device is a wan cmts provisioner, we set the device name # TODO: this should be generic - if getattr(dyn_dev, 'wan_cmts_provisioner', False): - setattr(config, 'provisioner', dyn_dev) + if getattr(dev, 'wan_cmts_provisioner', False): + setattr(config, 'provisioner', dev) config.devices.append('provisioner') + if dyn_dev is not None: + if 'name' not in device: + raise Exception("Device in config is not named! This is required") + create_device_helper(device['name'], dyn_dev) + + for dev in getattr(dyn_dev, 'extra_devices', []): + if hasattr(dev, 'name'): + create_device_helper(dev.name, dev) + else: + raise Exception("Extra device in config is not named! This is required") + continue print("Unknown device type for %s" % device) diff --git a/boardfarm/boardfarm_config_example.json b/boardfarm/boardfarm_config_example.json index 2723d8b8..75a116fa 100644 --- a/boardfarm/boardfarm_config_example.json +++ b/boardfarm/boardfarm_config_example.json @@ -62,25 +62,40 @@ "connection_type": "local_serial", "devices": [ { - "cleanup_cmd": "docker stop wan-${uniq_id}; docker rm wan-${uniq_id}", - "color": "blue", - "ipaddr": "localhost", - "name": "wan", - "port": "5909", - "pre_cmd_host": "source deploy-boardfarm-nodes.sh; create_container_stub wan-${uniq_id} 5909 9909 ${wan_iface}", - "type": "debian" + "name": "wan-factory", + "type": "docker-factory", + "iface": "${wan_iface}", + "targets": [ + { + "name": "wan", + "color": "blue", + "type": "debian", + "img": "bft:node" + } + ] }, { - "cleanup_cmd": "docker stop lan-${uniq_id}; docker rm lan-${uniq_id}", - "color": "cyan", - "http_proxy": "localhost:9909", - "ipaddr": "localhost", - "name": "lan", - "options": "tftpd-server", - "port": "5910", - "pre_cmd_host": "source deploy-boardfarm-nodes.sh; create_container_stub lan-${uniq_id} 5910 9910 ${lan_iface}", - "type": "debian" - } + "name": "lan-factory", + "type": "docker-factory", + "iface": "${lan_iface}", + "targets": [ + { + "color": "cyan", + "name": "lan", + "options": "tftpd-server", + "http_proxy": "localhost:9909", + "type": "debian", + "img": "bft:node" + }, + { + "color": "cyan", + "name": "lan2", + "http_proxy": "localhost:9910", + "type": "debian", + "img": "bft:node" + } + ] + } ], "notes": "QEMU emulated devices" }, diff --git a/boardfarm/devices/docker_factory.py b/boardfarm/devices/docker_factory.py new file mode 100644 index 00000000..8a1bfa30 --- /dev/null +++ b/boardfarm/devices/docker_factory.py @@ -0,0 +1,121 @@ +import pexpect +import sys +import os + +import linux + +class DockerFactory(linux.LinuxDevice): + ''' + A docker host that can spawn various types of images + ''' + + model = ('docker-factory') + prompt = ['docker_session>'] + created_docker_network = False + created_docker = False + extra_devices = [] + target_cname = [] + + def __str__(self): + return self.name + + def __init__(self, *args, **kwargs): + self.args = args + self.kwargs = kwargs + + self.ipaddr = kwargs.pop('ipaddr', None) + self.iface = kwargs.pop('iface', None) + self.docker_network = kwargs.pop('docker_network', None) + self.env = kwargs.pop('env', None) + self.name = kwargs.pop('name') + self.cname = self.name + '-${uniq_id}' + + if self.ipaddr is not None: + # TOOO: we rely on correct username and key and standard port + pexpect.spawn.__init(self, command="ssh", + args=['%s' % (self.ipaddr), + '-o', 'StrictHostKeyChecking=no', + '-o', 'UserKnownHostsFile=/dev/null', + '-o', 'ServerAliveInterval=60', + '-o', 'ServerAliveCountMax=5']) + else: + pexpect.spawn.__init__(self, command='bash', env=self.env) + self.ipaddr = 'localhost' + + if 'BFT_DEBUG' in os.environ: + self.logfile_read = sys.stdout + + self.expect(pexpect.TIMEOUT, timeout=1) + self.sendline('export PS1="docker_session>"') + self.expect(self.prompt) + self.expect(self.prompt) + self.set_cli_size(200) + + # if these interfaces are getting created let's give them time to show up + for i in range(10): + self.sendline('ifconfig %s' % self.iface) + self.expect(self.prompt) + if 'error fetching interface information: Device not found' not in self.before: + break + + # iface set, we need to create network + if self.iface is not None: + self.sendline('docker network create -d macvlan -o parent=%s -o macvlan_mode=bridge %s' % (self.iface, self.cname)) + self.expect(self.prompt) + self.sendline('docker network ls') + self.expect(self.prompt) + self.created_docker_network = True + + + from devices import get_device + for target in kwargs.pop('targets'): + target_img = target['img'] + target_type = target['type'] + target_cname = target['name'] + '-${uniq_id}' + + # TODO: check for docker image and build if needed/can + # TODO: move default command into Dockerfile + # TODO: list of ports to forward, http proxy port for example and ssh + self.sendline('docker run --rm --privileged --name=%s -d -p 22 %s /usr/sbin/sshd -D' % (target_cname, target_img)) + self.expect(self.prompt) + self.expect(pexpect.TIMEOUT, timeout=1) + self.sendline('docker network connect %s %s' % (self.cname, target_cname)) + self.expect(self.prompt) + assert 'Error response from daemon' not in self.before, "Failed to connect docker network" + if self.created_docker_network == True: + self.sendline('docker exec %s ip address flush dev eth1' % target_cname) + self.expect(self.prompt) + self.sendline("docker port %s | grep '22/tcp' | sed 's/.*://g'" % target_cname) + self.expect_exact("docker port %s | grep '22/tcp' | sed 's/.*://g'" % target_cname) + self.expect(self.prompt) + target['port'] = self.before.strip() + int(self.before.strip()) + self.created_docker = True + + target['ipaddr'] = self.ipaddr + + new_device = get_device(target_type, **target) + self.extra_devices.append(new_device) + + self.target_cname.append(target_cname) + + + def close(self, *args, **kwargs): + self.clean_docker() + self.clean_docker_network() + return super(DockerFactory, self).close(*args, **kwargs) + + def clean_docker_network(self): + if self.created_docker_network == True: + self.sendline('docker network rm %s' % self.cname) + self.expect(self.prompt) + self.sendline('docker network ls') + self.expect(self.prompt) + + def clean_docker(self): + if self.created_docker == True: + for c in self.target_cname: + self.sendline('docker stop %s' % c) + self.expect(self.prompt) + self.sendline('docker rm %s'% c) + self.expect(self.prompt) From a75846bf7528255a4969e2fabb7db27c1ba14bd4 Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Thu, 8 Aug 2019 12:35:54 -0500 Subject: [PATCH 945/947] boardfarm_config_example: run through python json tool Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: Id1a6014965f5c712e89c9e6a34d28781c7e4df75 Reviewed-on: https://review.gerrithub.io/c/lgirdk/boardfarm/+/464586 Reviewed-by: Matthew McClintock <matthew@meldnetworks.com> Tested-by: Matthew McClintock <matthew@meldnetworks.com> --- boardfarm/boardfarm_config_example.json | 60 ++++++++++++------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/boardfarm/boardfarm_config_example.json b/boardfarm/boardfarm_config_example.json index 75a116fa..33415e5f 100644 --- a/boardfarm/boardfarm_config_example.json +++ b/boardfarm/boardfarm_config_example.json @@ -62,40 +62,40 @@ "connection_type": "local_serial", "devices": [ { + "iface": "${wan_iface}", "name": "wan-factory", - "type": "docker-factory", - "iface": "${wan_iface}", - "targets": [ - { - "name": "wan", - "color": "blue", - "type": "debian", - "img": "bft:node" - } - ] + "targets": [ + { + "color": "blue", + "img": "bft:node", + "name": "wan", + "type": "debian" + } + ], + "type": "docker-factory" }, { + "iface": "${lan_iface}", "name": "lan-factory", - "type": "docker-factory", - "iface": "${lan_iface}", - "targets": [ - { - "color": "cyan", - "name": "lan", - "options": "tftpd-server", - "http_proxy": "localhost:9909", - "type": "debian", - "img": "bft:node" - }, - { - "color": "cyan", - "name": "lan2", - "http_proxy": "localhost:9910", - "type": "debian", - "img": "bft:node" - } - ] - } + "targets": [ + { + "color": "cyan", + "http_proxy": "localhost:9909", + "img": "bft:node", + "name": "lan", + "options": "tftpd-server", + "type": "debian" + }, + { + "color": "cyan", + "http_proxy": "localhost:9910", + "img": "bft:node", + "name": "lan2", + "type": "debian" + } + ], + "type": "docker-factory" + } ], "notes": "QEMU emulated devices" }, From 51ce599f718c33628e04e825949784f1af3b956a Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 9 Aug 2019 11:23:04 -0500 Subject: [PATCH 946/947] travis.yml: build docker image for bft Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I87325a662e3f2992ddde86594e6b5e3890e3dbb7 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index f78097c7..2d2a50e9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,6 +15,7 @@ before_install: script: - ./bft -l - ./bft -i + - docker build -t bft:node boardfarm/bft-node - yes | ./bft -b qemux86-openwrt -r https://www.dropbox.com/s/ak58icpzta1f0if/openwrt-x86-generic-combined-ext4.vmdk?dl=0 -y -x travisci - grep tests_fail...0, results/test_results.json - cat results/all.log From 865f7101fff4c9cab3ad2f75a967e3f87c4fe87d Mon Sep 17 00:00:00 2001 From: Matthew McClintock <msm-oss@mcclintock.net> Date: Fri, 9 Aug 2019 11:24:58 -0500 Subject: [PATCH 947/947] FOO Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net> Change-Id: I84879ad3c435171cd6d9c99cefcb4632a9f059f6 --- boardfarm/devices/docker_factory.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/boardfarm/devices/docker_factory.py b/boardfarm/devices/docker_factory.py index 8a1bfa30..a2c59780 100644 --- a/boardfarm/devices/docker_factory.py +++ b/boardfarm/devices/docker_factory.py @@ -48,7 +48,10 @@ def __init__(self, *args, **kwargs): self.expect(pexpect.TIMEOUT, timeout=1) self.sendline('export PS1="docker_session>"') self.expect(self.prompt) + self.sendline('echo FOO') + self.expect_exact('echo FOO') self.expect(self.prompt) + self.set_cli_size(200) # if these interfaces are getting created let's give them time to show up