Simple Quick Install Guide

This install guide is simply a quick helper to let people start testing the new
version.  It will be replaced soon with more thourough documentation.

Install
---------------

This version of the linux-igd is written in C as opposed to previous version 
that were written in C++.  This was done at the requests of many embedded 
developers, as well as some of our developers.  The upnp sdk we now use
from Intel is libupnp-1.2.1, and is written in C as well.  Everything is a 
little more uniform now, and should create a smaller, leaner, faster device.

Step 1 -- Download and install libupnp-1.2.1 source from 
http://www.sourceforge.net/projects/upnp .  Please install with source 
only as we haven't tested against any precompiled versions.  Also, as 
the "make install" doesn't quite work as expected, please follow these 
instructions to install it properly.

1. tar -xvzf libupnp-1.2.1.tar.gz
2. cd libupnp-1.2.1
3. make
4. make install
5. cp libupnp-1.2.1/ixml/inc/* /usr/include/upnp
6. cp libupnp-1.2.1/ixml/bin/* /usr/lib
7. cp libupnp-1.2.1/threadutil/inc/* /usr/include/upnp
8. cp libupnp-1.2.1/threadutil/bin/* /usr/lib

This process should install libupnp-1.2.1 to our liking (maybe not 
someone else's ;-)

Step 2 -- Obtain the linux-igd software (if for some reason you're reading 
this outside the package you should have already gotten, 
http://linux-igd.sourceforge.net)

1. tar -xvzf linuxigd-1.0.tgz    (or whatever the version you have is, or CVS)
2. make 
3. make install						(if CVS, remove etc/CVS directory, then do)

This should be all that is needed to install linuxigd in /usr/sbin/ 
(as upnpd - the executable daemon name).

System Preparation before starting 
---------------------------------------

1. In order for device discovery to function properly, you must add a 
multicast route to the internal interface like so:

route add -net 239.0.0.0 netmask 255.0.0.0 eth0      (or whatever your internal
																		interface name is - here
																		eth0)

-- Also, if you'd like to see debug information, and please do, as it helps us 
resolve your conflicts, perform the following steps:

A. Add the following line to bottom of your /etc/syslog.conf file
		*.=debug                         /var/log/debug

   ... or where ever you would like to log messages to.

B.  service syslog restart  
		 (or on your system, maybe:
				 /etc/rc.d/init.d/syslog restart
		  or 
				killall -HUP syslog


Daemon Startup
---------------------

Now you should be ready to run the daemon.  At this time, your FORWARD rule in 
iptables should be set to ACCEPT.  We'll add the forwarding rules back right 
away, but first someone needs to tell me what they are, my FORWARD is always 
accept.
 
Start the daemon with the following:

upnpd <ext_ifname> <int_ifname>

Example: upnpd eth1 eth0          -- Where eth1 is my external interface name
												 and eth0 is my internal interface name.


To check and see if everything starts up ok, in /var/log/debug you should see 
a few debug messages followed by Advertisements Sent, and possibly some 
GetNATRSIPStatus and other messages.

Another way to check this is to look in your Windows XP client under Network 
Conections.  You should see an Icon for Internet Connection set to enabled 
in there.  If for some reason you don't, first try restarting the daemon.  If 
this doesn't work post a message to the forums and we'll try to help you.


REMINDERS and THANK YOUS
-------------------------
Truth is I can't remember everyone to thank, but I especially want to thank 
both Henri Manson and Anders Betner for their development and testing work.  
Also Eric Wirt, for helping us test, and providing the winning comments for 
switching to C.

This is a work in progress.  This code is simply released now for others to 
help us debug some problems we are having.  Please, help us out by checking 
the forums, answering problems, and giving any advice and suggestions you can 
to the open source community.

Thanks a lot to the users, and to the over 10,000 downloads, and countless 
CVS checkouts.  If it weren't for the interest in the program, we wouldn't be 
touching it (ok maybe i would, when i got bored or something) :-)

Cheers all

Dime

