Changelog for vnumlparser 1.8.9 (22/05/2009)
--------------------------------------------

Changes since 1.8.7.1:

  + fixing/enhancing automac: convertion to heximal values and splitting
    <automac> offset into two bytes (so offset can be in the range 0-65535).
  + default vm mem 32MB -> 64MB
  + kernel check on MCONSOLE_EXEC removed in &check_mconsole_exec_capabilities
    (no longer needed in kernel >2.6.28.10-1m)

Changes since 1.8.7:

  + fixing bug copying scenario file at build time when current directory
    is not the same place where the scenario file is (introduced in 1.8.7)

Changes since 1.8.5

  + minor fix to avoid dirty 'which' command output in Ubuntu
  + bugfix in check_doc function (filetree checings were not actually done)
  + copying XML scenario file at scenario build time (-t) to working directory
    (~/.vnuml/simulations/<sim_name>/<scenario_file>.xml).

Changes since 1.8.3

  + <if> can define loopback interfaces in virtual machines, using
    net="lo". See for https://lists.dit.upm.es/pipermail/vnuml-devel/2008-August/000515.html details.
  + check_semantics improved: check <simulation_names>, <vm> name and <net> name 
    to avoid whitespaces
  + bugfix: wrong MAC generation for eth0 management interfaces (it could
    cause MAC duplication)
  + status file (/root/.vnuml/simulations/<simulacion>/vms/<vm>/status)
    marking the "booting" or "running" of the virtual machine (through
    the change_vm_status function). If the file doesn't exist the virtual 
    machine is neither running nor booting (typically, after a -d operation). 
    This is aimed at tools that invoke VNUML and needs to monitor the status of 
    virtual machines (such as the EDIV controller).
  + using "-o 'StrictHostKeyChecking no'" in scp/ssh in execution mode "net", to
    avoid having to typing "yes" during the host key checking in host-vm
    interactions (thanks to M. Ferrer and Fco. Jose Martin)
  + improved vn contrib script (scan for availables simulations
    and vms when in the case of failure)
  + improvements in documentation under doc/html/en/html

Changes since 1.8.1:

  + added vn console management script to contrib/vn_script/
  + documentation sync with wiki (although there are no mayor changes)
  + introduced --with-contrib in order to install contrib/ under
    share directory (default is 'no')
  + fix regexp in get_vm_to_use (DataHandler.pm.in)
    (see https://lists.dit.upm.es/pipermail/vnuml-devel/2007-December/000498.html)
  + fix the -V version message (no accents)
  + vm boot scripting procedure simplified, replacing the 'line' command for bash 
    build-in mechanisms (thanks to Miguel Ferrer) 
  + changed -q option of mkisofs command by -quiet so that it can run 
    on all distributions (thanks to Miguel Ferrer)
  + the pts device used by each virtual machine is stored in <simdir>/vms/run/pts
    in the console "pts" and "xterm" modes.
  + improvements in inc_cter, dec_cter and get_cter (instead of storing a number,
    now a list of simualation identifiers is stored in the .cter file) in order
    to fix some problems in concurrent simulation cases
  + bugfix in vnet_ifs function: virtual bridges released even when they are not 
    empty (i.e., used by other scenarios) 
    (see https://lists.dit.upm.es/pipermail/vnuml-users/2007-August/000659.html)
  + improvements in the mconsole execution mode, with explicit redirection of standard
    input, output and error when executing the encapusaling script (otherwise, the
    execution of some commands, like /etc/init.d/apache2, may fail). 
  + bugfix: <xterm> processing when the title flag was empty
  + bugfix: hostfs mounting problem (see https://lists.dit.upm.es/pipermail/vnuml-users/2007-July/000640.html)
  + bugfix: vm IPs wrong generation during command sequence execution in exec_mode="net"
  + bugfix: not working when using only <filetree> tags during command sequence execution in exec_mode="net"
  + improvements in the xterm support (see https://lists.dit.upm.es/pipermail/vnuml-users/2007-July/000651.html)

Changes since 1.7.3:

  + changes in DTD:
    - added trace attribute in <kernel> (see https://lists.dit.upm.es/pipermail/vnuml-devel/2006-July/000428.html)
    - added mode attribute in <exec> (see https://lists.dit.upm.es/pipermail/vnuml-devel/2006-October/000451.html)
    - added mode attribute in <filetree>
    - added exec_mode attribute in <vm_defaults>
    - added autoconfigure attribute to <mgmt_net>. When used (for example,
      autoconfigure="tap0") the parser tries to manage the creation (and
      destruction) of the socket and associated interface (as the commands
      specified at http://jungla.dit.upm.es/~vnuml/doc/current/tutorial/index.html#executing_commands 
      were being introduced manually). Only works when the parser is run
      by root, ignored otherwise.
    - <filetree> attribute renaming: when -> seq (coherence with <exec>)
  + /mnt/hostfs is automaticly mounted in virtual machines. This directory
    maps to ~/.vnuml/simulations/<simname>/vms/<vmname>/hotsfs/.
  + mconsole execution and filetree mode, using the hostfs and 'uml_mconsole exec' to
    execute commands in the virtual machine and copy files
  + <filetree> value interpretation new semantic:
    - if the value starts with "/", it is interpreted as an absolute pathname
    - if the value doesn't start with "/", it is interpreted as a relative pathname:
      * to <basedir>, if <basedir> is defined for that vm
      * to the directory where the .xml lives, if <basedir> is not defined for that vm
  + as side effect of the previous, <basedir> has no a default value (formerly
    it was "/")
  + seq="always" has no longer a special meaning in <filetree>    
  + <filetree> checking for user/mode homogenous in the same seq has been 
    integrated with <exec> (CheckSemantics.pm check_doc item 21); get_mode_in_seq
    and get_user_in_seq improved considering now <filetree>
  + added "find" to @binaries_mandatory (it is required by the current
    implementation of the new-added get_subdirectories function)
  + fixed bug in effective <basedir> calculation in CheckSemantincs.pm
  + -S switch remove: ps scan mode is obsolete so it has been removed
  + changes in the examples, in order to align with the current version of tutorial:
    - tutorial_limited_user.xml (added <exec>, exec_mode="mconsole")
    - tutorial_limited_user2.xml (added <exec>, exec_mode="mconsole")
    - tutorial_limited_user_capture.xml (added <exec>, exec_mode="mconsole")
    - tutorial_limited_user_ipv6.xml (added <exec>, exec_mode="mconsole")
    - tutorial_user1.xml (added <exec>, exec_mode="mconsole")
    - tutorial_user2.xml (explicit exec_mode="net")
    - tutorial_root1.xml (added <exec>, exec_mode="mconsole")
    - tutorial_root1.xml (explicit exec_mode="net")
    - tutorial_root1.xml (added <exec>, exec_mode="mconsole")
   + added tutorial_user2_autonconfigure.xml (variant of tutorial_user2.xml)
   + "old fashion" documentation replaced by wiki-style one

Changes since 1.7.2:

  + Bugfix (Esteban patch) in <net> capture functionalities when uml_switch
    was connected to host.
  + Minor bugfix in DTD: <physicalif> is EMPTY element, not (#PCDATA)
  + xslt directory with XSLT Stylesheet to convert from old VNUML releases. 
    By the moment, a 1.6 -> 1.7 stylesheet is provided. These stylesheet
    are installed in the xml/ directory (the same place where vnuml.dtd is
    placed)
  + Improvements in documentation considering Ingmar Andersson comments
    (https://lists.dit.upm.es/pipermail/vnuml-users/2006-November/000552.html):
    - reference/index.html#filesystem
    - install/index.html#introduction
    - user/index.html.in#build_topology
  + Other improvements in documentation

Changes since 1.7.1:

  + Bugfix in <route>. Destinations with /32 (routes to indiviual hosts, in
    fact) has to use -host instead of -net or there route command is wrong.
    This has been fixed.
  + Improvements in <exec type="verbatim">. Multiline commands are allowed
    inside just one <exec type="verbatim"> (formerly, several <exec> tag
    were required), improving clearness.
  + Explicit modules pathname statement at the beginning of vnumlpaser.pl
    code (to avoid "mixing" modules when two installations of VNUML -the
    one from .deb and the one from source .tar.gz- live together in the
    same system)
  + Some fixes in documentation auto-generated patch (/var/local/run/vnuml,
    /var/run/vnuml)
  + Some changes to configure.ac and Makefile.in to improve the coupling
    with the .deb generation tools (and don't hurting the .tar.gz
    source installation). Added --with-perl_modules_installroot configure
    option.

Changes since 1.7.0-1:

  + New release numbers schema: source tgz will be release unsing three
    number (for example '1.7.1'). The fourth number (after hyphen '-') is
    not used in source tgz: now is in the scope of the packaging system.
  + Fix in version checking. Now this checking is performed before DTD 
    validation with simple text pattern-matching, after discovering some 
    problems with the old procedure after DTD validation 
    (see details in https://lists.dit.upm.es/pipermail/vnuml-users/2006-August/000482.html).
    Functions set_version and get_version in DataHandler.pm removed (now they are
    useless)
  + Improved add_additional_xterm_binaries in BinariesData.pm. Formerly, the
    method "overestimates" the necesity of xterm in particular cases that
    actually don't need it.
  + Removed 'brctl' from mandatory binaries list in BinariesData.pm, beacuse
    of it is only needed when virtal bridge based nets are being used. The
    add_additional_bridge_binaries and check_bridge_binaries new methods
    deal with this. Modified configure.ac to make brctl not mandatory.
  + Added method add_aditional_vlan_binaries, add_additional_uml_switch_binaries
    and add_additional_screen_binaries (analogous to add_additional_xterm_binaries)
    and improve the binaries detections accuracy
  + Command line flag switch to disable VNUMLization: -Z (see also
    https://lists.dit.upm.es/pipermail/vnuml-devel/2006-July/000432.html)
  + Some method moved:
    - check_tag_attribute: vnumlparser.pl -> DataHandler.pm
    - merge_{console|route|user|filetree}: vnumlparser.pl -> DataHandler.pm
    - {console|route|user|filetree}_in_vm: vnumlparser.pl -> DataHandler.pm
  + Documentation revised:
    - install/index.html: added the APT-based installation prodecure for
      .deb based distribution
    - all: consider that the installation root can be '/usr/share' when
      packages are used, instead of '/usr/share' (the same for
      /var/local -> /var)

Changes since 1.6.2-1:

  + Changes in DTD:
    - new <vm_defaults> global tag
    - <default_kernel> and <default_filesystem> becomes in <kernel> and
      <filesystem> within <vm_defaults>
    - <xterm> is now witin <vm_defatuls> and <vm> (previously is was within <boot>, with
      conditional semantics depending of <con0> value)
    - capture_file, capture_expression and capture_dev as optional attributes
      in <net>. Therefore, the old <capture> tag has been removed.
    - scope attribute in <net> (NOT ACTUALLY IMPLEMENTED YET)
    - each <vm> can specify it's own <shell> and <basedir>
    - obsolete <start> and <stop> definitively removed
    - <con0> removed, improved by <console> tag
    - <boot> removed (given that <con0> disappear and <xterm> has moved to
      global, it becomes useless)
    - type="copy" no longer supported in <filesystem>
    - mode attribute in <net> is mandatory (#REQUIRED in the DTD)
    - type attribute in <route> values renamed: inet->ipv4 and inet->ipv6
      in order to homogeneize (RFE #1240213)
    - <ipv4> mask attribute redesigned: in addition to CDIR, slashed values (for
      example mask="/24") are allowed. A slashed mask can be specified
      in the <ipv4> value (for example <ipv4>10.1.1.1/24</ipv4>) but, in this
      case, mask attribute is forbidden (for example 
      <ipv4 mask="255.255.0.255">10.1.1.1/24</ipv4> if forbbiden) (RFE #1240213)
    - <ipv6> mask attribute added: slashed values (for
      example mask="/64") are allowed. A slashed mask can be specified
      in the <ipv6> value (for example <ipv6>3ffe:ffff::3/64</ipv6>) but, in this
      case, mask attribute is forbidden (for example 
      <ipv4 mask="/32">3ffe:ffff::3/64</ipv4> if forbbiden) (RFE #1240213)
    - attribute 'user' added to <exec>. As a consecuence, sequence execution 
      script are now stored in /tmp (previous versions used /root). New
      function: get_user_in_seq.
    - attribute 'user' added to <filetree>
    - added new attributes to <kernel> tags: devfs, root and modules
  + VNUMLization: the virtual machine is booted one time before the actual
    booting, applying the vnumlize.sh script to addapt the filesystem. 
    The vnumlize.sh is included in lib/ and its installation integrated
    with the configure + make + make install standard procedure (RFE #1153297)
  + contrib/uml_router Esteban Martin's contribution added to the VNUML 
    package (RFE #1165189)
  + Deprecated modes -s, -p and -r no longer supported
  + New -4 and -6 to impose only IPv4 or only IPv6 processing, respectively
   (RFE #1240212)     
  + A random string is appended to files generated to -x, in order to avoid
    collision among several usersTemporal script files generated per-vm during 
    -x mode are removed from the host after installing in virtual machine      
    (fix bug #1444746)
  + Fix bug in '-w 0' (bug #1474109) and improved the format checkings in
    the boot timeout value
  + Improved warning messages generated by VNUML (adding the 'VNUML' token
    as prefix in order to distingish them from warning from other sources)
  + Improvementes in -o switch to make output capabilities more flexible (RFE #1255006)
  + Name change in host interface pattern: "eth" -> "e" (removing the "ad hoc" patch in
    make and solving definitely the "ethX" issue for SuSE distribution) (fix bug #1180207)
  + Sucessfull virtual machine booting message in verbose mode (this minor 
    modification is needed for integration with vnumlgui)
  + added a few minor checks to avoid errors when shutting down (related to kill and lsof)
  + replaced fuser with lsof because fuser is not working
  + appended standard binary paths to PATH at parser start
  + added tutorial_limited_user_ipv6.xml example
  + gw attribute in <physicalif> is now truly #IMPLIED (DTD in pass versions
    uses #IMPLIED, but CheckSemantics doesn's allow empty gw). The behaviour
    now is: if gw is provided, it is used for configuring the default gateway,
    if not, no default gateway is used (as side effect, this allow to use
    several <physicalif> without conflicting gw).
  + fixes in vnet_ifs function
  + fixed the following minor bug: if "Retry" was used after unsuccessful UML boot 
    attempt, then additional '#' was appended to $curr_uml. Then when trying to 
    kill that UML, it was not found (because there were more '#' symbols after the 
    name).  
  + other minor bugfixes
  + Changes in documentation (only significant ones, but no typos, etc.):
     - install/index.html: included a 1.4. Contrib software
     - reference/index.html: revision for 1.7 release
     - user/index.html: revision for 1.7 release (added VNUMLization section,
       replacing the "Temporal Command Files" section, that has been removed);
       new method for installing software (chroot), thanks to Vicent Cridlig
     - tutorial/index.html: revision for 1.7 release; added a "Configuring NAT" 
       section (contribution by Carlos Santmartn)

Changes since 1.6.1-1:

  + two networks can not use the same external physical interface (sufixed
    by the vlan number, in the case it would be used): now this is 
    explitely checked (thanks to Tim Keupen, who discovered the issue)
    See details at: https://lists.dit.upm.es/pipermail/vnuml-users/2005-October/000218.html
  + xterm= UML kernel switch modification in order to allow change the
    name in the xterm window ('gnome-terminal,-t node1,-x', for example)
  + '-o /dev/stdout' included as possiblity for -o switch. Now '-o /dev/stdout'
    is the default (previous version uses '-o /dev/null' as default)
  + Bugfix: program aborts when <vm_mgmt> was omitted, due to undefined variable 
    $vmmgmt_hostmap_list (CheckSemantics.pm). Now the variable is checked with defined()
  + Required modules list in install/index.html has been rewritten, based in
    the output of the ./configure script
  + Included entry in the intall/index.html throubleshooting section,
    recommending log out and log in again to avoid user permission problems
    (inspired in https://lists.dit.upm.es/pipermail/vnuml-devel/2005-July/000227.html)
  + Modified the xauth command to use -s rather than -p
  + Only check for xauth executable if xterm is used
  + Added aditional checkings:
    - The ~/.vnuml directory is checked to make sure it is readable
	- The "direct" type filesystem is checked for write privileges (should
      eliminate the need for the warning in the doc--the user will be informed
      by vnumlparser.pl if the privileges are not correct)
    - When permissions errors are found in check_doc, it displays the
      effective uid username, so the user knows what user the vnumlparser.pl
      is talking about.
    - Added more detail about some errors.  The error will not only display
      the name of the file/directory/etc. that has a permission problem, but
      where it can be found in the XML description file (e.g., ssh_key).
    - The xterm binaries ('xterm' itself or other, if <xterm> tag is being used)
      are checked before starting password operation (thanks to the add_additional_xterm_binaries
      and check_binaries_xterm new methods in the BinariesData class), when used
  + Fixed some bugs in checking permissions on vnuml_dir and tmp_dir
  + Documentation:
    - clarification note in Tutorial 3.1 section, regarding user bauer should start
      a new shell after a group membership change
    - some comments added to Reference 4.4.2, regarding new functionality for
      xterm titles.

Changes since 1.6.0-1:

  + Fixed some issues in debug mode. Commands that should not be executed 
    in this mode were being executed. This has been fixed.
  + Added comment to section 4.1 in order to clarify a permission issue
    on the filesystem file when <filesystem type="direct"> is used 
    (clossing BUG #1283075)

Changes since 1.5.0-1:

- Enhanced non-root features, including privilege separation changes. New -u command line switch:
  + If the effective uid is not root, then nothing is changed from old behavior
  + If the effective uid is root, then the user for UML and uml_switch processes will be vnuml,
    if default configuration is used.  Otherwise the default can be changed using the 
    --with-vnuml_user option to configure.  Also, the -u option can be used on the command 
    line to specify a user.
  + As part of the check_doc subroutine, temporarily changed the effective uid ($>) to the 
    effective uid that was established in the previous step to make sure that the respective 
    user has sufficient access when it runs the uml_switch and linux process.
  + The ~root/.vnuml/ directory and all files and directories below it are owned by the 
    non-privileged user that owns the processes.
- Virtual machine management re-designed. The <vm_mgmt> tag has been introduced to specify
  the management mode through the "type" atrribute: private (former procedure: using virtual
  bridged point-to-point UML-host networks, for root user only), net or none. The net type
  uses a uml_switched network, specified throught hte <mgmt_net> tag. The <ip_offset> tag
  has been removed: now the address range for management is specified using the "network",
  "mask" and "offset" attributes in <vm_mgmt>. The <host_mapping> tag, formerly global, is
  now child of <vm_mgmt>. See User Manual and Reference documents for details.    
- Booting stability has been improved using UML sequential booting. UMLs are booted in sequence,
  checking the starting of INIT process in each virtual machine before continuing with next 
  one. The semantics for -w switch has been changed: now it specifies a booting timeout 
  (default is 30 seconds). If the timeout is reached, the user is prompted in order to abort, 
  continue or retry.
- Working directory re-designed (now ~/.vnuml is used in a per-user basic). Please, see
  User Manual document for a detailed description.  
- Signal handling. The parser tries to clean up before exiting when it receives a termination 
  signal (INT and TERM)
- Changes in -d mode (not forced): instead of using SSH to halt machines, now a CAD 
  (control-alt-delete) signal is sent through uml_mconsole. The /etc/inittab of each virtual 
  machine is changed accordly to get this behaviour at pre-boot time.
- UML pids storing. This pid list is used to wait virtual machine extinction during -d modde 
  and/or to kill the UML properly in -P mode (solving BUG #1103806)  
- Installer improvements:
  + New configure options:
     --with-tun_group
     --with-vnuml_group
     --with-vnuml_user
  + Changed default values in configure options
     --with-libxml=yes -> 'no'
     --with-expat=yes  -> 'no'
     --with-linux -> '2_6_2_12'
     --with-rootfs -> '0_3_2'
     --with-build_modules -> 'no'
  + Added root_fs_tutorial-0.3.2 and linux-2.6.12.2-1m to getlib.conf  
- Added initrd support. New "initrd" attribute in the <kernel> and <default_kernel> tags 
  will go on the UML command line for a particular UML kernel (RFE #1249031).
- User management in virtual machines through <user> tag (RFE #1205606)
- Multiple <ssh_key> are allowed, globaly for root and in a per-user basic (RFE #1205606)
- New global tag <ssh_version> (replaces "version" attribute in <ssh_key>)
- Added a check and timeout to make sure that the uml_switch processes start correctly.  If any 
  switch does not start correctly with the timeout (currently 5 seconds) then vnumlparser.pl 
  cleans up and exits. This saves some troubleshooting down the road if a network mysteriously 
  doesn't work.
- Enhancements in daemonization procedure
- Use fuser to find pids of uml_switch processes for extinction, rather than
  using the ps/grep/awk combination.
- Using ISO images for auxiliar filesystem (opt_fs). Switch -m no longer supporter
- Using /mnt/vnuml for auxiliry filesystem mounting, instead of /opt (closer to FHS)
- Tilde (~) expansion allowed in XML and command line
- Relative paths allowed in command line for working and temp directories
- Bugfixes in install-doc Makefile target (BUG #1173956)
- Fixed hyphened command sequence bug (BUG #1168246)
- Improved Installation manual documentation (BUG #1173967)
- FAQ included in documentation
- Old 1.5.0 vnumlparser.pl code re-written: new design using OOP. Global variables, 
  to the minium (using a 'main' subroutine). The old code in vnumlparser.pl has 
  been restructured in several modules, as follows (new functions, added since 1.5.0, are
  not detailed here):
  + Arguments.pm: (class)   
  + BinariesData.pm (class):
    * check_binaries
  + CheckSemantics.pm:
    * check_semantics (as check_doc)   
  +`DataHandler.pm (class):
    * make_vm_hash (as get_vm_to_use)
    * make_vm_ordered (as get_vm_ordered)
    * netconfig  
  + DocumentChecks.pm:
    * vm_has_tag
    * mng_if_value
    * at_least_one_vm_without_mng_if
    * at_least_one_vm_with_mng_if   
  + Execution.pm (class):
    * execute
    * execute_linux
    * daemonize
    * pulse_a_key
    * smartdie
  + FileChecks.pm:
    * valid_absolute_directory_name   
  + IPChecks.pm:
    * valid_ipv4
    * valid_ipv4_with_mask
    * valid_mask
    * valid_ipv6
    * valid_ipv6_with_mask   
  + NetChecks.pm:
    * tundevice_needed
    * check_net_host_conn
  + TextManipulation.pm:
    * dec2bin
    * bin2dec
    * clean_line
    * text_tag
    * chompslash
    * remove_heading_slash

Changes since version 1.4.0-1:

 - changes in text_tag function in order to fix <ip_offset> bug (BUG #1164627)
 - mconsole checking before using uml_mconsole for halting purposes (BUG #1164630)
 - new attribute mode in <net> tag, with part of the meaning of the former
   type: (virtual_bridge|uml_switch). Attribute type remains for (lan|ppp) distintion
 - <exec> and -x mode implemented (RFE #1086996)
 - <net type="ppp"> implemented (RFE #1104742)
 - <bw> implemented (RFE #1104742)
 - <xterm> implemented (RFE #1096533)
 - new ./configure options: --with-linux-sv
 - getlib.conf bugfixes
 - old commented code cleanup
 - documentation errata correction
 - Code changes not affecting functionality:
       + New functions:
          get_net
          check_deprecated
          check_net_by_mode
       + Renamed functions:
          mode_sp -> mode_x (more appropiated name)
          check_net -> check_net_by_type (more appropiated name)          
       + Removed functions:
          check_net_sw (replaced with get_net)
          check_net_br (replaced with get_net)

Changes since version 1.3.2:

 - new packaging:
	+ we can now install vnuml with ./configure, make, make install
 	+ file installation layout now conforms to Linux Standard Base(LSB)1.3,
          and FHS 2.3 which LSB follows.
	+ both UML kernel and a filesystem image (Debian) can be now downloaded
	  and installed in right places during the installation process:
	  "--with-linux=2_4_22 --with-rootfs=0_1". To resize the filesystem to
	  2Gb during the installtion, we can use: --with-rootfs-size=2000.
 - <net type="uml_swith"> implementing uml_switch based virtual networks,
   that can be used in combination with the usual <net> bridge based
   networks. Attributes "external" and "vlan" need to be evaluated in
   <net_sw> context and, therefore, are not implemented in this version. 
   uml_switch socket are created in $vnuml_dir in order to allow corrurent 
   simulations with uml_switched networks
 - hostfs implemented (RFE #1024444)
 - <default_kernel> tag (RFE #1021714)
 - <default_filesystem> tag (RFE #1021714)
 - <basedir> implemented (RFE #1048877), $basedir global variable
 - Implemented virtual machine hostname patching in /etc/hosts (RFE #1021745)
 - tun_device checkings implemented (RFE #1021757)
 - added <physicalif> treatment for IPv6 network family (RFE #1021749)
 - prefix attribute in <ip_offset> implemented (RFE #1053412), $ip_offset_prefix 
   global variable
 - "order" atribute in <vm>, for *inteligent* ssh comunications
   (throught mng_if or throught a virtual interface, depending on
   <mng_if>)
 - uml_switch sockets use uses file counter (as for external
   phycical interface use)
 - file counters uses extension .cter
 - "version" attribute in <ssh_key> to specify SSH protocol version (1 or 2)
 - New pseudomode implemented: -H
 - <mng_if> tag, to disable management interface in virtual machines
 - Makefile.in adapted to patch vnumlparser.pl in SuSE installation: eth0
   -> ethX (thanks to Javier Bermejo)
 - Bug fixed #1060184
 - Bug fixed #1059751 (new function added: clean_line)
 - sleep(1s) before network bridge set up (due to fails in SuSE 8.2)
 - fixed <ipv6> processing bug (BUG #1048370)
 - hostname.x using /tmp as working directory (BUG #1025036)
 - Code changes not affecting functionality:
      + check_semantic is performed after global data capture
      + -f switch in several "rm" executions
      + removed obsolete comments (most related with old net_sw code)
      + change !eq -> ne in serveral logic condicionts
      + New functions:
         at_least_oner_vm_with_mng_if 
         check_user
         get_ip_hostname
         remove_heading_slash
         tundevice_needed
         vnet_exists_br
         vnet_exists_sw
      + Functions renamed:
         dec_if -> dec_cter
         inc_if -> inc_cter
         get_if -> get_cter
         tun_create -> configure_bridged_networks
         tun_create_switched -> configure_switched_networks
         valid_directoryname -> valid_absolute_directoryname
         valid_filename -> valid_absolute_filename
      + Functions removed:
         create_bridges (hold functionality in configure_bridge_networks)
         vnet_exists (splited in vnet_exists_br + vnet_exists_sw)
	
Changes since version 1.3.1:

 - *great* stability improvement in virtual machines booting (execute_linux function)
 - improved /etc/hosts processing when <host_mapping> enabled: each simulation information is maintained during -t and
   -d modes with no duplication; 'mv' added to binary mandatory files
 - improved -s, -p, -r modes to launch starting/stopping only in the virtual machines with <start>, <stop> or <filtree>
   tags defined
 - dupplication problem at 16th host solved get_admin_address: now the limit is 64 (thanks to Ron Young)
 - only check target UMLs alives of selected targets (-M switch) in -s, -p and -r modes
 - fixed "empty killing" in purge mode
 - cheking that only root user can runs vnumlparser.pl in no debug modes
 - switch -k is no longer implemented
 - minor bugfixes

Changes since version 1.3.0:

 - new required Perl modules: Net::IPv6Addr (may be needed Net::IPv4Addr, Math::Base85)
 - check_binaries function, to check availability of binaries needed
   for VNUML operation. Binaries path unhardwired.
 - <tun_device> tag processing (/tun/device unharwired)
 - wait time information accuracy improved
 - sleep intervals with builtin Perl function
 - improvements in check_semantics:
      + to check filenames, file existence and file executability (when required)
      + syntaxis check for <ipv4> and <route> and "ip" attribute of 
        <physicalif> addresses (implemented in function valid_ipv4 and valid_ipv4_with_mask)
      + syntaxis check for <ipv6> and <route> addresses (implemented in function valid_ipv6 and 
        valid_ipv6_with_mask)
      + syntaxis check for mask (IPv4) attribute of <ipv4> and <physicalif> (implemented in 
        function valid_mask)
 - screen configuration file for pts devices through -e optional switch in -t mode
 - purge mode (-P) 
 - check if DTD file exists
 - 'root=/dev/ubd/0' added to UML boot_line (needed in RedHat?)
 - '-o /dev/null' gives redirection of UML kernel booting output to null device
 - execution time measurement 
 - bugfixes

Changes since version 1.2.1:

 - added -S, -B and -w optional switches to -t mode
 - changed ps filter "-aux" to "axw". Removed 'cut -c 1-100'
 - UML_ready can work in two modes: old ps filter style 
   with '-S 1' and socket style with '-S 0' (by default). SKAS
   is not compatible with '-S 1'
 - blocking mode implemented
 - <kernel> tag processing
 - <boot> tag processing
 - <con0> tag processing
 - delay between UML booting with -w switch
 - fixed error managing IPv6 routes (remove -net option)

Changes since version 1.2.0:

 - english translation of source code and comments
 - obsolete debug code cleaned out
 - only two first mayor number of version number (1.2, for example)
   are checked in <version> tag
 - route -net problem fixed
 - weird mconsole directory (with name '?') fixed

Note: due to the fact that 1.2.1 is the first public release of vnumlparser.pl,
the changelog for versions previous to 1.2.0 is not included.
