@@ -1212,7 +1212,7 @@ nexthop_active_update (struct route_node *rn, struct rib *rib, int set)
1212
1212
* is only used for IPv4.
1213
1213
*/
1214
1214
int
1215
- rib_install_kernel (struct route_node * rn , struct rib * rib , int update )
1215
+ rib_install_kernel (struct route_node * rn , struct rib * rib , struct rib * old )
1216
1216
{
1217
1217
int ret = 0 ;
1218
1218
struct nexthop * nexthop , * tnexthop ;
@@ -1231,7 +1231,7 @@ rib_install_kernel (struct route_node *rn, struct rib *rib, int update)
1231
1231
* the kernel.
1232
1232
*/
1233
1233
zfpm_trigger_update (rn , "installing in kernel" );
1234
- ret = kernel_route_rib (& rn -> p , update ? rib : NULL , rib );
1234
+ ret = kernel_route_rib (& rn -> p , old , rib );
1235
1235
1236
1236
/* If install succeeds, update FIB flag for nexthops. */
1237
1237
if (!ret )
@@ -1388,7 +1388,7 @@ rib_process_add_fib(struct zebra_vrf *zvrf, struct route_node *rn,
1388
1388
1389
1389
if (!RIB_SYSTEM_ROUTE (new ))
1390
1390
{
1391
- if (rib_install_kernel (rn , new , 0 ))
1391
+ if (rib_install_kernel (rn , new , NULL ))
1392
1392
{
1393
1393
inet_ntop (rn -> p .family , & rn -> p .u .prefix , buf , INET6_ADDRSTRLEN );
1394
1394
zlog_warn ("%u:%s/%d: Route install failed" ,
@@ -1470,7 +1470,7 @@ rib_process_update_fib (struct zebra_vrf *zvrf, struct route_node *rn,
1470
1470
/* Non-system route should be installed. */
1471
1471
if (!RIB_SYSTEM_ROUTE (new ))
1472
1472
{
1473
- if (rib_install_kernel (rn , new , 1 ))
1473
+ if (rib_install_kernel (rn , new , old ))
1474
1474
{
1475
1475
installed = 0 ;
1476
1476
inet_ntop (rn -> p .family , & rn -> p .u .prefix , buf , INET6_ADDRSTRLEN );
@@ -1542,7 +1542,7 @@ rib_process_update_fib (struct zebra_vrf *zvrf, struct route_node *rn,
1542
1542
break ;
1543
1543
}
1544
1544
if (!in_fib )
1545
- rib_install_kernel (rn , new , 0 );
1545
+ rib_install_kernel (rn , new , NULL );
1546
1546
}
1547
1547
}
1548
1548
@@ -2459,11 +2459,10 @@ void _rib_dump (const char * func,
2459
2459
);
2460
2460
zlog_debug
2461
2461
(
2462
- "%s: nexthop_num == %u, nexthop_active_num == %u, nexthop_fib_num == %u " ,
2462
+ "%s: nexthop_num == %u, nexthop_active_num == %u" ,
2463
2463
func ,
2464
2464
rib -> nexthop_num ,
2465
- rib -> nexthop_active_num ,
2466
- rib -> nexthop_fib_num
2465
+ rib -> nexthop_active_num
2467
2466
);
2468
2467
2469
2468
for (ALL_NEXTHOPS_RO (rib -> nexthop , nexthop , tnexthop , recursing ))
@@ -2779,7 +2778,7 @@ rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type, u_short instance,
2779
2778
{
2780
2779
/* This means someone else, other than Zebra, has deleted
2781
2780
* a Zebra router from the kernel. We will add it back */
2782
- rib_install_kernel (rn , fib , 0 );
2781
+ rib_install_kernel (rn , fib , NULL );
2783
2782
}
2784
2783
}
2785
2784
else
0 commit comments