diff -burN dymoum-0.3/blacklist.c dymoum-0.3_ported/blacklist.c
--- dymoum-0.3/blacklist.c	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/blacklist.c	2009-07-16 11:35:34.000000000 +0200
@@ -18,7 +18,7 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 #include "ns/dymo_um.h"
 #include <errno.h>
 #else
@@ -29,9 +29,9 @@
 #include <errno.h>
 
 static DLIST_HEAD(BLACKLIST);
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
-blacklist_t *NS_CLASS blacklist_add(struct in_addr addr)
+blacklist_t *DYMOUM_NS_CLASS blacklist_add(struct in_addr addr)
 {
 	blacklist_t *entry;
 	
@@ -47,7 +47,7 @@
 	return entry;
 }
 
-int NS_CLASS blacklist_remove(blacklist_t *entry)
+int DYMOUM_NS_CLASS blacklist_remove(blacklist_t *entry)
 {
 	if (!entry)
 		return 0;
@@ -60,7 +60,7 @@
 	return 1;
 }
 
-blacklist_t *NS_CLASS blacklist_find(struct in_addr addr)
+blacklist_t *DYMOUM_NS_CLASS blacklist_find(struct in_addr addr)
 {
 	dlist_head_t *pos;
 	
diff -burN dymoum-0.3/blacklist.h dymoum-0.3_ported/blacklist.h
--- dymoum-0.3/blacklist.h	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/blacklist.h	2009-07-16 13:49:24.000000000 +0200
@@ -33,13 +33,13 @@
    packet when S-bit was enabled in a RREP. We won't forward RREQs which come
    from these nodes. */
 
-#define BLACKLIST_TIMEOUT	5000
+#define DYMOUM_BLACKLIST_TIMEOUT	5000
 
-typedef struct blacklist
+typedef struct dymoum_blacklist
 {
 	dlist_head_t	list_head;
 	struct in_addr	addr;
-	struct timer	timer;
+	struct dymoum_timer	timer;
 } blacklist_t;
 
 #endif	/* NS_NO_GLOBALS */
Binary files dymoum-0.3/blacklist-ns.o and dymoum-0.3_ported/blacklist-ns.o differ
diff -burN dymoum-0.3/debug.c dymoum-0.3_ported/debug.c
--- dymoum-0.3/debug.c	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/debug.c	2009-07-16 11:35:45.000000000 +0200
@@ -18,7 +18,7 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 #include "ns/dymo_um.h"
 #else
 #include "debug.h"
@@ -31,28 +31,28 @@
 
 
 extern int debug, daemonize;
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
-void NS_CLASS dlog_init()
+void DYMOUM_NS_CLASS dlog_init()
 {
-#ifndef NS_PORT
+#ifndef DYMOUM_NS_PORT
 	int option = 0;
 	
 	if (debug && !daemonize)
 		option = LOG_PERROR;
 	
 	openlog("dymod", option, LOG_DAEMON);
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 }
 
-void NS_CLASS dlog_fini()
+void DYMOUM_NS_CLASS dlog_fini()
 {
-#ifndef NS_PORT
+#ifndef DYMOUM_NS_PORT
 	closelog();
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 }
 
-void NS_CLASS dlog(int pri, int errnum, const char *func, char *format, ...)
+void DYMOUM_NS_CLASS dlog(int pri, int errnum, const char *func, char *format, ...)
 {
 	va_list ap;
 	char msg[256];
@@ -63,7 +63,7 @@
 	vsprintf(msg, format, ap);
 	va_end(ap);
 	
-#ifndef NS_PORT
+#ifndef DYMOUM_NS_PORT
 	if (errnum != 0)
 		syslog(pri, "%s: %s: %s", func, msg, strerror(errnum));
 	else
@@ -73,9 +73,9 @@
 #endif
 }
 
-char *NS_CLASS ip2str(u_int32_t ipaddr)
+char *DYMOUM_NS_CLASS ip2str(u_int32_t ipaddr)
 {
-#ifndef NS_PORT
+#ifndef DYMOUM_NS_PORT
 	struct in_addr addr;
 	
 	addr.s_addr = ipaddr;
Binary files dymoum-0.3/debug-ns.o and dymoum-0.3_ported/debug-ns.o differ
diff -burN dymoum-0.3/defs.h dymoum-0.3_ported/defs.h
--- dymoum-0.3/defs.h	2006-08-30 19:15:03.000000000 +0200
+++ dymoum-0.3_ported/defs.h	2009-07-29 16:46:51.000000000 +0200
@@ -18,24 +18,24 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifndef __DEFS_H__
-#define __DEFS_H__
+#ifndef __DYMOUM_DEFS_H__
+#define __DYMOUM_DEFS_H__
 
 #ifndef NS_NO_GLOBALS
 
-#ifndef NS_PORT
+#ifndef DYMOUM_NS_PORT
 #include <net/if.h>
 #include <netinet/in.h>
-#define NS_CLASS
-#define NS_STATIC	static
-#define NS_INLINE	inline
+#define DYMOUM_NS_CLASS
+#define DYMOUM_NS_STATIC	static
+#define DYMOUM_NS_INLINE	inline
 #else
-#define NS_CLASS	DYMOUM::
-#define NS_STATIC
-#define NS_INLINE	inline
+#define DYMOUM_NS_CLASS	DYMOUM::
+#define DYMOUM_NS_STATIC
+#define DYMOUM_NS_INLINE	inline
 #define NS_DEV_NR	0
-#define NS_IFINDEX	0
-#endif	/* NS_PORT */
+#define DYMOUM_NS_IFINDEX	0
+#endif	/* DYMOUM_NS_PORT */
 
 /* Version information */
 #define DYMO_UM_VERSION "0.3"
@@ -61,14 +61,14 @@
 /* Maximum number of interfaces per node */
 #define DYMO_MAX_NR_INTERFACES 4
 
-/* Returns a dev_info struct given its corresponding iface index */
+/* Returns a dymoum_dev_info struct given its corresponding iface index */
 #define DEV_IFINDEX(ifindex) (this_host.devs[ifindex2devindex(ifindex)])
 
-/* Returns a dev_info struct given its corresponding device number */
+/* Returns a dymoum_dev_info struct given its corresponding device number */
 #define DEV_NR(n) (this_host.devs[n])
 
 /* Data for a network device */
-struct dev_info {
+struct dymoum_dev_info {
     int			enabled;	 /* 1 if struct is used, else 0 */
     int			sock;		 /* DYMO socket associated with this device */
     int			icmp_sock;	 /* Raw socket used to send/receive ICMP messages */
@@ -79,12 +79,12 @@
 };
 
 /* Data for a host */
-struct host_info {
+struct dymoum_host_info {
     u_int32_t		seqnum;		/* Sequence number */
     u_int8_t		prefix : 7;	/* Prefix */
     u_int8_t		is_gw : 1;	/* Is this host a gateway? */
     int			nif;		/* Number of interfaces to broadcast on */
-    struct dev_info	devs[DYMO_MAX_NR_INTERFACES];
+    struct dymoum_dev_info	devs[DYMO_MAX_NR_INTERFACES];
 };
 
 #endif	/* NS_NO_GLOBALS */
@@ -92,14 +92,14 @@
 #ifndef NS_NO_DECLARATIONS
 
 /* Information about this host */
-struct host_info this_host;
+struct dymoum_host_info this_host;
 
 /* Array of interface indices */
 u_int32_t dev_indices[DYMO_MAX_NR_INTERFACES];
 
 /* Given a network interface index, returns the index into the
    devs array */
-NS_STATIC NS_INLINE int ifindex2devindex(u_int32_t ifindex)
+DYMOUM_NS_STATIC DYMOUM_NS_INLINE int ifindex2devindex(u_int32_t ifindex)
 {
 	int i;
 	for (i = 0; i < this_host.nif; i++)
@@ -110,15 +110,15 @@
 
 #endif	/* NS_NO_DECLARATIONS */
 
-#ifndef NS_PORT
+#ifndef DYMOUM_NS_PORT
 
 /* Callback functions */
 typedef void (*callback_func_t) (int);
 int attach_callback_func(int fd, callback_func_t func);
 
-/* Given a socket descriptor, returns the corresponding dev_info
+/* Given a socket descriptor, returns the corresponding dymoum_dev_info
    struct */
-static inline struct dev_info *devfromsock(int sock)
+static inline struct dymoum_dev_info *devfromsock(int sock)
 {
 	int i;
 	
@@ -129,9 +129,9 @@
 	return NULL;
 }
 
-/* Given an ICMP socket descriptor, returns the corresponding dev_info
+/* Given an ICMP socket descriptor, returns the corresponding dymoum_dev_info
    struct */
-static inline struct dev_info *devfromicmpsock(int icmp_sock)
+static inline struct dymoum_dev_info *devfromicmpsock(int icmp_sock)
 {
 	int i;
 	
@@ -142,6 +142,6 @@
 	return NULL;
 }
 
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
-#endif	/* __DEFS_H__ */
+#endif	/* __DYMOUM_DEFS_H__ */
diff -burN dymoum-0.3/dymo_generic.c dymoum-0.3_ported/dymo_generic.c
--- dymoum-0.3/dymo_generic.c	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/dymo_generic.c	2009-07-16 13:45:06.000000000 +0200
@@ -18,7 +18,7 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 #include "ns/dymo_um.h"
 #else
 #include "dymo_generic.h"
@@ -31,9 +31,9 @@
 
 #include <sys/socket.h>
 #include <arpa/inet.h>
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
-void NS_CLASS generic_process_message(DYMO_element *e, struct in_addr src, u_int32_t ifindex)
+void DYMOUM_NS_CLASS generic_process_message(DYMO_element *e, struct in_addr src, u_int32_t ifindex)
 {
 	// Generic preprocessing
 	generic_preprocess(e);
@@ -59,7 +59,7 @@
 				"RERR received in %s from %s",
 				DEV_IFINDEX(ifindex).ifname,
 				ip2str(src.s_addr));
-			rerr_process((RERR *) e, src, ifindex);
+			rerr_process((DYMOUM_RERR *) e, src, ifindex);
 			break;
 		
 		case DYMO_UERR_TYPE:
@@ -77,7 +77,7 @@
 				ip2str(src.s_addr));
 			hello_process((HELLO *) e, src, ifindex);
 			break;
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 		case DYMO_ECHOREPLY_TYPE:
 			dlog(LOG_DEBUG, 0, __FUNCTION__,
 				"ICMP ECHOREPLY received in %s from %s",
@@ -85,7 +85,7 @@
 				ip2str(src.s_addr));
 			icmp_process(src);
 			break;
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 		
 		default:
 			dlog(LOG_DEBUG, 0, __FUNCTION__,
diff -burN dymoum-0.3/dymo_generic.h dymoum-0.3_ported/dymo_generic.h
--- dymoum-0.3/dymo_generic.h	2006-08-30 18:24:03.000000000 +0200
+++ dymoum-0.3_ported/dymo_generic.h	2009-07-16 11:52:26.000000000 +0200
@@ -50,20 +50,20 @@
 #define DYMO_RERR_TYPE	2
 #define DYMO_UERR_TYPE	3
 #define DYMO_HELLO_TYPE	4
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 #define DYMO_ECHOREPLY_TYPE	5
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
 /* Network diameter (in number of hops) */
-#define NET_DIAMETER	10
+#define DYMOUM_NET_DIAMETER	10
 
 
 /* Generic DYMO element fixed struct */
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 struct DYMO_element {	// FIXME: adjust byte ordering
 #else
 typedef struct {
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 	u_int32_t	m : 1;
 	u_int32_t	h : 2;
 	u_int32_t	type : 5;
@@ -75,7 +75,7 @@
 	u_int32_t	notify_addr; // if M bit set
 	u_int32_t	target_addr; // if not a DYMOcast addr in IP dest addr
 	
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 	static int offset_;
 	inline static int& offset() { return offset_; }
 	inline static DYMO_element *access(const Packet *p) {
@@ -87,21 +87,21 @@
 #define HDR_DYMOUM(p) ((hdr_dymoum *) hdr_dymoum::access(p))
 #else
 } DYMO_element;
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
 #endif	/* NS_NO_GLOBALS */
 
 #ifndef NS_NO_DECLARATIONS
 
 /* Decrements TTL */
-NS_STATIC NS_INLINE void generic_preprocess(DYMO_element *e) {
+DYMOUM_NS_STATIC DYMOUM_NS_INLINE void generic_preprocess(DYMO_element *e) {
 	e->ttl--;
 }
 
 /* Returns true if TTL is greater than 0 */
 // TODO: this must be changed according to the specification when support for
 // multiple elements be added.
-NS_STATIC NS_INLINE int generic_postprocess(DYMO_element *e) {
+DYMOUM_NS_STATIC DYMOUM_NS_INLINE int generic_postprocess(DYMO_element *e) {
 	return (e->ttl > 0);
 }
 
Binary files dymoum-0.3/dymo_generic-ns.o and dymoum-0.3_ported/dymo_generic-ns.o differ
diff -burN dymoum-0.3/dymo_hello.c dymoum-0.3_ported/dymo_hello.c
--- dymoum-0.3/dymo_hello.c	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/dymo_hello.c	2009-07-16 12:04:03.000000000 +0200
@@ -18,7 +18,7 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 #include "ns/dymo_um.h"
 #else
 #include "defs.h"
@@ -29,25 +29,25 @@
 #include <sys/time.h>
 #include <stdlib.h>
 
-static struct timer hello_timer;
+static struct dymoum_timer hello_timer;
 extern int hello_ival;
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
-void NS_CLASS hello_init(void)
+void DYMOUM_NS_CLASS hello_init(void)
 {
 	if (hello_timer.used || hello_ival <= 0)
 		return;
 	
-	timer_init(&hello_timer, &NS_CLASS hello_send, NULL);
+	timer_init(&hello_timer, &DYMOUM_NS_CLASS hello_send, NULL);
 	hello_send(NULL);
 }
 
-void NS_CLASS hello_fini(void)
+void DYMOUM_NS_CLASS hello_fini(void)
 {
 	timer_remove(&hello_timer);
 }
 
-HELLO *NS_CLASS hello_create(void)
+HELLO *DYMOUM_NS_CLASS hello_create(void)
 {
 	HELLO *hello;
 	
@@ -63,7 +63,7 @@
 	return hello;
 }
 
-void NS_CLASS hello_send(void *arg)
+void DYMOUM_NS_CLASS hello_send(void *arg)
 {
 	int i;
 	struct in_addr dest_addr;
@@ -86,7 +86,7 @@
 	timer_add(&hello_timer);
 }
 
-void NS_CLASS hello_process(HELLO *hello, struct in_addr ip_src, u_int32_t ifindex)
+void DYMOUM_NS_CLASS hello_process(HELLO *hello, struct in_addr ip_src, u_int32_t ifindex)
 {
 	nb_t *nb;
 	
@@ -98,10 +98,10 @@
 		nb_update(nb);
 }
 
-long NS_CLASS hello_jitter(void)
+long DYMOUM_NS_CLASS hello_jitter(void)
 {
 	long jitter;
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 	jitter = (long) (Random::uniform() * 0.1 * hello_ival * 1000);
 	if (Random::uniform() > 0.5)
 		return jitter;
Binary files dymoum-0.3/dymo_hello-ns.o and dymoum-0.3_ported/dymo_hello-ns.o differ
diff -burN dymoum-0.3/dymo_nb.c dymoum-0.3_ported/dymo_nb.c
--- dymoum-0.3/dymo_nb.c	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/dymo_nb.c	2009-07-16 11:36:19.000000000 +0200
@@ -18,7 +18,7 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 #include "ns/dymo_um.h"
 #include <errno.h>
 #else
@@ -30,9 +30,9 @@
 
 static DLIST_HEAD(NBLIST);
 extern int hello_ival;
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
-nb_t *NS_CLASS nb_insert(struct in_addr nb_addr, u_int32_t ifindex)
+nb_t *DYMOUM_NS_CLASS nb_insert(struct in_addr nb_addr, u_int32_t ifindex)
 {
 	nb_t *nb;
 	
@@ -44,20 +44,20 @@
 	
 	nb->nb_addr.s_addr	= nb_addr.s_addr;
 	nb->ifindex		= ifindex;
-	timer_init(&nb->timer, &NS_CLASS nb_timeout, nb);
+	timer_init(&nb->timer, &DYMOUM_NS_CLASS nb_timeout, nb);
 	nb_update(nb);
 	dlist_add(&nb->list_head, &NBLIST);
 	
 	return nb;
 }
 
-void NS_CLASS nb_update(nb_t *nb)
+void DYMOUM_NS_CLASS nb_update(nb_t *nb)
 {
 	timer_set_timeout(&nb->timer, NB_TIMEOUT);
 	timer_add(&nb->timer);
 }
 
-int NS_CLASS nb_remove(nb_t *nb)
+int DYMOUM_NS_CLASS nb_remove(nb_t *nb)
 {
 	if (!nb)
 		return 0;
@@ -70,7 +70,7 @@
 	return 1;
 }
 
-nb_t *NS_CLASS nb_find(struct in_addr nb_addr, u_int32_t ifindex)
+nb_t *DYMOUM_NS_CLASS nb_find(struct in_addr nb_addr, u_int32_t ifindex)
 {
 	dlist_head_t *pos;
 	
diff -burN dymoum-0.3/dymo_nb.h dymoum-0.3_ported/dymo_nb.h
--- dymoum-0.3/dymo_nb.h	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/dymo_nb.h	2009-07-16 12:03:14.000000000 +0200
@@ -36,7 +36,7 @@
 	dlist_head_t	list_head;
 	struct in_addr	nb_addr;
 	u_int32_t	ifindex;
-	struct timer	timer;
+	struct dymoum_timer	timer;
 } nb_t;
 
 #endif	/* NS_NO_GLOBALS */
Binary files dymoum-0.3/dymo_nb-ns.o and dymoum-0.3_ported/dymo_nb-ns.o differ
diff -burN dymoum-0.3/dymo_netlink.c dymoum-0.3_ported/dymo_netlink.c
--- dymoum-0.3/dymo_netlink.c	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/dymo_netlink.c	2009-07-16 11:28:26.000000000 +0200
@@ -173,7 +173,7 @@
 				return;
 			
 			entry = rtable_find(addr);
-			rerr_send(addr, NET_DIAMETER, entry);
+			rerr_send(addr, DYMOUM_NET_DIAMETER, entry);
 			break;
 		
 		default:
diff -burN dymoum-0.3/dymo_re.c dymoum-0.3_ported/dymo_re.c
--- dymoum-0.3/dymo_re.c	2006-08-30 19:36:04.000000000 +0200
+++ dymoum-0.3_ported/dymo_re.c	2009-07-29 16:48:14.000000000 +0200
@@ -18,7 +18,7 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 #include "ns/dymo_um.h"
 #else
 #include <string.h>
@@ -33,9 +33,9 @@
 #include "blacklist.h"
 
 extern int no_path_acc, s_bit;
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
-RE *NS_CLASS re_create_rreq(struct in_addr target_addr,
+RE *DYMOUM_NS_CLASS re_create_rreq(struct in_addr target_addr,
 		u_int32_t target_seqnum,
 		struct in_addr re_node_addr,
 		u_int32_t re_node_seqnum,
@@ -69,7 +69,7 @@
 	return re;
 }
 
-RE *NS_CLASS re_create_rrep(struct in_addr target_addr,
+RE *DYMOUM_NS_CLASS re_create_rrep(struct in_addr target_addr,
 		u_int32_t target_seqnum,
 		struct in_addr re_node_addr,
 		u_int32_t re_node_seqnum,
@@ -103,7 +103,7 @@
 	return re;
 }
 
-void NS_CLASS re_process(RE *re, struct in_addr ip_src, u_int32_t ifindex)
+void DYMOUM_NS_CLASS re_process(RE *re, struct in_addr ip_src, u_int32_t ifindex)
 {
 	struct in_addr node_addr;
 	rtable_entry_t *entry;
@@ -200,7 +200,7 @@
 				this_host.seqnum,
 				this_host.prefix,
 				this_host.is_gw,
-				NET_DIAMETER,
+				DYMOUM_NET_DIAMETER,
 				re->re_blocks[0].re_hopcnt);
 			
 			re_send_rrep(rrep);
@@ -238,7 +238,7 @@
 	}
 }
 
-int NS_CLASS re_process_block(struct re_block *block, u_int8_t is_rreq,
+int DYMOUM_NS_CLASS re_process_block(struct re_block *block, u_int8_t is_rreq,
 	rtable_entry_t *entry, struct in_addr ip_src, u_int32_t ifindex)
 {
 	struct in_addr dest_addr;
@@ -288,7 +288,7 @@
 	return 0;
 }
 
-void NS_CLASS __re_send(RE *re)
+void DYMOUM_NS_CLASS __re_send(RE *re)
 {
 	struct in_addr dest_addr;
 	int i;
@@ -329,23 +329,23 @@
 				blacklist_t *blacklist
 					= blacklist_add(dest_addr);
 				
-				timer_init(&blacklist->timer, &NS_CLASS blacklist_timeout,
+				timer_init(&blacklist->timer, &DYMOUM_NS_CLASS blacklist_timeout,
 					blacklist);
-				timer_set_timeout(&blacklist->timer, BLACKLIST_TIMEOUT);
+				timer_set_timeout(&blacklist->timer, DYMOUM_BLACKLIST_TIMEOUT);
 				timer_add(&blacklist->timer);
 			}
 		}
 	}
 }
 
-void NS_CLASS re_send_rrep(RE *rrep)
+void DYMOUM_NS_CLASS re_send_rrep(RE *rrep)
 {
 	dlog(LOG_DEBUG, 0, __FUNCTION__, "sending RREP to %s",
 		ip2str(rrep->target_addr));
 	__re_send(rrep);
 }
 
-void NS_CLASS re_send_rreq(struct in_addr dest_addr, u_int32_t seqnum,
+void DYMOUM_NS_CLASS re_send_rreq(struct in_addr dest_addr, u_int32_t seqnum,
 	u_int8_t thopcnt)
 {
 	int i;
@@ -365,7 +365,7 @@
 			rreq = re_create_rreq(dest_addr, seqnum,
 				DEV_NR(i).ipaddr, this_host.seqnum,
 				this_host.prefix, this_host.is_gw,
-				NET_DIAMETER, thopcnt);
+				DYMOUM_NET_DIAMETER, thopcnt);
 			
 			dymo_socket_queue((DYMO_element *) rreq);
 			dymo_socket_send(bcast_addr, &DEV_NR(i));
@@ -373,7 +373,7 @@
 	}
 }
 
-void NS_CLASS re_forward(RE *re)
+void DYMOUM_NS_CLASS re_forward(RE *re)
 {
 	if (re->a)
 		dlog(LOG_DEBUG, 0, __FUNCTION__, "forwarding RREQ to find %s",
@@ -384,7 +384,7 @@
 	__re_send(re);
 }
 
-void NS_CLASS re_forward_rreq_path_acc(RE *rreq, int blindex)
+void DYMOUM_NS_CLASS re_forward_rreq_path_acc(RE *rreq, int blindex)
 {
 	int i;
 	struct in_addr bcast_addr;
@@ -407,14 +407,14 @@
 	}
 }
 
-void NS_CLASS re_forward_rrep_path_acc(RE *rrep)
+void DYMOUM_NS_CLASS re_forward_rrep_path_acc(RE *rrep)
 {
 	dlog(LOG_DEBUG, 0, __FUNCTION__, "forwarding RREP to %s",
 		ip2str(rrep->target_addr));
 	__re_send(rrep);
 }
 
-void NS_CLASS route_discovery(struct in_addr dest_addr)
+void DYMOUM_NS_CLASS route_discovery(struct in_addr dest_addr)
 {
 	u_int32_t	seqnum;
 	u_int8_t	thopcnt;
@@ -442,7 +442,7 @@
 	
 	// Record information for destination and set a timer
 	pending_rreq_t *pend_rreq = pending_rreq_add(dest_addr, seqnum);
-	timer_init(&pend_rreq->timer, &NS_CLASS route_discovery_timeout,
+	timer_init(&pend_rreq->timer, &DYMOUM_NS_CLASS route_discovery_timeout,
 		pend_rreq);
 	timer_set_timeout(&pend_rreq->timer, RREQ_WAIT_TIME);
 	timer_add(&pend_rreq->timer);
diff -burN dymoum-0.3/dymo_re.h dymoum-0.3_ported/dymo_re.h
--- dymoum-0.3/dymo_re.h	2006-08-30 18:20:46.000000000 +0200
+++ dymoum-0.3_ported/dymo_re.h	2009-07-29 16:48:21.000000000 +0200
@@ -143,7 +143,7 @@
 void route_discovery(struct in_addr dest_addr);
 
 /* Return the number of blocks contained inside a RE */
-static NS_INLINE int re_numblocks(RE *re)
+static DYMOUM_NS_INLINE int re_numblocks(RE *re)
 {
 	assert(re);
 	
@@ -154,7 +154,7 @@
 
 /* Return the routing information type: self-generated, stale, loop-prone,
    inferior or stale */
-NS_STATIC NS_INLINE int re_info_type(struct re_block *b, rtable_entry_t *e, u_int8_t is_rreq)
+DYMOUM_NS_STATIC DYMOUM_NS_INLINE int re_info_type(struct re_block *b, rtable_entry_t *e, u_int8_t is_rreq)
 {
 	u_int32_t node_seqnum;
 	int32_t sub;
Binary files dymoum-0.3/dymo_re-ns.o and dymoum-0.3_ported/dymo_re-ns.o differ
diff -burN dymoum-0.3/dymo_rerr.c dymoum-0.3_ported/dymo_rerr.c
--- dymoum-0.3/dymo_rerr.c	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/dymo_rerr.c	2009-07-29 16:47:39.000000000 +0200
@@ -18,22 +18,22 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 #include "ns/dymo_um.h"
 #else
 #include "dymo_rerr.h"
 #include "dymo_socket.h"
 #include <string.h>
 
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
 
-RERR *NS_CLASS rerr_create(struct rerr_block *blocks, int nblocks, int ttl)
+DYMOUM_RERR *DYMOUM_NS_CLASS rerr_create(struct rerr_block *blocks, int nblocks, int ttl)
 {
 	int i;
-	RERR *rerr;
+	DYMOUM_RERR *rerr;
 	
-	rerr		= (RERR *) dymo_socket_new_element();
+	rerr		= (DYMOUM_RERR *) dymo_socket_new_element();
 	rerr->m		= 0;
 	rerr->h		= 0;
 	rerr->type	= DYMO_RERR_TYPE;
@@ -50,7 +50,7 @@
 	return rerr;
 }
 
-void NS_CLASS rerr_send(struct in_addr addr, int ttl, rtable_entry_t *entry)
+void DYMOUM_NS_CLASS rerr_send(struct in_addr addr, int ttl, rtable_entry_t *entry)
 {
 	int i = 1;
 	struct rerr_block blocks[MAX_RERR_BLOCKS];
@@ -81,11 +81,11 @@
 	else
 		blocks[0].unode_seqnum = 0;
 	
-	RERR *rerr = rerr_create(blocks, i, ttl);
+	DYMOUM_RERR *rerr = rerr_create(blocks, i, ttl);
 	rerr_forward(rerr);
 }
 
-void NS_CLASS rerr_process(RERR *rerr, struct in_addr src, u_int32_t ifindex)
+void DYMOUM_NS_CLASS rerr_process(DYMOUM_RERR *rerr, struct in_addr src, u_int32_t ifindex)
 {
 	struct in_addr node_addr;
 	rtable_entry_t *entry;
@@ -144,7 +144,7 @@
 	}
 }
 
-void NS_CLASS rerr_forward(RERR *rerr)
+void DYMOUM_NS_CLASS rerr_forward(DYMOUM_RERR *rerr)
 {
 	struct in_addr dest_addr;
 	int i;
@@ -152,7 +152,7 @@
 	dlog(LOG_DEBUG, 0, __FUNCTION__, "forwarding RERR");
 	
 	// Queue the new RERR
-	rerr = (RERR *) dymo_socket_queue((DYMO_element *) rerr);
+	rerr = (DYMOUM_RERR *) dymo_socket_queue((DYMO_element *) rerr);
 	
 	// Send RERR over all enabled interfaces
 	dest_addr.s_addr = DYMO_BROADCAST;
diff -burN dymoum-0.3/dymo_rerr.h dymoum-0.3_ported/dymo_rerr.h
--- dymoum-0.3/dymo_rerr.h	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/dymo_rerr.h	2009-07-29 16:57:02.000000000 +0200
@@ -47,9 +47,9 @@
 	u_int32_t	res : 5;
 	
 	struct rerr_block rerr_blocks[MAX_RERR_BLOCKS];
-} RERR;
+} DYMOUM_RERR;
 
-#define RERR_SIZE	sizeof(RERR)
+#define RERR_SIZE	sizeof(DYMOUM_RERR)
 #define RERR_BLOCK_SIZE	sizeof(struct rerr_block)
 #define RERR_BASIC_SIZE	(RERR_SIZE - (MAX_RERR_BLOCKS * RERR_BLOCK_SIZE))
 
@@ -59,26 +59,26 @@
 
 /* Create a RERR given an array of blocks (previously created), the number of
    those blocks and the TTL of the message */
-RERR *rerr_create(struct rerr_block *blocks, int nblocks, int ttl);
+DYMOUM_RERR *rerr_create(struct rerr_block *blocks, int nblocks, int ttl);
 
 /* Send a RERR */
 void rerr_send(struct in_addr addr, int ttl, rtable_entry_t *entry);
 
 /* Forward a RERR */
-void rerr_forward(RERR *rerr);
+void rerr_forward(DYMOUM_RERR *rerr);
 
 /* Process a RERR given the address of the sender of the message and the
    interface from which the message was received */
-void rerr_process(RERR *rerr, struct in_addr src, u_int32_t ifindex);
+void rerr_process(DYMOUM_RERR *rerr, struct in_addr src, u_int32_t ifindex);
 
 /* Return the number of blocks contained inside a RERR */
-static NS_INLINE int rerr_numblocks(RERR *rerr)
+static DYMOUM_NS_INLINE int rerr_numblocks(DYMOUM_RERR *rerr)
 {
 	assert(rerr);
 	
-	if ((rerr->len - RERR_BASIC_SIZE) % RERR_BLOCK_SIZE != 0)
+	if ((rerr->len - RERR_BASIC_SIZE)% RERR_BLOCK_SIZE != 0)
 		return -1;
-	return (rerr->len - RERR_BASIC_SIZE) / RERR_BLOCK_SIZE;
+	return (rerr->len - RERR_BASIC_SIZE)/ RERR_BLOCK_SIZE;
 }
 
 #endif	/* NS_NO_DECLARATIONS */
Binary files dymoum-0.3/dymo_rerr-ns.o and dymoum-0.3_ported/dymo_rerr-ns.o differ
diff -burN dymoum-0.3/dymo_socket.c dymoum-0.3_ported/dymo_socket.c
--- dymoum-0.3/dymo_socket.c	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/dymo_socket.c	2009-07-16 13:39:26.000000000 +0200
@@ -18,7 +18,7 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 #include "ns/dymo_um.h"
 #else
 #include "dymo_socket.h"
@@ -41,16 +41,16 @@
 #define SO_RECVBUF_SIZE (256 * 1024)
 
 /* Receiving and sending buffers */
-static char recv_buf[RECV_BUF_SIZE];
-static char send_buf[SEND_BUF_SIZE];
+static char recv_buf[DYMOUM_RECV_BUF_SIZE];
+static char send_buf[DYMOUM_SEND_BUF_SIZE];
 
 static void dymo_socket_read(int fd);
 
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
-void NS_CLASS dymo_socket_init()
+void DYMOUM_NS_CLASS dymo_socket_init()
 {
-#ifndef NS_PORT
+#ifndef DYMOUM_NS_PORT
 	struct sockaddr_in dymo_addr;
 	char ifname[IFNAMSIZ];
 	int i;
@@ -144,7 +144,7 @@
 					bufsize);
 				break;
 			}
-			if (bufsize < RECV_BUF_SIZE)
+			if (bufsize < DYMOUM_RECV_BUF_SIZE)
 			{
 				dlog(LOG_ERR, 0, __FUNCTION__, "could not set receive buffer size");
 				exit(EXIT_FAILURE);
@@ -159,13 +159,13 @@
 			exit(EXIT_FAILURE);
 		}
 	}
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 	num_dymo_msgs = 0;
 }
 
-void NS_CLASS dymo_socket_fini()
+void DYMOUM_NS_CLASS dymo_socket_fini()
 {
-#ifndef NS_PORT
+#ifndef DYMOUM_NS_PORT
 	int i;
 	
 	for (i = 0; i < DYMO_MAX_NR_INTERFACES; i++)
@@ -174,25 +174,25 @@
 			continue;
 		close(DEV_NR(i).sock);
 	}
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 }
 
-DYMO_element *NS_CLASS dymo_socket_new_element()
+DYMO_element *DYMOUM_NS_CLASS dymo_socket_new_element()
 {
-	memset(send_buf, '\0', SEND_BUF_SIZE);
+	memset(send_buf, '\0', DYMOUM_SEND_BUF_SIZE);
 	return (DYMO_element *) send_buf;
 }
 
-DYMO_element *NS_CLASS dymo_socket_queue(DYMO_element *e)
+DYMO_element *DYMOUM_NS_CLASS dymo_socket_queue(DYMO_element *e)
 {
 	memcpy((char *) send_buf, e, e->len);
 	return (DYMO_element *) send_buf;
 }
 
-void NS_CLASS dymo_socket_send(struct in_addr dest_addr, struct dev_info *dev)
+void DYMOUM_NS_CLASS dymo_socket_send(struct in_addr dest_addr, struct dymoum_dev_info *dev)
 {
 	struct timeval now;
-#ifndef NS_PORT
+#ifndef DYMOUM_NS_PORT
 	struct sockaddr_in dest_sockaddr;
 	u_int8_t ttl;
 	
@@ -236,13 +236,13 @@
 	ih->sport()	= RT_PORT;
 	ih->dport()	= RT_PORT;
 	ih->ttl()	= DYMO_IPTTL;
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 	
 	// Rate limit stuff
 	gettimeofday(&now, NULL);
 	if (num_dymo_msgs == DYMO_RATELIMIT - 1)
 	{
-		if (timeval_diff(&now, &dymo_rate[0]) < 1000)
+		if (dymoum_timeval_diff(&now, &dymo_rate[0]) < 1000)
 			return;	// dropping packet
 		else
 		{
@@ -259,7 +259,7 @@
 	}
 	
 	// Send the queued packet
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 	/*if (ih->daddr() == IP_BROADCAST)
 		Scheduler::instance().schedule(target_, p, 0.02 * Random::uniform());
 	else*/ // TODO: add jitter for sending broadcast messages?
@@ -271,11 +271,11 @@
 		dlog(LOG_WARNING, errno, __FUNCTION__, "failed send to %s", ip2str(dest_addr.s_addr));
 		return;
 	}
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 }
 
-#ifdef NS_PORT
-void NS_CLASS recv_dymoum_pkt(Packet *p)
+#ifdef DYMOUM_NS_PORT
+void DYMOUM_NS_CLASS recv_dymoum_pkt(Packet *p)
 {
 	struct in_addr src_addr;
 	struct hdr_cmn *ch	= HDR_CMN(p);
@@ -289,23 +289,23 @@
 	assert(ih->dport() == RT_PORT);
 	
 	src_addr.s_addr	= ih->saddr();
-	memcpy(recv_buf, dh, RECV_BUF_SIZE);
+	memcpy(recv_buf, dh, DYMOUM_RECV_BUF_SIZE);
 	
 	Packet::free(p);
 	
-	generic_process_message(e, src_addr, NS_IFINDEX);
+	generic_process_message(e, src_addr, DYMOUM_NS_IFINDEX);
 }
 #else
 static void dymo_socket_read(int fd)
 {
 	int i, len;
 	DYMO_element *msg;
-	struct dev_info *dev;
+	struct dymoum_dev_info *dev;
 	struct sockaddr_in sender_addr;
 	socklen_t addr_len = sizeof(struct sockaddr_in);
 	
 	// Receive message
-	if ((len = recvfrom(fd, recv_buf, RECV_BUF_SIZE, 0,
+	if ((len = recvfrom(fd, recv_buf, DYMOUM_RECV_BUF_SIZE, 0,
 		(struct sockaddr *) &sender_addr, &addr_len)) < 0)
 	{
 		dlog(LOG_WARNING, errno, __FUNCTION__, "could not receive message");
@@ -336,4 +336,4 @@
 	
 	generic_process_message(msg, sender_addr.sin_addr, dev->ifindex);
 }
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
diff -burN dymoum-0.3/dymo_socket.h dymoum-0.3_ported/dymo_socket.h
--- dymoum-0.3/dymo_socket.h	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/dymo_socket.h	2009-07-16 11:57:22.000000000 +0200
@@ -32,8 +32,8 @@
 /* We are allowing a maximum DYMO message size of a RE message
    which advertises MAX_RE_BLOCKS RENodeAddresses */
 #define DYMO_MSG_MAX_SIZE	RE_SIZE
-#define RECV_BUF_SIZE		DYMO_MSG_MAX_SIZE
-#define SEND_BUF_SIZE		DYMO_MSG_MAX_SIZE
+#define DYMOUM_RECV_BUF_SIZE	DYMO_MSG_MAX_SIZE
+#define DYMOUM_SEND_BUF_SIZE	DYMO_MSG_MAX_SIZE
 
 #endif	/* NS_NO_GLOBALS */
 
@@ -56,12 +56,12 @@
 DYMO_element *dymo_socket_queue(DYMO_element *e);
 
 /* Sends queued DYMO element */
-void dymo_socket_send(struct in_addr dest_addr, struct dev_info *dev);
+void dymo_socket_send(struct in_addr dest_addr, struct dymoum_dev_info *dev);
 
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 /* Process a received DYMO packet */
 void recv_dymoum_pkt(Packet *p);
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
 #endif	/* NS_NO_DECLARATIONS */
 
Binary files dymoum-0.3/dymo_socket-ns.o and dymoum-0.3_ported/dymo_socket-ns.o differ
diff -burN dymoum-0.3/dymo_timeout.c dymoum-0.3_ported/dymo_timeout.c
--- dymoum-0.3/dymo_timeout.c	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/dymo_timeout.c	2009-07-16 13:53:08.000000000 +0200
@@ -18,7 +18,7 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 #include "ns/dymo_um.h"
 #else
 #include "dymo_timeout.h"
@@ -32,9 +32,9 @@
 
 
 extern int reissue_rreq;
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
-void NS_CLASS route_valid_timeout(void *arg)
+void DYMOUM_NS_CLASS route_valid_timeout(void *arg)
 {
 	rtable_entry_t *entry = (rtable_entry_t *) arg;
 	
@@ -48,7 +48,7 @@
 	rtable_invalidate(entry);
 }
 
-void NS_CLASS route_del_timeout(void *arg)
+void DYMOUM_NS_CLASS route_del_timeout(void *arg)
 {
 	rtable_entry_t *entry = (rtable_entry_t *) arg;
 	
@@ -63,7 +63,7 @@
 		rtable_delete(entry);
 }
 
-void NS_CLASS blacklist_timeout(void *arg)
+void DYMOUM_NS_CLASS blacklist_timeout(void *arg)
 {
 	blacklist_t *entry = (blacklist_t *) arg;
 	
@@ -77,7 +77,7 @@
 	blacklist_remove(entry);
 }
 
-void NS_CLASS route_discovery_timeout(void *arg)
+void DYMOUM_NS_CLASS route_discovery_timeout(void *arg)
 {
 	pending_rreq_t *entry = (pending_rreq_t *) arg;
 	
@@ -111,16 +111,16 @@
 			return;
 		}
 	}
-#ifdef NS_PORT
-	packet_queue_set_verdict(entry->dest_addr, PQ_DROP);
+#ifdef DYMOUM_NS_PORT
+	packet_queue_set_verdict(entry->dest_addr, DYMOUM_PQ_DROP);
 #else
 	netlink_no_route_found(entry->dest_addr);
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 	
 	pending_rreq_remove(entry);
 }
 
-void NS_CLASS nb_timeout(void *arg)
+void DYMOUM_NS_CLASS nb_timeout(void *arg)
 {
 	nb_t *nb = (nb_t *) arg;
 	
Binary files dymoum-0.3/dymo_timeout-ns.o and dymoum-0.3_ported/dymo_timeout-ns.o differ
diff -burN dymoum-0.3/dymo_uerr.c dymoum-0.3_ported/dymo_uerr.c
--- dymoum-0.3/dymo_uerr.c	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/dymo_uerr.c	2009-07-16 11:37:36.000000000 +0200
@@ -18,15 +18,15 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 #include "ns/dymo_um.h"
 #else
 #include "dymo_uerr.h"
 #include "dymo_socket.h"
 
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
-UERR *NS_CLASS uerr_create(struct in_addr target_addr,
+UERR *DYMOUM_NS_CLASS uerr_create(struct in_addr target_addr,
 	struct in_addr uelem_target_addr,
 	struct in_addr uerr_node_addr,
 	u_int8_t uelem_type, u_int8_t ttl)
@@ -50,7 +50,7 @@
 	return uerr;
 }
 
-void NS_CLASS uerr_send(DYMO_element *e, u_int32_t ifindex)
+void DYMOUM_NS_CLASS uerr_send(DYMO_element *e, u_int32_t ifindex)
 {
 	struct in_addr notify_addr, target_addr;
 	rtable_entry_t *entry;
@@ -65,7 +65,7 @@
 		target_addr,
 		DEV_IFINDEX(ifindex).ipaddr,
 		e->type,
-		NET_DIAMETER);
+		DYMOUM_NET_DIAMETER);
 	
 	entry = rtable_find(notify_addr);
 	if (entry && entry->rt_state == RT_VALID)
@@ -87,6 +87,6 @@
 	}
 }
 
-void NS_CLASS uerr_process(UERR *e, struct in_addr ip_src, u_int32_t ifindex)
+void DYMOUM_NS_CLASS uerr_process(UERR *e, struct in_addr ip_src, u_int32_t ifindex)
 {
 }
Binary files dymoum-0.3/dymo_uerr-ns.o and dymoum-0.3_ported/dymo_uerr-ns.o differ
diff -burN dymoum-0.3/icmp_socket.c dymoum-0.3_ported/icmp_socket.c
--- dymoum-0.3/icmp_socket.c	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/icmp_socket.c	2009-07-16 11:56:52.000000000 +0200
@@ -18,7 +18,7 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 #include "ns/dymo_um.h"
 #else
 #include "debug.h"
@@ -38,11 +38,11 @@
 
 static void icmp_socket_read(int fd);
 
-#endif  /* NS_PORT */
+#endif  /* DYMOUM_NS_PORT */
 
-void NS_CLASS icmp_socket_init(void)
+void DYMOUM_NS_CLASS icmp_socket_init(void)
 {
-#ifndef NS_PORT
+#ifndef DYMOUM_NS_PORT
 	char ifname[IFNAMSIZ];
 	struct icmp *icmp;
 	int i;
@@ -111,12 +111,12 @@
 	icmp->icmp_id		= 0;
 	icmp->icmp_seq		= 0;
 
-#endif	/* NS_PORT */	
+#endif	/* DYMOUM_NS_PORT */
 }
 
-void NS_CLASS icmp_socket_fini(void)
+void DYMOUM_NS_CLASS icmp_socket_fini(void)
 {
-#ifndef NS_PORT
+#ifndef DYMOUM_NS_PORT
 	int i;
 	
 	for (i = 0; i < DYMO_MAX_NR_INTERFACES; i++)
@@ -125,10 +125,10 @@
 			continue;
 		close(DEV_NR(i).icmp_sock);
 	}
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 }
 
-u_short NS_CLASS in_cksum(u_short *icmp, int len)
+u_short DYMOUM_NS_CLASS in_cksum(u_short *icmp, int len)
 {
 	int nleft	= len;
 	u_short *w	= icmp;
@@ -156,9 +156,9 @@
 	return cksum;
 }
 
-void NS_CLASS icmp_reply_send(struct in_addr dest_addr, struct dev_info *dev)
+void DYMOUM_NS_CLASS icmp_reply_send(struct in_addr dest_addr, struct dymoum_dev_info *dev)
 {
-#ifndef NS_PORT
+#ifndef DYMOUM_NS_PORT
 	struct sockaddr_in icmp_sockaddr;
 	u_int8_t ttl;
 	
@@ -212,15 +212,15 @@
 
 	Scheduler::instance().schedule(target_, p, 0.0);
 
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 	
 	dlog(LOG_DEBUG, 0, __FUNCTION__, "sending ICMP msg to %s",
 		ip2str(dest_addr.s_addr));
 }
 
 
-#ifdef NS_PORT
-void NS_CLASS icmp_process(struct in_addr ip_src)
+#ifdef DYMOUM_NS_PORT
+void DYMOUM_NS_CLASS icmp_process(struct in_addr ip_src)
 {
 	blacklist_remove(blacklist_find(ip_src));
 }
@@ -229,7 +229,7 @@
 {
 	int i, len;
 	struct ip *ip;
-	struct dev_info *dev;
+	struct dymoum_dev_info *dev;
 	struct sockaddr_in sender_addr;
 	socklen_t addr_len = sizeof(struct sockaddr_in);
 	
@@ -268,4 +268,4 @@
 	dlog(LOG_DEBUG, 0, __FUNCTION__, "ICMP msg received in %s from %s",
 		dev->ifname, ip2str(sender_addr.sin_addr.s_addr));
 }
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
diff -burN dymoum-0.3/icmp_socket.h dymoum-0.3_ported/icmp_socket.h
--- dymoum-0.3/icmp_socket.h	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/icmp_socket.h	2009-07-16 11:57:02.000000000 +0200
@@ -38,11 +38,11 @@
 void icmp_socket_init(void);
 void icmp_socket_fini(void);
 u_short in_cksum(u_short *icmp, int len);
-void icmp_reply_send(struct in_addr dest_addr, struct dev_info *dev);
+void icmp_reply_send(struct in_addr dest_addr, struct dymoum_dev_info *dev);
 
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 void icmp_process(struct in_addr ip_src);
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
 #endif	/* NS_NO_DECLARATIONS */
 
Binary files dymoum-0.3/icmp_socket-ns.o and dymoum-0.3_ported/icmp_socket-ns.o differ
Binary files dymoum-0.3/libdymoum.a and dymoum-0.3_ported/libdymoum.a differ
diff -burN dymoum-0.3/main.c dymoum-0.3_ported/main.c
--- dymoum-0.3/main.c	2006-08-31 17:34:23.000000000 +0200
+++ dymoum-0.3_ported/main.c	2009-07-16 11:59:19.000000000 +0200
@@ -261,7 +261,7 @@
 		exit(EXIT_SUCCESS);
 	}
 	
-	memset(&this_host, 0, sizeof(struct host_info));
+	memset(&this_host, 0, sizeof(struct dymoum_host_info));
 	memset(dev_indices, 0, DYMO_MAX_NR_INTERFACES * sizeof(u_int32_t));
 	
 	// Initialize this_host
diff -burN dymoum-0.3/ns/dymo_um.cc dymoum-0.3_ported/ns/dymo_um.cc
--- dymoum-0.3/ns/dymo_um.cc	2006-08-29 19:51:44.000000000 +0200
+++ dymoum-0.3_ported/ns/dymo_um.cc	2009-07-16 11:59:03.000000000 +0200
@@ -62,7 +62,7 @@
 }
 
 
-NS_CLASS DYMOUM(nsaddr_t id) : Agent(PT_DYMOUM), qtimer_(this),
+DYMOUM_NS_CLASS DYMOUM(nsaddr_t id) : Agent(PT_DYMOUM), qtimer_(this),
 				initialized_(0), pq_len(0)
 {
 	/*
@@ -80,7 +80,7 @@
 	// Set general parameters
 	progname = strdup("DYMOUM");
 	
-	memset(&this_host, 0, sizeof(struct host_info));
+	memset(&this_host, 0, sizeof(struct dymoum_host_info));
 	memset(dev_indices, 0, sizeof(unsigned int) * DYMO_MAX_NR_INTERFACES);
 	this_host.seqnum	= 1;
 	this_host.nif		= 1;
@@ -88,7 +88,7 @@
 	this_host.is_gw		= 0;
 	
 	const char faked_ifname[]	= "nsif";
-	dev_indices[NS_DEV_NR]		= NS_IFINDEX;
+	dev_indices[NS_DEV_NR]		= DYMOUM_NS_IFINDEX;
 	
 	strncpy(DEV_NR(NS_DEV_NR).ifname, faked_ifname, IFNAMSIZ - 1);
 	DEV_NR(NS_DEV_NR).ifname[IFNAMSIZ - 1]	= '\0';
@@ -96,7 +96,7 @@
 	DEV_NR(NS_DEV_NR).bcast.s_addr		= DYMO_BROADCAST;
 	DEV_NR(NS_DEV_NR).enabled		= 1;
 	DEV_NR(NS_DEV_NR).sock			= -1;
-	DEV_NR(NS_DEV_NR).ifindex		= NS_IFINDEX;
+	DEV_NR(NS_DEV_NR).ifindex		= DYMOUM_NS_IFINDEX;
 	
 	INIT_DLIST_HEAD(&TQ);
 	INIT_DLIST_HEAD(&PENDING_RREQ);
@@ -116,7 +116,7 @@
 	rtable_init();
 }
 
-NS_CLASS ~DYMOUM() {
+DYMOUM_NS_CLASS ~DYMOUM() {
 	rtable_destroy();
 	packet_queue_fini();
 	icmp_socket_fini();
@@ -125,7 +125,7 @@
 }
 
 int
-NS_CLASS command(int argc, const char*const* argv) {
+DYMOUM_NS_CLASS command(int argc, const char*const* argv) {
 	if (argc == 2) {
 		if (strcasecmp(argv[1], "start") == 0) {
 			return start();
@@ -165,7 +165,7 @@
 }
 
 int
-NS_CLASS start() {
+DYMOUM_NS_CLASS start() {
 	if (initialized_ == 0) {
 		debug("DYMOUM agent started in node %d\n", ra_addr_);
 		debug("\tno_path_acc=%d\n", no_path_acc);
@@ -183,7 +183,7 @@
 }
 
 void
-NS_CLASS schedule_next_event() {
+DYMOUM_NS_CLASS schedule_next_event() {
 	struct timeval *timeout;
 	
 	timeout = timer_age_queue();
@@ -194,7 +194,7 @@
 }
 
 void
-NS_CLASS recv(Packet *p, Handler *h) {
+DYMOUM_NS_CLASS recv(Packet *p, Handler *h) {
 	struct hdr_cmn *ch	= HDR_CMN(p);
 	struct hdr_ip *ih	= HDR_IP(p);
 	
@@ -229,7 +229,7 @@
 	schedule_next_event();
 }
 void
-NS_CLASS process_data(Packet *p) {
+DYMOUM_NS_CLASS process_data(Packet *p) {
 	struct hdr_cmn* ch	= HDR_CMN(p);
 	struct hdr_ip* ih	= HDR_IP(p);
 	
@@ -254,7 +254,7 @@
 			// the route has been previously used
 			else {
 				if (entry->rt_is_used)
-					rerr_send(dest_addr, NET_DIAMETER, entry);
+					rerr_send(dest_addr, DYMOUM_NET_DIAMETER, entry);
 				drop(p, DROP_RTR_NO_ROUTE);
 			}
 			schedule_next_event();
@@ -286,7 +286,7 @@
 }
 
 int
-NS_CLASS gettimeofday(struct timeval *tv, struct timezone *tz) {
+DYMOUM_NS_CLASS gettimeofday(struct timeval *tv, struct timezone *tz) {
 	double current_time, tmp;
 	
 	if (!tv)
@@ -302,7 +302,7 @@
 }
 
 void
-NS_CLASS tap(const Packet *p) {
+DYMOUM_NS_CLASS tap(const Packet *p) {
 	rtable_entry_t *entry;
 	struct in_addr addr;
 	struct hdr_cmn *ch	= HDR_CMN(p);
@@ -337,7 +337,7 @@
 }
 
 void
-NS_CLASS mac_failed(Packet *p) {
+DYMOUM_NS_CLASS mac_failed(Packet *p) {
 	struct hdr_cmn *ch	= HDR_CMN(p);
 	struct hdr_ip *ih	= HDR_IP(p);
 	
@@ -347,7 +347,7 @@
 		struct in_addr addr;
 		
 		addr.s_addr = ch->next_hop();
-		rtable_expire_timeout_all(addr, NS_IFINDEX);
+		rtable_expire_timeout_all(addr, DYMOUM_NS_IFINDEX);
 	}
 	
 	drop(p, DROP_RTR_MAC_CALLBACK);
diff -burN dymoum-0.3/ns/dymo_um.h dymoum-0.3_ported/ns/dymo_um.h
--- dymoum-0.3/ns/dymo_um.h	2006-08-28 19:15:21.000000000 +0200
+++ dymoum-0.3_ported/ns/dymo_um.h	2009-07-29 16:47:10.000000000 +0200
@@ -21,9 +21,9 @@
 #ifndef __DYMO_UM_H__
 #define __DYMO_UM_H__
 
-#ifndef NS_PORT
-#error "You must define NS_PORT in order to compile NS version of DYMOUM"
-#endif	/* NS_PORT */
+#ifndef DYMOUM_NS_PORT
+#error "You must define DYMOUM_NS_PORT in order to compile NS version of DYMOUM"
+#endif	/* DYMOUM_NS_PORT */
 
 #include <mac.h>
 #include <agent.h>
@@ -111,15 +111,15 @@
 	dlist_head_t	BLACKLIST;
 
 	// Variables from dymo_socket.c
-	char	recv_buf[RECV_BUF_SIZE];
-	char	send_buf[SEND_BUF_SIZE];
+	char	recv_buf[DYMOUM_RECV_BUF_SIZE];
+	char	send_buf[DYMOUM_SEND_BUF_SIZE];
 	
 	// Variables from icmp_socket.c
 	char icmp_send_buf[ICMP_SEND_BUF_SIZE];
 	char icmp_recv_buf[ICMP_RECV_BUF_SIZE];
 	
 	// Variables from dymo_hello.c
-	struct timer hello_timer;
+	struct dymoum_timer hello_timer;
 	
 	// Variables from dymo_nb.c
 	dlist_head_t NBLIST;
@@ -133,7 +133,7 @@
 #define	NS_NO_GLOBALS
 #undef	NS_NO_DECLARATIONS
 
-#undef __DEFS_H__
+#undef __DYMOUM_DEFS_H__
 #include "../defs.h"
 
 #undef __DEBUG_H__
Binary files dymoum-0.3/ns/dymo_um-ns.o and dymoum-0.3_ported/ns/dymo_um-ns.o differ
diff -burN dymoum-0.3/ns/packet_queue.cc dymoum-0.3_ported/ns/packet_queue.cc
--- dymoum-0.3/ns/packet_queue.cc	2006-08-28 19:15:21.000000000 +0200
+++ dymoum-0.3_ported/ns/packet_queue.cc	2009-07-16 13:55:56.000000000 +0200
@@ -21,20 +21,20 @@
 #include "dymo_um.h"
 
 void
-NS_CLASS packet_queue_init()
+DYMOUM_NS_CLASS packet_queue_init()
 {
 	INIT_DLIST_HEAD(&PQ.l);
 }
 
 void
-NS_CLASS packet_queue_fini()
+DYMOUM_NS_CLASS packet_queue_fini()
 {
 	dlist_head_t *pos, *tmp;
 	int count = 0;
 	
 	dlist_for_each_safe(pos, tmp, &PQ.l)
 	{
-		struct packet_queue *pq = (struct packet_queue *) pos;
+		struct dymoum_packet_queue *pq = (struct dymoum_packet_queue *) pos;
 		dlist_del(pos);
 		drop(pq->p, DROP_END_OF_SIMULATION);
 		free(pq);
@@ -46,9 +46,9 @@
 }
 
 void
-NS_CLASS packet_queue_add(Packet *p, struct in_addr dest_addr)
+DYMOUM_NS_CLASS packet_queue_add(Packet *p, struct in_addr dest_addr)
 {
-	struct packet_queue *pq;
+	struct dymoum_packet_queue *pq;
 	
 	if (pq_len >= MAX_QUEUE_LEN)
 	{
@@ -56,7 +56,7 @@
 			" removing first packet");
 		if (!dlist_empty(&PQ.l))
 		{
-			pq = (struct packet_queue *) PQ.l.next;
+			pq = (struct dymoum_packet_queue *) PQ.l.next;
 			dlist_del(PQ.l.next);
 			drop(pq->p, DROP_RTR_QFULL);
 			free(pq);
@@ -64,7 +64,7 @@
 		}
 	}
 	
-	if ((pq = (struct packet_queue *) malloc(sizeof(struct packet_queue)))
+	if ((pq = (struct dymoum_packet_queue *) malloc(sizeof(struct dymoum_packet_queue)))
 		== NULL)
 	{
 		dlog(LOG_ERR, errno, __FUNCTION__, "failed malloc()");
@@ -79,9 +79,9 @@
 }
 
 int
-NS_CLASS packet_queue_set_verdict(struct in_addr dest_addr, int verdict)
+DYMOUM_NS_CLASS packet_queue_set_verdict(struct in_addr dest_addr, int verdict)
 {
-	struct packet_queue *pq;
+	struct dymoum_packet_queue *pq;
 	dlist_head_t *pos, *tmp;
 	int count = 0;
 	double delay = 0.0;
@@ -91,7 +91,7 @@
 	
 	dlist_for_each_safe(pos, tmp, &PQ.l)
 	{
-		pq = (struct packet_queue *) pos;
+		pq = (struct dymoum_packet_queue *) pos;
 		if (pq->dest_addr.s_addr == dest_addr.s_addr)
 		{
 			struct hdr_cmn *ch;
@@ -99,7 +99,7 @@
 			dlist_del(pos);
 			switch (verdict)
 			{
-				case PQ_SEND:
+				case DYMOUM_PQ_SEND:
 				
 				if (!entry || entry->rt_state == RT_INVALID)
 					return -1;
@@ -113,7 +113,7 @@
 				delay += ARP_DELAY;
 				break;
 				
-				case PQ_DROP:
+				case DYMOUM_PQ_DROP:
 				
 				drop(pq->p, DROP_RTR_NO_ROUTE);
 				break;
diff -burN dymoum-0.3/ns/packet_queue.h dymoum-0.3_ported/ns/packet_queue.h
--- dymoum-0.3/ns/packet_queue.h	2006-08-28 19:15:21.000000000 +0200
+++ dymoum-0.3_ported/ns/packet_queue.h	2009-07-16 13:55:10.000000000 +0200
@@ -27,11 +27,11 @@
 
 /* Verdicts for queued packets */
 enum {
-	PQ_DROP = 0,
-	PQ_SEND = 1
+	DYMOUM_PQ_DROP = 0,
+	DYMOUM_PQ_SEND = 1
 };
 
-struct packet_queue
+struct dymoum_packet_queue
 {
 	dlist_head_t	l;
 	Packet		*p;
@@ -40,7 +40,7 @@
 #endif	/* NS_NO_GLOBALS */
 
 #ifndef NS_NO_DECLARATIONS
-struct packet_queue PQ;
+struct dymoum_packet_queue PQ;
 int pq_len;
 
 /* Initialize the packet queue */
Binary files dymoum-0.3/ns/packet_queue-ns.o and dymoum-0.3_ported/ns/packet_queue-ns.o differ
diff -burN dymoum-0.3/pending_rreq.c dymoum-0.3_ported/pending_rreq.c
--- dymoum-0.3/pending_rreq.c	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/pending_rreq.c	2009-07-16 11:37:24.000000000 +0200
@@ -18,7 +18,7 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 #include "ns/dymo_um.h"
 #include <errno.h>
 #else
@@ -30,9 +30,9 @@
 #include <errno.h>
 
 static DLIST_HEAD(PENDING_RREQ);
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
-pending_rreq_t *NS_CLASS pending_rreq_add(struct in_addr dest_addr, u_int32_t seqnum)
+pending_rreq_t *DYMOUM_NS_CLASS pending_rreq_add(struct in_addr dest_addr, u_int32_t seqnum)
 {
 	pending_rreq_t *entry;
 	
@@ -51,7 +51,7 @@
 	return entry;
 }
 
-int NS_CLASS pending_rreq_remove(pending_rreq_t *entry)
+int DYMOUM_NS_CLASS pending_rreq_remove(pending_rreq_t *entry)
 {
 	if (!entry)
 		return 0;
@@ -64,7 +64,7 @@
 	return 1;
 }
 
-pending_rreq_t *NS_CLASS pending_rreq_find(struct in_addr dest_addr)
+pending_rreq_t *DYMOUM_NS_CLASS pending_rreq_find(struct in_addr dest_addr)
 {
 	dlist_head_t *pos;
 	
diff -burN dymoum-0.3/pending_rreq.h dymoum-0.3_ported/pending_rreq.h
--- dymoum-0.3/pending_rreq.h	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/pending_rreq.h	2009-07-16 12:02:58.000000000 +0200
@@ -39,7 +39,7 @@
 	struct in_addr	dest_addr;
 	u_int32_t	seqnum;
 	u_int8_t	tries;
-	struct timer	timer;
+	struct dymoum_timer	timer;
 } pending_rreq_t;
 
 #endif	/* NS_NO_GLOBALS */
Binary files dymoum-0.3/pending_rreq-ns.o and dymoum-0.3_ported/pending_rreq-ns.o differ
diff -burN dymoum-0.3/rtable.c dymoum-0.3_ported/rtable.c
--- dymoum-0.3/rtable.c	2006-08-29 19:52:20.000000000 +0200
+++ dymoum-0.3_ported/rtable.c	2009-07-16 13:53:36.000000000 +0200
@@ -18,7 +18,7 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 #include "ns/dymo_um.h"
 #else
 #include "rtable.h"
@@ -36,14 +36,14 @@
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
-void NS_CLASS rtable_init()
+void DYMOUM_NS_CLASS rtable_init()
 {
 	INIT_DLIST_HEAD(&rtable.l);
 }
 
-void NS_CLASS rtable_destroy()
+void DYMOUM_NS_CLASS rtable_destroy()
 {
 	dlist_head_t *pos, *tmp;
 	
@@ -54,7 +54,7 @@
 	}
 }
 
-rtable_entry_t *NS_CLASS rtable_find(struct in_addr dest_addr)
+rtable_entry_t *DYMOUM_NS_CLASS rtable_find(struct in_addr dest_addr)
 {
 	dlist_head_t *pos;
 	
@@ -67,7 +67,7 @@
 	return NULL;
 }
 
-rtable_entry_t *NS_CLASS rtable_insert(struct in_addr dest_addr,
+rtable_entry_t *DYMOUM_NS_CLASS rtable_insert(struct in_addr dest_addr,
 			struct in_addr nxthop_addr,
 			u_int32_t ifindex,
 			u_int32_t seqnum,
@@ -98,38 +98,38 @@
 	entry->rt_dest_addr.s_addr	= dest_addr.s_addr;
 	entry->rt_nxthop_addr.s_addr	= nxthop_addr.s_addr;
 	
-	timer_init(&entry->rt_validtimer, &NS_CLASS route_valid_timeout, entry);
+	timer_init(&entry->rt_validtimer, &DYMOUM_NS_CLASS route_valid_timeout, entry);
 	timer_set_timeout(&entry->rt_validtimer, ROUTE_TIMEOUT);
 	timer_add(&entry->rt_validtimer);
 	
-	timer_init(&entry->rt_deltimer, &NS_CLASS route_del_timeout, entry);
+	timer_init(&entry->rt_deltimer, &DYMOUM_NS_CLASS route_del_timeout, entry);
 	/*timer_set_timeout(&entry->rt_deltimer, ROUTE_DELETE_TIMEOUT);
 	timer_add(&entry->rt_deltimer);*/
 	
 	// Add the entry to the routing table
 	dlist_add(&entry->l, &rtable.l);
 
-#ifndef NS_PORT
+#ifndef DYMOUM_NS_PORT
 	// Add route to kernel routing table
 	if (k_add_rte(dest_addr, nxthop_addr, netmask, hopcnt, ifindex) < 0)
 		dlog(LOG_WARNING, errno, __FUNCTION__,
 		"could not add kernel route");
 	netlink_add_route(dest_addr);
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 	
 	// If there are buffered packets for this destination
 	// now we send them
 	if (pending_rreq_remove(pending_rreq_find(dest_addr)))
 	{
-#ifdef NS_PORT
-		packet_queue_set_verdict(dest_addr, PQ_SEND);
-#endif	/* NS_PORT */
+#ifdef DYMOUM_NS_PORT
+		packet_queue_set_verdict(dest_addr, DYMOUM_PQ_SEND);
+#endif	/* DYMOUM_NS_PORT */
 	}
 	
 	return entry;
 }
 
-rtable_entry_t *NS_CLASS rtable_update(rtable_entry_t *entry,
+rtable_entry_t *DYMOUM_NS_CLASS rtable_update(rtable_entry_t *entry,
 			struct in_addr dest_addr,
 			struct in_addr nxthop_addr,
 			u_int32_t ifindex,
@@ -138,7 +138,7 @@
 			u_int8_t hopcnt,
 			u_int8_t is_gw)
 {
-#ifndef NS_PORT
+#ifndef DYMOUM_NS_PORT
 	struct in_addr netmask;
 	
 	netmask.s_addr = 0;
@@ -161,7 +161,7 @@
 			"could not add kernel route");
 		netlink_add_route(dest_addr);
 	}
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 	
 	entry->rt_ifindex	= ifindex;
 	entry->rt_seqnum	= seqnum;
@@ -183,15 +183,15 @@
 	// now we send them
 	if (pending_rreq_remove(pending_rreq_find(dest_addr)))
 	{
-#ifdef NS_PORT
-		packet_queue_set_verdict(dest_addr, PQ_SEND);
-#endif	/* NS_PORT */
+#ifdef DYMOUM_NS_PORT
+		packet_queue_set_verdict(dest_addr, DYMOUM_PQ_SEND);
+#endif	/* DYMOUM_NS_PORT */
 	}
 	
 	return entry;
 }
 
-void NS_CLASS rtable_delete(rtable_entry_t *entry)
+void DYMOUM_NS_CLASS rtable_delete(rtable_entry_t *entry)
 {
 	if (!entry)
 		return;
@@ -201,12 +201,12 @@
 	free(entry);
 }
 
-void NS_CLASS rtable_invalidate(rtable_entry_t *entry)
+void DYMOUM_NS_CLASS rtable_invalidate(rtable_entry_t *entry)
 {
 	if (!entry)
 		return;
 	
-#ifndef NS_PORT
+#ifndef DYMOUM_NS_PORT
 	//if (timer_is_queued(&entry->rt_validtimer))
 	if (entry->rt_state == RT_VALID)
 	{
@@ -215,7 +215,7 @@
 			"could not delete kernel route");
 		netlink_del_route(entry->rt_dest_addr);
 	}
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 	
 	entry->rt_state = RT_INVALID;
 	
@@ -223,7 +223,7 @@
 	timer_add(&entry->rt_deltimer);
 }
 
-int NS_CLASS rtable_update_timeout(rtable_entry_t *entry)
+int DYMOUM_NS_CLASS rtable_update_timeout(rtable_entry_t *entry)
 {
 	if (entry && entry->rt_state == RT_VALID) // this comparison seems ok
 	{
@@ -241,7 +241,7 @@
 	return 0;
 }
 
-int NS_CLASS rtable_expire_timeout(rtable_entry_t *entry)
+int DYMOUM_NS_CLASS rtable_expire_timeout(rtable_entry_t *entry)
 {
 	if (!entry)
 		return 0;
@@ -252,7 +252,7 @@
 	return 1;
 }
 
-int NS_CLASS rtable_expire_timeout_all(struct in_addr nxthop_addr, u_int32_t ifindex)
+int DYMOUM_NS_CLASS rtable_expire_timeout_all(struct in_addr nxthop_addr, u_int32_t ifindex)
 {
 	dlist_head_t *pos;
 	int count = 0;
diff -burN dymoum-0.3/rtable.h dymoum-0.3_ported/rtable.h
--- dymoum-0.3/rtable.h	2006-08-28 19:57:02.000000000 +0200
+++ dymoum-0.3_ported/rtable.h	2009-07-16 12:04:25.000000000 +0200
@@ -41,8 +41,8 @@
 	dlist_head_t	l;
 	struct in_addr	rt_dest_addr;
 	struct in_addr	rt_nxthop_addr;
-	struct timer	rt_deltimer;
-	struct timer	rt_validtimer;
+	struct dymoum_timer	rt_deltimer;
+	struct dymoum_timer	rt_validtimer;
 	u_int32_t	rt_ifindex;
 	u_int32_t	rt_seqnum;
 	u_int8_t	rt_prefix;
Binary files dymoum-0.3/rtable-ns.o and dymoum-0.3_ported/rtable-ns.o differ
diff -burN dymoum-0.3/timer_queue.c dymoum-0.3_ported/timer_queue.c
--- dymoum-0.3/timer_queue.c	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/timer_queue.c	2009-07-16 13:39:12.000000000 +0200
@@ -18,7 +18,7 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 #include "ns/dymo_um.h"
 #else
 #include "timer_queue.h"
@@ -29,9 +29,9 @@
 
 
 static DLIST_HEAD(TQ);
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 
-int NS_CLASS timer_init(struct timer *t, timeout_func_t f, void *data)
+int DYMOUM_NS_CLASS timer_init(struct dymoum_timer *t, dymoum_timeout_func_t f, void *data)
 {
 	// Sanity check
 	if (t)
@@ -48,14 +48,14 @@
 	return -1;
 }
 
-int NS_CLASS timer_is_queued(struct timer *t)
+int DYMOUM_NS_CLASS timer_is_queued(struct dymoum_timer *t)
 {
 	if (t)
 		return !dlist_unattached(&t->list_head);
 	return 0;
 }
 
-int NS_CLASS timer_add(struct timer *t)
+int DYMOUM_NS_CLASS timer_add(struct dymoum_timer *t)
 {
 	dlist_head_t *pos;
 	
@@ -75,15 +75,15 @@
 	{
 		dlist_for_each(pos, &TQ)
 		{
-			struct timer *curr = (struct timer *) pos;
-			if (timeval_diff(&t->timeout, &curr->timeout) < 0)
+			struct dymoum_timer *curr = (struct dymoum_timer *) pos;
+			if (dymoum_timeval_diff(&t->timeout, &curr->timeout) < 0)
 				break;
 		}
 		return dlist_add(&t->list_head, pos->prev);
 	}
 }
 
-int NS_CLASS timer_remove(struct timer *t)
+int DYMOUM_NS_CLASS timer_remove(struct dymoum_timer *t)
 {
 	// Sanity check
 	if (!t)
@@ -97,7 +97,7 @@
 		return dlist_del(&t->list_head);
 }
 
-int NS_CLASS timer_set_timeout(struct timer *t, long msec)
+int DYMOUM_NS_CLASS timer_set_timeout(struct dymoum_timer *t, long msec)
 {
 	// Sanity checks
 	if (!t || msec < 0)
@@ -112,35 +112,35 @@
 	return 0;
 }
 
-void NS_CLASS timer_timeout(struct timeval *now)
+void DYMOUM_NS_CLASS timer_timeout(struct timeval *now)
 {
 	dlist_head_t *pos, *tmp;
 	
 	dlist_for_each_safe(pos, tmp, &TQ)
 	{
-		struct timer *t = (struct timer *) pos;
+		struct dymoum_timer *t = (struct dymoum_timer *) pos;
 		
-		if (timeval_diff(&t->timeout, now) > 0)
+		if (dymoum_timeval_diff(&t->timeout, now) > 0)
 			break;
 		else
 		{
 			t->used = 0;
 			dlist_del(&t->list_head);
 			if (t->handler)
-#ifdef NS_PORT
+#ifdef DYMOUM_NS_PORT
 				(this->*t->handler)(t->data);
 #else
 				t->handler(t->data);
-#endif	/* NS_PORT */
+#endif	/* DYMOUM_NS_PORT */
 		}
 	}
 }
 
-struct timeval *NS_CLASS timer_age_queue()
+struct timeval *DYMOUM_NS_CLASS timer_age_queue()
 {
 	static struct timeval remaining;
 	struct timeval now;
-	struct timer *t;
+	struct dymoum_timer *t;
 	
 	gettimeofday(&now, NULL);
 	
@@ -152,7 +152,7 @@
 	if (dlist_empty(&TQ))
 		return NULL;
 	
-	t = (struct timer *) TQ.next;
+	t = (struct dymoum_timer *) TQ.next;
 	remaining.tv_usec	= (t->timeout.tv_usec - now.tv_usec);
 	remaining.tv_sec	= (t->timeout.tv_sec - now.tv_sec);
 	
diff -burN dymoum-0.3/timer_queue.h dymoum-0.3_ported/timer_queue.h
--- dymoum-0.3/timer_queue.h	2006-08-28 19:14:50.000000000 +0200
+++ dymoum-0.3_ported/timer_queue.h	2009-07-16 13:38:55.000000000 +0200
@@ -28,18 +28,18 @@
 #include <sys/time.h>
 
 
-typedef void (NS_CLASS*timeout_func_t) (void *);
+typedef void (DYMOUM_NS_CLASS*dymoum_timeout_func_t) (void *);
 
-struct timer
+struct dymoum_timer
 {
 	dlist_head_t	list_head;
 	int		used;
 	struct timeval	timeout;
-	timeout_func_t	handler;
+	dymoum_timeout_func_t	handler;
 	void		*data;
 };
 
-NS_STATIC NS_INLINE long timeval_diff(struct timeval *t1, struct timeval *t2)
+DYMOUM_NS_STATIC DYMOUM_NS_INLINE long dymoum_timeval_diff(struct timeval *t1, struct timeval *t2)
 {
 	long long res;
 	
@@ -56,20 +56,20 @@
 
 #ifndef NS_NO_DECLARATIONS
 /* This should be called for every newly allocated timer */
-int timer_init(struct timer *t, timeout_func_t f, void *data);
+int timer_init(struct dymoum_timer *t, dymoum_timeout_func_t f, void *data);
 
 /* Check whether a timer is queued or not */
-int timer_is_queued(struct timer *t);
+int timer_is_queued(struct dymoum_timer *t);
 
 /* Add a new timer timer to the queue (lower to higher timeout order) */
-int timer_add(struct timer *t);
+int timer_add(struct dymoum_timer *t);
 
 /* Remove a timer from the queue */
-int timer_remove(struct timer *t);
+int timer_remove(struct dymoum_timer *t);
 
 /* Set the timer to timeout msec miliseconds in the future. The timer is not
    enqueued (you must call timer_add() if you need it) */
-int timer_set_timeout(struct timer *t, long msec);
+int timer_set_timeout(struct dymoum_timer *t, long msec);
 
 /* Execute all expired timers and remove them from the queue */
 void timer_timeout(struct timeval *now);
Binary files dymoum-0.3/timer_queue-ns.o and dymoum-0.3_ported/timer_queue-ns.o differ
