#include "qpb/linear_allocator.h"
#include "fpm/fpm_pb.h"
+#include "zebra_router.h"
#include "zebra_fpm_private.h"
/*
}
// TODO: Use src.
+ (void)src;
return 1;
}
msg->sub_address_family = QPB__SUB_ADDRESS_FAMILY__UNICAST;
msg->key = fpm_route_key_create(allocator, rib_dest_prefix(dest));
qpb_protocol_set(&msg->protocol, re->type);
+ msg->has_route_type = 1;
msg->route_type = FPM__ROUTE_TYPE__NORMAL;
msg->metric = re->metric;
* Figure out the set of nexthops to be added to the message.
*/
num_nhs = 0;
- for (ALL_NEXTHOPS(re->nexthop, nexthop)) {
- if (num_nhs >= multipath_num)
+ for (ALL_NEXTHOPS_PTR(re->nhe->nhg, nexthop)) {
+ if (num_nhs >= zrouter.multipath_num)
break;
- if (num_nhs >= ZEBRA_NUM_OF(nexthops))
+ if (num_nhs >= array_size(nexthops))
break;
if (nexthop->type == NEXTHOP_TYPE_BLACKHOLE) {
fpm__message__init(msg);
if (!re) {
+ msg->has_type = 1;
msg->type = FPM__MESSAGE__TYPE__DELETE_ROUTE;
msg->delete_route =
create_delete_route_message(allocator, dest, re);
return msg;
}
+ msg->has_type = 1;
msg->type = FPM__MESSAGE__TYPE__ADD_ROUTE;
msg->add_route = create_add_route_message(allocator, dest, re);
if (!msg->add_route) {