Wednesday, February 15, 2012

Patch for TAHI's v6eval on FreeBSD after the switch to utmpx

After FreeBSD made the switch to utmpx, which you can read about here:

Certain programs, like the TAHI organizations v6eval package will fail to compile.   This means the recent 9.0-RELEASE of FreeBSD will no longer work out of the box.  This really only required a minor change to get it working.  I've published a patch here.



EDIT: ed@ kindly worked up a functional patch that works with utmpx's binary format, this might explain why sometimes your child processes are left hanging after a run:

Thanks Ed!

Friday, February 10, 2012

Linux patches for TAHI v6eval 3.3.2

In my previous, ancient post running-tahi-v6eval-suite-on-linux I put out some information for posterity on converting v6eval to run on Linux systems.   Most Linux systems have moved on since three years ago and so has the v6eval suite.

I've kept up with porting the suite @$work to do automatic, unattended evaluation and reporting of our product, but I've neglected to keep it nice and clean for the rest of world.

Seeing that quite a few searches end up on that old post, I've cleaned it up and present a new patch for use against TAHI v6eval-3.3.2 .   You can download the patch HERE.

A few points about the patch and the v6eval suite:

  • To apply, extract the v6eval-3.3.2 package somewhere cd to v6eval-3.3.2 and run patch -p1 < (path to patch filel)
  • v6eval is not 64-bit clean, although it compiles fine, pktbuf will dump core.  I have not investigated or fixed this yet.   The TAHI maintainers are aware that it's not 64-bit capable.    Try to compile only in a 32bit environment.  In addition, I have not tested with -m32 compiles, if they work, let me know.
  • This compiles on a fairly recent Gentoo and a recent version of basically Centos/Redhat.(gcc 4.4.5).
  • Read the INSTALL.linux file for hints
  • Since the patch creates new files, some of these files may need permissions fixes, mainly and lorder need execute permissions.
  • Use to build, or incorporate the environment variables.
  • Getting a valid pmake is the hardest part, however Gentoo made it easy:
*  sys-devel/pmake
      Latest version available:
      Latest version installed:
      Size of files: 289 kB
      Description:   BSD build tool to create programs in parallel. Debian's version of NetBSD's make
      License:       BSD
  • The patch tries to do the minimum against the distributed code to get it to work with one exception.
  • The patch contains my custom pcap filter enhancement for the tn.def file:
Normally the engine only supports filtering for just ipv6 packets with a single line in the tn.def file:

filter ipv6

Since the automation harness at work has a busy network, I've modified the filter expression to be capable of any valid bpf filter, which means you need use similar syntax to tcpdump, so
filter ipv6
filter ip6

I use something similar to the following example to restrict tests to only the NUT, using the NUT's mac address:

filter ether host aa:bb:cc:dd:ee:ff and ip6