bsc: Allow to disable sending ping/pong to the MSC

Some switches do not like to receive the IPA PING/PONG messages.
Allow to disable the handling with "no timeout-ping" and create
test cases that verify the switching between the modes. Change the
code to trat <= 0 as an invalid timeout.

Fixes: SYS#713
diff --git a/openbsc/tests/vty_test_runner.py b/openbsc/tests/vty_test_runner.py
index ece9ac5..10e1ae4 100644
--- a/openbsc/tests/vty_test_runner.py
+++ b/openbsc/tests/vty_test_runner.py
@@ -419,6 +419,48 @@
         res = self.vty.command("show network")
         self.assert_(res.startswith('BSC is on Country Code') >= 0)
 
+    def testPingPongConfiguration(self):
+        self.vty.enable()
+        self.vty.verify("configure terminal", [''])
+        self.vty.verify("network", [''])
+        self.vty.verify("msc 0", [''])
+
+        self.vty.verify("timeout-ping 12", [''])
+        self.vty.verify("timeout-pong 14", [''])
+        res = self.vty.command("show running-config")
+        self.assert_(res.find(" timeout-ping 12") > 0)
+        self.assert_(res.find(" timeout-pong 14") > 0)
+        self.assert_(res.find(" no timeout-ping advanced") > 0)
+
+        self.vty.verify("timeout-ping advanced", [''])
+        res = self.vty.command("show running-config")
+        self.assert_(res.find(" timeout-ping 12") > 0)
+        self.assert_(res.find(" timeout-pong 14") > 0)
+        self.assert_(res.find(" timeout-ping advanced") > 0)
+
+        self.vty.verify("no timeout-ping advanced", [''])
+        res = self.vty.command("show running-config")
+        self.assert_(res.find(" timeout-ping 12") > 0)
+        self.assert_(res.find(" timeout-pong 14") > 0)
+        self.assert_(res.find(" no timeout-ping advanced") > 0)
+
+        self.vty.verify("no timeout-ping", [''])
+        res = self.vty.command("show running-config")
+        self.assertEquals(res.find(" timeout-ping 12"), -1)
+        self.assertEquals(res.find(" timeout-pong 14"), -1)
+        self.assertEquals(res.find(" no timeout-ping advanced"), -1)
+        self.assert_(res.find(" no timeout-ping") > 0)
+
+        self.vty.verify("timeout-ping advanced", ['%ping handling is disabled. Enable it first.'])
+
+        # And back to enabling it
+        self.vty.verify("timeout-ping 12", [''])
+        self.vty.verify("timeout-pong 14", [''])
+        res = self.vty.command("show running-config")
+        self.assert_(res.find(" timeout-ping 12") > 0)
+        self.assert_(res.find(" timeout-pong 14") > 0)
+        self.assert_(res.find(" timeout-ping advanced") > 0)
+
 class TestVTYNAT(TestVTYGenericBSC):
 
     def vty_command(self):