RIP maintains routing information within small internetworks. You can use RIP only in networks where the largest number of hops is 15. While this might seem like a large number, there are already many existing corporate networks that exceed this limit.1
RIP is based on work done in the Internet community, and its algorithmic base goes back to the ARPANET circa 1969. It is based on the distance-vector algorithm, also called Bellman-Ford, which is described in "Dynamic Programming," from Princeton University by R. E. Bellman. This paper was published in 1957.
The RIP server provided with VxWorks is based on the BSD 4.4 routed program. There are several relevant RFCs; the two most important are RFC 1058, in which RIP version 1 was first documented, and RFC 1388, in which the version 2 extensions are documented.
Provided with the RIP server are several routines that make debugging easier. The most often used is ripLogLevelBump( ), which enables tracing of packets and routing changes. Keep in mind that bumping the log level several times prints a lot of data to the console. Another routine is ripRouteShow( ), which prints the router's internal tables to the console. The printed message provides the following information:
|
|||||||||||||||||||
|
|||||||||||||||||||
|
|||||||||||||||||||
Routing information is pushed down into VxWorks's routing table periodically, but there can be periods when the two are out of sync. This periodic updating (as opposed to continuous updating) avoids route thrashing, where transient routes are pushed into the system but then need to be removed immediately.
To include the RIP server, reconfigure the VxWorks image. The relevant configuration macro is INCLUDE_RIP. The RIP server starts up when usrNetwork.c calls ripLibInit( ). This routine takes four parameters. You set the value of these parameters by editing the configuration and adjusting the following configuration items:
![]() |
WARNING: Do not set RIP_GATEWAY to 1 unless this really is the general gateway. Setting this to 1 makes the RIP server send a default route (0.0.0.0) out with every routing update. This tells all the other listening servers that this server is the default route for its subnet. This causes all packets to go to this router if they do not have a route that matches an existing entry in their routing table.
|
||||||||||||||||||
![]() |
CAUTION: The RIP server does not support separate routing domains. Only routing domain 0, the default, is supported.
|
||||||||||||||||||
1: A packet takes a hop every time it crosses a subnet. If a packet leaves machine Q and must pass through two subnet routers before it reaches its destination on machine N, the number of hops is two.
2: The timeout is the length of time for which the route remains current. If a route is not updated after 3 minutes, it is flushed from the routing table.