Description

This article explains why the " rt_expand_bridge could not find l3_rt for the irb " message is generated when an igmp join is received, and suggests a way to suppress this message.

Symptoms

When an igmp join is received, the following debug message is logged:

/kernel: rt_irb_get_vrf_rt route does not exist in vrf
/kernel: rt_expand_bridge could not find l3_rt for the irb (549)

Solution

In Junos OS code, rt_irb_get_vrf_rt is a method to get a route inside the Virtual Routing and Forwarding (VRF) table. This method has some IF clauses that are used to determine the course of action if a certain condition is met, such as when a route is not found. In this case, the IF statement says that if a route does not yet exist in the inet table of VRF, no expansion should be performed.

When an igmp join message is received, the mcsnoop [snooping] daemon tries to add an L2 route followed by the kernel, which tries to expand the L2 + L3 list. However, no corresponding L3 route is present (the attribute L3_rt in the code is NULL ). So the debug message is logged. This happens when igmp joins are received before the L3 (S, G) route is programmed.

These log messages are not indicative of any functionality issue and are used only for debugging purposes. They can be suppressed by configuring the following:

​lab@switch# show system syslog                 
     user * {
        any emergency;
     }
     file messages {
         any notice;
         authorization info;
         match "! (rt_irb_get_vrf_rt | rt_expand_bridge)";