Index: freebsd/sys/kern/uipc_socket.c
===================================================================
--- freebsd/sys/kern/uipc_socket.c	(revision 3842b81723eb96ae16919b3cc09dffd81124ecfd)
+++ freebsd/sys/kern/uipc_socket.c	(revision 549488b572aa21e4e45e8d36607ac6ea20ee8751)
@@ -373,5 +373,9 @@
 	if ((prp->pr_domain->dom_family == PF_INET) ||
 	    (prp->pr_domain->dom_family == PF_ROUTE))
+#ifndef __rtems__
 		so->so_fibnum = td->td_proc->p_fibnum;
+#else /* __rtems__ */
+		so->so_fibnum = BSD_DEFAULT_FIB;
+#endif /* __rtems__ */
 	else
 		so->so_fibnum = 0;
Index: freebsd/sys/net/if_gif.c
===================================================================
--- freebsd/sys/net/if_gif.c	(revision 3842b81723eb96ae16919b3cc09dffd81124ecfd)
+++ freebsd/sys/net/if_gif.c	(revision 549488b572aa21e4e45e8d36607ac6ea20ee8751)
@@ -163,5 +163,9 @@
 
 	sc = malloc(sizeof(struct gif_softc), M_GIF, M_WAITOK | M_ZERO);
+#ifndef __rtems__
 	sc->gif_fibnum = curthread->td_proc->p_fibnum;
+#else /* __rtems__ */
+	sc->gif_fibnum = BSD_DEFAULT_FIB;
+#endif /* __rtems__ */
 	GIF2IFP(sc) = if_alloc(IFT_GIF);
 	if (GIF2IFP(sc) == NULL) {
Index: freebsd/sys/net/if_gre.c
===================================================================
--- freebsd/sys/net/if_gre.c	(revision 3842b81723eb96ae16919b3cc09dffd81124ecfd)
+++ freebsd/sys/net/if_gre.c	(revision 549488b572aa21e4e45e8d36607ac6ea20ee8751)
@@ -206,5 +206,9 @@
 	sc->encap = NULL;
 	sc->called = 0;
+#ifndef __rtems__
 	sc->gre_fibnum = curthread->td_proc->p_fibnum;
+#else /* __rtems__ */
+	sc->gre_fibnum = BSD_DEFAULT_FIB;
+#endif /* __rtems__ */
 	sc->wccp_ver = WCCP_V1;
 	sc->key = 0;
Index: freebsd/sys/net/if_stf.c
===================================================================
--- freebsd/sys/net/if_stf.c	(revision 3842b81723eb96ae16919b3cc09dffd81124ecfd)
+++ freebsd/sys/net/if_stf.c	(revision 549488b572aa21e4e45e8d36607ac6ea20ee8751)
@@ -232,5 +232,9 @@
 	}
 	ifp->if_softc = sc;
+#ifndef __rtems__
 	sc->sc_fibnum = curthread->td_proc->p_fibnum;
+#else /* __rtems__ */
+	sc->sc_fibnum = BSD_DEFAULT_FIB;
+#endif /* __rtems__ */
 
 	/*
Index: freebsd/sys/net/route.c
===================================================================
--- freebsd/sys/net/route.c	(revision 3842b81723eb96ae16919b3cc09dffd81124ecfd)
+++ freebsd/sys/net/route.c	(revision 549488b572aa21e4e45e8d36607ac6ea20ee8751)
@@ -125,4 +125,5 @@
 #endif
 
+#ifndef __rtems__
 /*
  * handler for net.my_fibnum
@@ -141,4 +142,5 @@
 SYSCTL_PROC(_net, OID_AUTO, my_fibnum, CTLTYPE_INT|CTLFLAG_RD,
             NULL, 0, &sysctl_my_fibnum, "I", "default FIB of caller");
+#endif /* __rtems__ */
 
 static __inline struct radix_node_head **
@@ -1398,5 +1400,9 @@
 	if (fibnum == -1) {
 		if (rt_add_addr_allfibs == 0 && cmd == (int)RTM_ADD) {
+#ifndef __rtems__
 			startfib = endfib = curthread->td_proc->p_fibnum;
+#else /* __rtems__ */
+			startfib = endfib = BSD_DEFAULT_FIB;
+#endif /* __rtems__ */
 		} else {
 			startfib = 0;
Index: freebsd/sys/net/rtsock.c
===================================================================
--- freebsd/sys/net/rtsock.c	(revision 3842b81723eb96ae16919b3cc09dffd81124ecfd)
+++ freebsd/sys/net/rtsock.c	(revision 549488b572aa21e4e45e8d36607ac6ea20ee8751)
@@ -262,5 +262,9 @@
 	s = splnet();
 	so->so_pcb = (caddr_t)rp;
+#ifndef __rtems__
 	so->so_fibnum = td->td_proc->p_fibnum;
+#else /* __rtems__ */
+	so->so_fibnum = BSD_DEFAULT_FIB;
+#endif /* __rtems__ */
 	error = raw_attach(so, proto);
 	rp = sotorawcb(so);
@@ -1649,5 +1653,9 @@
 		 */
 		for (error = 0; error == 0 && i <= lim; i++) {
+#ifndef __rtems__
 			rnh = rt_tables_get_rnh(req->td->td_proc->p_fibnum, i);
+#else /* __rtems__ */
+			rnh = rt_tables_get_rnh(BSD_DEFAULT_FIB, i);
+#endif /* __rtems__ */
 			if (rnh != NULL) {
 				RADIX_NODE_HEAD_LOCK(rnh);
Index: freebsd/sys/sys/proc.h
===================================================================
--- freebsd/sys/sys/proc.h	(revision 3842b81723eb96ae16919b3cc09dffd81124ecfd)
+++ freebsd/sys/sys/proc.h	(revision 549488b572aa21e4e45e8d36607ac6ea20ee8751)
@@ -578,5 +578,4 @@
   struct ucred  *p_ucred; /* (c) Process owner's identity. */
   rtems_id p_pid;
-  int p_fibnum; /* in this routing domain XXX MRT */
 #endif /* __rtems__ */
 };
Index: libbsd.txt
===================================================================
--- libbsd.txt	(revision 3842b81723eb96ae16919b3cc09dffd81124ecfd)
+++ libbsd.txt	(revision 549488b572aa21e4e45e8d36607ac6ea20ee8751)
@@ -50,4 +50,7 @@
 
 * Per-CPU NETISR(9) should be enabled onece the new stack is ready for SMP.
+
+* Multiple routing tables are not supported.  Every FIB value is set to zero
+  (= BSD_DEFAULT_FIB).
 
 * Sebastian Huber and Joel Sherrill discussed the need for a a basic USB
Index: rtemsbsd/include/machine/rtems-bsd-config.h.in
===================================================================
--- rtemsbsd/include/machine/rtems-bsd-config.h.in	(revision 3842b81723eb96ae16919b3cc09dffd81124ecfd)
+++ rtemsbsd/include/machine/rtems-bsd-config.h.in	(revision 549488b572aa21e4e45e8d36607ac6ea20ee8751)
@@ -137,4 +137,6 @@
 #define BSD_MAXIMUM_SLEEP_QUEUES 32
 
+#define BSD_DEFAULT_FIB 0
+
 extern rtems_chain_control rtems_bsd_lock_chain;
 
Index: rtemsbsd/rtems/rtems-bsd-thread.c
===================================================================
--- rtemsbsd/rtems/rtems-bsd-thread.c	(revision 3842b81723eb96ae16919b3cc09dffd81124ecfd)
+++ rtemsbsd/rtems/rtems-bsd-thread.c	(revision 549488b572aa21e4e45e8d36607ac6ea20ee8751)
@@ -218,5 +218,4 @@
 	FIXME_proc.p_ucred = crhold(&FIXME_ucred);
 	FIXME_proc.p_pid = getpid();
-	FIXME_proc.p_fibnum = 0;
 }
 
