Download Latest Version xcast6-0.2.1-1-freebsd-sys-6.4.diff.gz (21.3 kB)
Email in envelope

Get an email when there's a new version of XCAST over IPv6

Name Modified Size InfoDownloads / Week
Parent folder
xcast6-0.1.0-xcgroup.tar.gz 2002-02-21 208.5 kB
xcast6-0.1.0-vic-2.8ucl-1.1.3.diff.gz 2002-02-21 263.9 kB
xcast6-0.1.0-usr.sbin.tar.gz 2002-02-21 36.6 kB
xcast6-0.1.0-sbin.tar.gz 2002-02-21 11.5 kB
xcast6-0.1.0-rat-4.2.20.diff.gz 2002-02-21 22.3 kB
xcast6-0.1.0-netbsd-sys-1.5.2.diff.gz 2002-02-21 28.9 kB
xcast6-0.1.0-lib.tar.gz 2002-02-21 20.7 kB
xcast6-0.1.0-README.txt 2002-02-21 6.9 kB
Totals: 8 Items   599.3 kB 0
XCAST6/NetBSD README (0.1.0, pre-alpha version)

* Installation

1. Install NetBSD-1.5.2 to your machine.  
   See http://www.netbsd.org/Documentation/ for detailed setup instruction.
   Don't forget to install the kernel sources, since it's required
   to build a XCAST6-enabled kernel.

2. Build XCAST6-enabled kernel.
   2-1. Apply the XCAST6 kernel patch for the kernel sources.
	For example:
	  cd /usr/src/sys
	  gzip -dc /path/to/xcast6-0.1.0-netbsd-sys-1.5.2.diff.gz | patch -p2
   2-2. Configure the kernel.
	See http://www.netbsd.org/Documentation/kernel/#how_to_build_a_kernel
	for details.
	A sample configuration file is
	/usr/src/sys/arch/i386/conf/GENERIC_XCAST6.
	Don't forget to include these 2 lines in the configuration file:
	      options		XCAST6
	      pseudo-device	xcst	1
   2-3. Install the kernel and boot the machine with it.

3. Install xcast6.h and in6.h to /usr/include/netinet6.
   For example:
     cp /usr/src/sys/netinet6/{xcast6.h,in6.h} /usr/include/netinet6

4. Build and install the libxcast library.
   For example:
     tar zxvf /path/to/xcast6-0.1.0-lib.tar.gz
     cd xcast6-lib/libxcast
     make
     su root -c 'make install'

5. Copy the libxcast.h header file to /usr/include.
   For example:
     cp /path/to/xcast6-lib/libxcast/libxcast.h /usr/include

6. Build and install ping6x and traceroute6x.
   For example:
     tar zxvf /path/to/xcast6-0.1.0-usr.sbin.tar.gz
     cd xcast6-usr.sbin
     make
     su root -c 'make install'

7. Build and install the modified sysctl command.
   For example:
     tar zxvf /path/to/xcast6-0.1.0-sbin.tar.gz
     cd xcast6-sbin
     make
     su root -c 'make install'

* Setup

1. Configure your machine as a normal IPv6 host or a normal IPv6 router
   if the host should act as a router.  
   See http://www.netbsd.org/Documentation/network/ipv6/#configuration_files
   and set up /etc/rc.conf.

2. Run the following shell script.

   --------- from here --------
   #! /bin/sh

   xcstif=xcst0
   xcast6rt=ff05::10

   ifconfig $xcstif up

   linklocal=`ifconfig $xcstif | grep inet6 | grep 'inet6 fe80' | head -1 |
        awk '{print $2}'`

   route add -host -inet6 $xcast6rt $linklocal
   -------- end  here --------

   You can put these commands in a file like /usr/local/etc/xcast6-setup.sh
   and let it run from /etc/rc.local.

   If you are going to use XCAST6 on site-local addresses, you must run
   the following command:
     /sbin/sysctl -w net.inet6.route6.xcast6_allowsitelocal=1
   /etc/sysctl.conf can be used also.


* Test Programs
  - /usr/sbin/ping6x, /usr/sbin/traceroute6x

    Command syntax:
      /usr/sbin/ping6x host0,host1,host2,...,hostN [N-th]
    or
      /usr/sbin/traceroute6x host0,host1,host2,...,hostN [N-th]

    The destinations are specified as host0,host1,host2,...,hostN.
    Only the <N-th> host replies by ICMPv6, while other hosts never reply
    for packets sent by ping6x or traceroute6x.  You can use these command
    to diagnose the reachability to the <N-th> host in the destinations
    and to list up the route to the <N-th> host.


* Application Programs

  - vic
    1. Download and extract vic-2.8ucl-1.1.3.tar.gz.
       You can download it from:
	http://www-mice.cs.ucl.ac.uk/multimedia/software/vic/

    2. Apply the XCAST6 patch for vic.
       For example:
	 cd vic-2.8ucl-1.1.3
	 gzip -dc /path/to/xcast6-0.1.0-vic-2.8ucl-1.1.3.diff.gz | patch -p1

    3. Configure & make & install.
       For example:
	 cd common.new; sh configure --enable-ipv6; make; cd ..
	 cd tcl-8.0/unix; sh configure; make; cd ../..
	 cd tk-8.0/unix; sh configure; make; cd ../..
	 cd vic
	 env LIBS='-Wl,-rpath,/usr/X11R6/lib' sh configure --enable-ipv6
	 make; su root -c 'make install'

       Note:
         You must use "common.new" directory instead of "common" directory
	 for XCAST6-patched vic.  "common" directory is not needed for XCAST6.

    4. Run vic.
       For example:
         vic -n xcast6 host1,host2,host3/11000

       You can specify the destinations with ',' (comma) separated 
       IPv6 addresses and hostnames instead of the group multicast address.

       Note for MDO6 users:
       As you can see, command-line options are changed from vic/MDO6.
       You should explicitly specify the network type "xcast6" with -n 
       option.

  - rat
    1. Download and extract rat-4.2.20.tar.gz.
       You can download it from:
	http://www-mice.cs.ucl.ac.uk/multimedia/software/rat/

    2. Apply the XCAST6 patch for rat.
       For example:
	 cd rat-4.2.20
	 gzip -dc /path/to/xcast6-0.1.0-rat-4.2.20.diff.gz | patch -p1

    3. Configure & make & install.
       For example:
	 cd common; sh configure --enable-ipv6; make; cd ..
	 cd tcl-8.0/unix; sh configure; make; cd ../..
	 cd tk-8.0/unix; sh configure; make; cd ../..
	 cd rat
	 env LIBS='-Wl,-rpath,/usr/X11R6/lib' sh configure --enable-ipv6
	 make; su root -c 'make install'

    4. Run rat.
       For example:
         rat host1,host2,host3/11111

       You can specify the destinations with ',' (comma) separated 
       IPv6 addresses and hostnames instead of the group multicast address.

       Notes:
       - NetBSD audio support is not perfect yet.  Volume setting
	 might not work.
	 You can use the "mixerctl" program to set play / record volumes
	 as follows:
		mixerctl -w inputs.mic.preamp=on	# mic. preamp
		mixerctl -w inputs.dac=200	# play (PCM) volume
		mixerctl -w outputs.master=200	# master play volume
		mixerctl -w inputs.mic=100	# record volume

  - xcgroup
    xcgroup is not an XCAST6-enabled software but a support software
    that provides control plane of XCAST6 datagram delivery system.
    See README.XCAST6 in xcast6-0.1.0-xcgroup.tar.gz for installation and
    usage.

* Advanced Features

  - X2U
    You can use the X2U feature described in
    draft-ooms-xcast-basic-spec-02.txt by setting 1 to the sysctl variable
    net.inet6.route6.xcast6_x2ulevel:

      sysctl -w net.inet6.route6.xcast6_x2ulevel=1

    Premature X2U is not supported in this release.
    See draft-ooms-xcast-basic-spec-02.txt for more details.

  - libxcast_raw (raw socket version of libxcast, not fully working)
    That's for the operating systems that don't support XCAST6 natively.
    This feature needs X2U tunneling on the way of the delivery path;
    you need at least one XCAST6/NetBSD host on the way.
    You can build libxcast_raw by defining a LIBXCAST_RAW preprocessor macro.
    You need root privileges to use the library.  Windows XP users can
    build it with Microsoft Visual C++ 6.0 and the IPv6 Technical Preview
    package by using libxcast_raw.dsw for the workspace file (and
    libxcast_raw.dsp for the project file).  We know several functions of
    libxcast_raw run on Windows XP.  libxcast_raw for *BSD may work, but
    is not tested.

    - Caveats
      - XcastEnableMember() and XcastDisableMember() is not correctly
	implemented.  Do not use now or fix them by yourself :-)
Source: xcast6-0.1.0-README.txt, updated 2002-02-21