add f_vty_config3(), to run N commands on a sub-node

f_vty_config2() makes it convenient to enter a specific vty node without
needing to send 'exit'/'end' explicitly. However, to pass multiple
commands on the same node, the VTY would enter and exit the node for
each call of f_vty_config2(). The new f_vty_config3() also allows
multiple commands to be run on that same node without intermediate
exiting.

Change-Id: If969ac645aa82e5a36245d974de2a251633de111
diff --git a/library/Osmocom_VTY_Functions.ttcn b/library/Osmocom_VTY_Functions.ttcn
index 042f244..a51794f 100644
--- a/library/Osmocom_VTY_Functions.ttcn
+++ b/library/Osmocom_VTY_Functions.ttcn
@@ -149,19 +149,25 @@
 	}
 
 type record of charstring rof_charstring;
-function f_vty_config2(TELNETasp_PT pt, rof_charstring config_nodes, charstring cmd)
+function f_vty_config3(TELNETasp_PT pt, rof_charstring config_nodes, rof_charstring cmds)
 {
 	/* enter config mode; enter node */
 	f_vty_enter_config(pt);
 	for (var integer i := 0; i < sizeof(config_nodes); i := i+1) {
 		f_vty_transceive(pt, config_nodes[i]);
 	}
-	/* execute command */
-	f_vty_transceive(pt, cmd);
+	/* execute commands */
+	for (var integer i := 0; i < sizeof(cmds); i := i+1) {
+		f_vty_transceive(pt, cmds[i]);
+	}
 	/* leave config mode */
 	f_vty_transceive(pt, "end");
 }
 
+function f_vty_config2(TELNETasp_PT pt, rof_charstring config_nodes, charstring cmd)
+{
+	f_vty_config3(pt, config_nodes, { cmd });
+}
 
 function f_vty_config(TELNETasp_PT pt, charstring config_node, charstring cmd)
 {