[Xorp-users] PIM testing results

Pavlin Radoslavov pavlin at icir.org
Tue Nov 7 10:31:36 PST 2006


> I'm trying to test PIM performance in XORP implementation.
> I've set a static RP in XORP configuration file and then i make a route change to reach the RP. After the multicast routing table update, PIM should send a JOIN on the new output interface.
> What i can see is that if the RP has the lowest IP in the network (a 100 routers fully meshed network), the time between the end of the OSPF Shortest Path Computation and the PIM Join is approx 6,7 sec, while if the RP has the highest IP, the same time is 24 sec.
> Why the update time of unicast and multicast routing table is so high?
> What are the operations made by XORP after the OSPF Shortest Path Computation and before the PIM Join message on the new interface?

Very interesting.
I cannot think of any good reason why you see such difference,
because all the design is event-driven.

This is the sequence of events that should happen:

1. OSPF receives the routing change.
   I presume the new route is chosen almost immediately and OSPF
   sends the change to the RIB.
   The particular XRL from OSPF to RIB is one of the following:
   - add_route4
   - replace_route4
   - add_interface_route4
   - replace_interface_route4

2. The RIB performs the appropriate route comparison and sends the
   winning route to the FEA. The particular XRLs from RIB to FEA
   are:
   - redist_transaction4/0.1/start_transaction
   followed by
   - redist_transaction4/0.1/add_route
   followed by
   - redist_transaction4/0.1/commit_transaction

3. After the FEA receives the commit_transaction XRL, it installs
   the route(s) into the kernel.
   You could watch the routes being installed by the
   "route -n monitor" command on BSD or by the "ip monitor" command
   on Linux.

4. All routes being installed into the kernel should pop-up back to
   the FEA. The "route -n monitor" and "ip monitor" commands should
   show that event as well.

5. The FEA should send the route (as received from the kernel) to
   the FIB2MRIB module by using one of the following XRLs:
   - fea_fib_client/0.1/add_route4
   - fea_fib_client/0.1/replace_route4

6. The FIB2MRIB should send the route to the RIB using one of the
   XRLs listed in Step 1 (but this time with the multicast flag
   set).

7. The RIB should send the FIB2MRIB route update (MRIB) to the
   PIM-SM module using the XRLs described in Step 2.

8. After the PIM-SM receives the MRIB update from RIB, it should
   send the new PIM Join almost immediately.

You could enable the XRL tracing by setting the XRLTRACE
environmental variable before starting XORP.
Then you can use the XRL event timestamps to follow the event flow.
This should help you find which component(s) is/are responsible for
the delay.

Please let us know if you find something.

Thanks,
Pavlin



More information about the Xorp-users mailing list